La reconnaissance d’image, ou plutôt la compréhension automatique d’image, est une composante très importante de l’intelligence artificielle (IA). Elle permet de répondre à de nombreuses problématiques comme le diagnostic de maladie par lecture d’images médicales, la conception de voitures autonomes (dont on parle de plus en plus aujourd’hui) ou bien encore la reconnaissance faciale, pour par exemple, déverrouiller son téléphone.

Avant d’aborder la compréhension automatique d’image, nous allons d’abord donner une définition simple de l’intelligence artificielle ainsi que son principe de fonctionnement.

Une IA est un système qui, par la mise en place de techniques et théories (mathématiques, électroniques, neuroscientifiques, …), permet de s’approcher au mieux, à défaut d’être parfait, d’une ou plusieurs capacités cognitives de l’Homme comme analyser ou prendre des décisions.

Comme nous l’avons vu précédemment, la compréhension automatique d’image est une branche de l’IA. Elle correspond basiquement (puisqu’elle ajoute des fonctionnalités en plus) à notre capacité d’analyser notre environnement avec la vue. L’objectif de ce système, est d’analyser et traiter des informations issues d’images ou bien encore de vidéos. Pour cela, le système doit, comme nous, passer par une phase d’apprentissage que l’on appelle souvent le Machine Learning.

Le principe du Machine Learning, est de donner une grande quantité de données diverses et variées au système pour pouvoir le confronter au plus grand nombre de situations possibles, car chaque image (vidéo) est unique.  Ce travail est réalisé par l’Homme (on parle de Machine Learning supervisé). En général, ces images sont regroupées en sous ensembles (appelés Batches) pour des raisons techniques (parallélisme et gestion de la mémoire).

Principe de fonctionnement du Machine Learning.

Une fois la collecte de données effectuée et transmise au système, il y aura une phase de traitement durant laquelle le système va analyser chaque Batches et donner une première prédiction pour ensuite comparer son résultat avec le « vrai résultat » donné par l’Homme. La différence entre les deux est appelée l’erreur, ou « loss » en anglais. Plus elle est faible plus le système sera en mesure de donner une prédiction fiable. Cette erreur est importante à calculer car elle permet au système de rétroagir sur les différents paramètres (comportements) qu’il contient (on parle de rétropropagation du gradient). Un des paramètres importants (ou plutôt un hyperparamètre, c’est à dire qu’il est défini au début de l’apprentissage par l’Homme) est le Learning Rate (vitesse d’apprentissage). S’il est trop important, alors le traitement du batch courant peut potentiellement avoir des effets néfastes sur l’apprentissage fait précédemment. S’il est trop faible, on risque d’avoir un apprentissage très lent et l’apport d’un batch sera peu bénéfique. Toute la difficulté est de trouver un bon compromis entre rapidité d’apprentissage et qualité d’apprentissage.

Exemple d’illustration du Learning rate

Avec l’image ci-dessus, nous allons essayer d’expliquer l’influence du Learning rate dans le cas de l’algorithme de descente du gradient. Cet algorithme permet de trouver le minimum d’une fonction convexe (pour faire simple, qui ne contient qu’un seul « creux »). Le principe est de choisir un point au hasard sur la courbe et de réaliser des pas successifs (les points en rouge sur les deux courbes) afin de se rapprocher du minimum.

S’il on réalise des petits pas (comme c’est le cas sur l’image de gauche), l’algorithme va s’approcher de la solution mais très lentement. En revanche, si les pas sont très grands, alors on se rapproche très rapidement du minimum mais on risque fortement de le rater où d’osciller autour sans jamais l’atteindre (situation de droite).

Désormais, nous avons terminé notre détour sur le vaste sujet du Machine Learning. Nous allons voir dans la suite comment ces principes s’appliquent à la compréhension automatique d’une image.

Imaginons que l’on veuille réaliser un système capable de reconnaitre des fruits. On va d’abord présenter au système (en accord avec ce que nous avons vu précédemment) de nombreuses images, avec beaucoup de variété, où se trouve des fruits. Le système est en fait constitué de neurones artificiels qui forment un réseau (Ce que l’on appelle le Deep Learning) ou apprentissage profond en français, le système apprend automatiquement c’est-à-dire qu’il n’a plus besoin de l’indication de l’Homme). Chaque neurone réalise une tâche, une opération élémentaire sur des entrées (des informations envoyées par d’autres neurones) qu’il va ensuite transmettre à d’autres neurones. 

Schématisation d’un réseau de neurones.

Tous ces neurones sont organisés en couches, les premiers neurones effectuent des traitements « grossiers » tandis ce que les derniers neurones réalisent des traitements plus fins. Dans notre cas, les premiers neurones se contentent juste de délimiter les contours des fruits alors que les derniers « reconnaissent » des détails plus fins sur le fruit en appliquant des filtres qui permettent d’isoler l’information utile à la reconnaissance. Cependant, chaque neurone peut se retrouver à manipuler une tonne d’informations. C’est pourquoi il est nécessaire d’en prioriser certaines afin de garder l’information utile. Un neurone reçoit des signaux, plus ou moins forts, d’autres neurones (Ce sont les activations). En fonction de la « force » du signal et de son importance (un poids est affecté pour l’indiquer. Si un signal a pour poids 0.9 et un autre 0.1, alors le premier signal est plus important que le second en terme de qualité de l’information). Le neurone produira à son tour un autre signal qui sera pondéré (moyenné) par ses signaux d’entrée avec leur poids correspondant et les neurones récepteurs reproduiront le même principe.

Le passage de chaque image de test va permettre au système d’entrainer ce réseau de neurones pour le rendre plus fiable et plus performants. Malheureusement, le système n’est jamais capable d’affirmer à 100% son résultat. En général il donne un taux de vraisemblance qui doit être le plus élevé possible pour avoir un système efficace et fiable.

En conclusion, nous pouvons dire que la compréhension automatique des images est un enjeu majeur dans le domaine de l’intelligence artificielle. En effet, ses applications, diverses et variées, permettent de répondre à des problématiques, à des enjeux auxquels on ne pouvait pas répondre. Par exemple, le simple fait qu’un système puisse assister les médecins lors d’analyse de radio était, il y a quelques années encore, impensable. De plus, ce mécanisme peut être très utile pour des potentiels robots afin qu’il maitrise leur environnement. Cependant, de nombreux débats fusent. Comme la vidéo surveillance équipée de ce mécanisme de compréhension que certains qualifient d’atteinte aux libertés fondamentales alors que d’autres voient là un réel outil pour les forces de l’ordre par exemple.

Pour en savoir plus sur ces concepts, voici les sources qui ont été utilisées pour rédiger l’article :

Sitographie :

Site : Medium.com, Le Deep Learning, comment fonctionne l’algorithme qui a bousculé le monde de l’intelligence artificielle, màj le 18 Janvier 2019.

https://medium.com/france-school-of-ai/le-deep-learning-comment-fonctionne-lalgorithme-qui-a-bouscul%C3%A9-le-monde-de-l-intelligence-5e0f44bcc72d

Site : Medium.com, Intelligence artificielle : la reconnaissance d’images prend de l’ampleur, màj le 15 Mars 2019.

https://medium.com/@veilleunitec/intelligence-artificielle-la-reconnaissance-dimages-prend-de-l-ampleur-9836dfddfb82

fr&id=26242&part=2

Vidéo : L’esprit Sorcier, Tout comprendre à l’IA, sorti le 29 Novembre 2018.

https://www.youtube.com/watch?v=P-z3eAuV1kc