ディープラーニングでフィルムカメラシミュレータを作る

f:id:karaage:20181112235220p:plain:w640

人工知能で中判フィルムカメラの味わいを再現する

 中判フィルムカメラをデジカメ化する「ZANGI BRONICA」を作っています。

 普通にこれで撮影するだけでも楽しいのですが、もう一工夫として「ZANGI BRONICA」で撮影したような味がある写真を、普通のデジカメの写真からディープラーニングで再現できないかなと考えて試して見ることにしました。

 具体的には「pix2pix」という技術を使います。この技術は、1対1のペアの画像を大量に教師データとして与えると、2つの画像の関係を学習してくれるものです。例えば以下のような、ドット絵と普通の画像を学習させると、ドット絵からリアルな画像を生成することができます。

f:id:karaage:20181106062417p:plain:w640

 pix2pixを使ったドット絵->画像変換に関して、詳しくは以下記事参照下さい。

 今回は「ZANGI BRONICA」で撮った写真と、Raspberry Piのカメラで普通に撮った写真をペアにして学習させます

f:id:karaage:20181112022728p:plain:w640

f:id:karaage:20181112022757p:plain:w640

 これらのペアのデータを学習させることで、普通の写真からフィルムカメラ的なアナログな写真を生成します。

 図的には以下のようなイメージとなります。

f:id:karaage:20181118130025j:plain:w640

 データを取得する際にRaspberry Piのカメラでの撮影に関しては、以下のVision Kitの自作アプリを活用して撮影しました。

「pix2pix」でデジタル写真をアナログ写真に変換

 学習に関しては、以前実施した「ドット絵->画像変換」と同じ要領で実施しました。詳細は元記事参照下さい。

 ただ、画像変換に関しては、そのままでは使いづらかったので、入力画像を引数として与えると、画像を変換できるプログラムを作成しました。

 追加したソフト含めたリポジトリは以下にアップしています。

 例えば以下のようなコマンドでtest.jpgというファイルを変換します。変換したファイルは実行したディレクトリにpix2pix-outputs.pngという名前で保存されます。

$ python pix2pix_test.py --mode test --output_dir pix2pix_test --checkpoint pix2pix_train --input_img test.jpg

 ここで、いつもの優良なフリー素材、ロンスタさん(id:lonestartx)の登場です。

f:id:karaage:20181106065221p:plain:w400
 鮮明なロンスタさん画像が

f:id:karaage:20181112234942p:plain:w400
 古臭い感じに!?

 ちなみに、Raspberry Piでも実行できます。以下の通りセットアップします。/etc/dphys-swapfileを書き換えてスワップファイルを増大するところもやっておきましょう(やらないと、pix2pixで変換中に落ちます)

 あとは、以下コマンド実行するだけです。

$ python3 pix2pix_test.py --mode test --output_dir pix2pix_test --checkpoint pix2pix_train --input_img test.jpg

 これでRaspberry Piで画像変換が実現できる!と言いたいところなのですが、些細な(?)問題として、Raspberry Piだと1枚画像変換するのに10分程度時間がかかります…デジカメ化への道は遠い…

まとめ

 「ZANGI BRONICA」とディープラーニングを使ったアナログカメラシミュレータを紹介しました。

 ラズパイだと処理時間が長すぎるのと、思ったよりクオリティが上がらないのが残念なところです。GANはどうしてもGAN臭さ(?)が出るのが嫌らしいですね。

 ディープラーニングのネットワーク自体、今回くらいの簡易な変換であれば、そこまでディープにしなくても良いはずなので、ネットワークを単純化して画質上げつつ高速化もできないかなとか思っていますが、スキルががが…といったところです。いずれチャレンジしたいですね。

 こちらに関しても、2018年12月1日(土)、12月2日(日)にOgaki Mini Maker Faire 2018(OMMF2018)でオリジナルのラズパイカメラに機能搭載してデモをする予定です。ただ、1枚の変換に10分かかるのでどうしようか検討中です(笑)

 OMMF2018の特設ページは以下です。

関連記事