Advertentie

Neurale netwerken kunnen veel dingen doen. Ze kunnen afbeeldingen interpreteren, onze stemmen begrijpen 6 Google Now-functies die de manier waarop u zoekt veranderen Mogelijk gebruikt u Google Now al op uw Android-apparaat, maar haalt u er alles uit? Kennis van deze kleine functies kan een groot verschil maken. Lees verder en conversaties vertalen Hoe werkt Star Trek Translator van SkypeDe nieuwe vertaalfunctie van Skype biedt iets waar sinds Star Trek van is gedroomd - een moeiteloze manier om in verschillende talen te communiceren. Lees verder . Maar wist je dat ze ook kunnen schilderen?

Een recent onderzoekspaper (getiteld 'Een neuraal algoritme van artistieke stijl“) Heeft een vlaag van online discussie op gang gebracht met enkele opvallende visuele voorbeelden. In wezen bespreekt de krant een techniek om een ​​te trainen diep neuraal netwerk Microsoft versus Google - Who Leads the Artificial Intelligence Race?Onderzoekers van kunstmatige intelligentie boeken tastbare vooruitgang en mensen beginnen weer serieus over AI te praten. De twee titanen die de race op kunstmatige intelligentie leiden zijn Google en Microsoft.

instagram viewer
Lees verder om de artistieke stijl te scheiden van de beeldstructuur en de stijl van de ene afbeelding te combineren met de structuur van een andere. Het resultaat van dit alles is dat je een enorm neuraal netwerk kunt trainen om foto's in “neuraal” te veranderen schilderijen 'die eruit zien alsof ze zijn geschilderd door beroemde kunstenaars -' digitale vervalsingen ', zo ook spreken.

Hier zijn enkele voorbeelden uit het artikel. De eerste afbeelding is het origineel. De latere afbeeldingen zijn de gegenereerde resultaten, waarbij het schilderij waarvan de stijl is gesampled in miniatuur wordt weergegeven.

PaperImages

De oorspronkelijke onderzoekers hebben hun code helaas niet vrijgegeven. Sommige intrepid programmeurs hebben hun resultaten de afgelopen dagen echter gerepliceerd en hun code is beschikbaar, open source op internet. Het enige dat je nodig hebt om het uit te voeren is een Linux-machine en een beetje geduld.

Vandaag ga ik je doorlopen hoe dat te doen en je enkele van mijn eigen resultaten laten zien. Je kunt dit beschouwen als een los vervolg op onze DeepDream-zelfstudie Creëer uw eigen kunstmatige koortsdromen met Google's "DeepDream"Heb je de trippy afbeeldingen gezien die uit DeepDream komen? Wilt u uw eigen maken? Zoek niet verder! Lees verder . Het is een beetje ingewikkeld, maar iedereen met een Linux-machine kan volgen - geen codeerervaring nodig.

Ik veranderde een schilderij van Picasso in een schilderij in Picasso-stijl #DeepStyle! pic.twitter.com/cjkEoIhVcF

- James Blaha (@jamesblaha) 5 september 2015

Software installeren

Ten eerste, als je geen haast hebt of geen Linux-machine hebt, kun je nog steeds met DeepStyle spelen met de DeepForger Twitter-bot (stuur het een afbeelding en een stijl, en het zal uiteindelijk antwoorden met de gewenste resultaten). Als u meer afbeeldingen snel wilt verwerken (en met meer controle over de resultaten), lees dan verder voor de tutorial.

Zorg er eerst voor dat u een bijgewerkte kopie hebt van Ubuntu (14.04 is wat ik gebruikte). Je zou op zijn minst een paar extra optredens van de harde schijf moeten hebben. Bekijk onze tutorial over voor meer informatie dual-booting Ubuntu naast Windows Moe van Windows 8? Hoe Windows & Ubuntu Dual BootAls je ontdekt dat Windows 8 niet echt jouw ding is, en je hebt geen haalbaar pad om te downgraden, is het misschien een goed idee om dual-booten met Linux om een ​​alternatief te hebben ... Lees verder . Je hebt ook rootrechten nodig, dus zorg ervoor dat je dit doet voordat je doorgaat.

Basishulpmiddelen

Rechts van de vleermuis, dit is een open-sourceproject, dus dat zullen we willen hebben Git geïnstalleerd. Git is de gouden standaard voor versiebeheersoftware Wat is Git en waarom zou je versiebeheer moeten gebruiken als je een ontwikkelaar bentAls webontwikkelaars werken we vaak aan lokale ontwikkelingssites en uploaden we gewoon alles wanneer we klaar zijn. Dit is prima als jij alleen bent en de veranderingen klein zijn, ... Lees verder . Vrijwel elk open source-project dat het weten waard is, wordt gehost op Github.

Om Git te downloaden en te installeren, open je gewoon een terminal en typ je "sudo apt-get install git'En ga akkoord met de eisen van de installateur.

Volgende: we gaan naar enkele basishulpmiddelen instellen nodig om de software te laten werken.

Installeer eerst Lua. Dit is de taal waarin de tool is geschreven. Het is vrij simpel. Typ gewoon "sudo apt-get install lua5.2'En volg het installatieproces.

Ten tweede gaan we krijgen Luarocks. Dit is de tool die het eenvoudiger maakt om andere tools te installeren (hou je niet van Linux?). Typ hiervoor 'sudo apt-get luarocks installeren'En volg de stappen van de installatie.

Ten derde gaan we installeren Luajit. Dit is een just-in-time compiler voor Lua die ons leven een beetje eenvoudiger zal maken. Typ gewoon "sudo apt-get install luajit.”

Tot zover gaat het goed.

Ik ben een bot die vervalsingen creëert op basis van je foto's in de stijl van beroemde schilders. Klik voor onderstaande instructies! pic.twitter.com/3MpThDNwRE

- The Deep Forger (@DeepForger) 5 september 2015

frameworks

Vervolgens gaan we installeren Fakkel, een wetenschappelijk computer- en machine learning-framework dat de ruggengraat van de applicatie vormt. Helaas kan deze niet worden geïnstalleerd met apt-get (de standaard Ubuntu-pakketbeheerder).

Gelukkig hebben ze een installatieprogramma met één regel dat enige opdrachtregelmagie gebruikt. Ga terug naar uw terminal en voer 'krullen -s https://raw.githubusercontent.com/torch/ezinstall/master/install-all | bash“.

Typ 'als je klaar bent'luajit -ltorch“. Hiermee wordt de fakkelinterface geopend en wordt gecontroleerd of alles correct is geïnstalleerd.

Ga daaruit weg.

Nu gaan we installeren loadcaffe - een neuraal netwerkspecifiek pakket. Installeer de enige afhankelijkheid door 'sudo apt-get install libprotobuf-dev protobuf-compiler“. Vervolgens kunt u het pakket zelf installeren met 'sudo luarocks installeren loadcaffe ".

@Johnicholas Uw vervalsing analyse, avec stijl door School of Rembrandt van Rijn. #Digitale kunst#StyleNetpic.twitter.com/pf0sZxWkaT

- The Deep Forger (@DeepForger) 7 september 2015

Afhankelijkheden dubbel controleren

Ten slotte gaan we preventief een aantal dingen bijwerken om ervoor te zorgen dat alles soepel verloopt.

Typ 'sudo luarocks installeert afbeeldingOm ervoor te zorgen dat uw afbeeldingspakket up-to-date is. Voer vervolgens 'luarocks installeren nn"Wat hetzelfde zal doen voor uw" nn "-pakket.

Diepe stijl installeren

Alright! Op dit moment zijn we klaar om de software zelf te installeren. Maak voor de netheid een nieuwe map in uw basismap (‘mkdir DeepStyle’). Voer het vervolgens in met 'cd Deepstyle“. Typ nu "sudo git kloon https://github.com/jcjohnson/neural-style.git".

Vervolgens moeten we het model downloaden. Zet een kop koffie of zo, dit kan even duren. Terug naar de terminal en typ "sudo sh modellen / download_models.sh“. Dat zal een lang en uitgebreid downloadproces starten. Als het mislukt vanwege toestemmingsfouten, probeer jezelf dan lees- / schrijfmachtigingen te geven voor de relevante mappen, met behulp van chmod.

@ 44thats44oars heeft dit in opdracht gegeven #ProceduralArt#NeuralArt. pic.twitter.com/tbMH7gsvc8

- The Deep Forger (@DeepForger) 6 september 2015

Diepe stijl gebruiken

Oké, we zijn goed om te gaan. Het gebruik van de software is vrij eenvoudig.

Zorg ervoor dat je in de DeepStyle / directory in neurale stijl in de terminal. Nu heb je wat afbeeldingen nodig om aan te werken. Download ze van internet (of wat dan ook) en kopieer ze vervolgens naar de DeepStyle / map in neurale stijl met behulp van de bestandsbrowser.

Nu kunt u de opdrachtregel gebruiken om afzonderlijke afbeeldingen te verwerken. Het formaat is vrij eenvoudig:

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

(Uiteraard moet u de blokken in ALLE CAPS vervangen door de namen van uw bestanden).

Dat zal het neurale netwerk op gang brengen. Het duurt ongeveer een uur en spuwt om de paar minuten nieuwe gedeeltelijk geconvergeerde afbeeldingen uit totdat deze zijn voltooid. De -gpu -1 vlag stopt het probeert toegang te krijgen tot uw GPU.

Na een paar uur proberen (en het besturingssysteem meerdere keren gemetseld hebben) kon ik Ubuntu en CUDA niet goed laten spelen met mijn GPU (een NVIDIA GTX 970). Als je daar meer geluk mee hebt, wil je CUDA en cudann.torch installeren (zie de github repo voor meer informatie). Zo niet, dan is dat prima - het werkt nog steeds met uw CPU; het zal gewoon een beetje langzamer zijn.

Als je problemen hebt om dit allemaal te laten werken, vraag het me dan gewoon in de reacties en ik zal mijn best doen om je te helpen.

resultaten

Hier zijn enkele afbeeldingen die ik de afgelopen dagen heb gegenereerd. De resultaten zijn gemengd, maar veel daarvan zijn behoorlijk indrukwekkend.

zack-paden samengestelde

Klik hier voor de volledige resolutie.

Deze is van mijn vriend Zack op een wandeltocht naar Yellowstone. De stijl komt van een abstract schilderij, gemaakt door Theresa Paden. Ik was benieuwd hoe het systeem zou werken met een afbeelding zonder structuur. De resultaten zijn vrij netjes en je kunt zeker de overeenkomsten met de stijlafbeelding zien.

Jersey City-Demuth-composiet

Klik hier voor de volledige resolutie.

Deze komt met dank aan een van mijn favoriete artiesten, Charles Demuth (zie: Wierook van een nieuwe kerken Figuur 5 in goud). Interessant is dat Demuth een van de belangrijkste visuele inspiratiebronnen is voor de kunst van Team Fortress 2 Team Fortress 2: Het gratis te spelen Steam-spel dat u moet spelenIs Team Fortress 2 slechts een snelle game om graphics en prestaties te testen, of is het een game die het waard is om herhaaldelijk te spelen? Lees verder , zoals u kunt zien aan de stijlafbeelding.

Ik gaf het een afbeelding van Jersey City die ik op Wikimedia vond. De resultaten zijn... redelijk goed. Het heeft de hoekigheid van de stijl van Demuth niet overgenomen, maar het heeft zeker de zachte, gestructureerde look en het kleurenpalet overgenomen.

flowers-okeefe-composiet

Klik hier voor de volledige resolutie.

Deze is een poging om een ​​synthetische O'Keeffe te genereren, met behulp van een vrij alledaagse foto van sommige bloemen die ik heb gevonden. De resultaten zijn eerlijk gezegd spectaculair. Esthetisch is dit een van mijn favoriete resultaten. De rijkdom van de kleuren en vormen van O'Keeffe komen duidelijk tot uiting. De gelaagde randen van de bloembladen worden de randen van de bladeren op de achtergrond. De bloemen zelf lossen op in kleuren en worden bijna abstract.

Het zou een goed schilderij zijn als een mens het zou doen. Ik ben erg verleid om een ​​paar dagen door te brengen met het weergeven van een versie met een hogere resolutie en deze in te lijsten.

Shannon-picasso-composiet

Klik hier voor de volledige resolutie.

Hier is mijn vriendin Shannon in haar Halloween-kostuum, via een Picasso-print. Interessant genoeg koos het apparaat ervoor om het onderste deel van haar gezicht wit te schilderen (vergelijkbaar met de kleurindeling van het Picasso-stuk). Ik weet niet zeker of dit toeval was of niet, maar de resultaten zijn opvallend. Het lijkt ook Shannons haar aan de linkerkant correct te hebben geïdentificeerd en opnieuw te hebben getekend met de kleur en het lijnwerk van het haar in de stijlafbeelding. Idem voor haar hoed.

Dit is een van de stukken waar de beperkingen van de techniek duidelijk worden. Als Picasso eigenlijk Shannon schilderde, had hij de structuur van haar gezicht weggegooid en de kenmerken scheefgetrokken om het gewenste effect te bereiken. Dit systeem begrijpt dat soort concepten op hoog niveau niet en kan alleen oppervlakkige aspecten van de stijl imiteren, zoals de donkere, hoekige lijnen en het kleurenpalet.

eiffel-vangogh-composiet

Klik hier voor de volledige resolutie.

Vrij eenvoudig: een foto van de Eiffeltoren en die van Van Gogh anders Sterrennacht. Het doet goed werk door de wolk in een Van Gogh-achtige stijl weer te geven, ondanks het ontbreken van wolken in de oorspronkelijke afbeelding. Het vertaalt de scène ook goed van dag naar nacht.

Ik wist niet zeker waarom hij besloot om de punt van de Fiffeltoren als een vuurkolom te maken. Het ziet er cool uit, maar het is niet echt te rechtvaardigen op basis van de invoergegevens. Toen realiseerde ik me dat het stijlbeeld dertien lange, verticale gele stroken bevat, in de vorm van de reflecties in het water. Dat is een behoorlijk massieve cluster, gegeven zo weinig trainingsgegevens. Het arme ding heeft waarschijnlijk geleerd dat elke verticale rand met hoog contrast een van die reflecties moet zijn. U kunt meer vreemde verticale strepen vaag in de wolken zien.

nevel-vangogh-composiet

Klik hier voor de volledige resolutie.

Hetzelfde schilderij van Van Gogh, maar deze keer gaf ik het enkele echte sterren om te schilderen. In dit geval het pilarengedeelte van de Adelaarsnevel. Ik hou van de resultaten - hoewel je nogmaals de obsessie met gele strepen kunt zien. Elk verticaal deel van de pilaar wordt een heldere, wiebelige gele lijn. Het is ook duidelijk overstuur door het groen, dat niet in de trainingsgegevens voorkwam, en doet zijn best om het te verwijderen in het voordeel van blauw en zwart.

Technologie

Sommige resultaten hiervan zijn buitengewoon overtuigend, hoewel de techniek duidelijke beperkingen heeft. Sommige afbeeldingen hebben een slechte compositie en het systeem heeft moeite met meer abstracte kunstenaars zoals Picasso - die beroemd zijn onderwerp graag vervormden en de kenmerken ervan verspreidden. Het algoritme pakt zijn hoeklijnen en tegenstrijdige kleuren op, maar is nog steeds een slaaf van de pixelwaarden van de afbeelding. Het heeft niet het begrip dat je nodig hebt om te ver van het bronmateriaal af te wijken.

Wat me hier zo enthousiast over maakt, is dat ik niet denk dat die beperkingen fundamenteel zijn.

De aanpak die hier wordt gebruikt - een netwerk trainen op de ene afbeelding en deze gebruiken om een ​​andere te construeren - is fundamenteel een soort hack. Het geeft het netwerk heel weinig gegevens om mee te werken. Een geavanceerdere versie van deze applicatie zou een netwerk gebruiken dat over veel informatie beschikt schilderijen, en misschien zelfs echte afbeeldingen, om het veel context te geven over de afbeelding die het probeert "verf."

Een diepgaand begrip van stijl kan alleen bestaan ​​in een bredere context. Je kunt het niet aan een enkele afbeelding ontlenen. Door een architectuur te ontwerpen die het systeem toegang geeft tot bredere gegevens, kan dit mogelijk meer opleveren "Mensachtig" begrip van het beeld, en hoe kunstenaars verschillende elementen van het echte vertegenwoordigen wereld. Zo'n netwerk kan mogelijk afbeeldingen produceren die abstracter zijn en een betere compositie hebben. Dergelijke algoritmen zouden niet langer een cool stuk speelgoed (zoals dit) zijn en een manier worden om echte, originele kunst te produceren.

Dat is in sommige opzichten een heel eigenaardige gedachte.

Uw eigen afbeeldingen maken

Als je een teleurstellend resultaat krijgt, kun je een beetje spelen met de opties om te proberen meer overtuigende resultaten te krijgen. De volledige lijst staat op de Github. De belangrijkste zijn

  • -inhoudsgewicht -waarde Hoeveel weegt de inhoudsreconstructieterm. Standaard is 5e0.
  • -stijl_gewicht -waarde: Hoeveel gewicht moet worden gegeven aan het stijlbeeld. Standaard is 1e2.
  • -style_scale - waarde: Hoeveel afbeeldingspatches moet het systeem analyseren (groter wordt abstracter). Standaard is 1,0.

Zodra je alles naar tevredenheid hebt laten werken, plaats je je meest interessante afbeeldingen in de reacties. Ik ben echt geïnteresseerd om te zien wat jullie bedenken.

Afbeeldingscredits: menselijke hersenschilder via Shutterstock

Als schrijver en journalist in het zuidwesten, blijft Andre gegarandeerd functioneel tot 50 graden Celcius, en is waterdicht tot een diepte van twaalf voet.