Visión por ordenador: Python Face Swap y Quick Deepfake en Colab
Intercambio de caras personalizado usando Python y OpenCV y animación de imágenes Deepfake usando el papel 'Modelo de movimiento de primer orden' en Colab
Lo que aprenderás
Visión por ordenador: Python Face Swap y Quick Deepfake en Colab
- Aplicación de intercambio de rostros personalizada basada en Python con imagen, video y cámara. Vídeos de deepfake basados en el papel de animación de imagen de modelo de movimiento de primer orden
Requisitos
- Una ordenador de configuración decente (preferiblemente Windows) y un entusiasmo por investigar con la tecnología Deepfake
Descripción
Hola y bienvenido a mi nuevo curso 'Python Face Swap & Quick Deepfake using Google Colab'
Ya sabes, hay una vieja frase que dice 'ver para creer'. Pero en el mundo de 'Deepfake' lo que vemos no siempre es cierto. Definamos deep fake con la ayuda de un video de ejemplo. Aquí es.
Usé solo una foto del tamaño de una estampilla de estas personas para crear estos videos. Sí, has escuchado bien. Con solo una imagen de la cara y unos minutos de tiempo con una ordenador normal, puedes crear deepfake de cualquier persona. Incluso puedes hacer que los muertos hablen o incluso canten para ti.
¡Sí! Prepárate para ser sorprendido. Antes de continuar, permítame explicarle la lista de contenidos que se incluyen en este curso. Este curso se divide exactamente en dos mitades.
En la primera mitad, crearemos una aplicación básica de intercambio de rostros basada en Python. Antes de continuar, tendremos una introducción a la técnica deep fake, sus aplicaciones, ventajas y desventajas. Luego tenemos que preparar nuestra ordenador con todas las dependencias instaladas. Instalaremos Anaconda, la plataforma y el IDE para nuestra programación en Python. Más adelante, habrá algunas sesiones opcionales para aquellos que quieran aprender los conceptos básicos del lenguaje de programación Python.
Visión por ordenador: Python Face Swap y Quick Deepfake en Colab
Más tarde instalaremos el resto de las dependencias necesarias para construir nuestra aplicación personalizada de intercambio de caras de Python. Después de eso, escribiremos el código de Python línea por línea para completar todo el programa con más de 300 líneas. Alternativamente, también puede descargar el código completo desde el enlace de Google Drive proporcionado en la última sesión de este curso. Al principio, haremos el intercambio de caras utilizando dos imágenes estáticas. Uno como imagen de origen y el otro como imagen de destino. Posteriormente lo probaremos para video en tiempo real desde la cámara web de nuestra ordenador. Y luego lo modificaremos para que funcione con un video pre-guardado guardado en nuestra ordenador.
En los ejemplos, puede ver que este era solo un programa básico de intercambio de rostros y no es del todo perfecto. Lo estábamos haciendo solo para aprender cómo funcionan las cosas detrás de escena.
Más adelante, procederemos a implementar deepfake basado en un artículo llamado 'Modelo de movimiento de primer orden para animación de imágenes' presentado a la Universidad de Cornell por Aliaksandr Siarohin, Stéphane Lathuilière, Sergey Tulyakov, Elisa Ricci y Nicu Sebe
Dado que entrenar un deepfake implica costosas GPU, tenemos un plan alternativo para usar la GPU gratuita de Google Colab. Prepararemos nuestra unidad de Google creando carpetas y cargando el video de conducción de muestra, en función del cual la imagen de destino debe ser animada y también las imágenes de destino o las imágenes de origen.
Además, descargaremos una copia de la demo de Google Colab Notebook y nos conectaremos con Google Drive. Luego, clonaremos el repositorio de modelos de movimiento de primer orden de Google Drive.
Más adelante también procederemos a clonar el repositorio de alineación de caras. Lo instalaremos y configuraremos en nuestro colab de Google. Luego, moveremos los archivos a las carpetas correspondientes y comenzaremos a recortar el video de conducción usando un programa de Python incorporado.
Después de eso, descargaremos el gráfico de inferencia congelado del modelo ya entrenado en nuestra unidad de Google. Y ahora todo está listo para continuar con la animación de las imágenes de origen basadas en el video de conducción. Una vez completado descargaremos el video animado. También haremos lo mismo con algunas de las otras imágenes de origen.
El video animado no tendrá audio. Entonces, tenemos que mezclar el audio con cualquier herramienta de edición de video gratuita o de código abierto disponible en línea. Lo haremos en nuestra próxima sesión y finalmente, tenemos todos los videos animados de deepfake con audio incluido.
Como sesión final, también discutiremos cómo podemos ahorrar el tiempo de GPU gratuito limitado que ofrece Google y la solución si se excede el tiempo de GPU.
Solo una palabra más antes de concluir. Por favor, haga uso de los contenidos y técnicas mencionados en este tutorial de manera muy responsable. Está destinado solo para fines de aprendizaje e investigación. Yo, como instructor o la plataforma en la que imparto este curso, no seré responsable del uso ilegal o irresponsable de esta técnica.
Eso es todo acerca de los temas que se incluyen actualmente en este curso rápido. El código, las imágenes y los pesos utilizados en este curso se han cargado y compartido en una carpeta. Incluiré el enlace para descargarlos en la última sesión o en la sección de recursos de este curso. Eres libre de usar el código en tus proyectos sin hacer preguntas.
Además, después de completar este curso, se le proporcionará un certificado de finalización del curso que agregará valor a su cartera.
Eso es todo por ahora, nos vemos pronto en el aula. Feliz aprendizaje y diviértete.
Bibliografías y créditos de referencia
- Actas del NIPS - Modelo de movimiento de primer orden para animación de imágenes - Aliaksandr Siarohin, Stéphane Lathuilière, Sergey Tulyakov, Elisa Ricci, Nicu Sebe
- Universidad de Cornell - Visión por ordenador y reconocimiento de patrones - Modelo de movimiento de primer orden para animación de imágenes
- Github - AliaksandrSiarohin - modelo de primer orden
- Páginas de Github - Modelo de movimiento de primer orden para animación de imágenes
- Aprenda OpenCV - Triangulación de Delaunay y Diagrama de Voronoi usando OpenCV
- Aprenda OpenCV - Face Swap usando OpenCV - Satya Mallick
- pysource - Intercambio de rostros - Sergio Canu