Comptage de véhicules à partir d'une vidéo


10

Avertissement : j'ai posté cette question sur StackOverFlow mais j'ai appris qu'elle est mieux adaptée ici.

Je suis un peu nouveau dans le traitement d'image, donc je voudrais vous demander de trouver la solution optimale pour mon problème, pas d'aide pour le code. Je ne pouvais pas encore penser à une bonne idée alors je voulais vous demander votre avis.

Je travaille sur un projet utilisant OpenCV pour compter les véhicules à partir d'un fichier vidéo ou d'une caméra en direct. Les autres personnes travaillant sur un tel projet suivent généralement les objets en mouvement puis les comptent, mais au lieu de cela, je voulais travailler avec un point de vue différent; demander à l'utilisateur de définir un ROI (région d'intérêt) sur la fenêtre vidéo et de travailler uniquement pour cette région (pour certaines raisons, comme ne pas traiter l'ensemble du cadre et une certaine augmentation des performances), comme indiqué ci-dessous. (L'utilisateur peut définir plusieurs ROI et il est demandé à l'utilisateur de définir la hauteur du ROI environ deux fois par rapport à une voiture normale par sens des proportions.)

Image 1

J'ai fait des progrès de base jusqu'à présent, comme la mise à jour en arrière-plan, les filtres morphologiques, le seuillage et l'obtention de l'objet en mouvement sous forme d'image binaire, comme ci-dessous.

image2

Après les avoir faites, j'ai essayé de compter les pixels blancs du dernier cadre de premier plan à seuil et d'estimer s'il s'agissait d'une voiture ou non en vérifiant le nombre total de pixels blancs (j'ai fixé une limite inférieure par un calcul statique en connaissant la hauteur du retour sur investissement) . Pour illustrer, j'ai dessiné un exemple de graphique:

image3

Comme vous pouvez le voir, il était facile de calculer les pixels blancs et de vérifier s'il trace une courbe au moment et de déterminer si une voiture ou quelque chose comme du bruit.

Problème

J'ai eu beaucoup de succès jusqu'à ce que deux voitures traversent mon ROI ensemble en même temps. Mon algorithme les a incorrectement comptés comme une seule voiture. J'ai essayé différentes approches pour ce problème et similaire à cela, comme les véhicules longs, mais je n'ai pas trouvé de solution satisfaisante.

Question

Est-il possible de gérer cette tâche par cette approche du comptage des valeurs en pixels? Sinon, que proposez-vous?


Votre problème est la raison pour laquelle les gens utilisent le suivi. Aussi, voulez-vous que les voitures qui se déplacent ensemble (par exemple, une voiture avec une remorque) soient comptées comme un ou deux véhicules?
Emre

Tout d'abord, merci pour l'édition. Je ne m'attends pas à une précision de 100%, les voitures avec remorques peuvent être ignorées. mais si ce sont deux voitures séparées qui s'approchent très près l'une de l'autre, je dois faire en sorte que le programme les distingue toutes les deux, mais je n'en ai aucune idée.
Horizon1710

Réponses:


5

Vous pouvez garder une trace des 10-15 dernières images et compter le nombre de pixels blancs de ces images. Vous pouvez différencier s'il s'agit d'un véhicule ou non, puisque le graphique sera élevé pour 10-15 images, vous pourrez dire que c'est un véhicule sinon c'est du bruit.

Pour compter plusieurs voitures dans plusieurs voies côte à côte, vous pouvez vérifier la colonne en pixels, je veux dire verticalement. Pour le moment, vous devez vérifier les pixels horizontalement pour les pixels blancs.


Oui, vous avez raison de vérifier les lignes verticales, mais comment? Puis-je déterminer le point d'entrée des véhicules en vérifiant la première ligne de mon ROI?
Horizon1710
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.