图像降噪算法——低秩聚类:WNNM算法
圖像降噪算法——低秩聚類:WNNM算法
- 圖像降噪算法——低秩聚類:WNNM算法
- 1. 基本原理
- 2. matlab代碼
- 3. 結(jié)論
圖像降噪算法——低秩聚類:WNNM算法
同樣是為了完善自己知識(shí)版圖的完整性,我決定再補(bǔ)充下低秩聚類算法的相關(guān)算法,低秩聚類算法同樣是一大類算法,這篇博客是挑選了其中最經(jīng)典的一種算法WNNM算法進(jìn)行展開學(xué)習(xí),由于沒有在這方面做過(guò)太多相關(guān)的工作,因此可能理解相對(duì)膚淺,還請(qǐng)讀者見諒
1. 基本原理
在寫這篇博客之前,我先學(xué)習(xí)了稀疏表達(dá)相關(guān)的知識(shí),這里我從稀疏表達(dá)算法出發(fā),引入低秩聚類算法的相關(guān)解釋:
在稀疏表達(dá)相關(guān)算法中,將圖像建模成Y=DX\mathbf{Y}=\mathbf{D}\mathbf{X}Y=DX的形式,其中Y\mathbf{Y}Y是有單個(gè)樣本按列組成而成的樣本矩陣,注意這里的樣本并沒有要求是相似的,D\mathbf{D}D是字典矩陣,矩陣中每一列為一個(gè)基向量或者子空間,X\mathbf{X}X則為系數(shù)矩陣,在系數(shù)表達(dá)中給定的限制條件是要求系數(shù)矩陣是稀疏的。我們通過(guò)一個(gè)過(guò)完備的字典和稀疏的系數(shù)矩陣就可以還原樣本,而噪聲不行,因此可以通過(guò)稀疏表達(dá)進(jìn)行去噪。
而在低秩聚類相關(guān)算法中,是將圖像建模成Y=X?N\mathbf{Y}=\mathbf{X} - \mathbf{N}Y=X?N,其中Y\mathbf{Y}Y同樣是由帶有噪聲的相似樣本組成而成的樣本矩陣。X\mathbf{X}X和N\mathbf{N}N分別為對(duì)應(yīng)的的無(wú)噪聲的樣本矩陣以及噪聲。我們給出的限制條件是X\mathbf{X}X是低秩矩陣。由于相似樣本組成的矩陣具備低秩性,噪聲不具備低秩性,因此通過(guò)低秩聚類可以實(shí)現(xiàn)圖像降噪的效果。
由此可見,從降噪的本質(zhì)上來(lái)將,稀疏表達(dá)的稀疏和低秩聚類中的聚類是具有一定相關(guān)性的。
為什么相似樣本具備低秩性呢?參考圖像降噪方法綜述中的說(shuō)法,當(dāng)我們拍攝一張大草原的圖片時(shí),草原是由草組成的,而草是相似的,如果圖片上全是草,那么這張圖片實(shí)際包含的信息是很少的,因此可以理解為草是草的復(fù)制品,這就是低秩性的一個(gè)直觀理解。
那么接下來(lái)就開始具體將WNNM算法的實(shí)現(xiàn),主要參考
非局部相似性去噪算法研究
Weighted Nuclear Norm Minimization with Application to Image Denoising
WNNM的全稱是Weighted Nuclear Norm Minimization,中文翻譯成加權(quán)核范數(shù)最小化方法,算法的流程如下圖所示:
如果在圖像上搜索相似patch的流程就不用贅述了,方法多種多樣,重要的是,假定我們要降噪的圖像塊為Pi\boldsymbol{P_i}Pi?,由該圖像塊以及圖像上與其相似的圖像塊組成的矩陣為Yi\boldsymbol{Y_i}Yi?,對(duì)應(yīng)的降噪后的矩陣為Xi\boldsymbol{X_i}Xi?,低秩矩陣最小化可以用來(lái)求矩陣的解,于是我們得到目標(biāo)函數(shù):Xi=argmin?xi∥Yi?Xi∥F2+rank?(Xi)\boldsymbol{X}_{i}=\operatorname{argmin}_{x_{i}}\left\|\boldsymbol{Y}_{i}-\boldsymbol{X}_{i}\right\|_{F}^{2}+\operatorname{rank}\left(\boldsymbol{X}_{i}\right) Xi?=argminxi??∥Yi??Xi?∥F2?+rank(Xi?)但是,其中∥X∥F\left\|\boldsymbol{X}\right\|_F∥X∥F?是F范數(shù),F范數(shù)的定義是矩陣X\boldsymbol{X}X各項(xiàng)元素的絕對(duì)值平方的總和,即∥X∥F≡∑i=1m∑j=1n∣xij∣2\|\mathbf{X}\|_{F} \equiv \sqrt{\sum_{i=1}^{m} \sum_{j=1}^{n}\left|x_{i j}\right|^{2}} ∥X∥F?≡i=1∑m?j=1∑n?∣xij?∣2?上式是一個(gè)非凸函數(shù),求解過(guò)程將是一個(gè)NP問題,因此需要對(duì)該問題轉(zhuǎn)為凸優(yōu)化問題后再求解,為此,前輩提出了標(biāo)準(zhǔn)核范數(shù)最小化的求解方法,也就是NNM——本文要介紹的WNNM算法的前身,NNM的目標(biāo)函數(shù)如下:Xi=argmin?Xi∥Yi?Xi∥F2+λ∥Xi∥?\boldsymbol{X}_{i}=\operatorname{argmin}_{X_{i}}\left\|\boldsymbol{Y}_{i}-\boldsymbol{X}_{i}\right\|_{F}^{2}+\lambda\left\|\boldsymbol{X}_{i}\right\|_* Xi?=argminXi??∥Yi??Xi?∥F2?+λ∥Xi?∥??式中,λ\lambdaλ是一個(gè)正數(shù),∥Xi∥?\left\|\boldsymbol{X}_{i}\right\|_*∥Xi?∥??是核范數(shù),核范數(shù)的定義為∥X∥?=tr?(XTX)=tr?(Σ)\|\boldsymbol{X}\|_{*}=\operatorname{tr}\left(\sqrt{\boldsymbol{X}^{T} \boldsymbol{X}}\right)=\operatorname{tr}(\boldsymbol{\Sigma}) ∥X∥??=tr(XTX?)=tr(Σ)
求解方法是對(duì)Yi\boldsymbol{Y_i}Yi?進(jìn)行奇異值分解為Yj=UΣV\boldsymbol{Y}_{j}=\boldsymbol{U \Sigma V}Yj?=UΣV,然后對(duì)奇異值進(jìn)行軟閾值收縮:Sλ(Σ)ii=max?(Σii?λ,0)\mathcal{S}_{\lambda}(\boldsymbol{\Sigma})_{i i}=\max \left(\boldsymbol{\Sigma}_{i i}-\lambda, 0\right) Sλ?(Σ)ii?=max(Σii??λ,0)其中,Σii\boldsymbol{\Sigma}_{i i}Σii?為奇異矩陣Σ\boldsymbol{\Sigma}Σ對(duì)角線元素,于是得到目標(biāo)函數(shù)的解:Xi=USλ(Σ)V\boldsymbol{X}_{i}=\boldsymbol{U}\mathcal{S}_{\lambda}\left(\boldsymbol{\Sigma}\right) \boldsymbol{V} Xi?=USλ?(Σ)V在NNM算法中,是使用同一個(gè)λ\lambdaλ值對(duì)所有奇異值進(jìn)行軟閾值收縮,這樣做沒有考慮到圖像的信息主要集中在數(shù)值較大的上這個(gè)特點(diǎn),因此會(huì)導(dǎo)致圖像細(xì)節(jié)過(guò)度平滑而變得模糊,為了解決這個(gè)問題,于是就誕生了WNNM算法,使用不同的λ\lambdaλ值對(duì)奇異值進(jìn)行軟閾值收縮,數(shù)值大的奇異值對(duì)應(yīng)數(shù)值小的λ\lambdaλ。由此我們得到目標(biāo)函數(shù):X^i=argmin?Xi1σn2∥Yi?Xi∥F2+∥Xi∥w,?\hat{\boldsymbol{X}}_{i}=\operatorname{argmin}_{X_{i}} \frac{1}{\sigma_{n}^{2}}\left\|\boldsymbol{Y}_{i}-\boldsymbol{X}_{i}\right\|_{F}^{2}+\left\|\boldsymbol{X}_{i}\right\|_{\boldsymbol{w},*} X^i?=argminXi??σn2?1?∥Yi??Xi?∥F2?+∥Xi?∥w,??其中σn2\sigma_{n}^{2}σn2?為噪聲方差,用于歸一化F范數(shù),而其中w=[w1,…,wn]\boldsymbol{w}=\left[w_{1}, \ldots, w_{n}\right]w=[w1?,…,wn?]中的每一項(xiàng)都為非負(fù)數(shù),對(duì)應(yīng)每一個(gè)奇異值,如下:wi=ck/(σi(X)+ε){w}_{i}=c \sqrt{k} /\left(\sigma_{i}\left(\boldsymbol{X}\right)+\varepsilon\right) wi?=ck?/(σi?(X)+ε)其中,σi(X)其中,\sigma_{i}\left(\boldsymbol{X}\right)其中,σi?(X)為X\boldsymbol{X}X的第iii奇異值,可以觀察到,當(dāng)奇異值越大時(shí)權(quán)重越小。kkkw為相似圖像patch的數(shù)量,ε\varepsilonε為防止被零正常的小參數(shù)。但是這里有個(gè)問題是,σi(X)\sigma_{i}\left(\boldsymbol{X}\right)σi?(X)是未知的呀,我們可以假設(shè)在初始時(shí)刻,噪聲能量是在各個(gè)特征上分布是均勻的,因此初始化σi(X)\sigma_{i}\left(\boldsymbol{X}\right)σi?(X)為:σi(X)=max?(σi2(Y)?kσn2,0)\sigma_{i}\left(\boldsymbol{X}\right)=\sqrt{\max \left(\sigma_{i}^{2}\left(\boldsymbol{Y}\right)-k \sigma_{n}^{2}, 0\right)} σi?(X)=max(σi2?(Y)?kσn2?,0)?最后同樣我們對(duì)Yi\boldsymbol{Y_i}Yi?進(jìn)行奇異值分解為Yj=UΣV\boldsymbol{Y}_{j}=\boldsymbol{U \Sigma V}Yj?=UΣV,然后目標(biāo)函數(shù)的解為:Xi=USw(Σ)V\boldsymbol{X}_{i}=\boldsymbol{U}\mathcal{S}_{\boldsymbol{w}}\left(\boldsymbol{\Sigma}\right) \boldsymbol{V} Xi?=USw?(Σ)V
2. matlab代碼
matlab代碼我就直接貼上鏈接好了 csjunxu/WNNM_CVPR2014 ,這份matlab代碼我也沒有細(xì)讀,僅僅跑了一下,感興趣的同學(xué)可以多畫時(shí)間研究研究。
3. 結(jié)論
我測(cè)試的結(jié)果也差不多,相對(duì)BM3D其文理細(xì)節(jié)保留會(huì)更好一些,但是一些紋理密集的區(qū)域會(huì)出現(xiàn)一些artifact,至于好不好,就要看大家對(duì)圖片質(zhì)量的要求了,這篇文章寫的比較淺顯,有問題歡迎交流
此外,這里我寫一個(gè)各種算法的總結(jié)目錄圖像降噪算法——圖像降噪算法總結(jié),對(duì)圖像降噪算法感興趣的同學(xué)歡迎參考
總結(jié)
以上是生活随笔為你收集整理的图像降噪算法——低秩聚类:WNNM算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图像降噪算法——稀疏表达:K-SVD算法
- 下一篇: 计算机视觉算法——图像分类网络总结