[PYTHON] Essayez de générer une image de veste de type death metal avec DCGAN + grattez le site de base de données de métaux pour cela

Aperçu

comme son nom l'indique. Comme vous pouvez le voir sur la [page github de DCGAN](https://github.com/Newmu/dcgan_code «page github de DCGAN»), il semble que DCGAN puisse générer des jaquettes d'album fictives. Generated Album Covers Citation de l'image: * dcgan_code * Cela ressemble certainement à cela vu de loin. J'ai donc essayé de faire de même avec ma veste Death Metal préférée. Comme indiqué ci-dessous, il existe de nombreux styles de vestes de death metal qui ressemblent à l'horreur, à la fantaisie sombre ou ** sont **, mais pouvez-vous générer des images avec de telles caractéristiques?

Domination, by Morbid AngelSlowly We Rot, by ObituaryMortification by Mortification Citation de l'image: * Domination *, par Morbid Angel, * Slowly We Rot *, by Obituary //en.wikipedia.org/wiki/Slowly_We_Rot "Slowly We Rot, by nituary"), * Mortification *, by Mortification

Implémentation DCGAN par Torch

Here a publié une implémentation par Torch de DCGAN, où vous pouvez générer des images en utilisant vos propres images. (Je vous remercie!) Donc, le travail qui sera nécessaire cette fois sera de collecter autant d'images de pochettes de CD Deathmetal que possible.

Ici, cette fois, nous utiliserons Encyclopaedia Metallum, qui est un site de base de données pour les groupes de métal de l'est et de l'ouest. Ce site couvre la discographie de tous les groupes de metal, cette fois [Scraping](https://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A7 % E3% 83% 96% E3% 82% B9% E3% 82% AF% E3% 83% AC% E3% 82% A4% E3% 83% 94% E3% 83% B3% E3% 82% B0, " Qu'est-ce que le grattage? ") Et collectez des images. Pour le scraping, utilisez le script only_coverart_mining.py </ b> (le code est sur github) en utilisant le module de scraping python BeautifulSoup. Utilisation. Je n'entrerai pas dans les détails de ce script, mais sa fonction est d'accéder à la page de bande décrite dans le fichier texte input.txt </ b> pour les données d'entrée, qui en montre une partie ci-dessous, et de la libérer. L'image de la pochette de l'album est automatiquement collectée. Cette fois, seuls les groupes de death metal sont visés, mais les groupes rassemblés ici sont Liste des groupes de death metal sur Wikipedia anglais.

Ici, les nombres écrits avec le nom de bande dans input.txt </ b> sont des informations utilisées lorsqu'ils sont utilisés dans un autre projet, et l'explication ici est omise. Vous pouvez également ajouter des informations sur d'autres artistes à ce fichier, donc si vous voulez apprendre l'image de la veste de ce groupe aussi! Dans ce cas, veuillez l'ajouter vous-même.

input.txt


Aborted,0,Death
Cannibal_Corpse,0,Death
Immolation,0,Death
Deicide,0,Death
Suffocation,0,Death
...

Death Metal Scraping

$ python only_coverart_mining.py

Cela commencera automatiquement à gratter les bandes répertoriées dans input.txt </ b>. Encyclopaedia Metallum Cela prend un peu de temps car il y a des vérifications telles que la correspondance avec les données sur les données et si le fichier image est approprié, mais le grattage est sûr. Une fois terminé, les fichiers image de taille 128x128 sont enregistrés (la destination de sauvegarde est placée sous imgs / généré directement sous le répertoire courant, sauf indication contraire avec l'option --imgdir). Par défaut, les images de jaquettes ne sont collectées que pour les albums complets, mais les EP, les singles et les albums live peuvent également être collectés en spécifiant des options.

À la suite du grattage, 2057 photos de jaquettes ont été collectées (y compris EP et singles, à l'exclusion des albums live).

Exécutez DCGAN

Comme mentionné précédemment, DCGAN utilise Torch Implementation. Si l'environnement a été construit, comme indiqué sur cette page, tapez simplement la commande suivante pour commencer l'apprentissage (ici myimages est le répertoire parent des imgs).

$ DATA_ROOT=myimages dataset=folder th main.lua
Training Process

Lorsque vous exécutez le script, l'image générée et l'image d'entraînement sont affichées comme ceci, et tandis que le générateur et le discriminateur mettent progressivement à jour les paramètres, l'image générée sur le côté gauche devient comme ça (j'ai préparé une image GIF qui montre le changement en bas) ).

Résultats à mi-chemin

Si vous vous entraînez à environ 1000 époques, il semble que vous puissiez obtenir un peu comme ça, pour ainsi dire, un sentiment de death metal, sombre ou une image étonnamment effrayante. experiment1(7).jpg

Certains d'entre eux ont des logos de groupes ou des titres d'album dans les images! y a-t-il. logo

Modifications des images générées lorsqu'elles sont entraînées jusqu'à 5000 époques

Lorsque les conditions ont été modifiées par rapport à l'expérience ci-dessus (le nombre d'époques a été augmenté à 5000) et que l'apprentissage et la génération d'images ont été à nouveau effectués, les résultats suivants ont été obtenus. 1491319404dfKavNZhgXvi4Rq1491319397.gif

Image vers la fin de l'apprentissage (numéro d'époque: 4770) epoch@4770.jpg C'est très difficile à commenter, mais il semble qu'il y ait beaucoup d'images comme des peintures abstraites ...

Impressions, perspectives d'avenir

De loin, on dirait que vous le verriez dans le coin Death Metal d'un magasin de CD, mais quand vous le regardez correctement, c'est une image que vous ne comprenez pas très bien (enfin, il y a des vestes comme ça). Je ne sais pas combien d'images de veste ont été utilisées pour apprendre les photos de veste générées au début, mais était-il encore difficile d'en apprendre suffisamment avec les 2000 environ utilisés cette fois? À l'avenir, j'aimerais voir comment les résultats changeront en augmentant le nombre d'images d'entraînement. Aussi, bien que j'aie choisi le Death Metal comme exemple extrême cette fois, j'aimerais faire la même expérience avec des images de jaquettes de power metal, de black metal et de slash metal.

Code etc.

Tous les fichiers nécessaires au scraping sont sur github. Je veux une collection d'images de veste en métal! Dans ce cas, s'il vous plaît.

Recommended Posts