이 작은 프로젝트의 목적은 YOLOV2에 객체 추적을 추가하고 실시간 다중 객체 추적을 달성하는 것입니다.
현재 아키텍처는 한 가지 유형의 객체 만 추적하도록 설정되었지만 모든 객체를 쉽게 일반화 할 수 있어야합니다.
현재 사람들을 지원하는 사람들을 지원합니다 (Deep_Sort의 제공된 무게가 사람들을 추적하는 것에 대해 훈련을 받았기 때문에)
python
numpy
opencv 3
tensorflow 1.0
Cython.
sklean.
정렬 사용 :
scikit-learn
scikit-image
FilterPy
1-이 저장소 복제 : git clone https://github.com/bendidi/Tracking-with-darkflow.git
2- 모든 하위 모듈 초기화 : git submodule update --init --recursive
3- DarkFlow 디렉토리로 이동하여 제자리에 Do Build : python3 setup.py build_ext --inplace
가중치 다운로드 :
Yolo (Darknet에서)에 대한 자세한 내용은 중량 파일을 찾을 수없는 경우 thtrieu가 V1.1의 v1.1의 yolo-full 및 yolo-tiny , tiny-yolo-v1.1 및 v2의 yolo tiny-yolo-voc 포함하여 그의 일부를 여기에 업로드했습니다.
이 프로젝트에서 내가 사용했거나 테스트 한 ArtChitecture는 weights bin/yolo.weights 와 함께 cfg/yolo.cfg 입니다.
다음으로 NWOJKE에서 제공하는 Deep_Sort 가중치 (네트워크 폴더)를 다운로드해야합니다.
Nwojke가 제공하는 Deep_Sort 중량이 취소되었습니다. 대신 여기에서 얻을 수 있습니다 ( @louxy126 덕분).
폴더를 추출하여 deep_sort/resources 에 복사하십시오
구성에 따라 run.py 의 플래그 편집 :
demo : 사용할 비디오 파일로의 경로, "카메라"로 설정된 경우 카메라를 사용하려면 "카메라"로 설정
model : Yolo에 사용할 모델 구성은 여기에서 더 많은 정보와 .cfg 파일을 얻을 수 있습니다 (DarkFlow/ CFG/ 폴더에 넣음)
load : 선택한 모델과 함께 사용할 해당 가중치 (DarkFlow/Bin/에 넣음) 여기에 추가 정보
threshold : Yolo 탐지의 신뢰 임계 값
gpu : 사용할 GPU의 양, 0은 CPU를 사용하는 것을 의미합니다.
track : 추적을 활성화하려면
trackObj : 목록으로 추적 할 객체 (Deep_Sort의 인코더가 사람들에게만 훈련되었으므로 자신의 인코더를 훈련시켜야합니다. 여기에서 더 많은 정보가 필요합니다).
saveVideo : 비디오 저장 여부
BK_MOG : OpenCV의 MOG 배경 감산 모듈 추가, Yolo가 비디오에서 사람을 감지 할 수없는 경우에만 유용합니다 (낮은 품질, ...)이를 사용하여 움직이는 물체 주변의 상자를 감지하십시오.
tracker : 사용할 추적기 : "deep_sort"또는 "sort"
**NOTE** : "deep_sort" only supports people tracking as it was only trained to track people(the code for training is not yet published)
**TODO** : add support for GOTURN tracker(tensorflow implementation)
**TODO** : add support for opencv trackers (MIL,KCF,TLD,MEDIANFLOW)
skip : 프레임 스킵 프레임이 FPS를 늘리면 정확도가 줄어 듭니다!
csv : CSV 감지 파일 저장 형식 (frame_id, object_id, x, y, w, h)
display : 처리 중에 비디오를 표시합니다
다음으로 python run.py 실행하고 즐기기 만하면됩니다!
`YOLO.CFG를 사용한 속도 :
YOLO with track Flag set to False : 30fps
YOLO with track Flag set to True (deep_sort) : 14 fps
YOLO with track and background subtraction Flags set to True : 10.5 fps
NVIDIA GTX 1080에 대한 (1024, 1280, 3) 해상도 비디오에 대한 테스트
최대 3 프레임을 건너 뛰면 추적의 정확성을 유지하면서 더 빠른 속도를 높일 수 있습니다.
이 프로젝트는 다음과 같은 코드를 사용하고 있습니다.
thtrieu/darkflow : 실시간 객체 탐지 및 분류 용.
NWOJKE/DEEP_SORT : DEEP 연관 메트릭을 사용한 간단한 온라인 실시간 추적 용.
각 프로젝트의 모든 기능에 대한 이해를 얻으려면 링크를 따르십시오.
@article{redmon2016yolo9000,
title={YOLO9000: Better, Faster, Stronger},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1612.08242},
year={2016}
}
@article{Wojke2017simple,
title={Simple Online and Realtime Tracking with a Deep Association Metric},
author={Wojke, Nicolai and Bewley, Alex and Paulus, Dietrich},
journal={arXiv preprint arXiv:1703.07402},
year={2017}
}
@inproceedings{Bewley2016_sort,
author={Bewley, Alex and Ge, Zongyuan and Ott, Lionel and Ramos, Fabio and Upcroft, Ben},
booktitle={2016 IEEE International Conference on Image Processing (ICIP)},
title={Simple online and realtime tracking},
year={2016},
pages={3464-3468},
keywords={Benchmark testing;Complexity theory;Detectors;Kalman filters;Target tracking;Visualization;Computer Vision;Data Association;Detection;Multiple Object Tracking},
doi={10.1109/ICIP.2016.7533003}
}