Lav dine egne "neurale malerier" med DeepStyle & Ubuntu

Vidste du, at neurale netværk også kan male? Forskere har uddannet et stort neuralt netværk for at gøre fotografier til neurale malerier, der ser ud som om de blev malet af berømte kunstnere.

Vidste du, at neurale netværk også kan male?  Forskere har uddannet et stort neuralt netværk for at gøre fotografier til neurale malerier, der ser ud som om de blev malet af berømte kunstnere.
Reklame

Neurale netværk kan gøre en masse ting. De kan fortolke billeder, forstå vores stemmer 6 Google Now-funktioner, der vil ændre, hvordan du søger 6 Google Now-funktioner, der ændrer, hvordan du søger Du kan allerede bruge Google Now på din Android-enhed, men får du alt, hvad du kan ud af det? At vide om disse små funktioner kan gøre en stor forskel. Læs mere og oversæt samtaler Hvordan Skypes Star Trek Translator fungerer Hvordan Skypes Star Trek Translator Fungerer Skypes nye oversættelsesfunktion giver noget drømt om siden Star Trek - en nem måde at kommunikere på tværs af sprog. Læs mere . Men vidste du at de også kan male?

Et nyligt forskningspapir (med titlen "En Neural Algoritme for Kunstnerisk Stil") har sparket en flurry af online diskussion med nogle slående visuelle eksempler. I det væsentlige diskuteres en teknik til at træne et dybt neuralt netværk Microsoft vs Google - Hvem leder det kunstige intelligens løb? Microsoft vs Google - Hvem leder det kunstige intelligens løb? Kunstige intelligensforskere gør konkrete fremskridt, og folk begynder at tale alvorligt om AI igen. De to titaner, der fører den kunstige intelligens race, er Google og Microsoft. Læs mere for at adskille kunstnerisk stil fra billedstruktur og kombinere stilen på et billede med en anden struktur. Resultatet af alt dette er, at du kan træne et stort neuralt netværk for at gøre fotografier til "neurale malerier", der ser ud som om de blev malet af berømte kunstnere - "digitale forfalskninger" så at sige.

Her er nogle eksempler fra artiklen. Det første billede er originalen. De senere billeder er de genererede resultater, med maleriet, hvorfra stilen blev udtaget, vist i miniature.

PaperImages

De oprindelige forskere har desværre ikke frigivet deres kode. Nogle uberørte programmerere har imidlertid gentaget deres resultater i løbet af de sidste par dage, og deres kode er tilgængelig, open source på internettet. Alt du behøver for at køre det er en Linux-maskine og lidt tålmodighed.

I dag vil jeg gå igennem, hvordan du gør det, og viser dig nogle af mine egne resultater. Du kan tænke på dette som en løs efterfølger til vores DeepDream-tutorial. Opret dine egne kunstige feberdromer med Googles "DeepDream" Opret dine egne kunstige feberdromer med Googles "DeepDream" Har du set de trippy billeder, der kommer ud af DeepDream? Vil du lave din egen? Stop med at lede! Læs mere . Det er lidt kompliceret, men alle med en Linux-maskine kan følge med - ingen kodende oplevelse nødvendig.

Jeg skiftede et Picasso lysmaleri til en Picasso-stil maleri med #DeepStyle! pic.twitter.com/cjkEoIhVcF

- James Blaha (@ jamesblaha) 5. september 2015

Opsætning af softwaren

For det første, hvis du ikke har travlt eller ikke har en Linux-maskine, kan du stadig spille med DeepStyle ved hjælp af DeepForger Twitter-botten (send det et billede og en stil, og det vil til sidst svare med resultaterne du vil have). Hvis du vil behandle flere billeder hurtigt (og med mere kontrol over resultaterne), læs videre til vejledningen.

Først skal du sørge for at have en opdateret kopi af Ubuntu (14.04 er det jeg brugte). Du skal have mindst et par ekstra spil på harddiskplads. For mere information, se vores vejledning om dual-boot Ubuntu sammen med Windows Træt af Windows 8? Sådan Dual Boot Windows & Ubuntu Træt af Windows 8? Sådan dobbeltstart Windows & Ubuntu Hvis du opdager, at Windows 8 ikke er helt din kop te, og du ikke har nogen mulig vej til nedgradering, kan det være en god ide at dual boot med Linux for at få et alternativ ... Læs Mere . Du skal også bruge root privilegier, så sørg for at du gør, inden du fortsætter.

Grundlæggende værktøjer

Ret til flagermus er dette et open source-projekt, så vi vil gerne have Git installeret. Git er guldstandarden til versionsstyringssoftware Hvad er Git og hvorfor du skal bruge Version Control Hvis du er udvikler Hvad er Git & Hvorfor skal du bruge Version Control Hvis du er udvikler Som webudviklere, er meget af tiden vi plejer at arbejde på lokale udviklingswebsteder, så upload kun alt, når vi er færdige. Det er fint, når det bare er dig og ændringerne er små, ... Læs mere. Næsten meget alle open source-projekter værd at vide om, er hostet på Github.

For at downloade og installere Git, skal du blot åbne en terminal og skrive " sudo apt-get install git " og acceptere installatørens krav.

Næste: Vi skal oprette nogle grundlæggende værktøjer, der er nødvendige for at gøre softwaren til at fungere.

Først skal du installere Lua. Dette er det sprog, som værktøjet er skrevet i. Det er ret simpelt. Skriv bare " sudo apt-get install lua5.2 " og følg installationsprocessen.

For det andet vil vi få Luarocks. Dette er værktøjet, der gør det nemmere at installere andre værktøjer (elsker du ikke Linux?). Til dette, skriv " sudo apt-get install luarocks " og følg installationsskridtene.

For det tredje skal vi installere Luajit. Dette er en just-in-time compiler til Lua, der vil gøre vores liv lidt enklere. Skriv bare " sudo apt-get install luajit ."

Så langt så godt.

Jeg er en bot, der skaber forfalskninger fra dine billeder i stil med berømte malere. Klik for instruktioner nedenfor! pic.twitter.com/3MpThDNwRE

- Deep Forger (@DeepForger) 5. september 2015

rammer

Derefter vil vi installere Torch, en videnskabelig computer- og maskinindlæringsramme, der udgør rygraden i applikationen. Desværre kan denne ikke installeres ved hjælp af apt-get (standard Ubuntu pakke manager).

Heldigvis har de en one-line installer, der bruger nogle command-line magi. Gå tilbage til din terminal og indtast " curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-all | bash curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-all | bash ".

Når du er færdig, skriv " luajit -ltorch ". Dette bringer fakkelgrænsefladen op og kontroller, at alt er installeret korrekt.

Afslut ud af det.

Nu skal vi installere loadcaffe - en nervepecifik specifik pakke. Installer dens eneste afhængighed ved at skrive " sudo apt-get install libprotobuf-dev protobuf-compiler ". Derefter kan du installere pakken selv ved hjælp af " sudo luarocks install loadcaffe" .

@Johnicholas Din forfalskning sammenbrud, avec stil af School of Rembrandt van Rijn. #DigitalArt #StyleNet pic.twitter.com/pf0sZxWkaT

- Deep Forger (@DeepForger) 7. september 2015

Dobbelt kontrol af afhængigheder

Endelig vil vi forevigt opdatere nogle ting bare for at sikre, at alt går glat.

Skriv " sudo luarocks install image " for at sikre, at din billedpakke er opdateret. Indtast derefter " luarocks install nn ", som vil gøre det samme for din 'nn' -pakke.

Installation af Deep Style

I orden! På dette tidspunkt er vi klar til at installere selve softwaren. Af renheds skyld skal du oprette en ny mappe i din hjemmekatalog ('mkdir DeepStyle'). Indtast det derefter ved hjælp af " cd Deepstyle ". Skriv nu " sudo git clone https://github.com/jcjohnson/neural-style.git".

Derefter skal vi downloade modellen. Lav en kop kaffe eller noget, det vil tage et stykke tid. Tilbage til terminalen, og skriv " sudo sh models/download_models.sh ". Det vil starte en lang, udførlig downloadproces. Hvis det fejler på grund af tilladelsesfejl, skal du prøve at give dig læs-skrive tilladelser på de relevante mapper ved hjælp af chmod.

@ 44thats44oars bestilt denne #ProceduralArt #NeuralArt. pic.twitter.com/tbMH7gsvc8

- Deep Forger (@DeepForger) 6. september 2015

Brug af Deep Style

Okay, det er godt at gå. Brug af softwaren er ret simpel.

Sørg for, at du er i DeepStyle / Neural-stil biblioteket i terminalen. Nu skal du bruge nogle billeder til at arbejde på. Hent dem fra internettet (eller hvad som helst), og kopier dem derefter til mappen DeepStyle / Neural-stil ved hjælp af filbrowseren.

Nu kan du bruge kommandolinjen til at behandle individuelle billeder. Formatet er ret ligetil:

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

(Du skal selvfølgelig erstatte klumperne i ALLE CAPS med navnene på dine filer).

Det vil få det neurale netværk startet. Det løber i omkring en time og spytter nye, delvis konvergerede billeder hvert par minutter, indtil det er færdigt. -gpu -1 flag stopper det fra at forsøge at få adgang til din GPU.

Efter flere timers forsøg på at få (og bricking operativsystemet flere gange) kunne jeg ikke få Ubuntu og CUDA til at fungere godt sammen med min GPU (en NVIDIA GTX 970). Hvis du har held og lykke med det, vil du installere CUDA og cudann.torch (se github repo for mere information). Hvis ikke, det er fint - det vil stadig arbejde med din CPU; det vil bare være lidt langsommere.

Hvis du har problemer med at få alt dette arbejde, spørg mig bare i kommentarerne, og jeg vil gøre mit bedste for at hjælpe dig.

Resultater

Her er nogle billeder, jeg har genereret i løbet af de sidste par dage. Resultaterne er blandet, men mange af dem er temmelig imponerende.

zack-Paden-komposit

Klik her for fuld opløsning.

Denne er af min ven Zack på en vandretur til Yellowstone. Stilen kommer fra et abstrakt maleri, skabt af Theresa Paden. Jeg var nysgerrig efter at se, hvordan systemet ville gøre ved hjælp af et billede med absolut ingen struktur. Resultaterne er ret pæne, og du kan helt sikkert se lighederne med stilbilledet.

Jersey City-Demuth-komposit

Klik her for fuld opløsning.

Denne kommer med venlig hilsen til en af ​​mine favoritartister, Charles Demuth (se: Røgelse af en ny kirke, og Figur 5 i guld). Interessant er Demuth en af ​​de primære visuelle inspirationer for Team Fortress 2 Team Fortress 2: Det gratis spil, du skal spille Team Fortress 2: Det gratis spil, du skal spille, er Team Fortress 2 bare et hurtigt spil til at teste grafik og ydeevne, eller er det et spil værd at spille gentagne gange? Læs mere, som du kan se fra stilbilledet.

Jeg fodrede det et billede af Jersey City, som jeg fandt på Wikimedia. Resultaterne er ... ret gode. Det ophøjede ikke med Demuths stil, men det hentede sikkert det bløde, teksturerede udseende og farvepaletten.

blomster-Okeefe-komposit

Klik her for fuld opløsning.

Dette er et forsøg på at generere en syntetisk O'Keeffe, der bruger et ret trivsamt billede af nogle blomster jeg fandt. Resultaterne er helt ærligt spektakulære. Æstetisk er dette et af mine yndlingsresultater. Rigtigheden af ​​O'Keeffes farver og former kommer tydeligt frem. Blombladernes lagkanter bliver bladets kanter i baggrunden. Blomsterne løser sig selv i farver og bliver næsten abstrakte.

Det ville være et godt maleri, hvis et menneske gjorde det. Jeg er meget fristet til at tilbringe et par dage, der giver en højere opløsningsversion af denne og har den indrammet.

shannon-picasso-komposit

Klik her for fuld opløsning.

Her er min ven Shannon i sin Halloween kostume, ved hjælp af et Picasso print. Interessant nok valgte enheden at male den nederste del af hendes ansigt hvide (svarende til Picasso-stykkets farvelayout). Jeg er ikke sikker på om dette var tilfældigt eller ej, men resultaterne er slående. Det ser også ud til at have identificeret Shannons hår på venstre side og re-trukket det med farven og linjen fra håret i stilbilledet. Dito til hatten.

Dette er et af de stykker, hvor teknikkens begrænsninger begynder at blive klar. Hvis Picasso faktisk maler Shannon, ville han have smidt ansigtets struktur og skævt funktionerne for at opnå den effekt, han ønskede. Dette system forstår ikke de slags begreber på højt plan og kan efterligne kun overfladiske aspekter af stilen, som de mørke, kantede linjer og farvepaletten.

eiffel-VanGogh-komposit

Klik her for fuld opløsning.

Noget ligetil: et billede af Eiffeltårnet og Van Goghs anden Starry Night. Det gør et godt stykke arbejde, der gør skyen til en Van Gogh-ey-stil, på trods af manglen på skyer i det originale billede. Det gør også et godt stykke arbejde med at oversætte scenen fra dag til nat.

Jeg var ikke sikker på, hvorfor det besluttede at gøre tipet af Fiffel-tårnet som en ildstamme. Det ser cool ud, men det er ikke rigtig forsvarligt fra inputdataene. Så indså jeg, at stilbilledet har tretten lange, lodrette gule strimler i det i form af refleksionerne i vandet. Det er en temmelig massiv klynge, givet så lidt træningsdata. Den dårlige ting har sikkert lært, at enhver høj kontrast lodret kant skal være en af ​​disse refleksioner. Du kan se mere fremmede vertikale striber svagt i skyerne.

tåge-VanGogh-komposit

Klik her for fuld opløsning.

Samme Van Gogh-maleri, men denne gang gav jeg det nogle faktiske stjerner til at male. I dette tilfælde søjlerne del af Eagle nebula. Jeg kan lide resultaterne - selv om du endnu engang kan se sin besættelse med gule striber. Hver lodret del af søjlen bliver en lys, wobbly gul linje. Det er også tydeligt forstyrret af den grønne, som ikke forekom i træningsdataene, og gør sit bedste for at slippe af med det til fordel for blå og sort.

Teknologi

Nogle resultater af dette er ekstremt overbevisende, selv om teknikken har klare begrænsninger. Nogle billeder har elendig sammensætning, og systemet har svært ved flere abstrakte kunstnere som Picasso - der gerne elskede at forvrænge sit emne og sprede sine funktioner. Algoritmen henter sine vinkellinjer og sammenstødende farver, men er stadig en slave til billedets pixelværdier. Det har ikke den forståelse, du skal bruge for at afvige for langt fra kildematerialet.

Det der spænder mig om alt dette er, at jeg ikke tror, ​​at disse begrænsninger er grundlæggende.

Tilgangen der bruges her - træne et netværk på et billede og bruge det til at konstruere en anden - er grundlæggende en slags hack. Det giver netværket meget få data til at arbejde med. En mere avanceret version af denne applikation ville bruge et netværk, der har information om mange malerier, og måske endda rigtige billeder, for at give det masser af kontekst om det billede, det forsøger at "male".

En dyb forståelse af stil kan kun eksistere i en bredere sammenhæng. Du kan ikke udlede det fra et enkelt billede. At designe en arkitektur, der giver systemet adgang til bredere data, kan tillade det at udlede en mere "menneskelig" forståelse af billedet, og hvordan kunstnere repræsenterer forskellige elementer i den virkelige verden. Et sådant netværk kan muligvis producere billeder, som er mere abstrakte og har en bedre sammensætning. Sådanne algoritmer ville ophøre med at være et køligt legetøj (som dette) og blive en måde at producere egentlig, original kunst på.

Hvilket er en meget ejendommelig tanke på nogle måder.

Gør dine egne billeder

Hvis du får et skuffende resultat, kan du lege med mulighederne lidt for at prøve at få mere overbevisende resultater. Den fulde liste er på Github. De vigtige er

  • -content_weight -value Hvor meget skal vægten af ​​genopbygningstiden være. Standard er 5e0.
  • -style_weight -value: Hvor meget vægt skal du give til stilbilledet . Standard er 1e2.
  • -style_scale - værdi: Hvor stor af billedfiler skal systemet analysere (Større bliver mere abstrakt). Standard er 1, 0.

Når du får alt, der virker til din tilfredshed, bedes du sende dine mest interessante billeder i kommentarerne. Jeg er virkelig interesseret i at se, hvad jer kommer med.

Billedkreditter: menneskelig hjernemaler via Shutterstock

In this article