AI digital human: modelo que cambia de rostro Faceswap

 1 Introducción a Faceswap

Faceswap utiliza algoritmos de aprendizaje profundo y tecnología de reconocimiento facial para extraer las expresiones faciales, los ojos, la boca y otras características de una persona de una foto o video y compararlos con los rasgos faciales de otra persona.

Faceswap introduce la tecnología GAN además de la arquitectura de autocodificación y decodificación de Encoder-Decoder, que mejora significativamente el efecto de cambio de cara.

  • Consigue fotos de rostros normales
  • Distorsionar y transformar la foto de la cara
  • Vector de codificación de codificador
  • Vector de decodificación decodificador
  • Restaurar fotos de rostros normales

En general, el cambio de rostro de Faceswap se divide principalmente en los siguientes tres procesos:

  • Detección de rostro
  • extracción de características
  • conversión de cara

2 Escenarios de aplicación de Faceswap

Faceswap tiene una amplia gama de aplicaciones, no solo para el entretenimiento y la creación artística, sino también para la producción de cine y televisión y efectos especiales. Los siguientes son ejemplos de la aplicación de la tecnología Faceswap en diferentes campos:

  1. Entretenimiento y creación artística: Faceswap se puede usar para crear fotos y videos divertidos, lo que permite a los usuarios intercambiar sus rasgos faciales con celebridades, personajes o animales, etc. Esta técnica se puede utilizar para crear imágenes divertidas, crear obras de arte creativas o generar contenido entretenido para las redes sociales.

  2. Producción de cine y televisión: Faceswap juega un papel importante en la producción de cine y televisión. Se puede usar para efectos especiales digitales y efectos de maquillaje, como intercambiar los rasgos faciales de un actor con un suplente para que la audiencia no sepa que el suplente está allí. La técnica también podría usarse para restaurar figuras históricas, devolviéndoles la vida o reapareciendo en una película.

  3. Protección de la privacidad y seguridad: la tecnología Faceswap también plantea problemas de privacidad y seguridad. Puede usarse para defraudar al sistema, por ejemplo, falsificando identidades para actividades ilegales o fraude. En respuesta a estos problemas, los investigadores y desarrolladores también están trabajando arduamente para brindar las soluciones correspondientes, como el desarrollo de métodos para detectar y combatir la tecnología Faceswap.

 3 Construcción del entorno operativo Faceswap

3.1 preparación del entorno conda

        Para la preparación del entorno conda, consulte: annoconda

3.2 Instalación del entorno operativo

git clone https://github.com/deepfakes/faceswap.git
cd faceswap
conda create -n faceswap python=3.9
conda activate faceswap 
python setup.py
选择的选项如下:
Enable ROCm Support? [y/N] n
Enable AMD Support? [y/N] n
Enable  Docker? [y/N] n
Enable  CUDA? [Y/n] y
Continue? [y/N] y

También puede ejecutar el siguiente comando en su lugar:

Nvidia GPU: pip install -r ./requirements/requirements_nvidia.txt
CPU       : pip install -r ./requirements/requirements_cpu.txt

Una vez completada la instalación, vea la lista de comandos

python faceswap.py -h


显示如下:
  {extract,train,convert,gui}
    extract             Extract the faces from pictures or a video
    train               Train a model for the two faces A and B
    convert             Convert source pictures or video to a new one with the face swapped
    gui                 Launch the Faceswap Graphical User Interface

optional arguments:
  -h, --help            show this help message and exit

4 Faceswap realiza el intercambio de rostros

Use dos videos llamados video1.mp4 y video2.mp4 respectivamente, y los dos videos se almacenan en la carpeta src del directorio raíz. El objetivo de este modelo de ejecución es reemplazar la cara en video2.mp4 con video1.mp4, el comando se ejecuta de la siguiente manera:

4.1 Descarga del modelo de pre-entrenamiento

Descarga del modelo de pre-entrenamiento: dirección de descarga

Una vez completada la descarga, muévase a la carpeta .fs_cache/ del directorio raíz de Faceswap

También puede optar por dejar que el programa se descargue automáticamente, pero la descarga es lenta y, a menudo, se desconecta.

4.2 Extraer datos faciales (elija uno de los siguientes tres métodos)

(1) Extraiga la imagen de la cara del video

  • Extraiga las caras en video1.mp4 y guarde las imágenes extraídas en el directorio ./faces/f1 en el directorio raíz. Ejecute el comando de la siguiente manera:
python faceswap.py extract -i src/video1.mp4 -o faces/f1/
  •  Extraiga las caras en video2.mp4 y guarde las imágenes extraídas en el directorio ./faces/f2 en el directorio raíz. Ejecute el comando de la siguiente manera:
python faceswap.py extract -i src/video2.mp4 -o faces/f2/

(2) Extraiga la imagen de la cara de la imagen

Las carpetas p1 y p2 almacenan estas imágenes múltiples con caras, que pertenecen respectivamente al usuario A y al usuario B. Los comandos son los siguientes:

python faceswap.py extract -i src/p1 -o faces/f1

python faceswap.py extract -i src/p2 -o faces/f2

(3) Extraiga datos faciales a través de la herramienta ffmpeg

ffmpeg -i src/video1.mp4 faces/f1/video1-%d.png

ffmpeg -i src/video2.mp4 faces/f2/video2-%d.png

Luego extraiga los datos de la cara a través del comando en (2)

4.3 Empezar a entrenar

El archivo del modelo se guarda en el directorio f1_to_f2_model del directorio raíz

python faceswap.py train -A faces/f1 -B faces/f2 -m f1_to_f2_model/

Una vez completada la capacitación, puede verla a través del comando ll de la siguiente manera:

总用量 641232
-rw-r--r-- 1 root root 328305920 6月  29 19:08 original.h5
-rw-r--r-- 1 root root 328305920 6月  29 19:07 original.h5.bk
drwxr-xr-x 3 root root        23 6月  29 17:49 original_logs
-rw-r--r-- 1 root root      2757 6月  29 19:08 original_state.json
-rw-r--r-- 1 root root      2756 6月  29 19:07 original_state.json.bk

4.4 Cambio de rostro basado en el modelo entrenado

(1) Conversión de imagen basada en el modelo entrenado

python faceswap.py convert -i src/video1.mp4 -o converted/ -m f1_to_f2_model/

(2) Sintetizar la imagen convertida en un video

ffmpeg -i video1-%6d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4

Los fps son los mismos que los del video original, que se pueden ver a través de ffmpeg -i video1.mp4

4.5 Visualización de efectos

Supongo que te gusta

Origin blog.csdn.net/lsb2002/article/details/131529634
Recomendado
Clasificación