Der Zweck dieses kleinen Projekts ist es, Yolov2 die Objektverfolgung hinzuzufügen und in Echtzeit mehreren Objektverfolgung zu erreichen.
Die aktuelle Architektur ist so eingestellt, dass nur eine Art von Objekten nachverfolgt werden, aber es sollte einfach über alle Objekte verallgemeinert werden.
Derzeit unterstützen Sie die Verfolgung von Personen (da die bereitgestellten Gewichte für Deep_Sort auf Personen Tracking geschult wurden)
python
numpy
opencv 3
tensorflow 1.0
Cython.
sklean.
Für die Verwendung von Sortierungen:
scikit-learn
scikit-image
FilterPy
1-Klonen Sie dieses Repository: git clone https://github.com/bendidi/Tracking-with-darkflow.git
2 git submodule update --init --recursive
3 -Gehen Sie zum Darkflow -Verzeichnis und machen Sie an Ort und Stelle Build: python3 setup.py build_ext --inplace
Laden Sie die Gewichte herunter:
Lesen Sie mehr über Yolo (in DarkNet) und laden Sie die Gewichtsdateien hier herunter, falls die Gewichtsdatei nicht gefunden werden kann, hat Thtrieu einige seiner hier hochgeladen, einschließlich yolo-full und yolo-tiny of V1.0, tiny-yolo-v1.1 von V1.1 und yolo , tiny-yolo-voc von V2 von V2.
Die Artchitecture, die ich in diesem Projekt verwendet/getestet habe, ist cfg/yolo.cfg mit den Gewichten bin/yolo.weights .
Als Nächst
Die von Nwojke bereitgestellten Deep_Sort -Gewichte wurden abgesagt. Sie können sie stattdessen von hier bekommen (dank @Louxy126)
Extrahieren Sie den Ordner und kopieren Sie ihn in deep_sort/resources
Bearbeiten von Flags in run.py Nach Ihrer Konfiguration:
demo : Pfad zu Videodatei zu verwenden, auf "Kamera" festlegen, wenn Sie Ihre Kamera verwenden möchten
model : In welcher Modellkonfiguration für YOLO können Sie weitere Informationen und .cfg -Dateien hier erhalten (geben Sie sie in Darkflow/ CFG/ Ordner ein).
load : Die entsprechenden Gewichte, die mit dem ausgewählten Modell verwendet werden sollen (geben Sie sie in Darkflow/bin/) Weitere Informationen hier
threshold : Die Vertraulichkeit der Yolo -Erkennungen
gpu : Wie viel GPU zu verwenden, 0 bedeutet, CPU zu verwenden
track : Um die Verfolgung zu aktivieren oder nicht
trackObj : Welche Objekte als Liste zu verfolgen (Beachten Sie, dass Deep_Sorts Encoder nur auf Personen trainiert wurde. Sie müssen also Ihren eigenen Encoder trainieren, weitere Informationen hier)
saveVideo : Ob Video speichern oder nicht
BK_MOG : Fügen Sie OpenCVs MOG -Hintergrund -Subtraktionsmodul hinzu, nur dann nützlich, wenn Yolo Personen in einem Video (geringer Qualität, ...) nicht erkennen kann, um Boxen um sich bewegende Objekte zu erkennen
tracker : Welchen Tracker zu verwenden: "Deep_sort" oder "Sortieren"
**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 : Rahmen überspringen, um die FPS zu erhöhen, könnte die Genauigkeit verringern!
csv : Speichern Sie die CSV -Erkennungsdatei im Format (Fram_id, Object_ID, X, Y, W, H)
display : Anzeige Video während des Verarbeitens oder nicht
Als nächstes muss man nur python run.py laufen lassen und genießen!
`Geschwindigkeit mit 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
Tests auf (1024, 1280, 3) Auflösung Video auf NVIDIA GTX 1080
Wenn Sie bis zu 3 Frames überspringen
In diesem Projekt wird Code verwendet, das von:
Thtrieu/Darkflow: Für die Echtzeit-Objekterkennungen und -Klassifikationen.
NWOJKE/DEEP_SORT: Für eine einfache Online -Realtime -Tracking mit einer Deep Association Metrik.
Bitte folgen Sie den Links, um alle Funktionen jedes Projekts zu verstehen.
@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}
}