著者
http://hi.cs.waseda.ac.jp/~esimo/ja/research/sketch/
シモセラエドガー*,飯塚里志*前回発表した自動彩色の論文と同一
先行研究:手法別
• 絵を描いてる間に線の描かれた順番で線画を抽出する。• 線の順番がわからないものには適用できない。
• 不要な線を削除する。• 線を加えられない+短い線の集合で長い線が描かれる場合に対応できない。
• 線をグルーピングして新しい線を追加できる手法• ベクター画像にしか対応していない
• ラスタ画像に対する研究もある• ラフ画像から線を抽出したり、本番環境に近い入力に対応はしていない。
• DLを使ったもの• 最も似ている[Noh et al. 2015]の手法は一片が224倍の画像しか受け取れない。
使用した手法
• CNN
• Batch normalisation
• ADADELTA
• 3x3 convolution kernels• 深いCNNも小さなconv. filterを使うことで学習可能
• No explicit pooling• Max-poolingの代わりにconv. Layerが使える(poolingを使っても必ず性能が良くなるわけではない)*安全策として使用?
モデル2/3
ReLUゼロパディング
(1 strideでサイズを保つ用)
Sigmoid 出力を[0,1]のグレースケールにする
ダウンサンプル
アップサンプル
3x3を主に使うことでパラメータ数を5x5に比べて削減
サイズを丁度倍にするために4x4を使用
損失1/3
出力 目標 Loss map
アダマール積によりLoss mapの値が小さい所の重みが減るLoss mapの選び方は最終的な結果には影響しないが学習を早くしてくれる
フロベニウスノルム:行列の各要素をベクトルと見做したときの2-ノルムi.e. 行列の各要素を二乗して総和を取った後にルートを取ったもの
アダマール積(要素毎の積)
損失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枚の画像
学習とオーグメンテーション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で入力を正解(クリンナップした線画)に変えてキレイな線は変更しないように学習させた
この論文を本当の理由
•「ラフ画を描いたらパソコンにペン入れから彩色迄やらせることは可能か?」を試したかった。• 別名「でえぷらあにんぐでくりえいてぃぶなことできないかな作戦」
1. 本論文の手法で線画化
2. 自動彩色(全回輪読)
3. ロシアのやつで画風をつける
4. Waifu2xで拡大
ディープラーニング!
結果:彩色の部分で失敗
*自分の絵
*・線画の抽出はそれなりに上手く行ったが影部分はノイズと見做されて落とされた
*・濃淡が消えるので色をつけるための文脈が消えた?
*・写真じゃなくて絵で学習させれば上手くいくのかも
自動彩色
原画 自動線画化
感想
•人によって線に個性があるのでこれで完全に代替できるものではないと感じる
•ラフと言ってもキチンとスキャナにかけないとダメ(3つ前のスライド参照)
•機械に下絵を与えればキレイな絵を吐き出させるのもその内できそう・・・
EOP