Base de textures solides pour l’évaluation de méthodes de classification et de segmentation
Dans la littérature, il existe plusieurs types de bases de données concernant le domaine des textures. Parmi les plus connues, nous trouvons les bases de données de textures 2D. La base de données de Brodatz [Brodatz, 1966] mais également la base de Meastex (http://www.texturesynthesis.com/meastex/meastex.html) sont souvent utilisées pour leur richesse. Les textures 3D et les textures volumiques, à ne pas confondre avec les textures faisant l’objet de notre étude, sont très différentes des textures solides : une texture 3D [Cuba et Dana, 2004] désigne la structure externe observée en 2D, d’un objet 3D vu d’un angle particulier avec différentes conditions d’éclairage ; une texture volumique [Neyret, 1995] correspond au rendu de reflets et de géométries répétitifs à l’intérieur d’une image 2D. Parmi les bases de textures 3D, PMTex constituent des références. Concernant les textures volumiques, il est possible d’en trouver un grand nombre sur le site personnel de Neyret (http: //www-evasion.imag.fr/Membres/Fabrice.Neyret/). Comme nous l’indiquons dans la partie état de l’art, les textures solides (textures volumétriques) sont des textures représentées dans le domaine 3D et sont assimilables à une série d’images texturées 2D ou comme des textures situées dans un espace volumétrique. Dans [Kopf et al., 2007], les auteurs proposent de construire des textures solides à partir d’images de textures 2D. Plusieurs exemples sont disponibles à cette adresse http://johanneskopf.de/publications/ solid/textures/index.html mais actuellement trop peu d’images sont disponibles pour des expérimentations de classification ou de segmentation. Dans la partie état de l’art, nous décrivons trois différents types de textures : les textures déterministes, caractérisées par la répétition de motifs identiques ; les textures stochastiques, identifiables par leur irrégularité ; et les textures observables qui sont un mélange des deux précédentes [Gool et al., 1985]. Afin d’avoir une base de données suffisamment représentative et complète, nous avons choisi de construire des images synthétiques représentatives de ces 3 classes de textures. Pour limiter l’espace disque ainsi que les temps de calcul lors des expérimentations, nous avons construit des textures volumétriques de taille 643 . Au regard de l’ensemble des tests de classification produits dans la littérature, cette taille semble suffisante et adaptée pour un problème de classification de textures. L’ensemble des images de notre base est construit à partir de quatre méthodes simples que nous détaillons dans les prochaines sous-sections. Pour finir, il est important de préciser que le but de cette base d’images n’est pas de fournir des textures solides qui soient le plus réaliste possible mais plutôt de mettre à disposition un ensemble de classes de textures volumétriques important, afin de permettre l’évaluation d’algorithmes d’analyse de textures solides à travers des tests de classification ou de segmentation.
Méthodes de synthèse utilisées
La première méthode utilisée permet de construire une texture volumétrique en utilisant des images texturées 2D identiques à celles disponibles dans l’album de Brodatz. Deux textures 2D ou plus sont interpolées afin d’obtenir une image 3D (Figure 3.1). Les textures 2D utilisées dans la construction d’une image 3D font partie d’une même classe de textures mais ne sont pas exactement similaires. A partir de cette méthode d’interpolation, les textures volumétriques générées possèdent une direction particulière et évoluent de façon régulière. L’intérieur d’un tronc d’arbre constitue un bon exemple pour illustrer ce type de textures. Formellement, une texture interpolée peut être définie comme un ensemble de blocs texturés BT construits à partir de textures 2D ET : BT,i = ET + i (ET − ET +1) M (3.1) avec M = N/(R − 1) le nombre de composants 2D dans un bloc, N la profondeur de la texture solide, R le nombre d’images texturées 2D utilisées pour l’interpolation, T = {0, …, R − 1} et i = {0, 1, …, M − 1}. Les propriétés de ce genre de textures sont dépendantes des textures 2D choisies mais également du nombre de plans d’interpolation. (a) Ensemble de textures 2D (b) Texture solide par interpolation Fig. 3.1 – Exemple de construction d’une texture solide à partir de la méthode d’interpolation (méthode 1) La deuxième méthode propose d’utiliser des formes géométriques de base (sphères, cubes, ellipses) incorporées au sein d’une image 3D. Cela permet notamment de construire des textures de type déterministe. Un motif est représenté par une forme géométrique positionnée dans une direction donnée. De plus, il est possible de construire des textures de type observable, par exemple en utilisant des sphères dont la taille et le positionnement sont aléatoires. Il est alors facile de construire une texture de type gruyère en insérant aléatoirement des sphères ou des ellipses dont la taille varie. Les propriétés de ce type de textures sont dépendantes du nombre de motifs utilisés, de la forme des motifs, de la taille et de la couleur des motifs, qui peuvent être fixes ou variables. La Figure 3.2 présente deux textures volumétriques générées en utilisant cette méthode. La troisième méthode mise en place génère des textures volumétriques à partir de la transformée de Fourier [Lewis, 1984]. Pour cela, il est nécessaire de construire un spectre de puissance, qui permet de spécifier les fréquences et les amplitudes présentes dans la texture à synthétiser. Ce spectre peut être dessiné en respectant la symétrie des quadrants mais il est également possible d’utiliser le spectre de puissance d’une texture existante. (a) Motif en forme de cube (b) Motif en forme de sphere Fig. 3.2 – Textures solides construites à partir de la 2`eme méthode (a) Texture à l’intérieur des motifs (b) Texture à l’intérieur et à l’extérieur des motifs Fig. 3.3 – Exemple de textures solides avec des textures à l’intérieur et à l’extérieur des motifs géométriques (méthode 4) Concernant le spectre de phase, des valeurs aléatoires peuvent être utilisées ou récupérées d’une texture existante. De cette façon, il est possible de synthétiser une texture solide à partir de la transformée inverse de Fourier. Dans [Lewis, 1984], les auteurs décrivent cette méthode de synthèse de textures comme peu intuitive. Cependant, elle permet de construire des textures qui sont riches et difficiles à obtenir dans le domaine spatial. Enfin, les textures appartenant à une même classe de textures sont générées à partir d’un unique spectre de puissance et d’un spectre de phase variable. De cette façon, les textures à l’intérieur d’une classe ne sont pas exactement identiques. (a) Spectre de puissance 1 (b) Texture construite avec le premier spectre de puissance (c) Spectre de puissance 2 (d) Texture construite à partir du deuxième spectre de puissance Fig. 3.4 – Exemple de textures solides construites à partir de la transformée de Fourier (méthode 3) Enfin, il est possible d’obtenir une quatrième catégorie de textures volumétriques en utilisant les propriétés des trois méthodes précédentes. Au lieu de générer un motif avec une couleur (méthode 2), nous pouvons créer des motifs contenant une texture donnée en utilisant la première méthode de synthèse ou la transformée de Fourier inverse (Figure 3.3). Les textures ainsi générées contiennent des formes géométriques composées de textures particulières. De plus, il est possible d’insérer une texture à l’extérieur des motifs afin d’obtenir des objets qui soient texturés. Les propriétés de ce genre de textures dépendent du nombre de motifs, de leur forme et leur taille, et des textures utilisées à l’intérieur et à l’extérieur des motifs. Afin d’augmenter les variabilités à l’intérieur de notre base, nous appliquons un certain nombre de transformations de base pour enrichir l’ensemble des classes de textures proposées. Pour chaque classe, nous disposons ainsi de textures n’ayant subi aucune transformation, de textures bruitées, de textures floutées, de textures sous-échantillonnées, et de textures avec des rotations aléatoires selon les axes x, y et z (Figure 3.5). De cette façon, il devient possible de tester si une méthode d’analyse de textures est invariante à la rotation, de tester sa robustesse au bruit ou au flou, et de pouvoir augmenter facilement la difficulté de comparaison des images 3D de la base de données lors d’un problème d’analyse de textures. Afin d’appliquer un sous-échantillonnage, nous construisons des images 3D texturées de taille 1283 qui sont ensuite sous-échantillonnées afin d’obtenir une texture solide de taille 643 contenant des motifs deux fois plus petits. Concernant les distorsions de bruit et de flou, la distribution Gaussienne est centrée en 0 et l’écart type σ prend la valeur 5 dans le cas du bruit Gaussien et la valeur de 1.5 dans le cas du flou Gaussien. Ces transformations sont appliquées par convolution d’une image 3D avec un masque de taille 3 3 .
Organisation de la base d’images
La base de données proposée est organisée de la façon suivante : les images texturées 3D sont séparées en fonction de leur méthode de synthèse et sont partitionnées en quatre dossiers. Dans chacun d’eux, les images sont regroupées selon le type de transformations appliquées : aucune, flou Gaussien, bruit Gaussien, rotation aléatoire, sous-échantillonnage. Les sous-dossiers « transformations » contiennent l’ensemble des classes de textures générées par une méthode de synthèse. Actuellement, notre base de données contient 95 classes différentes : 30 classes sont construites avec la méthode d’interpolation, 25 avec la méthode géométrique, 15 avec la transformée de Fourier inverse et 25 avec la méthode des motifs texturés. Chacune des classes se compose de 50 exemples de textures solides : 10 textures floues, 10 textures bruitées, 10 textures sous-échantillonnées, 10 textures avec un ensemble de rotations aléatoires et 10 textures sans aucune transformation. Une image 3D est représentée par un ensemble de 64 images BMP 2D de dimension 642 pixels. Nous avons choisi le format BMP de par l’intérêt de sa large diffusion. Il est par ailleurs utilisé et proposé dans la plupart des bases de données en image et texture. En effet, la mise en place d’un logiciel capable d’utiliser ce format est simple et rapide. Un logiciel de visualisation capable de lire les images 3D proposées dans la base est disponible sur le site web 2 . Afin de proposer une taille suffisamment importante pour des tests de classification, les textures volumétriques générées sont de dimension 643 pixels. Ce choix permet également un bon compromis concernant l’espace disque. Enfin, les images utilisées pour les tests de segmentation Textures solides avec rotation aléatoire, [d-e] Deux textures floutées, [f-g] Deux textures bruitées, [h-i] Deux textures solides sous-échantillonnées plus d’une seule texture) ont une taille de 1283 offrant un degré de liberté plus important pour l’emplacement des différentes textures solides dans l’image 3D. Ces images sont actuellement disponibles au nombre de 15 : 5 textures contenant 2 classes, 5 textures contenant 3 classes, 5 textures contenant 4 classes. Pour chacune des images 3D générées, un fichier XML associé résume l’ensemble des caractéristiques. La racine de l’arbre XML désigne une image 3D pouvant contenir une ou (LBP) plusieurs textures solides. Pour un problème de classification les images 3D utilisées correspondent à une unique texture solide alors que pour une problématique de segmentation, les images 3D contiennent plusieurs textures volumétriques différentes. Une texture solide est définie par un conteneur (emballage), par un nom (correspondant au nom d’une classe de textures), par le type de méthode de synthèse utilisée, par l’ensemble des propriétés et transformations qui lui sont appliquées. Un conteneur est utilisé puisque dans le cas d’un problème de segmentation, une texture volumétrique n’est pas forcément définie dans un cube. Actuellement, une texture solide peut être créée à l’intérieur de trois formes différentes (cube, sphère ou ellipse), celles-ci étant caractérisées par une dimension, une localisation ainsi qu’une orientation particulière. Les propriétés sont dépendantes du type de méthode de synthèse utilisé pour construire une texture solide. Par exemple, une texture volumétrique générée à partir de la transformée de Fourier inverse dépend du spectre de puissance utilisé. Pour pouvoir diffuser et exploiter ces fichiers XML, nous avons créé un fichier DTD disponible en partie en annexe C. Cette base de données est actuellement disponible en accès libre 2 sur le web. De ce fait, un chercheur peut l’utiliser pour évaluer des méthodes d’analyse de textures solides à l’aide d’expérimentations de classification ou de segmentations. Il est bien sûr possible de compléter cette base de données avec d’autres méthodes de synthèse le but étant d’accroître le nombre de classes et d’images. Actuellement cette base de données contient 95 classes différentes ce qui est suffisant si nous comparons avec les bases de textures 2D. Par exemple, la base de Brodatz [Brodatz, 1966], qui constitue un standard pour l’évaluation d’algorithmes, contient 112 classes différentes.
Extension 3D de la méthode des motifs binaires (LBP)
Dans la littérature, nous n’avons pas trouvé d’extension 3D de la méthode des motifs binaires (local binary pattern). C’est pourquoi dans [Paulhac et al., 2008], nous avons proposé une extension de cette méthode au domaine 3D. Le but de ce travail était de démontrer l’intérêt d’une approche vraiment 3D (LBP 3D) en comparaison de son équivalent 2D. Pour cela nous avons mis en place un protocole d’évaluation en classification utilisant notre base de textures solides. Ces méthodes sont testées selon plusieurs cas de figure avec une base de test contenant des textures sans aucune transformation, une base de test bruitée, et une base de test de textures avec rotations. Sur l’ensemble des tests réalisés, l’approche 3D se révèle être plus robuste avec des différences considérables concernant la troisième base de test. L’intérêt majeur de la méthode LBP 3D par rapport à la méthode LBP 2D est qu’elle conserve la propriété d’invariance à la rotation dans le domaine 3D. L’algorithme classique LBP 2D [Ojala et al., 1996] permet de calculer jusqu’à 2 8 unités de textures (avec R = 1), seulement dans le domaine 3D, le nombre de motifs augmente de façon considérable avec 2 26 = 6.7108864 × 107 unités de textures possibles. C’est la raison pour laquelle nous avons choisi de baser notre extension 3D sur la méthode LBP proposée dans [Ojala et Pietikäinen, 2002] où le nombre de motifs possibles est de P + 2 avec P le nombre de voisins pour une unité de textures. De plus, cette méthode possède la propriété d’être invariante à la rotation. En 2D, nous avons vu dans la partie état de l’art que le voisinage autour d’un pixel central, est réparti de façon circulaire. En respectant ce raisonnement, nous avons choisi de définir le voisinage d’un voxel central sur une sphère afin de proposer une méthode LBP 3D. Cette sphère est construite de la façon suivante : pour un voxel central gc ayant comme coordonnée (0, 0, 0), les coordonnées de gpp0 sont données par (R cos(πp0/(S − 1)) cos(2πp/P), R cos(πp0/(S − 1)) sin(2πp/P), R sin(p 0π)/(S − 1)) avec R le rayon de la sphère, S le nombre de cercles utilisés pour construire la sphère, et P le nombre de vertex dans chaque cercle (Figure 3.6).