Algoritmo di alto livello:
- Inizia con una triangolazione che rimane coerente in tutte le immagini
- Tuttavia, assicurarsi che i vertici dei triangoli siano regolati per adattarsi alle caratteristiche uniche di ogni volto.
- L'effetto morphing viene creato passando dalla triangolazione di un'immagine a quella della successiva e allo stesso tempo dissolvendo le immagini di ogni triangolo.
Triangolazione di Delaunay:
- Utilizza una libreria professionale per la triangolazione di Delaunay incrementale, che ho tradotto in Java da un'implementazione C++ che ho trovato online sulla base di un algoritmo sviluppato da ricercatori nel campo.
- Funzione aggiunta: opzione per annullare l'ultimo inserimento del vertice, consentendo agli utenti di avere un vertice provvisorio al volo fino a quando non lo formalizzano nella triangolazione (demo).
- Funzione bonus aggiunta: definisci il dominio iniziale come un rettangolo invece di un triangolo, il che non è banale, soprattutto considerando il mio background!
- Funzione aggiunta che consente di attraversare i triangoli in una triangolazione utilizzando il modello di progettazione Visitatore.
Funzioni che vale la pena notare:
- Algebra di base: Trasformazione delle coordinate di un punto all'interno di un triangolo alle coordinate all'interno di un altro triangolo, conoscendo i vertici di entrambi i triangoli.
- Matematica di base: utilizzare il modello di progettazione Visitatore per attraversare i pixel in un triangolo.
- Opzione per creare la sequenza video utilizzando multi-threading.
Con il rilascio della versione v1.1, la creazione della triangolazione è diventata molto più facile per gli utenti integrando una libreria di rilevamento facciale alimentata da AI. Gli utenti possono accedere alla libreria tramite un'API REST a un server cloud.
Con questa libreria, gli utenti possono iniziare con la triangolazione dei vertici rilevati 68 per ogni volto e continuare ad aggiungere vertici, se necessario.