Цель этого маленького проекта-добавить отслеживание объектов в 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 и сделайте на месте сборка: python3 setup.py build_ext --inplace
Загрузите вес:
Узнайте больше о YOLO (в Darknet) и загрузите файлы веса здесь, в случае, если файл веса не может быть найден, THTRIEU загрузил некоторые из его здесь, которые включают yolo-full и yolo-tiny of V1.0, tiny-yolo-v1.1 из V1.1 и yolo , tiny-yolo-voc of v2.
Артхитектура, которую я использовал/протестировал в этом проекте cfg/yolo.cfg с весами bin/yolo.weights .
Далее вам нужно скачать весы Deep_sort здесь (папка Networks), предоставленная Nwojke
Весы Deep_sort, предоставленные Nwojke, были отменены. Вместо этого вы можете получить их отсюда (спасибо @louxy126)
Извлеките папку и скопируйте ее в deep_sort/resources
Редактировать флаги в run.py после вашей конфигурации:
demo : Путь к видеофайлу для использования, установите на «камеру», если вы хотите использовать камеру
model : какая конфигурация модели использовать для YOLO, вы можете получить больше информации и файлов.
load : соответствующие веса для использования с выбранной моделью (поместите их в Darkflow/bin/) Подробнее здесь
threshold : порог доверенности обнаружений Йоло
gpu : сколько графического процессора использовать, 0 означает использование ЦП
track : активировать отслеживание или нет
trackObj : какие объекты отслеживать в качестве списка (обратите внимание, что энкодер Diep_sort был обучен только людям, поэтому вам нужно тренировать свой собственный энкодер, больше информации здесь)
saveVideo : сохранять видео или нет
BK_MOG : добавьте модуль вычитания фонового вычитания OpenCV, полезно только тогда, когда 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
Тесты, выполненные на видео (1024, 1280, 3).
Пропуск до 3 кадров позволяет увеличить скорость, сохраняя точность отслеживания '
Этот проект использует код, раздвоенный от:
Thtrieu/Darkflow: для обнаружения и классификаций объектов в реальном времени.
nwojke/deep_sort: для простого онлайн -отслеживания в реальном времени с глубокой метрикой ассоциации.
Пожалуйста, перейдите по ссылкам, чтобы понять все функции каждого проекта.
@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}
}