Rechercher
  • DataGenius

Modèle personnalisé de reconnaissance d'image : Quelle solution d'IA choisir ?

Mis à jour : févr 18


Version originale en anglais : Medium


Ces dernières années, dans le monde de l'intelligence artificielle, l'une des applications les plus populaires est la vision par ordinateur. La raison principale de ce succès est la grande diversité du marché et des besoins : imagerie médicale, industrie, transport, etc. En particulier, la vision par ordinateur (computer vision) permet la reconnaissance d'images pour tous les processus de contrôle, la détection d'objets et la détection de visages.


Solutions de vision :

De nombreuses entreprises utilisent la détection d'objets pour automatiser les processus de contrôle, par exemple. Elles sont alors confrontées à un choix concernant le type d'utilisation :

1/ Utiliser les modèles pré-entraînés (modèles déjà entraînés pour étiqueter un type spécifique d'objet) des principaux fournisseurs d'IA proposant de la vision par ordinateur (Google Cloud, Amazon Web Services, IBM Watson, Microsoft Azure, Clarifai, etc.) au cas où l'objet qu'elles veulent identifier est reconnu de base par ces modèles.


2/ Si aucun modèle pré-entraîné n'est satisfaisant, alors l'utilisateur devra former un modèle spécifique pour ses besoins. Dans ce cas, il a deux possibilités :

  • Créer une solution personnalisée, choisir lui-même l'algorithme et construire le modèle prédictif à partir de zéro en se basant sur des librairies Open Source (TensorFlow par exemple)

  • Utiliser une API / Console permettant la création automatique d'un modèle personnalisé


AutoML :

La dernière possibilité est basée sur une technologie appelée Auto Machine Learning (AutoML) appliquée aux algorithmes de Deep Learning (réseaux de neurones) utilisés en vision. Ce service a été créé pour répondre au besoin de démocratiser l'IA et pour permettre aux développeurs sans réelle connaissance en Machine Learning (apprentissage automatique) de pouvoir former facilement des modèles.


Ce service d'IA offre la possibilité d'obtenir des résultats rapides et précis à moindre coût, et sans les compétences d'un expert sur un sujet comme la vision par ordinateur qui utilise des algorithmes très complexes. Cependant, utiliser la génération automatique du modèle personnalisé signifie également renoncer à un contrôle total de la solution technique et des algorithmes qui se trouvent derrière le modèle.


Bien que de nombreuses techniques utilisées par AutoML soient connues, telles que le Transfert Learning (en utilisant des algorithmes de modèles pré-entraînés existants pour détecter des objets similaires) et le Neural Architecture Search (un algorithme permettant de construire des réseaux neuronaux à partir de blocs assemblés, supprimés, ajoutés), l'algorithme n'est jamais connu précisément par l'utilisateur.


Fournisseurs :

Lors de notre étude sur l’AutoML Vision (nom associé à Google, mais considéré dans cet article comme généraliste), nous nous sommes mis dans la peau d'une entreprise qui souhaite développer un projet de classification d'images pour la reconnaissance d’un objet très spécifique. Nous incarnons une entreprise ne disposant pas d'expert en IA, souhaitant obtenir un haut niveau de performance à moindre coût, et sans recourir à un développement sur mesure.


La première question qui nous vient à l'esprit est donc : "Quel fournisseur choisir ?" Une première observation apparaît après avoir parcouru le marché : seuls quelques fournisseurs proposent un service AutoML Vision.


Nous avons décidé de tester quatre d'entre eux :


Incarnant le rôle d'entreprise novice dans le domaine de l'IA, nous nous sommes référés au Forester Computer Vision New Wave. Nous avons sélectionné les plateformes des quatre fournisseurs les mieux classés et vérifié s'ils fournissaient un service AutoML Vision. Nous aurions pu choisir d'autres fournisseurs comme IBM Watson Visual Recognition ou encore Vize.ai de Ximilar :

Forrester New Wave Computer Vision Platforms, Q4 2019


Cas d'utilisation :

Afin d'avoir une vision claire du marché et des différents fournisseurs, nous avons donc comparé ces 4 solutions sur deux projets différents. Deux projets de classification d'images avec de réelles différences : taille de la base de données, labels, domaine, qualité de la base de données. Nous allons donc réalisé ces deux projets pour analyser les résultats des quatre fournisseurs respectivement sur les deux projets.


Le premier projet consiste en la reconnaissance d'un boîtier spécifique utilisé pour la mise en place d'une connexion internet de nouvelle génération. L'objectif est la création d'un modèle permettant d'indiquer la présence ou non de ce boîtier sur une photo. Nous disposons d'un ensemble de données de 2586 images étiquetées "boîtier" (positives) et de 1013 sans boîtier (négatives).


Exemple d’une photo du boîtier internet


Le second projet vise à la classification des mélanomes. L'objectif est de créer un modèle permettant de classer les mélanomes selon s'ils sont bénins ou malins. Pour ce projet, nous disposons d'un ensemble de données composé de 460 images avec le label "bénin" et de 462 images avec le label "malin".



Photos de deux mélanomes : un "malin" et un "bénin"


Nous avons donc testé quatre solutions dans deux domaines différents, avec deux problématiques différentes. Cela peut nous montrer s'il est vraiment nécessaire d'effectuer le test pour chaque projet différent.


Avantages Inconvénients des solutions :

Après avoir appréhendé et pris en main les 4 solutions sur deux cas d'utilisation distincts, de nombreuses différences sont apparues entre les solutions dans l'approche et dans l'utilisation. La première remarque concerne la toute première étape : créer un compte (et obtenir un jeton API si l'on utilise l'API). Cette étape est laborieuse et prend déjà un certain temps. Elle reste plus longue sur Google et Amazon, en supposant que vous n'ayez aucune expérience sur ces plateformes.


Ensuite, le processus nous conduit à l'utilisation de l'interface web des fournisseurs. Cela est très simple pour Google et Microsoft. Encore plus intuitif pour Clarifai, qui n'offre que des services de vision par ordinateur. Pour Amazon, en revanche, la tâche est beaucoup plus compliquée : l'accès à leur nouveau service Amazon Rekognition Custom Label reste un mystère. Nous avons utilisé un lien direct vers ce service pour y accéder. Il est facile de se perdre, beaucoup plus compliqué d'accéder rapidement à l'interface pour construire un modèle.


Ensuite, nous arrivons à l’étape de l'importation de la base de données (images). Tout d'abord, il est important de préciser qu'Amazon et Google obligent l'utilisateur à stocker la base de données dans leur service Cloud afin de pouvoir l'utiliser pour le modèle. En ce qui concerne le format de fichier, les formats d'image classiques (png, jpg) sont acceptés pour tous les fournisseurs. Des formats plus spécifiques peuvent être tolérés (certains uniquement par l'API correspondante). Le problème se situe principalement au niveau de l'étape d'étiquetage. L'attribution à chaque image de son ou ses propres labels peut être fastidieuse :


  • Avec Google, vous devez importer un fichier .csv qui associe ses étiquettes à chaque image

  • Avec Microsoft, vous devez importer les images par groupes et leur attribuer un label. La fonctionnalité permettant d'ajouter des images non étiquetées et de les étiqueter manuellement est également disponible. Cependant, Microsoft oblige à dupliquer les images dans plusieurs dossiers si vous traitez des images à étiquettes multiples.

  • Chez Clarifai, l'importation se fait manuellement. Vous ne pouvez importer que par requêtes de 128 images, vous devez importer les images dans les "concepts" directement (possibilité d'importer plus de 128 images par requête, mais la fluidité laisse à désirer).

  • Sur Amazon, vous pouvez importer des images dans des dossiers (correspondant à des étiquettes), vous pouvez également étiqueter les images individuellement si nécessaire. Un minimum de deux étiquettes est nécessaire pour commencer la formation.

On notera la disponibilité du service SageMaker GroundTruth d'Amazon qui permet de faire étiqueter ses données "automatiquement" par AWS.


Veuillez noter que ces remarques ne concernent que la console (interface web) de chaque fournisseur, considérant que cette méthode ne nécessite aucune compétence technique. En utilisant les API, il est évidemment possible de générer un label par groupe d'images via quelques lignes de code, et de faciliter le multi-étiquetage pour toutes les solutions.


En ce qui concerne la tarification, les offres publiques sont les suivantes :

Comme vous pouvez le voir, ces indications de prix rendent plus que complexe l'estimation du coût final qui vous sera facturé. Néanmoins, ce tableau donne un aperçu des solutions les plus rentables en fonction de vos besoins.


Si vous souhaitez simplement expérimenter et tester un service automatique de vision pour construire un modèle personnalisé, Amazon et Clarifai vous proposeront un prix très raisonnable. Au contraire, si vous êtes une entreprise et que vous souhaitez utiliser votre modèle pour prédire un grand nombre d'images, le coût de la formation est négligeable. Vous devez plutôt prêter attention aux coûts d'utilisation du modèle. On peut donc déjà définir une stratégie financière pour le choix du fournisseur, sans même connaître le coût exact des opérations. Cependant, attention aux frais supplémentaires, notamment pour le stockage des données, qui peuvent se créditer sans que vous ne vous en aperceviez !


L'étape suivante concerne le lancement de l'entraînement automatique du modèle et les paramètres sur lesquels l'utilisateur a le contrôle.


Entrainement du modèle et résultats :

Une fois que l'ensemble de données a été importé et étiqueté, il est temps de commencer la formation du modèle. Les deux paramètres que l'utilisateur peut contrôler sont la durée de l'entraînement et la distribution du ratio train / test ("train" servant à entraîner le modèle, "test" à valider les performances).


Google permet de définir le nombre de nœuds pour la formation (8 nœuds ~ 1 heure de calcul), et de définir dans le fichier .csv, pour chaque image si elle fait partie du train set ou du test set (si l'utilisateur ne remplit pas la distribution, elle sera définie par défaut par Google : 80% train, 10% validation et 10% test).


Clarifai ne permet aucune intervention de l'utilisateur sur ces paramètres : la distribution automatique est 80% de train et 20% de test.


Microsoft offre le choix à l'utilisateur soit de définir lui-même le temps de formation, soit de laisser Microsoft le faire pour lui (Quick train / Advanced Train). Cependant, il n'est pas possible de modifier la répartition Train / Test.


Enfin Amazon ne permet pas de définir un temps d'entraînement personnalisé, mais il offre une personnalisation de la distribution Train / Test assez avancée :

  • soit l'utilisateur importe un ensemble de données de train et un ensemble de données de test

  • ou l'utilisateur crée un ensemble de données de test

  • ou il choisit la répartition automatique 80/20 d'Amazon


Évaluation du modèle :

L'une des étapes les plus importantes est l'évaluation du modèle. Celle-ci permet de déterminer, selon des critères de performance liés aux attentes de l'utilisateur, si le modèle est fiable ou non. Plusieurs indicateurs permettent cette évaluation. Tous les services testés donnent comme métriques : la précision et le rappel et offrent la possibilité de consulter manuellement l'ensemble des données de test afin d'observer sur quelles images le modèle s'est trompé.


  • La précision répond à la question : quelle proportion des prédictions "positives" (présence de boitier / mélanome malin) sont correctes ?

  • Le rappel répond à la question : quelle proportion des résultats "positifs" en réalité ont été correctement prédits ?


Nous pouvons également utiliser la matrice de confusion, sur le service Google et Clarifai, pour caractériser le type d'erreur du modèle et la proportion.


Dans l'ensemble, Clarifai et Google offrent une évaluation plus approfondie du modèle, avec des mesures et des statistiques intéressantes. Amazon et Microsoft, en revanche, s'en tiennent au strict minimum en ne mettant en évidence que les métriques de base.

Tous les fournisseurs donnent une mesure générale censée représenter la précision générale du modèle, mais cette mesure n'est pas la même pour tous les fournisseurs. De plus, ils n'exposent pas la méthode de calcul qui en découle. Cela ne semble pas être une bonne référence à utiliser pour comparer les modèles.


Évaluation du modèle pour le cas du boîtier internet :

Évaluation du modèle pour le cas du mélanome :

Pour le cas d'usage du boîtier Internet, si nous voulons la meilleure précision, nous devons choisir Google, si nous voulons le meilleur rappel, nous devons choisir Amazon.

Pour le cas du "Mélanome", nous choisissons Microsoft pour la meilleure précision et Amazon pour le meilleur rappel.


Dans le projet de boîtier Internet, nous devons examiner la précision parce que nous voulons que le modèle ne prédise pas la présence d’un boîtier si ce n'est pas le cas. Ce qui donnerait ce classement : Google > Amazon > Clarifai > Microsoft


Dans le cas du mélanome, nous devons choisir le fournisseur avec le meilleur rappel car nous voulons un modèle qui ne manque aucun mélanome malin. Ceci donnerait ce classement : Amazon > Microsoft > Google > Clarifai


Comme nous pouvons le voir, selon la base de données et le projet, les différents services ne fournissent pas le même niveau de performance. Tester de nombreux fournisseurs doit être la seule façon de choisir celui que vous allez utiliser. Tout d'abord, les performances ne sont pas régulières en fonction du projet, vous pouvez rechercher la meilleure précision ou le meilleur rappel, et il n'y aura jamais un fournisseur qui sera le meilleur pour tous les projets ou pour toutes les bases de données.


Une fois que le modèle a été formé, il peut enfin être utilisé. Chaque fournisseur offre des services quelque peu différents. Microsoft et Google vous permettent de tester le modèle en ligne sur la console en important des images individuellement.


Avec Clarifai, vous pouvez créer un workflow dans l'Explorer (console) et vous pouvez utiliser vos modèles pour faire des prévisions. Une demande est limitée à 32 entrées.

Tous les fournisseurs permettent cependant à l'utilisateur d'utiliser la prédiction en ligne via une API REST.


Expérience utilisateur :

Pendant le test de toutes ces solutions, vous pourrez rencontrer des problèmes spécifiques à votre utilisation en tant qu'utilisateur normal.


Google demande un temps d'adaptation plus long afin de maîtriser la solution, mais une fois prise en main, elle est relativement fonctionnelle. Nous avons rencontré des erreurs lors de l'entraînement des modèles ou encore pour l’étiquetage des images. La seule solution à ces erreurs, dont la source peut être inconnue, est de contacter le support technique, qui n'est pas gratuit !


Même constat pour Amazon, quelques problèmes lors de l'importation du jeu de données pour l'entraînement au modèle, ainsi que des problèmes empêchant de visualiser l'évaluation du modèle, et aucune indication quant à la cause de ces problèmes. Deux solutions, enquêter vous-même sur ces erreurs au risque de perdre beaucoup de temps, ou contacter un support également payant. Le manque de contrôle de l'utilisateur sur le threshold nous a également fortement handicapé lorsque nous avons dû évaluer le modèle et le comparer à d'autres.


L'expérience utilisateur pour Clarifai a été assez laborieuse. Quelques problèmes de fluidité et de clarté lors de l'importation d'images en particulier ont perturbé le processus, ainsi que quelques bugs graphiques, notamment dans l'évaluation des résultats. De notre point de vue, il serait préférable pour Clarifai de les juger sur leur API, qui est beaucoup plus ergonomique, que sur leur console.


Enfin, Microsoft propose une interface très intuitive. C'est l'interface sur laquelle nous avons passé le moins de temps et n'avons pas rencontré de problème notable. Le parti pris simplifié et accessible est assumé, peut-être un peu trop à notre goût lorsque nous passons à l'évaluation du modèle.


Conclusions

Pour chaque projet, chaque cas d'utilisation, une analyse est nécessaire afin d'évaluer les coûts, les utilisations et les performances. Il a été observé au cours de cette étude que chaque cas est spécifique et que nous ne pouvons pas être certains du choix de la solution avant d'en avoir testé plusieurs disponibles sur le marché. Certaines solutions peuvent apporter des résultats très faibles, d'autres excellents, et cette logique peut totalement changer pour un autre cas d'utilisation. En outre, selon le projet, la priorité sera donnée aux coûts, aux résultats, aux temps de calcul et au nombre de requêtes par seconde, ou à la facilité d'utilisation et de manipulation. Ce sont des critères qui peuvent avoir un impact sur la décision, et qui permettent de choisir la solution qui convient le mieux au projet, la solution la plus pertinente.


C'est sur cette base que notre offre AI-Compare entre en jeu. Grâce à notre expertise approfondie dans l'utilisation de ces différentes solutions d'Intelligence Artificielle, nous sommes en mesure de vous fournir la recommandation la plus adaptée à votre problème. N'hésitez pas à nous contacter pour nous décrire votre besoin : ici.


AI-Compare est une solution SaaS fournissant une API connectée aux grands (AWS, Google Cloud, Microsoft, etc.) et aux petits (Cloudmersive, OCR.Space, etc.) fournisseurs d'intelligence artificielle. Notre solution permet aux utilisateurs de comparer les performances de ces fournisseurs en fonction de leurs données et de les utiliser directement via notre API, offrant ainsi une grande flexibilité et facilitant le changement de fournisseur et l'optimisation des performances : Lien d'inscription

Nous proposons également des prestations de conseil en Intelligence Artificielle pour aider nos clients à choisir les meilleures solutions en fonction de leurs besoins et de leurs données : Contactez-nous

Suivez l'évolution de AI-Compare : LinkedIn | Twitter | Facebook !

158 vues

A propos - Mentions légales

40 rue de Bruxelles - 69100 Villeurbanne (Lyon) -

  • Black Facebook Icon
  • Black Twitter Icon
  • Black LinkedIn Icon
  • Black Google+ Icon

DataGenius vous accompagne dans vos projets de Data Science et Intelligence Artificielle en utilisant les technologies de Machine Learning et Big Data