Annons

Neurala nätverk kan göra många saker. De kan tolka bilder, förstå våra röster 6 Google Now-funktioner som kommer att förändra hur du söker Du kanske redan använder Google Nu på din Android-enhet, men får du allt du kan ut ur det? Att känna till dessa små funktioner kan göra en stor skillnad. Läs mer , och översätta konversationer Så fungerar Skypes Star Trek TranslatorSkypes nya översättningsfunktion erbjuder något som drömts om sedan Star Trek - ett enkelt sätt att kommunicera över olika språk. Läs mer . Men visste du att de också kan måla?

Ett nyligen genomfört forskningsdokument (med titeln "En neurologisk algoritm av konstnärlig stil“) Har startat ett stort antal online-diskussioner med några slående visuella exempel. I huvudsak diskuterar artikeln en teknik för att träna en djupa neurala nätverk Microsoft vs Google - Vem leder det artificiella intelligensloppet?Artificiella intelligensforskare gör konkreta framsteg, och människor börjar prata allvarligt om AI igen. De två titanerna som leder den artificiella intelligensen är Google och Microsoft. Läs mer

instagram viewer
att separera konstnärlig stil från bildstruktur och kombinera en bilds stil med en annan. Resultatet av allt detta är att du kan träna ett enormt neuralt nätverk för att förvandla fotografier till "neurala" målningar ”som ser ut som om de målades av kända konstnärer -” digitala förfalskningar ”, så till tala.

Här är några exempel från artikeln. Den första bilden är originalet. De senare bilderna är de genererade resultaten, med måleriet från vilken stilen samplades visas i miniatyr.

PaperImages

De ursprungliga forskarna har tyvärr inte släppt sin kod. Vissa oförskämda programmerare har dock replikerat sina resultat under de senaste dagarna, och deras kod är tillgänglig, öppen källkod på Internet. Allt du behöver för att köra det är en linux-maskin och lite tålamod.

Idag ska jag gå igenom hur du gör det och visa dig några av mina egna resultat. Du kan tänka på detta som en lös uppföljare till vår DeepDream handledning Skapa dina egna konstgjorda drömmar med Googles "DeepDream"Har du sett de trippy bilderna komma ut från DeepDream? Vill du göra dina egna? Sök inte mer! Läs mer . Det är lite komplicerat, men alla med en Linux-maskin kan följa med - ingen kodupplevelse behövs.

Jag förvandlade en Picasso-ljusmålning till en Picasso-målning med #DeepStyle! pic.twitter.com/cjkEoIhVcF

- James Blaha (@jamesblaha) 5 september 2015

Ställa in programvaran

Först och främst, om du inte har ett bråttom eller inte har en Linux-maskin kan du fortfarande spela med DeepStyle med hjälp av DeepForger Twitter-bot (skicka den en bild och en stil, så svarar den så småningom med de resultat du vill ha). Om du vill bearbeta fler bilder snabbt (och med mer kontroll över resultaten) kan du läsa vidare för handledning.

Först bör du se till att du har en aktuell kopia av Ubuntu (14.04 är det jag använde). Du borde ha minst några extra spelningar på hårddiskutrymmet. För mer information, se vår handledning om dubbelstart Ubuntu tillsammans med Windows Trött på Windows 8? Hur du startar Windows och Ubuntu med dubbel startOm du upptäcker att Windows 8 inte riktigt är din kopp te och du inte har någon möjlig väg att nedgradera, kan det vara en bra idé att dubbla starta med Linux för att ha ett alternativ ... Läs mer . Du kommer också att behöva root-privilegier, så se till att du gör det innan du fortsätter.

Grundläggande verktyg

Till höger om fladdermattan är detta ett öppen källkodsprojekt, så vi kommer att vilja ha det Git installerad. Git är den guldstandard för versionskontrollprogramvara Vad är git och varför du ska använda versionskontroll om du är en utvecklareSom webbutvecklare, mycket av tiden vi tenderar att arbeta på lokala utvecklingswebbplatser bara ladda upp allt när vi är klara. Det går bra när det bara är dig och förändringarna är små, ... Läs mer . I stort sett är varje open source-projekt värt att veta om värd på Github.

För att ladda ner och installera Git, bara öppna en terminal och skriv "sudo apt-get install git”Och accepterar installatörens krav.

Nästa: vi ska ställa in några grunder verktyg behövs för att programvaran ska fungera.

Installera först Lua. Detta är det språk som verktyget är skrivet på. Det är ganska enkelt. Bara Skriv "sudo apt-get install lua5.2”Och följ installationsprocessen.

För det andra kommer vi att få Luarocks. Detta är det verktyg som gör det lättare att installera andra verktyg (tycker du inte om Linux?). För den här, skriv "sudo apt-get install luarocks”Och följ installationsstegen.

För det tredje kommer vi att installera Luajit. Detta är en just-in-time kompilator för Lua som kommer att göra våra liv lite enklare. Bara Skriv "sudo apt-get install luajit.”

Än så länge är allt bra.

Jag är en bot som skapar förfalskningar från dina foton i stil med kända målare. Klicka för instruktioner nedan! pic.twitter.com/3MpThDNwRE

- The Deep Forger (@DeepForger) 5 september 2015

ramar

Nästa gång kommer vi att installera Ficklampa, ett vetenskapligt ramverk för dator- och maskininlärning som utgör ryggraden i applikationen. Tyvärr kan den här inte installeras med apt-get (standard Ubuntu-pakethanteraren).

Lyckligtvis har de en enhetsinstallationsprogram som använder viss kommandoradsmagi. Återgå till din terminal och ange “curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-all | våldsamt slag“.

När du är klar skriver du "luajit -ltorch“. Detta kommer att föra upp facklan-gränssnittet och verifiera att allt var korrekt installerat.

Gå ut ur det.

Nu kommer vi att installera loadcaffe - ett specifikt neuralt nätverkspaket. Installera dess enda beroende genom att skriva "sudo apt-get install libprotobuf-dev protobuf-compiler“. Sedan kan du installera själva paketet med "sudo luarocks installerar loadcaffe ".

@Johnicholas Din förfalskning, avec stil av School of Rembrandt van Rijn. #Digital konst#StyleNetpic.twitter.com/pf0sZxWkaT

- The Deep Forger (@DeepForger) 7 september 2015

Dubbelkontrollberoende

Slutligen kommer vi att uppdatera förhandsvis vissa saker bara för att se till att allt går smidigt.

Skriv "sudo luarocks installerar bild”För att se till att ditt bildpaket är uppdaterat. Nästa, ange “luarocks installera nn”Som kommer att göra samma sak för ditt" nn "-paket.

Installera Deep Style

OK! Just nu är vi redo att installera själva programvaran. För renhets skull, skapa en ny mapp i din hemmakatalog ('mkdir DeepStyle'). Ange sedan det med "cd Deepstyle“. Skriv nu "sudo git klon https://github.com/jcjohnson/neural-style.git".

Därefter måste vi ladda ner modellen. Gör en kopp kaffe eller något, det tar lite tid. Tillbaka till terminalen och skriv "sudo sh modeller / download_models.sh“. Det kommer att starta en lång, detaljerad nedladdningsprocess. Om det misslyckas på grund av behörighetsfel kan du prova att ge dig själv läs-skrivbehörigheter i de relevanta mapparna med chmod.

@ 44thats44oars beställde detta #ProceduralArt#NeuralArt. pic.twitter.com/tbMH7gsvc8

- The Deep Forger (@DeepForger) 6 september 2015

Med djup stil

Okej, vi är bra att gå. Att använda programvaran är ganska enkelt.

Se till att du är i DeepStyle / neural-stil katalog i terminalen. Nu kommer du att behöva några bilder att arbeta med. Ladda ner dem från Internet (eller vad som helst) och kopiera dem sedan till DeepStyle / neural-stil mapp med filwebbläsaren.

Nu kan du använda kommandoraden för att behandla enskilda bilder. Formatet är ganska enkelt:

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

(Uppenbarligen måste du byta ut bitarna i ALL CAPS med namnen på dina filer).

Det kommer att få det neurala nätverket igång. Det kommer att köras i ungefär en timme och släpper ut nya delvis konvergerade bilder med några minuter tills det är klart. De -gpu -1 flaggan hindrar den från att försöka komma åt din GPU.

Efter flera timmars försök (och murning av operativsystemet flera gånger) kunde jag inte få Ubuntu och CUDA att spela trevligt med min GPU (en NVIDIA GTX 970). Om du har mer tur med det vill du installera CUDA och cudann.torch (se github repo för mer information). Om inte, är det bra - det fungerar fortfarande med din CPU; det kommer bara att bli lite långsammare.

Om du har problem med allt detta fungerar, fråga mig bara i kommentarerna, så ska jag göra mitt bästa för att hjälpa dig.

Resultat

Här är några bilder jag har genererat de senaste dagarna. Resultaten är blandade, men många av dem är ganska imponerande.

zack-Paden-komposit

Klicka här för full upplösning.

Den här är av min vän Zack på en vandringstur till Yellowstone. Stilen kommer från en abstrakt målning, skapad av Theresa Paden. Jag var nyfiken på hur systemet skulle klara sig med en bild utan absolut struktur. Resultaten är ganska snygga, och du kan definitivt se likheterna med stilbilden.

Jersey City-Demuth-komposit

Klicka här för full upplösning.

Den här kommer med tillstånd av en av mina favoritartister, Charles Demuth (se: Rökelse av en ny kyrka, och Figur 5 i guld). Intressant nog är Demuth en av de främsta visuella inspirationerna till konsten att Team Fortress 2 Team Fortress 2: Det fri-till-spela ångspel du måste spelaÄr Team Fortress 2 bara ett snabbt spel för att testa grafik och prestanda, eller är det ett spel värt att spela upprepade gånger? Läs mer , som du kan se från stilbilden.

Jag matade en bild av Jersey City som jag hittade på Wikimedia. Resultaten är... ganska bra. Den tog inte upp vinklingen i Demuths stil, men den tog verkligen upp det mjuka, strukturerade utseendet och färgpaletten.

blommor-OKeefe-komposit

Klicka här för full upplösning.

Den här är ett försök att skapa en syntetisk O’Keeffe med en ganska vardaglig bild av några blommor jag hittade. Resultaten är uppriktigt sagt spektakulära. Estetiskt är detta ett av mina favoritresultat. O’Keeffes färger och former rikedom kommer tydligt igenom. De skiktade kanterna på blommablommorna blir kanterna på bladen i bakgrunden. Blommorna själva upplöses i färger och blir nästan abstrakta.

Det skulle vara en bra målning om en människa gjorde det. Jag är mycket frestad att spendera ett par dagar på att göra en version med högre upplösning av den här och få den inramad.

shannon-picasso-komposit

Klicka här för full upplösning.

Här är min vän Shannon i hennes Halloween-kostym, i form av ett Picasso-tryck. Intressant nog valde enheten att måla den undre delen av hennes ansikte vitt (liknande färglayouten på Picasso-biten). Jag är inte säker på om detta var en slump eller inte, men resultaten är slående. Det verkar också ha korrekt identifierat Shannons hår på vänster sida och ritat om det med färger och linjer från håret i stilbilden. Ditto för sin hatt.

Detta är en av bitarna där teknikens begränsningar börjar bli tydliga. Om Picasso faktiskt målade Shannon, skulle han ha kastat bort ansiktsstrukturen och sned åt funktionerna för att uppnå den effekt han ville ha. Det här systemet förstår inte sådana slags koncept på hög nivå och kan bara imitera ytliga aspekter av stilen, som de mörka, kantiga linjerna och färgpaletten.

eiffel-vangogh-komposit

Klicka här för full upplösning.

Ganska enkelt: en bild av Eiffeltornet och Van Goghs Övrig Stjärnklar natt. Det gör ett bra jobb att göra molnet i en Van Gogh-ey-stil, trots frånvaron av moln i originalbilden. Det gör också ett bra jobb med att översätta scenen från dag till natt.

Jag var inte säker på varför den beslutade att göra spetsen av Fiffeltornet som en eldstolpe. Det ser coolt ut, men det är inte riktigt motiverat med inmatningsdata. Då insåg jag att stilbilden har tretton långa, vertikala gula remsor i den, i form av reflektionerna i vattnet. Det är ett ganska massivt kluster, med så lite träningsdata. Den dåliga saken har förmodligen lärt sig att varje vertikal kant med hög kontrast måste vara en av dessa reflektioner. Du kan se mer främmande vertikala ränder svagt i molnen.

nebula-vangogh-komposit

Klicka här för full upplösning.

Samma Van Gogh-målning, men den här gången gav jag den några faktiska stjärnor att måla. I detta fall pelarnas del av Eagle nebula. Jag gillar resultaten - även om du än en gång kan se dess besatthet med gula ränder. Varje vertikal del av pelaren blir en ljus, wobbly gul linje. Det är också tydligt upprörd av greenen, som inte inträffade i träningsdata, och gör sitt bästa för att bli av med det till förmån för blått och svart.

Teknologi

Vissa resultat härifrån är extremt övertygande, även om tekniken har tydliga begränsningar. Vissa bilder har usel komposition, och systemet har svårt med mer abstrakta konstnärer som Picasso - som känt gillade att snedvrida sitt ämne och sprida dess funktioner. Algoritmen plockar upp hans vinkellinjer och krossar färger, men är fortfarande en slav för bildens pixelvärden. Det har inte den förståelse du behöver för att avvika för långt från källmaterialet.

Det som lockar mig med allt detta är att jag inte tror att dessa begränsningar är grundläggande.

Den metod som används här - träna ett nätverk på en bild och använda den för att konstruera en annan - är i grunden ett slags hack. Det ger nätverket mycket lite data att arbeta med. En mer avancerad version av den här applikationen skulle använda ett nätverk som har information om många målningar, och kanske till och med riktiga bilder, för att ge det gott om sammanhang om bilden den försöker "måla."

Ett djupt grepp om stil kan bara existera i ett bredare sammanhang. Du kan inte härleda från en enda bild. Att utforma en arkitektur som ger systemet tillgång till bredare data kan göra det möjligt att få mer "Mänsklig" förståelse av bilden och hur konstnärer representerar olika delar av det verkliga värld. Ett sådant nätverk kanske kan producera bilder som är mer abstrakta och har en bättre komposition. Sådana algoritmer skulle upphöra att vara en cool leksak (som den här) och bli ett sätt att producera faktisk, originalkonst.

Vilket är en mycket speciell tanke, på vissa sätt.

Göra dina egna bilder

Om du får ett nedslående resultat kan du leka med alternativen lite för att försöka få mer övertygande resultat. Den fullständiga listan finns på Github. De viktiga är

  • -innehåll_vikt -värde Hur mycket som ska tynga innehållsrekonstruktionsperioden. Standard är 5e0.
  • -stil_vikt -värde: Hur mycket vikt att ge till stilbilden. Standard är 1e2.
  • -style_scale - värde: Hur stora bildfixar ska systemet analysera (Större blir mer abstrakt). Standard är 1,0.

När du har fått allt som fungerar tillfredsställelse, lägg upp dina mest intressanta bilder i kommentarerna. Jag är verkligen intresserad av att se vad ni kommer med.

Bildkrediter: mänsklig hjärnmålare via Shutterstock

En författare och journalist baserad på sydväst, garanteras Andre att vara funktionell upp till 50 grader Celcius och är vattentät till ett djup av tolv meter.