Reconnaissance d'images

La reconnaissance d'images est une applications de l'intelligence artificielle qui fait partie et qui fera dorénavant partie de plus en plus de nos vie. 

Tu peux le constater si tu regarde déjà autour de toi, je suis sûr que tu a déjà vu quelqu'un utiliser la reconnaissance faciale pour déverouiller son Iphone ou son ordinateur. 

Et si ce n'est pas le cas, je suis convaincu que tu a déjà remarquer le lecteur d'empreinte au dos des smartphone ou sur certain ordinateur portable qui permet de prendre une image (Oui, une image contrairement à ce que l'on pourrait croire) de l'empreinte du droit que tu pose la dessus. 

Mieux encore, si tu cherche bien sur la playstore de Google , tu verras qu'il y a un tas d'applicationn tel que PlantNet qui est une application de reconnaissance de plante. 

Preuve en est que la reconnaissance d'images est d'ores et déjà dans notre environnement quotidien 

Même si nous le remarquons peut-être pas toujours. 

De plus avec l'arrivé d'autre innovation tels que les voiture autonome elle fera de plus en plus partie de notre vie dans le future.

Ce qui en fait un tout à fait fascinant topic à explorer : 


Dans cette article, je verrais avec toi : 

Qu'est ce que la reconnaissance d'image

Comment la reconnaissance d'image fonctionne? 

Qu'elle sont les différentes applications de la reconnaissance d'image ?

Quelque exemple d'outils utilisé pour la reconnaissance d'image.




La reconnaissance d'image est un sous-domaine de l'intelligence artificielle qui a pour but de permettre l'analyse automatique de l'environnement et à terme la compréhension totale  de l'environnement par les machines. 

Comme tu peux  le comprendre, cela engendrera d'énorme impacte économique et sociaux quand à notre mode de vie quotidien. 

Tels que la robotisation de la société, ou nous vivrions dans une société ou les robots serait de plus en plus présent dans notre environnement. 

A tel point qu'il effecturai nos tâche ménagère, irait jeter nos poubelles et d'autre tâche courante que l'homme n'a pas toujours envie d'effectuer. 

Cela dit on en est encore loin. Voyons donc comment la reconnaissance d'images fonctionne.


Comment la reconnaissance d'image fonctionne? 

La reconnaissance d'image fonctionne en 5 étapes simples 

La première étape d'un traitement de reconnaissance d'image consiste

Extraire les objets présent dans les images

Plus connus sous le nom de segmentation elle consiste à identifier l'ensemble des objets présents sur l'image. Pour ce faire, généralement un masque binaire est créé comme montré ci-dessous.







Grâce a ce masque binaire, l'ordinateur peut facilement identifier la position des objets présent sur l'image et ainsi les extraire.




Extrait individuellement comme montré sur l'image ci-dessus, les objets sont facilement mesurable.

En effet, la hauteur et la largeur de chaque image peuvent déjà par exemple t'indiquer la taille de chaque objet.

Une fois les objets extrait, la seconde étape consista à : 

extraire des informations de chacunes des imagettes

Pour extraire les informations contenu dans chacune des imagette, les mathématiciens et ingénieur en traitement d'image ont mis en place des formules mathématique complexe permettant d'obtenir les propriété de chacun des objets de l'image. 

Par exemple :

Pour extraire l'aire d'un objet, il vont écrire un code qui permettra de compter le nombre de pixel appartenant à l'objet. 

Pour en extraire le périmètre il vont compter le nombre de pixel entourant cette objet. 

Et enfin pour savoir si l'objet est ou pas rond, il vont calculer une mesure communément connu sous le nom de circularité dans la communauté du traitement d'image.

Il s'agit d'une mesure comprise entre 0 et 1 et qui exprime à quelle degré l'objet est rond. Elle est obtenu a partir de l'air et du périmètre de l'imagette

Sa formule est la suivante :

A la fin de cette étape on obtient pour chaque objets un schéma similaire à celui-ci dessous est obtenu



Il existe bien d'autre mesure, à tel point qu'il est impossible de toute les citer c'est pourquoi je m'en arrête la. 

Une fois toute ces mesure calculée, nous pouvons passer à la troisième étape il s'agit de l'

entraînement du modèle de reconnaissance

Lors de cette étape, un modèle de classification supervisée est choisi parmi l'ensemble des modèles qu'il est possible de choisir.  

Il en existe énormément, mais actuellement les deux modèle de classification les plus populaires sont : 

Les réseau de neurones 



Les arbres de décisions

Par la suite, les mesure précedemment extraite sont soumise au classifieur avec pour but de reconnaître l'objet :



Lors de l'entraînement, il peut alors ce passer deux chose, la première est que 

le classifieur reconnaît l'objet qui lui est soumis



Dans ce cas la, on est dans le plus parfait des monde puisque le classifieur reconnaît belle et bien l'image de laquelle il est en présence. Le second cas possible est que,

le classifieur ne reconnait pas l'exemple qui lui est soumis

Dans ce dernier cas, il est automatiquement modifié par son algorithme d'entraînement, de tels sorte qu'après correction il puisse donner la bonne réponse.

L'entraînement du classifieur est effectuer généralement sur l'ensemble des images à disposition. Il est important qu'il y ait

un minimum d'exemples

car sinon, l'entraînement se déroulera mal et la réponse données par le classifieur ne sera pas bonne. 

Une bonne pratique consiste à avoir au minimum 20 exemple d'image par catégorie d'objet présente dans le jeux de données. 

Enfin, une fois le modèle entraîné, il est possible de passé à la dernière étape :

la reconnaissance des images

Pour cela, il suffir d'extraire de l'image que l'on souhaite reconnaître les même mesures qui ont été extraites des imagette utilisées pour l'entraînement du classifieur et de les envoyé en entrée du classifieur. 

Ce dernier donnera alors le nom de l'objet.


Une autre manière de procéder pour la reconnaissance d'images


Une autre manière de procéder pour la reconnaissance d'images et bien plus récente que celle que j'ai exposé précedemment est l'utilisation d'un

Réseau de neurones convolutifs


Comme j'ai pu te le faire comprendre précedemment, pour faire de la reconnaissance d'objets, il faut soit prendre l'objet et le

mesurer manuellement avec une règle.

puis envoyé ces mesure à un modèle de classification. Ce processus peut être particulièrement long surtout si il y a des millier de d'objet à analyser. 

Prendre une photo de chaque objet et

construire une programme d'analyse d'image

qui permettra de prélever ces mesures. 

En clair il faut être expérimenté en traitement d'images. 

Ce qui peut être un gros inconvénient pour bon nombre d'entre nous.

Pour palier cela, en 1988 Yann Lecun au laboratoire Bell invente les réseaux de neurones convolutifs. 

La particularité de ces réseau est que contrairement au réseau classique tel que le perceptron multi-couche ou les arbres de décisions qui ont besoin des données prémâché pour pouvoir effectuer le job, 

Ces réseau n'ont juste besoin que de l'image brute. 

Ainsi, même quelqu'un n'y connaissant rien au traitement d'images, s'il a suffisement d'images de ce qu'il souhaite reconnaître automatiquement, il sera en mesure de construire un programme capable de le discriminer, sans forcer comme normalement il devrait pour extraire les différentes mesures des objets.

Ci dessous tu peux voir le schéma d'un réseau de neurones convolutif.


Schéma du réseau convolutionnel de neurones :


Comme tu peux le voir, en entrée de ce réseaux comme je te lai dit précédemment, on y envoi une image. 

Cette image, va ensuite être modifiée plusieurs fois et donné naissance à différente images sous l'action des filtres du réseau de neurones.  

Chacune des images seront réduite à la suite d'une opération de pooling. Cette dernière, à pour but de résumer l'information se trouvant dans l'image.

Les deux étapes que je viens de citer sont nommer respectivement "convolution" et "pooling".

Elle sont répéter autant de fois que le concepteur du réseau le souhaite.  

Tu l'as donc probablement compris, le but de toute ces opération de convolution et de pooling est de prémacher le boulot, afin de pouvoir envoyé les informations extraites de l'image à un perceptron multi-couches. 

Exactement comme l'aurait fait un ingénieur en traitement d'images traditionnel, mise à part que cette fois ci c'est totalement automatique. 

Moins de boulot, moins de mal de tête donc. C'est tout bénèf. 

Comment peux t'on se servir de la reconnaissance d'images ?



Comme j'ai pu te le dire précedemment, la reconnaissance d'images trouve déjà de nombreuse application dans la vie courante et même dans diverses industrie. 

Par exemple, dans l'industrie des jeux vidéos, elle a été utilisé pour le système kinect de microsoft. C'est un système qui te permet de jouer sans manette juste avec les mouvement du corps.

D'autres industrie utilise le la reconnaissance d'image, c'est notemment le cas de l'industrie de la sécurité qui utilise des drône pour détecter des intrus. 

Ou encore de l'industrie automobile qui utilise la reconnaissance d'objet afin d'aider les voiture autonome à comprendre l'environnement qui les entoures. 

Pour te donner d'autre exemple, la reconnaissance d'image est également utilisé par les journaux tels que le new york times pour procéder à l'archivage et au tri automatique des photos prise par ces journaliste. 

Google search image utilise la reconnaissance d'image pour retrouver la source d'une images sur le Net. 

D'autre entreprise tels que Brandwatch Image Insights utilise cette dernière pour étudier la popularité d'une marque, voir combien d'image de cette marque son publié chaque jour sur les réseau sociaux. 

Si les gens porte des vêtements de la marque. Ainsi il obtienne des mesure en temps réelle de leur popularité. 


Quelles sont les principales solutions de reconnaissances d'images ? 


Si tu cherche un peu sur le net, tu trouveras différentes boîte qui propose différentes solution de reconnaissances d'images parmi lesquelles : 

Brandwatch Image Insights


Google Vision AI


Clarifai


LogoGrab


IBM Image Detection


Amazon Rekognition




 

 

.