top of page
Rechercher
  • Photo du rédacteurDataGenius

Reconnaissance faciale et détection de visage : Quelle API d'IA choisir ?

Dernière mise à jour : 14 janv. 2021



Article original en anglais : Medium


Cet article vous est proposé par l'équipe d'AI-Compare (www.ai-compare.com). Nous référençons un grand nombre de solutions d'Intelligence Artificielle et nous vous permettons de les tester directement via notre API. Dans cet article, nous testons plusieurs API de détection de visage. Nous testons ces solutions sur différents cas d'utilisation pertinents.


L'API de détection faciale de AI-Compare est disponible ici : https://ai-compare.com/vision_apis/face_detection


AI-Compare Face Recognition est disponible directement ici. Si vous êtes un fournisseur d'API d'IA et que vous souhaitez être intégré dans AI-Compare, contactez nous ici : contact@ai-compare.com

 

Introduction


Ces dernières années et dans le monde de l'Intelligence Artificielle, l'une des applications les plus populaires s'est révélé être la vision par ordinateur. Cette popularité est due à la grande diversité des applications et des besoins : imagerie médicale, industrie, transport, surveillance, sécurité, etc. Aujourd'hui, tous les domaines utilisent des caméras et des images dans leurs activités. La vision par ordinateur comprend diverses fonctionnalités :

Ce tableau ne représente pas une liste exhaustive des fonctionnalités de vision par ordinateur. Beaucoup de solutions utilisent plusieurs fonctionnalités combinées.


Il est important de distinguer les API pré-entrainées et les API AutoML:

  • Les API pré-entraînées sont des API basées sur des modèles déjà entraînés par les fournisseurs avec leurs propres bases de données. Ces modèles sont généralement utilisés pour gérer des cas d'utilisation génériques de vision tels que la détection / reconnaissance de : objets, personnes, animaux, contextes, véhicules, visages, etc. Il est toujours pertinent d'essayer ces API avant les modèles personnalisés car les fournisseurs rendent constamment leurs API plus compétitives et plus efficaces.

  • Pour les cas spécifiques et les besoins de très haute précision, il peut être préférable d'utiliser les API AutoML. Ces API sont fournies par Google Cloud Platform, Amazon Web Services, Microsoft Azure, IBM Watson, Clarifai, et quelques autres. Les API AutoML permettent aux utilisateurs de construire leur propre modèle personnalisé, exclusivement formé sur la base de données de l'utilisateur. Il permet de créer des modèles spécifiques réalisés uniquement pour un projet unique. Nous avons réalisé un article à ce sujet disponible ici.

Cet article traite brièvement des API de reconnaissance faciale pré-entraînées. L'objectif est d'informer sur les problèmes qui peuvent être résolus avec ce type d'API ? Quels sont les principaux fournisseurs sur le marché ? Quel est le processus optimal d'utilisation des API pré-entrainées ?


Fournisseurs


Au cours de notre étude sur les API pré-entrainées pour la reconnaissance faciale, nous avons décidé de choisir 5 API de fournisseurs différents qui offrent des performances élevées selon de nombreux articles de blog et classements.

Ceci est la sélection des API des fournisseurs que nous allons tester. Il est intéressant de noter que d'autres solutions existent et que des solutions open source existent. On pourra citer ChoochAI, Facex, Clarifai, Eyedea, Sightcorp, Eyerecognize, Ayonix, Microsoft Azure, etc.


Cas d’usage


Comme indiqué précédemment, les API de détection de visages sont utilisées dans de nombreux domaines, pour des cas d'utilisation très variés. Dans cet article, nous allons tester différentes API de détection de visage avec différents types d'images représentant des cas d’usage courants. Nous avons choisi 3 cas d'utilisation très différents les uns des autres, représentés par 3 images. Nous analysons les caractéristiques suivantes :

  • Détection de visage

  • Attributs du visage

Les attributs du visage dépendent des fournisseurs, il peut s'agir de l'âge, du sexe, du sourire, des lunettes, des émotions, de l'appartenance ethnique, etc. Pour chaque cas d'utilisation, nous avons testé l'API de détection de visages des 5 fournisseurs, avec une image par cas d'utilisation. Bien entendu, pour un projet réel, vous devrez tester sur une partie représentative de votre base de données afin d'avoir une pertinence dans l’analyse des performances.


AI-Compare


Pour GCP et AWS, nous n'avons pas besoin d'utiliser directement leur API. L'API de détection des visages AI-Compare permet d'obtenir les résultats des API de plusieurs fournisseurs en une seule requête. Avec quelques lignes de code, nous pouvons ainsi avoir accès aux résultats de Google, Amazon, et Microsoft. Imagga, BetafaceAPI et Face++ ne sont pas implémentés sur AI-Compare pour le moment, nous utilisons donc directement leur API ou leur interface.


La fonctionnalité Genius


Mieux que de comparer les résultats de différentes API, AI-Compare offre la fonctionnalité "Genius". Cette fonctionnalité permet d'obtenir une combinaison intelligente de tous les résultats.


Tests


La réponse de l'API n'est qu'une réponse textuelle. Cette réponse (souvent au format json) sera utilisée pour développer des applications. Pour notre exemple, la façon de procéder est la suivante:


1- Benchmark des API de détection/analyse des visages disponibles sur le marché

  • Recherche de fournisseurs

  • Tester la performance des solutions avec quelques images en fonction du projet

  • Analyser les prix

2- Choisissez le fournisseur d'API qui correspond le mieux à votre projet OU combinez plusieurs fournisseurs et les résultats des API (fonctionnalité Genius)


3- Intégrer l'API finale dans votre projet / logiciel

  • Appréhender la gestion des API en production

  • Ajoutez le pré-traitement et le post-traitement en fonction de votre projet

Enfin, en fonction du projet, les résultats visuels avec les cadres (bounding boxes) affichés sur les images peuvent être utiles ou non. Mais pour le benchmark, c'est le meilleur moyen et le plus rapide de visualiser les performances.

Google, BetafaceAPI, AWS et Face++ fournissent une interface graphique uniquement pour tester et analyser les résultats sur quelques images.


Cas d’usage n°1 :


Le premier test concerne une photo prise lors d'un salon où nous avons exposé la solution AI-Compare. La difficulté ici est que les visages sont masqués :


Résultats de Google et AWS :



Résultat de BetafaceAPI :

Résultats bruts obtenus :



5oclock shadow: yes (4%), age: 47 (60%), arched eyebrows: no (92%), attractive: no (86%), bags under eyes: no (57%), bald: no (3%), bangs: no, beard: yes (39%), big lips: no (72%), big nose: no (22%), black hair: no (24%), blond hair: no, blurry: yes (32%), brown hair: no (61%), bushy eyebrows: no (2%), chubby: no (14%), double chin: no (44%), expression: neutral (77%), gender: male, glasses: no, goatee: yes (10%), gray hair: no (35%), heavy makeup: no (97%), high cheekbones: no (87%), mouth open: no (54%), mustache: yes (17%), narrow eyes: yes (4%), oval face: no (19%), pale skin: no (21%), pitch: -8.27, pointy nose: no (55%), race: white (89%), receding hairline: no (5%), rosy cheeks: no, sideburns: no (10%), straight hair: no (36%), wavy hair: no (88%), wearing earrings: no (88%), wearing hat: no (2%), wearing lipstick: no, wearing necklace: no, wearing necktie: no (9%), yaw: -1.05, young: no (12%),


Personne à droite (Taha Zemmouri, CEO) :


5oclock shadow: no (60%), age: 17 (60%), arched eyebrows: no, attractive: no (45%), bags under eyes: no (96%), bald: no (93%), bangs: no (33%), beard: no (70%), big lips: no (69%), big nose: no (91%), black hair: no (18%), blond hair: no, blurry: yes (30%), brown hair: no (8%), bushy eyebrows: yes (14%), chubby: no (89%), double chin: no, expression: neutral (77%), gender: male (47%), glasses: no, goatee: no, gray hair: no, heavy makeup: no (90%), high cheekbones: no (77%), mouth open: no (55%), mustache: no (96%), narrow eyes: no (2%), oval face: yes (15%), pale skin: no (8%), pitch: -7.32, pointy nose: no (46%), race: asian (96%), receding hairline: no, rosy cheeks: no, sideburns: no, straight hair: no (40%), wavy hair: no (36%), wearing earrings: no (66%), wearing hat: yes (15%), wearing lipstick: no (93%), wearing necklace: no (98%), wearing necktie: no (77%), yaw: 14.14, young: yes (91%),


Résultat de Face++ :


Résultat d’Imagga :

Cas d’usage n°1 bilan :


Tout d'abord, ce cas d'utilisation est basé sur une photo de 2 membres de notre équipe lors d'un salon. La difficulté était qu'ils sont masqués mais tous les fournisseurs ont détecté les deux visages. Imagga, BetafaceAPI, AWS, GCP et Face++ prédisent le bon sexe pour les deux visages. Concernant les lunettes de Samy, Face++ est le seul à l'avoir détecté, les autres ne l'ont pas fait et Imagga ne fournit pas l'information. Pour l'âge, Taha a 27 ans et Samy 28 ans. Imagga ne prédit que des catégories, et il prédit bébé pour l'un et enfant pour l'autre, ce qui est faux. Google ne prédit pas l'âge. Voici les prédictions pour BetafaceAPI, AWS et Face++ (dommage pour Samy) :


Aucune solution ne parvient à obtenir une bonne précision pour l'âge avec cette image, mais c'est Face++ qui donne les résultats les plus pertinents.


Cas d’usage n°2 :


Ce deuxième cas d'usage concerne une photo plus classique prise à une caisse dans un supermarché.


Résultats de Google et AWS :




Résultat de BetafaceAPI :


Résultat de Face++ :


Résultat de Imagga :


Cas d’usage n°2 bilan :


Pour ce cas d’usage, la qualité de l'image n'est pas optimale. BetafaceAPI ne détecte pas les 4 visages. Face++ et AWS ont trouvé les 3 visages masculins et un visage féminin. Imagga a trouvé 2 hommes et 2 femmes. Face++ a détecté des lunettes pour la femme. On peut remarquer que Face++ a détecté les sourires (neutre et négative), et GCP a détecté le chapeau de l'homme.


Cas d’usage n°3 :


Il s'agit dans ce dernier cas d'une photo issue d'une course avec comme particularité d'avoir énormément de visages.


Résultats de Google et AWS :


Résultats de BetafaceAPI :


Résultat de Face++ :


Résultat de Imagga :

Cas d’usage n°3 bilan :


Betaface a trouvé 1 visage, Google en a trouvé 9, Face++ en a trouvé 16 et Imagga en a trouvé 20. AWS est de loin le meilleur en reconnaissance de tous les visages sur l'image avec 33 visages détectés. Il semble que AWS soit très puissant pour détecter tous les visages sur les photos, même si Imagga offre également de bonnes performances. Il est important de noter que AWS et Face++ ont détecté les lunettes sur les coureurs à l'avant.


Tarification


En ce qui concerne les coûts des API, ils sont définis en fonction de seuils de durée avec des prix dégressifs.

Nous considérons une entreprise qui doit traiter 2 millions d'images par mois :

BetaFace et Imagga ne pratiquent pas la tarification à l'utilisation (pay-per-use), mais uniquement l'abonnement mensuel. Pour ce type de données, le client devra les contacter.


Conclusion


Nous avons délibérément choisi 3 images correspondant à des cas d'utilisation très différents : une avec des masques, une avec une mauvaise qualité et des visages de profil, une avec de nombreux visages à détecter. Nous avons pu constater que chaque fournisseur a des forces et des faiblesses spécifiques. Certaines API sont meilleures pour la détection des visages, d'autres pour la détection des lunettes ou des coiffures, d'autres pour la prédiction de l'âge ou du sexe, d'autres encore pour les émotions, etc.


La méthodologie à adopter lorsque vous avez est la suivante :


Vous commencez par comparer en utilisant vos données et AI-Compare les solutions de référence disponibles sur le marché, auxquelles d’autres solutions peuvent être ajoutées. Ensuite, vous avez trois options :


1 - Vous trouvez un résultat qui vous pousse à choisir une API qui correspond à vos attente en terme de performance


2 - Différents fournisseurs donnent de bons résultats, donc vous utilisez la fonctionnalité Genius pour combiner les résultats et obtenir un résultat meilleur que tout résultat unique d'un fournisseur.


3 - Les API pré-entraînées ne peuvent pas fournir de bons résultats pour votre projet :

  • vous décidez d'essayer des modèles de vision personnalisés (bientôt sur AI-Compare)

  • vous décidez de développer vos propres modèles en utilisant des solutions Open Source

Ce processus vous garantit de faire le bon choix pour réussir votre projet. AI-Compare n'est qu'un outil qui vous permet de réaliser un benchmark très facilement et rapidement. Enfin, il est possible d'utiliser l'API AI-Compare pour réaliser l'ensemble du projet en évitant les comptes et les facturations de plusieurs fournisseurs, et en gardant la possibilité de ne pas rester dépendant d'un seul fournisseur.



 

AI-Compare fournit une API connectée aux grands (AWS, GCP, etc.) et petits fournisseurs d'IA : détection d'objets, OCR, NLP, speech-to-text, vision personnalisée, etc. Notre solution permet aux utilisateurs de comparer les performances des API de ces fournisseurs en fonction de leurs données et de les utiliser directement via notre API offrant ainsi une grande flexibilité et rendant très facile le changement de fournisseur. Nous offrons en particulier de meilleures performances grâce à la fonction "Genius" qui combine intelligemment les résultats de plusieurs fournisseurs.


Notre solution s'adresse aux développeurs qui souhaitent intégrer des briques d'intelligence artificielle dans leurs programmes informatiques. Nous nous adressons ainsi à des entreprises de tailles diverses (des start-ups aux grands groupes) : l'API de détection faciale de AI-Compare est disponible directement ici : https://ai-compare.com/vision_apis/face_detection


Nous proposons également des prestations de conseil et de formations 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 !

2 943 vues1 commentaire

Posts récents

Voir tout
bottom of page