- Extraction de caractéristique en vision par ordinateur
-
Pour les articles homonymes, voir extraction de caractéristique (homonymie).
En vision par ordinateur, l'extraction de caractéristiques visuelles (ou visual features extraction en anglais) consiste en des transformations mathématiques calculées sur les pixels d'une image numérique. Les caractéristiques visuelles permettent généralement de mieux rendre compte de certaines propriétés visuelles de l'image, utilisées pour des traitements ultérieurs entrant dans le cadre d'applications telles que la détection d'objets ou la recherche d'images par le contenu.
Sommaire
Localisation des caractéristiques
On distingue usuellement[1] les caractéristiques globales qui sont calculées sur toute l'image et les caractéristiques locales qui sont calculées autour de points d'intérêt. On peut aussi parler des caractéristiques semi-locales quand celles-ci sont extraites dans des zones restreintes de l'images, résultant d'une segmentation de l'image en région ou simplement selon une grille arbitraire.
La distinction entre caractéristiques globales et locales a néanmoins pour l'essentiel un intérêt taxinomique. Un descripteur local calculé en chaque pixel pourrait par exemple être considéré comme une description globale de l'image.
Caractéristiques globales
Couleur
Histogramme et dérivés
La prise en compte de la couleur des images a été historiquement l'une des premières caractéristiques employées pour la recherche d'images par le contenu et produit encore des résultats parfois spectaculaires sur certaines bases. C'est en 1991 que Swain et Ballard ont proposé d'utiliser un histogramme couleur pour ce genre de tâche[2]. Il représente la distribution globale des couleurs dans l'image. Son calcul consiste en une quantification de l'espace couleur choisi (RVB par exemple) suivie du calcul de l'histogramme des pixels ainsi transformés. Par exemple, si l'on considère une image RVB classique et que l'on quantifie chaque plan couleur sur 4 bins, l'histogramme résultant aura une dimension 43 = 64. Si l'image est originellement codée sur 24 bits (la valeur de chaque plan est dans l'intervalle [0 − 255]), l'histogramme couleur sur 64 bins pourrait être représenté par un « cube » :
Rouge 0-63 64-127 128-191 192-255 Vert Vert Vert Vert 0-63 64-127 128-191 192-255 0-63 64-127 128-191 192-255 0-63 64-127 128-191 192-255 0-63 64-127 128-191 192-255 Bleu 0-63 x x x x x x x x x x x x x x x x 64-127 x x x x x x x x x x x x x x x x 128-191 x x x x x x x x x x x x x x x x 192-255 x x x x x x x x x x x x x x x x Chaque couleur représentant l'un des 64 bins quantifiés, et x étant alors le nombre de pixels de l'image correspondant à ce bin. En pratique, ce descripteur est généralement représenté par un vecteur mono dimensionnel à 64 dimensions.
code octave calculant un histogramme couleur% I = double ( imread('xxx.jpg')); quant=4; nb_bin=quant^3; Iq = floor(I/nb_bin); Iq = Iq(:,:,1) + quant*Iq(:,:,2) + quant*quant*Iq(:,:,3); [NN, XX] = hist(Iq(:),nb_bin);
De nombreux descripteurs peuvent être dérivés de cette représentation, dont plusieurs ont été inclus au modèle expérimental de la norme MPEG-7. Il s'agit notamment de:
- dominant color: rend compte de la couleur dominante d'une image, calculée comme celle du bin ayant la plus grande valeur. L'espace de couleur peut être qualconque en théorie, mais l'utilisation de HSV donne des résultats intéressants[3].
- scalable colour: il s'agit de la transformée de Haar de l'histogramme couleur dans l'espace HSV, ce qui résulte en un code très compact.
- coulour structure: il s'agit d'un histogramme couleur «local». Sa construction est identique au principe présenté précédemment (histogramme couleur global), si ce n'est qu'un fenêtre de taile réduite (8x8 pixels) parcourt l'image lors du comptage des couleurs en chaque pixel. Il reflète ainsi un certaine information sur la structure spatiale de la répartition des couleurs.
- colour layout: la transformée en cosinus discrète de la représentation en histogramme est calculée et seule une partie des coefficents peut être utilisée pour la signature. Cela donne la possibilité d'obtenir un descripteur relativement grossier mais très compact ou bien un descripteur plus fin mais prenant plus de place. Un tel descripteur est intéressant pour des applications nécessitant une certaine scalabilité
Moments de couleur
Dès 1995, il a été proposé d'utiliser les moments calculés dans un espace de couleur donné pour caractériser les images[4]. On se restreint généralement aux deux ou trois premiers moments (moyenne, variance, asymétrie voire le moment d'ordre 4 appelé kurtosis) mais ils sont calculés dans chacun des trois plans de l'espace couleur choisi. Un rafinement possible consiste à diviser l'image selon une grille et à calculer ces moments dans chaque cellule.
Forme
Décrire les formes nécessite une identification préalable de régions. Cela peut résulter d'une segmentation de l'image ou de la détection de leurs contours. On peut alors caractériser les régions au moyen de divers indices telle leur orientation principale (par exemple leur premier axe propre), leur symétrie ou encore leurs moments de Zernike.
Une méthode de description particulièrement utilisée est celle proposée par Mokhtarian, appelée Curvature Scale Space[5]. Elle consiste à décrire une région en fonction des variations de courbure de son contour. Pour une courbe plane en coordonnées paramétriques dans un repère orthonormé , la courbure s'exprime par:
- .
Cette description est invariante en rotation et translation. Concernant le zoom, il faut a minima normaliser par la longueur du contour. Plus important, le descripteur est généralement calculé à différentes échelles, chacune correspondant à la convolution par un noyau gaussien.
Texture
La définition de la texture n'est pas évidente et dépend de l'échelle[6],[7] . On distingue trois approches pour définir la notion de texture. Dans la veine des travaux pioniers de Haralick[8], une première approche considère une texture comme résultant d'un processus stochastique et cherche les décrire en termes de propriétés statistiques des valeurs et positions relatives des pixels[9],[10].
La seconde approche suppose l'existence de primitives fondamentales permettant de décrire les textures, tels les Textons définis par Julesz[11]. Par suite, une texture donnée est décrite comme une combinaison complexe de ces primitives, exprimée par exemple avec des graphes.
Une approche plus récente s'inspire plutôt de la perception visuelle et tend à rendre compte du processus de formation des texture du point de vue humain[12].
Approche stochastique
Une texture peut être décrite statistiquement, en rendant compte de la manière dont les niveaux de gris de l'image s'organisent les uns par rapport aux autres. On considère un opérateur de position p permettant de définir une matrice Pij qui compte le nombre de fois qu'un pixel de niveau de gris i est présent à la posiiton p d'un pixel de niveau j. Si la matrice est normalisée entre 0 et 1, on parle de matrice de co-occurrence de niveau de gris[13]. La position relative de deux pixels peut aussi être définie par un angle θ et une distance d. Par exemple, si on considère trois niveaux de gris possibles et l'image I définie par:
Et l'opérateur est à droite de (également défini par un angle θ = 0 et une distance d = 1 pixel), alors la matrice de co-occurrence (non normalisée) est:
Le 3 de la matrice C signifiant que l'on trouve trois fois un pixel de valeur 2 (donc en troisième colonne) à la droite d'un pixel de valeur 1 (donc en seconde ligne).
À partir de cette matrice de co-occurrence, il est possible de définir maints descripteurs, tels que ceux répertoriés dans cette table:
Opérateur Formulation Maximum max ij(Cij) Différence d'ordre k Entropie Uniformité Une autre approche statistique largement utilisée est le modèle MSAR (Multiresolution Simultaneous Autoregressive Models[14]) utilisé, au delà de la reconnaissance de texture, pour reconnaître des scènes naturelles[15].
Approche structurelle
Cette approche suppose l'existence de primitives fondamentales permettant de décrire les textures. L'un des premiers exemple de tels primitives a été les Textons proposés par Julesz[11]. Une texture donnée est décrite comme une combinaison complexe de ces primitives, exprimée par exemple avec des graphes. Ces graphs peuvent alors servir de descripteurs de la texture.
Approche spectrale
L'expression des périodicités et autres régularités dans une image ou dans un signal se fait naturellement dans le cadre de l'analyse spectrale. Ainsi une transformée de Fourier discrète de l'image peut être une base pour fabriquer des descripteurs. Néanmoins, il est plus courant d'utiliser un ensemble de filtres de Gabor disposés à plusieurs échelles et orientations. Cela permet notamment d'identifier des « traits perceptifs majeurs » [16]. Des travaux ont montré qu'un descripteur basé sur une telle description spectrale pouvait rendre compte de la structure spatiale dominante d'une scène naturelle[17].
Une alternative à la transformée de Fourier est de calculer la transformée en cosinus discrète (DCT). En pratique des descripteurs basés sur les coefficients DCT ont permis de discriminer des images d'intérieur et d'exterieur[18], des images de paysages urbains contre des paysages natuels[19] et, combinés à d'autres descripteurs, plusieurs catégories de scènes naturelles simultanément[15].
Caractéristiques locales
La caractérisation d'une image peut être calculée en un nombre restreint de pixel. Il faut pour cela d'abord détecter les zones d'intérêt de l'image puis calculer en chacune de ces zones un vecteur caractéristiques. Ces zones d'intérêt sont par exemple les arêtes ou les points saillants de l'image (zones de fort contraste). Il peut aussi s'agir de points pris aléatoirement ou régulièrement dans l'image (échantillonnage dit dense).
Le vecteur caractéristique contient parfois des données provenant de la détection, telles que l'orientation de l'arête ou la magnitude du gradient dans la zone d'intérêt. Généralement, le vecteur caractéristique en un pixel est calculé sur un voisinage de ce pixel, c'est-à-dire à partir d'une imagette centrée sur ce pixel. Il peut être calculé à différentes échelles de manière à s'affranchir du facteur de zoom. Parmi les caractéristiques locales couramment calculées, on retrouve des motifs préalablement utilisés globalement, tels que des histogrammes de couleur ou des vecteurs rendant compte de l'orientation des gradients des niveaux de gris.
Certaines méthodes telles SIFT ou SURF incluent à la fois la détection de zone d'intérêt et le calcul d'un vecteur caractéristique en chacune de ces zones. Concernant le vecteur caractéristique, les SIFT sont grossièrement un histogramme des orientations du gradient et les SURF consistent en le calcul d' approximation d'ondelettes de Haar. Dans une veine similaire, les motifs binaires locaux sont un calcul de co-occurrence des niveaux de gris locaux d'une image et les HOG des histogrammes de gradients orientés, assez similaires aux SIFT, calculés selon un échantillonnage dense.
Agrégation
La description d'une images au moyen de caractéristique locale a généralement une dimension variable, dépendant du nombre de points d'intérêt extraits (en fait, ce nombre fois la dimension du descripteur local). Une telle représentation n'est donc pas adaptée à nourrir des algorithmes d'apprentissage classiquement utilisés (SVM, boosting...). Pour se ramener à une représentation dans un espace vectoriel de dimension fixe, il est fait appel à des technique d'agrégation de descripteurs telle celle des sac de mots (bag of visterms)[20].
Applications
Les caractéristiques d'images extraites selon les modalités expliquées ci-dessus sont utilisées dans de nombreux domaines de la vision par ordinateur.
Associés à des images annotées, il peuvent servir d'entrée à un algorithme d'apprentissage supervisé en vue de leur classification. Cela peut notamment servir à détecter leur contenu et en particulier les objets présents dans l'image. Dans la même veine mais dans des domaines plus spécifiques, ils peuvent servir à détecter des visages ou des personnes.
Pouvant servir de signature d'image, ces descripteurs sont aussi utilisés dans la recherche d'images par le contenu.
D'une manière générale, ce sont des technologies de base servant dans de nombreux domaines où la vision par ordinateur intervient: robotique, vidéo-surveillance, vision industrielle, reconnaissance optique de caractères, etc...
Notes et références
- description des images, transparents 22 à 36. Présentation sur la
- International Journal of Computer Vision, 1991 MJ Swain, DH Ballard: Color Indexing,
- Y. Liu, D.S. Zhang, G. Lu and W.-Y Ma. Region-based image retrieval with perceptual colors. Proc. Pacific-Rim Multimedia Conference, pp 931-938, décembre 2004.
- M. Stricker and M. Orengo. Similarity of color images. In In SPIE Conference on Storage and Retrieval for Image and Video Databases III, volume 2420, pages 381392, Feb. 1995.
- Mokhtarian, F., and Mackworth, A.K., Scale Based Description and Recognition of Planar Curves and Two-Dimensional Shapes, PAMI(8), No. 1, January, 1986, pp. 34-43.
- Th. Gevers and A.W.M. Smeulders, Content-based Image Retrieval: An Overview, from the book Emerging Topics in Computer Vision, G. Medioni and S. B. Kang (Eds.), Prentice Hall, 2004
- John R. Smith and Shih-fu Chang, An Image and Video Search Engine for the World-Wide Web, In Proc. SPIE Storage and Retrieval for Image and Video Databases, 1997
- Haralick R., Shanmugam K. & Dinstein I. (1973) Textural features for image classification. IEEE Transactions on Systems, Man, and Cybernetics 3(6): 610–621.
- Weszka J, Dyer C & Rosenfeld A (1976) A comparative study of texture measures for terrain classification. IEEE Transactions on Systems, Man, and Cybernetics 6: 269–285.
- IEEE Transactions on Pattern Analysis and Machine Intelligence 8(1): 118–125. Unser M (1986) Sum and difference histograms for texture classification.
- Julesz B (1981) Textons, the elements of texture perception, and their interactions. Nature 290: 91–97.
- Chellappa R & Manjunath B (2001) Texture classification and segmentation: tribulations, triumphs and tributes. In: Davis L (ed) Foundations of Image Understanding,pp 219–240. Kluwer.
- R.M. Haralick, Texture feature for image classification, IEEE Transactions on Systems, Man, and Cybernetics 3 (1973) (1), pp. 610–621
- J. Mao and A. K. Jain, “Texture classification and segmentation using multiresolution simultaneous autoregressive models,” Pattern Recognit.,vol. 25, pp. 173–188, Feb. 1992.
- A. Vailaya,M.A.T Figeiredo A. Jain and H.J. Zhang. Image classification for content-based indexing. IEEE transaction on image processing, vol 10, N°1, 2001
- H. Tamura, S. Mori, and T. Yamawaki. Texture features corresponding to visual perception. IEEE Transactions on Systems, Man, and Cybernetics, vol. SMC-8, no. 6, 1978, 460 - 473
- International Journal of Computer Vision, Vol. 42(3): 145-175, 2001 Aude Oliva, Antonio Torralba.Modeling the shape of the scene: a holistic representation of the spatial envelope.
- M. Szummer and R.W. Picard. Indoor-outdoor image classification. IEEE international workshop on content-based access of images and video databases. Bombay, India, 1998
- A. Vailaya, A. Jain and H.J. Zhang. On image classification: city vs landscape. Pattern Recognition, vol 31, N° 12, pp 1921-1935, 1998
- International Conference on Computer Vision, pages 1470–1477, 2003. J. Sivic and A. Zisserman. Video Google : A text retrieval approach to object matching in videos. In Proceedings of the
Wikimedia Foundation. 2010.