Das Projekt basiert auf Personenerkennung und -verfolgung und ich konzentriere mich hauptsächlich auf die Personenverfolgung. Wie im Ausgabe-GIF in README.md oder Ausgabe.mp4 gezeigt, erhält jede Person eine id
, sobald sie einen Frame betritt, und die id
bleibt unabhängig von der Erkennung in gleichzeitigen Frames erhalten. Der Algorithmus führt eine Personenerkennung durch und verfolgt ihn, solange er im Bild bleibt.
Person_det_track.py erkennt und verfolgt die Person mithilfe von SSD und Kalman-Filter
Bitte versuchen Sie, so weit wie möglich bei der bereitgestellten Version zu bleiben, da sonst Kompatibilitätsprobleme auftreten. Ich habe beim Codieren die bestmögliche Kombination verwendet.
opencv [v3.1]
Tensorflow [v1.5.0]
Die hier vorgeschlagene Methode ist in zwei Hauptteile unterteilt
Personenerkennung – Die Personenerkennung in Echtzeit erfolgt mithilfe des Single Shot MultiBox Detector. SSD erreicht 75,1 % mAP und übertrifft damit ein vergleichbares, hochmodernes, schnelleres R-CNN-Modell. und das SSD-Modell ist im Tensorflow-Erkennungszoo verfügbar. Die nahtlose Integration von SSD mit Tensorflow hilft bei der weiteren Optimierung und Implementierung des Algorithmus. Die SSD-Objekterkennung besteht aus 2 Teilen:
Personenverfolgung – Ein Begrenzungsrahmen um das Objekt/die Person kann erreicht werden, indem das Objekterkennungsmodell in jedem Frame ausgeführt wird, dies ist jedoch rechenintensiv. Der hier verwendete Tracking-Algorithmus ist Kalman Filtering. Der Kalman-Filter gilt seit langem als optimale Lösung für viele Tracking- und Datenvorhersageaufgaben. Seine Verwendung bei der Analyse visueller Bewegung. Der Zweck der Filterung besteht darin, die erforderlichen Informationen aus einem Signal zu extrahieren und alles andere zu ignorieren. In diesem Projekt wird der Kalman-Filter mit der Geschwindigkeit, Position und Richtung der Person gespeist, was ihm hilft, den zukünftigen Standort der Person basierend auf ihren vorherigen Daten vorherzusagen.
Der Tracking-Teil weist zum Zeitpunkt der Okklusion immer noch einige Probleme auf. (Wir arbeiten daran)
Das System besteht aus zwei Teilen: erstens der menschlichen Erkennung und zweitens der Verfolgung. Frühe Forschungen konzentrierten sich eher auf die menschliche Erkennung als auf die Verfolgung. Die Überwachung der Bewegungen eines Menschen erhöhte die Notwendigkeit einer Ortung. Die Überwachung von Bewegungen ist von großem Interesse, um die Aktivitäten einer Person und die Aufmerksamkeit einer Person zu bestimmen.
Reduzierung des Rechenleistungsbedarfs – Ein normaler Algorithmus zur Einspruchserkennung erkennt das Objekt, verfolgt (weist) jedoch kein Objekt über Frames hinweg zu (weist ihm keine ID zu). Daher muss in jedem Frame ausgeführt werden, um den Begrenzungsrahmen zu erhalten. Die Nachverfolgung trägt dazu bei, die Anzahl der Ausführungen des Erkennungsalgorithmus zu reduzieren, d. h. statt den Erkennungsalgorithmus bei jedem Frame auszuführen, führt diese Implementierung die Erkennung alle 5 Frames aus.
Fehlerkompensation des Objekterkennungsmodells – es kann einige Posen geben, in denen SSD die Person möglicherweise nicht erkennt. Sogar eine Okklusion kann den Detektor erheblich beeinträchtigen; Hier kann uns der Tracking-Algorithmus sehr helfen.
Identitätswiederherstellung – Die Verfolgung eines Menschen kann als vorheriger Schritt bei der biometrischen Gesichtserkennung verwendet werden. Durch die kontinuierliche Verfolgung einer Person kann eine Person jederzeit identifiziert werden. Auch wenn die Gesichtserkennung bei einem bestimmten Bildsatz nicht möglich ist, kann seine Identität durch Verfolgung ermittelt werden. Von Neeraj Menon