Le chemin vers un détecteur de mensonge sans contact, ou comment organiser un hackathon à vitesse maximale

image


Steve Jobs et Steve Wozniak se sont une fois enfermés dans un garage et ont déployé leur premier Mac. Ce serait cool si vous pouviez toujours fermer les programmeurs dans le garage et obtenir MVP avec un grand potentiel. Cependant, si vous ajoutez aux programmeurs quelques personnes prêtes à évaluer l'expérience utilisateur et à rechercher quelque chose d'innovant, les chances de succès augmentent.


Notre équipe de 5 personnes est venue avec une certaine idée, pour laquelle nous avons décidé de prendre le contrôle du monde faire caca.


Description du MVP


Une application pour les gestionnaires des ressources humaines qui vous permet de déterminer le psychotype du demandeur et les modèles de comportement.


Composants obligatoires:


  1. Une base de données de questions, types de réactions et un système pour amener ces choses à un psychotype
  2. La définition des émotions humaines basée sur les manifestations de l'UA - certains mouvements des muscles du visage.
  3. Fréquence cardiaque sans contact
  4. Déterminer la direction du regard
  5. Détection du taux de clignotement
  6. Un système pour agréger les données récupérables ci-dessus dans un graphique des contraintes et d'autres métadonnées utiles.

MVP est pour nous un îlot de sécurité entre l'idée elle-même et le grand projet Anne, vers lequel nous nous dirigeons.


Comment c'était


Afin d'éviter les distractions lors du développement, il a été décidé de louer un appartement dans la station balnéaire la plus proche avec de la nourriture. Arrivés là-bas dimanche et organisant nos travaux, nous nous sommes immédiatement assis pour une discussion. La première nuit, les briques ont été déterminées qui devraient certainement être dans le MVP final. Et pendant que les gars polissaient l'idée, se rendaient en ville pour des consultations avec les responsables des ressources humaines, les développeurs (dont moi) préparaient déjà la fondation.


Partie technique


La détermination des émotions a été décidée de se faire strictement par FACS , car cette méthode a une justification scientifique suffisante en comparaison, par exemple, avec une approche aussi grossière. En conséquence, la tâche a été divisée en


  1. Réseau de formation prédisant 68 points de repère face
  2. Normaliser / filtrer les images de visage
  3. L'algorithme qui détecte les mouvements du visage en dynamique

Soit dit en passant, la formation a été effectuée sur la Radeon RX580 à l'aide de PlaidML, dont j'ai déjà parlé dans mon article précédent. Merci beaucoup ici, je dois dire la bibliothèque imgaug , qui vous permet d'appliquer simultanément des transformations affines aux images et aux points (dans notre cas, aux points de repère).


Quelques images augmentées:


image


Pour déterminer la direction du regard, l'algorithme a été initialement utilisé sur la vision par ordinateur classique, à la recherche d'un élève dans le contour des yeux sur les HOG. Mais bientôt une compréhension est venue que souvent la pupille n'est pas visible et la direction du regard peut être décrite non seulement par elle, mais aussi par l'emplacement des paupières. En raison de ces difficultés, la solution a été transférée à l'approche du réseau neuronal. Nous avons coupé et marqué la date nous-mêmes, en l'exécutant dans le premier algorithme, puis corrigé manuellement les lieux de ses erreurs.


Les premiers développements ont commencé pendant l'été et existaient sous la forme d'un script Python sale:


image


La détermination de la fréquence des clignements découle de l'agrégation de parties des deux algorithmes décrits ci-dessus - la convergence du point de repère des paupières et la direction de la recherche vers le bas.


La détermination de l'impulsion par le flux vidéo était basée sur l'idée d' absorber la composante verte de la lumière par les particules de sang et a été complétée par des algorithmes de suivi et d'extraction des zones d'intérêt (peau).


Un masque effrayant sort, bien sûr:


image


En fait, la création des briques décrites ci-dessus s'est résumée à la mise en œuvre d'algorithmes State Of The Art avec des améliorations pour améliorer la précision dans notre cas particulier. Heureusement, il y a arxiv.org .


Des difficultés sont apparues lors de la création de la logique de normalisation des images faciales et des algorithmes d'évaluation des données reçues. Par exemple, lors de la reconnaissance des visages, le modèle d'apparence active est activement utilisé - le visage est tiré par les points trouvés sur la texture générale du visage. Mais l'arrangement mutuel des points est important pour nous! En option - filtrez les visages trop tournés, ou tirez sur la texture uniquement par les "ancres", des points clés qui ne reflètent pas le mouvement des muscles (par exemple, un point sur l'arête du nez et les bords du visage). Ce problème est désormais l'un des principaux et ne permet pas d'obtenir des données fiables si la face est trop tournée (on peut aussi compter l'angle de rotation!). La plage acceptable pour aujourd'hui est de + -20 ° sur les deux axes. Sinon, le visage n'est tout simplement pas traité.


Bien sûr, il y a d'autres problèmes:


  • Définition des repères si une personne avec des lunettes
  • Extraire la ligne de base si une personne grimace
  • Détection de la fréquence cardiaque dans une lumière vacillante

Oh oui, et quelle est la ligne de base ? Concept fondamental dans le traitement des émotions à l'aide des méthodes FACS. L'algorithme d'extraction de base est probablement l'un des savoir-faire les plus importants basé sur les résultats de notre hackathon.


En plus des algorithmes, il y a un autre point important que nous ne pouvons pas oublier - les performances. De plus, le plafond de performance n'est même pas un PC, mais un ordinateur portable ordinaire. En conséquence, tous les algorithmes ont été rendus aussi légers que possible, et les réseaux ont subi une réduction itérative de la taille tout en conservant une précision acceptable.


Le résultat est de 30 à 40% sur Intel i5 à 15-20 ips. Il est clair qu'une certaine marge disparaîtra à mesure que des modules supplémentaires seront ajoutés.


Les plans déterminent:


  • Maux de gorge
  • Changement de teint
  • Fréquence respiratoire
  • Intensité des mouvements du corps
  • Modèles de pose humaine
  • Voix tremblante

Que pouvons-nous faire d'autre?


En tant que fan de vision par ordinateur et de ML, je vous ai parlé un peu des algorithmes utilisés dans notre logiciel. Mais en raison de son caractère incomplet, pour cette application, les fonctionnalités ci-dessus sont plutôt un ajout agréable. La partie la plus importante est le système développé pour déterminer le psychotype d’une personne. À quoi ça sert? Malheureusement, cela a été fait par mes collègues (amis!) Et je ne peux pas expliquer quoi et d'où. Mais pour une compréhension minimale, vous pouvez envisager la procédure pour travailler avec le logiciel résultant:


HR définit les qualités qui sont particulièrement nécessaires pour le poste en question:


image


Les RH mènent un entretien en posant une partie des questions de la base de données préparée (au cours de l'entretien, les RH ont devant lui des informations supplémentaires sur les émotions et le niveau de stress)


Pendant ou après l'entretien, les RH remplissent les réponses aux questions et aux schémas de comportement:


image


Grâce à des matrices développées, le logiciel construit des infographies qui affichent la coïncidence des qualités données et spécifiques:


image


Après l'entretien, il existe un dossier qui vous permet de revenir à tout moment à l'entretien et d'évaluer tel ou tel moment


Total


image


14 jours x 12 heures + 3 développeurs + 2 experts dans le domaine de la détermination du mensonge = MVP prêt. L'immersion a été maximale - au point qu'à midi nous avons regardé la série Deceive Me - je la recommande vivement.


Afin de ne pas être infondé, je joins un exemple du fonctionnement actuel de l'application:


Ainsi que la vidéo promotionnelle de la grande solution Anne vers laquelle nous nous dirigeons.


image

Source: https://habr.com/ru/post/fr432030/


All Articles