Génération aléatoire de visages humains réalistes

9

Quelle serait une manière pratique de générer un grand nombre de visages humains réalistes? Randomiser des modèles 3D et les rendre nécessiterait beaucoup de puissance de calcul, d'autant plus que j'en ai besoin de façon ponctuelle. La superposition de pièces individuelles dessinées en 2D nécessite un certain talent artistique, ce qui me manque absolument. J'aimerais également paramétrer autant d'aspects que possible du processus générationnel. Avez-vous des suggestions sur la façon de procéder?

Waterhouse
la source
Étant donné les difficultés que les artistes humains ont à créer des visages humains réalistes, en 2D ou en 3D, pouvoir le faire automatiquement de manière à pouvoir créer des centaines ou des milliers d'excellents exemples sans ratés semble être un rêve de pipe pour le un avenir prévisible.
Steven Stadnicki
Tu as raison. J'aurais dû être plus précis, ce dont j'ai besoin n'est pas un photoréalisme absolument réaliste, mais il devrait être plus convaincant qu'une caricature caricaturale.
Waterhouse
Malheureusement, je soupçonne que «même aussi convaincant qu'une caricature caricaturale» sans intervention artistique humaine est un très bon moyen hors de portée. Il y a beaucoup de subtilités pour réussir, et dans toute tentative automatisée, la vallée étrange est imminente de manière déprimante.
Steven Stadnicki
Vous pouvez probablement trouver des informations utiles dans ce post -> gamedev.stackexchange.com/questions/28363/… Ce que vous devez faire est de prendre les commandes qu'un moteur de jeu vous donne pour générer un visage et d'écrire du code qui génère différentes combinaisons. La clé est de créer des combinaisons "réalistes".
Tim Holt

Réponses:

4

Cela peut certainement être fait - Skyrim est un bon exemple d'un jeu qui utilise des visages 3D générés de manière procédurale. Fondamentalement, ils prennent un ensemble de modèles de faces standard et décrivent différentes morphes de géométrie / changements de couleur qui peuvent être appliqués en différentes quantités pour créer toutes sortes de combinaisons différentes.

Si vous recherchez juste des visages 2D simples, je pense que l'approche en couches fonctionnerait mieux - embaucher un artiste pour dessiner de nombreuses fonctionnalités de visages, puis les combiner dans différentes combinaisons pour créer de nombreuses visages aléatoires différents. De petits décalages aléatoires pour chacun des composants aideront également à créer une variété supplémentaire.

Des liens qui pourraient aussi être amusants:

mikera
la source
1
+1; Je pense que c'est en général une bonne approche - mais notez que tout cela commence avec des éléments faciaux générés par l'homme, qu'OP a suggéré qu'il ne voulait pas utiliser.
Steven Stadnicki
Vous voudrez peut-être aussi jeter un œil à makehuman ( makehuman.org ).
Exilyth
1

La réponse de Steven est bonne. Le cerveau humain est très compétent pour porter un jugement fin sur les visages, leur construction ainsi que leurs gestes faciaux.

Cependant, je veux poser une question corollaire à votre idée. Quel est l'état du logiciel de reconnaissance faciale? Peut-il distinguer de manière fiable un visage humain d'un CG?

Je suis curieux de savoir l'utilité de raccorder la sortie d'un générateur facial avec un identificateur facial, dans le but de classer l'humain des visages. Une fois que vous avez un système qui peut produire des visages et reconnaître le bon, le mauvais et le laid, n'est-il pas concevable que les visages générés puissent s'améliorer avec le temps?

Je pense que la mise en œuvre de tout cela serait difficile et complexe. Mais j'aimerais voir les résultats.

Jason Pineo
la source
Évidemment, pas dans un jeu - mais avec des algorithmes d'apprentissage par ordinateur (et un système de marquage - fournis soit par un humain disant Oui / Non ou par une comparaison avec le Dr Marquardt Golden Ratio), un algorithme pourrait être trouvé qui a généré des formes de visage (caractéristiques sur un maillage de tête) assez bien. La texturation s'applique facilement à toutes les mailles du processus. Il existe probablement un système commercial disponible qui a déjà traversé ce processus (non recherché).
Wolf5370
Un peu moins de sept ans plus tard, nous avons finalement mis en œuvre cela. Voici les résultats.
wizzwizz4
1

Mélangez des photos existantes de visages humains à de nouvelles.

Il y a des millions de photos de visages disponibles en ligne. L'approche que je prendrais consiste à utiliser des algorithmes de détection de caractéristiques bien connus et à mélanger les caractéristiques de différentes faces de manière algorithmique.

Cela vous donnerait le caractère aléatoire et le réalisme.

Plus en détail, je créerais un pipeline de traitement pour les visages humains, qui:

  1. Détecter différentes caractéristiques (yeux, bouche, oreilles, front, menton, mâchoire, pommette, etc ...)
  2. En utilisant les emplacements de la fonction détectée, divisez les images en composants.
  3. Randomisez les paramètres d'un modèle de position et de taille.
  4. Placez des composants sélectionnés au hasard sur le modèle généré.
  5. Mélangez les fonctionnalités les unes dans les autres. (lissage des bords, ton, couleur, etc ...)

Certains ont rapidement trouvé des ressources:

Vous devrez également obtenir une base de données de visages, qui pourrait entraîner des problèmes de licence, ou les rassembler vous-même sur le Web, ce qui prendra du temps.

Soyez averti que ce type de problème est effectivement une recherche active. Je ne veux même pas savoir combien de temps il a fallu aux gens de Skyrim pour faire fonctionner leur système de génération de visage. (Et ils avaient des décennies d'expérience depuis l'époque de Morrowind ...)

brice
la source