11 votes

Quelle est la meilleure méthode pour la détection d'objets dans une vidéo en mouvement à faible résolution ?

Je cherche la méthode la plus rapide et la plus efficace pour détecter un objet dans une vidéo en mouvement. Ce qu'il faut savoir sur cette vidéo : Elle est très granuleuse et de faible résolution, et l'arrière-plan et le premier plan se déplacent simultanément.

Remarque : j'essaie de détecter un camion en mouvement sur une route dans une vidéo en mouvement.

Méthodes que j'ai essayées :

Formation d'une cascade de Haar - J'ai essayé de former les classificateurs à l'identification de l'objet en copiant plusieurs images de l'objet souhaité. Il s'est avéré que cette méthode produisait de nombreuses fausses détections ou aucune détection (l'objet recherché n'a jamais été détecté). J'ai utilisé environ 100 images positives et 4000 négatives.

Points clés SIFT et SURF - Lorsque j'ai essayé d'utiliser l'une ou l'autre de ces méthodes basées sur les caractéristiques, j'ai découvert que l'objet que je voulais détecter avait une résolution trop faible et qu'il n'y avait donc pas assez de caractéristiques à faire correspondre pour obtenir une détection précise. (L'objet souhaité n'a jamais été détecté)

Correspondance des modèles - C'est probablement la meilleure méthode que j'ai essayée. C'est la plus précise, mais aussi la plus difficile à mettre en œuvre. Je peux détecter l'objet pour une vidéo spécifique à l'aide d'un modèle découpé dans la vidéo. Cependant, la précision n'est pas garantie car tout ce qui est connu est la meilleure correspondance pour chaque image, aucune analyse n'est faite sur le pourcentage de correspondance entre le modèle et l'image. En fait, cette méthode ne fonctionne que si l'objet est toujours présent dans la vidéo, sinon la détection sera erronée.

Voilà donc les trois grandes méthodes que j'ai essayées et qui ont toutes échoué. Ce qui fonctionnerait le mieux, c'est quelque chose comme la correspondance des modèles, mais avec une invariance d'échelle et de rotation (ce qui m'a amené à essayer SIFT/SURF), mais je n'ai aucune idée de la manière de modifier la fonction de correspondance des modèles.

Quelqu'un a-t-il des suggestions sur la meilleure façon d'accomplir cette tâche ?

5voto

Martin Thompson Points 10843

Appliquer flux optique à l'image et la segmente ensuite en fonction du champ d'écoulement. L'écoulement en arrière-plan est très différent de l'écoulement "objet" (qui diverge ou converge principalement selon qu'il se rapproche ou s'éloigne de vous, avec également une certaine composante latérale).

Voici un vieux projet qui fonctionnait de cette manière :

http://users.fmrib.ox.ac.uk/~steve/asset/index.html

2voto

Ivan Points 4558

Ce document sur la détection des véhicules utilise un Banque de filtres de Gabor pour la détection de bas niveau et utilise ensuite la réponse pour créer l'espace des caractéristiques dans lequel il entraîne un système de détection de bas niveau. Classificateur SVM .

La technique semble bien fonctionner et est au moins invariante à l'échelle. Je ne suis cependant pas sûr de la rotation.

1voto

endolith Points 4183

Ne connaissant pas votre dossier de candidature, ma première impression est la suivante corrélation croisée normalisée D'autant plus que je me souviens avoir vu un corrélateur croisé purement optique dont l'exemple d'application était le suivi de véhicules. (Suivi d'un véhicule lors de son passage en utilisant uniquement des composants optiques et une image du côté du véhicule - j'aimerais pouvoir retrouver le lien). Cette méthode est similaire (sinon identique) à la "correspondance des modèles", qui, d'après vous, fonctionne en quelque sorte, mais qui ne fonctionnera pas si les images sont tournées, comme vous le savez.

Cependant, il existe un méthode apparentée basée sur les coordonnées log-polaires qui fonctionnera indépendamment de la rotation, de l'échelle, du cisaillement et de la translation.

J'imagine que cela permettrait également de repérer que l'objet a quitté la scène de la vidéo, puisque la corrélation maximale diminuera.

0voto

UsAaR33 Points 1036

De quelle résolution parlons-nous ? Pourriez-vous également donner des précisions sur l'objet ? S'agit-il d'une couleur spécifique ? A-t-il un motif ? Les réponses à ces questions déterminent ce qu'il convient d'utiliser.

Par ailleurs, il se peut que je lise mal votre déclaration relative à la correspondance des modèles, mais j'ai l'impression que vous la surentraînez (en la testant sur la même vidéo que celle d'où vous avez extrait l'objet ?)

0voto

BrainCore Points 1936

Une cascade de Haar nécessitera un grand nombre de données d'entraînement de votre part et sera pauvre pour tout ajustement de l'orientation.

La meilleure solution consiste à combiner la recherche de modèles avec un algorithme similaire à celui de camshift in opencv (5,7MB PDF) ainsi qu'un modèle probabiliste (à vous de le découvrir) permettant de déterminer si le camion figure toujours sur l'image.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X