Opret dine egne Neural Paintings med DeepStyle & Ubuntu

  • Edmund Richardson
  • 0
  • 4145
  • 1006
Reklame

Neurale netværk kan gøre en masse ting. De kan fortolke billeder, forstå vores stemmer 6 Google Nu-funktioner, der ændrer, hvordan du søger 6 Google Nu Funktioner, der ændrer, hvordan du søger Du bruger muligvis allerede 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. , og oversætte samtaler Sådan fungerer Skypes Star Trek-oversætter Sådan fungerer Skypes Star Trek-oversætter Skypes nye oversættelsesfunktion tilbyder noget, der drømmes om siden Star Trek - en ubesværet måde at kommunikere på tværs af sprog. . Men vidste du, at de også kan male?

En nylig forskningsartikel (med titlen “En neural algoritme af kunstnerisk stil“) har skudt ud af en flust af online diskussion med nogle slående visuelle eksempler. I det væsentlige diskuterer papiret en teknik til at træne et dybt neuralt netværk Microsoft vs Google - Hvem fører det kunstige intelligensløb? Microsoft vs Google - Hvem fører lederen af ​​kunstig intelligens? Kunstige intelligensforskere gør konkrete fremskridt, og folk begynder at tale alvorligt om AI igen. De to titaner, der fører det race af kunstig intelligens, er Google og Microsoft. at adskille kunstnerisk stil fra billedstruktur og kombinere stilen i et billede med strukturen i et andet. Resultatet af alt dette er, at du kan træne et enormt neuralt netværk til at gøre fotografier til “neurale malerier” det ser ud som om de er 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 samplet, vist i miniature.

De originale forskere har desværre ikke frigivet deres kode. Imidlertid har nogle uærlige programmerere replikeret deres resultater i de sidste par dage, og deres kode er tilgængelig, open source på Internettet. Alt hvad du behøver for at køre det er en linux-maskine og lidt tålmodighed.

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

Jeg forvandlede et Picasso-lysmaleri til et Picasso-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 det meget travlt eller ikke har en Linux-maskine, kan du stadig lege med DeepStyle ved hjælp af DeepForger Twitter-bot (send det et billede og en stil, og det vil til sidst svare med de resultater, du vil have). Hvis du vil behandle flere billeder hurtigt (og med mere kontrol over resultaterne), skal du læse videre til tutorial.

Først skal du sikre dig, at du har en ajourført kopi af Ubuntu (14.04 er det, jeg brugte). Du skal have mindst et par ekstra spillejobs på harddiskpladsen. For mere information, se vores tutorial om dual-boot Ubuntu sammen med Windows Træt af Windows 8? Sådan gør du dual boot Windows & Ubuntu træt af Windows 8? Sådan startes Windows og Ubuntu med dobbelt start Hvis du opdager, at Windows 8 ikke er rigtig din kop te, og du ikke har nogen gennemførlig sti til at nedjustere, kan det være en god ide at dual boot med Linux for at have et alternativ…. Du har også brug for rodrettigheder, så sørg for at gøre det, før du fortsætter.

Grundlæggende værktøjer

Højre til flagermus, dette er et open source-projekt, så vi vil gerne have det git installeret. Git er guldstandarden for versionskontrolsoftware Hvad er Git og hvorfor du skal bruge versionskontrol, hvis du er en udvikler Hvad er Git og hvorfor du skal bruge versionskontrol, hvis du er udvikler Som webudviklere, meget af tiden vi har en tendens til at arbejde på lokale udviklingswebsteder og upload bare alt, når vi er færdige. Dette er fint, når det bare er dig, og ændringerne er små,…. Stort set hvert open source-projekt, der er værd at vide om, er vært på Github.

For at downloade og installere Git skal du bare åbne en terminal og skrive “sudo apt-get install git” og accepterer installatørens krav.

Næste: vi skal til opsæt nogle grundlæggende værktøjer nødvendigt for at få softwaren til at fungere.

Installer først Lua. Dette er det sprog, som værktøjet er skrevet i. Det er temmelig enkelt. Bare skriv “sudo apt-get install lua5.2” og følg installationsprocessen.

For det andet får vi Luarocks. Dette er det værktøj, der gør det lettere at installere andre værktøjer (elsker du ikke Linux?). For denne skal du skrive “sudo apt-get install luarocks” og følg installationstrinnene.

For det tredje installerer vi Luajit. Dette er en just-in-time compiler til Lua, der vil gøre vores liv lidt enklere. Bare skriv “sudo apt-get install luajit.”

Så langt så godt.

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

- The Deep Forger (@DeepForger) 5. september 2015

rammer

Herefter skal vi installere Torch, en videnskabelig computer- og maskinlæringsramme, der udgør rygraden i applikationen. Desværre kan denne ikke installeres ved hjælp af apt-get (standard Ubuntu-pakkehåndteringen).

Heldigvis har de et installationsprogram, der bruger nogle kommandolinjemagier. Vend tilbage til din terminal og indtast “curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-all | bash“.

Når du er færdig, skal du indtaste “luajit -ltorch“. Dette åbner fakkelgrænsefladen og kontrollerer, at alt var installeret korrekt.

Gå ud af det.

Nu skal vi installere loadcaffe - en neurale netværksspecifik pakke. Installer dets eneste afhængighed ved at skrive “sudo apt-get install libprotobuf-dev protobuf-compiler“. Derefter kan du installere selve pakken vha “sudo luarocks installerer loadcaffe ".

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

- The Deep Forger (@DeepForger) 7. september 2015

Dobbeltkontrol af afhængigheder

Endelig vil vi forudgående opdatere nogle ting bare for at sikre, at alt går gnidningsløst.

Type “sudo luarocks installerer billede” for at sikre dig, at din billedpakke er opdateret. Indtast derefter “luarocks installerer nn” hvilket 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. Opret en ny mappe i dit hjemmekatalog ('mkdir DeepStyle') for renligheds skyld. Indtast det derefter ved hjælp af “cd Deepstyle“. Skriv nu “sudo git klon https://github.com/jcjohnson/neural-style.git ".

Herefter skal vi downloade modellen. Lav en kop kaffe eller noget, dette vil tage et stykke tid. Tilbage til terminalen, og skriv “sudo sh modeller / download_models.sh“. Det starter en lang, detaljeret downloadproces. Hvis det mislykkes på grund af tilladelsesfejl, kan du prøve at give dig selv læse-skrive tilladelser på de relevante mapper ved hjælp af chmod.

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

- The Deep Forger (@DeepForger) 6. september 2015

Brug af Deep Style

Okay, vi er gode til at gå. Brug af softwaren er ret enkel.

Sørg for, at du er i DeepStyle / neural-stil katalog i terminalen. Nu har du brug for nogle billeder at arbejde på. Download dem fra Internettet (eller hvad som helst), og kopier dem derefter til DeepStyle / neural-stil mappe ved hjælp af filbrowser.

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

(Det er klart, at du bliver nødt til at erstatte bidderne i ALLE CAPS med navnene på dine filer).

Det får det neurale netværk i gang. Det kører i cirka en time og spytter nye delvist konvergerede billeder ud med nogle få minutter, indtil det er færdigt. Det -gpu -1 flag forhindrer det i at prøve at få adgang til din GPU.

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

Hvis du har problemer med at få alt dette til at fungere, skal du bare spørge mig i kommentarerne, så gør jeg mit bedste for at hjælpe dig.

Resultater

Her er nogle billeder, jeg har genereret i de sidste par dage. Resultaterne er blandede, men mange af dem er ret imponerende.

Klik her for fuld opløsning.

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

Klik her for fuld opløsning.

Denne kommer med tilladelse fra en af ​​mine yndlingsartister, Charles Demuth (se: Røgelse af en ny kirke og figur 5 i guld). Interessant nok er Demuth en af ​​de primære visuelle inspirationer til kunsten at Team Fortress 2 Team Fortress 2: The Free-to-play Steam-spil, du skal spille Team Fortress 2: The Free-to-play Steam-spil, du skal spille, er Team Fortress 2 bare et hurtigt spil til test af grafik og ydeevne, eller er det et spil værd at spille gentagne gange? , som du kan se fra stilbilledet.

Jeg fodrede det med et billede af Jersey City, som jeg fandt på Wikimedia. Resultaterne er ... temmelig gode. Det fandt ikke op på vinklen i Demuths stil, men det tog bestemt det bløde, strukturerede look og farvepalet.

Klik her for fuld opløsning.

Denne er et forsøg på at generere en syntetisk O'Keeffe ved hjælp af et temmelig jordisk billede af nogle blomster, jeg fandt. Resultaterne er helt ærligt spektakulære. Æstetisk er dette et af mine yndlingsresultater. Rigdom i O'Keeffes farver og former kommer tydeligt igennem. De lagdelte kanter af blomsterblade bliver kanterne af bladene i baggrunden. Selve blomsterne opløses 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 bruge et par dage på at gengive en version med højere opløsning af denne og få den indrammet.

Klik her for fuld opløsning.

Her er min ven Shannon i hendes Halloween-kostume ved hjælp af et Picasso-tryk. Interessant nok valgte enheden at male den nederste del af hendes ansigt hvidt (svarende til farvelayoutet på Picasso-stykket). Jeg er ikke sikker på, om dette var tilfældigt eller ej, men resultaterne er slående. Det ser ud til at have identificeret Shannons hår korrekt på venstre side og tegnet det igen ved hjælp af farve og linjearbejde fra håret i stilbilledet. Ditto for sin hat.

Dette er et af de stykker, hvor begrænsningerne i teknikken begynder at blive tydelige. Hvis Picasso faktisk malede Shannon, ville han have kastet strukturen i hendes ansigt og skæve funktionerne for at opnå den effekt, han ville have. Dette system forstår ikke disse slags koncepter på højt niveau og er i stand til kun at efterligne overfladiske aspekter af stilen, som de mørke, kantede linjer og farvepalet.

Klik her for fuld opløsning.

Temmelig ligetil: et billede af Eiffeltårnet og Van Goghs Andet Stjerneklar nat. Det gør et godt stykke arbejde ved at gengive skyen i en Van Gogh-ey-stil til trods for fraværet af skyer i det originale billede. Det gør også et godt stykke arbejde at oversætte scenen fra dag til nat.

Jeg var ikke sikker på, hvorfor det besluttede at gøre spidsen af ​​Fiffeltårnet som en søjle af ild. Det ser fedt ud, men det er ikke rigtig forsvarligt ud fra inputdataene. Derefter indså jeg, at stilbilledet har tretten lange, lodrette gule strimler i sig, i form af refleksioner i vandet. Det er en temmelig massiv klynge, givet så lidt træningsdata. Den dårlige ting har sandsynligvis lært, at enhver lodret kant med høj kontrast skal være en af ​​disse reflektioner. Du kan se flere fremmede lodrette striber svagt i skyerne.

Klik her for fuld opløsning.

Samme Van Gogh-maleri, men denne gang gav jeg det nogle faktiske stjerner at male. I dette tilfælde søjlens del af Eagle-tågen. Jeg kan godt lide resultaterne - selvom du endnu en gang kan se dens besættelse af gule striber. Hver lodrette del af søjlen bliver en lys, wobbly gul linje. Det er også klart forstyrret af det grønne, der 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 heraf er ekstremt overbevisende, selvom teknikken har klare begrænsninger. Nogle billeder har elendig sammensætning, og systemet har svært ved mere abstrakte kunstnere som Picasso - som berømt kunne lide at fordreje sit emne og sprede dets funktioner. Algoritmen henter sine vinkellinjer og sammenstødde farver, men er stadig en slave for billedets pixelværdier. Det har ikke den forståelse, du har brug for for at afvige for langt fra kildematerialet.

Det, der begejstrer mig for alt dette, er, at jeg ikke synes, at disse begrænsninger er grundlæggende.

Den tilgang, der bruges her - træne et netværk på et billede og bruge det til at konstruere et andet - er grundlæggende slags et hack. Det giver netværket meget lidt data at arbejde med. En mere avanceret version af denne applikation vil 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 prøver at “maling.”

Et dybt greb om 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 muligvis aflede et mere “menneskelignende” forståelse af billedet, og hvordan kunstnere repræsenterer forskellige elementer i den virkelige verden. Et sådant netværk kan muligvis producere billeder, der er mere abstrakte og har en bedre komposition. Sådanne algoritmer ville ophøre med at være et cool legetøj (som dette) og blive en måde at fremstille faktisk, original kunst.

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

Oprettelse af dine egne billeder

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

  • -indholdsvægt - værdi Hvor meget der skal vægtes indholdsrekonstruktionsperioden. Standard er 5e0.
  • -style_weight-værdi: Hvor meget vægt der skal gives til stilbilledet. Standard er 1e2.
  • -style_scale - værdi: Hvor stort billede af patches skal systemet analysere (Større bliver mere abstrakte). Standard er 1,0.

Når du har fået alt til at fungere til din tilfredshed, skal du skrive dine mest interessante billeder i kommentarerne. Jeg er virkelig interesseret i at se, hvad I fyrer op med.

Billedkreditter: menneskelig hjerne maler via Shutterstock




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.