AI Research/Tracking

[Object Detection+Tracking] YOLOv5와 DeepSORT로 tracking 실습하기

wawawaaw 2022. 6. 3. 01:35
반응형

 

 

deepSORT는 흔히 사용되는 Motion 정보와 appearance 정보를 결합하여 tracking에 활용하는 Tracking 알고리즘이다. 

one stage object detector인 YOLOv5와 deepSORT가 함께 구현되어 있는 간편하고 재미있는 오픈 소스가 있는데 본 포스팅에서는 이 실습을 진행해볼 것이다. 본 오픈 소스에서는 OSNet을 활용하여 구현하였다고 했는데, 다음에는 OSNet에 대한 포스팅도 진행할 예정이다.

 

Github 주소 

https://github.com/mikel-brostrom/Yolov5_DeepSort_OSNet

 

GitHub - mikel-brostrom/Yolov5_DeepSort_OSNet: Real-time multi-camera multi-object tracker using YOLOv5 and Deep SORT with OSNet

Real-time multi-camera multi-object tracker using YOLOv5 and Deep SORT with OSNet - GitHub - mikel-brostrom/Yolov5_DeepSort_OSNet: Real-time multi-camera multi-object tracker using YOLOv5 and Deep ...

github.com

실습은 리눅스 환경에서 진행하였고, 아나콘다를 미리 설치해주었다.

 

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 시 저장되는 파일

save txt 파일. tracking 정보가 들어있다.

 

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을 실습할 수 있는 좋은 오픈 소스라고 생각된다.

반응형