Annuncio pubblicitario
Le reti neurali possono fare molte cose. Possono interpretare immagini, capire le nostre voci 6 Google Now Funzionalità che cambieranno il modo in cui effettui la ricerca Forse stai già utilizzando Google Now sul tuo dispositivo Android, ma stai ottenendo tutto ciò che puoi da esso? Conoscere queste piccole funzionalità può fare la differenza. Leggi di più , e tradurre conversazioni Come funziona il traduttore Star Trek di SkypeLa nuova funzione di traduzione di Skype offre qualcosa di sognato sin da Star Trek: un modo semplice per comunicare attraverso le lingue. Leggi di più . Ma sapevi che possono anche dipingere?
Un recente documento di ricerca (intitolato "Un algoritmo neurale di stile artistico“) Ha dato il via a una raffica di discussioni online con alcuni esempi visivi sorprendenti. In sostanza, l'articolo discute una tecnica per addestrare a rete neurale profonda Microsoft vs Google - Chi guida la gara di intelligenza artificiale?I ricercatori di intelligenza artificiale stanno compiendo progressi tangibili e le persone stanno ricominciando a parlare seriamente dell'IA. I due titani che guidano la corsa all'intelligenza artificiale sono Google e Microsoft. Leggi di più per separare lo stile artistico dalla struttura dell'immagine e combinare lo stile di un'immagine con la struttura di un'altra. Il risultato di tutto ciò è che puoi addestrare un'enorme rete neurale per trasformare le fotografie in "neurali" dipinti "che sembrano dipinti da artisti famosi -" contraffazioni digitali " parlare.
Ecco alcuni esempi dall'articolo. La prima immagine è l'originale. Le immagini successive sono i risultati generati, con il dipinto da cui lo stile è stato campionato mostrato in miniatura.

I ricercatori originali non hanno rilasciato il loro codice, sfortunatamente. Tuttavia, alcuni programmatori intrepidi hanno replicato i loro risultati negli ultimi giorni e il loro codice è disponibile, open source su Internet. Tutto ciò che serve per eseguirlo è una macchina Linux e un po 'di pazienza.
Oggi ti spiegherò come farlo e ti mostrerò alcuni dei miei risultati. Puoi pensare a questo come un sequel lento del nostro Tutorial di DeepDream Crea i tuoi sogni di febbre artificiale con "DeepDream" di GoogleHai visto le immagini scattanti uscire da DeepDream? Vuoi crearne uno tuo? Non guardare oltre! Leggi di più . È un po 'complicato, ma chiunque abbia una macchina Linux può seguirlo, senza bisogno di esperienza di programmazione.
Ho trasformato un dipinto di Picasso in un dipinto in stile Picasso con #DeepStyle! pic.twitter.com/cjkEoIhVcF
- James Blaha (@jamesblaha) 5 settembre 2015
Installazione del software
Prima di tutto, se non hai molta fretta o non hai una macchina Linux, puoi comunque giocare con DeepStyle usando il DeepForger Twitter bot (inviagli un'immagine e uno stile e alla fine risponderà con i risultati che desideri). Se vuoi elaborare più immagini rapidamente (e con un maggiore controllo sui risultati), continua a leggere per il tutorial.
Prima di tutto, assicurati di avere una copia aggiornata di Ubuntu (14.04 è quello che ho usato). Dovresti avere almeno alcuni concerti extra di spazio sul disco rigido. Per ulteriori informazioni, consulta il nostro tutorial su Ubuntu a doppio avvio insieme a Windows Stanco di Windows 8? Come eseguire il dual boot di Windows e UbuntuSe scopri che Windows 8 non è proprio la tua tazza di tè e non hai un percorso fattibile per il downgrade, potrebbe essere una buona idea fare il doppio avvio con Linux per avere un'alternativa ... Leggi di più . Avrai anche bisogno dei privilegi di root, quindi assicurati di farlo prima di procedere.
Strumenti di base
Giusto, questo è un progetto open source, quindi vorremmo avere Idiota installato. Git è il gold standard per il software di controllo versione Che cos'è Git e perché dovresti utilizzare il controllo versione se sei uno sviluppatoreCome sviluppatori web, per la maggior parte del tempo tendiamo a lavorare su siti di sviluppo locali per poi caricare tutto quando abbiamo finito. Questo va bene quando sei solo tu e le modifiche sono piccole, ... Leggi di più . Praticamente ogni progetto open source che vale la pena conoscere è ospitato su Github.
Per scaricare e installare Git, basta aprire un terminale e digitare "sudo apt-get install git
"E accetta le richieste dell'installatore.
Avanti: stiamo andando a impostare alcuni strumenti di base necessario per far funzionare il software.
Innanzitutto, installa Lua. Questa è la lingua in cui è scritto lo strumento. È abbastanza semplice Digita "sudo apt-get install lua5.2
"E seguire il processo di installazione.
In secondo luogo, otterremo Luarocks. Questo è lo strumento che semplifica l'installazione di altri strumenti (non ami Linux?). Per questo, digita "sudo apt-get install luarocks
"E seguire i passaggi dell'installazione.
Terzo, installeremo Luajit. Questo è un compilatore just-in-time per Lua che renderà le nostre vite un po 'più semplici. Digita "sudo apt-get install luajit
.”
Fin qui tutto bene.
Sono un robot che crea falsi dalle tue foto nello stile di famosi pittori. Clicca per le istruzioni qui sotto! pic.twitter.com/3MpThDNwRE
- The Deep Forger (@DeepForger) 5 settembre 2015
Frameworks
Successivamente, installeremo Torcia, un framework di elaborazione scientifica e machine learning che costituisce la struttura portante dell'applicazione. Sfortunatamente, questo non può essere installato usando apt-get (il gestore di pacchetti Ubuntu standard).
Fortunatamente, hanno un programma di installazione su una riga che usa un po 'di magia da riga di comando. Ritorna al tuo terminale e inserisci "ricciolo -s https://raw.githubusercontent.com/torch/ezinstall/master/install-all | bash
“.
Al termine, digita "luajit -ltorch
“. Questo farà apparire l'interfaccia della torcia e verificherà che tutto sia stato installato correttamente.
Esci da quello.
Ora installeremo loadcaffe - un pacchetto specifico per la rete neurale. Installa la sua unica dipendenza digitando "sudo apt-get install libprotobuf-dev protobuf-compilatore
“. Quindi è possibile installare il pacchetto stesso utilizzando "sudo luarocks install loadcaffe "
.
@Johnicholas La tua rottura di falsificazione, con stile alla School of Rembrandt van Rijn. #Arte digitale#StyleNetpic.twitter.com/pf0sZxWkaT
- The Deep Forger (@DeepForger) 7 settembre 2015
Doppio controllo delle dipendenze
Infine, aggiorneremo preventivamente alcune cose solo per assicurarci che tutto vada per il meglio.
Genere "sudo luarocks installa l'immagine
"Per assicurarsi che il pacchetto di immagini sia aggiornato. Successivamente, inserisci "luarocks installa nn
"Che farà lo stesso per il tuo pacchetto" nn ".
Installazione di Deep Style
Tutto a posto! A questo punto, siamo pronti per installare effettivamente il software stesso. Per motivi di pulizia, crea una nuova cartella nella tua home directory ("mkdir DeepStyle"). Quindi, inseriscilo usando "cd Deepstyle
“. Ora digita "clone di sudo git https://github.com/jcjohnson/neural-style.git".
Successivamente, dobbiamo scaricare il modello. Prepara una tazza di caffè o qualcosa del genere, ci vorrà del tempo. Torna al terminale e digita "sudo sh models / download_models.sh
“. Ciò avvierà un lungo ed elaborato processo di download. Se fallisce a causa di errori di autorizzazione, prova a concederti le autorizzazioni di lettura / scrittura sulle cartelle pertinenti, usando chmod.
@ 44thats44oars commissionato questo #ProceduralArt#NeuralArt. pic.twitter.com/tbMH7gsvc8
- The Deep Forger (@DeepForger) 6 settembre 2015
Utilizzando Deep Style
Ok, siamo a posto. L'uso del software è piuttosto semplice.
Assicurati di essere nel DeepStyle / directory in stile neurale nel terminal. Ora avrai bisogno di alcune immagini su cui lavorare. Scaricali da Internet (o qualsiasi altra cosa), quindi copiali nel DeepStyle / cartella in stile neurale utilizzando il browser dei file.
Ora puoi utilizzare la riga di comando per elaborare singole immagini. Il formato è piuttosto semplice:
th neural_style.lua -style_image YOURPAINTINGHERE.jpg - content_image YOURPHOTOHERE.jpg -gpu -1
(Ovviamente, dovrai sostituire i blocchi in TUTTI MAIUSCOLI con i nomi dei tuoi file).
Ciò avvierà la rete neurale avviata. Funzionerà per circa un'ora, sputando nuove immagini parzialmente convergenti ogni pochi minuti fino al termine. Il -gpu -1
flag impedisce di tentare di accedere alla GPU.
Dopo diverse ore di tentativi (e il bricking del sistema operativo più volte) non sono riuscito a far funzionare Ubuntu e CUDA con la mia GPU (una NVIDIA GTX 970). Se hai più fortuna, ti consigliamo di installare CUDA e cudann.torch (vedi il repo github per maggiori informazioni). In caso contrario, va bene: funzionerà comunque con la tua CPU; sarà solo un po 'più lento.
Se hai problemi a far funzionare tutto questo, chiedimi nei commenti e farò del mio meglio per aiutarti.
risultati
Ecco alcune immagini che ho generato negli ultimi due giorni. I risultati sono contrastanti, ma molti di loro sono piuttosto impressionanti.

Clicca qui per la risoluzione completa.
Questo è del mio amico Zack in gita a Yellowstone. Lo stile deriva da un dipinto astratto, creato da Theresa Paden. Ero curioso di vedere come il sistema avrebbe fatto usando un'immagine senza alcuna struttura. I risultati sono piuttosto accurati e puoi sicuramente vedere le somiglianze con l'immagine di stile.

Clicca qui per la risoluzione completa.
Questo è per gentile concessione di uno dei miei artisti preferiti, Charles Demuth (vedi: Incenso di una nuova chiesa, e Figura 5 in oro). È interessante notare che Demuth è una delle principali ispirazioni visive per l'arte di Team Fortress 2 Team Fortress 2: il gioco Steam gratuito da giocareTeam Fortress 2 è solo un gioco veloce per testare la grafica e le prestazioni, o vale la pena giocare ripetutamente? Leggi di più , come puoi vedere dall'immagine di stile.
Gli ho fornito un'immagine di Jersey City che ho trovato su Wikimedia. I risultati sono... abbastanza buoni. Non ha compreso l'angolosità dello stile di Demuth, ma ha sicuramente acquisito l'aspetto morbido e strutturato e la tavolozza dei colori.

Clicca qui per la risoluzione completa.
Questo è un tentativo di generare un O 'Keeffe sintetico, usando un'immagine abbastanza banale di alcuni fiori che ho trovato. I risultati sono, francamente, spettacolari. Esteticamente, questo è uno dei miei risultati preferiti. La ricchezza dei colori e delle forme di O’Keeffe emerge chiaramente. I bordi a strati dei petali di fiori diventano i bordi delle foglie sullo sfondo. I fiori stessi si dissolvono in colori, diventando quasi astratti.
Sarebbe un bel dipinto se un umano lo facesse. Sono molto tentato di passare un paio di giorni a rendere una versione a risoluzione più elevata di questa e ad averla inquadrata.

Clicca qui per la risoluzione completa.
Ecco la mia amica Shannon nel suo costume di Halloween, per mezzo di una stampa Picasso. È interessante notare che il dispositivo ha scelto di dipingere di bianco la parte inferiore del suo viso (simile alla disposizione dei colori del pezzo Picasso). Non sono sicuro che sia stata una coincidenza o meno, ma i risultati sono sorprendenti. Sembra anche che abbia identificato correttamente i capelli di Shannon sul lato sinistro e li abbia rielaborati usando il colore e il disegno dei capelli nell'immagine di stile. Idem per il suo cappello.
Questo è uno dei pezzi in cui i limiti della tecnica iniziano a diventare chiari. Se Picasso stesse effettivamente dipingendo Shannon, avrebbe gettato via la struttura del suo viso e distorto i lineamenti per ottenere l'effetto che voleva. Questo sistema non comprende questo tipo di concetti di alto livello ed è in grado di imitare solo aspetti superficiali dello stile, come il buio, le linee angolari e la tavolozza dei colori.

Clicca qui per la risoluzione completa.
Abbastanza semplice: una foto della Torre Eiffel e di Van Gogh altro Notte stellata. Fa un buon lavoro nel rendere il cloud in stile Van Gogh-ey, nonostante l'assenza di nuvole nell'immagine originale. Fa anche un buon lavoro nel tradurre la scena dal giorno alla notte.
Non ero sicuro del motivo per cui decise di rendere la punta della torre Eiffel come un pilastro di fuoco. Sembra bello, ma non è davvero giustificabile dai dati di input. Poi mi sono reso conto che l'immagine di stile ha tredici strisce gialle lunghe verticali, sotto forma di riflessi nell'acqua. È un cluster piuttosto massiccio, dati così pochi dati di allenamento. La cosa povera ha probabilmente imparato che qualsiasi bordo verticale ad alto contrasto deve essere una di quelle riflessioni. Puoi vedere leggermente più strisce verticali estranee tra le nuvole.
Clicca qui per la risoluzione completa.
Lo stesso dipinto di Van Gogh, ma questa volta gli ho dato delle vere stelle da dipingere. In questo caso, la parte dei pilastri della nebulosa Aquila. Mi piacciono i risultati, anche se, ancora una volta, puoi vedere la sua ossessione per le strisce gialle. Ogni porzione verticale del pilastro diventa una linea gialla luminosa e traballante. È anche chiaramente sconvolto dal verde, che non si è verificato nei dati di allenamento, e fa del suo meglio per sbarazzarsene a favore del blu e del nero.
Tecnologia
Alcuni risultati sono estremamente convincenti, sebbene la tecnica abbia chiari limiti. Alcune immagini hanno una composizione scadente e il sistema ha difficoltà con artisti più astratti come Picasso, a cui piaceva notoriamente distorcere il soggetto, diffondendone le caratteristiche. L'algoritmo raccoglie le sue linee angolari e i colori contrastanti, ma è ancora schiavo dei valori dei pixel dell'immagine. Non ha la comprensione che avresti bisogno di deviare troppo dal materiale di partenza.
Ciò che mi entusiasma di tutto ciò è che non penso che tali limiti siano fondamentali.
L'approccio utilizzato qui - formare una rete su un'immagine e utilizzarla per costruirne un'altra - è fondamentalmente una specie di hack. Fornisce alla rete pochissimi dati con cui lavorare. Una versione più avanzata di questa applicazione userebbe una rete che contiene informazioni su molti dipinti, e forse anche immagini reali, per dargli un ampio contesto sull'immagine che sta cercando di fare "dipingere."
Una profonda comprensione dello stile può esistere solo in un contesto più ampio. Non puoi derivarlo da una singola immagine. La progettazione di un'architettura che consente al sistema di accedere a dati più ampi potrebbe consentire di ricavarne di più Comprensione "umana" dell'immagine e del modo in cui gli artisti rappresentano diversi elementi del reale mondo. Tale rete potrebbe essere in grado di produrre immagini più astratte e con una composizione migliore. Tali algoritmi smetterebbero di essere un bel giocattolo (come questo) e diventerebbero un modo per produrre arte reale e originale.
Il che è un pensiero molto particolare, in qualche modo.
Crea le tue immagini
Se ottieni un risultato deludente, puoi giocare un po 'con le opzioni per cercare di ottenere risultati più convincenti. L'elenco completo è su Github. Quelli importanti sono
- -content_weight -value Quanto appesantire il termine di ricostruzione del contenuto. L'impostazione predefinita è 5e0.
- -style_weight -value: Quanto peso dare all'immagine di stile. L'impostazione predefinita è 1e2.
- -style_scale - valore: Quante patch di immagini devono essere analizzate dal sistema (le dimensioni più grandi diventano più astratte). L'impostazione predefinita è 1.0.
Una volta che tutto funziona in modo soddisfacente, si prega di pubblicare le immagini più interessanti nei commenti. Sono davvero interessato a vedere cosa ne pensate voi ragazzi.
Crediti immagine: pittore del cervello umano tramite Shutterstock
Scrittore e giornalista con sede nel sud-ovest, Andre è garantito per rimanere funzionale fino a 50 gradi Celcius ed è impermeabile fino a una profondità di dodici piedi.