Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Efficient Sub-Pixel Convolutional Neural Network を巡るあれこれ / Sub-Pixel Convolution

Efficient Sub-Pixel Convolutional Neural Network を巡るあれこれ / Sub-Pixel Convolution

エルピクセル株式会社で開催された#5【画像処理&機械学習】論文LT会!での発表資料です。
Sub-Pixel Convolution (Pixel Shuffler) が提案された論文と、周辺論文についてまとめています。

70ae2d149767d4198aac83453481b8dd?s=128

Amane Suzuki

July 22, 2019
Tweet

Transcript

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

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

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

  4. 今日紹介する論文 [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
  5. 画像を拡大するときの選択肢 1. Transposed Conv(Deconvolution) 2. Upsample + Conv 3. Sub-Pixel

    Conv(Pixel Shuffler) 5
  6. Transposed Conv (Deconv) • やってることは Conv と一緒で、カーネルの形状だけが違う • checkerboard artifact

    が発生する ◦ 出力に寄与する入力画素数が異なる(=フィルタが重なる)から ◦ size=4, stride=2 なら良いかと言うとそうでもない(なんでじゃ) checkerboard artifact 6 filter overlap 図:https://distill.pub/2016/deconv-checkerboard/
  7. Upsample + Conv • 予め nearest neighbor や bilinear などで拡大してから畳み込む

    • checkerboard artifact が出ない • 補間画素に対する計算量がもったいない 7 図:https://distill.pub/2016/deconv-checkerboard/ Transposed Conv Upsample + Conv
  8. • 8マスを5マスに畳み込む例(size=4, stride=2) • グレーのマスは 0 を意味している まずは Conv の図示

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

    と一緒 9
  10. Sub-Pixel Conv と比較してみる • Sub-Pixel 空間に広げて(間を 0 埋めして)から通常の Conv •

    インデックスの振り方が変わっているだけ → 学習が進めば Transposed Conv = Sub-Pixel Conv 10
  11. Sub-Pixel 空間での Conv • Sub-Pixel 空間に広げてから畳み込む • 隣接セルの情報は空間方向に持っている 11

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

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

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

  15. 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
  16. まとめ • 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
  17. 参考文献 [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