Filmora
Filmora-Éditeur vidéo, Créateur
Application de montage vidéo puissante mais simple
OUVRIR

Wondershare Filmora

Le meilleur éditeur vidéo pour les créateurs

  • Fonctions d'édition vidéo gratuites et puissantes : Édition du Copilot IA, Image IA, Rédaction d'IA, Musique IA, Fond vert, Text to Speech (TTS) , Speech to Text (STT) ;
  • Prend en charge plusieurs formats d'exportation et partage sur les plateformes sociales en un seul clic ;
  • 10 M+ de ressources créatives ;

Suivi d'objets OpenCV : Le guide complet en 2024

Marion Dubois
Marion Dubois Publié initialement Oct 26, 22, mis à jour Mar 12, 24

Le suivi OpenCV est une méthode populaire utilisée pour suivre des objets dans une vidéo en temps réel. OpenCV est une bibliothèque puissante utilisée pour les applications de traitement d'images et de vision par ordinateur.

De l'analyse vidéo en temps réel à la réalité augmentée, OpenCV Tracking a un large éventail d'utilisations et peut aider les secteurs privé et public à détecter et à suivre l'objet souhaité dans une image ou une vidéo.

Dans ce guide complet, nous allons explorer le suivi OpenCV et ses trackers pré-construits. Nous utiliserons la bibliothèque OpenCV et Python pour mettre en œuvre cette application de suivi d'objets.

Dans cet article
    1. SOT et MOT
    2. La différence entre le repérage et la détection
    1. Suivi des images
    2. Suivi des vidéos
  1. Quelles sont les difficultés du suivi d'objets ?
    1. Étapes du processus de suivi des objets
    2. Méthodes de suivi des objets
    1. Qu'est-ce qu'OpenCV ?
    2. Les algorithmes préconstruits offerts par OpenCV pour le suivi d'objets
    3. Implémentation en Python et OpenCV

Partie 1. Qu'est-ce que le suivi d'objets ?

Le suivi d'objets détermine l'emplacement d'un objet dans une vidéo et peut être utilisé à des fins diverses, notamment la surveillance, la sécurité, le contrôle du trafic, la criminalistique numérique, la détection d'anomalies, la reconnaissance de gestes, la surveillance visuelle, l'interaction homme-machine, la réalité augmentée et la vision robotique.

Même si cela peut sembler facile pour une personne ordinaire, le suivi d'un objet est assez complexe pour les ordinateurs, car ils doivent analyser un ensemble d'images et estimer la trajectoire de l'objet en se basant sur des chiffres plutôt que sur des images.

En raison de sa complexité, le suivi des objets est considéré comme l'une des tâches les plus difficiles de la vision par ordinateur. Même s'il s'agit d'un défi, il n'est pas impossible à relever.

Et il y a deux niveaux de suivi d'objet que vous devez connaître :

1. SOT et MOT

  1. Single Object Tracking (SOT): SOT est un algorithme de suivi qui crée des modèles d'apparence avancés et/ou des modèles de mouvement pour gérer des problèmes difficiles comme les rotations hors plan, les variations d'éclairage ou les changements d'échelle.
  2. Multiple Object Tracking (MOT): MOT suit toutes les parties d'une vidéo et s'occupe principalement des tâches de niveau moyen et sert de base aux tâches de haut niveau.

Pour mieux comprendre les deux niveaux de suivi d'objet, veuillez lire notre article sur le sujet : Un guide complet du suivi multi-objets. 

2. La différence entre le suivi et la détection

Après avoir appris ce qu'est le suivi d'objets, il existe un autre concept que vous devez connaître : la détection d'objets.

Le suivi et la détection d'objets sont deux méthodes importantes en vision par ordinateur. Le suivi d'objet permet de suivre en temps réel la position d'un objet donné dans une image, tandis que la détection d'objet identifie et localise les objets dans une image ou une vidéo. C'est là toute la différence.

Partie 2. Les types de suivi d'objets

Suivi des images

Le suivi d'image permet aux utilisateurs d'interagir plus naturellement avec le contenu numérique et les aide à se déplacer et à interagir avec les objets numériques de la même manière qu'avec les objets physiques du monde réel.

Le suivi des images peut être utilisé dans diverses applications de réalité augmentée (RA), telles que les jeux, le shopping et la navigation en RA. En outre, vous pouvez également l'utiliser à des fins pédagogiques, par exemple pour enseigner l'anatomie ou fournir des instructions pour une tâche difficile.

Suivi des vidéos

Le suivi vidéo est le processus de suivi des objets dans une séquence vidéo et peut être utilisé pour diverses applications, telles que la détection et le comptage des objets dans une scène, la compréhension de leurs mouvements et la reconnaissance des activités.

Partie 3. Quelles sont les difficultés du suivi des objets ?

Comme il a été mentionné ci-dessus, l'utilisation du suivi d'objet est polyvalente. Cependant, le suivi des objets présente certains défis, tels que :

Encombrement de l'arrière-plan : L'arrière-plan peut avoir un impact sur l'extraction des caractéristiques d'un objet. Si l'arrière-plan est plus densément peuplé, la détection ou le suivi de l'objet d'intérêt peut être plus difficile.

Occlusion : Il s'agit d'un phénomène où l'objet suivi est affecté par l'arrière-plan ou le premier plan. L'algorithme de suivi est alors perturbé par la proximité de plusieurs objets, ce qui entraîne la perte de la trace de l'objet.

Variations d'échelles spatiales : Les échelles spatiales variables font référence à l'objet cible de taille ou de forme différente, ce qui peut perturber l'algorithme et entraîner des erreurs.

Formation et suivi de la vitesse : Si l'objet se déplace trop rapidement ou est trop petit, il peut être difficile à suivre. Le module de suivi doit donc être conçu pour suivre, identifier et localiser des objets en quelques secondes.

Partie 4. Étapes du processus de suivi des objets

Après l'introduction du suivi d'objets sur le plan technique, découvrons son mécanisme sous deux angles : les périodes du processus de travail et la façon dont il effectue le suivi.

1. Étapes du processus de suivi des objets

Voici les étapes du processus de suivi des objets :

Initialisation de la cible

L'initialisation de la cible est la première étape du suivi d'objets. Elle consiste à définir les cibles ou les objets d'intérêt et à dessiner une boîte englobante autour d'eux dans l'image initiale. Ensuite, le tracker doit détecter la position de l'objet dans l'image tout en dessinant la boîte englobante.

Modélisation de l'apparence

La modélisation de l'apparence est importante pour comprendre comment un objet se présentera dans différentes circonstances. Si l'objet suivi change d'aspect en raison d'un éclairage, d'un angle ou d'une vitesse différents, l'algorithme de suivi peut perdre ses informations et l'objet lui-même. Par conséquent, elle doit être menée pour permettre à l'algorithme de détecter les changements et les distorsions.

Estimation du mouvement

L'estimation du mouvement implique la capacité du modèle à anticiper avec précision la position future d'un objet.

Positionnement de la cible

L'estimation du mouvement est un processus d'approximation de la région la plus probable où un objet pourrait être présent. Une fois l'emplacement de l'objet approximé, un modèle visuel peut être utilisé pour déterminer plus précisément l'emplacement de la cible.

2. Méthodes de suivi des objets

Voici quelques méthodes de suivi des objets :

Suivi d'objets basé sur OpenCV

La méthode de suivi d'objet OpenCV est largement utilisée car elle offre plusieurs fonctions intégrées conçues spécifiquement dans ce but, telles que GOTURN, MIL, MediandFlow, et CSRT. Le type de tracker que vous choisirez dépendra de la conception de votre application spécifique. Chaque tracker a ses avantages et ses inconvénients, de sorte qu'il n'existe pas un seul type de tracker idéal pour toutes les applications.

MDNet

Multi-Domain Convolutional Neural Network Tracker est un tracker visuel basé sur des neurones convolutifs et a remporté le défi VOT2015. De plus, il est composé de couches spécifiques au domaine, de branches et de multiples couches partagées.

Le tracker MDNetT est un réseau neuronal profond qui a été entraîné sur de nombreux ensembles de données de suivi d'objets. Le traqueur est conçu pour fonctionner dans plusieurs domaines, notamment la vidéo, le texte et les images.

DeepSort

L'algorithme DeepSort peut suivre les objets en temps réel et utilise YOLO v3 pour calculer les boîtes englobantes autour des objets dans une image.

DeepSort utilise le filtre de Kalman de l'algorithme Simple Online and Realtime Tracking et un modèle d'identification, ReID, pour relier les boîtes de délimitation et les pistes des objets.

ROLO

ROLO est une nouvelle méthode de suivi des objets qui utilise des réseaux neuronaux récurrents (RNN) pour apprendre des représentations spatio-temporelles spécifiques aux objets. Cette méthode fonctionne avec YOLO, un algorithme de détection d'objets, et un LTSM pour déterminer la trajectoire d'un objet.

Partie 5. La puissante sauvegarde : OpenCV

Nous avons démontré la puissance du suivi OpenCV et son fonctionnement. Cependant, vous vous demandez ce qu'est OpenCV ? Comment cela soutient-il les objectifs de suivi en cours de réalisation ? Dans cette partie, nous allons nous concentrer sur OpenCV et vous aider à mieux comprendre les mécanismes sous-jacents.

1. Qu'est-ce qu'OpenCV ?

OpenCV est une bibliothèque puissante qui vous permet d'effectuer des tâches de traitement d'images, d'apprentissage profond, d'apprentissage automatique et de vision par ordinateur sur des flux vidéo en direct. En outre, elle peut être utilisée pour détecter des objets, suivre leurs mouvements et reconnaître des visages.

Elle peut aider à traiter les données qui comportent des vidéos et des images et a été utilisée dans diverses applications, telles que la reconnaissance et la détection d'objets, les voitures autonomes, les robots, l'analyse d'images médicales, la surveillance automatisée et la détection d'anomalies.

2. Les algorithmes préconstruits offerts par OpenCV pour le suivi d'objets

Il y a 8 algorithmes prédéfinis qu'OpenCV offre pour le suivi d'objets. Ils sont tous uniques et nous vous présentons ici leurs avantages et leurs inconvénients pour vous permettre de mieux les comprendre.

Traqueur Avantages Inconvénients
BOOSTING Tracker
  • Suivez les objets avec précision.
  • Relativement lent.
  • Impossible de s'arrêter lorsqu'un objet est perdu.
MIL Tracker
  • Forte résistance au bruit.
  • Donne des résultats précis.
  • Faible vitesse.
  • Impossible d'arrêter le suivi une fois l'objet perdu.
KCF Tracker
  • Vitesse et précision élevées.
  • Arrête le suivi lorsque l'objet est perdu.
  • Incapacité de continuer à suivre les objets une fois perdus.
TLD Tracker
  • Résistance au chevauchement et à la mise à l'échelle des objets.
  • Instable dans la détection et le suivi des objets.
  • Perd constamment l'objet.
MEDIANFLOW Tracker
  • Haute précision et rapidité.
  • Précision dans la détermination de la perte de l'objet.
  • Perd rapidement son objet en raison de sa vitesse élevée.
GOTURN Tracker
  • Montre une résistance aux obstructions et au bruit.
  • Si la vitesse d'un objet est élevée, il se déplace vers un autre objet.
MOSSE Tracker
  • Capable de poursuivre le suivi après la perte de l'objet.
  • Vitesse élevée.
  • Perd l'objet facilement si la vitesse est très élevée.
Suivi du CSRT
  • Bonne résistance au chevauchement.
  • Haute précision.
  • Vitesse lente.
  • Instable lorsqu'un objet est perdu.

3. Mise en œuvre avec Python et OpenCV

Maintenant, après l'explication théorique d'OpenCV et du suivi OpenCV, apprenons le suivi d'objets OpenCV Python avec le codage et nos instructions simples et pas à pas :

Installer les dépendances

Installez l'application pycharm sur votre PC, et lancez-la. Créez un nouveau projet et allez dans le Terminal. Installez le paquet opencv-contrib-python en collant la commande suivante dans le Terminal.

Configurer les traqueurs

Maintenant, créez un Jupyter-notebook et configurez les trackers avec ce code :

Tâches :

  • cv2. version renvoie le numéro de version de la bibliothèque OpenCV.
  • Enregistrez le nom des huit trackers.
  • Vérifiez la liste de la version sur laquelle vous travaillez et créez un objet de suivi en fonction du numéro.

Capturez l'entrée vidéo

Pour capturer l'entrée vidéo, écrivez les lignes de code suivantes :

Tâches :

  • Utilisez la classe VideoCapture pour capturer une vidéo via la webcam ou en récupérer une enregistrée sur votre PC.
  • Dans VideoCapture - ligne 2, donnez le chemin vers votre vidéo.
  • Commentez la deuxième ligne pour utiliser la webcam pour le suivi et décommentez la troisième ligne.

Création de la boîte englobante et initialisation du traqueur

Définissez une boîte englobante aléatoire initiale ou sélectionnez les choix pour l'objet que vous voulez suivre avec le code suivant :

Démarrer le traqueur et vérifier la sortie

Enfin, écrivez les lignes de code ci-dessous pour démarrer le traqueur :

Tâches

  • Lire chaque image vidéo.
  • Lancez le minuteur et, grâce au tracker, déterminez la trajectoire de l'objet.
  • Utilisez la trajectoire pour dessiner la boîte de délimitation.
  • Le programme commencera le suivi. Ensuite, appuyez sur la barre d'espacement pour arrêter le suivi.

Vidéo - Suivi d'objets avec Opencv et Python

Conclusion

Dans cet article, nous avons abordé en détail le suivi d'objet et sa comparaison avec la détection d'objet. En outre, nous avons exploré les méthodes utilisées pour le suivi des objets et fourni des conseils complets sur la méthode de suivi OpenCV et ses fonctionnalités intégrées.

Nous espérons que ce guide vous a été utile et que vous pouvez désormais suivre des objets en temps réel sans aucun problème.

Téléchargement gratuit 
Téléchargez gratuitement 
Marion Dubois
Marion Dubois Mar 12, 24
Partager l'article:
Suivez-nous:
filmora logo filmora logo
100% sécurité | Sans publicité