Annonse
Nevrale nettverk kan gjøre mange ting. De kan tolke bilder, forstå stemmene våre 6 Google Nå-funksjoner som vil endre hvordan du søker Du bruker kanskje allerede Google Now på Android-enheten din, men får du alt du kan ut av det? Å vite om disse små funksjonene kan utgjøre en stor forskjell. Les mer , og oversett samtaler Slik fungerer Skypes Star Trek TranslatorSkypes nye oversettelsesfunksjon tilbyr noe som har drømt om siden Star Trek - en uanstrengt måte å kommunisere på tvers av språk. Les mer . Men visste du at de også kan male?
Nylig forskningsartikkel (med tittelen “En neural algoritme av kunstnerisk stil“) Har startet en mengde online diskusjon med noen slående visuelle eksempler. I hovedsak diskuterer papiret en teknikk for å trene en dypt nevralt nettverk Microsoft vs Google - Hvem leder det kunstige intelligensrittet?Kunstig intelligens forskere gjør konkrete fremskritt, og folk begynner å snakke alvorlig om AI igjen. De to titanene som leder kunstløpet er Google og Microsoft. Les mer
å skille kunstnerisk stil fra bildestruktur, og kombinere stilen til ett bilde med strukturen til et annet. Resultatet av alt dette er at du kan trene et enormt nevralt nettverk for å gjøre fotografier til “nevrale malerier ”som ser ut som om de er malt av kjente kunstnere -“ digitale forfalskninger ”, så til snakke.Her er noen eksempler fra artikkelen. Det første bildet er originalen. De senere bildene er de genererte resultatene, med maleriet som stilen ble samplet fra, vist i miniatyr.

De opprinnelige forskerne har dessverre ikke gitt ut koden. Imidlertid har noen utrulige programmerere replikert resultatene de siste dagene, og koden deres er tilgjengelig, åpen kildekode på Internett. Alt du trenger for å kjøre den er en linux-maskin og litt tålmodighet.
I dag skal jeg lede deg gjennom hvordan du gjør det, og vise deg noen av mine egne resultater. Du kan tenke på dette som en løs oppfølger til vår DeepDream opplæring Lag dine egne kunstige feberdrømmer med Googles "DeepDream"Har du sett de trippy bildene komme ut av DeepDream? Vil du lage dine egne? Ikke se lenger! Les mer . Det er litt komplisert, men alle som har en Linux-maskin kan følge med - ingen kodingopplevelse nødvendig.
Jeg gjorde et Picasso-lysmaleri til et Picasso-stilmaleri med #DeepStyle! pic.twitter.com/cjkEoIhVcF
- James Blaha (@jamesblaha) 5. september 2015
Sette opp programvaren
For det første, hvis du ikke har det travelt eller ikke har en Linux-maskin, kan du fremdeles spille med DeepStyle ved å bruke DeepForger Twitter-bot (send det et bilde og en stil, så svarer det til slutt med de resultatene du ønsker). Hvis du vil behandle flere bilder raskt (og med mer kontroll over resultatene), kan du lese videre for veiledningen.
Forsikre deg først om at du har en oppdatert kopi av Ubuntu (14.04 er det jeg brukte). Du bør ha minst noen få ekstra spillejobber. For mer informasjon, sjekk veiledningen vår om dobbeltoppstart av Ubuntu sammen med Windows Lei av Windows 8? Slik dobler du opp Windows og UbuntuHvis du oppdager at Windows 8 ikke helt er din kopp te, og du ikke har noen gjennomførbar vei å nedgradere, kan det være en god ide å dual boot med Linux for å ha et alternativ ... Les mer . Du trenger også root-privilegier, så sørg for at du gjør det før du fortsetter.
Grunnleggende verktøy
Til høyre for flaggermusen er dette et åpen kildekode-prosjekt, så vi kommer til å ønske å ha det Git installert. Git er den gullstandard for versjonskontrollprogramvare Hva er git og hvorfor du bør bruke versjonskontroll hvis du er en utviklerSom webutviklere, mye av tiden vi pleier å jobbe med lokale utviklingsnettsteder, er det bare å laste opp alt når vi er ferdig. Dette er bra når det bare er deg og endringene er små, ... Les mer . Stort sett hvert åpen kildekode-prosjekt som er verdt å vite om, vert på Github.
For å laste ned og installere Git, bare åpne en terminal og skriv “sudo apt-get install git
”Og samtykker i installatørens krav.
Neste: vi skal sette opp noen grunnleggende verktøy nødvendig for å få programvaren til å fungere.
Installer først Lua. Dette er språket som verktøyet er skrevet på. Det er ganske enkelt. Bare skriv "sudo apt-get install lua5.2
”Og følg installasjonsprosessen.
For det andre kommer vi til å få Luarocks. Dette er verktøyet som gjør det enklere å installere andre verktøy (elsker du ikke Linux?). For denne, skriv inn “sudo apt-get install luarocks
”Og følg installasjonstrinnene.
For det tredje kommer vi til å installere Luajit. Dette er en just-in-time kompilator for Lua som vil gjøre livene våre litt enklere. Bare skriv "sudo apt-get install luajit
.”
Så langt så bra.
Jeg er en bot som skaper forfalskninger fra bildene dine i stil med kjente malere. Klikk for instruksjoner nedenfor! pic.twitter.com/3MpThDNwRE
- The Deep Forger (@DeepForger) 5. september 2015
rammer
Neste gang kommer vi til å installere Lommelykt, et vitenskapelig databehandlings- og maskinlæringsrammeverk som utgjør ryggraden i applikasjonen. Dessverre kan ikke denne installeres ved hjelp av apt-get (standard Ubuntu-pakkebehandler).
Heldigvis har de et enlinjers installasjonsprogram som bruker litt kommandolinjemagi. Gå tilbake til terminalen din og skriv inn “krøller https://raw.githubusercontent.com/torch/ezinstall/master/install-all | bash
“.
Når du er ferdig, skriver du inn "luajit -ltorch
“. Dette vil få opp fakkelgrensesnittet og bekrefte at alt var riktig installert.
Gå ut av det.
Nå skal vi installere loadcaffe - en nevrale nettverksspesifikk pakke. Installer den eneste avhengigheten ved å skrive “sudo apt-get install libprotobuf-dev protobuf-compiler
“. Deretter kan du installere selve pakken ved å bruke "sudo luarocks installerer loadcaffe "
.
@Johnicholas Din forfalskning, avec stil av School of Rembrandt van Rijn. #Digital kunst#StyleNetpic.twitter.com/pf0sZxWkaT
- The Deep Forger (@DeepForger) 7. september 2015
Dobbeltsjekk avhengigheter
Endelig skal vi oppdatere noen ting for å sikre at alt går greit.
Skriv inn “sudo luarocks installerer bilde
”For å sikre at bildepakken din er oppdatert. Skriv deretter inn “luarocks installere nn
”Som vil gjøre det samme for‘ nn ’-pakken.
Installere Deep Style
Ok! På dette tidspunktet er vi klare til å installere selve programvaren. For renhets skyld oppretter du en ny mappe i hjemmekatalogen din (‘mkdir DeepStyle’). Deretter skriver du det med "cd Deepstyle
“. Skriv nå “sudo git klon https://github.com/jcjohnson/neural-style.git".
Neste gang må vi laste ned modellen. Lag en kopp kaffe eller noe, dette vil ta en stund. Tilbake til terminalen, og skriv "sudo sh models / download_models.sh
“. Det vil starte en lang, utførlig nedlastingsprosess. Hvis det mislykkes på grunn av tillatelsesfeil, kan du prøve å gi deg leserettigheter for relevante mapper ved å bruke chmod.
@ 44thats44oars bestilt dette #ProceduralArt#NeuralArt. pic.twitter.com/tbMH7gsvc8
- The Deep Forger (@DeepForger) 6. september 2015
Bruker Deep Style
OK, vi har det godt. Å bruke programvaren er ganske enkelt.
Forsikre deg om at du er i DeepStyle / nevral stil katalog i terminalen. Nå trenger du noen bilder å jobbe med. Last dem ned fra Internett (eller hva som helst), og kopier dem deretter til DeepStyle / neural-stil mappe ved hjelp av filleseren.
Nå kan du bruke kommandolinjen til å behandle individuelle bilder. Formatet er ganske greit:
th neural_style.lua -style_image YOURPAINTINGHERE.jpg - content_image YOURPHOTOHERE.jpg -gpu -1
(Det er klart at du må bytte ut bitene i ALLE CAPS med navnene på filene dine).
Det vil få det nevrale nettverket i gang. Den vil løpe i omtrent en time og spytte ut nye delvis konvergerte bilder hvert par minutter til den er ferdig. De -gpu -1
flagget hindrer det i å prøve å få tilgang til GPU-en din.
Etter flere timer med å prøve (og miste operativsystemet flere ganger) klarte jeg ikke å få Ubuntu og CUDA til å spille fint med GPUen min (en NVIDIA GTX 970). Hvis du har mer hell med det, vil du installere CUDA og cudann.torch (se github repo for mer informasjon). Hvis ikke, er det bra - det vil fortsatt fungere ved å bruke CPU-en din; det vil bare være litt tregere.
Hvis du har problemer med å få alt dette til å fungere, er det bare å spørre meg i kommentarfeltet, så gjør jeg mitt beste for å hjelpe deg.
resultater
Her er noen bilder jeg har generert de siste par dagene. Resultatene er blandede, men mange av dem er ganske imponerende.

Klikk her for full oppløsning.
Denne er av min venn Zack på en tur til Yellowstone. Stilen kommer fra et abstrakt maleri, skapt av Theresa Paden. Jeg var nysgjerrig på å se hvordan systemet ville gjøre det ved bruk av et bilde uten struktur. Resultatene er ganske pene, og du kan definitivt se likhetene med stilbildet.

Klikk her for full oppløsning.
Denne kommer med tillatelse fra en av favorittartistene mine, Charles Demuth (se: Røkelse av en ny kirke, og Figur 5 i gull). Interessant er at Demuth er en av de primære visuelle inspirasjonene til kunsten å Team Fortress 2 Team Fortress 2: Det gratis spill Steam-spillet du må spilleEr Team Fortress 2 bare et raskt spill for å teste grafikk og ytelse, eller er det et spill verdt å spille gjentatte ganger? Les mer , som du kan se fra stilbildet.
Jeg matet det til et bilde av Jersey City som jeg fant på Wikimedia. Resultatene er... ganske bra. Den tok ikke opp vinkelen på Demuths stil, men den plukket absolutt opp det myke, strukturerte utseendet og fargepaletten.

Klikk her for full oppløsning.
Denne er et forsøk på å generere en syntetisk O’Keeffe, ved å bruke et ganske jordisk bilde av noen blomster jeg fant. Resultatene er ærlig talt spektakulære. Estetisk er dette et av favorittresultatene mine. Rikdommen i O’Keeffes farger og former kommer tydelig gjennom. De lagdelte kantene på blomsterbladene blir kantene på bladene i bakgrunnen. Blomstene løses i farger og blir nesten abstrakte.
Det ville være et bra maleri hvis et menneske gjorde det. Jeg er veldig fristet til å bruke et par dager på å lage en versjon av denne i høyere oppløsning og få den innrammet.

Klikk her for full oppløsning.
Her er min venn Shannon i Halloween-drakten hennes, i form av et Picasso-trykk. Interessant nok valgte enheten å male den nedre delen av ansiktet hvitt (ligner på fargeoppsettet til Picasso-stykket). Jeg er ikke sikker på om dette var en tilfeldighet eller ikke, men resultatene er slående. Det ser ut til å ha korrekt identifisert håret til Shannon på venstre side, og tegnet det på nytt ved å bruke fargen og streken fra håret i stilbildet. Ditto for hatten sin.
Dette er en av brikkene der begrensningene i teknikken begynner å bli klare. Hvis Picasso faktisk maler Shannon, ville han kastet strukturen i ansiktet hennes og skjevt funksjonene for å oppnå den effekten han ønsket. Dette systemet forstår ikke de slags konsepter på høyt nivå, og klarer bare å etterligne overfladiske aspekter av stilen, som de mørke, kantete linjene og fargepaletten.

Klikk her for full oppløsning.
Ganske enkelt: et bilde av Eiffeltårnet og Van Goghs annen Stjerneklar natt. Det gjør en god jobb å gjøre skyen i en Van Gogh-ey-stil, til tross for fraværet av skyer i det originale bildet. Det gjør også en god jobb å oversette scenen fra dag til natt.
Jeg var ikke sikker på hvorfor den bestemte seg for å gjengi spissen av Fiffeltårnet som en ildsøyle. Det ser kult ut, men det er ikke egentlig forsvarlig ut fra inndataene. Da innså jeg at stilbildet har tretten lange, vertikale gule striper i seg, i form av refleksjonene i vannet. Det er en ganske massiv klynge, gitt så lite treningsdata. Den stakkars tingen har sannsynligvis lært at enhver vertikal kant med høy kontrast må være en av disse refleksjonene. Du kan se mer fremmede vertikale striper svakt i skyene.
Klikk her for full oppløsning.
Samme Van Gogh-maleri, men denne gangen ga jeg det noen faktiske stjerner å male. I dette tilfellet søylenes del av Eagle-tåken. Jeg liker resultatene - selv om du nok en gang kan se besettelsen av gule striper. Hver vertikale del av søylen blir en lys, svingete gul linje. Det er også tydelig opprørt over det grønne, som ikke forekom i treningsdataene, og gjør sitt beste for å bli kvitt den til fordel for blått og svart.
Teknologi
Noen resultater fra dette er ekstremt overbevisende, selv om teknikken har klare begrensninger. Noen bilder har elendig komposisjon, og systemet har vanskeligheter med mer abstrakte artister som Picasso - som berømt likte å forvrenge stoffet sitt og spre dets funksjoner. Algoritmen plukker opp vinkellinjene hans og farger i konflikt, men er fremdeles en slave for bildepunktverdiene. Det har ikke den forståelsen du trenger for å avvike for langt fra kildematerialet.
Det som begeistrer meg for alt dette, er at jeg ikke tror at disse begrensningene er grunnleggende.
Tilnærmingen som brukes her - trene et nettverk på ett bilde og bruk det til å konstruere et annet - er i grunnen et slags hack. Det gir nettverket veldig lite data å jobbe med. En mer avansert versjon av denne applikasjonen vil bruke et nettverk som har informasjon om mange malerier, og kanskje til og med virkelige bilder, for å gi det mye kontekst om bildet det prøver å gjøre "maling."
Et dypt grep om stil kan bare eksistere i en bredere sammenheng. Du kan ikke utlede det fra et enkelt bilde. Å designe en arkitektur som gir systemet tilgang til bredere data, kan gjøre det mulig å få mer "Menneskelignende" forståelse av bildet, og hvordan kunstnere representerer forskjellige elementer av det virkelige verden. Et slikt nettverk kan være i stand til å produsere bilder som er mer abstrakte og har en bedre sammensetning. Slike algoritmer vil slutte å være et kult leketøy (som dette) og bli en måte å produsere faktisk, original kunst.
Noe som er en veldig særegen tanke, på noen måter.
Lag dine egne bilder
Hvis du får et skuffende resultat, kan du leke deg litt med alternativene for å prøve å få mer overbevisende resultater. Den fullstendige listen er på Github. De viktige er
- -innhold_vekt-verdi Hvor mye å vekt på gjenoppbyggingstiden for innholdet. Standard er 5e0.
- -stil_vekt-verdi: Hvor mye vekt å gi til stilbildet. Standard er 1e2.
- -style_scale - verdi: Hvor stort bildeoppdateringer skal systemet analysere (Større blir mer abstrakt). Standard er 1.0.
Når du har fått alt tilfredsstillende, vennligst legg inn de mest interessante bildene i kommentarene. Jeg er virkelig interessert i å se hva dere kommer på.
Bildetillegg: menneskelig hjerne maler via Shutterstock
Andre er en skribent og journalist med base i Sørvest, og garantert å være funksjonell opptil 50 grader Celcius, og er vanntett til en dybde på tolv meter.