Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Animare foto e ritratti sfruttando un video

Impariamo a sfruttare un semplice script Python per animare un'immagine statica di un volto o un ritratto, sfruttando un video o la nostra webcam.
Animare foto e ritratti sfruttando un video
Impariamo a sfruttare un semplice script Python per animare un'immagine statica di un volto o un ritratto, sfruttando un video o la nostra webcam.
Link copiato negli appunti

Le innovazioni nell'ambito dell'intelligenza artificiale, il machine learning e l'analisi delle immagini trovano oggigiorno sempre più applicazioni pratiche, spostandosi dall'area della pura ricerca alle App divertenti che possono girare sui nostri smartphone. Si pensi, ad esempio, a FaceApp, in grado di "invecchiare" qualsiasi volto in modo automatico, e con appena qualche click.

Questo tipo di applicazioni, e soprattutto la loro accessibilità odierna, fino a una decina di anni fa era più simile alla fantascienza che all'uso quotidiano che facciamo della tecnologia. Eppure le cose sono cambiate. Recentemente, uno sviluppatore ha reso disponibile su GitHub uno script in Python che implementa un algoritmo pubblicato lo scorso anno sulla rivista Advances in Neural Information Processing Systems.

Tramite questo algoritmo, è possibile trasferire i cambiamenti delle espressioni facciali registrati su un video, trasferendoli su un'immagine statica che è quindi possibile animare. Il video seguente riassume rapidamente i concetti chiave alla base di questo algoritmo:

Installazione del tool

Per installare lo script, è innanzitutto necessario installare una versione di Python uguale o successiva alla 3.7.3. Possiamo assicurarcene eseguendo l'interprete Python da terminale e controllando il numero di versione.

Fatto ciò, scarichiamo il progetto pubblicato su GitHub. Se preferiamo, possiamo anche clonarlo con Git. Ottenuto il codice, spostiamoci nella directory principale

Creazione del virtual environment

Per prima cosa, è consigliabile creare e attivare un virtual environment. Assicuriamoci quindi di poterne creare uno, installando il modulo virtualenv:

pip install virtualenv

Quindi, creiaamo il virtual environment:

virtualenv env

Per attivarlo, su Windows procediamo come segue:

env/Script/activate

Su Linux, invece:

source env/bin/activate

Installazione delle dipendenze

Installiamo poi i moduli richiesti:

pip install -r requirements.txt

Aggiungiamo quindi PyTorch e Torchvision, sfruttando ancora una volta pip:

pip install torch===1.0.0 torchvision===0.2.1 -f https://download.pytorch.org/whl/cu100/torch_stable.html

Otteniamo i file pre-addestrati

Una volta ottenuti tutti i requisiti, avremo la necessità di scaricare i file contenenti i parametri che l'algoritmo dovrà utilizzare per effettuare opportunamente il morphing. Questi file includono il modello, i pesi e tutto il necessario per la corretta esecuzione dello script.

Scarichiamo il file .zip disponibile a questo link, e scompattiamone il contenuto in una cartella che chiameremo extract.

Eseguiamo lo script

Non resta quindi che eseguire il nostro script. Abbiamo due opzioni:

  • se vogliamo eseguirlo sfruttando la webcam, avviamo lo script come segue:
    python image_animation.py -i <immagine_input> -c <path_checkpoint>

    dove <path_checkpoint> è uno dei due file .tar contenuti nella directory extract che avevamo creato in precedenza
  • se invece vogliamo utilizzare un file video come input, procediamo così:
    python image_animation.py -i <immagine_input> -c <path_checkpoint> -v <video_input>
Figura 1. Esempio di output (click per ingrandire)Esempio di output

Ti consigliamo anche