Méthodes d’analyse de textures 2D et solides
L’analyse des textures est un sujet ancien de l’analyse d’image et de la vision par ordinateur. Les techniques existantes sont utilisées pour identifier une texture quelconque ou diviser une image texturée en plusieurs régions comportant des caractéristiques identiques. Nous les retrouvons dans plusieurs domaines d’application comme l’analyse de scènes et de vidéos, l’imagerie médicale, l’industrie etc. Les recherches en analyse de textures se divisent en trois grandes catégories : la classification, permettant de reconnaître une texture donnée ; la segmentation, ayant pour objectif d’identifier les différentes classes de textures dans une même image ; et la synthèse de textures qui peut être également utilisée pour la compression d’images. Différents types d’images comprenant les images binaires, en niveaux de gris et en couleurs sont concernés par ces outils d’analyse. Selon les données à traiter, les techniques d’analyse de textures peuvent varier. Pour analyser une texture couleur, il est possible d’utiliser une méthode standard d’analyse de textures en niveaux de gris sur chacun des canaux RGB, mais certains auteurs préfèrent la combinaison d’informations afin de traiter des entités simples [Shi et Funt, 2007]. Cette thèse traite plus particulièrement des méthodes d’analyse de textures en niveaux de gris. Dans cet état de l’art, nous présentons tout d’abord les notions et la terminologie essentielles concernant les textures et leur analyse, avec notamment une discussion sur les propriétés perceptuelles concernant les textures. Par la suite, nous passons en revue les principaux descripteurs de textures utilisés sur les images texturées 2D et 3D.
Notion de textures
Les familles de textures
Dans la littérature, il est souvent question de plusieurs familles de textures avec notamment les textures déterministes, les textures stochastiques et les textures observables [Gool et al., 1985] (figure 1.1) . Les textures déterministes se caractérisent par la répétition d’un motif géométrique aussi appelé « texton ». Ce genre de textures peut donc facilement être synthétisé à partir d’un motif si on connaît son orientation et sa taille. 23 Méthodes d’analyse de textures 2D et solides Au contraire, les textures stochastiques sont irrégulières. Elles obéissent à certaines lois statistiques et peuvent être considérées comme une réalisation d’un champ aléatoire bidimensionnel. Une texture observable se décrit comme un mélange entre une texture stochastique et une texture déterministe. En effet, à l’intérieur de ce type de textures, nous pouvons trouver une répétition de motifs très similaires mais pas identiques. (a) (b) (c) (d) (e) (f) (g) (h) (i) (j) (k) (l) Fig. 1.1 – Exemple de familles de textures : [a-d] textures déterministes, [e-h] textures observables, [i-l] textures stochastiques Certains auteurs n’utilisent pas le vocabulaire précédent et préfèrent parler de textures structurées (macro-textures) ou de textures aléatoires (micro-textures) [Unser, 1995]. Les textures structurées ont pour caractéristique la répétition de primitives à intervalles réguliers. Parmi elles, nous pouvons différencier les textures parfaitement périodiques (textures déterministes) et les textures dont les primitives ont subi quelques transformations (textures observables). Les textures aléatoires (textures stochastique) se distinguent par un aspect plus fin (sable, herbe, etc.). Il est difficile d’en isoler une primitive de base et d’identifier une fréquence de répétition. Il existe une grande diversité de textures. Certains ouvrages mettent à disposition des textures avec différentes propriétés, très utiles pour tester les algorithmes et les méthodes. Parmi ceux-ci, la base présentée dans [Brodatz, 1966] et la base Meastex (http://www.texturesynthesis.com/meastex/meastex.html) proposent des collections de textures naturelles 2D en niveaux de gris souvent utilisées pour tester les algorithmes d’analyse et de classification. Ces bases pourront nous servir d’exemples pour la génération de nouvelles images ou pour tester certaines de nos méthodes.
Comment définir une texture ?
Donner une définition précise du terme « texture » est quelque chose de difficile. Il en existe un grand nombre et [Coggins, 1983] nous en donne un panel dont voici quelques exemples : – « Une région dans une image contient une texture constante si un ensemble de statistiques locales ou autres propriétés de la fonction image sont constantes, varient faiblement ou sont approximativement périodiques.[Sklansky, 1978] » – « Une image texturée est décrite par le nombre et les types de ses primitives tonales ainsi que leurs orientations spatiales. Elle ne peut pas être analysée sans une vue de la primitive tonale de référence. Pour certaines surfaces ayant un ton de gris flouté, il existe une échelle telle que la texture est inexistante. Au fur et à mesure que la résolution augmente, on observe une texture fine puis une texture grossière.[Haralick, 1979] » Dans sa thèse, [Unser, 1984] donne une définition perceptuelle de la texture : – « Une texture est une région d’une image pour laquelle il est possible de définir une fenêtre de dimensions minimales, telle qu’une observation au travers de celle-ci se traduit par une perception (impression) visuelle identique pour toutes les translations possibles de cette fenêtre à l’intérieur de la région considérée. » Certaines de ces définitions décrivent les textures de façon perceptuelle, d’autres se focalisent plus sur une stabilité de mesures statistiques à l’intérieur d’une région ou sur la méthode de génération utilisée. La plupart d’entre elles ne sont pas satisfaisantes dans le sens ou elles proposent une description soit trop générale et donc imprécise, soit trop restrictive pour s’adapter à la diversité des cas rencontrés. Une texture est donc quelquechose d’abstrait, difficile à définir quantitativement de façon précise. Cependant une texture peut presque toujours être décrite par des termes, des adjectifs souvent dépendants du domaine concerné (images médicales, images naturelles, matériaux, etc.) mais plus faciles à comprendre et donc plus faciles à manipuler.
Perception visuelle des textures Julesz a étudié de façon poussée la perception visuelle des textures
Afin de pouvoir différencier un ensemble de textures, il se concentre sur l’analyse des statistiques spatiales des niveaux de gris d’une image. Ses travaux se sont donc beaucoup orientés sur la comparaison de textures selon leur ordre statistique. Rappelons que les statistiques de premier ordre mesurent la probabilité d’observer un niveau de gris à un emplacement aléatoire d’une image alors que les statistiques du deuxième ordre déterminent la probabilité d’observer une paire de niveaux de gris selon une orientation et une distance. [Julesz, 1962] donne une description de la perception visuelle humaine des textures en affirmant qu’elle utilise les statistiques d’ordre 2 des niveaux de gris. Cependant des contreexemples ont été trouvés par [Gagalowicz, 1983] et Julesz lui-même. En effet, il existe des textures ayant des moments d’ordres 1 et 2 identiques. De plus, les statistiques d’ordre 2 décrivent bien souvent des processus à distribution gaussienne ; or [Coroyer, 1996] montre l’aspect non-gaussien des textures naturelles. Malgré ces restrictions, les approches comme les matrices de cooccurrences [Haralick et al., 1973, Haralick, 1979] sont encore très utilisées pour leurs simplicité de mise en oeuvre et leur bons résultats. Julesz affirme également qu’il est difficile de différencier deux textures si leurs statistiques de second ordre sont identiques. Dans la figure 1.2(a), nous avons deux régions texturées ayant un second ordre statistique identique et nous pouvons voir qu’il est très difficile de les discerner. Cependant la figure 1.2(b) présente deux textures de second ordre statistique identiques et les deux régions sont bien visibles. Pour expliquer cela, Julesz propose la théorie des textons, ceux-ci étant des symboles de base pouvant être décrits par leur colinéarité, leur terminaison (points de fond d’un segment), etc. Dans la figure 1.2(a), le nombre de terminaisons entre les deux régions est identique alors que dans la figure 1.2(b), il y a trois terminaisons pour la région supérieure et quatre pour la région inférieure, ce qui expliquerait pourquoi elles sont plus facilement discernables. Récemment, [Tyler, 2004] suggère que les statistiques globales ne devraient pas être le seul domaine de recherche dans la perception des textures. En effet, il attache plus d’importance aux mécanismes utilisés par les humains pour comparer différents exemples de textures. Concernant le processus de visualisation, des recherches ont été menées sur l’étude des cerveaux de macaques qui réagissent de façon similaire à celle des cerveaux humains. [Valois et al., 1982] enregistrent la réponse des cellules du cortex visuel du macaque à un signal sinusoïdal selon plusieurs fréquences et orientations et en concluent que ces cellules sont réglées pour de petites variations de fréquences et d’orientations. Ces recherches ont motivé l’utilisation de filtres comme par exemple les filtres de Gabor [Turner, 1986, Jain et Farrokhnia, 1990, Higgins et Wakeley, 1994, Shen et Bai, 2008] qui permettent une bonne approximation des caractéristiques de cellules dans le cortex visuel de certains mammifères. Fig. 1.2 – Images contenant des textures de second ordre statistique identiques 26 1.1. NOTION DE TEXTURES De nombreuses études ont été et sont encore menées pour essayer d’expliquer les capacités du système visuel humain à discerner les textures. La vision humaine offre des performances remarquables même en l’absence d’un contexte favorable. En effet, nous sommes capables d’identifier, de reconnaître une texture ayant subi de fortes distorsions géométriques. Le système visuel interprète la déformation de la texture non comme une perturbation des propriétés géométriques du champ texturé, mais comme une variation de la géométrie qui supporte la texture. Toute la question réside alors dans la possibilité ou non de produire un système informatique ayant une interprétation proche de celle du système visuel humain.
Propriétés de perception des textures
Dans [Brady, 2003], l’auteur décrit deux propriétés qui sont essentielles dans la façon de percevoir une texture : la régionalité et la résolution. La régionalité correspond au voisinage autour d’un pixel/voxel. La figure 1.3 présente plusieurs régionalités d’une même texture avec tout d’abord en (a) une régionalité de 1. Dans cet exemple, nous ne pouvons pas encore parler de textures puisque la région est décrite par un unique pixel. En effet, la notion de textures apparaît dès lors où une région est composée d’un pixel/voxel et d’un voisinage non nul qui lui est associée. La figure 1.3(b) présente un exemple de régionalité égale à 3 2 . Si nous la comparons avec la figure 1.3(c) (régionalité égal à 9 2 ), celle-ci ne contient qu’une partie des motifs présents dans la texture. L’information que l’on peut obtenir sur une texture dépend donc très fortement de la taille du voisinage que l’on considère. Il est donc difficile de caractériser correctement une texture si la régionalité n’est pas choisie de façon adéquate. (a) (b) (c) Fig. 1.3 – Information sur une texture selon plusieurs régionalités La résolution est également primordiale en analyse de textures dans le sens où une texture peut apparaître comme différente selon le niveau de précision auquel celle-ci est observée. A forte résolution, nous caractérisons ce qui constitue les primitives de bases d’une texture (perle, granulé de sable, …). A faible résolution, la texture peut apparaître comme une juxtaposition des motifs de base plus grossiers. Selon l’échelle d’observation, on aura des caractéristiques différentes mais complémentaires. Ce principe est notamment utilisé par les ondelettes ou les fractales multirésolutions. La figure 1.4 illustre bien ce phénomène. En nous éloignant, l’information concernant la texture aux résolutions hautes est perdue au profit des informations textures basses résolutions. Fig. 1.4 – Représentation d’une texture selon plusieurs résolutions Nous pouvons conclure qu’une bonne méthode d’analyse de textures doit être capable de donner des informations sur une texture à plusieurs niveaux de précision. Dans [Unser, 1995], l’auteur affirme qu’une méthode d’analyse multi-niveaux est plus performante qu’une méthode d’analyse limitée à une seule résolution. Les techniques de multirésolution permettent donc d’extraire des caractéristiques à des échelles variées mais nous verrons aussi que leur utilisation peut se justifier pour d’autres raisons. Par exemple, elles peuvent être utilisées pour réduire la complexité des traitements, en analysant une image à une résolution plus faible ou bien pour initialiser une segmentation [Jung, 2006, Aldasoro et Bhalerao, 2007]. Parmi les méthodes utilisant les propriétés de multirésolution, nous retrouvons les méthodes d’analyse fréquentielle avec notamment les filtres de gabor ou ondelettes [Knutsson et Granlund, 1983, Jain et Farrokhnia, 1990, Mallat, 1989], mais aussi les méthodes pyramidales [Samet, 1984, Spann et Wilson, 1985, Wilson et Spann, 1988]. 1.2 Méthodes d’extraction de caractéristiques de textures Dans [Tuceryan et Jain, 1998], les auteurs présentent un état de l’art sur les méthodes d’analyse de textures 2D à l’intérieur duquel ils proposent une classification de ces techniques selon quatre familles principales : – les méthodes statistiques – les méthodes géométriques – les méthodes basées sur un modèle – les méthodes empruntées au traitement du signal Afin d’introduire dés à présent la philosophie des méthodes que nous présentons dans la suite, nous avons choisi de produire une classification différente des méthodes existantes. Nous présentons dans un premier temps les méthodes proposant une analyse basée sur l’extraction des motifs d’une texture. Les méthodes basées sur une analyse fréquentielle regroupant principalement la transformée de Fourier, les filtres de Gabor et la transformée en ondelette sont ensuite présentées. Celles-ci permettent notamment de mettre en évidence l’importance de la multirésolution. Dans une troisième sous-section, nous abordons les méthodes basées sur un modèle, qui permettent l’introduction de connaissances a priori. Une quatrième partie nous permet de présenter des méthodes qui proposent une analyse spatiale de l’intensité des niveaux de gris. Enfin, nous passons en revue les propositions de certains auteurs qui tentent de déployer des méthodes calquées sur le système visuel humain afin de décrire les textures de manière plus efficace.
Les méthodes basées sur une analyse des motifs Le spectre de textures
Le spectre de textures est une approche présentée dans [Wang et He, 1990]. Cette méthode propose de décomposer une image en un ensemble d’unités appelées « unités de textures ». Chacune d’elles se compose de n éléments ayant pour valeur 0, 1 ou 2. Pour un voisinage de pixels 3 × 3 (8 voisins), il est possible d’obtenir jusqu’à 3 8 soit 6561 unités de textures différentes. Étant donné une matrice de pixels de taille 3 × 3, cette méthode considère un ensemble d’éléments V = V0, V1, …, V8 avec V0 l’intensité du pixel central et V1, …, V8 l’intensité des pixels voisins. Les unités de textures correspondantes sont représentées par l’ensemble T U = E1, E2, …, E8. Ei = 0 si Vi < V0 1 si Vi = V0 2 si Vi > V0 (1.1) avec i =1,2…,8 A cette unité de textures est alors associé un label calculé à partir de la formule suivante : NT U = X 8 i=1 Ei3 i−1 avec NT U le label de l’unité de textures et Ei l’élément i de l’unité de textures. A partir du spectre de textures, [He et Wang, 1991] proposent de calculer un certain nombre de caractéristiques comme la symétrie noir et blanc, la symétrie géométrique, le degré de direction, l’orientation, la symétrie centrale. Les formules permettant d’obtenir ces valeurs sont les suivantes : Symétrie noir et blanc BW S = [1 − P3279 i=0 |S(i) − S(6560 − i)| P6560 i=0 S(i) ] ∗ 100 (1.2) où S(i) est la fréquence d’apparition de l’unité de textures i dans le spectre de textures. 29 1.2. MÉTHODES D’EXTRACTION DE CARACTÉRISTIQUES DE TEXTURES Symétrie géométrique GS = [1 − 1 4 ∗ X 4 j=1 P6560 i=0 |Sj (i) − Sj+3(i)| 2 ∗ P6560 i=0 Sj (i) ] ∗ 100 (1.3) où Sj (i) est la fréquence d’apparition de l’unité de textures i dans le spectre de textures prenant en compte l’ordre de direction j. Illustration de l’ordre de direction : E1 E2 E3 E8 E4 E7 E6 E5 Ordre 1. · · · · · · E6 E7 E8 E5 E1 E4 E3 E2 Ordre 4. Degré de direction DD = [1 − 1 6 ∗ X 3 m=1 X 4 n=m+1 P6560 i=0 |Sm(i) − Sn(i)| 2 ∗ P6560 i=0 Sm(i) ] ∗ 100 (1.4) où m et n représentent un ordre de direction. Caractérisation de l’orientation 1. Micro – structure horizontale MHS = 6560 X i=0 S(i) ∗ HM(i) (1.5) où HM(i) = P(a, b, c) ∗ P(e, f, g), la mesure horizontale de l’unité de textures i. 2. Micro – structure verticale MV S = 6560 X i=0 S(i) ∗ V M(i) (1.6) où V M(i) = P(a, h, g) ∗ P(c, d, e), la mesure verticale de l’unité de textures i. 3. Micro – 1 ere ` diagonale de la structure MDS1 = 6560 X i=0 S(i) ∗ DM1(i) (1.7) où DM1(i) = P(h, a, b) ∗ P(d, e, f), la mesure de la première diagonale de l’unité de textures i. 30 1.2. MÉTHODES D’EXTRACTION DE CARACTÉRISTIQUES DE TEXTURES 4. Micro – 2 nde diagonale de la structure MDS2 = 6560 X i=0 S(i) ∗ DM2(i) (1.8) où DM1(i) = P(b, c, d) ∗ P(f, g, h), la mesure de la seconde diagonale de l’unité de textures i. où P(a, b, c), P(e, f, g), P(a, h, g), P(c, d, e), P(h, a, b), P(d, e, f), P(b, c, d) et P(f, g, h) est le nombre d’éléments ayant la même valeur parmi Ea, Eb, Ec, etc. Ci-dessous, une illustration de cette correspondance : Ea Eb Ec Eh Ed Eg Ef Ee Symétrie centrale CS = 6560 X i=0 S(i) ∗ K(i) 2 (1.9) où K(i) est le nombre de paires possédant la même valeur entre les éléments (Ea, Ee), (Eb, Ef ),(Ec, Eg) et (Ed, Eh). Afin d’analyser la répartition des motifs, [Al-Janobi, 2001] propose une nouvelle méthode d’analyse de textures, appelée Cross diagonal texture Matrix (CDTM), utilisant les propriétés de la GLCM et des spectres de textures. Les huit éléments de l’unité de textures obtenus à partir d’un voisinage de 3× 3 pixels sont divisés en deux groupes contenant chacun quatre éléments comme illustré par la figure 1.5. Ces deux groupes sont deux unités de textures appelées « unité de textures en croix »(CTU) et « unité de textures en diagonale » (DTU). Comme dans la méthode du spectre de textures chacun des éléments des deux groupes se voit affecter une des trois valeurs 0, 1, ou 2. Il est alors possible de calculer un label de textures pour chacune des unités de textures CTU et DTU. Voici comment les calculer : NCT U = X 4 i=1 ECi.3 i−1 (1.10) NDT U = X 4 i=1 EDi.3 i−1 (1.11) où NCT U est le label de l’unité de textures CTU, NDT U est le label de l’unité de textures DTU, ECi est le i eme élément appartenant à l’unité de textures CTU, EDi est le i eme élément de l’unité de textures DTU. 31 1.2. MÉTHODES D’EXTRACTION DE CARACTÉRISTIQUES DE TEXTURES Une matrice de cooccurrence est alors construite à partir des paires de label (NCT U , NDT U ). Afin de caractériser une texture, des caractéristiques sont calculées sur cette matrice tout comme dans la méthode des matrices de cooccurrence des niveaux de gris d’Haralick (voir section 1.2.4.3). Fig. 1.5 – Construction des unités de textures en croix et en diagonale avec un voisinage de 3 2 pixels.
Méthode des motifs binaires (LBP)
Cette méthode, introduite par [Ojala et al., 1996] est fortement inspirée par la méthode précédente. L’un des intérêts de cette méthode est de pouvoir générer un nombre d’unités de textures plus restreint. Pour un voisinage de 8 pixels, il est possible d’obtenir 2 8 = 256 unités de textures différentes contre 6561 pour la méthode du spectre de textures. Cette méthode est utilisée avec succès dans divers domaines comme la détection ou la reconnaissance faciale [Ahoen et al., 2006, Zhao et Pietikäinen, 2007]. En terme d’efficacité discriminante, cette méthode offre de bonnes performances et contient des informations structurelles et statistiques. L’opérateur LBP (local binary pattern) peut être invariant aux rotations et changements d’échelles et offre une grande tolérance face aux changements de luminosité. De plus, c’est une méthode de faible complexité qui rend possible l’analyse d’images 2D en temps réel. L’opérateur LBP propose d’assigner un code binaire à un pixel en fonction de son voisinage. La valeur d’intensité d’un pixel central est utilisée pour seuiller ses pixels voisins afin de générer un motif binaire (Figure 1.6). Les pixels de ce motif binaire sont alors multipliés par des poids et sommés afin d’obtenir un code LBP. Dans [Ojala et al., 2001, Ojala et Pietikäinen, 2002] des extensions de cette méthode sont proposées. Celles-ci permettent : – un choix sur le voisinage afin de calculer un code LBP