{"id":27,"date":"2016-02-29T13:31:00","date_gmt":"2016-02-29T13:31:00","guid":{"rendered":"http:\/\/liipetti.net\/retkia\/?p=27"},"modified":"2016-02-29T13:31:00","modified_gmt":"2016-02-29T13:31:00","slug":"pienemman-verkon-kanssa-liikkeella","status":"publish","type":"post","link":"https:\/\/liipetti.net\/retkia\/pienemman-verkon-kanssa-liikkeella\/","title":{"rendered":"Pienemm\u00e4n verkon kanssa liikkeell\u00e4"},"content":{"rendered":"<p>Neural-stylen ydin on valmiiksi koulutettu neuroverkko, joka on opetettu suurella joukolla kuvia tunnistamaan kuvista esineit\u00e4 ja hahmoja. Neural-stylen oletusneuroverkko, VGG19, on hyvin tehokas tunnistamaan kuvista piirteit\u00e4. Neural-styless\u00e4 k\u00e4ytettyn\u00e4 sill\u00e4 on helppo tuottaa hyv\u00e4laatuisia kuvia jotka k\u00e4tev\u00e4sti mukautuvat tyylimallin piirteisiin. Haittana on vain suuri muistintarve. 8GB muistilla ei p\u00e4\u00e4se kuin noin 720px levyisiin kuviin.<\/p>\n<p>Neural-styleen voi ladata haluamansa neuroverkon, tietyin teknisin rajoituksin. Kokeilin verkkoa nimelt\u00e4 nin-imagenet-conv, ja sain tehty\u00e4 1280px leve\u00e4n kuvan ylitt\u00e4m\u00e4tt\u00e4 4GB muistintarvetta. Kuvan laatu ei kuitenkaan vastannut odotuksia enk\u00e4 tyylink\u00e4\u00e4n seuraamisessa oikein onnistunut. Annoin jo melkein periksi, kun lopulta aloin saada kelvollisia tuloksia. Nin-imagenet-conv on erilainen, muttei huono. Se ei ehk\u00e4 ole paras vaihtoehto alkaa kopioida maalausten tyyli\u00e4, mutta se voi olla hyv\u00e4 ty\u00f6kalua oman tyylin etsimisess\u00e4.<\/p>\n<p>Kokeilin t\u00e4m\u00e4n neuroverkon k\u00e4ytt\u00f6\u00e4 helsinkil\u00e4iseen webbikamerakuvaan lainaten tyylin Lyonel Feiningerin maalauksesta:<\/p>\n<p><a href=\"http:\/\/liipetti.net\/erratic\/wp-content\/uploads\/2016\/02\/kauppatori-nin-feininger.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-191\" src=\"http:\/\/liipetti.net\/erratic\/wp-content\/uploads\/2016\/02\/kauppatori-nin-feininger-300x160.png\" alt=\"kauppatori-nin-feininger\" width=\"456\" height=\"243\" \/><\/a><\/p>\n<p>Kuten yleens\u00e4, kiinnostuin nytkin iteraatioketjun v\u00e4livaiheista. Ne ovat usein kiinnostavia, niiss\u00e4 on luovaa kauneutta ja niist\u00e4 voi koota mielenkiintoisia animaatioita, kuten seuraavassa videossa jossa l\u00e4ht\u00f6kuvan abstraktit muodot v\u00e4hitellen taipuvat ja hahmottuvat Helsingin Kauppatorin n\u00e4kym\u00e4ksi.<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/fNUni7Uxs-0\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>Seuraavaksi muokkaa kuvaa useassa vaiheessa l\u00e4ht\u00f6kohtana viime syksyn\u00e4 ottamani valokuva.<\/p>\n<p><a href=\"http:\/\/liipetti.net\/erratic\/wp-content\/uploads\/2016\/02\/DSC01350.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-193\" src=\"http:\/\/liipetti.net\/erratic\/wp-content\/uploads\/2016\/02\/DSC01350-300x200.jpg\" alt=\"DSC01350\" width=\"455\" height=\"303\" \/><\/a><\/p>\n<p>Tyylikuvaksi otan itse Processing-skriptill\u00e4 luomani kuvan, jossa webbikamerakuva on muunnettu harmaiksi pystyraidoiksi.<\/p>\n<p><a href=\"http:\/\/liipetti.net\/erratic\/wp-content\/uploads\/2016\/02\/Tanssi.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-194\" src=\"http:\/\/liipetti.net\/erratic\/wp-content\/uploads\/2016\/02\/Tanssi-300x242.png\" alt=\"Tanssi\" width=\"455\" height=\"367\" \/><\/a><\/p>\n<p>Kun n\u00e4m\u00e4 kaksi kuvaa yhdistet\u00e4\u00e4n sopivasti, saadaan t\u00e4m\u00e4:<\/p>\n<p><a href=\"http:\/\/liipetti.net\/erratic\/wp-content\/uploads\/2016\/02\/nin_tanssi_1350_r03h3_1000.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-195\" src=\"http:\/\/liipetti.net\/erratic\/wp-content\/uploads\/2016\/02\/nin_tanssi_1350_r03h3_1000-300x200.png\" alt=\"nin_tanssi_1350_r03h3_1000\" width=\"455\" height=\"303\" \/><\/a><\/p>\n<p>T\u00e4m\u00e4h\u00e4n voisi jo olla kiva, mutta jospa kuitenkin lis\u00e4t\u00e4\u00e4n v\u00e4h\u00e4n v\u00e4ri\u00e4. Sit\u00e4 toki saisi k\u00e4ytt\u00e4m\u00e4ll\u00e4 mallina alkuper\u00e4ist\u00e4 valokuvaa, mutta sen sijaan k\u00e4yt\u00e4nkin seuraavaa kuvaa jonka loin em. valokuvasta Processing-skriptin ja neuroverkon yhteisty\u00f6ll\u00e4.<\/p>\n<p><a href=\"http:\/\/liipetti.net\/erratic\/wp-content\/uploads\/2016\/02\/nin_canvas_1350_r023h2_200.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-196\" src=\"http:\/\/liipetti.net\/erratic\/wp-content\/uploads\/2016\/02\/nin_canvas_1350_r023h2_200-300x200.png\" alt=\"nin_canvas_1350_r023h2_200\" width=\"455\" height=\"303\" \/><\/a><\/p>\n<p>Lopputulos, jossa harmaat raidat yhdistyv\u00e4t tyyliteltyyn syysn\u00e4kym\u00e4\u00e4n, on t\u00e4llainen. Jos se ei ole sit\u00e4 mit\u00e4 olin hakemassa, voin jatkaa etsimist\u00e4. T\u00e4h\u00e4n menness\u00e4 olen k\u00e4ytt\u00e4nyt useita valokuvia, Processing-skriptej\u00e4 ja neuroverkkoajoja. Jokaisessa vaiheessa on paljon valinnan varaa kuvien ja parametrien arvojen valinnassa.<\/p>\n<p><a href=\"http:\/\/liipetti.net\/erratic\/wp-content\/uploads\/2016\/02\/metsa_takaisin_1150.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-197\" src=\"http:\/\/liipetti.net\/erratic\/wp-content\/uploads\/2016\/02\/metsa_takaisin_1150-300x200.png\" alt=\"metsa_takaisin_1150\" width=\"455\" height=\"303\" \/><\/a><\/p>\n<p>Lis\u00e4ksi voin edelleenkin seurata neural-stylen tuottamia v\u00e4lituloksia, ja jos pid\u00e4n jostain niist\u00e4, niin seh\u00e4n on sitten siin\u00e4. Ei tarvitse jatkaa 2000 iteraatioon asti, joskus voi jo 50 iteraation kohdalla saada vaikkapa t\u00e4llaisen:<\/p>\n<p><a href=\"http:\/\/liipetti.net\/erratic\/wp-content\/uploads\/2016\/02\/metsa_takaisin2_50.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-201\" src=\"http:\/\/liipetti.net\/erratic\/wp-content\/uploads\/2016\/02\/metsa_takaisin2_50-300x200.png\" alt=\"metsa_takaisin2_50\" width=\"455\" height=\"303\" \/><\/a><\/p>\n<p>Linkkej\u00e4:<\/p>\n<p>Neural-style:\u00a0<a href=\"https:\/\/github.com\/jcjohnson\/neural-style\">https:\/\/github.com\/jcjohnson\/neural-style<\/a><\/p>\n<p>Nin-imagenet-conv:\u00a0<a href=\"https:\/\/gist.github.com\/mavenlin\/d802a5849de39225bcc6\">https:\/\/gist.github.com\/mavenlin\/d802a5849de39225bcc6<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neural-stylen ydin on valmiiksi koulutettu neuroverkko, joka on opetettu suurella joukolla kuvia tunnistamaan kuvista esineit\u00e4 ja hahmoja. Neural-stylen oletusneuroverkko, VGG19, on hyvin tehokas tunnistamaan kuvista piirteit\u00e4. Neural-styless\u00e4 k\u00e4ytettyn\u00e4 sill\u00e4 on helppo tuottaa hyv\u00e4laatuisia kuvia jotka k\u00e4tev\u00e4sti mukautuvat tyylimallin piirteisiin. Haittana on vain suuri muistintarve. 8GB muistilla ei p\u00e4\u00e4se kuin noin\u2026<\/p>\n<p class=\"continue-reading-button\"> <a class=\"continue-reading-link\" href=\"https:\/\/liipetti.net\/retkia\/pienemman-verkon-kanssa-liikkeella\/\">Continue reading<i class=\"crycon-right-dir\"><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":30,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,2],"tags":[],"class_list":["post-27","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kuvataide","category-neuroverkot"],"_links":{"self":[{"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/posts\/27","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/comments?post=27"}],"version-history":[{"count":1,"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/posts\/27\/revisions"}],"predecessor-version":[{"id":28,"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/posts\/27\/revisions\/28"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/media\/30"}],"wp:attachment":[{"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/media?parent=27"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/categories?post=27"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/liipetti.net\/retkia\/wp-json\/wp\/v2\/tags?post=27"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}