Explication du suivi de couleur#
Qu’est-ce que le suivi d’une couleur et comment la CMUcam4 le fait-elle ?#
Le suivi de couleur est la capacité de prendre une image, d’isoler une couleur particulière et d’extraire des informations sur l’emplacement d’une région de cette image qui contient uniquement cette couleur. À titre d’exemple, supposons qu’on vous donne une photographie contenant une balle rouge posée sur un chemin de terre. Si quelqu’un vous demandait de dessiner un cadre autour de tout ce qui est de couleur rouge dans l’image, vous dessineriez assez facilement un rectangle autour de la balle. C’est l’idée de base du suivi de couleur. Vous n’aviez pas besoin de savoir que l’objet était une balle. Vous aviez seulement besoin d’avoir une notion de la couleur rouge afin d’isoler l’objet dans l’image. Ci-dessous, nous aborderons brièvement la manière dont la CMUcam4 utilise réellement les informations d’une image de caméra pour effectuer le suivi de couleur.
Afin de spécifier une couleur, vous devez définir une valeur minimale et une valeur maximale admissibles pour trois canaux de couleur. Chaque couleur unique est représentée par une valeur de rouge, de vert et de bleu qui indique la quantité de chaque canal mélangée dans la couleur unique. La partie délicate de la spécification d’une couleur est que vous devez définir une plage de valeurs admissibles pour les trois canaux de couleur. Comme la lumière n’est pas parfaitement uniforme et que la couleur d’un objet n’est pas parfaitement uniforme, vous devez tenir compte de ces variations. Cependant, vous ne voulez pas trop assouplir ces bornes, sinon de nombreuses couleurs indésirables seront acceptées. Comme, dans le cas de la CMUcam4, chaque canal de couleur est converti en un nombre compris entre 0 et 255, vous pouvez délimiter chaque canal avec deux nombres, une limite supérieure et une limite inférieure. Si vous avez deux limites pour chacun des trois canaux, cela signifie que six valeurs peuvent être utilisées pour contraindre l’ensemble de l’espace colorimétrique que vous souhaitez suivre. Si vous imaginez les couleurs représentées par un cube où chaque côté est un canal de couleur différent (rouge, vert et bleu), alors les six valeurs utilisées pour sélectionner votre couleur dessineraient une boîte tridimensionnelle à l’intérieur de ce cube qui définit votre ensemble de couleurs souhaité.
Une fois que vous disposez d’une délimitation pour la couleur que vous souhaitez suivre, la CMUcam4 prend ces bornes et traite l’image. Il existe de nombreuses façons de suivre les couleurs dans une image, qui peuvent être assez complexes. La CMUcam4 utilise un algorithme simple à une seule passe qui traite indépendamment chaque nouvelle image provenant de la caméra. Il commence en haut à gauche de l’image et examine séquentiellement chaque pixel, rangée par rangée. Si le pixel qu’il inspecte se situe dans la plage de couleurs spécifiée par l’utilisateur, il marque ce pixel comme étant suivi. Il examine également la position du pixel suivi actuel pour voir s’il s’agit de la position la plus haute, la plus basse, la plus à gauche ou la plus à droite de tous les pixels suivis trouvés jusqu’à présent dans l’image. S’il constate que le pixel se trouve en dehors du cadre englobant actuel de la région suivie, il agrandit le cadre englobant pour contenir ce nouveau pixel. Comme l’emplacement d’un seul pixel suivi peut modifier le cadre englobant, celui-ci peut parfois fluctuer considérablement d’une image à l’autre. Le filtrage du bruit (voir le paragraphe suivant) peut être utilisé pour réduire une partie de cette fluctuation. La seule autre information majeure qui est stockée est une somme des coordonnées horizontales et verticales des pixels suivis. À la fin de l’image, la CMUcam4 prend la somme horizontale et la somme verticale des pixels suivis et divise chacune par le nombre total de pixels suivis, et obtient une valeur qui indique où se situe le milieu de l’objet suivi. Comme chaque pixel suivi ne contribue que pour une petite part aux sommes horizontale et verticale finales, le milieu (souvent appelé centroïde) des pixels suivis est généralement une mesure bien plus stable que le cadre englobant. Une fois que tous les pixels de l’image ont été vérifiés, le nombre total de pixels suivis peut également être utilisé conjointement avec l’aire du cadre englobant pour calculer la confiance et le nombre de pixels de l’objet suivi.
Le filtrage du bruit nous permet d’élargir les plages de suivi de couleur afin de tenir compte de plus grandes variations des valeurs de pixels de l’image sans provoquer le suivi d’autres variations aléatoires de l’image. L’idée derrière le filtrage du bruit est que nous ne voulons considérer un pixel comme étant de la couleur suivie que s’il fait partie d’un groupe de pixels situés dans les bornes de suivi de couleur. Dans la CMUcam4, nous implémentons cela d’une manière qui ne nécessite qu’une seule passe sur l’image. Pendant le traitement des pixels d’une image, la CMUcam4 maintient un compteur qui garde la trace du nombre de pixels séquentiels de la rangée actuelle, avant le pixel actuel, qui se trouvaient dans les bornes de la couleur suivie. Si cette valeur est supérieure à la valeur du filtre de bruit, alors le pixel actuel est marqué comme pixel suivi.
Qu’est-ce qu’un histogramme et à quoi sert-il ?#
Un histogramme est un type de graphique qui affiche la fréquence et la distribution des données. Dans le cas de la CMUcam4, l’histogramme montre la fréquence et la distribution des valeurs de couleur présentes dans une image. Chaque barre représente une plage de valeurs de couleur pour un canal spécifique. La CMUcam4 peut diviser les valeurs de couleur possibles de 0 à 255 en 1, 2, 4, 8, 16, 32 et 64 classes (bins) différentes. Chaque classe contient le nombre de pixels de l’image qui se situent dans certaines bornes de couleur. Ainsi, une grande valeur dans une classe particulière signifie que beaucoup de ces couleurs ont été trouvées dans l’image. Chaque histogramme ne représente qu’un seul canal de couleur sélectionné.
Les histogrammes sont un moyen d’abstraire le contenu d’une image. Ils ont de nombreuses utilisations telles que la reconnaissance d’objets primitive, le seuillage ou l’équilibrage des couleurs. Ils sont particulièrement utiles pour distinguer différentes textures. Essayez de pointer la CMUcam4, avec le gain automatique désactivé, vers deux surfaces de textures différentes et remarquez la différence dans leurs distributions de couleurs. Cet effet peut être utilisé pour distinguer les surfaces de sol ou détecter des obstacles.