Image Deconvolution with the Half-quadratic Splitting Method
Image Deconvolution with the Half-quadratic Splitting Method
在處理圖像重建或者逆問題的時候,我們經常會看到一種稱為 Half-quadratic Splitting(HQS)的方法,這是在優化領域里非常經典的一種方法,之前也斷斷續續地找了很多相關的資料,發現斯坦福大學的計算成像課里某一節 lecture note 把這個方法在圖像反卷積中的使用介紹地非常詳細。這篇文章也是基于這個 lecture note 的一個學習筆記。
Image Formation
一般來說,圖像的成像過程可以用下面的式子表示:
b = c ? x + η (1) b = c * x + \eta \tag{1} b=c?x+η(1)
其中, b b b 表示觀察到的模糊圖像, c c c 表示一個卷積核,可以認為是光學系統的 PSF, η \eta η 表示與信號無關的噪聲, x x x 是希望重建出來的清晰圖像。
根據信號處理的理論,在空域的卷積相當于在頻域的乘積,所以上面的式子可以寫成:
b = F ? 1 { F ( c ) ? F ( x ) } + η (2) b = \mathcal{F}^{-1} \{ \mathcal{F}(c) \cdot \mathcal{F}(x) \} + \eta \tag{2} b=F?1{F(c)?F(x)}+η(2)
不過要注意的是,這個等價只有在卷積滿足 circular boundary conditions 時才成立。
為了后續的推導方便,這里將卷積運算轉換成矩陣運算,可以得到如下的式子:
b = c ? x ? b = C x (3) b = c * x \Leftrightarrow \mathbf{b} = \mathbf{C} \mathbf{x} \tag{3} b=c?x?b=Cx(3)
Inverse Filtering and Wiener Deconvolution
在忽略噪聲的情況下,式 (2) 可以表示成:
F ( b ) = F ( c ) ? F ( x ) \mathcal{F} (b) = \mathcal{F}(c) \cdot \mathcal{F}(x) F(b)=F(c)?F(x)
進而可以直接算出 x x x:
x ~ i f = F ? 1 { F ( b ) F ( c ) } (4) \tilde{x}_{if} = \mathcal{F}^{-1} \{ \frac{\mathcal{F}(b)}{\mathcal{F}(c)} \} \tag{4} x~if?=F?1{F(c)F(b)?}(4)
上面的 if 就是 inverse filtering 的縮寫,如果已知卷積核的形式,就可以計算出該卷積核對應的傅里葉變換,然后除以觀察圖像的傅里葉變換,從而得到清晰圖像在頻域的值,最后在做一個反傅里葉變換,得到最終的清晰圖像。
這種方法看起來直觀高效,不過有一個問題,就是 F ( c ) \mathcal{F}(c) F(c) 的值很小趨近于 0 的時候,將會放大觀察圖像中的噪聲,維納濾波通過加入一個阻尼系數,可以避免這個問題:
x ~ w f = F ? 1 { ∣ F ( c ) ∣ 2 ∣ F ( c ) ∣ 2 + 1 S N R F ( b ) F ( c ) } (5) \tilde{x}_{wf} = \mathcal{F}^{-1} \left\{ \frac{|\mathcal{F}(c)|^{2}}{|\mathcal{F}(c)|^{2} + \frac{1}{SNR}} \frac{\mathcal{F}(b)}{\mathcal{F}(c)} \right\} \tag{5} x~wf?=F?1{∣F(c)∣2+SNR1?∣F(c)∣2?F(c)F(b)?}(5)
SNR 表示信噪比,如果觀測圖像中沒有噪聲,那么 SNR 會很高,這種情況下,維納濾波就變成了 inverse filter。
維納濾波相比于直接的逆濾波,可以得到更加合理的反卷積結果。不過,這類方法面臨的主要問題就是無法利用自然圖像的先驗信息,接下來,我們將介紹如何將先驗信息與優化方法結合。
Nature Image Priors
首先,我們來看什么是自然圖像先驗,自然圖像先驗一般是一種數學模型,告訴我們在自然圖像中,像素的分布更傾向于什么形態,在求解病態逆問題的時候,可能存在無數種解都符合觀測值,而自然圖像先驗,會幫助我們挑選那些看起來更合理的解。
自然圖像先驗可以對圖像的分布進行建模,這里,我們用正則化來表示對圖像的某些性質,正則化一般對應圖像先驗的負對數。通常的正則化,包括平滑性,稀疏性,稀疏梯度,自相似性等。比如,稀疏性,可以用一階范數表示為: ∣ x ∣ = ∣ ∑ x i ∣ |\mathbf{x}| = |\sum x_i| ∣x∣=∣∑xi?∣,而平滑性,可以用梯度的二階范數表示: ∣ Δ x ∣ 2 |\Delta \mathbf{x}|_2 ∣Δx∣2?,不過,在求解圖像復原的逆問題中,應用最廣泛的還是稱為 total variation (TV) 的正則,TV 的建立,是基于下面的觀察,大部分自然圖像,都可以看到很多區域都是平滑的,只有在不同物體的交界處才會出現邊界,在同一個物體的內部,可以認為像素值區域平滑或者相似,而在不同物體的邊界處,會有一個陡然的變化。
為了對 TV 建模,需要計算圖像的一階導數,這里,將圖像水平方向的一階導數表示為 D x x \mathbf{D}_x\mathbf{x} Dx?x,而垂直方向的一階導數表示為 D y y \mathbf{D}_y\mathbf{y} Dy?y,具體的數學形式如下所示:
D x x ? x ? d x , d x = [ 0 0 0 0 ? 1 1 0 0 0 ] \mathbf{D}_x\mathbf{x} \Leftrightarrow \mathbf{x} \ast d_x, \quad d_x = \begin{bmatrix} 0 & 0 & 0\\ 0 & -1 & 1 \\ 0 & 0 & 0 \end{bmatrix} Dx?x?x?dx?,dx?= ?000?0?10?010? ?
D y x ? x ? d y , d y = [ 0 0 0 0 ? 1 0 0 1 0 ] \mathbf{D}_y\mathbf{x} \Leftrightarrow \mathbf{x} \ast d_y, \quad d_y = \begin{bmatrix} 0 & 0 & 0\\ 0 & -1 & 0 \\ 0 & 1 & 0 \end{bmatrix} Dy?x?x?dy?,dy?= ?000?0?11?000? ?
這個圖像的一階導數,既可以用矩陣直接計算,也可以用卷積的形式計算。
圖像的 TV 正則可以表示為圖像梯度的一階范數,TV 正則項有兩種表達形式,一種稱為各向異性 的 TV,另外一種稱為各向同性的正則,分別如下所示:
- 各向異性的 TV 正則
T V a n i s o t r o p i c ( x ) = ∥ D x x ∥ 1 + ∥ D y x ∥ 1 = ∑ i = 1 N ∣ ( D x x ) i ∣ + ∣ ( D y x ) i ∣ = ∑ i = 1 N ( D x x ) i 2 + ( D y x ) i 2 TV_{anisotropic}(\mathbf{x}) = \left \| \mathbf{D}_x\mathbf{x} \right \|_{1} + \left \| \mathbf{D}_y\mathbf{x} \right \|_{1} = \sum_{i=1}^{N} \left| (\mathbf{D}_x\mathbf{x})_{i} \right| + \left| (\mathbf{D}_y\mathbf{x})_{i} \right| = \sum_{i=1}^{N} \sqrt{(\mathbf{D}_x\mathbf{x})^{2}_{i}}+\sqrt{(\mathbf{D}_y\mathbf{x})^{2}_{i}} TVanisotropic?(x)=∥Dx?x∥1?+∥Dy?x∥1?=i=1∑N?∣(Dx?x)i?∣+∣(Dy?x)i?∣=i=1∑N?(Dx?x)i2??+(Dy?x)i2??
- 各向同性的 TV 正則
T V i s o t r o p i c ( x ) = ∥ D x ∥ 2 , 1 = ∑ i = 1 N ( D x x ) i 2 + ( D y x ) i 2 TV_{isotropic}(\mathbf{x}) = \left \| \mathbf{D}\mathbf{x} \right \|_{2,1} = \sum_{i=1}^{N} \sqrt{(\mathbf{D}_x\mathbf{x})^{2}_{i} + (\mathbf{D}_y\mathbf{x})^{2}_{i}} TVisotropic?(x)=∥Dx∥2,1?=i=1∑N?(Dx?x)i2?+(Dy?x)i2??
這兩種正則的差異,從表達式中可以看出,對于各向同性來說,每個像素 i i i 的梯度約束是兩個方向同時約束的,而對于各向異性來說,兩個方向的梯度約束是分開約束的。
Regularized Deconvolution with Half-quadratic Splitting
The Half-quadratic Splitting Method
接下來,我們介紹 HQS 這種優化方法,在介紹用這種方法求解圖像復原的逆問題之前,我們先探討這種方法的一般形式,考慮如下的一個優化問題:
b = A x + η \mathbf{b} = \mathbf{A}\mathbf{x} + \mathbf{\eta} b=Ax+η
其中, x ∈ R N \mathbf{x} \in R^{N} x∈RN 是一個待求解的向量, b ∈ R M \mathbf{b} \in R^{M} b∈RM 表示一個觀測向量, η \eta η 表示噪聲, A ∈ R M × N \mathbf{A} \in R^{M \times N} A∈RM×N 表示轉換矩陣,這個問題的一般求解形式如上所示:
min ? x 1 2 ∥ A x ? b ∥ 2 2 + λ Ψ ( x ) \min_{\mathbf{x}} \frac{1}{2} \left \| \mathbf{A}\mathbf{x} - \mathbf{b} \right \|_2^{2} + \lambda \Psi(\mathbf{x}) xmin?21?∥Ax?b∥22?+λΨ(x)
其中,前面的第一項一般稱為數據項,第二項稱為正則項,直接求解上面的式子,有的時候并不能很好地收斂,一種更為魯棒的求解方式,應該是將上面的優化函數,改寫成下面這種形式:
min ? x 1 2 ∥ A x ? b ∥ 2 2 + λ Ψ ( z ) subject?to D x ? z = 0 \min_{\mathbf{x}} \frac{1}{2} \left \| \mathbf{A}\mathbf{x} - \mathbf{b} \right \|_2^{2} + \lambda \Psi(\mathbf{z}) \\ \text{subject to} \quad \mathbf{D}\mathbf{x} - \mathbf{z} = 0 xmin?21?∥Ax?b∥22?+λΨ(z)subject?toDx?z=0
這個優化函數中,引入了一個中間變量 z \mathbf{z} z,這個額外的中間變量,可以將上面的優化函數拆成兩部分,一部分是數據項,另外一部分是正則項,這兩項依賴的變量是相互獨立的, x , z \mathbf{x}, \mathbf{z} x,z 之間靠一個約束表達式聯系,如果將這個約束項合入優化函數,則整個優化函數可以寫成:
L p ( x , z ) = f ( x ) + g ( z ) + p 2 ∥ D x ? z ∥ 2 2 L_p(\mathbf{x}, \mathbf{z}) = f(\mathbf{x}) + g(\mathbf{z}) + \frac{p}{2} \left \| \mathbf{D}\mathbf{x} - \mathbf{z} \right \|_{2}^{2} Lp?(x,z)=f(x)+g(z)+2p?∥Dx?z∥22?
優化函數寫成這種形式,可以通過相互迭代的方式求解,求解 x \mathbf{x} x 與 求解 z \mathbf{z} z 可以分開進行:
x ← p r o x f , p ( z ) = arg?min ? x L p ( x , z ) = arg?min ? x f ( x ) + p 2 ∥ D x ? z ∥ 2 2 (13) \mathbf{x} \gets \mathbf{prox}_{f, p} (\mathbf{z}) = \argmin_{\mathbf{x}} L_p(\mathbf{x}, \mathbf{z}) = \argmin_{\mathbf{x}} f(\mathbf{x}) + \frac{p}{2} \left \| \mathbf{D}\mathbf{x} - \mathbf{z} \right \|_{2}^{2} \tag{13} x←proxf,p?(z)=xargmin?Lp?(x,z)=xargmin?f(x)+2p?∥Dx?z∥22?(13)
z ← p r o x f , p ( D x ) = arg?min ? z L p ( x , z ) = arg?min ? z g ( z ) + p 2 ∥ D x ? z ∥ 2 2 (14) \mathbf{z} \gets \mathbf{prox}_{f, p} (\mathbf{D}\mathbf{x}) = \argmin_{\mathbf{z}} L_p(\mathbf{x}, \mathbf{z}) = \argmin_{\mathbf{z}} g(\mathbf{z}) + \frac{p}{2} \left \| \mathbf{D}\mathbf{x} - \mathbf{z} \right \|_{2}^{2} \tag{14} z←proxf,p?(Dx)=zargmin?Lp?(x,z)=zargmin?g(z)+2p?∥Dx?z∥22?(14)
從上面的求解過程可以看出,當我們更新 x \mathbf{x} x 的時候,只需要考慮 f ( x ) f(\mathbf{x}) f(x),而當我們更新 z \mathbf{z} z 的時候,只需要考慮 g ( z ) g(\mathbf{z}) g(z),而不需要同時考慮這兩個函數。這個性質,可以構建一個非常靈活的框架,讓我們可以靈活地與各種正則函數相結合。這種方式也被稱為 plug-and-play (即插即用)。
雖然 HQS 可以用于解決各種逆問題,不過我們這里還是討論比較特殊的一種圖像解卷積問題,我們討論一種已知固定卷積核的情況,這樣對應的矩陣是一個循環 Toeplitz 矩陣。先定義如下的關系:
c ? x = F ? 1 { F ( c ) ? F ( x ) } = C x F ? 1 { F ( c ) ? ? F ( x ) } = C T x F ? 1 { F ( b ) F ( c ) } = C ? 1 x c * x = \mathcal{F}^{-1} \{ \mathcal{F}(c) \cdot \mathcal{F}(x) \} = \mathbf{C}\mathbf{x} \\ \mathcal{F}^{-1} \{ \mathcal{F}(c)^{*} \cdot \mathcal{F}(x) \} = \mathbf{C}^{T}\mathbf{x} \\ \mathcal{F}^{-1} \{ \frac{\mathcal{F}(b)}{\mathcal{F}(c)} \} = \mathbf{C}^{-1}\mathbf{x} c?x=F?1{F(c)?F(x)}=CxF?1{F(c)??F(x)}=CTxF?1{F(c)F(b)?}=C?1x
Standard Form of HQS with TV and Denoising Regularizers
接下來,我們考慮基于 TV 正則的 HQS 的優化方法,由上面的表達式,我們可以將帶 TV 正則的優化函數寫成如下形式:
min ? x 1 2 ∥ C x ? b ∥ 2 2 + λ Ψ ( z ) subject?to D x ? z = 0 \min_{\mathbf{x}} \frac{1}{2} \left \| \mathbf{C}\mathbf{x} - \mathbf{b} \right \|_2^{2} + \lambda \Psi(\mathbf{z}) \\ \text{subject to} \quad \mathbf{D}\mathbf{x} - \mathbf{z} = 0 xmin?21?∥Cx?b∥22?+λΨ(z)subject?toDx?z=0
其中, D = [ D x T , D y T ] ∈ R 2 N × N \mathbf{D} = [\mathbf{D}_{x}^{T}, \mathbf{D}_{y}^{T}] \in R^{2N \times N} D=[DxT?,DyT?]∈R2N×N 表示 x , y x, y x,y 方向的一階導數,這里的 z ∈ R 2 N \mathbf{z} \in R^{2N} z∈R2N 比 x ∈ R N \mathbf{x} \in R^{N} x∈RN 要大一倍,因為每個像素,有 x , y x, y x,y 兩個方向的梯度。
對于更為一般的情況,我們可以使用一個簡單的正則項,將待求解的圖像投影到一個靈活的自然圖像空間中,整個的 HQS 的形式可以寫成如下所示:
min ? x 1 2 ∥ C x ? b ∥ 2 2 + λ Ψ ( z ) subject?to x ? z = 0 \min_{\mathbf{x}} \frac{1}{2} \left \| \mathbf{C}\mathbf{x} - \mathbf{b} \right \|_2^{2} + \lambda \Psi(\mathbf{z}) \\ \text{subject to} \quad \mathbf{x} - \mathbf{z} = 0 xmin?21?∥Cx?b∥22?+λΨ(z)subject?tox?z=0
Efficient Implementation of the x-Update using Inverse Filtering
前面介紹過,HQS 的方法,會交替迭代更新 x , z \mathbf{x}, \mathbf{z} x,z,我們先來看 x \mathbf{x} x 的更新,
p r o x f , p ( z ) = arg?min ? x f ( x ) + p 2 ∥ D x ? z ∥ 2 2 = arg?min ? x 1 2 ∥ C x ? b ∥ 2 2 + p 2 ∥ D x ? z ∥ 2 2 (20) \mathbf{prox}_{f, p} (\mathbf{z}) = \argmin_{\mathbf{x}} f(\mathbf{x}) + \frac{p}{2} \left \| \mathbf{D}\mathbf{x} - \mathbf{z} \right \|_{2}^{2} = \argmin_{\mathbf{x}} \frac{1}{2} \left \| \mathbf{C}\mathbf{x} - \mathbf{b} \right \|_2^{2} + \frac{p}{2} \left \| \mathbf{D}\mathbf{x} - \mathbf{z} \right \|_{2}^{2} \tag{20} proxf,p?(z)=xargmin?f(x)+2p?∥Dx?z∥22?=xargmin?21?∥Cx?b∥22?+2p?∥Dx?z∥22?(20)
將上面的表達式展開,可以得到:
1 2 ∥ C x ? b ∥ 2 2 + p 2 ∥ D x ? z ∥ 2 2 = 1 2 ( C x ? b ) T ( C x ? b ) + p 2 ( D x ? z ) ( D x ? z ) T = 1 2 ( x T C T C x ? 2 x T C T b + b T b ) + p 2 ( x T D T D x ? 2 x T D T z + z T z ) \frac{1}{2} \left \| \mathbf{C}\mathbf{x} - \mathbf{b} \right \|_2^{2} + \frac{p}{2} \left \| \mathbf{D}\mathbf{x} - \mathbf{z} \right \|_{2}^{2} \\ = \frac{1}{2}(\mathbf{C}\mathbf{x} - \mathbf{b})^{T}(\mathbf{C}\mathbf{x} - \mathbf{b}) + \frac{p}{2}(\mathbf{D}\mathbf{x} - \mathbf{z})(\mathbf{D}\mathbf{x} - \mathbf{z})^{T} \\ = \frac{1}{2}(\mathbf{x}^{T}\mathbf{C}^{T}\mathbf{C}\mathbf{x} - 2 \mathbf{x}^{T}\mathbf{C}^{T} \mathbf{b} + \mathbf{b}^{T}\mathbf{b} ) + \frac{p}{2}(\mathbf{x}^{T}\mathbf{D}^{T}\mathbf{D}\mathbf{x} - 2 \mathbf{x}^{T}\mathbf{D}^{T} \mathbf{z} + \mathbf{z}^{T}\mathbf{z} ) 21?∥Cx?b∥22?+2p?∥Dx?z∥22?=21?(Cx?b)T(Cx?b)+2p?(Dx?z)(Dx?z)T=21?(xTCTCx?2xTCTb+bTb)+2p?(xTDTDx?2xTDTz+zTz)
將上面的表達式對 x \mathbf{x} x 求導,可以得到:
C T C x ? C T b + p D T D x ? p D T z \mathbf{C}^{T}\mathbf{C}\mathbf{x} - \mathbf{C}^{T} \mathbf{b} + p \mathbf{D}^{T}\mathbf{D}\mathbf{x} - p \mathbf{D}^{T} \mathbf{z} CTCx?CTb+pDTDx?pDTz
讓導數為 0 ,進而可以求得 x \mathbf{x} x:
( C T C + p D T D ) ? 1 ( C T b + p D T z ) (24) ( \mathbf{C}^{T}\mathbf{C} + p\mathbf{D}^{T}\mathbf{D} )^{-1}(\mathbf{C}^{T} \mathbf{b} + p \mathbf{D}^{T} \mathbf{z} ) \tag{24} (CTC+pDTD)?1(CTb+pDTz)(24)
對于滿足 circular boundary conditions 的 2D 圖像解卷積問題,上面的式子,可以變換到傅里葉域,然后再進行求解,上面所有的矩陣相乘的形式,都可以找到對應的傅里葉域的形式。
Special Case of TV Regularizer
如果正則項是 TV 項,那么 D \mathbf{D} D 就是有限差分算子,上面的公式 (24) 可以寫成如下形式:
( C T C + p D T D ) ? F ? 1 { F { c } ? ? F { c } + p ( F { d x } ? ? F { d x } + F { d y } ? ? F { d y } ) } ( \mathbf{C}^{T}\mathbf{C} + p\mathbf{D}^{T}\mathbf{D} ) \Leftrightarrow \mathcal{F}^{-1} \{ \mathcal{F}\{c\}^{*} \cdot \mathcal{F}\{c\} + p (\mathcal{F}\{d_x\}^{*} \cdot \mathcal{F}\{d_x\} + \mathcal{F}\{d_y\}^{*} \cdot \mathcal{F}\{d_y\}) \} (CTC+pDTD)?F?1{F{c}??F{c}+p(F{dx?}??F{dx?}+F{dy?}??F{dy?})}
( C T b + p D T z ) ? F ? 1 { F { c } ? ? F { b } + p ( F { d x } ? ? F { z 1 } + F { d y } ? ? F { z 2 } ) } (\mathbf{C}^{T} \mathbf{b} + p \mathbf{D}^{T} \mathbf{z} ) \Leftrightarrow \mathcal{F}^{-1} \{ \mathcal{F}\{c\}^{*} \cdot \mathcal{F}\{b\} + p (\mathcal{F}\{d_x\}^{*} \cdot \mathcal{F}\{z_1\} + \mathcal{F}\{d_y\}^{*} \cdot \mathcal{F}\{z_2\}) \} (CTb+pDTz)?F?1{F{c}??F{b}+p(F{dx?}??F{z1?}+F{dy?}??F{z2?})}
由此,可以得到公式(20) 的解為:
p r o x f , p ( z ) = F ? 1 ( F { c } ? ? F { b } + p ( F { d x } ? ? F { z 1 } + F { d y } ? ? F { z 2 } ) F { c } ? ? F { c } + p ( F { d x } ? ? F { d x } + F { d y } ? ? F { d y } ) ) \mathbf{prox}_{f, p} (\mathbf{z}) = \mathcal{F}^{-1} \left( \frac{\mathcal{F}\{c\}^{*} \cdot \mathcal{F}\{b\} + p (\mathcal{F}\{d_x\}^{*} \cdot \mathcal{F}\{z_1\} + \mathcal{F}\{d_y\}^{*} \cdot \mathcal{F}\{z_2\})}{\mathcal{F}\{c\}^{*} \cdot \mathcal{F}\{c\} + p (\mathcal{F}\{d_x\}^{*} \cdot \mathcal{F}\{d_x\} + \mathcal{F}\{d_y\}^{*} \cdot \mathcal{F}\{d_y\})} \right) proxf,p?(z)=F?1(F{c}??F{c}+p(F{dx?}??F{dx?}+F{dy?}??F{dy?})F{c}??F{b}+p(F{dx?}??F{z1?}+F{dy?}??F{z2?})?)
Special Case of Denoising Reg
對于更為一般的正則項, D \mathbf{D} D 可以認為是一個單位矩陣,公式 (20) 的求解將變得更為簡單:
p r o x f , p ( z ) = F ? 1 ( F { c } ? ? F { b } + p F { z } F { c } ? ? F { c } + p ) \mathbf{prox}_{f, p} (\mathbf{z}) = \mathcal{F}^{-1} \left( \frac{\mathcal{F}\{c\}^{*} \cdot \mathcal{F}\{b\} + p \mathcal{F}\{z\} } {\mathcal{F}\{c\}^{*} \cdot \mathcal{F}\{c\} + p } \right) proxf,p?(z)=F?1(F{c}??F{c}+pF{c}??F{b}+pF{z}?)
Updating z with the TV Regularizer
公式(14) 關于 z \mathbf{z} z 的更新,可以表示成如下的形式:
p r o x g , p ( v ) = S λ / p ( v ) = arg?min ? z λ ∣ z ∣ 1 + p 2 ∥ v ? z ∥ 2 2 \mathbf{prox}_{g, p} (\mathbf{v}) = \mathcal{S}_{\lambda/p}(\mathbf{v}) = \argmin_{\mathbf{z}} \lambda \left| \mathbf{z} \right|_{1} + \frac{p}{2} \left \| \mathbf{v} - \mathbf{z} \right \|_{2}^{2} proxg,p?(v)=Sλ/p?(v)=zargmin?λ∣z∣1?+2p?∥v?z∥22?
其中, v = D x \mathbf{v} = \mathbf{D} \mathbf{x} v=Dx, S \mathcal{S} S 是一個分段函數:
S k ( v ) = { v ? k v > k 0 ∣ v ∣ < k v + k v < ? k \mathcal{S}_{k}(v) = \left\{\begin{matrix} v - k & v > k \\ 0 & |v| < k \\ v + k & v < -k \end{matrix}\right. Sk?(v)=? ? ??v?k0v+k?v>k∣v∣<kv<?k?
Isotropic TV Norm
對于各向同性的 TV 正則,正則項可以表示為:
g ( z ) = λ ∥ D x ∥ 2 , 1 = λ ∑ i = 1 N ( D x x ) i 2 + ( D y x ) i 2 g(\mathbf{z}) = \lambda \left \| \mathbf{D}\mathbf{x} \right \|_{2,1} = \lambda \sum_{i=1}^{N} \sqrt{(\mathbf{D}_x\mathbf{x})^{2}_{i} + (\mathbf{D}_y\mathbf{x})^{2}_{i}} g(z)=λ∥Dx∥2,1?=λi=1∑N?(Dx?x)i2?+(Dy?x)i2??
那么,帶各向同性正則項的解卷積問題可以表示成:
min ? x 1 2 ∥ C x ? b ∥ 2 2 + λ ∑ i = 1 N ∥ [ z i z i + N ] ∥ 2 subject?to D x ? z = 0 \min_{\mathbf{x}} \frac{1}{2} \left \| \mathbf{C}\mathbf{x} - \mathbf{b} \right \|_2^{2} + \lambda \sum_{i=1}^{N} \left \| \begin{bmatrix} z_i\\ z_{i+N} \end{bmatrix} \right \|_{2} \\ \text{subject to} \quad \mathbf{D}\mathbf{x} - \mathbf{z} = 0 xmin?21?∥Cx?b∥22?+λi=1∑N? ?[zi?zi+N??] ?2?subject?toDx?z=0
z i z_i zi? 表示 z \mathbf{z} z 的第 i i i 個元素,其中, 1 ≤ i ≤ N 1 \leq i \leq N 1≤i≤N 表示水平方向的有限差分, N + 1 ≤ i ≤ 2 N N+1 \leq i \leq 2N N+1≤i≤2N 表示垂直方向的有限差分。
z \mathbf{z} z 的更新可以表示成:
z ← p r o x f , p ( v ) = arg?min ? z λ ∑ i = 1 N ∥ [ z i z i + N ] ∥ 2 + p 2 ∥ v ? z ∥ 2 2 v = D x \mathbf{z} \gets \mathbf{prox}_{f, p} (\mathbf{v}) = \argmin_{\mathbf{z}} \lambda \sum_{i=1}^{N} \left \| \begin{bmatrix} z_i\\ z_{i+N} \end{bmatrix} \right \|_{2} + \frac{p}{2} \left \| \mathbf{v} - \mathbf{z} \right \|_{2}^{2} \quad \mathbf{v} = \mathbf{D}\mathbf{x} z←proxf,p?(v)=zargmin?λi=1∑N? ?[zi?zi+N??] ?2?+2p?∥v?z∥22?v=Dx
最終 z \mathbf{z} z 的更新可以表示為:
[ z i z i + N ] ← S λ / p ( [ v i v i + N ] ) , 1 ≤ i ≤ N \begin{bmatrix} z_i\\ z_{i+N} \end{bmatrix} \gets \mathcal{S}_{\lambda /p} \left( \begin{bmatrix} v_i\\ v_{i+N} \end{bmatrix} \right), \quad 1 \leq i \leq N [zi?zi+N??]←Sλ/p?([vi?vi+N??]),1≤i≤N
Updating z with DnCNN or any Gaussian Denoiser as the Regularizer
如果我們進一步審視公式 (14) ,不考慮矩陣 D \mathbf{D} D 的情況下,
arg?min ? z g ( z ) + p 2 ∥ x ? z ∥ 2 2 = arg?min ? z λ Ψ ( z ) + p 2 ∥ x ? z ∥ 2 2 = arg?min ? z Ψ ( z ) + p 2 λ ∥ x ? z ∥ 2 2 (36) \argmin_{\mathbf{z}} g(\mathbf{z}) + \frac{p}{2} \left \| \mathbf{x} - \mathbf{z} \right \|_{2}^{2} \\ = \argmin_{\mathbf{z}} \lambda \Psi(\mathbf{z}) + \frac{p}{2} \left \| \mathbf{x} - \mathbf{z} \right \|_{2}^{2} \\ = \argmin_{\mathbf{z}} \Psi(\mathbf{z}) + \frac{p}{2 \lambda} \left \| \mathbf{x} - \mathbf{z} \right \|_{2}^{2} \tag{36} zargmin?g(z)+2p?∥x?z∥22?=zargmin?λΨ(z)+2p?∥x?z∥22?=zargmin?Ψ(z)+2λp?∥x?z∥22?(36)
公式 (36) 可以看成是一個降噪問題,可以等價成如下的表達式:
arg?min ? x Ψ ( x ) + 1 2 σ 2 ∥ v ? x ∥ 2 2 \argmin_{\mathbf{x}} \Psi(\mathbf{x}) + \frac{1}{2 \sigma^{2}} \left \| \mathbf{v} - \mathbf{x} \right \|_{2}^{2} xargmin?Ψ(x)+2σ21?∥v?x∥22?
其中, v \mathbf{v} v 可以看成是觀測到的有噪圖像, x \mathbf{x} x 表示我們需要恢復的無噪圖像,基于這個觀測,對于降噪的正則項,那么對 z \mathbf{z} z 的更新可以簡單地變成一個降噪過程,這個降噪可以用傳統的降噪方法,也可以用基于CNN 的降噪方法,
p r o x D , p ( x ) = D ( x , σ 2 = λ p ) \mathbf{prox}_{\mathcal{D}, p} (\mathbf{x}) = \mathcal{D} \left( \mathbf{x}, \sigma^{2} = \frac{\lambda}{p} \right) proxD,p?(x)=D(x,σ2=pλ?)
最后,做一個總結,基于 TV 正則和基于降噪正則的 HQS 方法的主要流程可以歸納如下:
總結
以上是生活随笔為你收集整理的Image Deconvolution with the Half-quadratic Splitting Method的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华中科技大学计算机考研分析
- 下一篇: OceanBase开发者大会震撼来袭