• Aucun résultat trouvé

4.5 Extraction d’un ensemble de caractéristiques

4.5.1 Segmentation de la région d’intérêt

La segmentation d’une scène est aussi un thème très abordé par les chercheurs dans le domaine de la vision par ordinateur. L’utilité de réaliser une segmentation avant d’analyser une scène est qu’on peut isoler les éléments qui forment la dite scène, comme en figure 4.14 dans laquelle on peut observer différentes zones isolées en fonction de la couleur de ses pixels, dans cet exemple on a segmenté les régions correspondant au ciel et au chemin. Citons la contribution de G.Aviña [14] qui a utilisé la segmentation en couleur et en texture, pour réaliser l’identification des éléments qui se trouvent dans une scène naturelle, en particulier pour identifier la région Chemin qui pourra servir pour contrôler les mouvements d’une machine mobile autonome.

L’image segmentée de la figure 4.14 est un bon exemple de segmentation utilisant l’intensité de l’image, mais que se passerait-il si on voulait juste enlever la maison ou le chemin ? Afin qu’un système automatisé puisse le faire, il est nécessaire qu’il dispose de l’information a priori de ce qu’il doit prendre ou laisser dans cette image. Nous avons cherché une autre alternative ; dans notre cas nous allons nous servir des contours actifs afin d’arriver à notre objectif, segmenter un ou plusieurs TRUCs posés sur une table de couleur et texture uniforme.

Les méthodes fondées sur les contours actifs ou les Snakes ont été largement utilisées en vision par ordinateur pour différentes applications, comme la reconstruction 3D à partir d’images médicales, mais aussi pour la segmentation d’objets d’intérêt dans des images. Citons parmi les travaux qui utilisent les contours actifs pour la segmentation en imagerie médicale, ceux de Tauber et al. [143] qui font la segmentation de cavités cardiaques dans les images échographiques. Mais il y a bien d’autres travaux qui font usage des contours actifs comme celui de Wang et Ghosh [154] qui ont proposé une nouvelle géométrie pour le modèle de contours actifs. Le dit modèle fut implémenté en utilisant la méthode multi-échelle dite de Level Set. Nous avons aussi celui de Yuan et al. [167] qui ont proposé l’utilisation d’une nouvelle classe de force externe appelé SSEF pour Simulated Static Electric Field, définie par analogie avec des charges d’électricité statiques disposées en chaque point de contrôle suivi sur un contour : les forces de répulsion entre ces charges, permettent de conserver une distribution uniforme de ces points le long du contour pendant le déplacement du contour vers la silhouette de l’objet à segmenter.

Figure 4.15 – Initialisation du snake pour segmenter un objet dans une scène

Définissons donc un Snake. Un snake n’est pas autre chose qu’une courbe spline contrôlée par des forces qui sont présentes dans une image, mais aussi par des forces internes et externes qui délimitent l’action du Snake. Ces forces internes calculées à partir de la forme même du snake, servent à imposer des contraintes sur la souplesse de la courbe par morceaux. Les forces présentes dans l’image poussent le snake vers les discontinuités présentes dans l’image comme les contours ; les forces externes permettent d’emmener le snake près du minimum local souhaité.

En accord avec [71], on peut représenter la position d’un snake de façon paramétrique par v(s) = (x(s), y((s)), où s est l’abscisse curviligne le long du contour. Alors, on peut écrire sa fonction d’énergie comme : E∗Snake= Z 1 0 ESnake(v(s))ds = Z 1 0

Eint(v(s)) + Eimage(v(s)) + Eext(v(s))ds (4.13)

où Eintreprésente l’énergie interne qui empêche le recourbement de la spline, Eimageest l’énergie due

à l’image et Eext représente la contrainte due aux forces externes.

Dans les images 4.15 et 4.16 on peut observer la phase d’initialisation et le résultat final de l’utilisation des contours actifs pour la segmentation d’un objet dans une scène. La figure 4.16 montre le résultat, dans lequel l’objet doit être extrait du fond ; on peut observer que la segmentation n’est pas parfaite. Malgré tout cette segmentation peut être suffisante pour segmenter la région d’intérêt dans l’image et ensuite, pour réaliser les traitements nécessaires uniquement sur cette région selon les besoins. Mais ce que nous cherchons est d’avoir l’objet le mieux segmenté possible. Pour cette raison nous calculons d’abord l’image de contours de la scène (voir figure 4.17) avant d’appliquer l’algorithme de contours actifs.

Les images qu’on peut voir dans les figures 4.18 et 4.19, présentent l’initialisation et le résultat final de l’extraction du snake sur l’image de contours de la scène montrée sur la figure 4.15.

Nous pouvons constater que le résultat obtenu sur l’image des contours construite avant d’extraire le snake, est meilleur que juste l’extraction du snake sur l’image brute comme cela était proposé auparavant. Comme ce qui nous intéresse est la segmentation de l’objet de la scène, on peut voir dans la figure 4.20 l’objet tout seul dans l’image. Maintenant les processus que nous allons appliquer pour apprendre ou reconnaître des objets depuis des images, seront plus efficaces puisqu’on a enlevé le bruit qui pourrait provenir des informations présentes dans l’arrière-plan de la scène.

L’utilisation d’image des contours comme entrée de l’algorithme du Snake présente un autre avantage : le temps d’exécution de l’algorithme. La table 4.1 montre les temps d’exécution ainsi que le nombre d’itérations pour chacune des procédures.

L’algorithme de contours actifs que nous avons utilisé pour développer ces exemples, est celui développé par Xu et al. [160] [162] [161] [163]. Xu et al. ont proposé l’utilisation d’une force externe nouvelle appelée

Figure 4.16 – Segmentation finale de la boîte dans la scène.

Figure 4.18 – Initialisation de l’algorithme de contours actifs, sur l’image des contours.

Figure 4.20 – L’objet tout seul après la segmentation.

Table 4.1 – Table comparative des temps d’exécution (en secondes) de l’algorithme Snake.

Cas Itérations Temps

Sans Contours 1400 214.75

Avec Contours 300 9.46

GVF pour Gradient Vector Flow. Cette force est calculée comme une diffusion du vecteur de gradient à partir des niveaux de gris ou de la carte binaire des contours extraits de l’image. L’avantage de cette méthode est que les forces externes peuvent emmener le contour actif vers des régions concaves.

En plus nous avons complété l’algorithme présenté en [160] puisque cet algorithme ne peut pas gérer les images avec plusieurs objets et les segmenter d’une façon appropriée. Etant donné cet inconvénient, nous avons utilisé le travail de Xingfei et Jie [159] qui font une modification de la procédure présentée par Xu et Jie pour détecter plusieurs points de divergence et pour incorporer une méthode afin de séparer les contours de régions disjointes dans l’image : ceci sera utile dans notre contexte si plusieurs objets sont posés sur la table, et que notre robot doit les détecter et reconnaître séparément.

Les figures 4.21, 4.22, 4.23, 4.24 et 4.25 présentent un résultat sur l”extraction de plusieurs composantes dans une image, ici des pièces posées sur une table : on peut constater que les 4 pièces sont extraites. Les figures 4.26, 4.27, 4.28, 4.29 et 4.30 montrent un exemple en utilisant une image de synthèse. Dans ces images, à la différence de l’exemple précédent ou de l’image avec la boîte, la table sur laquelle l’objet est posé, a une texture non uniforme.

On peut observer (fig. 4.30) que la segmentation n’est pas parfaite mais c’est beaucoup mieux de perdre un peu d’information que de traiter toute l’image pour la reconnaissance, vu les inconvénients que

Figure 4.23 – Initialisation du snake. Figure 4.24 – Image finale de la segmentation.

Figure 4.25 – Les objets après la segmentation.

Figure 4.26 – Image à segmenter. Figure 4.27 – Image des contours.

Figure 4.30 – L’objet tout seul après la segmentation.

cela entraîne.

Une fois finie la segmentation on peut réaliser toutes les procédures nécessaires pour créer une base de données plus précise et plus fiable qu’en utilisant toute l’information de la scène. Cette procédure peut aussi détecter l’absence d’informations dans une image ; dans notre cas, le fait que rien n’est posé sur la table ; en ce cas l’image résultat de la segmentation sera toute noire, ou bien le snake va s’accrocher sur du bruit facile à filtrer.

Elimination des ombres

Les ombres qui se produisent au moment de prendre les images sont normalement indésirables puis- qu’elles vont produire du bruit pendant les processus que nous voulons appliquer aux dites images ; cela sera surtout sensible pendant la phase de segmentation de l’objet présent sur l’image par la méthode des contours actifs. Alors on doit, soit apprendre à vivre avec elles, soit les enlever de l’image.

Cette procédure d’élimination des ombres a été abordée par plusieurs chercheurs parmi lesquels G.Aviña et al. [13] : ils font disparaître les ombres des images réelles. En prenant la même procédure nous avons enlevé les ombres des images exploitées ensuite pour faire la reconstruction et la reconnais- sance des objets.

Figure 4.31 – Elimination des ombres : résultat sur une image de synthèse de la tasse.

Dans les images que nous montrons dans les figures 4.31 nous pouvons apprécier dans l’image de droite, ce qui reste de l’image de gauche après avoir enlevé l’ombre.

Dans tous nos traitements décrits ci-après, nous allons donc segmenter l’image en gardant seulement la partie contenant l’information utile pour notre analyse. Un exemple de cela est donné en figure 4.32 ; cette image est l’extraction de l’information utile sur l’image présentée en figure 4.20.

Figure 4.32 – Boîte délimitant l’objet.

Figure 4.33 – Objet pour lequel on calcule la

signature. Figure 4.34 – Shape signature du triangle