全速前進、ヨーソロー!
からの~
敬礼!!
はい。
というわけで、皆さんこんにちは。
プログラマのじゅんぺい改め、ただのラブライバー半袖マンです。
毎日のように録画したアニメを視聴し、スクフェスACに通う今日この頃。
「両立しよう!仕事とゲーセン」で紹介されているゲーセンにはスクフェスACがきちんと置いてあるので退勤後はもちろん昼休憩にだってスクフェスACができてしまいます。
推しキャラの曜ちゃんのメモリアルカードも昨日の昼休みに手に入れてたりします。
はいかわいい
前の土曜日は梅田のラブライブ!サンシャイン!! キャラポップフェスにも行ってきました!
このイベントはnamco梅田店に等身大のAqoursのポップが展示されており、物販もおこなわれてたりします。
9時から開店ということで、8時50分くらいに集合し、9時になった瞬間いざ入店!
エスカレータにのり3階まで進むとそこには、等身大のAqoursのメンバーたちが!!
とりあえず、全員をカメラに収め、曜ちゃんとツーショットをきめ、にやにやが止まらなくなってきます。
一通り写真を撮り終わると、そのまま物販に進みます。
いくつかの欲しい商品を購入しにレジに向かうと、くじ引きがある模様。
せっかくだしと3回引いてみると、B、D、D賞という結果に。(A賞はそう簡単にでない)
あまり、ここで散財してもしょうがないので2階に降りてスクフェスACを遊び、そろそろ昼ごはん、と思っていると、一緒にいた友人がもう一度物販に行きたいというので再度物販へ。
せっかくなのでまた3回ほどくじを引いてみると、結果はA、C、D賞!
やったね!
いやー
引けばでるもんですね。
さて、ただのラブライバーになった僕ですが、会社のブログで趣味の話ばかりやってても何なので、少しだけまじめな話をしようと思います。(上はただ書きたかった)
というわけで前にちょっとだけ話してたニューラルネット関係の話をしてみます。
今回の話のメインターゲットは
・プログラムはあまりできないけどニューラルネットには興味ある。
・とりあえずニューラルネットを勉強しようと思ってるけどどんなことができるの?
って人になります。
というわけで今回はchainer-goghを使用し、画像の画風を変換してみよう
をお送りします。
chainer-goghの概要はこちら
https://research.preferred.jp/2015/09/chainer-gogh/
基本的にはコンテンツ画像(元の画像)とスタイル画像(絵柄)を使用し、コンテンツ画像の絵柄をスタイル画像に変換することができるものになります。
またCNN(convolutional neural network)を使用しているので、既存の学習データを使用し動作します。なので、学習用の画像データを集めるといった作業は不要になります。Chainer-goghはChainerというライブラリを使用しており、このライブラリはcaffemodelを読み込むことができるので使用します。
サンプルで上がってるものはVGG 16-layerを使用しており、出力結果がきれいなのはこの学習データを使用するパターンなのですが、8GB程度のメモリが必要になります。
また、NVIDIAのグラフィックカードがないとGPUを使った最適化ができないので、画像の変換が完了するのに12時間以上かかったりします。
(githubのページにも書かれてますがまずは手軽に始めれるninモデルからやってみましょう)
さてやはり画質は最高がいいので、VGG 16-layerを使用し画像を変換してみたのですが、我が家のグラボはAMD。
CUDAを使用した高速化が動作せずフルCPUでの演算になってしまいます。
結果、昨晩21時に実行し、朝起きても終わっていないなんてことに・・・
とりあえず途中段階の画像にはなりますが実行結果はこんな感じです。
元画像
変換後
途中段階ですが油絵風になってきてる気がする。
途中でもこれなので最終まで行くともっときれいになるはず・・・
色々な画像で試した結果、スタイル画像に色味は引っ張られるので、元画像の色合いを考慮したい場合はあまりいい感じにならなかったのですが、元画の輪郭にスタイル画像の色を塗りたいといった考え方の変換を行う場合は割といい感じの結果が得られるかもしれません。
注意
Chainer-goghはChainerのバージョンが1で作られているようです。
Chainerのバージョン2をインストールして動かそうとするとこけます。
修正方法はこのあたりを参考にしてください。
http://s0sem0y.hatenablog.com/entry/2017/06/07/005215