티스토리 뷰

작성자 : 한양대학원 융합로봇시스템학과 유승환 석사과정 (CAI LAB)

 

 오늘은 딥러닝 Object Detection 기반 Tracking 실습을 진행해보겠습니다~! 학습 모델명은 YOLOv4 + Deep_SORT 입니다. Deep SORT는 저도 처음 접해보는 것이라... Deep SORT의 이론에 대해서는 실습이 끝난 후에 차차 공부해보려고 합니다ㅎㅎ 그럼 Object Detection + Tracking 실습 진행하겠습니다!


 링크 1) YOLOv4 + Deep_SORT 깃헙 링크 : github.com/theAIGuysCode/yolov4-deepsort/tree/9e745bfb3ea5e7c7505cb11a8e8654f5b1319ad9

 

theAIGuysCode/yolov4-deepsort

Object tracking implemented with YOLOv4, DeepSort, and TensorFlow. - theAIGuysCode/yolov4-deepsort

github.com

 링크 2) AlexeyAB/darknet 깃헙 링크 : github.com/AlexeyAB/darknet

 

AlexeyAB/darknet

YOLOv4 - Neural Networks for Object Detection (Windows and Linux version of Darknet ) - AlexeyAB/darknet

github.com


1. YOLO v4 tiny + Deep_SORT 환경 셋팅하기

 1-1) 필자의 학습 환경

   - OS : Window10, ubuntu 18.04

   - CUDA : 10.2

   - cuDNN : 7.6.5

   - Anaconda3환경

 

 1-2) Anaconda 환경 생성 및 필요한 라이브러리 설치

   - 아래의 항목들을 설치 (OpenCV, sklearn, pillow, numpy, torch, tensorflow-gpu)

   - 아나콘다 환경에서 작업하시지 않을 분들은 pip3 명령어로 로컬에 설치하셔도 괜찮습니다~!

conda create -n ob_tracking python=3.8
conda activate ob_tracking

conda update -yn base -c defaults conda
conda install -c conda-forge opencv
conda install -c anaconda absl-py lxml pillow
conda install -c conda-forge easydict tqdm matplotlib
conda install -c anaconda tensorflow-gpu

   - 코드 다운로드 (git clone)

git clone https://github.com/theAIGuysCode/yolov4-deepsort.git

 

  1-3) 학습 모델 파일 다운로드

  - 저는 yolov4-tiny 기준으로 진행해보겠습니다.   

  - 단순 테스트 용이라면 아래의 링크에서 pre-trained 모델을 다운받으시면 됩니다.

  - custom 학습을 진행한 모델을 사용하시려면, 링크 2)의 YOLO를 직접 학습하여 weight 파일을 생성하면 됩니다.

  - 학습 모델 (pre-trained) 가중치 파일 다운로드 링크 : https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v4_pre/yolov4-tiny.weights

 

 

  1-4) YOLOv4_Deep_SORT 실행

  - 다음의 명령어를 실행합니다.

# save yolov4-tiny model
python save_model.py --weights ./data/yolov4-tiny.weights --output ./checkpoints/yolov4-tiny-416 --model yolov4 --tiny

# Run yolov4-tiny object tracker
python object_tracker.py --weights ./checkpoints/yolov4-tiny-416 --model yolov4 --video ./data/video/test.mp4 --output ./outputs/tiny.avi --tiny

  - 위 명령어를 실행하면 아래의 이미지와 같이, tracking 영상이 뜹니다! 성공!!

  - 만약에 custom 데이터로 학습한 모델을 사용하려면, save_model.py의 명령어에서 weight 인자를 학습한 모델로 수정합니다.

  - 그리고 yolov4-deepsort/core/config.py에서 __C.YOLO.CLASSES을 자신의 names 파일에 맞게 수정합니다.


 

 

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30