A visão computacional vê emoções, pulsação, respiração e mentiras - mas como construir uma startup nisso. Conversa com o Neurodata Lab



Nosso relacionamento com a visão computacional não era tão barulhento até que ele aprendeu a fazer milagres com rostos humanos. Os algoritmos substituem as pessoas em fotos e vídeos, mudam a idade, a raça e o sexo. Este é o principal entretenimento on-line dos últimos anos e uma fonte de ansiedade. Hoje, os aplicativos dominam as paradas; amanhã, os manifestantes viram pilares com câmeras que reconhecem rostos. E, ao que parece, estamos apenas no começo da jornada. O que o computador pode ler de nossos rostos será cada vez mais.

No início deste mês, visitamos o escritório da Neurodata Lab. A principal direção da empresa é o reconhecimento das emoções humanas. Tentamos descobrir como isso é feito e por quê.

No My Circle, o Neurodata Lab recebeu uma pontuação média de 4,6 e uma recomendação média de 95% de seus funcionários, que classificaram critérios como crescimento profissional, tarefas interessantes, boas relações com colegas e o fato de a empresa tornar o mundo um lugar melhor.



Em 2016, dez atores - cinco homens e cinco mulheres - participaram de tiroteios incomuns. Eles foram para uma área vazia, vestidos com ternos pretos justos e em câmeras em diferentes cantos da sala, contra o fundo da parede verde, eles representavam "nada" - apenas seu estado neutro.

Em seguida, os atores encenaram pequenos scripts. Não havia réplicas nos roteiros, apenas descrições de situações, então os atores improvisaram. Em cada cena, eles precisavam experimentar uma das seis emoções - raiva, tristeza, nojo, alegria, medo ou surpresa. As expressões faciais e os gestos de atores experientes geralmente se tornam estereotipados, adequados para o teatro mais do que para a vida real, então aqui todos os atores eram estudantes.



Eles foram seguidos por um professor da escola de cinema, mas não apenas. O diretor principal era uma cientista e pesquisadora Olga Perepelkina. Além do vídeo e do som no set, foram registradas reações bioelétricas da superfície da pele e outras características fisiológicas. Cada cena foi filmada por um elenco diferente várias vezes e, como resultado, eles coletaram cerca de sete horas de material.

Os atores, tendo terminado o trabalho, descreveram onde e quais emoções eles realmente experimentaram durante o jogo. Depois, outras 21 pessoas assistiram aos vídeos e, em cada um deles, notaram que emoção o ator parecia experimentar. Em que momento essa emoção começa e quando termina.



Assim começou o trabalho no primeiro conjunto de dados multimodais em russo para reconhecimento de emoções - RAMAS .

Mas o material obtido foi adequado apenas para pesquisa e experimentação científica - não para o treinamento de algoritmos em escala industrial.

- (Olga Perepelkina) Precisávamos coletar um conjunto de dados gigante. Não 7, mas 107 e mais horas. Criamos a plataforma web Emotion Miner, carregamos vários vídeos disponíveis publicamente na Internet, trouxemos dezenas de milhares de pessoas de todo o mundo e começaram a marcar os dados. Assim, marcamos 140 horas de vídeo em 20 escalas (não apenas emoções, mas também várias características cognitivas e sociais) e coletamos o maior conjunto de dados emocionais do mundo.

- E como você conseguiu encontrar tantas pessoas para marcar?
- (O.P.) É simples - pagamos a eles pelo trabalho. Realizei promoções, investi um pequeno orçamento em marketing. Em princípio, não foi muito difícil. Agora, quase 70 mil pessoas estão registradas na plataforma. Mas, na realidade, cerca de duas mil pessoas marcaram o conjunto de dados.



Produtos>


O Startup Neurodata Lab foi criado pelos empresários George Pliev e Maxim Ryabov. Eles financiaram pesquisas não por curiosidade científica, mas para encontrar aplicações comerciais para a tecnologia. Agora, a Computação Afetiva ou "computação emocional" não é a área mais popular no mercado de redes neurais e visão computacional. Existe uma alta concorrência no campo do reconhecimento facial. Os aplicativos de entretenimento entram em foco um após o outro. E sistemas que trabalham com emoções não deixam o status de "promissor" por vários anos. No entanto, de acordo com as previsões da Gartner e de outros estudos, ela está prevendo um crescimento rápido.

O Neurodata Lab pesquisa há cerca de três anos, coletando dados e desenvolvendo algoritmos. Agora eles usam resultados de pesquisa em produtos comerciais. Por exemplo, o Neurodata Lab desenvolveu uma IA emocional para os robôs Promobot. O robô usou um sistema de reconhecimento de emoções para responder corretamente às dicas das pessoas que recorrem a ele. A demo foi mostrada na CES deste ano.

O algoritmo é usado nos call centers para monitorar chamadas e avaliar o desempenho dos funcionários. Agora, tudo isso é feito manualmente - os gerentes precisam ouvir seletivamente os registros de chamadas e verificar se o funcionário foi grosseiro com o cliente ou mantido dentro dos limites da decência. O sistema pode fazer isso automaticamente e em tempo real. Ao longo do caminho, o humor emocional do cliente também é avaliado - ele ficou satisfeito com o tratamento ou não. Um piloto de um produto similar Neurodata Lab lançado em Rosbank. O algoritmo analisa chamadas para medir a satisfação do cliente.

O segundo ramo de produtos é um pouco mais global. A empresa cria sua API - um conjunto completo de ferramentas para desenvolvedores de terceiros. Agora inclui uma análise de emoções, um rastreador de rosto, analisadores de som, com os quais você pode dividir uma gravação de áudio com várias vozes em diferentes faixas de áudio e separar o ruído. Em breve, haverá um rastreador corporal, um detector de frequência cardíaca, um rastreador respiratório do vídeo de uma pessoa - e outras tecnologias ou algoritmos.



Princípio de funcionamento


Uma pessoa aprende a definir emoções inconscientemente - desde a infância, começa a associar certos padrões de comportamento às emoções que as pessoas ao redor experimentam. Tendo aprendido isso, ele pode analisar quais sinais ele faz. O mais óbvio é pela expressão da boca e dos olhos. Mas no rosto existem muitos músculos faciais que criam uma quantidade incrível de nuances expressivas. Nós os percebemos automaticamente, embora possamos conscientemente chamar nossa atenção para certos detalhes.

A rede neural também analisa centenas de horas de vídeo marcadas por pessoas. E os sinais pelos quais o sistema classifica emoções nem sempre são óbvios.

- (Andrey Belyaev) Existem padrões comuns para algumas classes. Por exemplo, as classes de “raiva” e “surpresa” são caracterizadas por forte expressão no rosto - sobrancelhas levantadas, olhos arredondados, fumaça nos ouvidos. A grade certamente responde a eles, mas não apenas. Por exemplo, com pequenas sobrancelhas que parecem levantadas, ela determinará calmamente a classe correta, porque também responde à dinâmica das mudanças. Uma das classes interessantes a esse respeito é a "tristeza". Na maioria das vezes, quando uma pessoa está triste, seu rosto não muda por um longo tempo. A grade percebe zero dinâmica na expressão e assume que é "neutra" ou "triste" e só então esclarece os sinais restantes e conclui que a classe está certa.

- E o som? Certas frequências, faixas, tons?
- (A.B.) O som é mais complicado. Cada pessoa tem seu próprio volume padrão, você não pode se apegar à força do som. Alguém pode falar em voz baixa e uniformemente, mas na verdade ele está terrivelmente zangado. E mesmo que visualizemos o som e entendamos a que o sistema presta atenção, não podemos explicá-lo nem com o rosto. O rosto tem pontos claros: sobrancelhas, olhos, ouvidos e muito mais. Mas não há som. O som é introduzido na grade na forma de um espectrograma, e quais partes específicas são responsáveis ​​pelo que e em que momento é muito mais difícil de entender. Portanto, não há uma resposta padrão para o que a grade presta atenção ao trabalhar com som.

- Como gravar o pulso?
- (O.P.) As micro-alterações na cor da pele são rastreadas. Quando o coração bate, o sangue é saturado com oxigênio, a oxigenação do sangue muda e, por isso, a cor da pele muda. Não funcionará com o olho, mas com a ajuda do algoritmo é possível.

- Mas isso depende muito da qualidade do vídeo.
- (O.P.) Temos visto esse algoritmo há muito tempo e somos capazes de trabalhar não apenas com uma câmera legal, mas também com uma webcam comum. Nós sabemos como trabalhar quando a tela pisca. Por exemplo, quando uma pessoa assiste a um filme, e sua intensidade de iluminação muda constantemente. Somos capazes de trabalhar com condições quando uma pessoa se move e fala.

O pulso é um sinal periódico e é claramente monitorado, e a iluminação do filme não muda periodicamente. Portanto, um sinal útil pode ser separado do ruído. Comparamos essa tecnologia mesmo com rastreadores de fitness. Nosso algoritmo funciona tão bem - e ainda melhor que alguns deles.

- O sistema pode ver o que uma pessoa não vê, mas ainda reconhece as emoções melhor. Porque
- (O.P.) Uma pessoa se sai melhor porque leva em conta as informações contextuais. Mas, para isso, é necessário um sistema multimodal que melhore a precisão, analisando imediatamente a face, voz, gestos, pulso, respiração e análise semântica do texto.

É assim que a percepção humana funciona. Você vê um homem por trás, observa-o sentar e pensa: "parece que ele está triste". E nosso objetivo é criar um algoritmo que possa perceber emoções como pessoa - geralmente em qualquer condição, para todas as informações.

Mas agora a vantagem do sistema sobre os seres humanos é que ele pode analisar uma grande quantidade de dados automaticamente. Às vezes, uma pessoa pode fazer melhor, mas você não a faz ficar sentada o tempo todo e escutando com os ouvidos, por exemplo, ligações para um call center.

- Se eu experimentar emoção, mas tentar escondê-la, o sistema entenderá isso?
- (O.P.) Talvez.



Como está indo o desenvolvimento


O Neurodata Lab é uma pequena empresa, que até recentemente existia apenas como laboratório. Possui um departamento de ciências, uma equipe de ciência de dados e um departamento de desenvolvimento que agrupa novos desenvolvimentos e descobertas em produtos. Cada departamento é de 5-6 pessoas. No total, a equipe possui cerca de 30 funcionários.

Pesquisadores


Psicólogos, fisiologistas e biólogos trabalham no departamento científico. Há apenas quatro pessoas e três estagiários na equipe, mas eles construíram toda uma rede internacional de colaborações. Por exemplo, na Rússia existem projetos em conjunto com a Universidade Estadual de Moscou, a Escola Superior de Economia e a RANEPA. No exterior - com a Universidade de Glasgow, a Universidade de Tecnologia de Paris, a Universidade de Genebra, o laboratório de engenharia de Gênova, que se dedica à análise de movimentos.

Os cientistas que fazem computação emocional são uma comunidade inteira. Eles se reúnem regularmente para workshops conjuntos em várias universidades ao redor do mundo. A cada dois anos, é realizada uma grande conferência dedicada exclusivamente à tecnologia emocional. Este ano, o Neurodata Lab organizará seu próprio workshop nesta conferência.



- Eu me pergunto, qual é o trabalho diário de um pesquisador?
- (O.P.) Primeiro, eles lêem artigos. Por exemplo, queríamos aprender a reconhecer uma mentira, e não apenas emoções, e precisamos descobrir o que é uma mentira, como funciona um detector de mentiras, o que já foi feito nesta área, quais são os problemas de um polígrafo clássico, como ele pode ser enganado, quais algoritmos são os mais legais, como a psique humana é organizada, que características psicológicas existem quando uma pessoa mente, como a fisiologia funciona, por que (e se) o nariz de uma pessoa fica mais frio e seus ouvidos ficam vermelhos quando ele trapaceia, e assim por diante.

Em seguida, realizamos um grande número de experimentos. Para criar um sistema que reconheça o pulso e a frequência respiratória do vídeo, foi necessário coletar muitos dados. Os assuntos sempre nos procuram, temos equipamentos e todo tipo de coisas que medem o pulso de uma pessoa em contato. Medimos ECG, fotopletismografia, reação pele-galvânica. Tivemos experiências divertidas quando queríamos entender como o fluxo sanguíneo se move pelo rosto e, em seguida, colamos eletrodos diretamente no rosto.



Finalmente, mostramos às pessoas diferentes vidosiki. Estamos tentando assustá-los, ou vice-versa, para torcer. Os pesquisadores analisam dados, consideram estatísticas, escrevem artigos e patentes com base nesses dados. Em seguida, eles chegam ao departamento técnico de Andrei e dizem: "Lemos uma coisa legal, realizamos um experimento, você pode tentar criar um algoritmo que funcione assim". Ou Andrei chega até nós e diz: "Queremos detectar quedas, precisamos descobrir como coletar dados". E o departamento científico se senta e pensa em como isso pode ser feito de maneira simples e rápida.

- Trabalho dos sonhos.
- (AB) Algumas pessoas pensam - outras pensam.



Data Cientistas e Desenvolvedores


A Data Science trabalha em paralelo com o desenvolvimento de produtos. Os centros de dados treinam redes neurais no Torch, quando há espaço para manobra na pesquisa, e no MXnet, quando você precisa criar uma solução de trabalho rápido. Depois de confirmar todas as hipóteses sobre a aplicabilidade das redes neurais, os caras as transferem para o TensorRT para aumentar a velocidade do trabalho e entregá-las à equipe de desenvolvimento para implementação na produção.

O Neurodata Lab criou seu próprio serviço de nuvem, que pode ser acessado por outros desenvolvedores - para pesquisas ou projetos comerciais.

- (A.B.) O kernel de software que distribui tarefas entre redes neurais é escrito em Python. Precisávamos escrever rapidamente, mas acabou bem. Ele trabalha com dockers, se comunica através do RabbitMQ, roda no Postgres e a camada gRPC fica no topo, o que permite criar uma conexão segura com o mundo exterior e dá a outros programadores e pesquisadores acesso a nossas tecnologias.

Web escrito em Symphony. API implementada usando gRPC. É uma coisa interessante do Google que permite criar um canal seguro e trocar chaves com o sistema - para que ele dê acesso apenas a determinadas funções internas. Por exemplo, você só pode fornecer uma chave para ferramentas que podem detectar rostos e reconhecer emoções.

Estou trabalhando em uma idéia - quero construir meu próprio pequeno data center, onde a inferência estará girando. E será baseado em Jetson Nano. Este é um computador de placa única tão pequeno para dez mil rublos. Como o Raspberry Pi, apenas com uma placa gráfica. Com um processador, RAM e tudo o mais, custa 6 vezes mais barato que 1080Ti, sem levar em conta o restante dos componentes do computador, mas também funciona cerca de 6 vezes mais lento.

- E o que vai dar?
- (A.B.) Em primeiro lugar, é mais barato e funcionará aproximadamente da mesma maneira. Em segundo lugar, deixará de prejudicar muito o meio ambiente. Em terceiro lugar, eles não precisam de muita eletricidade. Seis Jetson Nano, que, juntos, alimentam quase 1080 Ti, gastam seis vezes menos energia, além de ocupar muito menos espaço.

- Por que os mineiros ainda não chegaram até eles?
- (A.B.) Os mineradores precisam de sua placa de vídeo para poder fazer muitas coisas ao mesmo tempo. Mas para nós não é tão importante. Temos tarefas leves que precisam ser concluídas rapidamente usando pequenas potências e retornando o resultado. Quando você tem seis tarefas desse tipo, é mais razoável distribuí-las em seis cartões pequenos do que colocá-los em um único, grande e poderoso, onde essas tarefas serão empurradas pelos cotovelos.



Como está a equipe de recrutamento


Na primavera, os gerentes de produto chegaram à equipe e agora a startup precisa de desenvolvedores. Provedores de back-end que darão suporte à web em PHP e Symphony ou convencerão a mudar, por exemplo, para Python ou Go. O front-end, que cria páginas para novos serviços da Web, expande a funcionalidade e melhora a usabilidade dos existentes. Um desenvolvedor de kernel que, além do conhecimento de Python em alto nível, entende a Data Science e as especificidades de trabalhar com hardware, testadores, desenvolvedores de C ++ por trabalhar com o SDK e muitos outros.



- Como está indo a sua contratação?
- (A.B.) Para a data dos cientistas, estou iniciando uma tarefa não muito difícil, mas bastante indicativa, pela qual se pode julgar a capacidade de pensar e programar. Eu mesmo faço isso em quarenta minutos. Junior gerencia em 4-6 horas. Depois disso, chamamos e discutimos questões técnicas. Eu sugiro que ele faça um brainstorm sobre uma nova tarefa. Nós hipotetizamos juntos, testamos juntos. Eu apenas assisto como uma pessoa se sente em um ambiente desconhecido em termos de tarefas. Ele entende como o processo de desenvolvimento do modelo está acontecendo, o que você pode enfrentar e o que não deve ter medo.

Após esses estágios, cerca de 10% das pessoas permanecem. Cerca de 50 pessoas geralmente respondem a junho. Chamamos os cinco restantes para uma entrevista final em nosso escritório, e simplesmente nos comunicamos com total prontidão para assumir a equipe.

- E com os desenvolvedores?
- (A.B.) Mas com os desenvolvedores, tudo é um pouco pior. Fazemos esse teste: você precisa implantar um pequeno serviço em qualquer estrutura que desejar dentro da janela de encaixe. Este serviço deve se comunicar com outras janelas de encaixe, nas quais se encontram o Postgres e o RabbitMQ. Há uma tarefa de ler um canal em um reenvio, tirar daí a tarefa de preencher o banco de dados e gravar tudo no banco de dados. Parece que essa tarefa é muito simples, por cerca de uma hora. Mas tudo desmorona quando dizemos que transferiremos fotos para serem gravadas no banco de dados.

Acontece que todo mundo resolve esse problema de maneiras completamente diferentes. E cada pessoa quase sempre tem algum tipo de idéia nova, que eu nunca tinha visto ou imaginado antes. Mas, ao mesmo tempo, todo mundo não inspeciona alguma coisa. No teste, cortou cerca de metade dos candidatos. Depois, também chamamos os desenvolvedores no escritório. Começamos a conversar sobre tópicos gerais, para descobrir o que vem a seguir, o que você deseja e assim por diante. E depois disso, infelizmente, temos quase 0% de exaustão.

- Por quais critérios você entende que uma pessoa não possui habilidades pessoais suficientes ou não poderá trabalhar em uma startup?
- (A.B.) Em conversas simples da categoria: "Ouça, mas imagine isso ...". Ele começa a desenvolver um pensamento, e você acidentalmente acrescenta que nossos prazos estão encerrados e restam duas semanas para um projeto que precisa ser concluído por dois meses. Alguns dizem: "Isso não pode ser permitido". Ok Outros dizem: “Isso é muito ruim, mas vamos apertar o máximo. Claro, não faremos tudo. Talvez metade, mas é melhor que um quarto. Em geral, tudo será legal, porque o pior é o projeto inacabado ". Essas são as pessoas - imediatamente. Caso em relação à tarefa.



Padrões éticos e dilemas morais


Reconhecimento facial, computação emocional - tudo isso é pesquisa e tecnologia baseada em dados. Perguntas da categoria “a quem os dados pertencem”, “quem e como devem controlar sua coleta” - um território de fronteira moderno.

Um dos compromissos com os quais todos agora concordam mais ou menos é a cobrança impessoal. , GDPR . .

. , , , .

. , ?

— (..) , - . . . ? ? , : « , , , ». .

, : « , , , !» , , . . «, , - , , , , ». 50 , 5-6 , . , . - . , .

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


All Articles