29
輪読:Learning to Simplify: Fully Convolutional Networks for Rough Sketch Cleanup 東京大学 経済学研究科 修士2篠原義明

[DL輪読会]Learning to simplify fully convolutional networks for rough sketch

Embed Size (px)

Citation preview

輪読:Learning to Simplify: Fully Convolutional Networks for Rough

Sketch Cleanup

東京大学 経済学研究科 修士2年篠原義明

著者

http://hi.cs.waseda.ac.jp/~esimo/ja/research/sketch/

シモセラエドガー*,飯塚里志*前回発表した自動彩色の論文と同一

選定理由

•目的:線画の自動抽出• 絵を描く人間にとってラフから線画を起こすのは大変。

•ただのルーチンなので自動化したい

この論文のモチベーションも同じ!

先行研究:手法別

• 絵を描いてる間に線の描かれた順番で線画を抽出する。• 線の順番がわからないものには適用できない。

• 不要な線を削除する。• 線を加えられない+短い線の集合で長い線が描かれる場合に対応できない。

• 線をグルーピングして新しい線を追加できる手法• ベクター画像にしか対応していない

• ラスタ画像に対する研究もある• ラフ画像から線を抽出したり、本番環境に近い入力に対応はしていない。

• DLを使ったもの• 最も似ている[Noh et al. 2015]の手法は一片が224倍の画像しか受け取れない。

新規性

1. ラフスケッチのラスター画像から線画を抽出

2. 新たなデータセット(の作り方)を提示

予備知識

グレースケール画像:各ピクセルには輝度が入る輝度は[0,1]で1に近いほど黒い

ラフ画像からきれいな線を抽出することを線画抽出、ペン入れ、クリンナップ等と呼ぶ

提案手法と商用製品の比較

最もよく見える!

入力 提案手法

使用した手法

• CNN

• Batch normalisation

• ADADELTA

• 3x3 convolution kernels• 深いCNNも小さなconv. filterを使うことで学習可能

• No explicit pooling• Max-poolingの代わりにconv. Layerが使える(poolingを使っても必ず性能が良くなるわけではない)*安全策として使用?

モデル1/3

モデル2/3

ReLUゼロパディング

(1 strideでサイズを保つ用)

Sigmoid 出力を[0,1]のグレースケールにする

ダウンサンプル

アップサンプル

3x3を主に使うことでパラメータ数を5x5に比べて削減

サイズを丁度倍にするために4x4を使用

モデル3/3

最終的な出力に対して[Sleinger 2003]のソフトを用いベクター化

損失1/3

出力 目標 Loss map

アダマール積によりLoss mapの値が小さい所の重みが減るLoss mapの選び方は最終的な結果には影響しないが学習を早くしてくれる

フロベニウスノルム:行列の各要素をベクトルと見做したときの2-ノルムi.e. 行列の各要素を二乗して総和を取った後にルートを取ったもの

アダマール積(要素毎の積)

損失2/3

Loss Mapを導入することで太い線の重要性を減らしたことで学習が早くなった。

損失3/3

(u, v)ピクセルを中心としてdピクセル内にあるピクセルのヒストグラムをbin = bとして描く。この時(u, v)ピクセルが入るbinの高さをH(I, u, v)とする。

*この式の嬉しさは?

[0, 1)

Loss map

損失3/3

d px

画素値

確率 (u, v)0.7

0.3

b=2

u

v

実際にはα=6, β=-2, d =2, b=10を使用

H(I, u, v) = 0.3

*平均とか最頻値ではダメなのか?

データセット1/2

画像サイズ Height x Width (px)

Min 630 x 630

Mean 1280 x 1662.7

Max 2416 x 3219

右列がTrue

5人によって描かれた68枚の画像

データセット2/2

•ラフを人間がペン入れすることで教師を作ると違う線が引かれるたり新たな線が描かれたりする

•これに対応するためクリンナップされた絵からラフを作成

学習とオーグメンテーション1/2

• データセットを 7/6, 8/6, 9/6, 10/6, 11/6, 12/6, 13/6, 14/6にダウンスケール*アップスケールではなく?

• [0, 1]の値の内0.9未満は0にしてトーンを整える

• ランダムに+-180度回転と水平方向に反転

• 424 x 424のパッチを画像の面積比でそれぞれの画像から毎回ランダムに抽出

• 確率0.1で入力を正解(クリンナップした線画)に変えてキレイな線は変更しないように学習させた

学習とオーグメンテーション2/2

フォトショップでトーンを変えたり、不鮮明にしたり、ノイズを追加することでスキャナにかけたときのノイズなどに対して頑健にした。

評価1/3先行研究との対比

ベクター画像を入力

ラスター画像を入力前処理なし

評価2/3商用製品との比較(再掲)

評価3/3ユーザースタディ:

15枚の画像を19人(内10人は絵を描いた経験がある者)の被験者に見せた。

1~5で絶対評価

二種類を同時に見せてどちらが良いかを評価

応用:線画の簡略化画像をダウンスケールすることで線画を簡略化可能アップスケールで精細に

*アップスケール→元画像を拡大しているならノイズを拾っているだけなのでは?

自分の絵に対してテスト1/2

自分の絵に対してテスト2/2

*カメラ撮影なので影がノイズと認識された?

この論文を本当の理由

•「ラフ画を描いたらパソコンにペン入れから彩色迄やらせることは可能か?」を試したかった。• 別名「でえぷらあにんぐでくりえいてぃぶなことできないかな作戦」

1. 本論文の手法で線画化

2. 自動彩色(全回輪読)

3. ロシアのやつで画風をつける

4. Waifu2xで拡大

ディープラーニング!

結果:彩色の部分で失敗

*自分の絵

*・線画の抽出はそれなりに上手く行ったが影部分はノイズと見做されて落とされた

*・濃淡が消えるので色をつけるための文脈が消えた?

*・写真じゃなくて絵で学習させれば上手くいくのかも

自動彩色

原画 自動線画化

感想

•人によって線に個性があるのでこれで完全に代替できるものではないと感じる

•ラフと言ってもキチンとスキャナにかけないとダメ(3つ前のスライド参照)

•機械に下絵を与えればキレイな絵を吐き出させるのもその内できそう・・・

EOP

Appeindex計算時間

[Liu et al. 2015]は線の多さにもよるが分単位の時間がかかる