
Hoy, el proyecto Technosphere celebra su quinto aniversario. Estos son nuestros logros a lo largo de los a帽os:
- La capacitaci贸n fue completada por 330 graduados.
- El curso tiene 120 estudiantes.
- Las clases son impartidas por 30 profesores.
- El plan de estudios tiene 250 lecciones en 16 disciplinas.
- Los alumnos realizan 71 DZ.
- 8000 usuarios.
- M谩s de 100 estudiantes comenzaron sus carreras en el Grupo Mail.ru.
Al final de la capacitaci贸n, los estudiantes crean sus propios proyectos de graduaci贸n para los cuales tienen tres meses. Y en honor al quinto aniversario de la tecnosfera, hemos recopilado los trabajos de graduaci贸n m谩s brillantes de los 煤ltimos a帽os. Los propios graduados contar谩n sobre sus proyectos.
"Memoria brillante"
Vsevolod Vikulin, Boris Kopin, Denis KuzminInicialmente, planeamos crear un servicio de retoque de im谩genes que tambi茅n nos permitiera colorear fotograf铆as en blanco y negro. Al discutir proyectos con mentores, surgi贸 una idea para contarle al equipo de OK sobre esta idea, y como resultado, decidieron crear una aplicaci贸n especial con la funci贸n de colorear fotograf铆as en blanco y negro de la guerra.
Para hacer esto, tuvimos que dise帽ar la arquitectura de la red neuronal, crear un conjunto adecuado de fotos para entrenar el modelo y ejecutar la aplicaci贸n en la plataforma OK.
Probamos muchas redes neuronales listas para usar, pero ninguna de ellas dio la calidad deseada. Luego decidimos crear el nuestro. En la primera etapa, la red neuronal intent贸 predecir la imagen RGB en el canal BW, pero el resultado fue regular, porque la red intent贸 colorear todo en tonos grises.
Un ejemplo del funcionamiento de la red neuronal original.Luego decidimos usar una segunda red neuronal pre-entrenada.
Con su ayuda, pudimos extraer signos tanto de la fotograf铆a original en color como de la que fue pintada por la primera red neuronal. As铆 que ense帽amos a la segunda red neuronal a comprender qu茅 colores son inherentes a ciertos objetos en la vida real: el cielo es azul, la hierba es verde, etc. Para implementar redes neuronales, utilizamos el popular marco Pytorch.
Nueva arquitectura de red neuronal.Pero lo principal era ense帽arle al modelo c贸mo pintar los rostros de las personas de la manera m谩s realista posible. Nos enfrentamos al hecho de que entre los conjuntos de datos existentes no hab铆a nadie adecuado para nuestra tarea: necesit谩bamos grandes fotos de caras con un fondo natural. Para formar nuestro propio conjunto de im谩genes, primero creamos una lista de 5000 nombres de celebridades. Luego, estos nombres fueron buscados por im谩genes en varios motores de b煤squeda. Utilizando m茅todos de reconocimiento de rostros, se eliminaron las im谩genes que no conten铆an rostros en absoluto, y los fragmentos m谩s adecuados se resaltaron en las fotograf铆as restantes. Entonces recolectamos el conjunto necesario de 600 mil fotos.
Luego vino la tarea de la pintura realista de un uniforme militar.
Para resolverlo, tuve que generar artificialmente uniformes militares con varias medallas y 贸rdenes. Adem谩s, tuve que ver algunas pel铆culas en color sobre la guerra.
Ejemplos de fotos del conjunto de entrenamiento.Combinando todo esto con un conjunto popular de fotograf铆as de uso general, recibimos 2.5 millones de fotograf铆as para entrenar la red neuronal.
Preparamos un prototipo funcional de la red neuronal y comenzamos a desarrollar una aplicaci贸n en la plataforma OK. Esta es una aplicaci贸n web est谩ndar con un backend y frontend. Fuimos responsables del backend, y el equipo de OK se hizo cargo de la interfaz. Realizando una evaluaci贸n realista de los recursos disponibles, decidimos que ser铆a m谩s racional utilizar la arquitectura actual del proyecto Artisto.
Para hacer esto, portamos el c贸digo de red neuronal al marco de trabajo de Lua Torch y lo implementamos en el entorno.
La interfaz de la aplicaci贸n est谩 bien.El 9 de mayo, nuestra aplicaci贸n estuvo disponible para los compa帽eros de clase multimillonarios de Odnoklassniki, varios grandes medios de comunicaci贸n escribieron sobre esto, y actualmente 230 mil personas usan el servicio. Fue muy dif铆cil implementar el proyecto en tan poco tiempo, pero lo logramos todo. Muchas gracias a nuestros mentores Olga Schubert y Alexei Voropaev, quienes nos ayudaron con la integraci贸n en OK. Tambi茅n agradecemos al Grupo de Desarrollo de Infraestructura de Mail.ru Search por su ayuda con la integraci贸n en el proyecto Artisto, y por separado a Dmitry Solovyov por su invaluable asesoramiento sobre arquitectura de redes neuronales.
"Mapa musical"
Vladimir Bugaevsky, Dana Zlochevskaya, Ralina Shavalieva

La idea del proyecto nos fue sugerida por los mentores Aleksey Voropaev y Dmitry Solovyov. Hab铆a una vez un reproductor Sony que pod铆a clasificar las canciones seg煤n cuatro estados de 谩nimo. Hoy, la tecnolog铆a ha dado un gran paso adelante, la inteligencia artificial y las redes neuronales se est谩n desarrollando activamente, y nos dimos cuenta de que pod铆amos hacer algo m谩s genial que nuestros usuarios quisieran: una tarjeta de m煤sica que visualizara el estado de 谩nimo de las grabaciones de audio del usuario de VK. Y decidieron implementarlo en forma de una extensi贸n para Chrome: es f谩cil de instalar y c贸modo de usar.
Naturalmente, comenzamos explorando los enfoques que ya se usaban para determinar el estado de 谩nimo de la m煤sica. Despu茅s de ver una docena de art铆culos cient铆ficos, nos dimos cuenta de que casi nadie hab铆a tratado de usar redes neuronales para analizar las emociones de las grabaciones de audio.
Otra dificultad para nosotros fue la tarea de visualizar las emociones. Result贸 que en psicolog铆a hay muchos modelos para representar los estados de 谩nimo humanos, cada uno de los cuales tiene sus propias ventajas y desventajas. Nos decidimos por el llamado modelo espacial circumplex: su idea es que cualquier emoci贸n se pueda representar como un punto en un espacio bidimensional. Gracias a esta escala, pudimos visualizar el estado de 谩nimo de sus grabaciones de audio de una manera comprensible para el usuario.
Identificamos tres frentes de trabajo en la aplicaci贸n:
- La parte del servidor aceptar谩 solicitudes de expansi贸n, crear谩 espectrogramas, har谩 pron贸sticos y los devolver谩 al usuario.
- La parte del usuario con la que la persona interactuar谩.
- Entrenamiento de redes neuronales: preparar el conjunto de entrenamiento, elegir la arquitectura de red y el proceso de aprendizaje en s铆.
El alcance del trabajo era extremadamente grande, por lo que todos pod铆an probarse en todo. Nuestro equipo actu贸 de manera muy coherente: constantemente encontramos diferentes formas de resolver ciertos problemas y nos ayudamos mutuamente a descubrir las caracter铆sticas de la implementaci贸n de partes individuales. La principal dificultad que encontramos fue un plazo extremadamente ajustado de tres meses. Durante este tiempo, tuvimos que entender desde cero el desarrollo de la interfaz (aprender a escribir en JavaScript), las complejidades del marco para entrenar la red neuronal (PyTorch) y dominar la tecnolog铆a del desarrollo modular (Docker). Ahora nuestra aplicaci贸n funciona en modo de prueba para varios usuarios.
"Colorizaci贸n de video para profesionales"
Yuri Admiralsky, Denis Bibik, Anton Bogovsky, George Kasparyants

La idea del proyecto surgi贸 como resultado del an谩lisis de las tendencias modernas en el desarrollo de redes neuronales para resolver los problemas de gr谩ficos por computadora y procesamiento de contenido multimedia. Ya se han propuesto varios enfoques diferentes para colorear im谩genes individuales en esta 谩rea; este problema surge, por ejemplo, al procesar fotograf铆as de archivo antiguas. Por otro lado, el 茅xito de las versiones coloreadas de pel铆culas sovi茅ticas en blanco y negro ha demostrado la relevancia de las tareas de coloraci贸n de video. Colorear el video manualmente, cuadro por cuadro, es una tarea extremadamente lenta, cuya soluci贸n requiere la participaci贸n de estudios profesionales. Y de los usuarios que desean obtener versiones en color de sus videos antiguos, pocos poseen las habilidades necesarias y tienen suficiente tiempo para colorear manualmente, sin mencionar el dinero para completar dicha tarea con la ayuda de equipos profesionales de estudios de video. Por lo tanto, decidimos intentar aplicar los enfoques conocidos para colorear y crear un programa editor para reducir significativamente la complejidad de colorear videos usando redes neuronales.
La tarea principal que ten铆a que resolverse al desarrollar un programa de este tipo era obtener los colores correctos al pintar objetos en el marco. Nos enfrentamos al hecho de que los conjuntos de datos cl谩sicos (por ejemplo, ImageNet) utilizados en el entrenamiento de redes neuronales para resolver problemas de procesamiento de im谩genes no nos permiten lograr una buena coloraci贸n autom谩tica (sin ninguna informaci贸n adicional). Por ejemplo, algunos objetos en el marco no fueron reconocidos y permanecieron en blanco y negro en la imagen coloreada. Otro problema de los modelos de vanguardia fue la elecci贸n incorrecta de colores para pintar objetos, tanto por la tarea que no se determin贸 (colorear la ropa) como por la definici贸n incorrecta de objetos raros, as铆 como los objetos afectados por artefactos de compresi贸n. Al cambiar los marcos, se observ贸 un cambio de color en la coloraci贸n de los objetos presentes en el marco debido a la inestabilidad de los modelos a peque帽os cambios en el marco.
Para resolver este problema, aplicamos el m茅todo de
se帽ales de color locales , lo que nos permiti贸 lograr la asignaci贸n de color correcta para todo el objeto y las transiciones de color correctas al establecer los colores de los puntos individuales de los objetos. Al mismo tiempo, la red neuronal durante la coloraci贸n controla la observancia de los l铆mites de los objetos y las transiciones de brillo. Este enfoque nos permiti贸 reducir la laboriosidad de colorear cuadros individuales (era necesario establecer expl铆citamente los colores de solo puntos individuales en el cuadro, sin usar pinceles), y ayud贸 a resolver el problema de subdeterminaciones y cambios de color al cambiar de cuadro. Adem谩s, hemos implementado modelos que le permiten rastrear el movimiento de objetos en el marco y mover pistas de color. Usando nuestro programa editor, coloreamos un fragmento de la vieja pel铆cula en blanco y negro
The Kid .

Un ejemplo de un cuadro pintado de la pel铆cula Chaplin The Kid (1921).Implementamos el editor en forma de una aplicaci贸n independiente del cliente, en la que se carga el video, y luego los marcos se marcan con consejos de color. Puede calcular los modelos de coloraci贸n en la m谩quina local o en la potencia de c贸mputo de terceros (por ejemplo, desplegando la parte del servidor en la nube) para procesar el video m谩s r谩pido.
Para crear el editor, hicimos mucho trabajo, incluyendo probar y finalizar modelos para colorear y rastrear objetos de marco, desarrollar una arquitectura cliente-servidor para la aplicaci贸n y determinar la usabilidad de la aplicaci贸n cliente. Aprendimos las complejidades de trabajar con el marco PyTorch que implementa el trabajo de redes neuronales, dominamos el marco Qt 5 para desarrollar una aplicaci贸n cliente y aprendimos c贸mo usar Django-REST y Docker para desarrollar e implementar un backend inform谩tico.
Un ejemplo de una aplicaci贸n cliente.Gracias a los maestros de Technosphere por su dedicado trabajo, por el conocimiento relevante que les brindan a los estudiantes. 隆Deseamos que el proyecto crezca y se desarrolle!
* * *
Puede solicitar capacitaci贸n hasta las 10:00 del 16 de febrero en
sphere.mail.ru . Tenga en cuenta que solo los estudiantes y estudiantes de posgrado de la Universidad Estatal de Mosc煤 pueden estudiar en la tecnosfera. M.V. Lomonosov