Projet C IG (1A)

IHM (2A)


VR/AR/Post-WIMP (3A)


Projet image (2A)


HCI (MoSIG 2)


Test Logiciel


Projects Docs

PrecedentMenuSuivant

Analyse des performances

On chronomètre les différentes étapes de notre algorithme lors de la phase de suivi du visage. L'acquisition vidéo dispose d'une nouvelle image 25 fois par seconde, soit une image toutes les 40 millisecondes. Pour un asservissement efficace de la caméra, nous souhaitons que le traitement d'une image dure moins longtemps que ces 40 millisecondes, afin d'être prêt à temps pour traiter l'image suivante.

Le tableau suivant expose les performances de l'algorithme lorsqu'il prend en entrée l'image de la caméra dans sa résolution native (640 x 480 pixels), et lorsqu'on commence par sous-échantillonner l'image (la suite de l'algorithme s'applique donc à une image de dimensions 320 x 240).

 Sous-échantillonnageDétection couleur de peauConnexitéTracking et asservissementAffichage Total
Sans sous-échantillonnage-20ms14ms1ms4ms 39ms
Avec (x2)12ms9ms4ms1ms2ms 28ms


Les étapes critiques sont donc celles qui demandent un traitement systématique pour chaque pixel de l'image, à savoir la détection des pixels couleur peau, et la recherche des zones connexes dans l'image binaire. Le suivi du visage et l'élaboration des commandes à envoyer à la caméra ne demandent qu'une fraction négligeable des 40ms dont nous disposons.

En termes de performances qualitatives, le sous-échantillonnage de l'image n'entraîne pas de dégradation : notre algorithme ne nécessite pas une précision au pixel près, une image de 320x240 est donc amplement suffisante. Le lissage de l'image causé par son sous-échantillonnage diminue même légèrement le bruit de fond.

En revanche, le sous-échantillonnage améliore radicalement les performances temporelles. Si le sous-échantillonnage lui-même demande un investissement de temps au départ, celui-ci est largement compensé par l'accélération de la détection de peau et de la recherche de connexité qui s'en suivent. Le tracking et l'asservissement, qui ne raisonnent plus au niveau des pixels, restent cependant inchangées.

Les temps totaux indiqués dans le tableau tiennent compte de la durée de l'affichage. Celui-ci n'est utile que dans le cadre du développement de l'application, et sa durée pourrait être retirée du total.

Notre algorithme peut donc fonctionner en temps réel, et ce même en pleine résolution. Cependant les durées indiquées sont des moyennes ; pour les deux étapes les plus gourmandes en temps, il faut tenir compte de la variance. La durée nécessaire à la détection de couleur de peau est indépendante de l'image en entrée : un même nombre de calculs est toujours nécessaire. En revanche la recherche des zones connexes est plus lente lorsqu'il y a beaucoup de pixels couleur peau à l'écran. Dans certains cas dégénérés, l'algorithme peut nécessiter deux fois plus de temps que la moyenne.

Ainsi, l'algorithme fonctionnant à pleine résolution est susceptible de dépasser les 40 millisecondes dans certains cas particuliers, et donc de rater une image de l'acquisition vidéo. L'asservissement de la caméra reposant sur le principe que deux images consécutives ont toujours été prises à 1/25e de seconde d'intervalle, il vaut mieux minimiser l'apparition de ce phénomène.

L'algorithme appliqué à l'image sous-échantillonnée bénéficie d'une grande marge d'erreur, il garantit donc de toujours passer en-dessous de la barre des 40ms, quelle que soit l'image à l'écran et le temps nécessaire à l'étape de connexité.

PrecedentMenuSuivant
 Retour haut de la page 
Edit - History - Upload - Print - Recent Changes - Search
Page last modified on June 14, 2007, at 02:30 PM