• Aucun résultat trouvé

Installation

Dans le document Système de suivi de mouvement (Page 52-57)

Nous avons installé le système comprenant une caméra, une base réglable, une cage, un sujet de suivi et un ordinateur portable dans un laboratoire comme la figure 4.1 et avons par la suite de fait des expériences. Nous avons placé la caméra sur le dessus de la cage pour obtenir une vue complète de celle-ci [32]. Pour ce faire, nous avons eu recours à une webcam Logitech C170. Cette webcam légère et facile à utiliser peut fournir une image vidéo de haute qualité. Les caractéristiques techniques de la webcam Logitech C170 sont affichées dans le tableau4.1.

Figure 4.1 – Système de suivi de mouvement.

L’ordinateur qu’on a utilisé dans cette expérience est un laptop Dell Inspiron N5110. Ses caractéris- tiques techniques sont affichées dans le tableau4.2.

Nous avons utilisé Python 3.6 et OpenCV sur Spyder 3.2.8 pour la programmation dans ce projet. Notre système est un système en ligne ; cela signifie que nous capturons une vidéo (qui n’est qu’une

Webcam Logitech C170 Brand Logitech Model C170 Connectivity USB 2.0 Video Capture HD 720p Up to 1280 x 720, 640x480 Photo Up to 5 megapixel

Image Sensor Type Cmos

Focal Lenght 2.3mm

Frame Rate(max) 30

TABLE4.1 – Les caractéristiques techniques de la webcam Logitech C170. Laptop Dell Inspiron N5110

Brand Dell

Model 15R N5110

Operating System Type 64-bit

Processor Intel Core i5-2450M (2nd Gen)

Clock-speed 2.5 Ghz

Chipset Intel HM67 Express

Graphic Processor NVIDIA GeForce

RAM Capacity 4 GB

RAM type DDR3

HDD Capacity 500 GB

HDD type SATA

TABLE4.2 – Les caractéristiques techniques laptop Dell Inspiron 15R N5110.

séquence d’images), procédons image par image et affichons les résultats. Mais il est facile de modifier les paramètres et de l’utiliser en tant que système hors ligne, ce qui signifie que nous pouvons envoyer un fichier vidéo comme paramètre de fonction, procédons image par image et affichons les résultats. Les deux cas (en ligne / hors ligne) sont vérifiés.

4.2

Calibration de la caméra

La calibration de la caméra est le processus d’estimation des paramètres intrinsèques et extrinsèques. Les paramètres intrinsèques traitent des caractéristiques internes de l’appareil photo, telles que la dis- tance focale, la distorsion, le centre de l’image et l’inclinaison. Les paramètres extrinsèques décrivent sa position et son orientation dans le monde.

La connaissance des paramètres intrinsèques est une première étape essentielle pour la vision numé- rique, car elle nous permet d’estimer la structure de la scène dans un espace euclidien et d’éliminer les distorsions de l’objectif, qui dégradent la précision.

Pour calibrer une caméra, nous devons fournir quelques exemples d’images d’un motif bien défini (par exemple, un échiquier). Pour obtenir de meilleurs résultats, nous avons besoin d’au moins 10 modèles de test. La figure4.2montre une image d’échiquier que nous avons utilisé pour calibrer la caméra.

Figure 4.2 – Image d’échiquier utilisé pour calibrer la caméra.

Comme nous l’avons mentionné précédemment, en calibrant une caméra, nous allons atteindre les paramètres intrinsèques. Les paramètres intrinsèques consistent en la distance focale ( fx, fy), le centre

optique, appelé point principal (cx,cy), et le coefficient de biais. Il est exprimé sous forme de matrice

3x3. Nous avons installé notre caméra et exécuté le programme de Python pour calibrer la caméra. Nous corrigeons d’abord ces distorsions et puis obtenons les paramètres intrinsèques. La matrice de la caméra obtenue par la calibration est indiquée ci-dessous.

Camera Matrix =    1.2827e + 4 0 3.6991e + 4 0 2.8005e + 3 8.1547e + 3 0 0 1   

Comme il est indiqué dans le tableau4.1, la distance focale de la caméra (F) est 2.3 mm. La distance de la caméra au sujet (D) est de 450 mm. Si nous obtenons la position du sujet, par exepmle (260, 150), en utilisant la règle en forme de triangle similaire, la position réelle dans l’unité mondiale(mm) sera :

12827/260 = (2.3 + 450)/Px=> Px= 9.16 mm

2800.5/150 = (2.3 + 450)/Py=> Py= 24.22 mm

Donc, la position réelle du sujet est (9.16, 24.22)

L’erreur de reprojection est utilisée dans de nombreux documents de vision numérique. La manière correcte de vérifier la précision de la calibration de la camera consiste à utiliser l’erreur de reprojection fournie par OpenCV. L’erreur de reprojection est l’erreur RMS entre l’endroit où les points seraient

projetés à l’aide des coefficients intrinsèques et leur emplacement dans l’image réelle. En règle gé- nérale, une erreur RMS doit être inférieure à 0.5 px. Nous avons obtenu RMS = 0.18 px dans cette expérience.

4.3

Suivi du sujet

Comme nous l’avons expliqué au chapitre précédent, nous avons utilisé l’algorithme AdaBoost pour suivre un objet. Le classificateur doit être formé au moment de l’exécution avec des exemples positifs (objet) et négatifs (arrière-plan) de l’objet. Le cadre de sélection initial fourni par l’utilisateur est pris comme exemple positif de l’objet et de nombreux correctifs d’image en dehors du cadre de sélection sont utilisés comme arrière-plan. En ayant un nouveau cadre, le classificateur est appliqué à chaque pixel voisin de l’emplacement précédent, et le score du classificateur est enregistré. Le nouvel empla- cement de l’objet est celui où le score est maximal. Par conséquent, il y a maintenant un autre exemple positif de classificateur. Le classificateur est mis à jour avec ces données supplémentaires.

Dans la première image, nous déterminons une image de sélection comprenant l’objet affiché à la figure4.3

Figure 4.3 – Une image de sélection incluant le sujet dans la première image. La vidéo est en ligne. Puis nous lisons les images de la vidéo en boucle. L’algorithme de suivi tente de trouver le centre du cadre de sélection du sujet la figure4.4.

Nous pouvons jouer une vidéo en ligne ou lire une vidéo à partir du fichier. Nous avons vérifié l’al- gorithme AdaBoost en ligne pour suivre une souris et essayé de suivre la souris dans deux différentes conditions dans une vidéo à partir du fichier.

1- Au début, la position de la caméra est changée pendant le test. Nous voulons juste voir la robustesse d’algorithme, la position réelle de la souris n’est pas importante dans ce test. Cependant, lorsque nous

Figure 4.4 – Utiliser l’algorithme AdaBoost en ligne pour suivre un ballon vert dans une cage. La vidéo est en ligne.

changeons la position de la caméra, l’algorithme fonctionne bien et elle trouve correctement le cadre de sélection de l’objet sélectionné. La figure4.5montre les résultats du suivi.

Figure 4.5 – Utiliser l’algorithme AdaBoost en ligne pour suivre une souris noire dans une cage et la position de la caméra est modifiée. La vidéo est hors ligne.

2- Ensuite, nous avons essayé de suivre une souris blanche dans une cage grise [8]. Trouver le cadre de sélection de l’objet dans cette condition est compliqué, la figure4.6montre les résultats du suivi. Le taux de réussite de l’algorithme à trouver le sujetL’ est 90.78%.

Figure 4.6 – Utiliser l’algorithme AdaBoost en ligne pour suivre une souris blanche dans une cage grise. La vidéo est hors ligne[8].

Le chemin du sujet dans un diagramme en 2D est affiché à la figure4.7.

Figure 4.7 – a) Le chemin de la souris blanche dans la cage grise. b) Le chemin de la souris noire. c) Le chemin du ballon vert.

La plupart des approches existantes construisent une représentation du sujet cible avant le début de la tâche de suivi et utilisent donc une représentation fixe pour gérer les modifications d’apparence pendant le suivi. Cependant, l’algorithme AdaBoost en ligne fait les deux, c’est-à-dire s’ajuster aux variations d’apparence lors du suivi et sélectionner les caractéristiques appropriées qui peuvent ap- prendre tout objet et le différencier de l’arrière-plan environnant. La base est un algorithme AdaBoost en ligne qui permet de mettre à jour les caractéristiques du classificateur pendant le suivi. En outre, le calcul efficace des caractéristiques permet d’utiliser ce suivi dans des applications en temps réel. Les résultats expérimentaux montrent que l’algorithme AdaBoost en ligne a les caractéristiques de temps réel, de précision et de stabilité.

Dans le document Système de suivi de mouvement (Page 52-57)

Documents relatifs