Camshift
From Wikipedia, the free encyclopedia
Le Camshift (Continuously Adaptive Mean Shift) est un algorithme de segmentation d'images couleur introduit par Gary Bradski en 1998[1], le Camshift exploite habilement l'algorithme du mean-shift en modifiant la taille de la fenêtre lorsque ce dernier est arrivé à convergence. Le Camshift couplé en est une adaptation aux séquences d'images couleur, et est exploité en poursuite d'objet en temps réel. Une implémentation gratuite de cet algorithme se trouve dans la bibliothèque logicielle de vision par ordinateur OpenCV.
Le mean-shift est une approche non-paramétrique permettant (entre autres) de détecter les modes d'une distribution de probabilité par une procédure récursive convergeant vers le point de stationnarité le plus proche[2]. Cette approche tend à ignorer l'effet des outliers, compensant l'effet des distracteurs[3] et des bruits de l'image.
Les modes à trouver sont les maxima locaux de la distribution spatiale de la probabilité de teinte chair dans l'image. L'approche du Mean-Shift est une procédure itérative consistant à déplacer sur la distribution une fenêtre W, de taille fixe, de sa position à la position moyenne des points de inclus dans W pondérés par leur valeur de probabilité.

Le mean shift est un algorithme robuste[4] pour trouver les maxima d'une distribution de probabilité, où plus exactement le maxima le plus proche de sa position initiale. Toutefois, il nécessite de connaître la taille de l'objet recherché, qui est définie par l'utilisateur à l'initialisation du mean shift. La carte de probabilité est obtenue après une opération de rétroprojection[5] d'un modèle de couleur, typiquement un histogramme (modèle non paramétrique) de la couleur que l'on cherche à isoler.
Les étapes de la détection d'un mode peuvent se résumer ainsi :
- image de probabilité de la couleur peau () obtenue par rétroprojection d'un histogramme 32x32x32 dans l'espace colorimétrique HSV (pour l'exemple) construit off-line à partir d'une base d'exemples de pixels de couleur peau.
- Initialisation de la fenêtre W du mean shift: position et taille.
- Tant que W est déplacée de plus d'un certain seuil et que le nombre d'itérations maximal n'est pas atteint:
- calculer le barycentre des pixels (x, y) inclus dans la fenêtre, ainsi que leur somme (moment d'ordre zéro):
- centrer W sur le barycentre .
