Neurokuvamuistelmat, osa 1 (syksy 2015)

Kesällä 2015 olin kiinnostunut valokuvien pelkistämisestä ohjelmallisin keinoin, Processing ja OpenCV -kirjastojen avulla. En kuitenkaan päässyt niin pitkälle kuin halusin, ja aloin etsiä uusia, rajumpia tekniikoita kokeiltavaksi.

Juuri samoihin aikoihin julkaistiin kaksi neuroverkkopohjaisen kuvankäsittelyn ja -generoinnin perusratkaisua: Googlen DeepDream, jonka estetiikka ei yhtään vedonnut minuun, ja neural-style, jonka sanottiin pystyvän erottelemaan kuvan sisältö ja tyyli, ja näin siirtämään mallikuvan tyyli johonkin toiseen kuvaan.

Ja kyllähän se pystyikin, kokeilin tekniikkaa ystäväni kuvataiteilija, kulttuurin monitoimimies Kivi Larmolan guassimaalaukseen ranskalaiskylän kadusta, jonka tyylin siirsin itse valokuvaamaani katunäkymään Cluj-Napocasta Romaniasta. Tämä herätti sen verran mielenkiintoa, että perustin neuroverkkopohjaisen kuvatyöskentelyn FB-ryhmän, josta sitten käytännössä muodostui oman työhuoneeni jatke, jossa olen aika kattavasti kertonut työskentelystäni, käyttämistäni menetelmistä ja myös jonkin verran alan kehityksestä muutenkin.

Olin juuri myös käynyt ensimmäisen kerran Tuusulanjärven Sarvikalliolta, ja tuntui luonnolliselta kokeilla kuinka saman näkymän olisi voinut maalata Axel Gallén-Kallela, Konrad Mägi, Hugo Simberg, Isaak Levitan, Hjalmar Munsterhjelm tai vaikka Edvard Munch. Neural-style ei tietenkään tajunnut mitään minkään taiteilijan tyylistä yleisemmin, se vain tunnisti kuinka mallikuvassa oli käytetty tekstuuria ja väriä, ja siirsi nämä mallit sitten toiseen kuvaan. Lopputulos oli kuitenkin aika vaikuttava. Tuskin koskaan ennen olisi voinut nähdä täsmälleen samaa näkymää usean eri taiteilijan tekemänä. Eikä toki oikeasti nytkään, silti illuusio oli aika vaikuttava.

Olen toisaalla kirjoittanut siitä kuinka neural-style toimii, tosin englanniksi. Jos tarvetta on, voinen tehdä vastaavan suomeksikin. Karkeasti ottaen valmis, kuvan sisältöä tulkitseva verkko siinä suodattaa kuvasta piirteitä, kerros kerrokselta edeten yksinkertaisimmista (värit) mutkikkaampaan (viivat) ja lopulta kokonaisuuksiin (ikkuna, silmä). Näiden pohjalta pystytään kuvan sisältö hahmottamaan ja jopa rekonstruoimaan. Varsinainen keksintö oli aika yksinkertainen laskennallinen konsti, jolla kuvan sisältämiä piirteitä verrattiin toisiinsa, ja huomattiin että näinhän voitiin mitata tekstuurin ja värin käyttöä kuvassa.

Algoritmissa oli aika paljon säädettävää, kuten miltä neuroverkon kerroksilta ohjaus otettiin ja kuinka niitä painotettiin. Näin pystyi ainakin jotenkin vaikuttamaan siihen millaisia tyylillisiä piirteitä lopulliseen kuvaan siirtyi. Tein aika hurjiakin kokeiluja näillä, tässä koko ajan sisältökuvana yksi ja sama kuva Helsingin Kaivopuistosta.

Valmiin koodin kanssa työskentely ei minulle kuitenkaan kovin kauan riittänyt. Lähdin perehtymään koodiin, siinä meni kuukausia mutta lopulta tunsin sen läpikotaisin, pystyin muuttamaan sitä rajustikin ja myös tukemaan muita koodin ymmärtämisessä ja muuttamisessa.

FB-ryhmässä taas oli idearikasta porukkaa jotka heittivät ideoita siitä mitä voisi kokeilla. Tyylimalleja saattoi olla useampi, entäpä jos sisältökuviakin. Millainen kuva tulisi jos niitä olisikin kaksi. No, muutin koodia ja kokeilin. Tässä nyt jos edesmennyt mäyräkoiramme Rusina sitten katsoo kahteen suuntaan yhtaikaa. Ainakin jotenkuten. Ja toisessa kuvassa on jotenkuten sekä minä että nykyinen vaimoni.

Aika paljon pohdittiin myös sitä mitä tapahtuisi jos tehdään kuvaa joka ei ole tämän näköinen tai tämän tyylinen. Siinä kohtaa jo hahmotin neural-stylen toimintaa sen verran, että osasin epäillä. On paljon helpompi optimoida kohti jonkin näköisyyttä, jos vain pystyy sitä mittaamaan. Mutta toiseen suunta kulkeminen… siltä oikeastaan puuttuu kohde. Se mikä on aivan erilaista, voi olla oikeastaan melkein mitä tahansa. Mutta teknisesti tuli tuokin sinne koodiin ympättyä ja kaikenlaista kokeiltua, grönlantilaisen kylän maisemalla. Ja nythän tämmöiset negatiiviset tavoitteet ovat paljon olleet esillä tekstipohjaisen kuvasynteesin puolella, kuvaa ohjataan tyyliin tee semmoinen mutta ei tämmöinen. Periaate on ihan sama, tavoitefunktiossa on useita termejä jotka vetävät eri suuntiin. Ja sehän voi hyvinkin toimia, kun mukana on se positiivinenkin tavoite. Pelkästään jonkin välttäminen ei oikein vienyt perille.

Mutta aikamoinen vehje neural-style oli silloin ja jossain määrin on edelleen, vaikkakin vähän myöhemmin tekoälyhommat aloittanut, nyttemmin paljon minua kuuluisampi kollega aikoinaan totesikin ettei neural-stylellä voinut tehdä mitään, ei se tehnyt kuin maalauksellisia kiehkuroita. Jotenkin tuntuu ettei hän ollut laittanut sen kokeiluun kovinkaan paljon työtä. Minä aloitin ehkä puoli vuotta aiemmin, ja se yksi talvi meni pelkästään neural-stylen kanssa. Ei ollut edes GPU:ta nopeuttamassa. Yhden kuvan teko loppuun asti vei tyypillisesti tunnin, mutta näkihän siitä jo aika pian mihin se oli menossa ja saattoi keskeyttää.

Tässä nyt vielä esimerkki neural-stylen kyvyistä. Nuoruuteni kotikaupungin näkymä sekä minä itse topografikartasta napatulla tyylillä.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *