Créez vos propres «peintures neurales» avec DeepStyle et Ubuntu

Créez vos propres «peintures neurales» avec DeepStyle et Ubuntu / Future Tech

Les réseaux de neurones peuvent faire beaucoup de choses. Ils peuvent interpréter les images, comprendre nos voix. 6 Fonctionnalités de Google Now qui vont changer votre façon de chercher 6 Fonctionnalités de Google Now qui vont changer votre façon de chercher Vous utilisez peut-être déjà Google Now sur votre appareil Android, mais obtenez-vous tout ce que vous pouvez il? Connaître ces petites fonctionnalités peut faire toute la différence. Lisez plus et traduisez des conversations Fonctionnement du traducteur Star Trek de Skype Fonctionnement du traducteur Star Trek de Skype La nouvelle fonctionnalité de traduction de Skype offre quelque chose de rêvé depuis Star Trek - un moyen facile de communiquer entre plusieurs langues. Lire la suite . Mais saviez-vous qu'ils peuvent aussi peindre?

Un document de recherche récent (intitulé “Un algorithme neural de style artistique“) a lancé une série de discussions en ligne avec des exemples visuels saisissants. L'article traite essentiellement d'une technique permettant de former un réseau de neurones profonds Microsoft contre Google: qui dirige la course à l'intelligence artificielle? Microsoft vs Google - Qui dirige la course à l'intelligence artificielle? Les chercheurs en intelligence artificielle font des progrès tangibles et les gens recommencent à parler sérieusement de l'IA. Les deux titans menant la course à l'intelligence artificielle sont Google et Microsoft. Lisez-en plus pour séparer le style artistique de la structure de l'image et combinez le style d'une image avec la structure d'une autre. Le résultat de tout cela est que vous pouvez former un vaste réseau de neurones pour transformer les photographies en “peintures neurales” qui semblent avoir été peints par des artistes célèbres - “contrefaçons numériques,” pour ainsi dire.

Voici quelques exemples de l'article. La première image est l'original. Les images les plus récentes sont les résultats générés. La peinture à partir de laquelle le style a été échantillonné est montrée en miniature..

Les chercheurs d'origine n'ont pas publié leur code, malheureusement. Cependant, certains programmeurs intrépides ont répliqué leurs résultats au cours des derniers jours et leur code est disponible, open source sur Internet. Tout ce dont vous avez besoin pour l'exécuter est une machine Linux et un peu de patience.

Aujourd'hui, je vais vous expliquer comment faire cela et vous montrer certains de mes propres résultats. Vous pouvez considérer cela comme une suite libre de notre didacticiel DeepDream - Créez vos propres rêves de fièvre artificielle avec "DeepDream" de Google. Créez vos propres rêves de fièvre artificielle avec "DeepDream" de Google. Avez-vous vu les images fantaisistes sortant de DeepDream? voulez vous faire le votre? Cherchez pas plus loin! Lire la suite . C'est un peu compliqué, mais n'importe qui avec une machine Linux peut suivre - aucune expérience de codage requise.

J'ai transformé un light painting Picasso en un tableau de style Picasso avec #DeepStyle! pic.twitter.com/cjkEoIhVcF

- James Blaha (@jamesblaha) 5 septembre 2015

Configuration du logiciel

Tout d’abord, si vous n’êtes pas très pressé ou que vous n’avez pas de machine Linux, vous pouvez toujours jouer avec DeepStyle en utilisant le bot Twitter DeepForger (envoyez-lui une image et un style, et il finira par vous répondre avec les résultats vouloir). Si vous souhaitez traiter plus d'images rapidement (et avec davantage de contrôle sur les résultats), lisez la suite du didacticiel..

Tout d’abord, assurez-vous d’avoir une copie à jour de Ubuntu (14.04 est ce que j'ai utilisé). Vous devriez avoir au moins quelques Go d'espace disque supplémentaire. Pour plus d'informations, consultez notre tutoriel sur le double démarrage d'Ubuntu aux côtés de Windows Tired Of Windows 8? Comment faire un double démarrage Windows et Ubuntu fatigué de Windows 8? Comment effectuer un double démarrage Windows et Ubuntu Si vous découvrez que Windows 8 n’est pas tout à fait votre tasse de thé et que vous n’avez pas la possibilité de le rétrograder, il peut être judicieux de procéder à un double démarrage avec Linux pour avoir une alternative… Lire la suite. Vous aurez également besoin de privilèges root, alors assurez-vous de le faire avant de continuer..

Outils de base

Droit du bâton, ceci est un projet open-source, donc nous allons vouloir avoir Git installée. Git est la référence en matière de logiciel de contrôle de version Qu'est-ce que Git et pourquoi vous devez utiliser le contrôle de version si vous êtes développeur? Qu'est-ce que Git et pourquoi vous devez utiliser le contrôle de version si vous êtes un développeur? En tant que développeurs Web, la plupart du temps nous avons tendance à travailler sur des sites de développement locaux, puis il suffit de tout télécharger lorsque nous avons terminé. C'est bien quand c'est juste vous et que les changements sont petits,… Lire la suite. Presque tous les projets open source intéressants à connaître sont hébergés sur Github.

Pour télécharger et installer Git, ouvrez simplement un terminal et tapez “sudo apt-get install git” et accepter les demandes de l'installateur.

Suivant: nous allons mettre en place des outils de base nécessaire pour faire fonctionner le logiciel.

Tout d'abord, installez Lua. C'est le langage dans lequel l'outil est écrit. C'est assez simple. Il suffit de taper “sudo apt-get install lua5.2” et suivez le processus d'installation.

Deuxièmement, nous allons avoir Luarocks. C'est l'outil qui facilite l'installation d'autres outils (vous n'aimez pas Linux?). Pour celui-ci, tapez “sudo apt-get install luarocks” et suivez les étapes d'installation.

Troisièmement, nous allons installer Luajit. C'est un compilateur juste à temps pour Lua qui simplifiera un peu nos vies. Il suffit de taper “sudo apt-get install luajit.”

Jusqu'ici tout va bien.

Je suis un bot qui crée des contrefaçons à partir de vos photos à la manière de peintres célèbres. Cliquez pour les instructions ci-dessous! pic.twitter.com/3MpThDNwRE

- The Deep Forger (@DeepForger) 5 septembre 2015

Cadres

Ensuite, nous allons installer Torch, un framework d’informatique scientifique et d’apprentissage automatique qui constitue l’ossature de l’application. Malheureusement, celui-ci ne peut pas être installé avec apt-get (le gestionnaire de paquets Ubuntu standard).

Heureusement, ils ont un programme d’installation d’une ligne qui utilise une magie en ligne de commande. Retournez à votre terminal et entrez “curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-all | frapper“.

Lorsque vous avez terminé, tapez “luajit -ltorch“. Cela fera apparaître l'interface de la torche et vérifiera que tout a été installé correctement.

Sortir de cela.

Maintenant, nous allons installer loadcaffe - un paquet spécifique au réseau de neurones. Installez sa seule dépendance en tapant “sudo apt-get install libprotobuf-dev protobuf-compiler“. Ensuite, vous pouvez installer le paquet lui-même en utilisant “sudo luarocks install loadcaffe ".

@Johnicholas Votre panne de faux, avec style de l'école de Rembrandt van Rijn. #DigitalArt #StyleNet pic.twitter.com/pf0sZxWkaT

- The Deep Forger (@DeepForger) 7 septembre 2015

Double vérification des dépendances

Enfin, nous allons mettre à jour de manière préventive certains éléments pour que tout se passe bien..

Type “sudo luarocks install image” pour vous assurer que votre paquet d’image est à jour. Ensuite, entrez “luarocks install nn” qui fera la même chose pour votre paquet 'nn'.

Installation de Deep Style

Bien! À ce stade, nous sommes prêts à installer le logiciel lui-même. Pour des raisons de propreté, créez un nouveau dossier dans votre répertoire personnel («mkdir DeepStyle»). Puis entrez-le en utilisant “cd Deepstyle“. Maintenant tapez “sudo git clone https://github.com/jcjohnson/neural-style.git ".

Ensuite, nous devons télécharger le modèle. Faire une tasse de café ou quelque chose, ça va prendre un certain temps. Retour au terminal et tapez “modèles sudo sh / download_models.sh“. Cela lancera un processus de téléchargement long et complexe. Si cela échoue à cause d'erreurs d'autorisation, essayez de vous donner des autorisations de lecture-écriture sur les dossiers appropriés, à l'aide de chmod..

@ 44thats44oars a commandé ce #ProceduralArt #NeuralArt. pic.twitter.com/tbMH7gsvc8

- Le forgeron profond (@DeepForger) 6 septembre 2015

Utiliser le style profond

Ok, nous sommes prêts à partir. Utiliser le logiciel est assez simple.

Assurez-vous que vous êtes dans le DeepStyle / répertoire de style neural dans le terminal. Maintenant, vous allez avoir besoin d’images sur lesquelles travailler. Téléchargez-les sur Internet (ou autre), puis copiez-les dans le répertoire DeepStyle / dossier de style neuronal en utilisant le navigateur de fichiers.

Vous pouvez maintenant utiliser la ligne de commande pour traiter des images individuelles. Le format est assez simple:

th neural_style.lua -style_image YOURPAINTINGHERE.jpg - content_image YOURPHOTOHERE.jpg -gpu -1

(Évidemment, vous aurez besoin de remplacer les morceaux dans ALL CAPS par les noms de vos fichiers).

Cela fera démarrer le réseau de neurones. Il durera environ une heure et créera de nouvelles images partiellement convergées toutes les quelques minutes jusqu'à la fin. le -gpu -1 le drapeau l'empêche d'essayer d'accéder à votre GPU.

Après plusieurs heures d’essais (et de bricolage du système d’exploitation à plusieurs reprises), j’ai été incapable de faire en sorte que Ubuntu et CUDA jouent bien avec mon GPU (une NVIDIA GTX 970). Si vous avez plus de chance avec cela, vous voudrez installer CUDA et cudann.torch (voir le repo de github pour plus d’informations). Sinon, ça ira - cela fonctionnera toujours avec votre processeur; ça va juste être un peu plus lent.

Si vous avez des problèmes pour que tout cela fonctionne, il suffit de me demander dans les commentaires, et je ferai de mon mieux pour vous aider.

Résultats

Voici quelques images que j'ai générées au cours des derniers jours. Les résultats sont mitigés, mais beaucoup d'entre eux sont assez impressionnants.

Cliquez ici pour une résolution complète..

Celui-ci est de mon ami Zack en randonnée à Yellowstone. Le style provient d'une peinture abstraite, créée par Theresa Paden. J'étais curieux de voir comment le système utiliserait une image sans aucune structure. Les résultats sont plutôt nets et vous pouvez certainement voir les similitudes avec l'image de style.

Cliquez ici pour une résolution complète..

Celui-ci est une gracieuseté de l'un de mes artistes préférés, Charles Demuth (voir: Encens d'une nouvelle église et la figure 5 en or). Fait intéressant, Demuth est l’une des principales inspirations visuelles de l’art de Team Fortress 2: Team Fortress 2: le jeu gratuit de Steam à jouer Vous devez jouer à Team Fortress 2: le jeu gratuit de Steam que vous devez jouer est Team Fortress 2 juste un jeu rapide pour tester les graphiques et les performances, ou est-ce un jeu qui mérite d'être joué à plusieurs reprises? Lire la suite, comme vous pouvez le voir sur l'image de style.

Je lui ai donné une image de Jersey City que j'ai trouvée sur Wikimedia. Les résultats sont… plutôt bons. Cela ne reflétait pas l’angularité du style de Demuth, mais cela reflétait certainement le look doux et texturé et la palette de couleurs.

Cliquez ici pour une résolution complète..

Celui-ci est une tentative pour générer un O'Keeffe synthétique en utilisant une image assez banale de certaines fleurs que j'ai trouvées. Les résultats sont, franchement, spectaculaires. Esthétiquement, c'est l'un de mes résultats préférés. La richesse des couleurs et des formes d'O'Keeffe transparaît clairement. Les bords superposés des pétales de fleurs deviennent les bords des feuilles en arrière-plan. Les fleurs elles-mêmes se dissolvent en couleurs, devenant presque abstraites.

Ce serait un bon tableau si un humain le faisait. Je suis très tenté de passer quelques jours à rendre une version plus haute résolution de celle-ci et à la faire encadrer..

Cliquez ici pour une résolution complète..

Voici mon amie Shannon dans son costume d'Halloween, en guise d'imprimé Picasso. Fait intéressant, l'appareil a choisi de peindre la partie inférieure de son visage en blanc (similaire à la disposition des couleurs de la pièce de Picasso). Je ne suis pas sûr que ce soit une coïncidence ou non, mais les résultats sont frappants. Il semble également avoir correctement identifié les cheveux de Shannon sur le côté gauche et les avoir redessinés en utilisant la couleur et le dessin au trait des cheveux dans l'image de style. Idem pour son chapeau.

C'est l'une des pièces où les limites de la technique commencent à devenir claires. Si Picasso était en train de peindre Shannon, il aurait jeté la structure de son visage et biaisé les traits pour obtenir l’effet qu’il voulait. Ce système ne comprend pas ces concepts de haut niveau et ne peut imiter que les aspects superficiels du style, comme les lignes sombres, angulaires et la palette de couleurs..

Cliquez ici pour une résolution complète..

Assez simple: une image de la tour Eiffel et celle de Van Gogh autre Nuit étoilée. Il rend bien les nuages ​​dans un style Van Gogh-ey, malgré l'absence de nuages ​​dans l'image d'origine. Il fait également un bon travail de traduction de la scène du jour à la nuit.

Je ne savais pas pourquoi il avait décidé de transformer la pointe de la tour Fiffel en un pilier de feu. Ça a l'air cool, mais ce n'est pas vraiment justifiable à partir des données d'entrée. Ensuite, j'ai réalisé que l'image de style comporte treize longues bandes jaunes verticales, sous la forme de reflets dans l'eau. C'est un cluster assez massif, avec si peu de données d'entraînement. La pauvre chose a probablement appris que tout bord vertical fortement contrasté doit faire partie de ces réflexions. Vous pouvez voir plus de rayures verticales superflues dans les nuages.

Cliquez ici pour une résolution complète..

Même peinture de Van Gogh, mais cette fois je lui ai donné quelques étoiles à peindre. Dans ce cas, la partie des piliers de la nébuleuse de l'Aigle. J'aime les résultats - même si, encore une fois, vous pouvez voir son obsession pour les rayures jaunes. Chaque partie verticale du pilier devient une ligne jaune brillante et vacillante. Il est également clairement contrarié par le vert, qui ne figurait pas dans les données d'entraînement, et fait de son mieux pour s'en débarrasser au profit du bleu et du noir..

La technologie

Certains résultats sont extrêmement convaincants, bien que la technique présente des limites claires. Certaines images ont une composition moche, et le système a de la difficulté avec des artistes plus abstraits comme Picasso - qui, comme on le sait, aimait déformer son sujet en dispersant ses traits. L'algorithme détecte ses lignes angulaires et ses couleurs contrastées, mais reste esclave des valeurs de pixels de l'image. Il n'a pas la compréhension dont vous auriez besoin pour vous éloigner trop du matériel source.

Ce qui me passionne dans tout ça, c'est que je ne pense pas que ces limitations soient fondamentales.

L'approche utilisée ici - former un réseau sur une image et l'utiliser pour en construire une autre - est fondamentalement une sorte de piratage. Cela donne au réseau très peu de données pour travailler. Une version plus avancée de cette application utiliserait un réseau contenant des informations sur de nombreuses peintures, et peut-être même de vraies images, afin de lui donner beaucoup de contexte pour l'image à essayer. “peindre.”

Une profonde compréhension du style ne peut exister que dans un contexte plus large. Vous ne pouvez pas le déduire d'une seule image. Concevoir une architecture qui donne au système l’accès à des données plus larges pourrait lui permettre d’obtenir une meilleure “semblable à l'homme” compréhension de l'image et comment les artistes représentent différents éléments du monde réel. Un tel réseau pourrait peut-être produire des images plus abstraites et mieux composées. De tels algorithmes cesseraient d’être un jouet cool (comme celui-ci) et deviendraient un moyen de produire de l’art réel et original..

Ce qui est une pensée très particulière, à certains égards.

Faire vos propres images

Si vous obtenez un résultat décevant, vous pouvez jouer un peu avec les options pour essayer d'obtenir des résultats plus convaincants. La liste complète est sur le Github. Les plus importants sont

  • -content_weight -value Combien de poids le terme de reconstruction de contenu. La valeur par défaut est 5e0.
  • -style_weight -value: Combien de poids à donner à l'image de style. La valeur par défaut est 1e2.
  • -style_scale - valeur: Quelle est la taille des patchs d'image que le système devrait analyser (Plus grand devient abstrait). La valeur par défaut est 1,0.

Une fois que tout fonctionne à votre satisfaction, postez les images les plus intéressantes dans les commentaires. Je suis vraiment intéressé de voir ce que vous venez avec.

Crédits d'image: peintre de cerveau humain via Shutterstock

Plus d'infos sur: Intelligence artificielle, Art numérique, Science geek, Environnement de bureau Linux, Science-fiction.