deepSORT는 흔히 사용되는 Motion 정보와 appearance 정보를 결합하여 tracking에 활용하는 Tracking 알고리즘이다.
one stage object detector인 YOLOv5와 deepSORT가 함께 구현되어 있는 간편하고 재미있는 오픈 소스가 있는데 본 포스팅에서는 이 실습을 진행해볼 것이다. 본 오픈 소스에서는 OSNet을 활용하여 구현하였다고 했는데, 다음에는 OSNet에 대한 포스팅도 진행할 예정이다.
Github 주소
https://github.com/mikel-brostrom/Yolov5_DeepSort_OSNet
실습은 리눅스 환경에서 진행하였고, 아나콘다를 미리 설치해주었다.
0. 가상환경 설치
conda create -n yolov5_deepsort python=3.8
conda activate yolov5_deepsort
- python version은 3.8이상 버전 설치하기를 권장한다.
- 나머지는 yolov5_deepsort를 activate 시켜준 곳에서 실행하였다.
1. Git clone
--recurse-submodules 꼭 해주기
git clone --recurse-submodules <https://github.com/mikel-brostrom/Yolov5_DeepSort_OSNet.git>
2. requirement 설치
pytorch >=1.7 를 포함한 다른 requirement들을 설치해준다.
cd /설치경로/
pip install -r requirements.txt
3. 실행
아래 명령어 중 하나로 실행하면 쉽게 tracking 되는 것을 확인할 수 있다.
본 github에 제공되는 것으로는 webcam 뿐만 아니라 사진, 동영상, youtube까지도 tracking을 할 수 있다.
python track.py --source 0 # webcam
python track.py --source 0 --yolo_model yolov5n.pt
python track.py --source 0 --deep_sort_model osnet_x0_25_market1501
python3 track.py --source 0 --save-txt
또한 모델도 설정해서 tracking을 실습해볼 수 있다.
- yolo 모델 선택하기 : source 뒤에 아래 추가하기
--yolo_model yolov5n.pt
모델은 yolov5n.pt, yolov5s.pt , yolov5m.pt, yolov5l.pt, yolov5x.pt 로 골라 테스팅 해볼 수 있다.
더 좋은 모델을 골라서 테스팅을 해본 결과 체감 fps가 높아졌다.
- DeepSORT 모델 선택하기 : re-identification 모델을 선택할 수 있다.
python track.py --source 0 --deep_sort_model osnet_x0_25_market1501
—save-txt 시 저장되는 파일
MOT16 : Benchmark for multi-object tracking의 MOT compliant results의 format을 따라 생성된 txt파일이다.
아래와 같은 형식을 띈다.
- <frame>, <id>, <bb_left>, <bb_top>, <bb_width>, <bb_height>, <conf>, <x>, <y>, <z>
- <conf>
- contains detection confidence
- 0 : ignore
- 0 이외의 값 : active
- <x,y,z>
- 값은 2d detection에서는 무시, -1로 채워짐
비교적 간편하게 tracking을 실습할 수 있는 좋은 오픈 소스라고 생각된다.
'AI Research > Tracking' 카테고리의 다른 글
[Object Detection + Tracking] YOLOv4와 deepsort로 tracking 실습하기 (1) | 2022.07.14 |
---|