Zufällige Erzeugung realistischer menschlicher Gesichter

9

Was wäre ein praktikabler Weg, um eine große Anzahl realistisch aussehender menschlicher Gesichter zu erzeugen? Das Randomisieren und Rendern von 3D-Modellen würde viel Rechenleistung erfordern, insbesondere da ich sie auf Ad-hoc-Basis benötige. Das Überlagern einzelner 2D-gezeichneter Teile erfordert einige künstlerische Talente, die mir definitiv fehlen. Außerdem möchte ich so viele Aspekte des Generationsprozesses wie möglich parametrisieren. Haben Sie Vorschläge, wie Sie vorgehen sollen?

Wasserhaus
quelle
Angesichts der Schwierigkeiten, die menschliche Künstler haben, realistisch aussehende menschliche Gesichter zu erstellen, entweder in 2D oder 3D, scheint es ein Wunschtraum für die Menschen zu sein, dies automatisch so zu tun, dass Hunderte oder Tausende exzellenter Beispiele ohne Blindgänger erstellt werden können vorhersehbare Zukunft.
Steven Stadnicki
Du hast recht. Ich hätte genauer sein sollen, was ich brauche, ist kein absolut lebensechter Fotorealismus, aber es sollte überzeugender sein als eine karikaturistische Karikatur.
Waterhouse
Leider vermute ich, dass "selbst so überzeugend wie eine karikaturistische Karikatur" ohne menschliches künstlerisches Eingreifen ein ziemlich guter Weg außerhalb der Reichweite ist. Es gibt viele Feinheiten, die richtig gemacht werden müssen, und bei jedem automatisierten Versuch wird das unheimliche Tal deprimierend tief ragen.
Steven Stadnicki
Wahrscheinlich finden Sie in diesem Beitrag einige nützliche Informationen -> gamedev.stackexchange.com/questions/28363/…. Sie müssen lediglich die Steuerelemente übernehmen, die Ihnen eine Spiel-Engine zum Generieren eines Gesichts gibt, und Code schreiben, der verschiedene Kombinationen generiert. Der Schlüssel ist die Schaffung "realistischer" Kombinationen.
Tim Holt

Antworten:

4

Dies kann sicherlich getan werden - Skyrim ist ein gutes Beispiel für ein Spiel, das prozedural erzeugte 3D-Gesichter verwendet. Grundsätzlich verwenden sie eine Reihe von Standardgesichtsmodellen und beschreiben verschiedene Geometrie-Morphen / Farbänderungen, die in verschiedenen Mengen angewendet werden können, um alle Arten unterschiedlicher Kombinationen zu erstellen.

Wenn Sie jedoch nur nach einfachen 2D-Gesichtern suchen, funktioniert der Layering-Ansatz am besten. Stellen Sie einen Künstler ein, der viele verschiedene Gesichtsmerkmale zeichnet, und kombinieren Sie sie dann in verschiedenen Kombinationen, um viele verschiedene zufällige Gesichter zu erstellen. Kleine zufällige Offsets für jede der Komponenten sorgen für zusätzliche Abwechslung.

Links, die auch Spaß machen könnten:

mikera
quelle
1
+1; Ich denke, dies ist im Allgemeinen ein guter Ansatz - aber beachten Sie, dass all dies mit von Menschen erzeugten Gesichtselementen beginnt, die OP vorgeschlagen hat, dass er sie nicht verwenden möchte.
Steven Stadnicki
Vielleicht möchten Sie auch einen Blick auf makehuman ( makehuman.org ) werfen .
Exilyth
1

Stevens Antwort ist gut. Das menschliche Gehirn ist sehr versiert darin, Gesichter, ihre Konstruktion sowie ihre Gesichtsgesten genau zu beurteilen.

Ich möchte jedoch eine Nebenfrage zu Ihrer Idee stellen. Wie ist der Stand der Gesichtserkennungssoftware? Kann es ein menschliches Gesicht zuverlässig von einem CG unterscheiden?

Ich bin gespannt, wie nützlich es ist, die Ausgabe eines Gesichtsgenerators mit einem Gesichtserkenner zu verknüpfen, um die Menschlichkeit der Gesichter zu bewerten. Wenn Sie ein System haben, das Gesichter erzeugen und das Gute, das Schlechte und das Hässliche erkennen kann, ist es nicht denkbar, dass sich die erzeugten Gesichter im Laufe der Zeit verbessern könnten?

Ich gehe davon aus, dass die Umsetzung all dessen herausfordernd und komplex sein wird. Aber ich würde gerne die Ergebnisse sehen.

Jason Pineo
quelle
Offensichtlich nicht in einem Spiel - aber mit Computerlernalgorithmen (und einem Markierungssystem - das entweder von einem Menschen mit Ja / Nein oder durch einen Vergleich mit dem Goldenen Schnitt von Dr. Marquardt geliefert wird) konnte ein Algorithmus gefunden werden, der Gesichtsformen (Merkmale auf) erzeugte ein Kopfnetz) ziemlich gut. Die Texturierung lässt sich leicht auf alle Maschen anwenden, die der Prozess auslöst. Es ist wahrscheinlich ein kommerzielles System verfügbar, das diesen Prozess bereits durchlaufen hat (nicht angesehen).
Wolf5370
Knapp sieben Jahre später haben wir dies endlich umgesetzt. Hier sind die Ergebnisse.
wizzwizz4
1

Mischen Sie vorhandene Fotos von menschlichen Gesichtern in neue.

Es gibt Millionen von vorhandenen Fotos von Gesichtern, die Ihnen online zur Verfügung stehen. Der Ansatz, den ich verfolgen würde, besteht darin, bekannte Algorithmen zur Erkennung von Merkmalen zu verwenden und die Merkmale verschiedener Gesichter algorithmisch zu mischen.

Dies würde Ihnen die Zufälligkeit und den Realismus geben.

Im Detail würde ich eine Verarbeitungspipeline für menschliche Gesichter erstellen, die:

  1. Erkennen Sie verschiedene Merkmale (Augen, Mund, Ohren, Stirn, Kinn, Kiefer, Wangenknochen usw.)
  2. Teilen Sie die Bilder anhand der Positionen der erkannten Funktion in Komponenten auf.
  3. Randomisieren Sie die Parameter einer Positions- und Größenvorlage.
  4. Platzieren Sie zufällig ausgewählte Komponenten auf der generierten Vorlage.
  5. Mischen Sie die Funktionen ineinander. (Kantenglättung, Ton, Farbe usw.)

Einige schnell gefundene Ressourcen:

Sie müssen auch eine Datenbank mit Gesichtern erstellen, die möglicherweise mit Lizenzproblemen verbunden sind, oder sie selbst aus dem Internet abrufen, was zeitaufwändig ist.

Seien Sie gewarnt, dass diese Art von Problem effektiv aktive Forschung ist. Ich möchte nicht einmal wissen, wie lange die Skyrim-Leute gebraucht haben, um ihr Gesichtsgenerierungssystem zum Laufen zu bringen. (Und sie hatten jahrzehntelange Erfahrung seit den Tagen auf Morrowind ...)

brice
quelle