
Nuestra relación con la visión por computadora no fue tan ruidosa hasta que aprendimos a hacer milagros con rostros humanos. Los algoritmos reemplazan a las personas en fotos y videos, cambian la edad, la raza y el género. Este es el principal entretenimiento en línea de los últimos años y una fuente de ansiedad. Hoy las aplicaciones asaltan las listas, mañana los manifestantes vieron pilares con cámaras que reconocen caras. Y, al parecer, solo estamos al comienzo del viaje. Lo que la computadora puede leer de nuestras caras será más y más.
A principios de este mes, visitamos la oficina de Neurodata Lab. La dirección principal de la empresa es el reconocimiento de las emociones humanas. Intentamos averiguar cómo se hace esto y por qué.
En My Circle, Neurodata Lab recibió un puntaje promedio de 4.6 y una recomendación promedio del 95% de sus empleados, quienes calificaron criterios tales como crecimiento profesional, tareas interesantes, buenas relaciones con colegas y el hecho de que la compañía hace del mundo un lugar mejor.
En 2016, diez actores, cinco hombres y cinco mujeres, participaron en tiroteos inusuales. Fueron a un área vacía, vestidos con trajes negros ajustados, y en cámaras en diferentes rincones de la habitación, contra el fondo de la pared verde, representaron "nada", solo su estado neutral.
Luego los actores representaron guiones cortos. No había réplicas en los guiones, solo descripciones de situaciones, por lo que los actores improvisaron. En cada escena, necesitaban experimentar una de las seis emociones: ira, tristeza, asco, alegría, miedo o sorpresa. Las expresiones faciales y los gestos de actores experimentados a menudo se vuelven estereotipados, más adecuados para el teatro que para la vida real, por lo que aquí todos los actores eran estudiantes.

Fueron seguidos por un profesor de la escuela de cine, pero no solo. La directora principal fue una científica e investigadora Olga Perepelkina. Además del video y el sonido en el set, se registraron reacciones bioeléctricas de la superficie de la piel y otras características fisiológicas. Cada escena fue filmada por un elenco diferente varias veces, y como resultado, recolectaron unas siete horas de material.
Los actores, después de terminar su trabajo, describieron dónde y qué emociones experimentaron realmente durante el juego. Luego, otras 21 personas vieron los videos, y en cada uno de ellos notaron qué emoción parecía experimentar el actor. ¿En qué punto comienza esta emoción y cuándo termina?

Así comenzó a trabajar en el primer conjunto de datos multimodales en ruso para el reconocimiento de emociones:
RAMAS .
Pero el material obtenido era adecuado solo para investigación científica y experimentación, no para entrenar algoritmos a escala industrial.
- (Olga Perepelkina) Necesitábamos recopilar un conjunto de datos gigante. No 7, sino 107 y más horas. Creamos la plataforma web Emotion Miner, subimos un montón de videos que están disponibles públicamente en Internet, trajimos a decenas de miles de personas de todo el mundo y comenzaron a etiquetar los datos. Por lo tanto, marcamos 140 horas de video en 20 escalas (no solo emociones, sino también diversas características cognitivas y sociales), y recopilamos el mayor conjunto de datos emocionales del mundo.
- ¿Y cómo lograste encontrar tanta gente para marcar?- (O.P.) Es simple: les pagamos dinero por el trabajo. Promociones realizadas, invertido un pequeño presupuesto en marketing. En principio, no fue muy difícil. Ahora casi 70 mil personas están registradas en la plataforma. Pero en realidad, alrededor de dos mil personas marcaron el conjunto de datos.
Productos
Startup Neurodata Lab fue creado por los empresarios George Pliev y Maxim Ryabov. Financiaron la investigación no por curiosidad científica, sino para encontrar una aplicación comercial para la tecnología. Ahora la computación afectiva o "computación emocional" no es el área más popular en el mercado de redes neuronales y visión por computadora. Existe una alta competencia en el campo del reconocimiento facial. Las aplicaciones de entretenimiento se enfocan una tras otra. Y los sistemas que funcionan con las emociones no dejan el estado de "prometedor" durante varios años. Sin embargo, según los pronósticos de Gartner y otros estudios, ella pronostica un rápido crecimiento.
Neurodata Lab ha estado investigando durante aproximadamente tres años, recopilando datos y desarrollando algoritmos. Ahora usan resultados de investigación en productos comerciales. Por ejemplo, Neurodata Lab ha desarrollado una IA emocional para los robots Promobot. El robot utilizó un sistema de reconocimiento de emociones para responder correctamente a las señales de las personas que recurren a él. La demostración se
mostró en el CES este año.
El algoritmo se utiliza en centros de llamadas para monitorear llamadas y evaluar el desempeño de los empleados. Ahora todo esto se hace manualmente: los gerentes deben escuchar selectivamente los registros de llamadas y verificar si el empleado fue grosero con el cliente o si se mantuvo dentro de los límites de la decencia. El sistema puede hacer esto automáticamente y en tiempo real. En el camino, también se evalúa el estado de ánimo emocional del cliente: estaba satisfecho con el tratamiento o no. Un piloto de un producto similar Neurodata Lab lanzado en Rosbank. El algoritmo analiza las llamadas para medir la satisfacción del cliente.
La segunda rama de productos es algo más global. La compañía fabrica su
API , un conjunto completo de herramientas para desarrolladores externos. Ahora incluye un análisis de emociones, un rastreador de rostros, analizadores de sonido, con los cuales puede dividir una grabación de audio con varias voces en diferentes pistas de audio y separar el ruido. Pronto habrá un rastreador corporal, un detector de pulso, un rastreador respiratorio del video de una persona y otras tecnologías o algoritmos.
Principio de funcionamiento
Una persona aprende a definir emociones inconscientemente: desde la infancia, comienza a asociar ciertos patrones de comportamiento con las emociones que experimentan las personas a su alrededor. Habiendo aprendido esto, puede analizar qué signos hace. Lo más obvio es por la expresión que toman la boca y los ojos. Pero en la cara hay muchos músculos faciales que crean una increíble cantidad de matices expresivos. Los percibimos automáticamente, aunque conscientemente podemos captar nuestros ojos sobre ciertos detalles.
La red neuronal también analiza cientos de horas de video etiquetado por personas. Y los signos por los cuales el sistema clasifica las emociones no siempre resultan obvios.
- (Andrey Belyaev) Hay patrones comunes para algunas clases. Por ejemplo, las clases de "enojo" y "sorpresa" se caracterizan por una fuerte expresión en la cara: cejas levantadas, ojos redondeados, humo de los oídos. La cuadrícula ciertamente responde a ellos, pero no solo. Por ejemplo, con pequeñas cejas que parecen elevadas, determinará con calma la clase correcta, porque también responde a la dinámica de los cambios. Una de las clases interesantes a este respecto es la "tristeza". Muy a menudo, cuando una persona está triste, su rostro no cambia durante mucho tiempo. La cuadrícula nota la dinámica cero en la expresión y asume que es "neutral" o "triste", y solo entonces aclara los signos restantes y concluye que la clase es correcta.
- ¿Qué hay del sonido? Ciertas frecuencias, rangos, tonos?- (A.B.) El sonido es más complicado. Cada persona tiene su propio volumen estándar, no puede apegarse a la fuerza del sonido. Alguien puede hablar en voz baja y uniforme, pero en realidad está terriblemente enojado. E incluso si visualizamos el sonido y entendemos a qué presta atención el sistema, no podemos explicarlo tan bien como con la cara. La cara tiene puntos claros: cejas, ojos, oídos y más. Pero no hay sonido. El sonido se introduce en la cuadrícula en forma de espectrograma, y qué piezas específicas son responsables de qué y en qué momento es mucho más difícil de entender. Por lo tanto, no hay una respuesta estándar, a qué presta atención la cuadrícula cuando se trabaja con sonido.
- ¿Cómo registrar el pulso?- (O.P.) Se realiza un seguimiento de los micro cambios en el color de la piel. Cuando el corazón late, la sangre está saturada de oxígeno, la oxigenación de la sangre cambia, y debido a esto, el color de la piel cambia. No funcionará con el ojo, pero con la ayuda del algoritmo es posible.
- Pero esto depende mucho de la calidad del video.- (O.P.) Hemos estado utilizando este algoritmo durante mucho tiempo y podemos trabajar no solo con una cámara genial, sino también con una cámara web normal. Sabemos cómo trabajar cuando la pantalla parpadea. Por ejemplo, cuando una persona ve una película y su intensidad de iluminación cambia constantemente. Podemos trabajar con condiciones cuando una persona se mueve y habla.
El pulso es una señal periódica, se supervisa claramente y la iluminación de la película no cambia periódicamente. Por lo tanto, una señal útil puede separarse del ruido.
Comparamos esta tecnología incluso con rastreadores de ejercicios. Nuestro algoritmo funciona igual de bien, e incluso mejor que algunos de ellos.
- El sistema puede ver lo que una persona no ve, pero una persona aún reconoce mejor las emociones. Por qué- (O.P.) A una persona le va mejor porque tiene en cuenta la información contextual. Pero para esto, se necesita un sistema multimodal que mejore la precisión mediante el análisis inmediato de la cara, la voz, los gestos, el pulso, la respiración y el análisis semántico del texto.
Así es como funciona la percepción humana. Ves a un hombre desde atrás, lo ves sentarse y piensas: "parece que está triste". Y nuestro objetivo es crear un algoritmo que pueda percibir las emociones como una persona, generalmente en cualquier condición, para toda la información.
Pero ahora la ventaja del sistema sobre los humanos es que puede analizar una gran cantidad de datos automáticamente. A veces, una persona puede mejorar, pero no hará que se siente todo el día y escuche con sus oídos, por ejemplo, llamadas a un centro de atención telefónica.
- Si experimento emoción, pero trato de ocultarla, ¿lo entenderá el sistema?- (O.P.) Quizás.
¿Cómo va el desarrollo?
Neurodata Lab es una pequeña empresa, que hasta hace poco solo existía como laboratorio. Tiene un departamento de ciencias, un equipo de ciencia de datos y un departamento de desarrollo que incluye nuevos desarrollos y descubrimientos en productos. Cada departamento es de 5-6 personas. En total, el equipo tiene unos 30 empleados.
Científicos de investigación
Psicólogos, fisiólogos y biólogos trabajan en el departamento científico. Solo hay cuatro personas y tres pasantes en el personal, pero han construido toda una red internacional de colaboraciones. Por ejemplo, en Rusia hay proyectos en conjunto con la Universidad Estatal de Moscú, la Escuela Superior de Economía y la RANEPA. En el extranjero: con la Universidad de Glasgow, la Universidad Tecnológica de París, la Universidad de Ginebra, el laboratorio de ingeniería en Génova, que se dedica al análisis de movimientos.
Los científicos que hacen computación emocional son toda una comunidad. Se reúnen regularmente para talleres conjuntos en varias universidades de todo el mundo. Una vez cada dos años, se celebra una conferencia importante dedicada exclusivamente a la tecnología emocional. Este año, Neurodata Lab organizará su propio taller en esta conferencia.
- Me pregunto, ¿cuál es el trabajo diario de un investigador?- (O.P.) Primero, leen artículos. Por ejemplo, queríamos aprender cómo reconocer una mentira, y no solo las emociones, y tenemos que descubrir qué es una mentira, cómo funciona un detector de mentiras, qué ya se ha hecho en esta área, cuáles son los problemas de un polígrafo clásico, cómo se puede engañar, qué algoritmos son los más geniales, cómo está organizada la psique humana, qué características psicológicas hay cuando una persona miente, cómo funciona la fisiología, por qué (y si) la nariz de una persona se enfría y sus orejas se ponen rojas cuando hace trampa, y así sucesivamente.
Luego llevamos a cabo una gran cantidad de experimentos. Para crear un sistema que reconozca el pulso y la frecuencia respiratoria del video, fue necesario recopilar muchos datos. Los sujetos constantemente acuden a nosotros, tenemos equipos y todo tipo de cosas que miden el pulso de una persona en forma de contacto. Medimos ECG, fotopletismografía, reacción galvánica de la piel. Tuvimos experimentos divertidos cuando queríamos entender cómo se mueve el flujo sanguíneo a través de la cara, y luego pegamos electrodos directamente sobre la cara.

Finalmente, mostramos a las personas diferentes vidosiki. Estamos tratando de asustarlos, o viceversa, animarlos. Los investigadores analizan datos, consideran estadísticas, escriben artículos y patentes basados en estos datos. Luego acuden al departamento técnico a Andrei y le dicen: "Leímos algo genial, realizamos un experimento, puedes intentar hacer un algoritmo que funcione así". O Andrei viene a nosotros y dice: "Queremos detectar caídas, tenemos que descubrir cómo recopilar datos". Y el departamento científico se sienta y piensa cómo se puede hacer de manera simple y rápida.
- Trabajo soñado.- (AB) Algunas personas piensan, otras lo hacen.
Fecha científicos y desarrolladores
Data Science trabaja en paralelo con el desarrollo de productos. Los datasenteristas entrenan redes neuronales en Torch, cuando hay margen de maniobra en la investigación, y en MXnet, cuando necesita hacer una solución que funcione rápidamente. Después de confirmar todas las hipótesis sobre la aplicabilidad de las redes neuronales, los chicos las transfieren a TensorRT para aumentar la velocidad del trabajo y entregarlas al equipo de desarrollo para su implementación en producción.
Neurodata Lab ha creado su propio servicio en la nube, al que pueden acceder otros desarrolladores para proyectos de investigación o comerciales.
- (A.B.) El núcleo del software que distribuye tareas entre redes neuronales está escrito en Python. Necesitábamos escribirlo rápidamente, pero resultó bastante bien. Trabaja con dockers, se comunica a través de RabbitMQ, se ejecuta en Postgres y la capa gRPC se cuelga en la parte superior, lo que le permite crear una conexión segura con el mundo exterior y brinda a otros programadores e investigadores acceso a nuestras tecnologías.
Web escrita en Symphony. API implementada usando gRPC. Esto es algo genial de Google que le permite crear un canal seguro e intercambiar claves con el sistema, de modo que solo proporciona acceso a ciertas funciones internas. Por ejemplo, solo puede dar una clave a las herramientas que pueden detectar rostros y reconocer emociones.
Estoy trabajando en una idea: quiero construir mi propio centro de datos pequeño, donde la inferencia girará. Y se basará en Jetson Nano. Esta es una computadora de placa única tan pequeña por diez mil rublos. Al igual que la Raspberry Pi, solo con una tarjeta gráfica. Con un procesador, RAM y todo lo demás, cuesta 6 veces más barato que 1080Ti sin tener en cuenta el resto de los componentes de la computadora, pero también funciona aproximadamente 6 veces más lento.
- ¿Y qué dará?- (A.B.) En primer lugar, es más barato y funcionará aproximadamente de la misma manera. En segundo lugar, dejará de dañar tanto el medio ambiente. En tercer lugar, no necesitan mucha electricidad. Seis Jetson Nano, que en conjunto funcionan casi como 1080 Ti, gastan seis veces menos energía, además de ocupar mucho menos espacio.
- ¿Por qué los mineros aún no los han alcanzado?- (A.B.) Los mineros necesitan su tarjeta de video para poder hacer muchas cosas a la vez. Pero para nosotros no es tan importante. Tenemos tareas livianas que deben realizarse rápidamente con pequeños poderes y devolver el resultado. Cuando tiene seis de estas tareas, es más razonable distribuirlas en seis tarjetas pequeñas que ponerlas todas en una grande y poderosa, donde estas tareas serán empujadas.
¿Cómo es el equipo de reclutamiento?
En la primavera, los gerentes de producto vinieron al equipo, y ahora la startup necesita desarrolladores. Proveedores de servicios de fondo que admitirán la web en PHP y Symphony, o lo convencerán de que se mude, por ejemplo, a Python o Go. El front-end, que creará páginas para nuevos servicios web, ampliará la funcionalidad y mejorará la usabilidad de los existentes. Un desarrollador de kernel que, además del conocimiento de Python a un alto nivel, comprende Data Science y los detalles de trabajar con hardware, probadores, desarrolladores de C ++ para trabajar con SDK y muchos otros.
- ¿Cómo va tu contratación?- (A.B.) Para la fecha de los científicos, estoy descartando una tarea no muy difícil, sino más bien indicativa, por la cual se puede juzgar la capacidad de pensar y programar. Lo hago yo mismo en cuarenta minutos. Junior se las arregla en 4-6 horas. Después de eso, llamamos y discutimos cuestiones técnicas. Le sugiero que haga una lluvia de ideas sobre una nueva tarea. Presumimos juntos, probamos juntos. Solo miro cómo se siente una persona en un entorno desconocido en términos de tareas. ¿Entiende cómo va el proceso de desarrollo del modelo, qué puede encontrar allí y a qué no debe temerle?
Después de estas etapas, queda aproximadamente el 10% de las personas. Por lo general, unas 50 personas responden al mes de junio. Llamamos a los cinco restantes para una entrevista final en nuestra oficina, y simplemente nos comunicamos con una disposición casi completa para asumir el equipo.
- ¿Y con los desarrolladores?- (A.B.) Pero con los desarrolladores, todo es un poco peor. : , , . , Postgres RabbitMQ. , . , , - . , , .
, -. - , . - . . . , , , . , , 0% .
— , ?— (..) : «, , ...». , , , , . : « ». . : « , . , , . , , . , — ». — . .
, — , . , « », « » — .
, — . , GDPR . .
. , , , .
. , ?
— (..) , - . . . ? ? , : « , , , ». .
, : « , , , !» , , . . «, , - , , , , ». 50 , 5-6 , . , . - . , .