Créez vos propres « tableaux » de neurones avec deepstyle & ubuntu

Les réseaux de neurones peuvent faire beaucoup de choses. Ils peuvent interpréter les images, comprendre nos voix

, et traduire les conversations. Mais saviez-vous qu`ils peuvent aussi peindre?6 Google Caractéristiques Maintenant cela va changer Comment vous recherchez 6 Google Caractéristiques Maintenant cela va changer Comment vous recherchez Vous pouvez déjà utiliser Google Now sur votre appareil Android, mais obtenez tout ce que vous pouvez en sortir? Le fait de connaître ces petites fonctionnalités peuvent faire une grande différence.Lire la suite

Un document de recherche récent (intitulé « Un algorithme Neural de style artistique « ) a lancé une vague de discussion en ligne avec quelques exemples visuels frappants. Pour l`essentiel, le document décrit une technique pour former un réseau de neurones profond de séparer le style artistique de la structure d`image, et de combiner le style d`une image avec la structure d`un autre. Le résultat de tout cela est que vous pouvez former un vaste réseau de neurones pour transformer des photos en « tableaux » qui neurales l`air comme si ils ont été peints par des artistes célèbres - « faux billets numériques », pour ainsi dire.

Voici quelques exemples de l`article. La première image est l`original. Les images sont plus tard les résultats générés, avec la peinture dont le style a été prélevé montré en miniature.

paperimages

Les chercheurs d`origine n`a pas publié leur code, malheureusement. Cependant, certains programmeurs intrépides ont reproduit leurs résultats au cours des derniers jours, et leur code est disponible, open source sur Internet. Tout ce que vous devez exécuter est une machine Linux et un peu de patience.

Aujourd`hui, je vais vous guider à travers la façon de le faire, et vous montrer certains de mes propres résultats. Vous pouvez penser à cela comme une suite à notre lâche tutoriel DeepDream. Il est un peu compliqué, mais tout le monde avec une machine Linux peut suivre - aucune expérience de codage nécessaire.Créez vos propres rêves fièvre artificielle avec Google "DeepDream"Créez vos propres rêves fièvre artificielle avec Google "DeepDream"Avez-vous vu les images trippy qui sortent de DeepDream? voulez vous faire le votre? Cherchez pas plus loin!Lire la suite

Configuration du logiciel

Tout d`abord, si vous n`êtes pas très pressé ou ne pas une machine Linux, vous pouvez toujours jouer avec DeepStyle en utilisant le bot Twitter DeepForger (envoyer une image et un style, et il finit par répondre avec les résultats que vous vouloir). Si vous voulez traiter plus rapidement les images (et avec plus de contrôle sur les résultats), poursuivez votre lecture pour le tutoriel.

Tout d`abord, assurez-vous que vous avez une copie à jour de Ubuntu (14.04 est ce que je). Vous êtes devrait avoir au moins quelques concerts supplémentaires d`espace disque dur. Pour plus d`informations, consultez notre tutoriel sur Ubuntu double démarrage aux côtés de Windows. Vous allez aussi avoir besoin de privilèges root, alors assurez-vous que vous faites avant de poursuivre.Fatigué de Windows 8? Comment faire pour double démarrage Windows & UbuntuFatigué de Windows 8? Comment faire pour double démarrage Windows & UbuntuSi vous découvrez que Windows 8 est pas tout à fait votre tasse de thé, et vous avez pas de chemin possible de rétrograder, il peut être une bonne idée de dual boot avec Linux d`avoir une solution de rechange ...Lire la suite

Outils de base

Droit de la chauve-souris, c`est un projet open-source, donc nous allons vouloir avoir Git installée. Git est le gold standard pour le logiciel de contrôle de version. Quasiment tous les projets open source qu`il faut savoir sur est hébergé sur GitHub.

Pour télécharger et installer Git, il suffit d`ouvrir 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 bases nécessaires pour faire fonctionner le logiciel.

Tout d`abord, installez Lua. Ceci est la langue que l`outil est écrit en. Il est assez simple. Il suffit de taper «sudo apt-get install lua5.2» Et suivre le processus d`installation.

Deuxièmement, nous allons obtenir Luarocks. Ceci est l`outil qui le rend plus facile à installer d`autres outils (ne vous aime pas Linux?). Pour celui-ci, tapez «sudo apt-get install luarocks» Et suivez les étapes des installations.

Troisièmement, nous allons installer luajit. Ceci est un compilateur juste à temps pour Lua qui fera notre vie un peu plus simple. Il suffit de taper «sudo apt-get install luajit

Jusqu`ici tout va bien.

cadres

La prochaine étape, nous allons installer la flamme, un cadre de calcul scientifique et l`apprentissage de la machine qui fait l`épine dorsale de l`application. Malheureusement, celui-ci ne peut pas être installé en utilisant apt-get (le gestionnaire standard package Ubuntu).

Heureusement, ils ont un programme d`installation d`une ligne qui utilise la magie de ligne de commande. Retour à votre terminal et entrez «pelotonner -s https://raw.githubusercontent.com/torch/ezinstall/master/install-all | frapper« .

Lorsque vous avez terminé, tapez «luajit -ltorch« . Cela fera l`interface de la torche et vérifier que tout a été installé correctement.

Video: Neural Network Deep Style Video Workflow Tutorial (Vue, Torch, Neural-style, After Effects)

Sortez de cela.

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

Dépendances Double Checking

Enfin, nous allons préemptive mettre à jour certaines choses juste pour vous assurer que tout se passe bien.

Video: Neural Network Deep Style

Type «Sudo luarocks image d`installation» Pour vous assurer que votre package d`image est à jour. Ensuite, entrez «luarocks installer nn» Qui fera la même chose pour votre package « nn ».

Installation style profond

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

La prochaine étape, nous avons pour télécharger le modèle. Faire une tasse de café ou quelque chose, cela prendra un certain temps. Retour au terminal, et tapez «modèles / download_models.sh sudo« . Ça va commencer un long processus de téléchargement complexe. Si elle échoue à cause d`erreurs d`autorisation, essayez de vous donner des autorisations de lecture-écriture sur les dossiers pertinents, en utilisant chmod.

En utilisant le style profond

D`accord, nous sommes prêts à partir. L`utilisation du logiciel est assez simple.

Assurez-vous que vous êtes dans le répertoire DeepStyle / style nerveux dans le terminal. Maintenant, vous allez avoir besoin des images pour travailler. les télécharger sur Internet (ou autre), puis les copier dans le DeepStyle / dossier de style neurale en utilisant le navigateur de fichiers.

Maintenant, vous pouvez utiliser la ligne de commande pour traiter les images individuelles. Le format est assez simple:

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

(De toute évidence, vous devrez remplacer les morceaux en majuscules avec les noms de vos fichiers).

Cela fera le réseau de neurones a commencé. Il va courir pendant environ une heure, crachant de nouvelles images partiellement convergé toutes les quelques minutes jusqu`à ce qu`il se termine. le -GPU -1 drapeau, il arrête d`essayer d`accéder à votre GPU.

Après plusieurs heures d`essayer (et bricking le système d`exploitation plusieurs fois) je ne pouvais pas obtenir Ubuntu et CUDA pour jouer agréable avec mon GPU (une GTX NVIDIA 970). Si vous avez plus de chance avec ça, vous voulez installer CUDA et cudann.torch (voir le repo github pour plus d`informations). Sinon, c`est très bien - ça va encore travailler en utilisant votre votre CPU- il sera juste un peu plus lent.

Si vous avez des problèmes pour trouver tout ce travail, demandez-moi dans les commentaires, et je ferai de mon mieux pour vous aider.

Résultats

Voici quelques images que j`ai produit au cours des deux dernières jours. Les résultats sont mitigés, mais beaucoup d`entre eux sont assez impressionnants.

zack-paden-composite

Cliquez ici pour en pleine résolution.

Celui-ci est mon ami Zack lors d`un voyage de randonnée à Yellowstone. Le style est d`une peinture abstraite, créée par Theresa Paden. J`étais curieux de voir comment le système ferait en utilisant une image sans aucune structure. Les résultats sont assez propres, et vous pouvez certainement voir les similitudes avec l`image de style.

JerseyVille-demuth-composite

Cliquez ici pour en pleine résolution.

Celui-ci vient avec la permission d`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 inspirations visuelles primaires pour l`art de Team Fortress 2, comme vous pouvez le voir sur l`image de style.Team Fortress 2: Free-to-Play vapeur jeu vous devez jouerTeam Fortress 2: Free-to-Play vapeur jeu vous devez jouerTeam Fortress 2 est juste un jeu rapide pour tester les performances graphiques et, ou est-il un jeu vaut la peine de jouer à plusieurs reprises?Lire la suite

Je l`alimentaient une image de Jersey City que j`ai trouvé sur Wikimedia. Les résultats sont ... très bien. Il n`a pas choisi sur l`angularité du style de Demuth, mais il a certainement pris le doux aspect texturé et la palette de couleurs.

Fleurs-Okeefe-composite

Cliquez ici pour en pleine résolution.

Celui-ci est une tentative de générer un O`Keeffe synthétique, en utilisant une image assez banale de quelques fleurs que j`ai trouvé. Les résultats sont, franchement, spectaculaire. Esthétiquement, c`est l`un de mes préférés résultats. La richesse des couleurs et des formes de O`Keeffe viennent à travers clairement. Les bords des couches pétales de fleurs deviennent les bords des feuilles en arrière-plan. Les fleurs se dissolvent en couleurs, devenant presque abstraite.

Ce serait une bonne peinture si un homme l`a fait. Je suis très tenté de passer quelques jours de rendu une version haute résolution de celle-ci et l`avoir encadré.

Shannon-picasso-composite

Cliquez ici pour en pleine résolution.

Voici mon ami Shannon dans son costume d`Halloween, au moyen d`une impression Picasso. Fait intéressant, le dispositif a choisi de peindre la partie inférieure de sa face blanche (similaire à la mise en couleur de la pièce 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 identifié correctement les cheveux de Shannon sur le côté gauche et tiré re-en utilisant la couleur et dessin au trait des cheveux dans l`image de style. Même chose pour son chapeau.

Ceci est l`une des pièces où les limites de la technique commencent à devenir clair. Si Picasso était en fait la peinture Shannon, il aurait jeté la structure de son visage et biaisé les caractéristiques pour obtenir l`effet qu`il voulait. Ce système ne comprend pas ce genre de concepts de haut niveau, et est en mesure d`imiter que des aspects superficiels du style, comme les lignes sombres, anguleux et palette de couleurs.

eiffel-vangogh-composite

Cliquez ici pour en pleine résolution.

Assez simple: une image de la Tour Eiffel, et Van Gogh autre Nuit étoilée. Il fait un bon travail rendu le nuage dans un style Van Gogh-ey, malgré l`absence de nuages ​​dans l`image originale. Il fait aussi un bon travail de traduction de la scène du jour à la nuit.

Je ne savais pas pourquoi il a décidé de rendre la pointe de la tour Fiffel comme une colonne de feu. Il a l`air cool, mais ce n`est pas vraiment justifiable à partir des données d`entrée. Ensuite, je me suis aperçu que l`image de style a treize bandes jaunes longues, verticales en elle, sous la forme des reflets dans l`eau. C`est un groupe assez massif, étant donné si peu de données de formation. La pauvre a sans doute appris que tout bord vertical à haut contraste doit être l`un de ces réflexions. Vous pouvez voir des bandes verticales plus étrangères faiblement dans les nuages.

nébuleuse-vangogh-composite

Cliquez ici pour en pleine résolution.

Même tableau de Van Gogh, mais cette fois je lui ai donné quelques étoiles réels à la peinture. Dans ce cas, la partie des piliers de la nébuleuse de l`Aigle. J`aime les résultats - bien que, encore une fois, vous pouvez voir son obsession avec des rayures jaunes. Chaque partie verticale du pilier devient une ligne jaune vif, bancale. Il est également clairement bouleversé par le vert, ce qui ne se produit pas dans les données de formation, et fait de son mieux pour se débarrasser de celui-ci en faveur du bleu et noir.

La technologie

Certains résultats de cette sont extrêmement convaincants, bien que la technique a des limites claires. Certaines images ont une composition moche, et le système a des difficultés avec plus d`artistes abstraits comme Picasso - qui célèbre aimait à déformer sa matière, la diffusion de ses caractéristiques. L`algorithme prend ses lignes angulaires et couleurs heurtant, mais est toujours esclave des valeurs de pixels de l`image. Il n`a pas la compréhension que vous auriez besoin de s`écarter trop loin de la source.

Ce qui me passionne dans tout cela est que je ne pense pas que ces limitations sont fondamentales.

L`approche utilisée ici - former un réseau sur une image et l`utiliser pour construire une autre - est fondamentalement une sorte de hack. Il donne au réseau très peu de données pour travailler avec. Une version plus avancée de cette application utiliserait un réseau qui contient des informations sur de nombreux tableaux, et peut-être même des images réelles, pour lui donner beaucoup de contexte de l`image qu`il essaie de « peindre ».

Une profonde compréhension du style ne peut exister que dans un contexte plus large. Vous ne pouvez pas le déduire à partir d`une seule image. La conception d`une architecture qui donne l`accès au système à des données plus larges pourrait lui permettre de tirer une meilleure compréhension « humaine comme » de l`image, et comment les artistes représentent différents éléments du monde réel. Un tel réseau pourrait être en mesure de produire des images plus abstraites et ont une meilleure composition. Ces algorithmes cesseraient d`être un jouet frais (comme celui-ci) et de devenir un moyen de produire de l`art véritable, 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 avec les options un peu pour essayer d`obtenir des résultats plus probants. La liste complète est sur le Github. Les plus importants sont

  • -content_weight -value Combien de poids le terme de reconstruction de contenu. Par défaut est 5E0.
  • -style_weight -value: Combien de poids pour donner à l`image de style. Par défaut est 1e2.
  • -style_scale - Valeur: Quelle est la taille des taches d`image si le système analyse (Larger devient plus abstraite). Par défaut est de 1,0.

Une fois que vous obtenez tout ce travail à votre satisfaction, s`il vous plaît poster vos images les plus intéressantes dans les commentaires. Je suis vraiment curieux de voir ce que les gars viennent avec.

Articles connexes