Image Processing : principes fondamentaux et usages pratiques

-
4
 m de lecture
-

Les images contiennent de nombreuses informations importantes. Si elles sont faciles Ă  dĂ©celer pour nos yeux habituĂ©s, elles reprĂ©sentent un vrai challenge en analyse de donnĂ©es. L’ensemble de ces techniques est connu sous le nom d’« image processing » ou traitement d’image. Dans cet article, vous dĂ©couvrirez les algorithmes, techniques et outils classiques permettant de traiter les donnĂ©es sous forme d’images.

Qu'est-ce que l’image processing ?

Comme son nom l’indique, le traitement d’image consiste Ă  traiter des images, ce qui peut inclure de nombreuses techniques diffĂ©rentes, et le rĂ©sultat final peut se prĂ©senter sous la forme d’une autre image, d’une variation ou simplement d’un paramĂštre de cette image. Ce rĂ©sultat peut ensuite ĂȘtre utilisĂ© pour une analyse plus approfondie ou une prise de dĂ©cision.

Il s’agit de la partie centrale de la vision par ordinateur (ou « computer vision ») qui joue un rĂŽle crucial dans de nombreux exemples du monde rĂ©el comme la robotique, les voitures autonomes et la dĂ©tection d’objets. Le traitement d’images nous permet de transformer et de manipuler des milliers d’images Ă  la fois et d’en extraire des informations utiles. 

Mais qu'est-ce qu'un image ?

Une image peut ĂȘtre reprĂ©sentĂ©e comme une fonction en 2D F(x,y) oĂč x et y sont des coordonnĂ©es spatiales. Il s’agit donc d’un tableau de pixels disposĂ©s en colonnes et en rangĂ©es. La valeur de F en un point x,y est connue comme l’intensitĂ© d’une image Ă  ce point. Si x, y et la valeur de l’amplitude sont finis, on parle d’image numĂ©rique. 

Une image peut Ă©galement ĂȘtre reprĂ©sentĂ©e en 3D dont les coordonnĂ©es sont x, y et z. Les pixels sont alors disposĂ©s sous la forme d’une matrice. C’est ce qu’on appelle une image RVB (ou RGB en anglais). Si l’image est en niveaux de gris, il n’y a qu’un seul canal : z = 1.

représentation de l'image processing
Illustration d'une image RVB

Techniques classiques d’image processing

Historiquement, les images Ă©taient traitĂ©es avec des mĂ©thodes d’analyse mathĂ©matique, nous allons en prĂ©senter quelques-unes ci-dessous :

  • Le flou gaussien, ou lissage gaussien, est le rĂ©sultat de l’application sur une image, c’est-Ă -dire sur une matrice telle que dĂ©fini ci-dessus, d’une fonction gaussienne. Il est utilisĂ© pour rĂ©duire le bruit de l’image et attĂ©nuer les dĂ©tails. L’effet visuel de cette technique de flou est similaire Ă  celui de regarder une image Ă  travers un Ă©cran translucide. Elle est parfois utilisĂ©e comme technique d’augmentation de donnĂ©es pour du deep learning dont nous parlerons plus en dĂ©tail ci-dessous.
  • La transformĂ©e de Fourier dĂ©compose une image en composantes sinus et cosinus. Elle a de multiples applications comme la reconstruction d’images, la compression d’images ou le filtrage d’images. Puisque nous parlons d’images, nous allons prendre en considĂ©ration la transformĂ©e de Fourier discrĂšte.

Considérons une sinusoïde, elle est composée de trois éléments :

  • L’amplitude – liĂ©e au contraste 
  • La frĂ©quence spatiale – liĂ©e Ă  la luminositĂ©
  • La phase – liĂ©e Ă  l’information sur la couleur

La dĂ©tection des contours est une technique de traitement d’image permettant de trouver les limites des objets dans les images, elle fonctionne en dĂ©tectant les discontinuitĂ©s de la luminositĂ©. Plus prĂ©cisĂ©ment, les bords sont dĂ©finis comme les maxima locaux du gradient de l’image, c’est-Ă -dire les zones oĂč il y a une grande variation de valeurs entre deux zones de pixels. L’algorithme de dĂ©tection des contours le plus courant est celui de Sobel.

Image Processing avec des réseaux de neurones

détection des contours sur une image de la tour Eiffel
DĂ©tection des contours sur une image de la Tour Eiffel

L’apparition des rĂ©seaux de neurones et des puissances de calcul accrues a permis de rĂ©volutionner le traitement d’image. En particulier, les rĂ©seaux de convolution qui s’inspirent des techniques citĂ©es prĂ©cĂ©demment excellent dans la dĂ©tection et la reconnaissance d’objets ou de personnes. Comment fonctionnent-ils ? 

Un réseau neuronal convolutif, ou CNN en abrégé, comporte trois types de couches principales :

  • La couche convolutionnelle (CONV) : Elle est responsable de l’exĂ©cution de l’opĂ©ration de convolution. L’Ă©lĂ©ment impliquĂ© dans l’exĂ©cution de l’opĂ©ration de convolution est appelĂ© le noyau/filtre (matrice). Le noyau effectue des dĂ©calages horizontaux et verticaux jusqu’Ă  ce que l’image entiĂšre soit traversĂ©e. Son fonctionnement est similaire Ă  la technique de dĂ©tection des contours.
  • Couche de mise en commun (POOL) : Cette couche est responsable de la rĂ©duction de la dimensionnalitĂ©. Elle permet de diminuer la puissance de calcul nĂ©cessaire au traitement des donnĂ©es. Il existe deux types de mise en commun : La mise en commun maximale et la mise en commun moyenne. La mise en commun maximale renvoie la valeur maximale de la zone couverte par le noyau sur l’image. La mise en commun moyenne renvoie la moyenne de toutes les valeurs de la partie de l’image couverte par le noyau.
  • Couche entiĂšrement connectĂ©e (FC) : La couche entiĂšrement connectĂ©e (FC) est prĂ©sente Ă  la fin des architectures CNN. Elle est similaire Ă  une couche traditionnelle de rĂ©seaux de neurones et permet, aprĂšs application d’une fonction d’activation, de renvoyer la sortie attendue par le rĂ©seau, par exemple une classification.

L’ajout de fonctions non linĂ©aires (« RELU ») au sein des rĂ©seaux ou d’architectures spĂ©cifiques permettent de rĂ©pondre Ă  des problĂ©matiques plus complexes. Les exemples sont nombreux : DenseNet, U-Net, VGG


Generative Adversarial Networks

Les donnĂ©es labellisĂ©es Ă©tant parfois trop peu nombreuses pour l’entraĂźnement de rĂ©seaux complexes, les modĂšles gĂ©nĂ©ratifs dits GAN pour Generative Adversarial Networks sont particuliĂšrement utilisĂ©s aujourd’hui.

schéma représentant le fonctionnement du GAN
Le fonctionnement du GAN

Les GANs sont composés de deux modÚles : Generator et Discriminator. Le générateur apprend à créer de fausses images qui semblent réalistes afin de tromper le discriminateur et le discriminateur apprend à distinguer les fausses images des vraies. 

Le gĂ©nĂ©rateur n’est pas autorisĂ© Ă  voir les images rĂ©elles, il peut donc produire de mauvais rĂ©sultats dans la phase de dĂ©marrage, tandis que le discriminateur est autorisĂ© Ă  voir les images rĂ©elles, mais elles sont mĂ©langĂ©es avec les images fausses produites par le gĂ©nĂ©rateur, qu’il doit classer comme rĂ©elles ou fausses.

Un certain bruit est introduit dans le gĂ©nĂ©rateur afin qu’il soit capable de produire des exemples diffĂ©rents Ă  chaque fois et non le mĂȘme type d’image. Sur la base des scores prĂ©dits par le discriminateur, le gĂ©nĂ©rateur essaie d’amĂ©liorer ses rĂ©sultats. AprĂšs un certain temps, le gĂ©nĂ©rateur sera capable de produire des images qui seront plus difficiles Ă  distinguer. Le discriminateur s’amĂ©liore Ă©galement car il obtient du gĂ©nĂ©rateur des images de plus en plus rĂ©alistes Ă  chaque tour.

Les types de GAN les plus populaires sont les GAN convolutifs profonds (DCGAN), les GAN conditionnels (cGAN), les StyleGAN, CycleGAN etc.

Les GANs sont parfaits pour la gĂ©nĂ©ration et la manipulation d’images : vieillissement du visage, mĂ©lange de photos, super rĂ©solution, peinture de photos, traduction de vĂȘtements.

Conclusion

Il existe beaucoup de techniques d’image processing, et comme dans beaucoup de cas aujourd’hui, les rĂ©seaux de neurones permettent d’obtenir beaucoup d’informations et des conclusions trĂšs prĂ©cises. Python est le langage de prĂ©dilection pour ce genre de tĂąches, avec des outils comme OpenCv, Scikit Image, Tensorflow ou Pytorch. 

Les formations dispensĂ©es par DataScientest proposent de nombreux outils pour apprendre Ă  traiter les donnĂ©es sous forme d’image et Ă  utiliser les rĂ©seaux de neurones les plus complexes. 

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les derniÚres actualités data directement dans votre boßte mail.

Vous souhaitez ĂȘtre alertĂ© des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?