Le projet est basé sur la détection et le suivi des personnes et je me concentre principalement sur le suivi des personnes. Comme indiqué dans le gif de sortie du README.md ou du output.mp4, chaque personne recevra un id
dès qu'elle entrera dans une image et l' id
sera conservé quelle que soit la détection se produisant dans les images simultanées. L'algorithme effectue une détection de personne et la suit aussi longtemps qu'elle reste dans le cadre.
Person_det_track.py détecte et suit la personne à l'aide du SSD et du filtre Kalman
Veuillez essayer de vous en tenir autant que possible à la version fournie, sinon vous rencontrerez des problèmes de compatibilité. J'ai utilisé la meilleure combinaison possible pendant le temps de codage.
ouvertcv [v3.1]
Tensorflow [v1.5.0]
La méthode proposée ici est divisée en 2 parties principales
Détection de personne - La détection de personne en temps réel se fait à l'aide du détecteur Single Shot MultiBox. Le SSD atteint 75,1 % de mAP, surpassant un modèle comparable de pointe Faster R-CNN. et le modèle SSD est disponible dans le zoo de détection Tensorflow. L'intégration transparente du SSD avec Tensorflow contribue à une optimisation et une mise en œuvre plus poussées de l'algorithme. La détection d'objets SSD se compose de 2 parties :
Suivi de personne - Un cadre de délimitation peut être réalisé autour de l'objet/de la personne en exécutant le modèle de détection d'objet dans chaque image, mais cela coûte cher en termes de calcul. L'algorithme de suivi utilisé ici est le filtrage de Kalman. Le filtre de Kalman a longtemps été considéré comme la solution optimale pour de nombreuses tâches de suivi et de prédiction de données. Son utilisation dans l'analyse du mouvement visuel. Le but du filtrage est d'extraire les informations requises d'un signal, en ignorant tout le reste. Dans ce projet, le filtre de Kalman reçoit la vitesse, la position et la direction de la personne, ce qui l'aide à prédire l'emplacement futur de la personne sur la base de ses données précédentes.
La partie tracking rencontre encore quelques problèmes au moment de l'occlusion. (J'y travaille)
Le système se compose de deux parties : la détection humaine et le suivi. Les premières recherches étaient orientées vers la reconnaissance humaine plutôt que vers le suivi. La surveillance des mouvements d'un être humain a fait naître le besoin de suivi. La surveillance des mouvements présente un grand intérêt pour déterminer les activités et l'attention d'une personne.
Réduire la puissance de calcul requise - Un algorithme de détection d'objection normal détecte l'objet mais ne suit pas (n'attribue pas d'identifiant) un objet à travers les images ; doit donc être exécuté dans chaque image pour obtenir le cadre de sélection. Le suivi aidera à réduire le nombre de fois où l'algorithme de détection doit être exécuté, c'est-à-dire qu'au lieu d'exécuter l'algorithme de détection à chaque image, cette implémentation exécute la détection toutes les 5 images.
Compensation de défaillance du modèle de détection d'objets : dans certaines situations, le SSD peut ne pas détecter la personne. Même une occlusion peut affecter le détecteur de manière significative ; c’est là que l’algorithme de suivi peut nous aider grandement.
Récupération d'identité - Le suivi d'un être humain peut être utilisé comme étape préalable à la reconnaissance biométrique du visage. Garder une trace continue d'une personne permettra de l'identifier à tout moment. Même si l'identification du visage n'est pas possible sur un ensemble particulier de trames, son identité peut être retrouvée. Par Neeraj Menon