Avec barbe, lunettes noires et de profil : des situations difficiles pour la vision par ordinateur

Avec barbe, lunettes noires et de profil : des situations difficiles pour la vision par ordinateur

Les technologies et les modèles de notre futur système de vision par ordinateur ont été créés et améliorés progressivement et dans différents projets de notre entreprise - dans Mail, Cloud, Search. Ils ont affiné comme du bon fromage ou du cognac. Un jour, nous avons réalisé que nos réseaux de neurones donnaient d'excellents résultats en matière de reconnaissance, et nous avons décidé de les combiner en un seul produit b2b - Vision - que nous utilisons désormais nous-mêmes et que nous vous proposons d'utiliser.

Aujourd'hui, notre technologie de vision par ordinateur sur la plateforme Mail.Ru Cloud Solutions fonctionne et résout avec succès des problèmes pratiques très complexes. Il repose sur un certain nombre de réseaux de neurones formés sur nos ensembles de données et spécialisés dans la résolution de problèmes appliqués. Tous les services fonctionnent sur nos serveurs. Vous pouvez intégrer l'API publique Vision dans vos applications, à travers laquelle toutes les fonctionnalités du service sont disponibles. L'API est rapide : grâce aux GPU des serveurs, le temps de réponse moyen au sein de notre réseau est de 100 ms.

Allez voir le chat, il y a une histoire détaillée et de nombreux exemples du travail de Vision.

Un exemple de service dans lequel nous utilisons nous-mêmes les technologies de reconnaissance faciale mentionnées est Événements. L'un de ses composants est le support photo Vision, que nous installons lors de diverses conférences. Si vous vous approchez d'un tel stand photo, prenez une photo avec l'appareil photo intégré et entrez votre email, le système trouvera immédiatement parmi la série de photographies celles sur lesquelles vous avez été capturé par les photographes du personnel de la conférence et, si vous le souhaitez, vous enverra les photographies trouvées par email. Et nous ne parlons pas de portraits mis en scène : Vision vous reconnaît même en arrière-plan dans une foule de visiteurs. Bien sûr, ce ne sont pas les supports photo eux-mêmes qui sont reconnus, ce sont simplement des tablettes installées dans de magnifiques supports qui prennent simplement des photos des invités avec leur appareil photo intégré et transmettent des informations aux serveurs, où toute la magie de la reconnaissance se produit. Et nous avons constaté à plusieurs reprises à quel point l’efficacité de cette technologie est surprenante, même parmi les spécialistes de la reconnaissance d’images. Ci-dessous, nous parlerons de quelques exemples.

1. Notre modèle de reconnaissance faciale

1.1. Réseau neuronal et vitesse de traitement

Pour la reconnaissance, nous utilisons une modification du modèle de réseau neuronal ResNet 101. Le pooling moyen à la fin est remplacé par une couche entièrement connectée, de la même manière que dans ArcFace. Cependant, la taille des représentations vectorielles est de 128 et non de 512. Notre ensemble de formation contient environ 10 millions de photos de 273 593 personnes.

Le modèle s'exécute très rapidement grâce à une architecture de configuration de serveur soigneusement sélectionnée et au calcul GPU. Il faut environ 100 ms pour recevoir une réponse de l'API sur nos réseaux internes - cela inclut la détection de visage (détection d'un visage sur une photo), la reconnaissance et le renvoi du PersonID dans la réponse de l'API. Avec de gros volumes de données entrantes - photos et vidéos - il faudra beaucoup plus de temps pour transférer les données vers le service et recevoir une réponse.

1.2. Évaluation de l'efficacité du modèle

Mais déterminer l’efficacité des réseaux de neurones est une tâche très ambiguë. La qualité de leur travail dépend des ensembles de données sur lesquels les modèles ont été formés et s'ils ont été optimisés pour travailler avec des données spécifiques.

Nous avons commencé à évaluer la précision de notre modèle avec le test de vérification populaire LFW, mais il est trop petit et trop simple. Après avoir atteint une précision de 99,8 %, cela n’est plus utile. Il existe un bon concours pour évaluer les modèles de reconnaissance - Megaface, sur lequel nous avons progressivement atteint 82% de rang 1. Le test Megaface se compose d'un million de photographies - des distractions - et le modèle doit être capable de bien distinguer plusieurs milliers de photographies de célébrités du Facescrub. ensemble de données provenant des distractions. Cependant, après avoir effacé les erreurs du test Megaface, nous avons constaté qu'avec la version effacée, nous obtenions une précision de 98 % au rang 1 (les photos de célébrités sont généralement assez spécifiques). Par conséquent, ils ont créé un test d’identification distinct, similaire à Megaface, mais avec des photographies de personnes « ordinaires ». Ensuite, nous avons amélioré la précision de la reconnaissance sur nos ensembles de données et sommes allés très loin. De plus, nous utilisons un test de qualité de clustering composé de plusieurs milliers de photos ; il simule le marquage du visage dans le cloud de l'utilisateur. Dans ce cas, les clusters sont des groupes d'individus similaires, un groupe pour chaque personne reconnaissable. Nous avons vérifié la qualité du travail sur des groupes réels (vrai).

Bien entendu, des erreurs de reconnaissance se produisent avec n’importe quel modèle. Mais de telles situations sont souvent résolues en ajustant les seuils pour des conditions spécifiques (pour toutes les conférences, nous utilisons les mêmes seuils, mais, par exemple, pour les systèmes de contrôle d'accès, nous devons augmenter considérablement les seuils afin qu'il y ait moins de faux positifs). La grande majorité des visiteurs de la conférence ont été correctement reconnus par nos photomatons Vision. Parfois, quelqu'un regardait l'aperçu recadré et disait : « Votre système a fait une erreur, ce n'était pas moi. » Ensuite, nous avons ouvert la photo dans son intégralité, et il s'est avéré qu'il y avait bien ce visiteur sur la photo, seulement nous ne le photographiions pas, mais quelqu'un d'autre, la personne se trouvait justement en arrière-plan dans la zone floue. De plus, le réseau neuronal reconnaît souvent correctement même lorsqu'une partie du visage n'est pas visible, ou que la personne est debout de profil, voire à moitié tournée. Le système peut reconnaître une personne même si son visage se trouve dans une zone de distorsion optique, par exemple lors d'une prise de vue avec un objectif grand angle.

1.3. Exemples de tests dans des situations difficiles

Vous trouverez ci-dessous des exemples du fonctionnement de notre réseau neuronal. Les photos sont soumises à l'entrée, qu'elle doit étiqueter à l'aide de PersonID - un identifiant unique d'une personne. Si deux ou plusieurs images ont le même identifiant, alors, selon les modèles, ces photos représentent la même personne.

Notons tout de suite que lors des tests, nous avons accès à différents paramètres et seuils de modèles que nous pouvons configurer pour atteindre un résultat particulier. L'API publique est optimisée pour une précision maximale sur les cas courants.

Commençons par le plus simple, avec la reconnaissance faciale frontale.

Avec barbe, lunettes noires et de profil : des situations difficiles pour la vision par ordinateur

Eh bien, c'était trop facile. Compliquons la tâche, ajoutons une barbe et quelques années.

Avec barbe, lunettes noires et de profil : des situations difficiles pour la vision par ordinateur

Certains diront que cela n’a pas été trop difficile non plus, car dans les deux cas, le visage entier est visible et de nombreuses informations sur le visage sont disponibles pour l’algorithme. D'accord, faisons de Tom Hardy un profil. Ce problème est beaucoup plus complexe et nous avons déployé beaucoup d'efforts pour le résoudre avec succès tout en maintenant un faible taux d'erreur : nous avons sélectionné un ensemble de formation, réfléchi à l'architecture du réseau neuronal, affiné les fonctions de perte et amélioré le prétraitement. de photographies.

Avec barbe, lunettes noires et de profil : des situations difficiles pour la vision par ordinateur

Mettons-lui une coiffe :

Avec barbe, lunettes noires et de profil : des situations difficiles pour la vision par ordinateur

À propos, il s'agit d'un exemple d'une situation particulièrement difficile, car le visage est fortement masqué et, sur la photo du bas, une ombre profonde cache également les yeux. Dans la vraie vie, les gens changent très souvent d’apparence à l’aide de lunettes noires. Faisons la même chose avec Tom.

Avec barbe, lunettes noires et de profil : des situations difficiles pour la vision par ordinateur

D'accord, essayons d'ajouter des photos d'âges différents, et cette fois nous expérimenterons avec un acteur différent. Prenons un exemple beaucoup plus complexe, où les changements liés à l'âge sont particulièrement prononcés. La situation n'est pas farfelue, elle se produit assez souvent lorsqu'il faut comparer la photo du passeport avec le visage du porteur. Après tout, la première photo est ajoutée au passeport lorsque le propriétaire a 20 ans, et à 45 ans, une personne peut changer considérablement :

Avec barbe, lunettes noires et de profil : des situations difficiles pour la vision par ordinateur

Pensez-vous que le grand spécialiste des missions impossibles n'a pas beaucoup changé avec l'âge ? Je pense que même quelques personnes combineraient les photos du haut et du bas, le garçon a tellement changé au fil des ans.

Avec barbe, lunettes noires et de profil : des situations difficiles pour la vision par ordinateur

Les réseaux de neurones subissent beaucoup plus souvent des changements d’apparence. Par exemple, les femmes peuvent parfois changer considérablement leur image à l'aide de produits cosmétiques :

Avec barbe, lunettes noires et de profil : des situations difficiles pour la vision par ordinateur

Maintenant, compliquons encore plus la tâche : supposons que différentes parties du visage soient couvertes sur différentes photographies. Dans de tels cas, l’algorithme ne peut pas comparer des échantillons entiers. Cependant, Vision gère bien des situations comme celle-ci.

Avec barbe, lunettes noires et de profil : des situations difficiles pour la vision par ordinateur

À propos, une photographie peut contenir de nombreux visages : par exemple, une photographie générale d'une salle peut contenir plus de 100 personnes. Il s’agit d’une situation difficile pour les réseaux de neurones, car de nombreux visages peuvent être éclairés différemment, certains étant flous. Cependant, si la photo est prise avec une résolution et une qualité suffisantes (au moins 75 pixels par carré couvrant le visage), Vision sera capable de la détecter et de la reconnaître.

Avec barbe, lunettes noires et de profil : des situations difficiles pour la vision par ordinateur

La particularité des photographies de reportage et des images des caméras de surveillance est que les personnes sont souvent floues parce qu'elles étaient floues ou bougeaient à ce moment-là :

Avec barbe, lunettes noires et de profil : des situations difficiles pour la vision par ordinateur

De plus, l’intensité lumineuse peut varier considérablement d’une image à l’autre. Cela aussi devient souvent une pierre d'achoppement : de nombreux algorithmes ont de grandes difficultés à traiter correctement les images trop sombres et trop claires, sans parler de les faire correspondre avec précision. Permettez-moi de vous rappeler que pour obtenir ce résultat, vous devez configurer les seuils d'une certaine manière ; cette fonctionnalité n'est pas encore accessible au public. Nous utilisons le même réseau neuronal pour tous les clients ; il comporte des seuils adaptés à la plupart des tâches pratiques.

Avec barbe, lunettes noires et de profil : des situations difficiles pour la vision par ordinateur

Nous avons récemment déployé une nouvelle version du modèle qui reconnaît les visages asiatiques avec une grande précision. C’était autrefois un gros problème, qu’on appelait même le racisme de « l’apprentissage automatique » (ou « réseau neuronal »). Les réseaux de neurones européens et américains reconnaissaient bien les visages caucasiens, mais avec les visages mongoloïdes et négroïdes, la situation était bien pire. Probablement, en Chine, la situation était exactement le contraire. Il s'agit d'ensembles de données de formation qui reflètent les types de personnes dominants dans un pays particulier. Cependant, la situation change, aujourd'hui ce problème n'est pas si aigu. La vision n'a aucun problème avec les personnes de races différentes.

Avec barbe, lunettes noires et de profil : des situations difficiles pour la vision par ordinateur

La reconnaissance faciale n'est qu'une des nombreuses applications de notre technologie ; la vision peut être entraînée à reconnaître n'importe quoi. Par exemple, les plaques d'immatriculation, y compris dans des conditions difficiles pour les algorithmes : aux angles vifs, plaques d'immatriculation sales et difficiles à lire.

Avec barbe, lunettes noires et de profil : des situations difficiles pour la vision par ordinateur

2. Cas d'utilisation pratiques

2.1. Contrôle d'accès physique : lorsque deux personnes utilisent le même pass

Avec l'aide de Vision, vous pouvez mettre en place des systèmes d'enregistrement des arrivées et des départs des salariés. Le système traditionnel basé sur les laissez-passer électroniques présente des inconvénients évidents : par exemple, vous pouvez dépasser deux personnes avec un seul badge. Si le système de contrôle d'accès (ACS) est complété par Vision, il enregistrera honnêtement qui est venu/parti et quand.

2.2. Suivi du temps

Ce cas d’utilisation de Vision est étroitement lié au précédent. Si vous complétez le système d'accès avec notre service de reconnaissance faciale, celui-ci sera en mesure non seulement de détecter les violations du contrôle d'accès, mais également d'enregistrer la présence réelle des employés dans le bâtiment ou l'installation. En d'autres termes, Vision vous aidera à déterminer honnêtement qui est venu au travail et est parti à quelle heure, et qui a complètement sauté le travail, même si ses collègues l'ont couvert devant ses supérieurs.

2.3. Analyse vidéo : suivi des personnes et sécurité

En suivant les personnes à l'aide de Vision, vous pouvez évaluer avec précision le trafic réel des zones commerciales, des gares, des passages, des rues et de nombreux autres lieux publics. Notre suivi peut également être d'une grande aide pour contrôler l'accès, par exemple, à un entrepôt ou à d'autres locaux de bureaux importants. Et bien sûr, le suivi des personnes et des visages contribue à résoudre les problèmes de sécurité. Vous avez surpris quelqu'un en train de voler dans votre magasin ? Ajoutez son PersonID, qui a été renvoyé par Vision, à la liste noire de votre logiciel d'analyse vidéo, et la prochaine fois, le système alertera immédiatement la sécurité si ce type réapparaît.

2.4. Dans le commerce

Les commerces de détail et diverses entreprises de services s'intéressent à la reconnaissance des files d'attente. Avec l'aide de Vision, vous pouvez reconnaître qu'il ne s'agit pas d'une foule aléatoire, mais d'une file d'attente et déterminer sa longueur. Ensuite, le système informe les responsables d'une file d'attente afin qu'ils puissent comprendre la situation : soit il y a un afflux de visiteurs et des travailleurs supplémentaires doivent être appelés, soit quelqu'un se relâche dans ses tâches.

Une autre tâche intéressante consiste à séparer les employés de l'entreprise présents dans le hall des visiteurs. En règle générale, le système est formé pour séparer les objets portant certains vêtements (code vestimentaire) ou présentant une caractéristique distinctive (écharpe de marque, badge sur la poitrine, etc.). Cela permet d'évaluer plus précisément la fréquentation (afin que les employés ne « gonflent » pas les statistiques des personnes présentes dans la salle par leur simple présence).

Grâce à la reconnaissance faciale, vous pouvez également évaluer votre audience : quelle est la fidélité des visiteurs, c'est-à-dire combien de personnes reviennent dans votre établissement et à quelle fréquence. Calculez combien de visiteurs uniques viennent chez vous par mois. Pour optimiser les coûts d'attraction et de rétention, vous pouvez également connaître l'évolution du trafic en fonction du jour de la semaine et même de l'heure de la journée.

Les franchiseurs et les enseignes peuvent commander une évaluation à partir de photographies de la qualité de l'image de marque des différents points de vente : présence de logos, enseignes, affiches, banderoles, etc.

2.5. En transports

Un autre exemple de garantie de la sécurité grâce à l'analyse vidéo consiste à identifier les objets abandonnés dans les halls des aéroports ou des gares. La vision peut être entraînée à reconnaître des objets de centaines de classes : meubles, sacs, valises, parapluies, divers types de vêtements, bouteilles, etc. Si votre système d'analyse vidéo détecte un objet sans propriétaire et le reconnaît à l'aide de Vision, il envoie un signal au service de sécurité. Une tâche similaire est associée à la détection automatique de situations inhabituelles dans les lieux publics : quelqu'un se sent malade, ou quelqu'un fume au mauvais endroit, ou une personne tombe sur les rails, etc. - tous ces modèles peuvent être reconnus par les systèmes d'analyse vidéo. via l'API Vision.

2.6. Flux de documents

Une autre application future intéressante de Vision que nous développons actuellement est la reconnaissance de documents et leur analyse automatique dans des bases de données. Au lieu de saisir manuellement (ou pire, de saisir) des séries interminables, des numéros, des dates d'émission, des numéros de compte, des coordonnées bancaires, des dates et lieux de naissance et bien d'autres données formalisées, vous pouvez numériser des documents et les envoyer automatiquement via un canal sécurisé via le API vers le cloud, où le système reconnaîtra ces documents à la volée, les analysera et renverra une réponse avec des données au format requis pour une saisie automatique dans la base de données. Aujourd'hui, Vision sait déjà classer les documents (y compris les PDF) - fait la distinction entre les passeports, les SNILS, les TIN, les actes de naissance, les actes de mariage et autres.

Bien entendu, le réseau neuronal n’est pas capable de gérer toutes ces situations de manière originale. Dans chaque cas, un nouveau modèle est construit pour un client spécifique, de nombreux facteurs, nuances et exigences sont pris en compte, des ensembles de données sont sélectionnés et des itérations de formation, de tests et de configuration sont effectuées.

3. Schéma de fonctionnement de l'API

La « porte d'entrée » de Vision pour les utilisateurs est l'API REST. Il peut recevoir des photos, des fichiers vidéo et des diffusions de caméras réseau (flux RTSP) en entrée.

Pour utiliser Vision, vous avez besoin enregistrer dans le service Mail.ru Cloud Solutions et recevez des jetons d'accès (client_id + client_secret). L'authentification des utilisateurs est effectuée à l'aide du protocole OAuth. Les données sources dans les corps des requêtes POST sont envoyées à l'API. Et en réponse, le client reçoit de l'API un résultat de reconnaissance au format JSON, et la réponse est structurée : elle contient des informations sur les objets trouvés et leurs coordonnées.

Avec barbe, lunettes noires et de profil : des situations difficiles pour la vision par ordinateur

Exemple de réponse

{
   "status":200,
   "body":{
      "objects":[
         {
            "status":0,
            "name":"file_0"
         },
         {
            "status":0,
            "name":"file_2",
            "persons":[
               {
                  "tag":"person9"
                  "coord":[149,60,234,181],
                  "confidence":0.9999,
                  "awesomeness":0.45
               },
               {
                  "tag":"person10"
                  "coord":[159,70,224,171],
                  "confidence":0.9998,
                  "awesomeness":0.32
               }
            ]
         }

         {
            "status":0,
            "name":"file_3",
            "persons":[
               {
               "tag":"person11",
               "coord":[157,60,232,111],
               "aliases":["person12", "person13"]
               "confidence":0.9998,
               "awesomeness":0.32
               }
            ]
         },
         {
            "status":0,
            "name":"file_4",
            "persons":[
               {
               "tag":"undefined"
               "coord":[147,50,222,121],
               "confidence":0.9997,
               "awesomeness":0.26
               }
            ]
         }
      ],
      "aliases_changed":false
   },
   "htmlencoded":false,
   "last_modified":0
}

La réponse contient un paramètre intéressant: la génialité - c'est la «fraîcheur» conditionnelle d'un visage sur une photo, avec son aide, nous sélectionnons la meilleure photo d'un visage de la séquence. Nous avons entraîné un réseau de neurones pour prédire la probabilité qu'une photo soit likée sur les réseaux sociaux. Plus la qualité de la photo est bonne et plus le visage est souriant, plus c'est génial.

API Vision utilise un concept appelé espace. Il s'agit d'un outil permettant de créer différents ensembles de visages. Des exemples d'espaces sont des listes noires et blanches, des listes de visiteurs, d'employés, de clients, etc. Pour chaque jeton dans Vision, vous pouvez créer jusqu'à 10 espaces, chaque espace peut avoir jusqu'à 50 500 PersonID, soit jusqu'à XNUMX XNUMX par jeton. De plus, le nombre de tokens par compte n’est pas limité.

Aujourd'hui, l'API prend en charge les méthodes de détection et de reconnaissance suivantes :

  • Recognize/Set - détection et reconnaissance des visages. Attribue automatiquement un PersonID à chaque personne unique, renvoie le PersonID et les coordonnées des personnes trouvées.
  • Supprimer - suppression d'un PersonID spécifique de la base de données des personnes.
  • Tronquer - efface tout l'espace de PersonID, utile s'il a été utilisé comme espace de test et que vous devez réinitialiser la base de données pour la production.
  • Détecter - détection d'objets, de scènes, de plaques d'immatriculation, de points de repère, de files d'attente, etc. Renvoie la classe des objets trouvés et leurs coordonnées
  • Détecter les documents - détecte des types spécifiques de documents de la Fédération de Russie (distingue le passeport, le SNILS, le numéro d'identification fiscale, etc.).

Nous terminerons également bientôt nos travaux sur les méthodes d'OCR, qui déterminent le sexe, l'âge et les émotions, ainsi que sur la résolution des problèmes de merchandising, c'est-à-dire le contrôle automatique de la présentation des marchandises dans les magasins. Vous pouvez trouver la documentation complète de l'API ici : https://mcs.mail.ru/help/vision-api

4. Заключение

Désormais, grâce à l'API publique, vous pouvez accéder à la reconnaissance faciale dans les photos et les vidéos ; l'identification de divers objets, plaques d'immatriculation, points de repère, documents et scènes entières est prise en charge. Scénarios d'application - la mer. Venez tester notre service, confiez-lui les tâches les plus délicates. Les 5000 XNUMX premières transactions sont gratuites. Ce sera peut-être « l’ingrédient manquant » à vos projets.

Vous pouvez accéder instantanément à l'API lors de votre inscription et de votre connexion. Vision. Tous les utilisateurs Habra reçoivent un code promotionnel pour des transactions supplémentaires. Veuillez m'écrire l'adresse e-mail que vous avez utilisée pour créer votre compte !

Source: habr.com

Ajouter un commentaire