Interfaces de IA y dónde viven

Recientemente, escribimos una columna sobre Habr sobre cómo lanzamos nuestro propio juguete en línea. Uno de los trucos con los que estábamos muy confundidos fue la generación de avatares de su personaje "sobre la marcha" a partir de una fotografía (mientras trabajaba en el prototipo y no forma parte del juego). Al mismo tiempo, la tecnología en sí es interesante y se puede aplicar lejos no solo con nosotros. Según lo prometido, hablamos de ello con más detalle y ¡permítanos sentir el prototipo en vivo!


Debajo del corte también puede encontrar: por qué tomaron una decisión a favor de un sistema de entrenamiento de IA atípico, sin marcado de datos, y por qué consideramos esto una innovación científica; nuestro fakapy al crear avatares de IA que no necesitan repetirse; cómo y dónde se usa la adaptación de dominio hoy.


imagen

Si no hay tiempo para leer la publicación


Seguimos el enlace para ver el trabajo de AI en este momento.


Por favor tenga en cuenta:
1. El convertidor no funciona rápidamente, así que tenga paciencia, se utiliza la capacidad de no producción.
2. El sistema fue entrenado solo en el campo masculino, de modo que las fotografías femeninas los dejarán hombres, probablemente afeminados. No debe esperarse similitud de retrato, porque el número de elementos utilizados es deliberadamente limitado, hablaremos de esto a continuación.

¿De dónde surgió la idea de crear avatares de IA?


Ella no apareció de la nada. El trabajo de aprendizaje automático en uKit Group ha estado en marcha durante varios años. Entonces, el proyecto WebScore AI , que evalúa en tiempo real el atractivo visual del sitio, hace aproximadamente un año, estaba abierto a todos los interesados ​​y se utilizó con éxito para fines internos de la empresa.


El uso de redes neuronales en el desarrollo de juegos es un tema que periódicamente adquiere una exageración considerable. Recordemos No Man's Sky o RimWorld, que recibieron su parte de la atención del juego, y no solo la comunidad debido al universo completamente generado, que tiene una variabilidad casi infinita según los propios autores. Es cierto que, en realidad, la generación de mundos fue de procedimiento y, por lo tanto, no tiene nada que ver con las redes neuronales. Sin embargo, la tendencia aquí es obvia: ¡el mercado está listo para esto y está esperando, frotándose las manos!


Pensamos que la capacidad de subir su foto al juego e inmediatamente obtener un avatar personal que se parece más a usted, que nadie más tiene, es divertido y puede convertirse en un chip interesante y atractivo. Además, la tecnología puede encontrar claramente su aplicación fuera del juego.


Vale la pena señalar que la similitud del personaje con una persona real en Web Tycoon será relativa. Este es un paso deliberado, ya que recopilaremos avatares de los elementos dibujados por nuestros diseñadores. Y hay varias razones para esto. En primer lugar, a la salida queremos obtener avatares del juego al estilo del juego, al tiempo que conservamos el favorito plano de muchos. En segundo lugar, sin duda lo jugamos de forma segura, ya que le permite obtener siempre una imagen vertical, independientemente de lo que haya cargado el usuario.


imagen

Después de todo, no todos quieren ver un pepino realista entre sus rivales.


Modelo de entrenamiento sin datos etiquetados


Este enfoque del aprendizaje automático puede llamarse innovador, porque de hecho, AI aprende sin ningún dato inicial marcado. ¿Por qué está pasando esto? La clave del éxito es la disponibilidad de herramientas para generar datos sintéticos. Antes de posibles preguntas: no podemos dar las nuestras.


¿Por qué decidiste entrenar nuestra IA de esta manera? El marcado de datos es un trabajo monótono y muy voluminoso de los evaluadores. Y si los diseñadores repentinamente deciden agregar, por ejemplo, un tercer tipo de anteojos (al momento de escribir el sistema, había dos de ellos), entonces deberá volver a marcar todo, porque cada ejemplo marcado anteriormente ahora potencialmente no es óptimo.


Además, en nuestro caso, también valió la pena considerar un momento como la subjetividad: si le das a 10 personas para recopilar un avatar para una foto, obtendremos 10 avatares diferentes en la salida. Lo comprobamos.


Foto original:


imagen

Y los resultados de dos diseñadores diferentes de nuestra empresa:


imagen

Hombre vs máquina


El entrenamiento no fue fácil. Primero, nuestra IA capituló en todos los aspectos:


imagen

Si alguien de repente no entendió, entonces la foto original es la misma aquí. AI convierte las bolsas debajo de los ojos en gafas de sol. Antenas de húsar como regalo. Los verdaderos adictos al trabajo pueden considerar esto como una característica, no como un error.


A continuación hay algunos resultados indicativos más.


imagen

imagen

¡Ya no agrega puntos e incluso puede vestirse! Hay ciertos problemas con la reproducción del color.


Directamente sobre el proceso de desarrollo.


Como punto de partida, tomamos varias soluciones de Transferencia de estilo listas para usar, pero rápidamente tuvimos que abandonarlas, ya que no nos convenían en su forma pura. También tratamos de usar modelos generativos por su cuenta, pero rápidamente llegamos a la conclusión de que la mayoría de las soluciones que encontramos no tenían ejemplos de implementación o no daban resultado.


Como resultado, el primer modelo generativo exitoso fue CycleGAN, que tomamos como base, completándolo según nuestras necesidades. Perceptual Loss fue llamado para ayudar al CycleGAN estándar. Esto agregó notablemente belleza a las imágenes resultantes.


A continuación puedes ver CycleGAN en acción:


imagen

U otro ejemplo, claro y familiar para todos los que al menos una vez usaron la aplicación Prisma:


imagen

La principal dificultad tradicional es lograr que el modelo generativo aprenda normalmente. Toda la familia de estos modelos tiene muchas llagas bastante características que en los últimos años han estado tratando de resolver todo: un largo tiempo de entrenamiento, colapso del modo, sensibilidad a la inicialización.


También hubo problemas puramente de ingeniería, que, en teoría, deberían ser enfrentados por muchos, pero por alguna razón pocos escriben al respecto. Por ejemplo, necesitábamos hacer una carga paralela rápida de datos con aumento, y el conjunto estándar de aumentos presentados en keras / tf / pytorch no fue suficiente para nosotros. Además, inicialmente quería aumentar en la CPU. El aumento en la CPU tiene sus ventajas innegables, la principal de las cuales, en nuestra opinión, es la capacidad de "descargar" la tarjeta de video, compartiendo así las responsabilidades entre las dos computadoras.


Como resolver problemas


En el caso de la formación de GAN, trabajamos principalmente con funciones de pérdida (funciones de pérdida). Entonces, agregamos más pérdida de identidad y pérdida de color. Al mismo tiempo, jugamos con la arquitectura del generador dentro de CycleGAN, y como resultado llegamos a un reznet de 12 bloques (el original era un poco corto para nosotros).


En el caso de la repetición de código, escribimos envoltorios de nivel superior sobre los modelos, lo que nos permite reutilizar el código utilizado en varios modelos a la vez. El código para los generadores de fechas también se generaliza de manera similar por las mismas razones.


Para resolver el tercer problema (cargar con aumentos en la CPU), tuve que idear y escribir mi propio chip, pero sobre esto la próxima vez. Solo diremos que se debe a que la tecnología se puede utilizar con éxito para otros proyectos que de ninguna manera están asociados con los avatares.


Fakapy al crear interfaces AI


El error principal es una evaluación incorrecta de la complejidad de la tarea. A primera vista, a menudo parece que hay una gran cantidad de soluciones preparadas que son 99% adecuadas para usted. Solo deben tomarse y transferirse de manera segura a su caso. Entonces, no es así. Por separado, vale la pena mostrar cómo se siente observar cómo en GAN, que ha estado estudiando con éxito durante varios días, de repente algo explota literalmente, por qué comienza a generar el juego completo.


Algo como esto:


imagen

Otro factor grave fue que en las etapas iniciales nos olvidamos de arreglar semillas aleatorias, y recordamos que las GAN son extremadamente sensibles a la inicialización. Un fracaso muy vergonzoso de nuestra parte, como la franqueza.


Donde la adaptación de dominio se usa hoy


La adaptación del dominio penetra lenta pero seguramente en las tareas de IA. Esta tendencia constante se debe al hecho de que a pesar del rápido crecimiento de la información disponible en el mundo moderno, el marcado sigue siendo una tarea larga y costosa. El desarrollo de Transfer Learning y su generalización frente a la adaptación de dominio resuelve este problema.


Un ejemplo de la aplicación práctica de la adaptación del dominio es el trabajo de Apple para expandir el conjunto de datos de fotografías de ojos humanos mediante la adaptación de imágenes generadas sintéticamente. En su estudio, mostraron que un enfoque eficiente es generar datos artificiales inicialmente etiquetados con una aproximación posterior a datos reales utilizando métodos de Adaptación de Dominio.


imagen

O aquí hay otro ejemplo interesante. En 2017, un grupo de científicos ideó un enfoque inusual para recopilar datos sobre calles, carreteras, peatones y otros entornos en los que los automóviles autónomos deberían ubicarse para su entrenamiento.


Sugirieron tomar esta información de GTA V.


imagen

Para esto, en el entorno virtual de Grand Theft Auto V, se generaron más de 480,000 imágenes virtuales etiquetadas de conducción normal en carretera. Utilizando estas imágenes, el sistema fue entrenado para leer todas las variables básicas necesarias para la conducción autónoma básica: para determinar la distancia a los automóviles y otros objetos en el frente, el marcado de la franja y el ángulo de conducción (rumbo angular relativo a la línea central de la franja). También se analizó el fatal accidente de Tesla en Florida.


El futuro es NST y GAN


¿Es posible hablar de esto con confianza? Quizás si. Neural Style Transfer usa Prisma. Por analogía con esto, se están creando nuevas aplicaciones, y no solo con fines de entretenimiento. Las GAN también se pueden usar como una herramienta para resolver una amplia variedad de problemas: coloración de imágenes, generación de imágenes a partir del ruido, incluso generación de imágenes a partir del texto.


Volviendo al tema de gamedev. Aquí, las posibilidades de adaptación de dominio son potencialmente ilimitadas: si el caso con el entrenamiento de vehículos no tripulados se tomó de las texturas del mundo del juego GTA V, del cual salió algo muy similar a las fotos del mundo real, entonces absolutamente nada le impide hacer lo contrario: generar texturas del juego a partir de imágenes panorámicas de ciudades reales .


La ventaja del automóvil es que no se cansa. Una computadora ahora puede generar una gran cantidad de vistas diferentes en una fracción de segundo. Nuestra tarea es aprender cómo hacerlo de manera eficiente y eficiente, y luego solo queda separar el grano de la paja y disfrutar.


¿Aún tienes preguntas? Estaremos encantados de responderlos en los comentarios.

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


All Articles