Transformación instantánea del cabello: HairFastGAN revoluciona los cambios de peinado realistas y rápidos

Índice
  1. Introducción
  2. Trabajos relacionados
  3. Descripción general de la metodología
    1. Incrustar
    2. Alineación
    3. Mezcla
    4. Resultados de los experimentos
  4. Manifestación
    1. Clonar el repositorio e instalar Ninja
    2. Instalar algunos paquetes necesarios y los modelos entrenados previamente
    3. Prueba el intercambio de cabello con la imagen descargada
  5. Pensamientos finales
  6. Referencias

En el mundo de la inteligencia artificial, ahora puedes experimentar con diferentes peinados y crear un look creativo para ti. Ya sea que estés pensando en un cambio drástico o simplemente buscando un nuevo look, el proceso de imaginarte a ti mismo con un nuevo peinado puede ser emocionante y abrumador a la vez. Sin embargo, con el uso de la tecnología de inteligencia artificial (IA), el panorama de las transformaciones en el peinado está experimentando una revolución revolucionaria.

Imagina poder explorar una variedad infinita de peinados, desde cortes clásicos hasta diseños de los años 90, todo desde la comodidad de tu hogar. Esta fantasía futurista ahora es una realidad posible gracias a las plataformas de peluquería virtual impulsadas por IA. Al utilizar el poder de algoritmos avanzados y aprendizaje automático, estas plataformas innovadoras permiten a los usuarios probarse digitalmente varios peinados en tiempo real, lo que brinda una experiencia fluida e inmersiva como nunca antes se había visto.

En este artículo, exploraremos HairFastGAN y comprenderemos cómo la IA está revolucionando la forma en que experimentamos con nuestro cabello. Ya sea que seas un entusiasta de la belleza ansioso por explorar nuevas tendencias o alguien que esté considerando un cambio de imagen audaz para el cabello, únete a nosotros en un viaje a través del apasionante mundo de los peinados virtuales impulsados ​​por IA.

Introducción

Este artículo presenta HairFast, un nuevo modelo diseñado para simplificar la compleja tarea de transferir peinados de imágenes de referencia a fotos personales para probarlos virtualmente. A diferencia de los métodos existentes que son demasiado lentos o sacrifican la calidad, HairFast se destaca en velocidad y precisión de reconstrucción. Al operar en el espacio latente FS de StyleGAN e incorporar codificadores mejorados y técnicas de pintura, HairFast logra resultados de alta resolución en tiempo casi real, incluso cuando se enfrenta a diferencias de pose desafiantes entre las imágenes de origen y destino. Este enfoque supera a los métodos existentes, brindando un realismo y una calidad impresionantes, incluso al transferir la forma y el color del peinado en menos de un segundo.

Resultado de HairFast GAN ( Fuente )

Gracias a los avances en las redes generativas antagónicas (GAN) , ahora podemos usarlas para la edición semántica de rostros, lo que incluye cambiar peinados. La transferencia de peinados es un aspecto particularmente complicado y fascinante de este campo. Básicamente, implica tomar características como el color, la forma y la textura del cabello de una foto y aplicarlas a otra manteniendo intactos la identidad y los antecedentes de la persona. Comprender cómo funcionan estos atributos en conjunto es crucial para obtener buenos resultados. Este tipo de edición tiene muchos usos prácticos, ya sea que sea un profesional que trabaja con software de edición de fotos o simplemente alguien que juega a la realidad virtual o juegos de computadora.

El método HairFast es una solución rápida y de alta calidad para cambiar peinados en fotografías. Puede manejar imágenes de alta resolución y produce resultados comparables a los mejores métodos existentes. También es lo suficientemente rápido para un uso interactivo, gracias a su uso eficiente de codificadores. Este método funciona en cuatro pasos: incrustación, alineación, combinación y posprocesamiento. Cada paso es manejado por un codificador especial entrenado para hacer ese trabajo específico.

Trabajos relacionados

Los avances recientes en redes generativas antagónicas (GAN) , como ProgressiveGAN, StyleGAN y StyleGAN2, han mejorado enormemente la generación de imágenes, en particular en la creación de rostros humanos sumamente realistas. Sin embargo, lograr una edición del cabello totalmente controlada y de alta calidad sigue siendo un desafío debido a diversas complejidades.

Los distintos métodos abordan este desafío de distintas maneras. Algunos se centran en equilibrar la capacidad de edición y la fidelidad de la reconstrucción mediante técnicas de incrustación en espacios latentes, mientras que otros, como Barbershop , descomponen la tarea de transferencia de cabello en subtareas de incrustación, alineación y combinación.

Enfoques como StyleYourHair y StyleGANSalon buscan un mayor realismo al incorporar coincidencias de estilos locales y pérdidas de alineación de poses. Mientras tanto, HairNet y HairCLIPv2 manejan poses complejas y diversos formatos de entrada.

Los métodos basados ​​en codificadores, como MichiGAN y HairFIT, aceleran el tiempo de ejecución al entrenar redes neuronales en lugar de utilizar procesos de optimización. CtrlHair, un modelo destacado, utiliza codificadores para transferir color y textura, pero aún enfrenta desafíos con poses faciales complejas, lo que genera un rendimiento lento debido a un posprocesamiento ineficiente.

En general, si bien se han logrado avances significativos en la edición del cabello mediante GAN, aún quedan obstáculos por superar para lograr resultados uniformes y eficientes en diversos escenarios.

Descripción general de la metodología

Descripción general de HairFast: Inicialmente, las imágenes se someten a un módulo de incrustación para adquirir diferentes representaciones latentes y máscaras de segmentación. Luego, se utiliza el módulo de alineación para transferir la forma de peinado deseada y el módulo de combinación para el color de cabello deseado. Finalmente, en el paso de posprocesamiento, los detalles perdidos se restauran a partir de la imagen original cuando es necesario.

Este nuevo método para transferir peinados es muy similar al enfoque de Barbershop, sin embargo, todos los procesos de optimización se reemplazan con codificadores entrenados para una mayor eficiencia. En el módulo de incrustación, la representación de las imágenes originales se captura en espacios StyleGAN, como W+ para edición y espacio FS para reconstrucción detallada. Además, se utilizan máscaras de segmentación de rostros para su uso posterior.

Pasando al módulo de Alineación, la forma del peinado de una imagen a otra se realiza principalmente centrándose en cambiar el tensor F. Aquí, se completan dos tareas: generar la forma de peinado deseada a través del Módulo de Forma y ajustar el tensor F para volver a pintar después del cambio de forma.

En el módulo de fusión, se realiza el cambio de color del cabello de una imagen a otra. Al editar el espacio S de la imagen de origen con el codificador entrenado, esto se logra teniendo en cuenta las incrustaciones adicionales de las imágenes de origen.

Aunque la poscombinación de imágenes puede considerarse definitiva, se requiere un nuevo módulo de posprocesamiento. Este paso tiene como objetivo restaurar los detalles perdidos de la imagen original, lo que garantiza la conservación de la identidad facial y la mejora del realismo del método.

Incrustar

Para comenzar a cambiar un peinado, primero se convierten las imágenes en el espacio StyleGAN. Métodos como Barbershop y StyleYourHair hacen esto reconstruyendo cada imagen en el espacio FS a través de un proceso de optimización. En cambio, en esta investigación se utiliza un codificador FS entrenado previamente que proporciona rápidamente representaciones de imágenes en el espacio FS. Es uno de los mejores codificadores que existen y hace que las imágenes se vean realmente bien.

Pero aquí está el problema: el espacio FS no es fácil de manejar. Cuando se cambia el color del cabello con el codificador FS en Barbershop, no hace un gran trabajo. Por lo tanto, se utiliza otro codificador llamado E4E. Es simple y no es tan bueno para hacer que las imágenes se vean bien, pero es excelente para hacer cambios. A continuación, se mezcla el tensor F (que contiene la información sobre el cabello) de ambos codificadores para resolver este problema.

Alineación

En este paso se realiza el cambio de imagen del cabello, de modo que el cabello de una imagen se vea igual que el de otra. Para ello, se crea una máscara que delinea el cabello y luego se ajusta el cabello de la primera imagen para que coincida con esa máscara.

A algunas personas inteligentes se les ocurrió una forma de hacer esto llamada CtrlHair. Utilizan un codificador de formas para comprender las formas del cabello y las caras en las imágenes y un adaptador de formas para ajustar el cabello en una imagen para que coincida con la forma de otra. Este método suele funcionar bastante bien, pero tiene algunos problemas.

Un gran problema es que el Shape Adaptor está entrenado para manejar cabello y rostros en poses similares. Por lo tanto, si las poses son realmente diferentes entre las dos imágenes, puede estropear las cosas y hacer que el cabello se vea extraño. El equipo de CtrlHair intentó solucionar esto modificando la máscara después, pero no es la solución más eficiente. Para abordar este problema, se desarrolló una herramienta adicional llamada Rotate Encoder. Está entrenada para ajustar la imagen de forma para que coincida con la pose de la imagen de origen. Esto se hace principalmente modificando la representación de la imagen antes de segmentarla. No es necesario ajustar los detalles para crear la máscara, por lo que en este caso se utiliza una representación simplificada. Este codificador está entrenado para manejar poses complejas sin distorsionar el cabello. Si las poses ya coinciden, no estropeará los peinados.

Mezcla

En el siguiente paso, el enfoque principal es cambiar el color del cabello al tono deseado. Anteriormente, como sabemos, el método anterior de Barbershop era demasiado rígido y se intentaba encontrar un equilibrio entre los vectores de color de origen y los deseados. Esto a menudo daba como resultado ediciones incompletas y artefactos no deseados agregados debido a técnicas de optimización obsoletas.

Para mejorar esto, se agrega una arquitectura de codificador similar llamada HairCLIP que predice cómo cambia el estilo del vector del cabello cuando se le dan dos vectores de entrada. Este método utiliza capas de modulación especiales que son más estables y excelentes para cambiar estilos.

Además, estamos alimentando nuestro modelo con incrustaciones CLIP tanto de la imagen de origen (incluido el cabello) como de la parte de solo cabello de la imagen en color. Esta información adicional ayuda a preservar los detalles que podrían perderse durante el proceso de incrustación y se ha demostrado que mejora significativamente el resultado final, según nuestros experimentos.

Resultados de los experimentos

Los experimentos revelaron que, si bien el método CtrlHair obtuvo la mejor puntuación según la métrica FID, en realidad no tuvo un rendimiento tan bueno a nivel visual en comparación con otros enfoques de vanguardia. Esta discrepancia se produce debido a su técnica de posprocesamiento, que implicaba mezclar la imagen original con el resultado final mediante la combinación de Poisson. Si bien este enfoque fue favorecido por la métrica FID, a menudo resultó en artefactos de combinación notables. Por otro lado, el método HairFast tuvo un mejor paso de combinación, pero tuvo dificultades con los casos en los que hubo cambios significativos en los tonos faciales. Esto hizo que fuera difícil usar la combinación de Poisson de manera efectiva, ya que tendía a enfatizar las diferencias en los tonos, lo que generaba puntuaciones más bajas en las métricas de calidad.

En esta investigación se ha desarrollado un novedoso módulo de posprocesamiento, que es como una herramienta superpoderosa para arreglar imágenes. Está diseñado para manejar tareas más complejas, como reconstruir la cara y el fondo originales, arreglar el cabello después de mezclarlo y rellenar las partes faltantes. Este módulo crea una imagen realmente detallada, con cuatro veces más detalles que lo que usábamos antes. A diferencia de otras herramientas que se centran en la edición de imágenes, la nuestra prioriza hacer que la imagen se vea lo mejor posible sin necesidad de más ediciones.

Manifestación

Para ejecutar esta demostración, primero abriremos cualquier notebook y probaremos el código provisto. Sin embargo, para ejecutar la demostración, primero debemos clonar el repositorio e instalar las bibliotecas necesarias.

Clonar el repositorio e instalar Ninja

!wget https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip!sudo unzip ninja-linux.zip -d /usr/local/bin/!sudo update-alternatives --install /usr/bin/ninja ninja /usr/local/bin/ninja 1 --force## clone repo!git clone https://github.com/AIRI-Institute/HairFastGAN%cd HairFastGAN

Instalar algunos paquetes necesarios y los modelos entrenados previamente

from concurrent.futures import ProcessPoolExecutordef install_packages():    !pip install pillow==10.0.0 face_alignment dill==0.2.7.1 addict fpie       git+https://github.com/openai/CLIP.git -qdef download_models():    !git clone https://huggingface.co/AIRI-Institute/HairFastGAN    !cd HairFastGAN  git lfs pull  cd ..    !mv HairFastGAN/pretrained_models pretrained_models    !mv HairFastGAN/input input    !rm -rf HairFastGANwith ProcessPoolExecutor() as executor:    executor.submit(install_packages)    executor.submit(download_models)

A continuación, configuraremos un analizador de argumentos, que creará una instancia de la HairFastclase y realizará la operación de intercambio de cabello, utilizando la configuración o los parámetros predeterminados.

import argparsefrom pathlib import Pathfrom hair_swap import HairFast, get_parsermodel_args = get_parser()hair_fast = HairFast(model_args.parse_args([]))

Utilice el siguiente script que contiene las funciones para descargar, convertir y mostrar imágenes, con soporte para almacenamiento en caché y varios formatos de entrada.

import requestsfrom io import BytesIOfrom PIL import Imagefrom functools import cacheimport matplotlib.pyplot as pltimport matplotlib.gridspec as gridspecimport torchvision.transforms as Timport torch%matplotlib inlinedef to_tuple(func):    def wrapper(arg):        if isinstance(arg, list):            arg = tuple(arg)        return func(arg)    return wrapper@to_tuple@cachedef download_and_convert_to_pil(urls):    pil_images = []    for url in urls:        response = requests.get(url, allow_redirects=True, headers={"User-Agent": "Mozilla/5.0"})        img = Image.open(BytesIO(response.content))        pil_images.append(img)        print(f"Downloaded an image of size {img.size}")    return pil_imagesdef display_images(images=None, **kwargs):    is_titles = images is None    images = images or kwargs    grid = gridspec.GridSpec(1, len(images))    fig = plt.figure(figsize=(20, 10))    for i, item in enumerate(images.items() if is_titles else images):        title, img = item if is_titles else (None, item)        img = T.functional.to_pil_image(img) if isinstance(img, torch.Tensor) else img        img = Image.open(img) if isinstance(img, str | Path) else img        ax = fig.add_subplot(1, len(images), i+1)        ax.imshow(img)        if title:            ax.set_title(title, fontsize=20)        ax.axis('off')    plt.show()

Prueba el intercambio de cabello con la imagen descargada

input_dir = Path('/HairFastGAN/input')face_path = input_dir / '6.png'shape_path = input_dir / '7.png'color_path = input_dir / '8.png'final_image = hair_fast.swap(face_path, shape_path, color_path)T.functional.to_pil_image(final_image).resize((512, 512))  # 1024 - 512

Pensamientos finales

En nuestro artículo, presentamos el método HairFast para transferir cabello, que se destaca por su capacidad de ofrecer resultados de alta calidad y alta resolución comparables a los métodos basados ​​en optimización y al mismo tiempo operar a velocidades casi en tiempo real.

Sin embargo, como muchos otros métodos, este también está limitado por las formas limitadas de transferir peinados. Sin embargo, la arquitectura sienta las bases para abordar esta limitación en trabajos futuros.

Además, el futuro del peinado virtual mediante IA promete mucho y revolucionará la forma en que interactuamos con los peinados y los exploramos. Con los avances en las tecnologías de IA, se esperan herramientas de peluquería virtual aún más realistas y personalizables. Por lo tanto, esto conduce a experiencias de peinado virtual altamente personalizadas.

Además, a medida que la investigación en este campo siga mejorando, podemos esperar ver una mayor integración de herramientas de peluquería virtuales en varias plataformas, desde aplicaciones móviles hasta entornos de realidad virtual. Esta accesibilidad generalizada permitirá a los usuarios experimentar con diferentes looks y tendencias desde la comodidad de sus propios dispositivos.

En general, el futuro del peinado virtual mediante IA tiene el potencial de redefinir los estándares de belleza, empoderar a las personas para que se expresen de manera creativa y transformar la forma en que percibimos y nos relacionamos con el peinado. ¡Gracias!

Referencias

  • Documento de investigación original
  • Enlace de Github
SUSCRÍBETE A NUESTRO BOLETÍN 
No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion