Slide 1

Slide 1 text

Efficient Sub-Pixel Convolutional Neural Network を巡るあれこれ #5【画像処理&機械学習】論文LT会! @ エルピクセル 鈴木 天音|Amane Suzuki

Slide 2

Slide 2 text

鈴木天音(すずき あまね) Twitter: @SakuEji Kaggle Master(Kaggle歴2年弱) 技術書典7出します。『ハマって覚える機械学習の罠(仮)』 画像は初心者です。いろいろ教えてください!

Slide 3

Slide 3 text

画像を拡大したい \お気持ち/

Slide 4

Slide 4 text

今日紹介する論文 [1] Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network ○ Sub-Pixel Conv と ESPCN を提案 [2] Is the deconvolution layer the same as a convolutional layer? ○ Transposed Conv と Sub-Pixel Conv は学習すれば一緒 [3] Checkerboard artifact free sub-pixel convolution ○ kernel の初期化を工夫すると checkerboard artifact が出ない * 特に注釈がない図は[2]からの引用です 4

Slide 5

Slide 5 text

画像を拡大するときの選択肢 1. Transposed Conv(Deconvolution) 2. Upsample + Conv 3. Sub-Pixel Conv(Pixel Shuffler) 5

Slide 6

Slide 6 text

Transposed Conv (Deconv) ● やってることは Conv と一緒で、カーネルの形状だけが違う ● checkerboard artifact が発生する ○ 出力に寄与する入力画素数が異なる(=フィルタが重なる)から ○ size=4, stride=2 なら良いかと言うとそうでもない(なんでじゃ) checkerboard artifact 6 filter overlap 図:https://distill.pub/2016/deconv-checkerboard/

Slide 7

Slide 7 text

Upsample + Conv ● 予め nearest neighbor や bilinear などで拡大してから畳み込む ● checkerboard artifact が出ない ● 補間画素に対する計算量がもったいない 7 図:https://distill.pub/2016/deconv-checkerboard/ Transposed Conv Upsample + Conv

Slide 8

Slide 8 text

● 8マスを5マスに畳み込む例(size=4, stride=2) ● グレーのマスは 0 を意味している まずは Conv の図示 8

Slide 9

Slide 9 text

Transposed Conv を図示してみる ● 5マスを8マスに拡大する例(size=4, stride=2) ● kernel が転置されているだけで、やっていることは Conv と一緒 9

Slide 10

Slide 10 text

Sub-Pixel Conv と比較してみる ● Sub-Pixel 空間に広げて(間を 0 埋めして)から通常の Conv ● インデックスの振り方が変わっているだけ → 学習が進めば Transposed Conv = Sub-Pixel Conv 10

Slide 11

Slide 11 text

Sub-Pixel 空間での Conv ● Sub-Pixel 空間に広げてから畳み込む ● 隣接セルの情報は空間方向に持っている 11

Slide 12

Slide 12 text

低解像画像上で畳み込めばよいのでは? ● 畳み込んだ後、機械的に並べ替える(Pixel Shuffle) ● 隣接セルの情報はチャネル方向に持っている 12

Slide 13

Slide 13 text

2つの解釈を比較してみる ● 隣接ピクセルの情報を空間方向に持つかチャネル方向に持つかだけの違い ● padding 部分を除けば計算量も一緒 13 \一緒/

Slide 14

Slide 14 text

提案手法:ESPCN[1] ● 特徴抽出を低解像画像上で行い、計算コスト削減* ● 超解像文脈だと、低解像画像をそのまま入力にできて嬉しい 14 * 比較対象は既往手法の SRCNN

Slide 15

Slide 15 text

ICNR[3] ● Sub-Pixel Conv は checkerboard artifact free ではない ○ 低解像上で stride=1 なら軽減はされるが…… ● Conv → nearest neighbor なら checkerboard artifact は出ない ● initialized to convolution NN resize(ICNR)を提案 ○ 1/rサイズで初期化した後、r倍に拡大して初期値に使う ○ Conv → nearest neighbor で初期化するイメージ 15

Slide 16

Slide 16 text

まとめ ● Transposed Conv(Deconv)と Sub-Pixel Conv(Pixel Shuffler)は 学習すれば一緒 ● Sub-Pixel Conv は2通りの解釈があり、2つは同義 ○ Sub-Pixel 空間での Conv ○ 低解像画像上で畳み込んだ後のPixel Shuffle ● Sub-Pixel Conv を利用することで低解像画像上で演算ができ、低コスト ● ICNR で初期化すれば checkerboard artifact が出ない 16

Slide 17

Slide 17 text

参考文献 [1] W. Shi, J. Caballero, et al. Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network. arXiv:1609.05158, 2016. [2] W. Shi, J. Caballero, et al. Is the deconvolution layer the same as a convolutional layer? arXiv:1609.07009, 2016. [3] A. Aitken, C. Ledig, et al. Checkerboard artifact free sub-pixel convolution: A note on sub-pixel convolution, resize convolution and convolution resize. arXiv:1707.02937, 2017. [4] https://distill.pub/2016/deconv-checkerboard/ 17