Vision par ordinateur ! Comment les ordinateurs arrivent-ils à faire les mêmes tâches que les humains?

Vision_par_ordinateur_Comment_les ordinateurs_arrivent-ils_a_faire_les_memes taches_que_les_humains?

La vision par ordinateur regroupe l’ensemble des outils mathématiques et algorithmiques permettant d’extraire, de modifier, d’ajouter où de supprimer des informations contenues dans une image.


Une telle science est susceptible à l’avenir de causer un chômage de masse, car le nombre d’applications possible est juste immense.


Les voitures autonomes, les magasins sans caisses, la création d’image artificielle, de visage inexistant où encore de fausses vidéos sont possibles grâce aux avancées qu’il y a eu ces dernières années dans le domaine.


La bonne nouvelle est que pour la majorité des applications possible, il vous suffira de disposer juste d’un ordinateur, de connaissance basique en programmation et en mathématique pour apprendre la vision par ordinateur.


Vous pouvez donc dès maintenant prendre le contrôle et décider de vous former dans ce domaine futuriste pour lequel il y aura des emplois demain.


Dans les prochaines sections, nous verrons plus en détail, ce qu’est que la vision par ordinateur, qu’elles sont les outils utilisés par les pro pour en faire. Dans l'article qui suit, nous voyons ce qu'est le Deep learning qui actuellement est la pointe dans le domaine.



Capture de l’image

Basiquement, tout logiciel de vision par ordinateur commence par enregistrer une image à l’aide d’un système de capture. Cela peut être un appareil photo, un scanner IRM, une caméra à ultrason où encore tout appareille capable de capter un signal dans l'espace.


Dans le cas général, le système de capture sera un appareil photo de smartphone. Le fonctionnement de cet appareil est le suivant : à l'intérieur de celui-ci se trouve un capteur CCD “Charge Coupled Device “ qui servira à capturer l’image. Ce capteur CCD ne peut capter pour des raisons techniques que 3 longueurs d’onde de lumière le rouge, le vert le bleu. Cela signifie qu’après capture de l’image, il transformera celle-ci en une matrice tridimensionnelle RGB contenant l’intensité des signaux lumineux captés à chaque position endroit de l’image. L’image est alors enregistrée dans la mémoire du smartphone.



Après avoir capturé l’image, que se passe t’il ?

Afin que vous compreniez mieux, nous allons prendre l’exemple d’un botaniste, car dans son travail, il effectue des tâches très similaires à celui d’un logiciel d'analyse d'image.


Imaginez que vous êtes botaniste et que vous souhaitez ouvrir une entreprise de remèdes naturels fabriqués à partir des plantes présentes dans votre département. Qu’elles seront les grandes étapes qui vous permettront de réaliser ce but?


Moi, j’en ai répertorié 5 et ces 5 étapes correspondent aux 5 grandes étapes de la majorité des logiciels du domaine.


La première étape après avoir enfilé vos bottes et votre tenue de jardinier sera de sortir de chez vous et d’aller cueillir une à deux fleurs pour chaque espèce de plante. Vous mettrez alors ces fleurs dans votre sac. En image, cette étape est appelée la segmentation, en clair, on a un lot d’images sur lesquelles des objets en particulier nous intéressent, et le but de cette étape est littéralement de localiser sur l’image ces objets et leurs contours puis de les découper et de les mettre dans un tableau. C’est l’une des étapes les plus importantes, car de son résultat découlera le résultat final du programme. De plus, cette étape est spécifique aux images traitées, il n’existe à ce jour aucune technique permettant de traiter tout type d’image. Le codeur prendra donc le soin de se documenter sur les méthodes existantes pour le type d’images qu’il souhaite traiter puis il en implémentera par ailleurs plusieurs et choisira via des tests statistiques la meilleure d’entre elles.


Mais avant de mettre les fleurs dans votre sac, peut être que vous souhaiteriez les tremper dans de l’eau afin qu’elle se conserve plus longtemps, où encore les nettoyer, enlevez les résidus organiques présents sur celle-ci ou encore les insectes qui aurait pu rester accrochés à celle-ci. Cette étape est appelée le prétraitement, elle consiste à effectuer toutes les opérations nécessaires sur un lot d’images afin de retirer tout élément gênant et de simplifier tous traitements futurs.


Maintenant que vous avez récolté et nettoyez l’ensemble de vos fleurs, vous allez vouloir probablement les mesurer, noter leurs couleurs, dessiner leurs formes et écrire toutes ces informations dans un cahier. Afin de pouvoirs identifier la fleur sans même avoir besoin de la regarder. Vous feriez donc ce qu’on appelle communément en traitement d’image une extraction de caractéristiques.


L’extraction de caractéristiques consiste à prendre les images des objets qui ont été découpés lors de la segmentation et à extraire via des opérations matricielles d’image les caractéristiques de l’objet. Il s’agira principalement d’écrire des fonctions et des procédures permettant de transformer l’ensemble des pixels contenus dans l’objet en données représentatives de celui-ci facilement manipulable dans un programme tel que des nombres réels. L’aire d’un objet par exemple est une donnée facilement manipulable et représentative de l’objet duquel elle a été extraite. Elle s'obtient simplement en comptant le nombre de pixels qui compose l'objet.


Ce n’est qu’un avis personnel, mais pour moi, cette étape est probablement celle qui demande le plus d’effort, car il faut écrire un code permettant de passer de la représentation intuitive et humaine de l’objet que nous avons à une représentation mathématique de celui-ci. J’ai notamment eu dans mon travail des cas ou je devais extraire de petits détails sur plusieurs objets. Ces détails n’étaient pas forcément caractéristiques des objets, mais permettaient de faire la différence dans le traitement final . Cette étape est particulièrement difficile quand l’on souhaite extraire des caractéristiques permettant de distinguer deux objets qui se ressemblent fortement, mais qui ne sont pas les mêmes.


Enfin, maintenant que vous connaissez toutes les plantes médicinales de votre département. Nous allons supposer que vous avez déjà des recettes de remède naturel que vous avez appris lors de vos études de botaniste. Vous allez donc vouloir vous lancer dans la production de ces remèdes. Vous allez sortir de chez vous cueillir les plantes nécessaires à la fabrication de vos remèdes et par la suite vérifier dans votre cahier où vous avez écrit les mesures et la couleur des plantes et que les plantes que vous avez cueillies sont bien les bonnes et enlevez les mauvaises. Cette étape de vérification est appelée en image la classification, à partir des mesures obtenues dans la phase d’extraction de caractéristiques, nous allons comparer celle-ci à de nouvelles images afin d’identifier qu’elle est l’objet dont il s’agit. Cela se fera notamment à l’aide d’algorithme de machine learning telle que les arbres de décision ou encore les réseaux de neurones.


Pour finir maintenant que vous avez la confirmation que les plantes que vous avez prélevées sont bien les bonnes qu’elles ont toutes été bien trié, vous allez commencer à fabriquer les remèdes. Nous appelons cette étape en vision par ordinateur le post-traitement, il s’agit d’une étape qui n’a rien à voir avec l’analyse d’image et qui sera effectuée après l’intégralité du traitement.



Conclusion

Nous avons donc vu qu’un logiciel de vision par ordinateur est composé de 5 étapes phares qui sont le prétraitement, la segmentation, l’extraction de caractéristiques, la classification et le post-traitement. Toutes ces étapes sont codable dans la majorité des langages de programmation, mais personnellement j’ai une préférence pour Python, car il est facile d’écrire du code dans ce langage. Je vous invite donc à vous mettre à vos claviers, et faire des recherches sur les bibliothèque telle que OpenCV, et scikit-learn et à vous inscrire à ma newsletter afin de recevoir des conseils et des astuces gratuitement sur le domaine du traitement d’images et de l’intelligence artificielle.



.