L’analyse d’images est basée sur deux types d’outils majeurs : la morphologie mathématique et le Deep Learning. Ces outils permettent de réaliser des traitements de type analyse quantitative ou de classification. Ils sont basés chacun sur des principes bien différents et sont dans certains cas complémentaires avec des librairies qui se sont rejoints récemment.
Historique de l’analyse d’images
Historiquement, l’analyse d’images, basée sur la morphologie mathématique, a été développée à l’Ecole des Mines de Paris en 1964. Cette théorie, conçue initialement dans le but de répondre à des problèmes liés à l’exploitation minière, a connu depuis un essor important dans le domaine du traitement d’images et fait encore aujourd’hui l’objet de nombreuses recherches. Elle est fondée sur des notions ensemblistes et topologiques. L’analyse d’images fait également de plus en plus appel au Deep Learning (réseau de neurones convolutifs ou CNN) pour la classification. Le Deep Learning, beaucoup plus récent (2012) est, quant-à-lui, basé sur l’apprentissage, et nécessite donc une base d’images relativement importante pour « faire apprendre » l’algorithme. Les deux technologies sont donc bien différentes.
La morphologie mathématique – principe
La morphologie mathématique consiste à déplacer un élément structurant de petite taille (5 x 5 pixels, …) sur l’ensemble de l’image pour en modifier la géométrie. On réalise ainsi des opérations élémentaires (érosion, dilatation, ouverture, fermeture, gradient morphologique, squelettisation, ligne de partage des eaux, …) qui appliquées l’une après l’autre vont transformer progressivement l’image pour en faire ressortir les éléments importants, faire disparaitre le bruit ou les informations non pertinentes et à contrario isoler les particules d’intérêt et les quantifier (taille, position, morphologie, …). Mis bout à bout dans un algorithme, ces opérations permettent de réaliser du traitement automatisé d’images.
La morphologie mathématique pour quantifier des particules
Pour quantifier une image de micrographie avec ImageJ par exemple, on commence en général par transformer cette image initialement en 3 couleurs RGB en une image en niveau de gris (Greyscale avec 256 niveaux, soit 8 bits ou 28). On réalise ensuite une opération de seuillage (thresholding) qui permet de ne conserver que les niveaux de gris permettant d’isoler au mieux les particules ou phases d’intérêt. L’image est alors binarisée (chaque pixel étant égal à 0 ou 1). Les opérations de morphologie mathématique peuvent alors être appliquées successivement sur cette image. Ces opérations peuvent être des érosions, des dilatations, des ouvertures, …, des soustractions d’images. En fin de traitement, il est facile alors de compter le nombre de pixel à 1 pour évaluer un taux de particule surfacique. Les particules étant isolées les unes des autres, on peut également compter leur nombre, …, leur taille respective et afficher si besoin l’histogramme de répartition de leur taille.
La morphologie mathématique pour classifier
Au stade du laboratoire d’investigation structurale, la morphologie mathématique est implémentée dans un très grand nombre de logiciels commerciaux pour analyser des images de micrographies. Pour faire non pas de la quantification comme vu précédemment, mais cette fois-ci de la classification, on calcule pour chaque particule des facteurs de forme (allongement, sphéricité, tortuosité). On peut ainsi caractériser le graphite des fontes à graphite sphéroïdale moulées (taille et forme des particules de I à VI). Les logiciels du commerce ont des routines déjà implémentées qui permettent de traiter de nombreux cas connus.
Le Deep Learning – principe
Si les réseaux de neurones traditionnels (dits Fully Connected) sont bien adaptés au traitement de données, en revanche ils ne sont plus du tout adaptés au traitement d’images de taille importante (> 100 pixels) car ils sont trop pénalisants en temps de calcul en nécessitant trop de neurones (1 par pixel d’entrée) avec autant de poids et de biais à configurer au cours de l’apprentissage par retropropagation du gradient de l’erreur.
En analyse d’images, on utilise donc des réseaux de neurones dits convolutifs dans lesquels les premières couches ne sont plus des neurones traditionnels, mais une alternance de couches de convolutions et de couches de Pooling. Seules les dernières couches sont constituées de réseaux de neurones traditionnels (FC pour Fully Connected). Les couches de convolution et de pooling réalisent de l’extraction de caractéristiques (Feature Extraction ou Feature Learning).
Les filtres de convolution en DL
La convolution consiste à appliquer un noyau (ou kernel) de petit taille (3×3 ou 5×5) sur l’image en faisant glisser ce filtre sur l’ensemble de l’image. Ce filtre va modifier l’ensemble des pixels de l’image tout en conservant la taille initiale de l’image. Cette modification va dépendre de chaque kernel et va mettre en avant des caractéristiques spécifiques de l’image. Ainsi, certains filtres vont extraire des caractéristiques liées aux lignes verticales, ou horizontales, ou liés au contour. On applique à chaque couche de convolution un très grand nombre de filtres qui chacun vont extraire des caractéristiques particulières.
Le Pooling en DL
Le pooling consiste à réduire la taille de l’image en calculant le maximum (PoolingMax) de carré de 4 pixels (2×2) et en remplaçant donc 4 pixels par un seul constitué de sa valeur maximale. En Deep Learning, en général, on alterne une couche de convolution et une couche de pooling qui permet de réduire progressivement la taille des images tout en extrayant un grand nombre de caractéristiques.
Les logiciels de traitements d’images open-source
ImageJ est un outil d’analyses d’images open-source très utilisé qui bénéficie d’une communauté d’utilisateurs importante. Si son interface est très sobre et minimaliste, ImageJ est parmi les outils les plus rapides et les plus puissants. FIJI (acronyme pour « Fiji Is Just ImageJ ») est une version « étendue » d’ ImageJ, livrée avec un certain nombre de plugins complémentaires. L’analyse d’image, toujours par morphologie mathématiques, peut être réalisée, non plus avec le logiciel ImageJ, mais directement en codant en Python les opérations d’érosion, de dilatation, … Cela nécessite cependant de maitriser un minimum de connaissance de la programmation en Python.
Plusieurs librairies permettent ainsi de réaliser de l’analyse d’images à base de morphologie mathématique comme Scikit-Image, OpenCV, SimpleCV, … Pour utiliser les algorithmes de Deep Learning et les CNN, il faudra utiliser les librairies spécialisées en open-source keras.tensorflow ou Pytorch qui contiennent un très grand nombre d’outils y compris de la data-augmentation (si la base d’image est réduite) ou du transfert-learning (utilisation de CNN déjà pré-entrainés). Enfin, signalons des outils comme DeepImage J et MophoLayers qui combinent les 2 approches (morphologie mathématique et DL). Ainsi, le Centre de Morphologie Mathématique (CMM) à MINES ParisTech a récemment développé la librairie « Morpholayers » qui permet de coupler des opérations de morphologie mathématiques aux opérations d’un réseau de neurones convolutifs via les librairies keras.tensorflow.
Morphologie mathématique versus Deep Learning
Les applications de l’analyse morphologique et du DL sont relativement différentes. Le Deep Learning est spécialisé dans la classification d’images en particulier sur les applications grand public (reconnaissance faciale, …) ou scientifiques alors que la morphologie mathématique est davantage dédiée à l’analyse d’images scientifiques et à la quantification mais aussi à la classification grâce à des facteurs de forme. Il est clair que les progrès techniques les plus importants récents concernent le DL.
Conclusions
Le Deep Learning n’a pas remplacé la morphologie mathématique et à ce jour, les 2 technologies de traitement d’images continuent leurs développement avec des passerelles entre les 2 comme DeepImageJ et les bibliothèques MorphoLayers pour keras.tensorflow. Leur objectif n’est pas tout à faire similaire : plutôt l’analyse scientifique et la quantification pour la morphologie mathématique et plutôt la classification pour le Deep Learning. Elles apparaissent donc davantage complémentaires que réellement concurrentes.