Generación aleatoria de rostros humanos realistas.

9

¿Cuál sería una forma práctica de generar grandes cantidades de rostros humanos de aspecto realista? Aleatorizar modelos 3D y renderizarlos requeriría mucha potencia informática, especialmente porque los necesito de forma ad-hoc. La capa de partes dibujadas en 2D individuales requiere un poco de talento artístico, que definitivamente me falta. Además, me gustaría parametrizar tantos aspectos del proceso generacional como sea posible. ¿Tienes alguna sugerencia de cómo hacer esto?

Waterhouse
fuente
Dada la cantidad de problemas que los artistas humanos tienen para crear rostros humanos de aspecto realista, ya sea en 2d o 3d, ser capaz de hacer esto automáticamente de una manera que podría crear cientos o miles de ejemplos excelentes sin trapos parece un sueño imposible para el futuro previsible.
Steven Stadnicki
Tienes razón. Debería haber sido más específico, lo que necesito no es fotorrealismo absolutamente realista, pero debería ser más convincente que una caricatura de dibujos animados.
Waterhouse
Desafortunadamente, sospecho que 'incluso tan convincente como una caricatura caricaturesca' sin intervención artística humana es una muy buena manera de estar fuera de alcance. Hay muchas sutilezas para acertar, y en cualquier intento automatizado, el valle misterioso está destinado a asomarse deprimentemente profundo.
Steven Stadnicki
Probablemente pueda encontrar información útil de esta publicación -> gamedev.stackexchange.com/questions/28363/… Lo que debe hacer es tomar los controles que le da un motor de juego para generar una cara y escribir código que genere diferentes combinaciones. La clave es crear combinaciones "realistas".
Tim Holt

Respuestas:

4

Esto ciertamente se puede hacer: Skyrim es un buen ejemplo de un juego que utiliza caras 3D generadas por procedimientos. Básicamente toman un conjunto de modelos de caras estándar y describen diferentes cambios de geometría / color de geometría que se pueden aplicar en diferentes cantidades para hacer todo tipo de combinaciones diferentes.

Sin embargo, si solo busca caras 2D simples, creo que el enfoque de capas funcionaría mejor: contrate a un artista para dibujar muchas características de caras diferentes, luego combínelas en diferentes combinaciones para crear muchas caras aleatorias diferentes. Pequeñas compensaciones aleatorias para cada uno de los componentes también ayudarán a crear una variedad extra.

Enlaces que también pueden ser divertidos:

mikera
fuente
1
+1; Creo que este es en general un buen enfoque, pero tenga en cuenta que todo esto comienza con elementos faciales generados por humanos, que OP ha sugerido que no quiere usar.
Steven Stadnicki
Es posible que desee echar un vistazo a makehuman ( makehuman.org ) también.
Exilyth
1

La respuesta de Steven es buena. Los cerebros humanos están muy versados ​​en hacer juicios finos de rostros, su construcción y sus gestos faciales.

Sin embargo, quiero plantear una pregunta complementaria a su idea. ¿Cuál es el estado del software de reconocimiento facial? ¿Puede distinguir confiablemente una cara humana de una CG?

Tengo curiosidad sobre la utilidad de conectar la salida de un generador facial con un reconocedor facial, con el objetivo de calificar la humanidad de los rostros. Una vez que tiene un sistema que puede producir caras y reconocer lo bueno, lo malo y lo feo, ¿no es concebible que las caras generadas puedan mejorar con el tiempo?

Espero que la implementación de todo esto sea desafiante y compleja. Pero me encantaría ver los resultados.

Jason Pineo
fuente
Obviamente, no en un juego, pero con algoritmos de aprendizaje informático (y un sistema de marcado, suministrado por un humano que dice Sí / No o por alguna comparación con el Dr. Marquardt Golden Ratio) se pudo encontrar un algoritmo que genera formas de cara (características en una malla de la cabeza) bastante bien. La textura se aplica fácilmente a cualquier malla que el proceso inicie. Sin embargo, es probable que haya un sistema comercial disponible que ya haya pasado por este proceso (no se ha buscado).
Wolf5370
Poco menos de siete años después, finalmente lo implementamos. Aquí están los resultados.
wizzwizz4
1

Mezcle fotos existentes de rostros humanos en otras nuevas.

Hay millones de fotos existentes de rostros disponibles en línea. El enfoque que tomaría es usar algoritmos de detección de características bien conocidos y combinar las características de diferentes caras algorítmicamente.

Esto te daría la aleatoriedad y el realismo.

En más detalles, crearía una tubería de procesamiento para rostros humanos, que:

  1. Detecta diferentes características (ojos, boca, orejas, frente, mentón, mandíbula, pómulo, etc.)
  2. Usando las ubicaciones de la característica detectada, divida las imágenes en componentes.
  3. Aleatorice los parámetros de una plantilla posicional y de tamaño.
  4. Coloque componentes seleccionados al azar en la plantilla generada.
  5. Mezcla las características entre sí. (suavizado de bordes, tono, color, etc.)

Algunos recursos rápidamente encontrados:

También necesitará obtener una base de datos de caras, que puede presentar algunos problemas de licencia, o reunirlas usted mismo de la web, lo que llevará mucho tiempo.

Tenga en cuenta que este tipo de problema es efectivamente la investigación activa. Ni siquiera quiero saber cuánto tiempo les llevó a la gente de Skyrim hacer funcionar su sistema de generación de rostros. (Y tenían décadas de experiencia desde los días en Morrowind ...)

brice
fuente