• Aucun résultat trouvé

Segmentation par la couleur suppos´ ee de l’objet

5.3 Segmentation automatique des images

5.3.2 Segmentation par la couleur suppos´ ee de l’objet

Nous proposons ici d’utiliser des connaissances sur les objets afin de les segmenter. ´

Etant donn´e que nous connaissons l’objet qui est cens´e ˆetre dans l’image, nous pouvons utiliser les connaissances sur cet objet, ici sa couleur, pour guider la segmentation au- tomatique. Une autre motivation de cette m´ethode est la possibilit´e de segmenter les objets qui sont constitu´es de plusieurs couleurs tels que le z`ebre ou le panda. La seg- mentation de tels objets n’est pas possible avec les algorithmes classiques `a cause du fort gradient existant aux fronti`eres entre les couleurs. Liapis et al. [77] ont d´emontr´e qu’il est possible de segmenter un z`ebre en utilisant un histogramme de luminance o`u les pixels sont classifi´es, puis les classes sont propag´ees. L’inconv´enient de cette m´ethode est que le nombre de classes doit ˆetre sp´ecifi´e avant la segmentation, et donc elle ne

Fig. 5.4 – Segmentation automatique d’une image d’une porsche. L’image de gauche est le r´esultat de la segmentation en au plus 20 r´egions. L’image de droite est ce qui reste apr`es avoir enlev´e les r´egions touchant le bord de l’image, et fusionn´e les autres r´egions. Il reste deux r´egions dans cette image, et nous conservons la plus grande, correspondant `

a la voiture rouge. Dans cet exemple, la deuxi`eme r´egion est ´egalement une voiture, mais dans le cas g´en´eral, il s’agit de bruit.

fonctionnerait pas pour les images complexes pour lesquelles, par exemple, le fond peut ˆ

etre segment´e en plusieurs r´egions. ´

Etapes de la segmentation

Pour une image et une ou plusieurs couleurs donn´ees, la segmentation de l’image s’effectue par les ´etapes suivantes :

1. classifier chaque pixel comme appartenant ou non aux couleurs donn´ees, comme expliqu´e page 109. Cela produit une image binaire avec les « pixels d’objets » et les « pixels de fond » ;

2. enlever le bruit ou les objets fins avec une ouverture selon un ´el´ement structurant de taille 1 ;

3. effectuer une fermeture par un ´el´ement structurant de taille 5 afin que les r´egions objets proches se rejoignent ;

4. garder la plus grande r´egion ;

5. enlever les trous, d´efinis comme des « pixels de fond » enti`erement entour´es par des « pixels d’objets ». Cette ´etape est fond´ee sur l’hypoth`ese que l’objet n’a pas de trou, ce qui est le cas pour la plupart des objets.

L’´etape se servant de l’information sur la ou les couleurs de l’objet est la premi`ere ´

etape, r´esultant en une image binaire. Il est possible d’utiliser plus d’une couleur dans cette ´etape, permettant ainsi de segmenter des animaux tels que le z`ebre en utilisant `a la fois les couleurs « noir » et « blanc » comme couleurs de l’objet. Les quatre autres ´

etapes ont pour but de ne conserver qu’une r´egion et d’adoucir les bords de cette r´egion. Enlever le bruit `a l’aide d’une ouverture (deuxi`eme ´etape) est utile pour ne pas am- plifier le bruit `a l’´etape suivante lors de la fermeture, comme illustr´e sur la figure 5.6 (a) :

(a) (b) (c)

(d) (e) (f)

(g)

Fig. 5.5 – ´Etapes de la segmentation. (a) : image originale, (b) `a (f) : ´etapes 1 `a 5, (g) : image finale.

les pixels en-dessous du castor se connectent ensemble de telle mani`ere qu’une partie de l’eau soit incluse dans la segmentation finale apr`es avoir enlev´e les trous. La fermeture est utile pour fusionner les r´egions proches ensemble, et am´eliorer les contours. En com- parant le haut du castor sans fermeture (figure 5.6(b)) et avec fermeture (figure 5.5), nous observons que la fermeture permet de s´eparer le trou en haut du castor du fond, afin qu’il soit effac´e lors de l’´etape suivante. D’autres r´esultats sont discut´es ci-dessous.

(a) (b)

Fig. 5.6 – Mˆeme segmentation que dans la figure 5.5, mais (a) : sans ´eliminer le bruit, en omettant l’´etape 2 ; (b) : sans faire la fermeture de l’´etape 3.

R´esultats de segmentation

Quelques exemples sont pr´esent´es dans les figures 5.7 `a 5.12.

Ces r´esultats nous permettent de mieux comprendre le rˆole de l’´etape d’´elimination : cela sert `a segmenter les objets qui sont principalement compos´es de certaines couleurs,

Fig. 5.7 – Segmentation d’un puma avec la couleur marron. La langue est incluse dans la segmentation grˆace `a l’´etape d’´elimination des trous.

Fig. 5.8 – Segmentation d’une porsche avec la couleur rouge.

Fig. 5.9 – Segmentation d’un z`ebre avec les couleurs noir et blanc.

Fig. 5.11 – Ces images ont ´et´e segment´ees avec la couleur noire. Cependant, elles ont un cadre noir qui est alors reconnu comme appartenant `a l’objet, et lors du bouchage des trous, on r´ecup`ere la quasi totalit´e de l’image originale. Cela ne concerne heureusement qu’une faible proportion d’images.

Fig. 5.12 – Segmentation d’un l´eopard avec les couleurs jaune et noir. Les animaux camoufl´es dans leur environnement ne sont pas correctement segment´es avec cette tech- nique, il faudrait inclure un traitement prenant en compte la texture.

mais ont ´egalement d’autres couleurs en faible quantit´e. Par exemple, le puma sur la figure 5.7 est principalement marron, mais pas uniquement : sa gueule est rouge, blanche et noire. Cependant, cette r´egion est enti`erement contenue dans une r´egion marron, ce qui permet de la fusionner avec l’objet. La possibilit´e de segmenter des objets ayant deux couleurs est d´emontr´ee sur les figures 5.9 et 5.10.

N´eanmoins, segmenter en utilisant seulement les noms des couleurs comme nous le faisons ici, ne donne pas de bons r´esultats pour les objets cach´es dans leur environne- ment, et nous pourrions probablement am´eliorer l’algorithme en le combinant avec un algorithme de segmentation par la texture. Nous nous sommes rendu compte ´egalement par la suite que l’introduction des noms des couleurs dans la segmentation, s’il donne un aspect s´emantique `a notre segmentation, pr´esente en revanche un manque de souplesse, notamment car le nombre de couleurs est limit´e. Par exemple, cet algorithme ne pourra pas segmenter un objet marron sur un fond marron, mˆeme si les deux teintes de marron sont diff´erentes, comme sur la figure 5.13.

Fig. 5.13 – Exemple de mauvaise segmentation `a cause du manque de finesse r´esultant de l’utilisation des noms des couleurs : l’image enti`ere est consid´er´ee comme le r´esultat de la segmentation avec les couleurs marron et noir. Le tigre et le fond sont vus par l’algorithme comme ´etant la mˆeme couleur : marron.

Il serait possible de d´efinir plus de noms de couleurs, tels que « marron fonc´e », « marron clair », « marron rougeˆatre » et de les associer avec une plage de valeurs dans l’espace TSVal, mais il semble difficile d’obtenir avec une telle pr´ecision la couleur d’un objet. De plus, d´ej`a avec seulement 11 couleurs, il est difficile de nommer la couleur de certains objets afin que cette couleur soit suffisamment discriminante. Par exemple, la couleur d’un dauphin semble ˆetre `a la limite entre le bleu et le gris, mais bleu est ´

egalement la couleur de l’eau dans laquelle ils vivent.

Afin de r´esoudre ces probl`emes, nous avons g´en´eralis´e les algorithmes ci-dessus afin qu’ils ne travaillent plus avec les noms des couleurs, mais directement avec les valeurs des pixels. De cette mani`ere, la m´ethode textuelle permettant de connaˆıtre la couleur d’un objet ne peut plus ˆetre appliqu´ee, mais la m´ethode image, qui est celle qui donne les meilleures r´esultats, fonctionne toujours. Nous proposons trois nouveaux algorithmes : le premier, inspir´e de celui que nous venons de pr´esenter, d´eduit les couleurs de l’objet et celles du fond `a partir de toutes les images collect´ees depuis Internet pour un mˆeme concept. Le second cherche, pour une image prise ind´ependamment des autres, les cou- leurs centrales et les couleurs en bordure de l’image afin d’isoler un objet centrale. Le troisi`eme, enfin, combine les avantages de ces deux algorithmes. Nous avons sch´ematis´e

ces trois strat´egies sur la figure 5.14.