[PYTHON] Expliquez et déplacez réellement le modèle SMIS qui peut «essayer virtuellement des vêtements» par apprentissage en profondeur

introduction

Une équipe de recherche de l'Université de technologie de Huazhong et de l'Université de Beijing en Chine a publié un article intitulé "Synthèse d'image sémantiquement multimodale" (SMIS) à la conférence CVPR2020. Selon cet article, vous pouvez changer le motif et la couleur des vêtements et des pantalons à partir d'une seule photo pour créer une image d'essai virtuelle. Dans cet article, nous utilisons une méthode basée sur l'apprentissage en profondeur qui classe les images par objet et remplace et synthétise partiellement les images.

Cette fois, je vais vous expliquer une brève explication du modèle SMIS et comment l'essayer. Si vous souhaitez le déplacer, veuillez consulter "Essayez de déplacer le modèle". Les détails de l'article sont les suivants. smis.gif

Papier: https://arxiv.org/abs/2003.12697 Page du projet: https://seanseattle.github.io/SMIS/ Github: https://github.com/Seanseattle/SMIS Vidéo: http://www.youtube.com/watch?v=uarUonGi_ZU

À propos du modèle

Afin de changer le motif / la couleur des vêtements, il est d'abord nécessaire d'étiqueter quelle partie est les vêtements / pantalons. DeepFashion est utilisé pour effectuer une segmentation sémantique qui associe des zones d'image à l'aide d'un ensemble de données qui étiquette les pièces de vêtements.

En ajustant avec le contrôleur en fonction de chaque classe de segmentation sémantique, vous pouvez convertir l'image uniquement dans la partie correspondante. De façon classique, dans une telle composition d'image, un procédé de construction d'un réseau de génération pour chaque classe et d'intégration des sorties de différents réseaux pour générer l'image finale a été utilisé.

Cependant, avec cette méthode, il y avait un problème que le temps d'apprentissage augmentait et la précision diminuait à mesure que le nombre de classes augmentait. La méthode SMIS résout ce problème avec GroupDNet (Group Decreasing Network), un réseau qui change le contrôle de classe de la convolution traditionnelle à la convolution de groupe et unifie le processus de génération en un seul modèle.

main.jpg

GroupDNet vous donne la possibilité de créer une intercorrélation entre différentes classes lorsqu'elles sont similaires entre les classes (la couleur de l'herbe et la couleur des feuilles sont similaires, etc.) et d'améliorer la qualité globale de l'image. Cela réduit également la quantité de calcul lorsqu'il existe de nombreuses classes. Cela a facilité la conversion des étiquettes sémantiques en différentes images et a donné des résultats de haute qualité, même pour des ensembles de données avec de nombreuses classes.

l_koya_sem2.png Figure 1 architecture GroupDNet (cité de [1])

La figure 2 montre une comparaison d'autres modèles. Il existe plusieurs indicateurs sur la manière d'évaluer la qualité de l'image générée dans le modèle de génération, dont l'un est la distance de départ de Fréchet (FID). Il s'agit d'un indice d'évaluation qui mesure la distance entre la distribution de l'image réelle et l'image générée. Dans ce FID, le résultat est à la pointe de la technologie par rapport aux autres modèles. Cependant, en termes de vitesse, il est de 12,2 FPS, ce qui est inférieur aux autres modèles.

スクリーンショット 2020-09-04 14.08.43.png Figure 2 Comparaison avec d'autres modèles (cité de [1])

Étant donné que cette méthode est une méthode de changement de style après la segmentation sémantique comme le montre la figure 1, elle n'est pas limitée à la mode, mais progressivement d'une image à une autre, comme changer un bâtiment en arbre, insérer un pari dans un endroit vide, etc. Il peut être appliqué de différentes manières, telles que le morphing qui se transforme en.

(Pour l'explication, j'en ai cité quelques-unes [2], il peut y avoir des explications manquantes ou incorrectes, veuillez donc commenter à ce moment-là)

Essayez de déplacer le modèle

Maintenant, déplaçons le modèle SMIS. L'équipe de recherche a publié le modèle implémenté dans Pytorch sur Github. J'ai créé un code qui fonctionne réellement avec Google Colaboratory. Vous pouvez vérifier le bloc-notes que j'ai créé à partir de l'URL suivante. Vous pouvez copier ce notebook sur votre lecteur et le faire exécuter. (Vous pouvez le déplacer simplement en exécutant les cellules dans l'ordre du haut) https://colab.research.google.com/drive/1HGqqOXxFKTSJibg2tQ-Shb9ArFiX-96g?usp=sharing

J'expliquerai également le code de collaboration créé dans Qiita.

Clone du référentiel

Clonez le référentiel (https://github.com/Seanseattle/SMIS) depuis Github.

!git clone https://github.com/Seanseattle/SMIS
%cd SMIS

Télécharger le modèle entraîné

Téléchargez le modèle formé à partir du lecteur Google suivant. https://drive.google.com/open?id=1og_9By_xdtnEd9-xawAj4jYbXR6A9deG Le modèle entraîné est décrit dans le README du référentiel. Pour télécharger directement à partir de Google Drive avec CUI, il est nécessaire de transmettre les informations de cookie avec wget, donc téléchargez-le par la méthode suivante (Pour savoir comment télécharger Drive à l'aide de cookie, cliquez ici]( Il est résumé à https://qiita.com/tommy19970714/items/3e6a2e8b9dc15982a5de)). Vous pouvez simplement ouvrir l'URL dans votre navigateur et la télécharger dans l'interface graphique.

!wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1og_9By_xdtnEd9-xawAj4jYbXR6A9deG' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1og_9By_xdtnEd9-xawAj4jYbXR6A9deG" -O smis_pretrained.rar && rm -rf /tmp/cookies.txt

Décompressez les données de conservation téléchargées et renommez le dossier.

!unrar x smis_pretrained.rar
!mv smis_pretrained checkpoints

Télécharger le jeu de données DeepFashion

Similaire à ce qui précède, téléchargez l'ensemble de données Deep Fashion à partir du lien Google Drive suivant. Contient des données de train et des données de test. Cette fois, je l'ai téléchargé uniquement pour l'utiliser comme données de test. https://drive.google.com/open?id=1ckx35-mlMv57yzv47bmOCrWTm5l2X-zD

!wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1ckx35-mlMv57yzv47bmOCrWTm5l2X-zD' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1ckx35-mlMv57yzv47bmOCrWTm5l2X-zD" -O deepfashion.tar && rm -rf /tmp/cookies.txt

Décompressez le fichier.

!tar -xvf deepfashion.tar

Installez les bibliothèques requises

Les bibliothèques utilisées dans ce référentiel sont résumées dans le fichier requirements.txt. Installez la bibliothèque dans requirements.txt.

!pip install -r requirements.txt

Exécutez le test du modèle

Tout ce que vous avez à faire est d'exécuter test.py pour que le modèle fonctionne. Dans le paramètre --gpu_ids, spécifiez l'ID gpu à utiliser. Vous pouvez vérifier l'identifiant gpu en appuyant sur la commande nvidia-smi. Le paramètre --dataroot indique où se trouvent les dossiers cihp_test_mask et cihp_train_mask du jeu de données deepfashion que vous venez de télécharger. Maintenant que je l'ai sauvegardé dans le même répertoire, j'ai spécifié ./.

!python test.py --name deepfashion_smis --dataset_mode deepfashion --dataroot ./ --no_instance \
--gpu_ids 0 --ngf 160 --batchSize 4 --model smis --netG deepfashion

Les images générées sont enregistrées dans un dossier dans results / deepfashion_smis / test_latest / images /. veuillez vous en assurer.

Vous pouvez voir qu'une telle image a été générée.

output1.pngoutput2.png output3.pngoutput4.png

À la fin

Cette fois, j'ai expliqué le modèle SMIS de pointe dans l'indice FID de conversion de style de vêtements de l'explication au mouvement réel. Le domaine des modèles d'apprentissage profond de la génération d'images est une série de surprises avec de nouveaux articles qui sortent chaque jour. C'est très amusant de découvrir ces dernières technologies. L'application de ce modèle est très claire et je pense que c'est une technologie dont les entreprises du secteur de la mode auront également besoin. J'espère que ces articles mèneront à l'application pratique de modèles d'apprentissage profond.

Je tweet à propos du modèle d'apprentissage en profondeur et du développement personnel sur Twitter → @ tommy19970714

Il peut y avoir des explications manquantes ou incorrectes pour la description du modèle, veuillez donc commenter à ce moment.

Les références

[1] ZHU, Zhen, et al. Semantically Multi-modal Image Synthesis. In: Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020. p. 5467-5476. [2] [ITmedia Deep learning facilite le changement de vêtements. Technologie «SMIS» qui ne remplace et synthétise qu'une partie de l'image](https://www.itmedia.co.jp/news/articles/2009/04/news027. html) [3] Aperçu des GAN progressifs / grands / de style et échelle d'évaluation des performances des GAN

Recommended Posts

Expliquez et déplacez réellement le modèle SMIS qui peut «essayer virtuellement des vêtements» par apprentissage en profondeur
Cours de Deep Learning pouvant être écrasé sur place
Masquer l'avertissement selon lequel zsh peut être utilisé par défaut sur Mac
Créez une IA qui identifie le visage de Zuckerberg grâce à l'apprentissage en profondeur ② (construction de modèles d'IA)
Mise en place d'un modèle de prédiction des taux de change (taux dollar-yen) par machine learning
J'ai essayé "Lobe" qui peut facilement entraîner le modèle d'apprentissage automatique publié par Microsoft.