Accueil🇫🇷Chercher

Traitement d'images

Le traitement d'images est une discipline de l'informatique et des mathématiques appliquées qui étudie les images numériques et leurs transformations, dans le but d'améliorer leur qualité ou d'en extraire de l'information.

Il s'agit d'un sous-ensemble du traitement du signal dédié aux images et aux données dérivées comme la vidéo (par opposition aux parties du traitement du signal consacrées à d'autres types de données : son et autres signaux monodimensionnels notamment), tout en opérant dans le domaine numérique (par opposition aux techniques analogiques de traitement du signal, comme la photographie ou la télévision traditionnelles).

Dans le contexte de la vision artificielle, le traitement d'images se place après les étapes d'acquisition et de numérisation, assurant les transformations d'images et la partie de calcul permettant d'aller vers une interprétation des images traitées. Cette phase d'interprétation est d'ailleurs de plus en plus intégrée dans le traitement d'images, en faisant appel notamment à l'intelligence artificielle pour manipuler des connaissances, principalement sur les informations dont on dispose à propos de ce que représentent les images traitées (connaissance du « domaine »).

La compréhension du traitement d'images commence par la compréhension de ce qu'est une image. Le mode et les conditions d'acquisition et de numérisation des images traitées conditionnent largement les opérations qu'il faudra réaliser pour extraire de l'information. En effet, de nombreux paramètres entrent en compte, les principaux étant :

  • la rĂ©solution d'acquisition et le mode de codage utilisĂ© lors de la numĂ©risation, qui dĂ©terminent le degrĂ© de prĂ©cision des Ă©ventuelles mesures de dimensions ;
  • les rĂ©glages optiques utilisĂ©s, (dont la mise au point) qui dĂ©terminent par exemple la nettetĂ© de l'image ;
  • les conditions d'Ă©clairage, qui dĂ©terminent une partie de la variabilitĂ© des images traitĂ©es ;
  • le bruit de la chaĂ®ne de transmission d'image.

Quelques exemples types d'informations qu'il est possible d'obtenir d'une image numérique :

  • la luminance moyenne ;
  • le contraste moyen ;
  • la couleur prĂ©dominante ;
  • le taux d'acuitĂ© moyen (prĂ©cis ou flou) ;
  • le taux d'uniformitĂ© des couleurs ;
  • la prĂ©sence ou l'absence de certains objets.
Une photographie modifiée et traitée par ordinateur

Historique

Le traitement d'images commence à être étudié dans les années 1920 pour la transmission d'images par le câble sous-marin allant de New York à Londres. Harry G. Bartholomew et Maynard D. McFarlane effectuent la première numérisation d'image avec compression de données pour envoyer des fax de Londres à New York. Le temps de transfert passe ainsi de plus d'une semaine à moins de trois heures. Il n'y a pas vraiment d'évolution par la suite jusqu'à la période d'après-guerre[1].

Le traitement du signal prend de l'importance vers la fin de la Seconde Guerre mondiale avec l'arrivée du radar. La prospection pétrolière participe aussi beaucoup au développement des techniques de traitement du signal.

Le véritable essor du traitement d'images n'a lieu que dans les années 1960 quand les ordinateurs commencent à être suffisamment puissants pour travailler sur des images. Peu après, la redécouverte de la transformée de Fourier rapide (FFT) révolutionne le domaine, en rendant possible les manipulations du contenu fréquentiel des signaux sur ordinateur. Cependant, l'essentiel des recherches porte encore, à cette époque, sur l'amélioration des images et leur compression.

En 1980, David Marr formalise le premier la détection de contours de manière précise (D. Marr et E. Hildreth : Theory of Edge Detection, Proc. R. Soc. London, B 207, 187-217, 1980). Au cours des années 1980, un véritable engouement se fait jour pour le traitement de l'image et surtout pour la compréhension de l'image par des systèmes experts. Les ambitions étaient beaucoup trop grandes, l'échec fut d'autant plus cuisant.

Les années 1990 voient l'amélioration constante des opérateurs. La recherche médicale devient un très gros demandeur en traitement d'images pour améliorer les diagnostics faits à partir des nombreuses techniques d'imagerie médicale, la technique reine étant l'IRM. Les publicitaires, puis le grand public se familiarisent avec la retouche d'image grâce au logiciel Photoshop, et le traitement d'images dans un objectif esthétique se répand avec l'apparition d'autres logiciels dédiés (The Gimp, Paint Shop Pro). Enfin, la décennie s'achève sur l'engouement pour les ondelettes et les images multimodales.

Types de données manipulées

Le traiteur d'image dispose principalement d'images numériques, donc échantillonnées. Il dispose également de données intermédiaires de diverses natures : cartes de régions, listes de points connexes, tableaux de valeurs mesurées, etc.

En ce qui concerne les images proprement dites, la représentation la plus utilisée est celle d'un tableau à 2 dimensions composé d'un ensemble de lignes et de colonnes. Chaque cellule du tableau, appelée pixel, contient une valeur quantifiée. Cette valeur est une sémantique dépendant du type de signal qu'elle code (intensité lumineuse du point, distance à un point de référence, ou numéro de la région d'appartenance par exemple). Dans le cas des images 3D d'IRM, la représentation n'est plus un tableau à 2 dimensions mais un tableau à 3 dimensions.

Acquisition d'une image

L'acquisition d'images est une mesure spatiale d'une interaction entre une onde et de la matière. L'onde est émise par une source et reçue par un capteur. Par exemple dans le cas de l'échographie, l'ultrason, une onde acoustique, est émise et reçue par la sonde. L'interaction est la réflexion de l'ultrason sur la structure du corps.

Dans le cas d'onde électromagnétique, la photographie utilise le spectre visible c'est-à-dire qui est visible pour l'œil humain. Il y a des applications sur l'ensemble du spectre électromagnétique, des rayons gamma jusqu'aux ondes radio. Ainsi, les images acquises par rayons X ou par rayons gamma sont surtout utilisées en imagerie médicale et en astronomie[2]. En médecine, on utilise des imageurs IRM, TEP, scanner X, échographie Doppler, échographie, scintigraphie, tomographie[2].

Les deux caractéristiques importantes de la mesure spatiale est la taille du plus petit élément (pixel), mais aussi l'intercorrélation de deux éléments voisins : plus cette intercorrélation est faible, meilleure est l'image.

Opérateurs de traitement d'images

Par analogie avec les opérateurs mathématiques, on appelle opérateurs de traitement d'images des traitements plus ou moins complexes prenant en entrée une image ou un ensemble d'informations relatif à une image, et produisant une image ou un ensemble d'informations relatif aux données initiales.

On classe généralement les opérateurs en différentes familles, en fonction des informations qu'ils acceptent en entrée et qu'ils fournissent en sortie, et en fonction des transformations qu'ils font subir aux données. Ainsi, par exemple, on distingue (cette liste est loin d'être exhaustive) :

Opérateurs image → image :

  • opĂ©rateurs de modifications pixel Ă  pixel (aussi appelĂ©s opĂ©rateurs point Ă  point) : changement de la dynamique de l'image, opĂ©rateurs binaires pixel Ă  pixel (et, ou, xor, etc.) ;
  • opĂ©rateurs locaux (traitent les pixels en fonction de leur voisinage) : opĂ©rateurs de flou, opĂ©rateurs morphologiques (Ă©rosion, dilatation, squelette), opĂ©rateurs de dĂ©tection de contours ;
  • opĂ©rateurs dans l'espace frĂ©quentiel : opĂ©rateurs de rĂ©duction du bruit, filtres passe-bande (souvent utilisĂ©s en première approche pour amĂ©liorer l'image, on les appelle alors des opĂ©rateurs de prĂ©-traitement) ;
  • opĂ©rateurs globaux : calcul des distances ;
  • opĂ©rateurs de croissance de rĂ©gions : ligne de partage des eaux.

Opérateurs image → ensemble d'informations :

  • opĂ©rateurs de segmentation en frontières, en rĂ©gions ;
  • opĂ©rateurs de classification de pixels ;
  • opĂ©rateurs de calcul de paramètres.

Opérateurs ensemble d'informations → image :

  • constructeurs d'image Ă  partir d'une carte de rĂ©gions ou d'une liste de frontières.

Les parties suivantes s'attachent à détailler les différents opérateurs et leurs applications habituelles, puis à présenter la manière dont ils sont combinés pour construire une application de traitement d'images.

Opérateurs locaux

Il faut alors utiliser des opérateurs de traitement plus complexes scindés bien souvent en deux sous-catégories :

  • les opĂ©rateurs linĂ©aires ;
  • les opĂ©rateurs non linĂ©aires.

La première sous-catégorie comprend tous les opérateurs pouvant exprimer leur résultat comme une combinaison linéaire des niveaux de gris d'un voisinage de l'image. Ces filtres possèdent des caractéristiques spectrales, on parle ainsi de filtre passe-bas (l'image devient floue) ou de filtre passe-haut (les contours ressortent).

La deuxième sous-catégorie comprend le domaine de la morphologie mathématique, ainsi que d'autres traitements comme les détecteurs de points caractéristiques, l'opérateur de Di-Zenzo (détecteur de contour généralisé au cas couleur), le filtre Retinex, ainsi que les opérateurs homomorphiques (ceux qui travaillent sur le logarithme de l'image), mais aussi tous les opérateurs permettant d'extraire par exemple des informations sur la texture de l'image (matrice de concurrence, indice fractal, longueur de plage…).

On a souvent l'habitude de voir un détecteur de contours s'appliquer après un filtre linéaire passe-bas qui rend l'image floue. La plupart du temps il faut combiner astucieusement filtre non linéaire et filtre linéaire afin de détecter ce que l'on souhaite tout en faisant abstraction du bruit.

Une fois le bruit éliminé et l'image restaurée afin de compenser les déformations introduites par le milieu de transmission et l'optique d'acquisition, on peut passer à l'étape de segmentation qui doit permettre de réaliser une partition de l'image en ensembles connexes homogènes.

Il existe deux grandes catégories de segmentations :

  • la segmentation de rĂ©gion ;
  • la segmentation orientĂ©e contour — on se trouve alors confrontĂ© Ă  un problème de reprĂ©sentation du rĂ©sultat par des primitives simples.

La segmentation orientée contour connaît de nombreux progrès autour de l'utilisation de contours actifs ou des ensembles de niveaux. L'introduction d'aspects probabilistes (chaînes de Markov et champs de Markov) a permis de travailler en réduisant la connaissance a priori nécessaire pour obtenir un traitement satisfaisant.

Dans cette étape on retrouve souvent une partie de classification des pixels en classes. On essaye de regrouper au sein d'un même ensemble, aussi appelé classe, les pixels présentant une même caractéristique : niveau de gris compris dans un certain intervalle ou dérivée seconde supérieure à un certain seuil.

Généralités

Un filtre linéaire transforme un ensemble de données d'entrée en un ensemble de données de sortie selon une opération mathématique appelée convolution. Lorsqu'il s'agit de données numérisées comme dans le cas du traitement d'image, la relation entre les valeurs des pixels de sortie et celle des pixels d'entrée est décrite par un tableau de nombres, généralement carré, appelé matrice de convolution ou noyau. Le temps de calcul est souvent réduit lorsqu'on veut séparer un filtre en deux filtres dont la convolution mutuelle permet de le reconstituer. Cette remarque est utilisée en particulier pour créer un filtre à deux dimensions à partir de deux filtres à une seule dimension (vecteurs) dans le sens horizontal et le sens vertical.

Lissage

Ceux-ci sont des filtres passe-bas qui coupent plus ou moins les plus hautes fréquences. Ils sont utilisés pour atténuer les bruits d'origines les plus diverses qui polluent l'information, en particulier dans la détection de contours considérée ci-après.

Techniquement, il s'agit de traductions discrètes de filtres continus qui, comme ceux-ci, ne modifient pas le niveau global du signal. Les termes de la matrice de convolution sont donc généralement des entiers à diviser par leur somme.

  • Filtre uniforme : il est obtenu par convolution de deux filtres unidimensionnels rectangulaires. Toutes les composantes de la matrice ont la mĂŞme valeur. L'imperfection de ce filtre rĂ©side dans le fait qu'il introduit des dĂ©phasages.
  • Filtre pyramidal : la convolution d'un filtre rectangulaire avec lui-mĂŞme conduit Ă  un filtre triangulaire grâce auquel les phases ne sont plus modifiĂ©es. Le filtre pyramidal est obtenu Ă  partir de filtres triangulaires dans les deux directions.
  • Filtre gaussien: ce filtre très populaire utilise la loi de probabilitĂ© de Gauss (voir Loi normale multidimensionnelle). Des approximations de plus en plus prĂ©cises peuvent ĂŞtre obtenues, selon le thĂ©orème central limite par itĂ©ration de l'un des filtres prĂ©cĂ©dents.

Le filtre gaussien est utilisé comme constituant du masque flou qui améliore la netteté apparente des photographies numériques. Bien qu'il soit popularisé par la photographie plus ou moins artistique, il est également utilisé dans certaines techniques, comme l'astronomie[3].

DĂ©tection de contours

Ces filtres transforment l'image d'entrée en une image noire sauf aux points où un contour est détecté qui est marqué en blanc. Les valeurs absolues importent peu, il est sans intérêt de changer d'échelle comme pour un lissage.

La détection est basée sur la dérivation selon les deux coordonnées. Si on considère classiquement les signaux comme des sommes de sinusoïdes, la dérivation apparaît comme un filtre passe-haut qui introduit donc du bruit à l'origine de faux contours. Pour l'amateur il est recommandé, avant d'utiliser un filtre simple, d'atténuer ce bruit par passage dans un filtre flou. Des méthodes plus élaborées ont été systématisées pour les professionnels.

  • Filtre dĂ©rivĂ©es premières. Le filtre le plus simple consiste Ă  calculer les diffĂ©rences entre pixels voisins sur les horizontales puis sur les verticales. Chaque extremum correspond Ă  un point d'un contour.
  • Filtre de Prewitt : le filtre de Prewitt introduit un flou, chacune des deux matrices Ă©tant le produit du filtre dĂ©rivation dans la direction considĂ©rĂ©e par un filtre de flou rectangulaire selon l'autre direction.
  • Filtre de Sobel : la technique prĂ©cĂ©dente est amĂ©liorĂ©e en remplaçant le filtre rectangulaire par un filtre triangulaire.
  • Filtre de Canny : c'est un filtre de Sobel prĂ©cĂ©dĂ© par un lissage gaussien et suivi par un seuillage. Ce filtre est conçu pour ĂŞtre optimal, au sens de trois critères.
  • Filtre de Deriche : variante du filtre de Canny tout aussi efficace.
  • Filtre dĂ©rivĂ©es secondes : celles-ci se calculent simplement en diffĂ©rences finies et c'est maintenant un changement de signe qui correspond Ă  un point d'un contour. On les utilise gĂ©nĂ©ralement Ă  travers leur somme qui est le laplacien.
  • Filtre de Marr-Hildreth : le calcul du laplacien est prĂ©cĂ©dĂ© par un lissage gaussien avec deux variances ajustables pour filtrer les hautes frĂ©quences.

Opérateurs morphologiques

La morphologie mathématique offre des opérateurs non linéaires particulièrement utiles pour filtrer, segmenter et quantifier des images. Initialement destinée au traitement des images binaires, elle a très vite été généralisée aux images à niveaux de gris, puis aux images en couleurs et multi-spectrales.

La nature des opérateurs morphologiques fait qu'ils se prêtent bien au développement de circuits électroniques spécialisés (ou bien à l'utilisation de FPGA) dans les opérateurs morphologiques.

Construction d'une application de traitement d'images

Les objectifs des applications peuvent être de différentes natures :

  • dĂ©tecter la prĂ©sence d'un objet ou son absence ;
  • calculer les caractĂ©ristiques d'un ou de plusieurs Ă©lĂ©ments de l'image.

Dans tous les cas, l'idée est, en partant d'une image initiale, d'en extraire des informations. Pour cela, on va utiliser les opérateurs à la manière de « briques logicielles », en les combinant et en les enchaînant. Ces techniques sont la base des systèmes de vision industrielle.

De nombreuses briques sont disponibles permettant de créer des applications complexes et évoluées.

Reconnaissance d'objets

La reconnaissance d'objets est une branche de la vision artificielle et un des piliers de la vision industrielle. Elle consiste à identifier des formes pré-décrites dans une image numérique, et par extension dans un flux vidéo numérique.

Il ne faut pas confondre reconnaissance d'objets (en anglais : « object recognition » ou « shape recognition ») et reconnaissance de formes (« pattern recognition » en anglais). La première s'attache à reconnaître des formes géométriques dans une image, alors que la seconde cherche à identifier des motifs dans des données statistiques. La confusion vient du fait qu'on utilise souvent la reconnaissance de formes comme technique appliquée à la reconnaissance d'objets.

Tout d'abord objet d'algorithmes dirigés par l'homme, jusqu'en 1995 (tentatives de reproduire par un algorithme un raisonnement humain d'identification, comme dans « un vélo possède deux roues, un cadre… »), la reconnaissance d'objets a fait l'objet de progrès importants par la suite au travers de la mise en œuvre de techniques d'apprentissage, comme les séparateurs à vaste marge. Ces techniques visent à faire exploiter des bases d'exemples positifs et négatifs (contre-exemples) par un algorithme de recherche de critères discriminants, c'est-à-dire de critères permettant de séparer au mieux les exemples des contre-exemples.

Quelques exemples concrets de traitement d'images

  • ContrĂ´le de prĂ©sence/absence. Sur des chaĂ®nes de production, on vĂ©rifie en bout de chaĂ®ne avec une camĂ©ra vidĂ©o la prĂ©sence d'une pièce dans un ensemble plus complexe. Pour cela bien souvent il suffit de faire un simple seuillage dans une rĂ©gion spĂ©cifique.
  • ContrĂ´le du niveau de maturation des fruits sur une chaĂ®ne de conditionnement. Il s'agit de reconnaĂ®tre Ă  la couleur et Ă  la texture du fruit son degrĂ© de maturitĂ© et donc la catĂ©gorie sous laquelle il sera emballĂ© puis vendu.
  • Construction et correction de cartes gĂ©ographiques d'après des images satellites ou des images aĂ©riennes. On recale d'après des informations topographiques les images reçues, puis on les met sur la carte en correspondance avec les informations trouvĂ©es dans l'image : voies de communication, voies et plans d'eau, parcelles agricoles…
  • Surveillance et Ă©valuation de la production agricole. Il est possible de dĂ©terminer le degrĂ© de maturation des cultures, la quantitĂ© d'eau nĂ©cessaire pour l'irrigation, le rendement moyen… On peut ainsi Ă©tablir des prĂ©visions Ă  large Ă©chelle de la rĂ©colte Ă  venir.
  • Reconnaissance de l'Ă©criture. La reconnaissance de l'Ă©criture manuscrite progresse de jour en jour. Elle est suffisamment opĂ©rationnelle pour que la majoritĂ© des adresses, mĂŞme manuscrites, soient reconnues automatiquement sur le courrier postal.
  • Recherche d'image par le contenu. L'objectif de cette technique est de rechercher, parmi une base de donnĂ©es d'images, les images similaires Ă  une image exemple, ou ayant certaines caractĂ©ristiques, par exemple rechercher toutes les images comportant un vĂ©lo.
  • Analyse de la vidĂ©o. L'objectif de cette technique devenue une discipline depuis les annĂ©es 2000 (lorsque la puissance des processeurs peu onĂ©reux et en particulier des PC a permis des traitements puissants en temps rĂ©el) est d'interprĂ©ter les faits observĂ©s Ă  l'image afin de signaler ou d'enregistrer des faits marquants. Le plus souvent, la camĂ©ra est fixe et observe les mouvements d'une scène. Les applications sont nombreuses : protection des biens (dĂ©tection d'intrusion, dĂ©tection d'objet abandonnĂ© ou dĂ©posé…), identification (biomĂ©trie faciale), sĂ©curitĂ© des personnes (dĂ©tection de chutes de personnes, franchissement de rambardes…), animations (planchers animĂ©s selon les mouvements des danseurs en boĂ®te de nuit), dĂ©tection de feux (industriel, forĂŞts, tunnels…), surveillance de tunnels (comptage, mesure de vitesse, dĂ©tection de fuites/anomalies dans les plafonds), surveillance de tuyaux et autres process industriels…
  • Segmentation et suivi de cellules vivantes en microscopie. Cela permet d'analyser le comportement d'une population de cellules et ainsi de dĂ©tecter certaines anomalies.
  • Analyse et authentification de tableaux. L'Ă©tude des niveaux des couleurs des pigments et des vernis permet une analyse approfondie des Ĺ“uvres. Il est ainsi possible de voir les restaurations successives et d'identifier les faux.

Glossaire en vrac

  • Calibration : opĂ©ration consistant Ă  trouver la relation entre les coordonnĂ©es dans l'image et les coordonnĂ©es dans l'espace de la scène.
  • Filtre : autre nom d'un opĂ©rateur prenant une image en entrĂ©e et produisant une image.
  • Pixel : Mot-valise, contraction de « picture element », plus petit Ă©lĂ©ment d'une image numĂ©rique 2D.
  • Recalage : technique consistant Ă  trouver une transformation gĂ©omĂ©trique permettant de passer d'une image (dite source) Ă  une autre image (dite cible).
  • Segmentation : opĂ©ration qui consiste Ă  extraire d'une image des primitives gĂ©omĂ©triques. Les primitives les plus employĂ©es sont les segments (contours) ou les surfaces (rĂ©gions).
  • Squelettisation : permet d'obtenir le squelette d'une forme (objet de dimension infĂ©rieure Ă  celle de l'objet initial et qui prĂ©serve des informations topologiques ou gĂ©omĂ©triques par rapport Ă  l'objet).
  • Voxel : Mot-valise formĂ© Ă  partir de « volumic pixel ». Le voxel est aux cubes d'image 3D ce que le pixel est aux images numĂ©rique 2D.
  • Zone d'intĂ©rĂŞt : dans la mise au point d'un système de traitement d'images, il n'est que rarement intĂ©ressant d'appliquer un opĂ©rateur de traitement d'images Ă  la totalitĂ© de l'image. Le plus souvent seule une partie de l'image doit ĂŞtre traitĂ©e. Cette zone est nommĂ©e « zone d'intĂ©rĂŞt ».
  • DĂ©tection de zones d'intĂ©rĂŞt.

Domaines d'application

Bibliothèques logicielles

  • Aphelion interface et bibliothèque en C++ et C# (sous Microsoft Windows)
  • ImageJ interface et bibliothèque en Java (libre)
  • OpenCV bibliothèque en C++ (libre) aussi disponible pour Python et Java
  • ITK bibliothèque en C++ (libre)
  • Image Processing Toolbox en MATLAB
  • Mahotas bibliothèque en Python (libre)
  • Scikit-image bibiliothèque en Python (libre)
  • PIL bibliothèque en python (libre)
  • CImg bibliothèque en C++
  • Population bibliothèque en C++
  • Adobe Photoshop (scriptable)

Notes et références

  1. Gonzalez, Woods (2008), Introduction p. 3-4
  2. Gonzalez, Woods (2008), Introduction p. 7-24
  3. Le masque flou en imagerie numérique - Pulsar - SAP, no 711 et 712, 1995/1996

Voir aussi

Bibliographie

  • (en) Rafael C. Gonzalez, Richard E. Woods, Digital Image Processing, Pearson Prentice Hall,
  • (en) Anil K. Jain, Fundamentals of Digital Image Processing, 1989

Articles connexes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.