Le Machine Learning chez Fleetback

Le deep learning démystifié par Nicolas Ferre, programmer chez Fleetback depuis 6 mois.

Le deep learning est une technologie de Machine Learning et d’intelligence artificielle. Il s’agit entre autres, d’un réseau de neurones artificiels connectés entre eux.

Un exemple de technologie qui se base sur ces algorithmes est la reconnaissance d’images, la fonctionnalité sur laquelle Nicolas a travaillé sur Fleetback au sein de l’équipe Machine Learning d’ARHS Spikeseed.

Afin de comprendre plus simplement le fonctionnement du deep learning dans le cadre de la reconnaissance d’images, prenons cet exemple du site LeBigData :

« Imaginons que le réseau de neurones soit utilisé pour reconnaître les photos qui comportent au moins un chat. Pour pouvoir identifier les chats sur les photos, l’algorithme doit être en mesure de distinguer les différents types de chats, et de reconnaître un chat de manière précise quel que soit l’angle sous lequel il est photographié. »

Nicolas a appliqué cet algorithme pour reconnaitre non seulement des photos comprenant des voitures, mais des parties spécifiques d’une voiture.

Fleetback est maintenant doté d’un système permettant de classer des images de véhicules. Ce système indiquera automatiquement si une photo correspond à une face avant, à une roue, à un volant, à la face arrière gauche d’une voiture, etc.

Les impacts de cette technologie sur la vie quotidienne des concessions

Quand un concessionnaire va importer une fiche de véhicule dans un logiciel de gestion de VO via Fleetback, il va ajouter des photos du véhicule.

Dans un souci de consistance et de respect des standards de la marque ou du groupe, les concessionnaires souhaitent garder un ordre clair et bien défini d’affichage des différentes photos.
Jusqu’à présent, ce procédé était effectué manuellement en réordonnant les photos comme ils le souhaitaient.

Cette fonctionnalité permettra de labeliser les images et de les ordonner automatiquement en automatisant tout le processus.

Machine Learning étape par étape

Nous avons utilisé un modèle de Machine Learning. Concrètement on lui donne une image et il génère un score pour chacune des 11 classes que nous avons défini :

_

Tout d’abord, il faut « entrainer » le modèle à analyser et classer des images de voitures, car au début les résultats sont aléatoires.
Il a fallu trouver des images de voitures et les classer à la main car un jeu d’images pré-labelisées n’existait pas.
Ensuite on envoie au modèle un ensemble d’images dont on connait le label et on calcule l’erreur avec le résultat obtenu. 

Nicolas a fait varier différents paramètres d’entrainement (comme la rotation d’images, le nombre d’images par classe, etc.) afin de voir avec lesquels on obtient les meilleures performances. Cela nous donne un nouveau modèle mieux entrainé et adapté à plusieurs facteurs. Puis il faut continuer jusqu’à obtenir ce niveau de performance.
Le but était d’obtenir 95% de bonnes réponses sur des images qui n’ont jamais été vues par le modèle.

Les neurones, ça s’entraine…

Nicolas a classé un total de 100 000 images à la main. Il a utilisé une méthodologie de « web scraping ». Cela consiste à prendre une page web et en extraire les images qui vont constituer un dossier d’images non classées.
Avec cette première extraction, il a fallu créer 11 dossiers (correspondant aux 11 classes définies précédemment) et placer les images à la main dans les bons dossiers.

Cette technique d’apprentissage est appelée « supervised learning ». Le réseau de neurones retient ses réussites et ses erreurs et les réutilisera pour reconnaître d’autres images.

Nicolas a entrainé le modèle qui affichait à ce moment un résultat de 80% de bonnes réponses.
Ensuite il a retéléchargé de nouvelles images pour continuer à l’entrainer. Cette fois-ci pour éviter de les reclasser à la main, Nicolas a utilisé le modèle pour faire un pré-classement des nouvelles images. Mais il restait quand même 20% d’erreur donc il fallait tout vérifier. Pour accélérer le processus, Nicolas a développé un outil qui lui a permis de vérifier manuellement 3 images par secondes.

L’humain et ses imperfections à la base du Deep Learning

Les paramètres à faire varier sont liés à la prise de photo comme par exemple : la luminosité, l’angle, le recul, l’inclinaison.

Mais il y en a d’autres facteurs plus techniques qui concernent l’architecture du modèle. Le modèle est composé de plein de « neurones » qui stockent des valeurs pendant l’entrainement. Plus il a de neurones, plus il peut stocker l’information et plus il a d’éléments pour faire le classement.

Donc la taille est un des autres paramètres. Ici, le petit modèle permettait déjà d’avoir de bons résultats et le problème avec un grand modèle est qu’il met plus de temps à calculer les résultats et nécessite plus de temps à entrainer.
Maintenant, le classement prend 10 millisecondes par image.

Le Machine Learning, plus « intelligent » que d’autres technologies

Techniquement, un algorithme classique pourrait analyser la photo en fonction de la position de tel pixel et telles valeurs de la photo. Mais il faudrait que les images aient toujours le même format, le même angle, et le même type d’informations au même endroit.  C’est tellement variable donc les résultats n’auraient pas été bons.

C’est là que le Machine Learning intervient. Il permet via l’entrainement, de trouver lui-même les caractéristiques de la photo qui permettent de classer les images.

D’autres cas d’utilisation pour les concessionnaires

On pourrait l’utiliser pour le chatbot Fleetback qui permet de constater l’état d’un véhicule accidenté (24h/24, 7j/7) via des photos et vidéos ainsi que de programmer les réparations à effectuer.

Cet outil pourrait vérifier que l’utilisateur envoie les bonnes photos demandées par le chatbot. Par exemple quand le chatbot demande une photo de la face avant du véhicule, il pourra vérifier s’il s’agit bien de la photo demandée. Si ce n’est pas le cas, le chatbot pourra repréciser sa demande et montrer un exemple de bonne photo. Cela permettra d’avoir un dossier complet pour la concession et faciliter la prise en charge.

On pourrait également imaginer de détecter des informations du véhicule d’une photo comme la marque, le modèle ou la plaque d’immatriculation. Cela pourrait préremplir les champs d’un dossier Fleetback grâce aux renseignements analysés dans les photos.

Bientôt disponible chez Fleetback, en un simple clic

L’API est fonctionnelle, mais l’intégration à Fleetback est en cours.

Concrètement, le concessionnaire prendra des photos du véhicule et aura un aperçu de ses photos comme il le fait actuellement. En cliquant sur un bouton, ses images seront automatiquement triées selon les catégories définies.  Il pourra bien entendu modifier le résultat à la main s’il le souhaite.

Vous l’avez compris, on ne s’imagine pas tout ce qu’il se « cache » derrière un bouton.

emoji