이 저장소는 GUI 기반 앱인 MOTHe-GUI의 백엔드 라이브러리입니다.
Mothe는 이질적인 환경에서 여러 동물을 감지하고 추적하는 PYPI 라이브러리입니다. MOTHe는 Python 기반 저장소이며 개체 감지 작업에 CNN(Convolutional Neural Network) 아키텍처를 사용합니다. 디지털 이미지를 입력으로 사용하고 해당 기능을 읽어 카테고리를 할당합니다. 이러한 알고리즘은 학습 알고리즘입니다. 즉, 엄청난 양의 레이블이 지정된 훈련 데이터를 사용하여 이미지에서 특징을 추출합니다. CNN 모델이 훈련되면 이러한 모델을 사용하여 새로운 데이터(이미지)를 분류할 수 있습니다. MOTHe는 사용자가 자연스러운 환경에서도 관심 개체를 추적할 수 있도록 일반적으로 설계되었습니다.
MOTHe는 객체 분류와 관련된 모든 작업을 자동화할 수 있으며 다음 작업을 전담하는 5가지 방법으로 나뉩니다.
시스템 구성 : 시스템 구성은 사용자 시스템에 MOTHe를 설정하는 데 사용됩니다. 로컬 저장소 경로, 처리할 비디오 경로, 잘라낼 개인의 크기, 감지 또는 추적을 실행하는 동안 건너뛸 프레임 수(컴퓨팅 시간 단축/테스트 사례 실행)와 같은 기본 세부 정보 감지 단계에서 그려질 경계 상자의 크기.
데이터 세트 생성 : 데이터 세트 생성은 객체 감지 및 추적을 위한 중요한 단계입니다. 필요한 양의 훈련 데이터를 생성하는 데 필요한 수동 노력은 엄청납니다. 데이터 생성 클래스와 실행 파일은 사용자가 GUI를 간단히 클릭하여 관심 영역을 자르고 적절한 폴더에 이미지를 자동으로 저장할 수 있도록 하여 프로세스를 고도로 자동화합니다.
컨벌루션 신경망 훈련train_model : 충분한 수의 훈련 예제를 생성한 후 데이터는 신경망을 훈련하는 데 사용됩니다. 신경망은 분류기를 출력으로 생성합니다. 분류기의 정확도는 네트워크가 얼마나 잘 훈련되었는지에 따라 달라지며, 이는 다시 훈련 데이터의 품질과 양에 따라 달라집니다( 훈련 데이터가 얼마나 필요한가요? 섹션 참조). 네트워크의 다양한 튜닝 매개변수는 사용자가 프로세스를 쉽게 수행할 수 있도록 고정되어 있습니다. 이 네트워크는 관심 대상(동물)과 배경 등 이진 분류에 적합합니다. 이 파이프라인에서는 다중 클래스 분류가 지원되지 않습니다.
객체 감지 : 이 방법은 두 가지 주요 작업을 수행합니다. 먼저 이미지에서 잠재적으로 동물이 있을 수 있는 영역을 식별합니다. 이를 위치 파악이라고 합니다. 그런 다음 잘린 영역에 대한 분류를 수행합니다. 이 분류는 작은 CNN(6개의 컨볼루션 레이어)을 사용하여 수행됩니다. 출력은 각 프레임에서 식별된 동물의 위치를 포함하는 .csv 파일 형식입니다.
객체 추적 : 객체 추적은 MOTHe의 최종 목표입니다. 이 모듈은 감지된 개인에게 고유 ID를 할당하고 궤적을 생성합니다. 우리는 감지 및 추적 모듈을 분리하여 카운트 데이터에만 관심 있는 사람(예: 설문 조사)도 사용할 수 있습니다. 또한 이러한 모듈화는 숙련된 프로그래머에게 보다 정교한 추적 알고리즘을 사용할 수 있는 유연성을 제공합니다. 추적 작업을 위해 기존 코드를 사용합니다(Github 페이지 참조). 이 알고리즘은 Kalman 필터와 헝가리어 알고리즘을 사용합니다. 이전 단계에서 탐지가 생성되면 이 스크립트를 실행할 수 있습니다. 출력은 각 프레임의 개별 ID와 위치를 포함하는 text{.csv} 파일입니다. 각 개인의 고유 ID가 포함된 비디오 출력도 생성됩니다.
MOTHe는 업데이트되었을 수 있는 여러 다른 Python 라이브러리를 사용하는 Python 패키지입니다. 따라서 다운로드/설치하는 버전을 알고 있는 것이 중요합니다. 권장되는 Python 버전은 python3.6~python3.7 안정 릴리스입니다(Linux의 최신 LTS 버전(예: Ubuntu 20.04 Focal Fossa)은 MOTHe와 호환되지 않는 기본 python3.8과 함께 설치됩니다). Python3.8은 MOTHe가 작동하는 데 필요한 2.2 릴리스 이하의 Tensorflow 버전을 지원하지 않습니다. 상당히 빠르게 수정되어 최근에 MOTHe를 테스트하는 데 사용되는 일부 라이브러리 버전을 참고하세요.