より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

論文感想文「ラフスケッチを自動で綺麗な線画にする」

2017年のディープラーニング論文100選 - Qiitaに面白そうな論文がまとめてあったので、こちらの中で興味深いものをピックアップして読んでみることにしました。

選んだのはこちら。

Learning to Simplify:Fully Convolutional Networks for Rough Sketch Cleanup

そんなに英語得意ではありませんが、読んでみた感想を。

概要

Fully Convolutional Networkでラフスケッチを線画にするというものです。

論文に携わった一人であるシモセラ・エドガー氏が日本語で紹介していますので、これだけ見ても概要は把握できるかと思います。

esslab.jp

邦題としては「ラフスケッチの自動線画化」のようです。

詳細については、英語の論文を読むことになります。

論文のイメージとはかけ離れたアニメ絵が登場し、全11ページですので、とっつきやすいです。

一般的なCNN[Convolutional Neural Networks]との引き合い(in contract to the standard CNN models)に出しながら、このFully Convolutional Networkというアーキテクチャについて解説されています。

データセットと訓練

  • 5人のイラストレーターによって描かれた68のデータセット
  • サイズは630x630〜2416x3219
  • 使われている画像は人物だけではなく、建物、仮面もある。

そんなに書いてもらうのも大変ですが、68のデータセットとは想像以上に少ないですね。

よって、画像の訓練では、データ量を増やすようにしています。

前半では数式と図でこのネットワークについて論じてますが、後半はこのデータを増やす手段について述べられてます。

そのデータを増やす(Data Augmentation)手段については、フォトショップまで駆使して、研究者の創意工夫・努力が伝わってきます。

  • 424*424のサイズで使う
  • 元の画像のサイズを拡大(7/6,8/6,9/6,10/6,11/6,12/6,13/6,14/6を選んだのはなぜだろう?)
  • 縮小画像は使わない
  • 水平に反転
  • データを正規化して、0.9未満の値は0とみなす。何度か調整した結果、行き着いた秘伝の値。
  • フォトショップを使い、色調変化(tone)、画像スラー(slur)、ノイズ(noise)を使うと4枚分。

その他

  • GPUを使うと40倍以上のスピードアップ
  • 鉛筆と紙で書いた絵でもオッケー
  • Adobe TraceやPotraceより高いユーザー評価を得られた

文法

文法として、in order toという言い回しが多いですね。

日本語だと、〜ためにと訳されてしまうので、同じようなものかと思ってしまいました。in order toは目的(purpose)に対して使い、becauseは理由(reason)に対して使うものでした。

GitHub

GitHubでツールも公開されています。

github.com

PaintsChainerもありますし、絵(画像)が生成されるのは面白いですね。

残念ながら、肝心の元絵を私は書けないのですが。