Jules Aubert
Transcafodeur : Transforme le café en code

Accueil > Côté dév > Google Deep Dream : l’installation maison

Google Deep Dream : l’installation maison

lundi 13 juillet 2015, par Jules

Depuis quelques jours, la toile est devenues folle après la publication du réseau neuronale de Google. Cet outil de reconnaissance d’images est publique et gratuit. Le but de cet article est de vous aider à l’installation d’une machine, pour ne pas passer par des sites en ligne.

Mes explications sont destinées à Windows et Linux. Il reste une possibilité pour Mac OS X mais je ne garanti pas le fonctionnement.

Tout d’abord, le lien de référence que j’ai utilisé.
What are deepdream images ? How do I make my own ? Can I do audio/video ? Why are there dogs everywhere ?!

Je tiens à dire que mon article n’est pas qu’une simple traduction des liens qui suivent, mais toutes les opérations que j’ai effectué pour le bon fonctionnement de Deep Dream sur mes machines. Je me suis heurté à des problèmes en suivant les instructions sur Internet, mais à force de recherches et de tests, j’ai réussi à faire fonctionner le programme.

Windows

Newbie Guide for Windows

Commençons par télécharger Vagrant (n’utilisez pas le lien de reddit, la version n’est plus à jour)
https://www.vagrantup.com/downloads.html
Installez le, ça peut prendre quelques minutes, redémarrez.
Téléchargez image-dreamer sur Github, utilisez le bouton « Download ZIP » sur le côté
https://github.com/Dhar/image-dreamer
Installez maintenant Virtualbox
https://www.virtualbox.org/wiki/Downloads (je possède à ce jour la version 5.0.0)
Enfin, installez OpenSSH
http://sourceforge.net/projects/sshwindows/files/latest/download

Vous avez tous les outils en main... ou presque. Selon votre version de Windows, il se peut que vous n’ayez pas Windows PowerShell, cherchez le dans le menu Démarrer, s’il n’y est pas, téléchargez-le ici

Allez dans le répertoire

et dézippez l’archive image-dreamer-master.zip téléchargée précédemment, dedans. Renommez le répertoire image-dreamer-master par image-dreamer

Maintenant allez dans le répertoire image-dreamer, et éditez avec un éditeur de texte le fichier Vagrantfile, il y aura deux choses à changer.

Lancez maintenant Windows PowerShell, et exécutez cette série de commandes :

$env:Path += ";C:\Program Files (x86)\OpenSSH\bin"
cd C:\Hashicorp\Vagrant\bin\image-dreamer
vagrant up

Attendez quelques minutes le temps que l’environnement Vagrant s’installe.
Exécutez maintenant.
vagrant ssh
Appuyer sur Entrée quand il vous est demandé « Enter passphrase for key ». Le mot de passe quant à lui est tout simplement

Ça devient maintenant technique, suivez bien mes instructions et tout ira bien !
J’ai mis en ligne un script qui automatisera le plus possible l’installation. Exécutez ces commandes pour le télécharger :

cd ~/
wget http://jules-aubert.info/_OLD/deepdream/install-deepdream-win.sh
chmod +x install-deepdream-win.sh
./install-deepdream-win.sh

Renseignez le mot de passe (toujours « vagrant »), et attendez que l’installation se finisse. A un moment donné, le script vous demandera le nombre de cœurs que vous souhaités allouer. C’est le seul moment où vous interagissez avec celui-ci.
Allez maintenant dans le répertoire /vagrant/
cd /vagrant/
Retour sur Windows, copiez votre image dans le répertoire.

Nommez la photo input.jpg, attention, elle ne doit pas être trop grande (à vous de jouer avec différentes résolutions). Selon ce que vous avez alloués en mémoire et CPU dans le fichier Vagrantfile, l’opération pourra mettre quelques minutes à s’effectuer.
Il existe différentes couches de neurones, ce qui permet "d’appliquer des filtres". tout d’abord, un passage simple dans le programme.
python dreamify.py input.jpg output.png
Si vous voyez quelque chose qui ressemble à cette image, c’est que tout fonctionne !

PNG - 83.5 ko

Dans votre répertoire

vous devrez trouver une image output.png réseau-neuronalement transformée !

Maintenant les différentes couches neuronales. La commande précédente exécute plus précisément ceci :
python dreamify.py input.jpg output.png "inception_4c/output"
Il est possible de changer le dernier paramètre pour avoir d’autres effets.

Il existe cinq couches neuronales, et il existe plusieurs paramètres pour chaque couches.

Le plus simple pour avoir des exemples visuels est de suivre ce lien qui donne plusieurs possibilités. Par exemple le lien “inception_4d” affiche plusieurs photos, la deuxième a reçu comme paramètre "inception_4d/1x1" (on le voit en bas à gauche), la commande complète était donc
python dreamify.py input.jpg output.png "inception_4d/1x1"
Pour aller plus vite, je vous présente donc la liste des couches neuronales !
Il ne vous reste plus qu’à expérimenter !

Quand vous aurez fini, exécutez ces deux commandes pour arrêter Vagrant :

exit
vagrant halt

Pour y retourner il suffira d’exécuter :

cd C:\Hashicorp\Vagrant\bin\image-dreamer
vagrant up
vagrant ssh

Linux

Pour Linux, j’ai eu beaucoup plus de mal. Il existe des multiples façons d’installer Deep Dream mais à chaque fois il y avait un soucis dans le tutoriel. J’ai donc tout simplement réadapté les instructions de Windows sur Linux.

Tout d’abord, on télécharge le script qui va bien.

cd ~/
wget http://jules-aubert.info/_OLD/deepdream/install-deepdream-ubuntu.sh
chmod +x install-deepdream-ubuntu.sh
./install-deepdream-ubuntu.sh

On laisse l’installation se faire, le script vous demandera le nombre de cœurs à allouer. Il ne fera rien tant que vous ne lui répondrez pas.

A la fin de l’installation, il suffit d’exécuter cette série de commandes (j’ai très légèrement modifié le code python original qui utilisait Vagrant) :

cd ~/
cd image-dreamer
rm dreamify.py
wget http://jules-aubert.info/_OLD/deepdream/dreamify.py

Si vous souhaitez changer le répertoire image-dreamer, il faudra modifier la ligne 19 du fichier python pour que la variable model_path soit bonne. Si vous êtes sur Linux, vous devriez y arriver tout seul.

Si vous avez sauté la partie Windows, voici comment utiliser le programme.
Placer une image nommée input.jpg dans le répertoire image-dreamer. Elle ne doit pas être trop grande. Jouez avec différentes résolutions pour tester.
Exécutez :
python dreamify.py input.jpg output.png
Après l’exécution, vous devrez trouver une image output.png réseau-neuronalement transformée !

Maintenant les différentes couches neuronales. La commande précédente exécute plus précisément ceci :
python dreamify.py input.jpg output.png "inception_4c/output"
Il est possible de changer le dernier paramètre pour avoir d’autres effets.

Il existe cinq couches neuronales, et il existe plusieurs paramètres pour chaque couches.

Le plus simple pour avoir des exemples visuels est de suivre ce lien qui donne plusieurs possibilités. Par exemple le lien “inception_4d” affiche plusieurs photos, la deuxième a reçu comme paramètre "inception_4d/1x1" (on le voit en bas à gauche), la commande complète était donc
python dreamify.py input.jpg output.png "inception_4d/1x1"
Pour aller plus vite, je vous présente donc la liste des couches neuronales !
Il ne vous reste plus qu’à expérimenter !

PNG - 991.7 ko

Mac OS X

Essayez ce lien : https://www.reddit.com/r/deepdream/comments/3cawxb/what_are_deepdream_images_how_do_i_make_my_own/
Si ça ne fonctionne pas, un autre site doit avoir la solution.