Generazione casuale di volti umani realistici


9

Quale sarebbe un modo praticabile per generare un numero enorme di volti umani dall'aspetto realistico? La randomizzazione dei modelli 3D e il loro rendering richiederebbero molta potenza di calcolo, soprattutto perché ne ho bisogno su una base ad hoc. La stratificazione di singole parti disegnate in 2D richiede un certo talento artistico, che sicuramente mi manca. Inoltre, vorrei parametrizzare quanti più aspetti del processo generazionale possibile. Hai qualche suggerimento su come procedere?


Dati i problemi che gli artisti umani hanno creato volti umani dall'aspetto realistico, sia in 2D che in 3D, essere in grado di farlo automaticamente in un modo che sarebbe in grado di creare centinaia o migliaia di esempi eccellenti senza problemi sembra un sogno irrealizzabile per il futuro prevedibile.
Steven Stadnicki,

Hai ragione. Avrei dovuto essere più specifico, ciò di cui ho bisogno non è un fotorealismo assolutamente realistico, ma dovrebbe essere più convincente di una caricatura da cartone animato.
Waterhouse,

Sfortunatamente, ho il sospetto che "anche convincente come una caricatura da cartone animato" senza un intervento artistico umano è un ottimo modo per essere fuori portata. Ci sono molte sottigliezze da mettere a punto, e in ogni tentativo automatizzato la valle misteriosa è destinata a profilare in modo deprimente.
Steven Stadnicki,

Probabilmente puoi trovare alcune informazioni utili da questo post -> gamedev.stackexchange.com/questions/28363/… Quello che devi fare è prendere i controlli che un motore di gioco ti dà per generare un volto e scrivere un codice che genera combinazioni diverse. La chiave sta creando combinazioni "realistiche".
Tim Holt,

Risposte:


4

Questo può certamente essere fatto: Skyrim è un buon esempio di gioco che utilizza facce 3D generate proceduralmente. Fondamentalmente prendono una serie di modelli di facce standard e descrivono diverse trasformazioni geometriche / cambi di colore che possono essere applicati in quantità diverse per creare tutti i tipi di combinazioni diverse.

Se stai semplicemente seguendo semplici facce 2D, penso che l'approccio della stratificazione funzionerebbe meglio: assumi un artista per disegnare molte diverse facce, quindi combinale in combinazioni diverse per creare molte facce casuali diverse. Piccoli offset casuali su ciascuno dei componenti aiuteranno anche a creare una varietà in più.

Link che potrebbero anche essere divertenti:


1
+1; Penso che questo sia generalmente un buon approccio, ma nota che tutti questi iniziano con elementi facciali generati dall'uomo, che OP ha suggerito di non voler usare.
Steven Stadnicki,

Potresti dare un'occhiata anche a makehuman ( makehuman.org ).
Exilyth,

1

La risposta di Steven è buona. I cervelli umani sono molto abili nel giudicare bene i volti, la loro costruzione e i loro gesti facciali.

Tuttavia, voglio porre una domanda corollaria alla tua idea. Qual è lo stato del software di riconoscimento facciale? Può distinguere in modo affidabile un volto umano da un CG?

Sono curioso dell'utilità di collegare l'output di un generatore facciale con un riconoscimento facciale, con l'obiettivo di classificare l'umanità dei volti. Una volta che hai un sistema in grado di produrre facce e riconoscere il buono, il brutto e il cattivo, non è concepibile che le facce generate possano migliorare nel tempo?

Mi aspetto che l'attuazione di tutto ciò sia impegnativa e complessa. Ma mi piacerebbe vedere i risultati.


Ovviamente non in un gioco - ma con algoritmi di apprendimento al computer (e un sistema di marcatura - fornito da un essere umano che dice Sì / No o da un paragone con il Dr. Marquardt Golden Ratio) si potrebbe trovare un algoritmo che ha generato forme del viso (caratteristiche su una maglia di testa) abbastanza bene. Il texturing viene facilmente applicato a qualsiasi mesh avviata dal processo. C'è probabilmente un sistema commerciale disponibile che è già stato attraverso questo processo (non guardato).
Wolf5370,

Poco meno di sette anni dopo, l'abbiamo finalmente implementato. Ecco i risultati
wizzwizz4,

1

Mescola le foto esistenti di volti umani in nuove.

Ci sono milioni di foto di volti esistenti disponibili online. L'approccio che seguirei è quello di utilizzare algoritmi di rilevamento delle caratteristiche ben noti e fondere algoritmicamente le caratteristiche di facce diverse.

Questo ti darebbe la casualità e il realismo.

In modo più dettagliato, creerei una pipeline di elaborazione per volti umani, che dovrebbe:

  1. Rileva caratteristiche diverse (occhi, bocca, orecchie, fronte, mento, mascella, zigomo, ecc ...)
  2. Utilizzando le posizioni della funzione rilevata, dividere le immagini in componenti.
  3. Randomizza i parametri di un modello di posizione e dimensioni.
  4. Posiziona i componenti selezionati casualmente sul modello generato.
  5. Mescola le caratteristiche l'una nell'altra. (levigatura dei bordi, tonalità, colore, ecc ...)

Alcune risorse trovate rapidamente:

Dovrai anche ottenere un database di volti, che potrebbero presentare alcuni problemi di licenza, o raccoglierli dal Web, il che richiederà molto tempo.

Essere avvertiti che questo tipo di problema è efficacemente la ricerca attiva. Non voglio nemmeno sapere quanto tempo impiegarono le persone di Skyrim a far funzionare il loro sistema di generazione del viso. (E avevano decenni di esperienza dai tempi di Morrowind ...)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.