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.)
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.
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:
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?
la source
Réponses:
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.
la source