O caminho para um detector de mentiras sem contato ou Como organizar uma hackathon na velocidade máxima

imagem


Steve Jobs e Steve Wozniak uma vez trancaram em uma garagem e lançaram seu primeiro Mac. Seria legal se você sempre pudesse fechar os programadores na garagem e obter o MVP com grande potencial. No entanto, se você adicionar aos programadores algumas pessoas prontas para avaliar a experiência do usuário e procurar algo inovador, as chances de sucesso aumentarão.


Nossa equipe de 5 pessoas teve uma ideia, para a qual decidimos um pouco dominar o mundo cocô.


Descrição do MVP


Um aplicativo para gerentes de RH que permite determinar o psicótipo do candidato e os padrões de comportamento.


Componentes obrigatórios:


  1. Um banco de dados de perguntas, tipos de reações e um sistema para levar essas coisas a um psicótipo
  2. A definição de emoções humanas com base nas manifestações da AU - certos movimentos dos músculos da face.
  3. Frequência cardíaca sem contato
  4. Determinando a direção do olhar
  5. Detecção de taxa de piscada
  6. Um sistema para agregar os dados recuperáveis ​​acima em um gráfico de estresse e outros metadados úteis.

O MVP para nós é uma ilha de segurança entre a ideia em si e o grande projeto Anne, para o qual estamos a caminho.


Como foi


A fim de evitar distrações durante o desenvolvimento, foi decidido alugar um apartamento na cidade turística mais próxima com comida. Chegando lá no domingo e organizando nossos trabalhos, imediatamente nos sentamos para uma discussão. Na primeira noite, foram determinados os tijolos que definitivamente deveriam estar no MVP final. E enquanto os caras poliram a idéia, foram à cidade para consultas com os gerentes de RH, os desenvolvedores (inclusive eu) já estavam preparando a fundação.


Parte técnica


Decidiu-se que a determinação das emoções era feita estritamente por meio do FACS , pois esse método tem justificativa científica suficiente em comparação com, por exemplo, uma abordagem tão grosseira. Consequentemente, a tarefa foi dividida em


  1. Rede de treinamento prevendo 68 pontos de referência
  2. Normalizar / filtrar imagens de rosto
  3. O algoritmo que detecta movimentos faciais na dinâmica

O treinamento, a propósito, foi realizado na Radeon RX580 usando o PlaidML, sobre o qual eu já falei no meu artigo anterior. Muito obrigado aqui, preciso dizer uma biblioteca imgaug , que permite aplicar transformações afins simultaneamente às imagens e pontos nela (no nosso caso, aos marcos).


Algumas imagens aumentadas:


imagem


Para determinar a direção do olhar, o algoritmo foi inicialmente usado na visão computacional clássica, procurando uma pupila na área dos olhos nos HOGs. Mas logo chegou a conclusão de que muitas vezes o aluno não é visível e a direção do olhar pode ser descrita não apenas por ele, mas também pela localização das pálpebras. Devido a essas dificuldades, a solução foi transferida para a abordagem de rede neural. Nós cortamos e marcamos a data, executando-a através do primeiro algoritmo e, em seguida, corrigimos manualmente os locais de seus erros.


Os primeiros desenvolvimentos começaram no verão e existiram como um script Python sujo:


imagem


A determinação da frequência de piscar seguiu a agregação de partes dos dois algoritmos descritos acima - a convergência do marco das pálpebras e a direção de olhar para baixo.


A determinação do pulso pela corrente de vídeo foi baseada na idéia de absorver o componente verde da luz por partículas sanguíneas e foi complementada por algoritmos para rastrear e extrair áreas de interesse (pele).


Uma máscara assustadora sai, é claro:


imagem


De fato, a criação dos tijolos descritos acima se resumiu à implementação de algoritmos de última geração, com aprimoramentos para melhorar a precisão em nosso caso específico. Felizmente, existe o arxiv.org .


Surgiram dificuldades ao criar a lógica para normalizar imagens de rosto e algoritmos para avaliar os dados recebidos. Por exemplo, ao reconhecer faces, o Modelo de aparência ativa é usado ativamente - a face é puxada pelos pontos encontrados na textura geral da face. Mas o arranjo mútuo de pontos é importante para nós! Como opção - filtre as faces muito giradas ou puxe a textura apenas pelas "âncoras", pontos-chave que não refletem o movimento dos músculos (por exemplo, um ponto na ponte do nariz e nas bordas da face). Esse problema agora é um dos principais e não permite obter dados confiáveis ​​se a face estiver muito virada (também podemos contar o ângulo de rotação!). A faixa aceitável para hoje é de + -20 ° em ambos os eixos. Caso contrário, o rosto simplesmente não está sendo processado.


Claro, existem outros problemas:


  • Definição de pontos de referência se uma pessoa com óculos
  • Extraindo a linha de base se uma pessoa estiver fazendo uma careta
  • Detecção de frequência cardíaca sob luz trêmula

Ah, sim, e qual é a linha de base ? Conceito fundamental no processamento de emoções usando métodos FACS. O algoritmo de extração de linha de base é provavelmente um dos conhecimentos mais importantes com base nos resultados de nossa hackathon.


Além dos algoritmos, há outro ponto importante que não podemos esquecer - o desempenho. Além disso, o limite de desempenho nem sequer é um PC, mas um laptop comum. Como resultado, todos os algoritmos foram criados o mais leve possível e as redes sofreram uma redução iterativa no tamanho, mantendo uma precisão aceitável.


O resultado é 30-40% no Intel i5 a 15-20 fps. É claro que há uma certa margem que desaparecerá à medida que módulos adicionais forem adicionados.


Os planos determinam:


  • Dor de garganta
  • Mudança na tez
  • Frequência respiratória
  • Intensidade de movimento corporal
  • Padrões de pose humana
  • Voz trêmula

O que mais podemos fazer?


Como fã de visão computacional e ML, falei um pouco sobre os algoritmos usados ​​em nosso software. Porém, devido à sua incompletude, para esta aplicação, os recursos acima são, antes, uma adição agradável. A parte mais importante é o sistema desenvolvido para determinar o psicótipo de uma pessoa. Qual é o objetivo? Infelizmente, isso foi feito pelos meus colegas (amigos!) E não sei explicar o que e de onde. Mas, para um entendimento mínimo, você pode considerar o procedimento para trabalhar com o software resultante:


O RH define as qualidades especialmente necessárias para a vaga em questão:


imagem


O RH conduz uma entrevista, fazendo parte das perguntas do banco de dados preparado (durante a entrevista, o RH tem diante de si informações adicionais sobre as emoções e o nível de estresse)


Durante ou após a entrevista, o RH preenche respostas para perguntas e padrões de comportamento:


imagem


Através de matrizes desenvolvidas, o software cria infográficos que mostram a coincidência de qualidades dadas e específicas:


imagem


Após a entrevista, existe um registro que permite retornar à entrevista a qualquer momento e avaliar este ou aquele momento


Total


imagem


14 dias x 12 horas + 3 desenvolvedores + 2 especialistas no campo de determinação da mentira = MVP pronto. A imersão foi máxima - até o momento em que assistimos à série Deceive Me, na hora do almoço - eu recomendo.


Para não ser infundado, estou anexando um exemplo de como o aplicativo funciona agora:


Além do vídeo promocional da grande solução Anne, estamos caminhando em direção.


imagem

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


All Articles