Post on 11-Feb-2017
Learning a Convolutional Network for Image Super-Resolution
16273001 高見 玲
1
Chao Dong, Chen Change Loy, Kaiming He and Xiaoou TangIn: European Conference on Computer Vision. Springer International Publishing, p. 184-199.(2014)
既存手法・提案手法
• Sparse-cording methodやexample-basedな手法では辞書
やモデルの構築法に注視[1]
• その他の手順や統合的なフレームワークに着目
• 既存のパイプラインを ( )
3
[1] Yang, J., Wright, J., Huang, T., Ma, Y.: Image super-resolution as sparse representation of raw image patches.In: CVPR, pp. 1–8, 2008
Super-Resolution Convolutional Neural Network (SRCNN)
• 畳み込みニューラルネットワークを超解像に適用
• 畳み込み演算によるマッピング• をまとめて入力
•
4
既存研究(超解像)
• prediction models
• 画像の内部的な類似性を利用してパッチ生成
• どのように特徴を学習するかに依存
• nearest neighbour (NN) method
• SR method
• edge based method
• image statistical methods
• patch based(example-based)
8
既存研究(CNN)
• 画像のクラスフィケーションについての効果[3]
• GPU上での実装
• を活性化関数で用いることの有効性[4]
• 大量のデータ(ImageNetなど)の利用[5]
9
[3] Krizhevsky, A., Sutskever, I., Hinton, G.: ImageNet classification with deep convolutional neural networks. In: NIPS, pp. 1097–1105 , 2012
[4] Nair, V., Hinton, G.E.: Rectified linear units improve restricted Boltzmann machines. In: ICML, pp. 807–814 , 2010[5] Deng, J., Dong, W., Socher, R., Li, L.J., Li, K., Fei-Fei, L.: ImageNet: A large-scale hierarchical image database.
In: CVPR, pp. 248–255 , 2009
既存研究(画像再構築のためのDeep Learning)
• End-to-endでパラメータを決定
• 多層パーセプション(MLP),
全結合ネットワークのノイズ除去への利用[6]
• CNNのノイズ除去への利用[7]
• 超解像へ向けた利用については前例なし
10
[6] Burger, H.C., Schuler, C.J., Harmeling, S.: Image denoising: Can plain neural networks compete with BM3DIn: CVPR, pp. 2392–2399, 2012
[7] Jain, V., Seung, S.: Natural image denoising with convolutional networks. In: NIPS, pp. 769–776, 2008
畳み込みニューラルネットワーク(Convolutional Neural Network)[8]
• と (後述)を繰り返す
• を取得
• 各層で入力とバイアスを により計算
• 畳み込みにより扱う重みの数が減少
→全結合ネットワークより ,
12[8] 石橋 祟司, Caffeをはじめよう 深層学習による画像解析の実践, オライリー・ジャパン, 2016
畳み込み層[8]
• 注目画素(中心画素)と周辺を重みづけ
• が出力の画素値
• 注目画素を でずらしながら
入力全体にカーネルを適用
• カーネル: n×nで重みパラメータを保持する積分核
• padding: 端領域を0で補完
13[8] 石橋 祟司, Caffeをはじめよう 深層学習による画像解析の実践, オライリー・ジャパン, 2016
畳み込み層
[9] icoxfog417, “Convolutional Neural Networkとは何なのか”, http://qiita.com/icoxfog417/items/5fd55fad152231d706c2,
(2016-11-9参照)14
[9]
ReLU(Rectified Linear Unit)
• な区分線形関数
• ほかの活性化関数: シグモイド, tanh etc
→ 値の増大に対して飽和(漸近時に変化量が低下)
• :
• 飽和: 過学習の防止
• 大きいデータセットを用いる
f(x) = max(0, x)
17
誤差逆伝搬法(Backpropagation)
• ニューラルネットワークにおける学習手法
• 期待する出力と実際の出力値から損失を導出
• するように各層の重みを学習
• 損失: 損失関数から求められる精度の悪さ
18
Loss Function
・パラメータは損失関数が最小値になるように計算
・再構築された画像と対応する高品質画像間の損失を
計算, 最小化
・ , MSE(Mean Squared Error)を使用
L (Θ) = 1
𝑛σ1=1𝑛 | 𝐹 𝑌𝑖; Θ − 𝑋𝑖 |
2
19
手順
1.
• 低画質画像Yからパッチを生成
• 高次元ベクトルとして表現
2.
• 低次元から高次元ベクトルへのマッピング
• ベクトルはhigh-resolution patchとして表現
3.
• パッチ画像から元画像を再構築, 生成21
Patch extraction and representation
•画像からのパッチの抽出, n1次元へのマッピング
F1(Y)=max(0,W1 ∗Y+B1)W1 : フィルタ, 活性化関数にはReLUを使用
W1 = c × f1 ×f1
C: 画像のチャンネル数, f1: フィルタのサイズ
B1: バイアス
n1次元の各パッチ特徴を出力
23
Non-linear mapping
• n1 次元から n2次元へのマッピング
F2(Y)=max(0,W2∗F1(Y)+B2)W1 : フィルタ
W1 = n1 × f2 ×f2
B2: バイアス(n2次元)
n1次元の各パッチ特徴を出力
24
Reconstruction
•CNNにより生成されたパッチを平坦化
F (Y) = W3∗ F2(Y) + B3
W3 : フィルタ(c次元)
W3 = n2 × f3 × f3× c
B2: バイアス(c次元)
25
学習データ
•畳み込みのstrideは14
• 8 × 108回の逆誤差伝搬法の適用(3日間)
• Upscaling factorは 2, 3, 4 (倍率?)
•トレーニング時の境界効果を防ぐためpaddingなし
27
学習データ
• 各トレーニング画像を32×32のsubimageに分解• ランダムに切り取り• パッチと異なり後処理が必要ない
• (91 images)
• 24,800のsubimageに分解
• : f1 =9, f3 =5, n1 =64, n2 =32
c=1 (color画像の場合c=3)
28
40
g, h : ラプラシアン/ガウスフィルタ
a - e : エッジフィルタ(異なる箇所)
f : テクスチャ抽出フィルタ
長く走らせると”死んだ”フィルタに特徴が現れる
学習されたフィルタ(第一層)