[PYTHON] Je voulais convertir ma photo de visage en un style Yuyu.

1.Tout d'abord

Cet article est l'article du 24ème jour du Calendrier de l'Avent Yuyu-shiki 2019.

2. Ce que vous voulez faire

L'année dernière à Advent Calender, j'ai essayé la coloration automatique de dessins animés en noir et blanc avec CycleGAN. (Essayez de colorier des dessins animés avec CycleGAN-Exemple de style Yuyu-) CycleGAN est bon pour la conversion de style comme le changement de couleurs et de textures, mais il n'est pas bon pour la conversion de forme.

Par conséquent, cette année, en utilisant U-GAT-IT, qui est un GAN qui réalise à la fois la conversion de style et la conversion de forme, une illustration de style Yuyu à partir d'une photo de visage Générons.

L'image ressemble à ceci ↓ example.png (Extrait de mantan-web)

  1. U-GAT-IT
model.png

U-GAT-IT peut également effectuer une conversion de forme, ce à quoi CycleGAN n'était pas bon.

Voici les résultats publiés par l'auteur dans l'article. La plus à gauche est la photo originale, mais vous pouvez voir que les changements qui accompagnent la conversion de forme des chats en chiens sont également bien effectués. result.png

Tous les chiffres sont tirés de U-GAT-IT: Réseaux attentionnels génératifs non supervisés avec normalisation d'instance de couche adaptative pour la traduction d'image en image

4. Style Yuyu

スクリーンショット 2019-12-23 23.08.48.png [Yuyu-shiki](https://www.yuyushiki.net) est un manga à quatre images du Dr Komata Mikami, qui est en train de sérialiser dans Manga Time Kirara.

5. Apprentissage

L'apprentissage a été effectué au Google Colaboratory. Vous pouvez apprendre en le collant dans une cellule de notebook dans l'ordre de util-> ops-> UGATIT-> main depuis ce référentiel.

Cependant, lors de l'exécution avec Notebook, l'analyseur provoquera une erreur, changez-le comme suit.

#Commentez ce qui suit
#parser = argparse.ArgumentParser(description=desc)
#Omis à mi-chemin
#parser.add_argument(...)

#Ajoutez ce qui suit
!pip install easydict
import easydict
args = easydict.EasyDict({
       'phase': 'train',
       'light': False,
       'dataset': 'yuyu',
       ###Ce qui suit est omis
})

Placez le jeu de données directement sous le répertoire actuel comme indiqué ci-dessous.

└─ dataset
    └─ yuyu
        ├─ trainA  #Photo d'une femme pour apprendre(Détourné de selfie2anime)
        ├─ trainB  #Photos de personnages à la Yuyu pour apprendre
        ├─ testA   #Pour tester(ry
        └─ testB   #Pour tester(ry

Maintenant, quand vous êtes prêt, commencez à apprendre!

Ce modèle est très volumineux et même avec un ensemble de données d'environ 100 feuilles seulement, l'erreur selon laquelle il ne tient pas dans la mémoire s'est produite fréquemment. .. Dans un tel cas, si vous définissez «light» dans args sur True, la version light apprendra. (C'est un compromis avec la précision, mais ...) Cette fois, j'ai appris 1500 époques sur 100 itérations, ce qui est un peu surapprentissage.

** ○ Résultat ** Photo originale / photo du résultat de la conversion. female12.pngfemale12.png female77.pngfemale77.png female66.pngfemale66.png

C'est une image à la Yuyu, mais elle est subtile ...

6. À la fin

Cette fois, je n'ai pas obtenu les résultats escomptés. Je suis désolé de ne pas pouvoir bien faire ressortir les performances du modèle.

Je pense que le principal facteur est que l'ensemble de données de formation est trop petit. Je sens les limites des ressources. .. (Je veux que quelqu'un crée un ensemble de données Yuyu)
Demain est le dernier jour. Passez un bon Noël à tous!

Recommended Posts

Je voulais convertir ma photo de visage en un style Yuyu.
J'ai essayé l'apprentissage automatique pour convertir des phrases en style XX
Je veux INSÉRER un DataFrame dans MSSQL
J'ai créé un programme pour convertir des images en art ASCII avec Python et OpenCV
J'ai créé un code pour convertir illustration2vec en modèle Keras
Une histoire sur la volonté de modifier un peu le site d'administration de Django
[Chaîne de Markov] J'ai essayé de lire les citations en Python.
J'ai fait un script pour dire bonjour à mon Koshien
[Twitter] Je veux faire des tweets téléchargés (de mon compte) dans un beau CSV
J'ai essayé de transformer un fichier Python en un EXE (erreur de récursivité prise en charge)
Je voulais résoudre le problème ABC164 A ~ D avec Python
Je veux vérifier la position de mon visage avec OpenCV!
[Introduction à StyleGAN] J'ai joué avec "Une femme se transforme en Mayuyu" ♬
[Django] Je voulais tester lors du POST d'un fichier volumineux [TDD]
Convertir un PDF A4 en A3 toutes les 2 pages
Je voulais faire évoluer cGAN vers ACGAN
Convertir une chaîne en image
Outil pour convertir la configuration Juniper
Chaîne de hachage que je voulais éviter (1)
Je voulais générer une phrase comme "Fucking Rashomon" (ancienne forme)
J'ai écrit un code pour convertir quaternion en angle de graissage de type z-y-x avec Python
J'ai essayé de faire un diagnostic de visage AI pour les golfeuses professionnelles ①
J'ai essayé de créer un programme qui convertit les nombres hexadécimaux en nombres décimaux avec python
Mayungo's Python Learning Episode 6: J'ai essayé de convertir une chaîne de caractères en nombre
J'ai essayé de faire un diagnostic de visage AI pour les golfeuses professionnelles ②
J'ai trouvé un moyen de créer un modèle 3D à partir d'une photo.
J'ai créé un outil CLI pour convertir les images de chaque répertoire en PDF
Je souhaite convertir une table convertie en PDF en Python en CSV
[Aux messieurs sur Twitter] J'ai écrit un script pour convertir immédiatement .jpg-large en .jpg.
J'ai créé un réseau pour convertir des images noir et blanc en images couleur (pix2pix)
J'ai créé un script en python pour convertir des fichiers .md au format Scrapbox
J'ai créé un outil pour convertir Jupyter py en ipynb avec VS Code