デブラー手法の紹介

>100 Views

April 05, 21

スライド概要

https://techblog.morphoinc.com/entry/2021/04/05/111004

profile-image

モルフォは“画像処理×AI技術”の研究開発型企業として、ソフトウェア事業をグローバルに展開しています。テックブログにて画像処理・AIに関する情報をお届けしています。 ・コーポレートサイト:https://www.morphoinc.com/ ・テックブログ:https://techblog.morphoinc.com/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

Journal Club デブラー手法の紹介 2021.02.26 CTO室 リサーチャー 三宅 博史

2.

ブラー • センサーノイズを低減するために、十分な露光時間を確保する必要 • 露光時間中にカメラ or 被写体が動くことで画像がぼける • ピントがずれることによるブラーと区別してモーションブラーと呼ぶこともある [2] Figure 1 より 1

3.

基本的なブラーモデル 観測画像=潜在画像 ⊗ ブラーカーネル 畳み込み • 単一のブラーカーネルの場合は以下を仮定 – 被写体間の視差が小さいこと – 動被写体がないこと(動くのはカメラのみ) – カメラの回転がないこと ブラーカーネルの例 [2] Figure 10 より • 当然仮定に従わないケースではデブラーできない – それどころか、アーティファクトを発生させる – 被写体セグメントごと・ブロックごと・ピクセルごとに異なるカーネルを求める手法も 2

4.

用語 • Non-blind: センサー情報や何らかの仮定・他の手法により、ブラーカー ネルが既知の場合 – 潜在画像のみを推定 • Wiener filtering • Richardson Lucy アルゴリズム • Blind: ブラーカーネル未知の場合 – 観測画像からブラーカーネルと潜在画像を両方推定 – 観測よりも多くの情報を推定する必要があるので、しばしば “ill formed” とよ ばれる 3

5.

2006 [2] • 色々な推定手法のもとになっている(引用件数 2184) 4

6.

ブラーモデル 𝑝 ∇𝑃 Θ = 𝑁 ∇𝑃 𝐾 ⊗ ∇𝐿, 𝜎 2 • ∇𝑃: 観測画像の勾配 ∇𝑃 = ∇𝑃𝑥 , ∇𝑃𝑦 ∇𝑃𝑥 = 𝑃 ⊗ 1, −1 ∇𝑃𝑦 = 𝑃 ⊗ 1, −1 𝑇 • Θ = 𝐾, ∇𝐿𝑃 , 𝜎 : カーネル、潜在画像の勾配、分散 • ⊗: 畳み込み演算 𝐾 𝐾 𝑆⨂𝑇 𝑖𝑗 = ෍ ෍ 𝑆𝑘,𝑙 𝑇𝑖+𝑘,𝑗+𝑙 𝑘=−𝐾 𝑙=−𝐾 5

7.

ブラーモデル 𝑝 ∇𝑃 Θ = 𝑁 ∇𝑃 𝐾 ⊗ ∇𝐿, 𝜎 2 • 勾配ドメインでのモデル化 – “自然な画像”の勾配画像が従う分布が経験的に知られている – 畳み込みカーネルは勾配ドメインでも保存される [2]Figure 2 より 6

8.

ブラーモデル 𝑝 ∇𝑃 Θ = 𝑁 ∇𝑃 𝐾 ⊗ ∇𝐿, 𝜎 2 • 事前分布の設定 𝐷 混合指数分布 𝑝 𝐾 = ෑ ෍ 𝜋𝑑 𝜆𝑑 exp −𝜆𝑑 𝐾𝑘𝑙 𝑘𝑙 𝑑=1 𝐶 𝑑 2 𝑝 ∇𝐿 = ෑ ෍ 𝜋𝑐 2𝜋𝑣𝑐 𝑖𝑗 𝑐=1 𝑝 𝜎 2 ෍ 𝜋𝑑 𝐸 𝐾𝑖𝑗 ∣ 𝜆𝑑 1 ∝ 2 𝜎 7 exp − ∇𝐿2𝑖𝑗 2𝑣𝑐 • 正である条件付け • なるべくスパース • 𝐷:コンポーネント数

9.

ブラーモデル 𝑝 ∇𝑃 Θ = 𝑁 ∇𝑃 𝐾 ⊗ ∇𝐿, 𝜎 2 • 事前分布の設定 𝐷 𝑝 𝐾 = ෑ ෍ 𝜋𝑑 𝜆𝑑 exp −𝜆𝑑 𝐾𝑘𝑙 ෍ 𝜋𝑐 𝑁 ∇𝐿𝑖𝑗 ∣ 0, 𝑣𝑐 𝑘𝑙 𝑑=1 𝐶 2 𝑝 ∇𝐿 = ෑ ෍ 𝜋𝑐 2𝜋𝑣𝑐 𝑖𝑗 𝑐=1 𝑝 𝜎 2 混合ガウス分布 1 ∝ 2 𝜎 8 exp − ∇𝐿2𝑖𝑗 2𝑣𝑐 𝑐 • 自然な画像の 勾配画像を表現 • 𝐶:コンポーネント数

10.

ブラーモデル 𝑝 ∇𝑃 Θ = 𝑁 ∇𝑃 𝐾 ⊗ ∇𝐿, 𝜎 2 • 事前分布の設定 𝐷 𝑝 𝐾 = ෑ ෍ 𝜋𝑑 𝜆𝑑 exp −𝜆𝑑 𝐾𝑘𝑙 𝑘𝑙 𝑑=1 𝐶 2 𝑝 ∇𝐿 = ෑ ෍ 𝜋𝑐 2𝜋𝑣𝑐 𝑖𝑗 𝑐=1 𝑝 𝜎 2 1 ∝ 2 𝜎 9 exp − ∇𝐿2𝑖𝑗 2𝑣𝑐 無情報事前分布 1 2 𝑝 𝜎 ∝ 2 𝜎 • 事後分布をガンマ 分布にしたい • Scale-invariant

11.

変分ベイズ • 真の事後分布は、 𝑝 ∇𝑃 ∣ Θ 𝑝 Θ 𝑝 Θ ∣ ∇𝑃 = ‫𝑃∇ 𝑝 ׬‬, 𝜃 𝑑Θ ∝ 𝑝 ∇𝑃 Θ 𝑝 𝐾 𝑝 ∇𝐿 𝑝 𝜎 2 • これを関数𝑞 Θ で近似する • 𝑞 Θ は以下のように分解できる形と仮定する(平均場近似) 𝑞 Θ = 𝑞 𝐾 𝑞 ∇𝐿 𝑞 𝜎 2 10

12.

変分ベイズ • 目的関数は、近似関数と真の事後分布のカルバックライブラー距離 𝐶𝐾𝐿 = 𝐾𝐿 𝑞 Θ ∥ 𝑝 Θ ∣ ∇𝑃 𝑞 Θ = න 𝑞 Θ ln 𝑑Θ 𝑝 Θ ∣ ∇𝑃 ‫𝑃∇ 𝑝 ׬‬, Θ′ 𝑑Θ′ 𝑞 Θ = න 𝑞 Θ ln 𝑑Θ 𝑝 ∇𝑃 ∣ Θ 𝑝 Θ 𝑞(𝐾) 𝑞 ∇𝐿 𝑞 𝜎2 = න 𝑞 Θ ln + ln + ln − ln 𝑝 ∇𝑃 ∣ Θ 2 𝑝 𝐾 𝑝 ∇𝐿 𝑝 𝜎 𝑑Θ + 𝐶 ln 𝑁 ∇𝑃 𝐾 ⊗ ∇𝐿, 𝜎 2 ෠ 𝜎2 = ln 𝑁 ∇𝑃 ∇𝑃, 2 ∇𝑃𝑖𝑗 − ∇𝑃෠ = ln ෑ exp 2 2𝜎 2 2𝜋𝜎 1 𝑖𝑗 1 2 = 2 ෍ ∇𝑃𝑖𝑗 − ∇𝑃෠𝑖𝑗 − 𝐼𝐽 ln 𝜎 + 𝐶 2𝜎 11 𝑖𝑗

13.

変分ベイズ • 𝐾, ∇𝐿についての積分を実行し、𝜎 2 に関係する項だけ残す 𝐶𝐾𝐿 = න 𝑞 𝜎2 ln 𝑞 𝜎 2 − ln 𝑝 𝜎 2 1 𝐼𝐽 2 − 2 ෍ ∇𝑃𝑖𝑗 − ∇𝑃෠ − ln 𝜎 2 𝑑𝜎 2 2𝜎 2 𝑖𝑗 • ‫ 𝜎 𝑞 ׬‬2 𝑑𝜎 2 = 1 の条件つき変分法を用いて 𝛿𝐶𝐾𝐿 1 𝐼𝐽 2 2 2 2 ෠ = ln 𝑞 𝜎 + 1 − ln 𝑝 𝜎 − ∇𝑃 − ∇ 𝑃 − ln 𝜎 +𝜆 ෍ 𝑖𝑗 2 2 𝛿𝑞(𝜎 ) 2𝜎 2 𝑖𝑗 =0 𝑞 𝜎 2 2 ∝𝑝 𝜎 𝜎 2 𝐼𝐽 2 exp 1 2 ෠ ෍ ∇𝑃𝑖𝑗 − ∇𝑃 2 2𝜎 形がガンマ分布 𝑖𝑗 1 1 2 𝐼𝐽 = Γ 2 ∣ ෍ ∇𝑃𝑖𝑗 − ∇𝑃෠ , 𝜎 2 2 𝑖𝑗 12 𝜆 などの定数が正規化項を担うので 形がガンマ分布であれば 𝑞(𝜎 2 ) はガンマ分布

14.

変分ベイズ • 𝑞 𝐾 , 𝑞 ∇𝐿 も同様に求める – 𝑞 𝐾 は混合 “Rectified Gaussian” に、𝑞(∇𝐿)は混合ガウシアンになる – Rectified Gaussian:ガウシアンだが、負領域でゼロ Wikipedia 『Rectified Gaussian distribution』 より 13

15.

事後分布最大化 • 𝑞 𝜎 2 , 𝑞 𝐾 , 𝑞 ∇𝐿 を最大にする Θ で更新する 疑問:なぜ最頻値ではない? 次のようなパラメタ更新をする ことと兼ね合いかも – それぞれの分布の平均で更新する – 𝑞 Θ の可分解仮定が強すぎるので、以下のように更新値を線形探索する ΔΘ = Θ 𝑡+1 − Θ 𝑡 𝛼 ∗ = argmin𝛼 𝐶𝐾𝐿 Θ + 𝛼ΔΘ Θ 𝑡+1 = Θ 𝑡 + 𝛼 ∗ ΔΘ • なお𝐶 = 𝐷 = 4 (事前分布の混合コンポーネント数)は固定、また寄 与率 𝜋𝑐 , 𝜋𝑑 もいくつかの自然な写真でフィットした値で固定 – 𝐶, 𝐷, 𝜋𝑐 , 𝜋𝑑 をデータにフィットしたり大きくすると、モデルの自由度が大きくなる – おそらく(問題が ill formed なので)自由度を抑えないと良い結果にならない 14

16.

出力画像 • 推定した潜在画像 ∇𝐿 は用いずに、観測画像と 𝐾 からデコンボリューショ ンを実施 – Richardson Lucy アルゴリズム [1] – カーネル 𝐾 とその転置 𝐾 𝑇 を用いて以下の式で逐次更新 𝐿෠ 𝑡+1 = 𝐿෠ 𝑡 𝑃 𝑇 ⊗ 𝐾 𝐿෠ 𝑡 ⊗ 𝐾 • R-L アルゴリズムの疑似コード repeat: conv = convolve(im_deconv, kernel) relative_blur = im / conv im_deconv *= convolve(relative_blur, flip(kernel)) 15

17.

マルチスケール化の工夫 • 縮小画像+小カーネルでアルゴリズムを実行し、徐々にアップスケール – 大きなカーネルの場合でも局所解に陥りにくい [2] Figure 3 より 16

18.

結果画像 [2] Figure 7, 8 より 17

19.

結果画像の列挙 • サチュレーションした画像(極端に明るい・暗い面積が大きい画像)で はデブラーに失敗する – ∇𝐿 をモデル化することが裏目 – カーネルの推定に誤差が生じる – カーネルの誤差により ringing artifact が発生している 18 Ringing artifact: エッジ付近で縞模様 が出てしまう [2] Figure 11 より

20.

2008 [3] • 潜在画像の出力部分もモデル化した – カーネル推定→デコンボリューションの流れではアーティファクトから逃れられない • アーティファクト改善度が大きい 19

21.

ブラーモデル • 先ほどと同様のベイズモデル 𝑝 ∇𝐿, 𝐾 ∇𝑃 ∝ 𝑝 ∇𝑃 ∇𝐿, 𝐾 𝑝 ∇𝐿 𝑝 𝐾 ∇𝐿: 潜在画像の勾配 𝐾: カーネル ∇𝑃: 観測画像の勾配 • ただし以下の点で異なる – このモデルから得た潜在画像をそのまま出力する – 事前分布の取り方 20

22.

ブラーモデル • グローバル&ローカル事前分布 𝑝𝑔 ∇𝐿 ∝ ෑ exp Φ ∇𝐿𝑖𝑗 𝑖𝑗 −𝑘 𝑥 Φ 𝑥 =൝ − 𝑎𝑥 2 + 𝑏 𝑥 ≤ 𝑙𝑡 𝑥 > 𝑙𝑡 自然な画像の勾配 が従う分布のモデル [3] Figure 7 より 21

23.

ブラーモデル • グローバル&ローカル事前分布 𝑝𝑙 ∇𝐿 = ෑ 𝑁 ∇𝐿𝑖𝑗 − ∇𝑃𝑖𝑗 ∣ 0, 𝜎 2 𝑖,𝑗∈Ω 𝑝 ∇𝐿 = 𝑝𝑔 ∇𝐿 𝑝𝑙 ∇𝐿 • なめらかな領域 Ω において入力画像と出力画像は勾配が類似している という制約 領域 Ω の求め方 Window 内の輝度値の 分散が閾値以下なら Window 中心∈ Ω (白) [3] Figure 8 より 22

24.

結果画像 • なめらかな領域における ringing artifact (縞状のアーティファクト) だけでなく、テクスチャ領域においても改善がみられた – ∇𝐿 の推定精度向上が 𝐾 の推定精度向上にも寄与したためと考えられる (a)Ground Truth (b)観測画像 (c) ローカル事前分布なし (d)ローカル事前分布あり (e)領域 Ω (白) (f) d と c の差分画像 [3] Figure 9 より 23

25.

ECCV2020 [4] • 話題は変わり、複数フレーム(動画)入力でのデブラー – 単数フレームと比べて使える情報は多い • Deep Learning 系の手法 – CP 系の手法と比べて、アーティファクトが出にくい 24

26.

ECCV2020 • 問題設定 – 入力:動画 – 出力:モーションブラーを除去した動画 [4] GitHub より 25

27.

ESTRNNモデル • モデル全体像 過去フレーム 現在フレーム 未来フレーム デブラーされた 現在フレーム [4] Figure 2 より • RDB (Residual Dense Block) cell – 前フレームから隠れ状態を受け継ぎ、現在フレームを処理する 26

28.

ESTRNNモデル • モデル全体像 過去フレーム 現在フレーム 未来フレーム デブラーされた 現在フレーム [4] Figure 2 より • GSA (Global Spatio-temporal Attention) module – 過去から未来までの数フレーム分の特徴量をうけとり、ひとつの特徴量にまとめる 27

29.

ESTRNNモデル • モデル全体像 過去フレーム 現在フレーム 未来フレーム デブラーされた 現在フレーム [4] Figure 2 より • Reconstruction module – 受け取った特徴量から現在フレームを再構成する 28

30.

ESTRNNモデル • RDB cell Local hierarchical features 隠れ状態更新器 隠れ状態 隠れ状態 入力画像 hierarchical features 1x1 ダウンサンプリング [4] Figure 3 より 29

31.

ESTRNNモデル • GSA module (Global Average Pooling) ConvTranspose hierarchical features Re-constructor 𝑂𝑡 潜在画像 (デブラーされた画像) [4] Figure 4 より • SENet のような感じで、現在フレームと過去/未来フレームから重要なチャネルを濃 縮させる • 学習は入力画像𝐼𝑡 と潜在画像𝑂𝑡 の𝐿2 ロスをADAMで最適化 30

32.

計算量解析 • THOP[5]を用いてオペレーション数をカウント • 入出力:1280x720(HD) • 既存手法よりも速い&高精度 • 100k~200k MAC/pixel 積和演算数: Multiply-accumulate operations [4] Figure 1A より 31

33.

データセット • 人工データ:ハイスピードカメラの映像を積分した公開データ(DVD, GOPRO, REDS) • リアルデータ:ビームスプリッターを用いた装置を開発し、露光時間のみ がことなる同期した映像を取得(BSD) • BSDの学習時にはL1ロスを用いる – おそらく、光量が1/2になることでノイズが増えるため、ノイズ耐性があるL1を使用 光 [4] Figure 5 より 32

34.

結果画像の列挙 • その他の結果画像は元論文を参照してください 33 [4] Figure 7 より

35.

まとめと感想 • 変分ベイズ – 色々な論文の礎となっている – Ill formed な問題設定なので事前分布の置き方が重要 – デコンボリューションはアーティファクトに弱い – 処理時間は言及していないが、KL距離や期待値の計算が重い • ESTRNN – いい意味であっさりした手法 – ビームスプリッターで取ったデータセット(BSD)の利用価値が高い – 従来手法より軽量かつ高精度だが、実用的にリアルタイムで使えるほどではない – 全モジュールを除いた(単純化した)モデルでもSOTA性能があるので、モジュ ール以外に大事な要素があるはず 34

36.

参考文献 [1] Richardson, William Hadley. "Bayesian-based iterative method of image restoration." JoSA 62.1 (1972): 55-59. [2] Fergus, Rob, et al. "Removing camera shake from a single photograph." ACM SIGGRAPH. 2006. 787-794. [3] Shan, Qi, Jiaya Jia, and Aseem Agarwala. "High-quality motion deblurring from a single image." Acm transactions on graphics (tog) 27.3 (2008): 1-10. [4] Zhong, Zhihang, et al. "Efficient spatio-temporal recurrent neural network for video deblurring." ECCV. Springer, Cham, 2020. [5] Ligeng Zhu, THOP, GitHub repository, https://github.com/Lyken17/pytorch-OpCounter 35