O reconhecimento de emoções é um tópico importante no campo da inteligência artificial. As áreas mais interessantes de aplicação de tais tecnologias incluem: reconhecimento de motorista, pesquisa de mercado, sistemas de análise de vídeo para cidades inteligentes, interação homem-máquina, monitoramento de estudantes de cursos on-line, dispositivos vestíveis, etc.
Este ano, a MDG dedicou sua escola de aprendizado de máquina de verão a esse tópico. Neste artigo, tentarei fazer uma breve excursão ao problema de reconhecer o estado emocional de uma pessoa e falar sobre abordagens para sua solução.
O que são emoções?
A emoção é um tipo especial de processo mental que expressa a experiência de uma pessoa em seu relacionamento com o mundo e com ela mesma. De acordo com uma das teorias, cujo autor é o fisiologista russo P.K. Além disso, a capacidade de experimentar emoções foi desenvolvida no processo de evolução como um meio de adaptação mais bem-sucedida dos seres vivos às condições de existência. A emoção foi útil para a sobrevivência e permitiu que os seres vivos respondessem rápida e economicamente às influências externas.
As emoções desempenham um papel enorme na vida humana e na comunicação interpessoal. Eles podem ser expressos de várias maneiras: expressões faciais, postura, reações motoras, voz e reações autonômicas (frequência cardíaca, pressão arterial, frequência respiratória). No entanto, o rosto da pessoa tem mais expressividade.
Cada pessoa expressa emoções de várias maneiras diferentes. O famoso psicólogo americano Paul Ekman , estudando o comportamento não verbal de tribos isoladas na Papua Nova Guiné nos anos 70 do século passado, descobriu que várias emoções, a saber: raiva, medo, tristeza, repulsa, desprezo, surpresa e alegria são universais e podem para ser entendido pelo homem, independentemente de sua cultura.
As pessoas são capazes de expressar uma ampla gama de emoções. Acredita-se que eles possam ser descritos como uma combinação de emoções básicas (por exemplo, nostalgia é algo entre tristeza e alegria). Mas essa abordagem categórica nem sempre é conveniente, porque não permite quantificar o poder da emoção. Portanto, juntamente com modelos discretos de emoções, foram desenvolvidos vários contínuos. O modelo de J. Russell tem uma base bidimensional na qual cada emoção é caracterizada por um sinal (valência) e intensidade (excitação). Devido à sua simplicidade, o modelo Russell tornou-se cada vez mais popular no contexto da tarefa de classificar automaticamente expressões faciais.

Então, descobrimos que, se você não está tentando esconder a excitação emocional, seu estado atual pode ser estimado por expressões faciais. Além disso, usando conquistas modernas no campo do aprendizado profundo, é até possível construir um detector de mentiras baseado na série “Lie to me”, cuja base científica foi fornecida diretamente por Paul Ekman. No entanto, esta tarefa está longe de ser simples. Como mostraram os estudos da neurocientista Lisa Feldman Barrett, ao reconhecer emoções, uma pessoa usa ativamente informações contextuais: voz, ações, situação. Dê uma olhada nas fotos abaixo, realmente é. Usando apenas a área do rosto, uma previsão correta é impossível. Nesse sentido, para resolver esse problema, é necessário usar modalidades e informações adicionais sobre alterações nos sinais ao longo do tempo.

Aqui consideraremos abordagens para a análise de apenas duas modalidades: áudio e vídeo, uma vez que esses sinais podem ser obtidos sem contato. Para abordar a tarefa, você primeiro precisa obter os dados. Aqui está uma lista dos maiores bancos de dados de emoções disponíveis ao público que conheço Imagens e vídeos nesses bancos de dados foram marcados manualmente, alguns usando o Amazon Mechanical Turk.
A abordagem clássica para a classificação das emoções
A maneira mais fácil de determinar a emoção de uma imagem de rosto é baseada na classificação de pontos-chave (pontos faciais), cujas coordenadas podem ser obtidas usando vários algoritmos PDM , CML , AAM , DPM ou CNN . Normalmente marque de 5 a 68 pontos, amarrando-os na posição das sobrancelhas, olhos, lábios, nariz, mandíbula, o que permite capturar parcialmente expressões faciais. As coordenadas normalizadas dos pontos podem ser enviadas diretamente ao classificador (por exemplo, SVM ou Random Forest) e obter uma solução básica. Naturalmente, a posição das pessoas deve estar alinhada.
O uso simples de coordenadas sem um componente visual leva a uma perda significativa de informações úteis, portanto, vários descritores são computados nesses pontos para melhorar o sistema: LBP , HOG , SIFT , LATCH etc. Depois que os descritores são concatenados e a dimensão é reduzida usando PCA, o vetor de recurso resultante pode ser usado para classificação emoções.
link para o artigo
No entanto, essa abordagem já é considerada obsoleta, pois é sabido que redes de convolução profunda são a melhor opção para a análise de dados visuais.
Classificação de emoções usando aprendizagem profunda
Para criar um classificador de rede neural, basta ter alguma rede com uma arquitetura básica, previamente treinada no ImageNet, e treinar novamente as últimas camadas. Assim, você pode obter uma boa solução básica para classificar vários dados, mas, considerando as especificidades da tarefa, as redes neurais usadas para tarefas de reconhecimento de rosto em larga escala serão mais adequadas.
Portanto, é bastante simples criar um classificador de emoções para imagens individuais, mas, como descobrimos, os instantâneos não refletem com precisão as verdadeiras emoções que uma pessoa experimenta em uma determinada situação. Portanto, para aumentar a precisão do sistema, é necessário analisar a sequência de quadros. Existem duas maneiras de fazer isso. A primeira maneira é alimentar recursos de alto nível recebidos de uma CNN que classifique cada quadro individual em uma rede recorrente (por exemplo, LSTM) para capturar o componente de tempo.
link para o artigo
A segunda maneira é alimentar diretamente uma sequência de quadros tirados do vídeo em algumas etapas para a entrada 3D-CNN. CNNs semelhantes usam convoluções com três graus de liberdade que transformam a entrada quadridimensional em mapas de características tridimensionais.
link para o artigo
De fato, no caso geral, essas duas abordagens podem ser combinadas com a construção de um monstro.
link para o artigo
Classificação de fala das emoções
Com base nos dados visuais, o sinal de emoção pode ser previsto com alta precisão, mas é preferível usar sinais de fala ao determinar a intensidade. A análise do áudio é um pouco mais difícil devido à alta variabilidade da duração da fala e das vozes dos falantes. Geralmente, eles não usam a onda sonora original, mas vários conjuntos de atributos , por exemplo: F0, MFCC, LPC, i-vetores, etc. No problema de reconhecer emoções pela fala, a biblioteca aberta OpenSMILE tem uma boa reputação e contém um rico conjunto de algoritmos para análise de fala e música. sinais. Após a extração, os atributos podem ser enviados ao SVM ou LSTM para classificação.
Recentemente, no entanto, redes neurais convolucionais também começaram a penetrar no campo da análise sonora, substituindo as abordagens estabelecidas. Para aplicá-los, o som é representado na forma de espectrogramas em escala linear ou em escala mel, após o que são operados com os espectrogramas obtidos, como nas imagens bidimensionais comuns. Nesse caso, o problema de um tamanho arbitrário de espectrogramas ao longo do eixo do tempo é elegantemente resolvido usando pool estatístico ou incorporando uma rede recorrente na arquitetura.
link para o artigo
Reconhecimento audiovisual das emoções
Assim, examinamos várias abordagens para a análise das modalidades de áudio e vídeo, o estágio final permaneceu - a combinação de classificadores para produzir a solução final. A maneira mais simples é combinar diretamente suas classificações. Nesse caso, basta levar o máximo ou a média. Uma opção mais difícil é combinar no nível de incorporação para cada modalidade. O SVM é frequentemente usado para isso, mas isso nem sempre é correto, pois os incorporamentos podem ter uma taxa diferente. Nesse sentido, algoritmos mais avançados foram desenvolvidos, por exemplo: Multiple Kernel Learning e ModDrop .
E, é claro, vale mencionar a classe das chamadas soluções de ponta a ponta que podem ser treinadas diretamente em dados brutos de vários sensores sem qualquer processamento preliminar.
Em geral, a tarefa de reconhecimento automático de emoções ainda está longe de ser resolvida. A julgar pelos resultados do concurso Emotion Recognition in the Wild do ano passado, as melhores soluções alcançam precisão de cerca de 60%. Espero que as informações apresentadas neste artigo sejam suficientes para tentar construir nosso próprio sistema de reconhecimento de emoções.