SSII2022
コンテンツ制作を支援する
機械学習技術
2022.6.10
シモセラ エドガー(早稲田大学)
自己紹介
https://esslab.jp
• 2015 年 7 月に BarcelonaTech で博士号を 取得
• 2015 年 8 月から 早稲田大学 研究院助教
• 2017 年 4 月から 同大学 研究院講師
• 2018 年 4 月から 科学技術振興機構 さ き がけ専任研究者
• 2018 年 9 月から 早稲田大学 情報理工学科
2
自己紹介
https://esslab.jp
• 2015 年 7 月に BarcelonaTech で博士号を 取得
• 2015 年 8 月から 早稲田大学 研究院助教
• 2017 年 4 月から 同大学 研究院講師
• 2018 年 4 月から 科学技術振興機構 さ き がけ専任研究者
• 2018 年 9 月から 早稲田大学 情報理工学科
2
目次
• イ ラ スト レ ーショ ンの課題
• ペン入れ
• データ セッ ト の作成方法
• 敵対的拡張
• 対話的ニュ ーラ ルネッ ト ワ ーク
• 可変出力 (ベク タ ー画像)
• 彩色等
• 最適化
• デジタ ルパレ ッ ト
• 陰影の近似
• 重要な技術
3
イ ラスト レ ーショ ンの課題
AI で生成さ れたアート
• Computers Do Not Make Art [Hertzmann 2020]
• アート はソ ーシャ ルアク ティ ビティ
• コ ード やデータ は人間が集める
• AI はアート を 作れずにただのツ ール
• Christie で$432,500 の GAN を 売買
4
なぜ ・ どう やっ て人が描く ?
• ソ ーシャ ルアク ティ ビティ
• 具体的なコ ンセプト を 伝える
• 趣味や暇つぶし
• セラ ピー
• 仕事
• …
5
GAN の生成
• 制御し づら く て、 思い通り に作れない
• イ ラ スト が難し く て汎化性能がない
6
イ ラスト の作成
7
イ ラスト の作成
7
イ ラスト の作成
7
イ ラスト の作成
7
問題と 課題
• 評価方法 (MSE 等が当てになら ない)
• ユーザーの制御
• 高解像度
• 再現性 ・ 解釈性
• 高性能 (ユーザーの希望に応える )
• リ アルタ イ ム (理想)
• 完成度
8
関連する 技術
• 今日のチュ ート リ アル
• 画像変換技術
• 微分可能レ ンダリ ング
• ヒ ュ ーマンコ ンピュ ータ イ ンタ ラ ク ショ ン (HCI)
• 最適化
• 画像処理
9
ペン入れ
イ ラスト の作成
10
線画化
ラ フ スケッ チ 目標線画 ラ フ スケッ チ 目標線画
12
線画化の課題
• 課題
• 入力 : ラ フ スケッ チ、 陰影、 ベク タ ー…
• 出力 : ラ スタ ー画像出力と ベク タ ー画像出力、 解像度…
• 手法 : ニュ ーラ ルネッ ト ワ ーク 、 グラ フ …
• 評価方法 : MSE、 SSIM、 ユーザーテスト …
• 紹介する 技術
• データ セッ ト の作成方法
• 敵対的拡張
• 対話的ニュ ーラ ルネッ ト ワ ーク
• 可変出力 (ベク タ ー画像)
13
ペン入れ ・ データ セッ ト の作成方法
CNN で処理
• 23 層の全層畳み込みニュ ーラ ルネッ ト ワ ーク
• エンコ ーダ ・ デコ ーダ型
Flat-convolution
Up-convolution
2
×
2
4
×
4
8
×
8 4
×
4
2
×
2
×
×
Down-convolution
14
通常のデータ セッ ト のの結果
• 簡単なモデルを 定義
• データ を ち ょ っ と 揃えて学習さ せてみる と
15
通常のデータ セッ ト のの結果
• 簡単なモデルを 定義
• データ を ち ょ っ と 揃えて学習さ せてみる と ぼやける
• ラ フ スケッ チと 正解データ を 合わせてみる と
15
逆方向データ 制作
• データ の品質が重要
• ラ フ を 線画化する と 合わない (通常のデータ 作成)
• 線画を ラ フ 化する と ぴっ たり (逆方向データ 作成)
通常のデータ 作成 逆方向データ 作成
16
データ 拡大
• データ セッ ト は足り ない
• 訓練データ の画像を スケーリ ング
• 学習する 間にラ ンダムに回転と 反転
• 入力画像を さ ら に加工 : ト ーン調整、 ぶれ、 ノ イ ズ
入力 ト ーン調整 ぶれ ノ イ ズ
17
後処理のベク タ ー化
• potrace でベク タ ー化
• オープンソ ースのソ フ ト ウ ェア
• ハイ パスフ ィ ルタ と 2 値化
• 間違いを 拡大する 影響
入力 出力 ベク タ ー
18
入力解像度の影響
19
ペン入れ ・ 敵対的拡張
データ セッ ト のビアス
学習データ のペア 一般のラ フ スケッ チ
20
データ セッ ト のビアス
学習データ のペア 一般のラ フ スケッ チ
• 教師あり データ (線画と ラ フ スケッ チのペア) : ρx,y
• ラ フ スケッ チデータ : ρx
• 線画データ : ρy
20
Generative Adversarial Network (GAN)
21
Generative Adversarial Network (GAN)
21
Generative Adversarial Network (GAN)
21
Generative Adversarial Network (GAN)
21
Generative Adversarial Network (GAN)
21
Generative Adversarial Network (GAN)
21
Generative Adversarial Network (GAN)
21
Generative Adversarial Network (GAN)
21
Generative Adversarial Network (GAN)
21
Generative Adversarial Network (GAN)
• D(·) は識別でき る よ う に最大化
max
D
Ey∗∼ρy
| {z }
本物データ
log D(y∗
) + Ez∼N(0,1)
| {z }
乱数
log(1 − D(G(z)))
21
Generative Adversarial Network (GAN)
• D(·) は識別でき る よ う に最大化
• G(·) は D(·) を 騙すよ う に最小化
min
G
Ez∼N(0,1)
| {z }
乱数
log(1 − D(G(z)))
21
Generative Adversarial Network (GAN)
• D(·) は識別でき る よ う に最大化
• G(·) は D(·) を 騙すよ う に最小化
• 順番で同時に学習
min
G
max
D
Ey∗∼ρy
| {z }
本物データ
log D(y∗
) + Ez∼N(0,1)
| {z }
乱数
log(1 − D(G(z)))
21
敵対的学習
min
S
教師あり
z }| {
E(x,y∗)∼ρx,y
通常教師あり ロ ス
z }| {
kS(x) − y∗
k2
入力 通常ロ ス
22
敵対的学習
min
S
max
D
教師あり
z }| {
E(x,y∗)∼ρx,y



通常教師あり ロ ス
z }| {
kS(x) − y∗
k2 +
教師あり 敵対的ロ ス
z }| {
α log D(y∗
) + α log(1 − D(S(x)))



入力 通常ロ ス + 敵対的ロ ス
22
敵対的学習
min
S
max
D
教師あり
z }| {
E(x,y∗)∼ρx,y



通常教師あり ロ ス
z }| {
kS(x) − y∗
k2 +
教師あり 敵対的ロ ス
z }| {
α log D(y∗
) + α log(1 − D(S(x)))



+ β
線画
z }| {
Ey∼ρy [ log D(y) ] + β
ラ フ スケッ チ
z }| {
Ex∼ρx [ log(1 − D(S(x))) ]
| {z }
教師なし 敵対的ロ ス
入力 通常ロ ス + 敵対的ロ ス + 教師なし ロ ス
22
敵対的拡張
• 教師なし データ も 使用可
• ハイ パーパラ メ ータ 調整が困難
• Yan et al. 2020 のラ フ スケッ チベンチマーク で一位
0
0.001
0.002
0.003
0.004
0.005
0.006
0.007
DelaunayTriangulation
FidelitySimplicity
MasteringSketching
PolyVector
PolyVector
→StrokeAggregator
RealTimeInking
StrokeAggregator
TopologyDriven
TopologyDriven
→StrokeAggregator
Ours 23
ペン入れ ・ 対話的ニュ ーラルネッ ト
ワ ーク
全自動の限界
入力 従来手法
24
全自動の限界
入力 従来手法
ユーザー編集 通常消し ゴム
24
全自動の限界
入力 従来手法
ユーザー編集 通常消し ゴム 提案手法
24
全自動の限界
“1. The inker’s main purpose is to translate the penciller’s graphite pencil lines
into reproducible, black, ink lines.
2. The inker must honor the penciller’s original intent while adjusting any obvious
mistakes.
3. The inker determines the look of the finished art.”
— Gary Martin, The Art of Comic Book Inking [1997]
24
対話的なニュ ーラルネッ ト ワ ーク
Input Output
Model
25
対話的なニュ ーラルネッ ト ワ ーク
Input Output
Model
User Edit
User
+
25
学習フ レ ームワ ーク
1. 線画標準化
2. ユーザー編集のシミ ュ ーレ ーショ ン
Train
User Edit
Simulation
Smart
Inker
Training Data
Line
Normalization
0
0
Dataset
26
学習フ レ ームワ ーク ・ 線画標準化
1. 線画標準化
2. ユーザー編集のシミ ュ ーレ ーショ ン
Train
User Edit
Simulation
Smart
Inker
Training Data
Line
Normalization
0
0
Dataset
27
学習フ レ ームワ ーク ・ 線画標準化
ベクターデータから生成
学習
27
学習フ レ ームワ ーク ・ 線画標準化
Input [Zhang and Suen 1984] Ours
27
学習フ レ ームワ ーク ・ 線画標準化
• 敵対的学習を 使わずにき れいな出力へ
Input No normalization Normalization
27
学習フ レ ームワ ーク ・ ユーザー編集のシミ ュ ーレ ーショ ン
1. 線画標準化
2. ユーザー編集のシミ ュ ーレ ーショ ン
Train
User Edit
Simulation
Smart
Inker
Training Data
Line
Normalization
0
0
Dataset
28
学習フ レ ームワ ーク ・ ユーザー編集のシミ ュ ーレ ーショ ン
Input Data Pair
Line
Drawing
Rough
Sketch
28
学習フ レ ームワ ーク ・ ユーザー編集のシミ ュ ーレ ーショ ン
Input Data Pair
Line
Drawing
Rough
Sketch
Sampled Regions 28
学習フ レ ームワ ーク ・ ユーザー編集のシミ ュ ーレ ーショ ン
Input Data Pair
Line
Drawing
Rough
Sketch
Sampled Regions Add Edits and Noise 28
学習フ レ ームワ ーク ・ ユーザー編集のシミ ュ ーレ ーショ ン
Input Data Pair
Line
Drawing
Rough
Sketch
Sampled Regions Add Edits and Noise 28
学習フ レ ームワ ーク ・ ユーザー編集のシミ ュ ーレ ーショ ン
Input Data Pair
Line
Drawing
Rough
Sketch
Sampled Regions Add Edits and Noise 28
学習
L(y, y∗
) = |(y − y∗
)
| {z }
L1 loss
(1 + γ (1 − y∗
))
| {z }
Weight lines with γ
|
• L1 ロ スを 使用
• γ の重みで線に重視
103
104
105
103
104
105
103
104
105
103
104
105
Input [Simo-Serra+ 2016] Baseline Ours
©David Revoy www.davidrevoy.com 29
PCA でモデルの最適化
• PCA でそれぞれの層の出力を 表示
• PCA の必要な次元数で層の必要なフ ィ ルタ ー数を 設定
• 最後の層よ り 最初の層のほう が重要
1 2 3
64 96 128
1 2 3
128 256 512
1 2 3
64 96 128
layer3
layer7
layer11
1 2 3 1 2 3 1 2 3
Input Output
30
モデル
• エンコ ーダー ・ ディ コ ーダー型 [Simo-Serra+ 2016]
• 24 レ イ ヤーの全層畳み込みニュ ーラ ルネッ ト ワ ーク
• フ ィ ルタ ーの数を 減少
• 約三倍の加速
Approach Parameters 10242
px 15122
px 20482
px 25602
px
Baseline 44,551,425 238.8ms 562.4ms 984.7ms 1.59s
Ours 12,795,169 89.9ms 225.5ms 382.7ms 592.9ms
31
データ セッ ト
• 288 枚のラ フ スケッ チの線画のペアー
• 前の研究よ り 難し いラ フ スケッ チ
32
ユーザーテスト
• CLIP STUDIO PAINT EX と の比較 (作業時間)
• 10 人のユーザーに1 0 枚のラ フ スケッ チずつ
• ぞれぞれのツ ール (CS、 提案手法) で五枚処理
• 一人に付き 2.8 時間
• 提案手法が 1.8× 加速
ユーザーテスト で使っ たラ フ スケッ チ
34
ユーザーテスト
PT Ours
0
1000
2000
3000
Time
(s)
PT Ours
0
200
400
600
800
1000
Time
(s)
Time Input Amateur Experienced Edit Ours
©David Revoy www.davidrevoy.com
34
ユーザーテスト
©David Revoy www.davidrevoy.com
PT Ours
0
200
400
600
800
1000
Time
(s)
PT Ours
0
200
400
600
800
1000
Time
(s)
Time Input Amateur Experienced Edit Ours
©Krenz Cushart
34
対話的ニュ ーラルネッ ト ワ ーク のリ ミ テーショ ン
Input Automatic Edit Ours
35
ペン入れ ・ 可変出力 (ベク タ ー画像)
ベク タ ー画像
• 形を 数学で定義
• 解像度を 上げても ぼやけない
• 形を 直接変更する こ と が可能
• 問題点 : 作成が困難
36
ベク タ ー画像
• 形を 数学で定義
• 解像度を 上げても ぼやけない
• 形を 直接変更する こ と が可能
• 問題点 : 作成が困難
36
提案手法
• 様々 な画像に対応でき る ベク タ ー線画化のフ レ ームワ ーク
37
主なコント リ ビュ ーショ ン
• ラ スタ ー画像でのみ学習でき る ベク タ ー線画家のフ レ ームワ ーク
• どの解像度にも 対応でき る バーチャ ルペン
• スト ロ ーク 正則化でベク タ ー表現の単純化
38
主なコント リ ビュ ーショ ン
• ラ スタ ー画像でのみ学習でき る ベク タ ー線画家のフ レ ームワ ーク
• どの解像度にも 対応でき る バーチャ ルペン
• スト ロ ーク 正則化でベク タ ー表現の単純化
38
フ レ ームワ ーク
• 入力 : ラ スタ ー画像
• 出力 : ベク タ ー画像 (曲線のパラ メ ータ の集合)
• 問題 : 通常の CNN だと 入力解像度が固定さ れる
Neural
Network
Raster image Vector stroke parameters
39
スト ローク と は
• 二次ベジェ曲線
B(τ) = (1 − τ)2
P0 + 2(1 − τ)τP1 + τ2
P2, τ ∈ [0, 1] (1)
• (0, 0) から 描く ので、 P0 = 0
• モデルの出力
at = xc, yc, ∆x, ∆y, w
| {z }
曲線のパラ メ ータ と 幅 w
, ∆s, p

t
, t = 1, 2, ..., T (2)
• [−1, +1] の座標系
• ∆s は Canvas のスケール変更
• p ∈ [0, 1] は線を 描く か移動だけする か決める 変数
40
詳細
Stroke
Generation
Render
Input image Canvas
Stroke
parameters
Crop
Paste
41
詳細
Stroke
Generation
Render
Input image Canvas
Stroke
parameters
Crop
Paste
41
バーチャ ルペン
Input image Canvas
42
バーチャ ルペン
Input image Canvas
No undrawn
pixels inside
42
バーチャ ルペン
Input image Canvas
42
バーチャ ルペン
42
微分可能コピーペースト と ク ロッ プ
• 座標は連続値なのに、 画素は離散値
• 座標変更の後に RoIAlign [He et al. 2017] で解決
0 1 2 3 4 5
1
2
3
4
5
0 1 2
1
2
(a) Misaligned Cropping (c) Differentiable Pasting
(b) Aligned Cropping
0 1 2 3 4 5
1
2
3
4
5
43
微分化レ ンダーリ ング
• ベク タ ースト ロ ーク から ラ スタ ー画像を 生成
• VGG16 を 使用 [Simonyan and Zisserman 2015]
Neural
Network
Neural
Renderer
Raster
Loss
Input image Stroke parameters Rendered image
44
ラスタ ーの損失関数
• VGG16 を 使用 [Simonyan and Zisserman 2015]
Loss Network (VGG-16)
Rendered
image
Target
image
45
スト ローク 正則化
• スト ロ ーク を 描く と pt = 1、 ペンを 動く だけだと pt = 0
• スト ロ ーク 正則化 : Lref = 1
T
PT
t=1 pt
• 損失関数に重みつけて足す : Ltotal = Lras + λregL
Target (a long line)
Output-1: short segments
Output-2: overlapped strokes
1 1 1 1 1 1 1 1 0 0 1 1
1 1
46
ベク タ ー化
47
ベク タ ー化
47
ベク タ ー化
47
ベク タ ー化の結果
75s 69s 29s (GPU)
Fidelity-vs-Simplicity
[Favreau et al. 2016]
PolyVectorization
[Bessmeltsev et al. 2019] Our results (vector)
Dracolion (1024px)
48
ベク タ ー化の結果
Fidelity-vs-Simplicity
[Favreau et al. 2016]
PolyVectorization
[Bessmeltsev et al. 2019] Our results (vector)
Mouse (1024px)
89s 61s 23s (GPU)
48
ペン入れ
49
ペン入れ
49
ペン入れの結果
PolyVectorization
[Bessmeltsev et al. 2019]
Sketch Simplification (pixel)
[Simo-Serra et al. 2018]
+ PolyVectorization
Our results (vector)
Bird (384px)
50
ペン入れの結果
PolyVectorization
[Bessmeltsev et al. 2019]
Sketch Simplification (pixel)
[Simo-Serra et al. 2018]
+ PolyVectorization
Our results (vector)
Hand (433px)
50
顔写真の線画化
51
顔写真の結果
Our results
(vector)
Input Learning-To-
Paint
[Huang et al.
2019]
Photo-Sketching
(pixel) +
PolyVectorization
Our results
(vector)
Input Learning-To-
Paint
[Huang et al.
2019]
Photo-Sketching
(pixel) +
PolyVectorization
52
スト ローク 正則化
• かぶっ ている スト ロ ーク の減少
Input image
53
スト ローク 正則化
• スト ロ ーク の単純化
Input image
54
彩色
彩色の基礎
六色のパレ ッ ト
線画 彩色 陰影
©David Revoy www.davidrevoy.com
55
彩色 ・ 最適化
Lazy Brush
• 最適化問題と し て定義
E(c) =
X
{p,q}∈N
Vp,q(cp, cq)
| {z }
隣同士の画素の連続性
+
X
p∈P
Dp(cp)
| {z }
ユーザーヒ ント
• Multiway-cut で最適化
• ユーザー入力が正し いと し ない前提
57
彩色 ・ デジタ ルパレ ッ ト
アーティ スト のパレ ッ ト
• 最初に使用する 色の選択
• 色を 混ぜる と 新し い色を 作れる
• 混ぜないと 別々 に保つ
58
オーバービュ ー
1. ユーザーの入力を ク ラ スタ リ ングで分ける (パレ ッ ト 作る )
2. 別々 の色で自動彩色
3. 彩色の結果を ま と めて統合する
59
モデル
32
64
128
256
512
1024
512
256
128
64
32
512
256
128
64
32
512
256
128
64 32
Line
drawing
X
( w ×h )
Split user
scribble
Ui
( w ×h ×4 )
Split user
scribble mask
Mi
( w ×h )
Flat
colour map
Y
( w ×h ×3 )
Flat merging
weight
Wi
*
( w ×h )
Region
skeleton map
S
( w ×h )
Convolution layer  ReLU
Average pooling layer
Up-sampling layer
line drawing
X
split scribble
Ui
scribble mask
Mi
Y
Ci
Wi
*
Wi
S
Si
MSE
MSE
MSE
Weight
decoder
Region
decoder
Layer
decoder
Colourlayer
Mergingweight
Regionskeleton
60
実際の例①
(a) Input (b) Output
(c) Scribble
(d)
(e)
(f)
61
実際の例②
(e) Input (f) Output
(a) Scribble
(b)
(c)
(d)
62
彩色 ・ 陰影の近似
モチベーショ ン
Stroke Density Lighting Effects
35:24 200:01
Measured Estimated Ours Artist (Conditioned)
Original Image  Stroke History
44:13 241:37
Artist (Unconditioned)
29:11 187:54
63
概要
Artists’ workflow
(b) Measured
stroke density
(c) Artist’s coarse
effect layer
(g) Effect created
with another style
(d) Artist’s refined
effect layer
(e) Visualization of
painted patches
(f) Artist’s final
lighting effect
Low Density Patches
High Density Patches
33:24 241:59
(a) Artist’s real
stroke history
(h) Original image
(R)
(i) Extracted palette
(M)
(j) Estimated stroke
density (K)
(k) Normalized
channel intensity (N)
(l) coarse
lighting effect (E)
(m) Refined lighting
effect (S)
(n) Output
(I)
Proposed algorithm
64
汎化性能
66
リ ミ テーショ ン
Lighting effects Ours
Original image
67
ま と めに
ま と めに
• イ ラ スト レ ーショ ンの支援が中々 難し い
• ユーザーの制御
• 高解像度
• 再現性 ・ 解釈性
• 高性能 (ユーザーの希望に応える )
• リ アルタ イ ム (理想)
• 完成度
• アプリ ケーショ ンによ る 開発が必要
• CV や ML の技術の導入可
• 紹介し たテーマ
• ペン入れ
• 彩色
68
ま と めに
ご清聴あり がと う ございま し た!
© シモセラ エド ガー
69

SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​