見圖像傳統(tǒng)處理算法-邊緣檢測(cè)-分割-增強(qiáng)-降噪
點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
邊緣檢測(cè)的幾種微分算子:
一階微分算子:Roberts、Sobel、Prewitt
二階微分算子:Laplacian、Log/Marr
非微分算子:Canny
一階微分算子
1.Roberts: 沒有經(jīng)過圖像平滑處理,圖像噪聲無法得到較好的抑制,但圖像邊緣定位精度較高。

2. Sobel:引入了類似局部平均的運(yùn)算,對(duì)噪聲有平滑作用,能很好的消除噪聲的影響。與Prewitt比,Sobel對(duì)像素位置做了加權(quán),可以降低邊緣模糊程度。

3. Prewitt:去掉部分偽邊緣,對(duì)噪聲有平滑作用。

如何計(jì)算邊緣幅值與方向呢?以Sobel為例,3*3 Sobel兩個(gè)方向的算子在圖像上滑動(dòng),模板與其覆蓋的圖像3*3區(qū)域的9個(gè)像素進(jìn)行卷積,求和后得到此方向的邊緣檢測(cè)幅值。

1. Laplacian

拉普拉斯算子數(shù)學(xué)公式:

2. Log/Marr邊緣檢測(cè)是先進(jìn)行高斯濾波,再進(jìn)行拉普拉斯算子進(jìn)行檢測(cè),最后通過找過零點(diǎn)來確定邊緣位置。
非微分算子:Canny
使用Canny算子的邊緣檢測(cè)過程如下:
*RGB圖像轉(zhuǎn)化為灰度圖像;
*對(duì)圖像進(jìn)行高斯濾波;
*利用canny算子(圖像四個(gè)方向:水平、垂直、對(duì)角)計(jì)算圖像梯度,根據(jù)**梯度計(jì)算圖像邊緣幅度;
*非極大值抑制,得到真正的邊緣->細(xì)化;
*雙閾值邊緣提取;
*結(jié)果二值化顯示;

二、圖像分割
傳統(tǒng)圖像分割算法
1. 基于閾值的分割方法
閾值法的基本思想是基于圖像的灰度特征計(jì)算一個(gè)或多個(gè)灰度閾值,并將圖像中每個(gè)像素的灰度值與閾值作比較,最后將像素根據(jù)比較結(jié)果分到合適的類別中。因此,該方法最為關(guān)鍵的一步就是按照某個(gè)準(zhǔn)則函數(shù)來求解最佳灰度閾值。
閥值分割方法的優(yōu)缺點(diǎn):
計(jì)算簡(jiǎn)單,效率較高;
只考慮像素點(diǎn)灰度值本身的特征,一般不考慮空間特征,因此對(duì)噪聲比較敏感,魯棒性不高。
2. 基于區(qū)域的分割方法
基于區(qū)域的分割方法是以直接尋找區(qū)域?yàn)榛A(chǔ)的分割技術(shù),基于區(qū)域提取方法有兩種基本形式:一種是區(qū)域生長(zhǎng),從單個(gè)像素出發(fā),逐步合并以形成所需要的分割區(qū)域;另一種是從全局出發(fā),逐步切割至所需的分割區(qū)域。
區(qū)域生長(zhǎng):區(qū)域生長(zhǎng)是從一組代表不同生長(zhǎng)區(qū)域的種子像素開始,接下來將種子像素鄰域里符合條件的像素合并到種子像素所代表的生長(zhǎng)區(qū)域中,并將新添加的像素作為新的種子像素繼續(xù)合并過程,知道找不到符合條件的新像素為止。該方法的關(guān)鍵是選擇合適的初始種子像素以及合理的生長(zhǎng)準(zhǔn)則。
區(qū)域生長(zhǎng)算法需要解決的三個(gè)問題:
(1)選擇或確定一組能正確代表所需區(qū)域的種子像素;
(2)確定在生長(zhǎng)過程中能將相鄰像素包括進(jìn)來的準(zhǔn)則;
(3)指定讓生長(zhǎng)過程停止的條件或規(guī)則。
區(qū)域分裂合并:區(qū)域生長(zhǎng)是從某個(gè)或者某些像素點(diǎn)出發(fā),最終得到整個(gè)區(qū)域,進(jìn)而實(shí)現(xiàn)目標(biāo)的提取。而分裂合并可以說是區(qū)域生長(zhǎng)的逆過程,從整幅圖像出發(fā),不斷的分裂得到各個(gè)子區(qū)域,然后再把前景區(qū)域合并,得到需要分割的前景目標(biāo),進(jìn)而實(shí)現(xiàn)目標(biāo)的提取。
區(qū)域分裂合并算法優(yōu)缺點(diǎn):
(1)對(duì)復(fù)雜圖像分割效果好;
(2)算法復(fù)雜,計(jì)算量大;
(3)分裂有可能破怪區(qū)域的邊界。
分水嶺算法:是一種基于拓?fù)淅碚摰臄?shù)學(xué)形態(tài)學(xué)的分割方法,其基本思想是把圖像看作是測(cè)地學(xué)上的拓?fù)涞孛玻瑘D像中每一點(diǎn)像素的灰度值表示該點(diǎn)的海拔高度,每一個(gè)局部極小值及其影響區(qū)域稱為集水盆,而集水盆的邊界則形成分水嶺。
分水嶺對(duì)微弱邊緣具有良好的響應(yīng),圖像中的噪聲、物體表面細(xì)微的灰度變化都有可能產(chǎn)生過度分割的現(xiàn)象,但是這也同時(shí)能夠保證得到封閉連續(xù)邊緣。
3. 基于邊緣檢測(cè)的分割方法
基于邊緣檢測(cè)的圖像分割算法試圖通過檢測(cè)包含不同區(qū)域的邊緣來解決分割問題。通常不同區(qū)域的邊界上像素的灰度值變化比較劇烈,如果將圖片從空間域通過傅里葉變換到頻率域,邊緣就對(duì)應(yīng)著高頻部分,這是一種非常簡(jiǎn)單的邊緣檢測(cè)算法。
邊緣檢測(cè)的優(yōu)缺點(diǎn):
(1)邊緣定位準(zhǔn)確;
(2)速度快;
(3)不能保證邊緣的連續(xù)性和封閉性;
(4)在高細(xì)節(jié)區(qū)域存在大量的碎邊緣,難以形成一個(gè)大區(qū)域,但是又不宜將高細(xì)節(jié)區(qū)域分成小碎片;
由于上述的(3)(4)兩個(gè)難點(diǎn),邊緣檢測(cè)只能產(chǎn)生邊緣點(diǎn),而非完整意義上的圖像分割過程。這也就是說,在邊緣點(diǎn)信息獲取到之后還需要后續(xù)的處理或者其他相關(guān)算法相結(jié)合才能完成分割任務(wù)。
在以后的研究當(dāng)中,用于提取初始邊緣點(diǎn)的自適應(yīng)閾值選取、用于圖像的層次分割的更大區(qū)域的選取以及如何確認(rèn)重要邊緣以去除假邊緣將變得非常重要。
4. 基于主動(dòng)輪廓模型的分割方法
在實(shí)現(xiàn)主動(dòng)輪廓模型時(shí),可以靈活的選擇約束力、初始輪廓和作用域等,以得到更佳的分割效果。利用曲線演化來檢測(cè)目標(biāo)的一類方法,基于此可以得到精確的邊緣信息。其基本思想是,先定義初始曲線C,然后根據(jù)圖像數(shù)據(jù)得到能量函數(shù),通過最小化能量函數(shù)來引發(fā)曲線變化,使其向目標(biāo)邊緣逐漸逼近,最終找到目標(biāo)邊緣。這種動(dòng)態(tài)逼近方法所求得的邊緣曲線具有封閉、光滑等優(yōu)點(diǎn)。
5. 基于深度學(xué)習(xí)的分割方法(簡(jiǎn)單介紹)
A、基于特征編碼
在特征提取領(lǐng)域中VGG和ResNet是兩個(gè)非常有統(tǒng)治力的方法。
VGG
通過反復(fù)地堆疊3*3的小型卷積核和2*2的最大池化層,構(gòu)建了16~19層的深度神經(jīng)網(wǎng)絡(luò)。
幾點(diǎn)說明:
*感受野很小的濾波器:3×3(這是捕獲左/右,上/下,中心概念的最小尺寸)。
*1×1卷積濾波器,可以看作輸入通道的線性變換(后面加relu的是非線性)。
*卷積步長(zhǎng)固定為1個(gè)像素;卷積層輸入的空間填充要滿足卷積之后保留空間分辨率,即3×3卷積層的填充為1個(gè)像素。
*空間池化由五個(gè)最大池化層進(jìn)行,這些層在一些卷積層之后(不是所有的卷**積層之后都是最大池化)。在2×2像素窗口上進(jìn)行最大池化,步長(zhǎng)為2。
之后是三個(gè)全連接(FC)層。
*最后一層是soft-max層。所有網(wǎng)絡(luò)中全連接層的配置是相同的。
*在多個(gè)遷移學(xué)習(xí)任務(wù)中的表現(xiàn)要優(yōu)于googLeNet。而且,從圖像中提取CNN特征,VGG模型是首選算法。
*雖然網(wǎng)絡(luò)層數(shù)加深,但VGG在訓(xùn)練的過程中比AlexNet收斂的要快一些,主要因?yàn)椋?/span>
(1)使用小卷積核和更深的網(wǎng)絡(luò)進(jìn)行的正則化;
(2)在特定的層使用了預(yù)訓(xùn)練得到的數(shù)據(jù)進(jìn)行參數(shù)的初始化。
理解1*1卷積核的作用
(1)采用非線性激活函數(shù)可以提高模型的非線性能力;
(2)專注于跨通道的特征組合;
(3)對(duì)feature map在channel層級(jí)進(jìn)行降維或升維。?
ResNet
Resnet出現(xiàn)的背景:深度學(xué)習(xí)網(wǎng)絡(luò)在堆疊到一定深度的時(shí)候會(huì)出現(xiàn)梯度消失的現(xiàn)象,導(dǎo)致誤差升高效果變差,后向傳播時(shí)無法將梯度反饋到前面的網(wǎng)絡(luò)層,使得前方的網(wǎng)絡(luò)層的參數(shù)難以更新,訓(xùn)練效果變差。
梯度消失或者梯度爆炸解決方案:對(duì)輸入數(shù)據(jù)和中間層的數(shù)據(jù)進(jìn)行歸一化(BN)操作,這種方法可以保證網(wǎng)絡(luò)在反向傳播中采用隨機(jī)梯度下降(SGD),從而讓網(wǎng)絡(luò)達(dá)到收斂。
不退化不是我們的目的,我們希望有更好性能的網(wǎng)絡(luò)。 resnet學(xué)習(xí)的是殘差函數(shù)F(x) = H(x) - x, 這里如果F(x) = 0, 那么就是上面提到的恒等映射。事實(shí)上,resnet是“shortcut connections”的在connections是在恒等映射下的特殊情況,它沒有引入額外的參數(shù)和計(jì)算復(fù)雜度。通過使用ResNet Unit成功訓(xùn)練出了152層的神經(jīng)網(wǎng)絡(luò)。
Resnet核心:

對(duì)殘差塊做了計(jì)算優(yōu)化,即將兩個(gè)3x3的卷積層替換為1x1 + 3x3 + 1x1, 如下圖。新結(jié)構(gòu)中的中間3x3的卷積層首先在一個(gè)降維1x1卷積層下減少了計(jì)算,然后在另一個(gè)1x1的卷積層下做了還原,既保持了精度又減少了計(jì)算量。
ResNet的優(yōu)缺點(diǎn):
1)引入了全新的網(wǎng)絡(luò)結(jié)構(gòu)(殘差學(xué)習(xí)模塊),形成了新的網(wǎng)絡(luò)結(jié)構(gòu),可以使網(wǎng)絡(luò)盡可能地加深;
2)使得前饋/反饋傳播算法能夠順利進(jìn)行,結(jié)構(gòu)更加簡(jiǎn)單;
3)恒等映射地增加基本上不會(huì)降低網(wǎng)絡(luò)的性能;
4)建設(shè)性地解決了網(wǎng)絡(luò)訓(xùn)練的越深,誤差升高,梯度消失越明顯的問題;
5)由于ResNet搭建的層數(shù)眾多,所以需要的訓(xùn)練時(shí)間也比平常網(wǎng)絡(luò)要長(zhǎng)。
B、基于區(qū)域選擇(regional proposal based)
Regional proposal 在計(jì)算機(jī)視覺領(lǐng)域是一個(gè)非常常用的算法,尤其是在目標(biāo)檢測(cè)領(lǐng)域。其核心思想就是檢測(cè)顏色空間和相似矩陣,根據(jù)這些來檢測(cè)待檢測(cè)的區(qū)域。然后根據(jù)檢測(cè)結(jié)果可以進(jìn)行分類預(yù)測(cè)。
Stage Ⅰ:R-CNN
Stage Ⅱ:Fast R-CNN:目標(biāo)檢測(cè)
Stage Ⅲ:Faster R-CNN:目標(biāo)檢測(cè)
Stage Ⅳ:Mask R-CNN:主要完成了三件事情:目標(biāo)檢測(cè),目標(biāo)分類,像素級(jí)分割。
Stage Ⅴ:Mask Scoring R-CNN
C.基于RNN的圖像分割
在語(yǔ)義分割領(lǐng)域,基于區(qū)域選擇的幾個(gè)算法主要是由前人的有關(guān)于目標(biāo)檢測(cè)的工作漸漸延伸到語(yǔ)義分割的領(lǐng)域的.
ReSeg模型
MDRNNs(Multi-Dimensional Recurrent Neural Networks)模型
D.基于上采樣/反卷積的分割方法
FCN:在FCN當(dāng)中的反卷積-升采樣結(jié)構(gòu)中,圖片會(huì)先進(jìn)性上采樣(擴(kuò)大像素);再進(jìn)行卷積——通過學(xué)習(xí)獲得權(quán)值。
優(yōu)缺點(diǎn):
*FCN對(duì)圖像進(jìn)行了像素級(jí)的分類,從而解決了語(yǔ)義級(jí)別的圖像分割問題;
*FCN可以接受任意尺寸的輸入圖像,可以保留下原始輸入圖像中的空間信息;
*得到的結(jié)果由于上采樣的原因比較模糊和平滑,對(duì)圖像中的細(xì)節(jié)不敏感;
*對(duì)各個(gè)像素分別進(jìn)行分類,沒有充分考慮像素與像素的關(guān)系,缺乏空間一致性。
SetNet:旨在解決自動(dòng)駕駛或者智能機(jī)器人的圖像語(yǔ)義分割深度網(wǎng)絡(luò),SegNet基于FCN,與FCN的思路十分相似,只是其編碼-解碼器和FCN的稍有不同,其解碼器中使用去池化對(duì)特征圖進(jìn)行上采樣,并在分各種保持高頻細(xì)節(jié)的完整性;而編碼器不使用全連接層,因此是擁有較少參數(shù)的輕量級(jí)網(wǎng)絡(luò):
SetNet的優(yōu)缺點(diǎn):
*保存了高頻部分的完整性;
*網(wǎng)絡(luò)不笨重,參數(shù)少,較為輕便;
*對(duì)于分類的邊界位置置信度較低;
*對(duì)于難以分辨的類別,例如人與自行車,兩者如果有相互重疊,不確定性會(huì)增加。
圖像增強(qiáng)算法常見于對(duì)圖像的亮度、對(duì)比度、飽和度、色調(diào)等進(jìn)行調(diào)節(jié),增加其清晰度,減少噪點(diǎn)等。
增強(qiáng)往往經(jīng)過多個(gè)算法的組合,完成上述功能,比如圖像去燥等同于低通濾波器,增加清晰度則為高通濾波器,當(dāng)然增強(qiáng)一副圖像是為最后獲取圖像有用信息服務(wù)為主。
一般的算法流程可為:
圖像去燥(低通濾波器)
增加清晰度(對(duì)比度)(高通濾波器)
灰度化或者獲取圖像邊緣特征
或者對(duì)圖像進(jìn)行卷積、二值化等
1. 直方圖均衡化
圖像對(duì)比度增強(qiáng)的方法可以分為兩種:直接對(duì)比度增強(qiáng)方法,間接對(duì)比度增強(qiáng)方法。直方圖拉伸和直方圖均衡化是常見的間接對(duì)比度增強(qiáng)方法。
直方圖拉伸是利用對(duì)比度拉伸對(duì)直方圖進(jìn)行調(diào)整,擴(kuò)大前景和背景灰度的差別。
直方圖均衡化則是利用累積函數(shù)對(duì)灰度值進(jìn)行調(diào)整,實(shí)現(xiàn)對(duì)比度的增強(qiáng)。
直方圖均衡化處理原理:將原始圖像的灰度圖從比較集中的某個(gè)灰度區(qū)間均勻分布在整個(gè)灰度空間中,實(shí)現(xiàn)對(duì)圖像的非線性拉伸,重新分配圖像像素值。
算法的本質(zhì)是重新分布圖像的像素值。增加了許多局部的對(duì)比度,整體的對(duì)比度沒有進(jìn)行太大改變,所以應(yīng)用圖像為圖像有用數(shù)據(jù)的對(duì)比度相近時(shí),例如:X光圖像,可以將曝光過度或曝光不足照片進(jìn)行更好的顯示,或者是背景及前景太亮或太暗的圖像非常有用。
算法當(dāng)然也有缺點(diǎn),具體表現(xiàn)為:變換后的圖像灰度級(jí)減少,某些細(xì)節(jié)減少;某些圖像有高峰值,則處理后對(duì)比度不自然的過分增強(qiáng)。
算法偽代碼:
1、計(jì)算原始灰度圖像的像素概率分布
2、根據(jù)像素概率分布獲取圖像累積分布函數(shù)
3、根據(jù)映射函數(shù)(均衡化)獲取變換后的圖像
2. 基于拉普拉斯算子的圖像增強(qiáng)
利用拉普拉斯算子進(jìn)行圖像增強(qiáng)本質(zhì)是利用圖像的二次微分對(duì)圖像進(jìn)行銳化,在圖像領(lǐng)域中微分是銳化,積分是模糊,利用二次微分對(duì)圖像進(jìn)行銳化即利用鄰域像素提高對(duì)比度。
3. 基于Log變換的圖像增強(qiáng)
對(duì)數(shù)變換可以將圖像的低灰度值部分?jǐn)U展,顯示出低灰度部分更多的細(xì)節(jié),將其高灰度值部分壓縮,減少高灰度值部分的細(xì)節(jié),從而達(dá)到強(qiáng)調(diào)圖像低灰度部分的目的。變換方法:

對(duì)于不同的底數(shù),底數(shù)越大,對(duì)低灰度部分的擴(kuò)展就越強(qiáng),對(duì)高灰度部分的壓縮也就越強(qiáng)。
4. 基于伽馬變換的圖像增強(qiáng)
伽馬變換主要用于圖像的校正,將灰度過高或者灰度過低的圖片進(jìn)行修正,增強(qiáng)對(duì)比度。變換公式就是對(duì)原圖像上每一個(gè)像素值做乘積運(yùn)算:

伽馬變換對(duì)圖像的修正作用其實(shí)就是通過增強(qiáng)低灰度或高灰度的細(xì)節(jié)實(shí)現(xiàn)的。

γ值以1為分界,值越小,對(duì)圖像低灰度部分的擴(kuò)展作用就越強(qiáng),值越大,對(duì)圖像高灰度部分的擴(kuò)展作用就越強(qiáng),通過不同的γ值,就可以達(dá)到增強(qiáng)低灰度或高灰度部分細(xì)節(jié)的作用。
伽馬變換對(duì)于圖像對(duì)比度偏低,并且整體亮度值偏高(對(duì)于于相機(jī)過曝)情況下的圖像增強(qiáng)效果明顯。
圖像預(yù)處理算法的好壞直接關(guān)系到后續(xù)圖像處理的效果,如圖像分割、目標(biāo)識(shí)別、邊緣提取等,為了獲取高質(zhì)量的數(shù)字圖像,很多時(shí)候都需要對(duì)圖像進(jìn)行降噪處理,盡可能的保持原始信息完整性(即主要特征)的同時(shí),又能夠去除信號(hào)中無用的信息。
一般的圖像處理,微小的細(xì)節(jié)對(duì)圖像降噪的后續(xù)處理程序影響不太明顯,但是當(dāng)處理對(duì)象為醫(yī)學(xué)圖像時(shí),這樣的小失誤是不被允許的,因?yàn)樵卺t(yī)療診斷或治療中,每一個(gè)微小的失誤都會(huì)影響醫(yī)師的治療方法甚至威脅到患者的生命。這就要求更多的研究者來投入時(shí)間和精力研究新的降噪技術(shù),以達(dá)到降噪并同時(shí)仍能保留足夠細(xì)節(jié)信息的目的。
目前常用的圖像去噪算法大體上可非為兩類,即空域像素特征去噪算法和變換域去噪算法。前者是直接地在圖像空間中進(jìn)行的處理,后者是間接地在圖像變換域中進(jìn)行處理。
什么是隨機(jī)噪聲呢?相比于圖像的真實(shí)信號(hào)來說隨機(jī)噪聲就是一種或高或低呈現(xiàn)出不確定變化的一種信號(hào),如下圖所示虛線代表真實(shí)信號(hào),紅藍(lán)線表示的就是隨機(jī)噪聲信號(hào),所有的隨機(jī)噪聲信號(hào)求和后結(jié)果為0。
由于這個(gè)零和特點(diǎn),目前幾乎所有的空域降噪算法都是基于這個(gè)理論為出發(fā)點(diǎn)來進(jìn)行降噪處理的。
空域像素特征去噪算法
基于空域像素特征的方法,是通過分析在一定大小的窗口內(nèi),中心像素與其他相鄰像素之間在灰度空間的直接聯(lián)系,來獲取新的中心像素值的方法,因此往往都會(huì)存在一個(gè)典型的輸入?yún)?shù),即濾波半徑r。此濾波半徑可能被用于在該局部窗口內(nèi)計(jì)算像素的相似性,也可能是一些高斯或拉普拉斯算子的計(jì)算窗口。在鄰域?yàn)V波方法里面,最具有代表性的濾波方法有以下幾種:
(1) 算術(shù)均值濾波與高斯濾波
算術(shù)均值濾波用像素鄰域的平均灰度來代替像素值,適用于脈沖噪聲,因?yàn)槊}沖噪聲的灰度級(jí)一般與周圍像素的灰度級(jí)不相關(guān),而且亮度高出其他像素許多。
均值濾波結(jié)果A'(i,j)隨著L(濾波半徑)取值的增大而變得越來越模糊,圖像對(duì)比度越來越小。經(jīng)過均值處理之后,噪聲部分被弱化到周圍像素點(diǎn)上,所得到的結(jié)果是噪聲幅度減小,但是噪聲點(diǎn)的顆粒面積同時(shí)變大,所以污染面積反而增大。為了解決這個(gè)問題,可以通過設(shè)定閾值,比較噪聲和鄰域像素灰度,只有當(dāng)差值超過一定閾值時(shí),才被認(rèn)為是噪聲。不過閾值的設(shè)置需要考慮圖像的總體特性和噪聲特性,進(jìn)行統(tǒng)計(jì)分析。
高斯濾波矩陣的權(quán)值,隨著與中心像素點(diǎn)的距離增加,而呈現(xiàn)高斯衰減的變換特性。這樣的好處在于,離算子中心很遠(yuǎn)的像素點(diǎn)的作用很小,從而能在一定程度上保持圖像的邊緣特征。通過調(diào)節(jié)高斯平滑參數(shù),可以在圖像特征過分模糊和欠平滑之間取得折中。與均值濾波一樣,高斯平滑濾波的尺度因子越大,結(jié)果越平滑,但由于其權(quán)重考慮了與中心像素的距離,因此是更優(yōu)的對(duì)鄰域像素進(jìn)行加權(quán)的濾波算法。
(2) 統(tǒng)計(jì)中值濾波
中值濾波首先確定一個(gè)濾波窗口及位置(通常含有奇數(shù)個(gè)像素),然后將窗口內(nèi)的像素值按灰度大小進(jìn)行排序,最后取其中位數(shù)代替原窗口中心的像素值。
無論是中值濾波還是加權(quán)濾波,兩者受窗口的尺寸大小影響非常大。一種對(duì)中值濾波的改進(jìn)是自適應(yīng)中值濾波,它首先判斷窗口內(nèi)部的中心像素是否是一個(gè)脈沖,如果不是,則輸出標(biāo)準(zhǔn)中值濾波的結(jié)果;如果是,則通過繼續(xù)增大窗口濾波尺寸來尋找非脈沖的中值,因此該方法相比較原始的統(tǒng)計(jì)中值濾波器,在保持清晰度和細(xì)節(jié)方面更優(yōu)。
(3) 雙邊濾波
這是一種非線性的保邊濾波方法,是結(jié)合圖像的空間鄰近度和像素值相似度的一種折中處理,同時(shí)考慮空域信息和灰度相似性,達(dá)到保邊去噪的目的。具有簡(jiǎn)單、非迭代、局部的特點(diǎn)。雙邊濾波器之所以可以達(dá)到保邊去噪的效果,是因?yàn)闉V波器是由兩個(gè)函數(shù)構(gòu)成。一個(gè)函數(shù)是由幾何空間距離決定濾波器系數(shù)。另一個(gè)由像素差值決定濾波器系數(shù)。
(4) 引導(dǎo)濾波(guided filter)
(5) NLM(Non-Local means)算法
前面基于鄰域像素的濾波方法,基本上只考慮了有限窗口范圍內(nèi)的像素灰度值信息,沒有考慮該窗口范圍內(nèi)像素的統(tǒng)計(jì)信息如方差,也沒有考慮整個(gè)圖像的像素分布特性,和噪聲的先驗(yàn)知識(shí)。
針對(duì)其局限性,NLM算法被提出,該算法使用自然圖像中普遍存在的冗余信息來去噪聲。與常用的雙線性濾波、中值濾波等利用圖像局部信息來濾波不同的是,它利用了整幅圖像來進(jìn)行去噪,以圖像塊為單位在圖像中尋找相似區(qū)域,再對(duì)這些區(qū)域求平均,能夠比較好地去掉圖像中存在的高斯噪聲。
變換域去噪算法
圖像變換域去噪算法的基本思想其實(shí)就是首先進(jìn)行某種變換,將圖像從空間域轉(zhuǎn)換到變換域,然后從頻率上把噪聲分為高中低頻噪聲,用這種變換域的方法就可以把不同頻率的噪聲分離,之后進(jìn)行反變換將圖像從變換域轉(zhuǎn)換到原始空間域,最終達(dá)到去除圖像噪聲的目的。
圖像從空間域轉(zhuǎn)換到變換域的方法很多,其中最具代表性的有傅里葉變換、離散余弦變換、小波變換以及多尺度幾何分析方法等。
BM3D
空域中NLM算法和變換域中小波萎縮法效果都很好。BM3D就是融合了spatial denoise和tranform denoise,從而可以得到最高的峰值信噪比。它先吸取了NLM中的計(jì)算相似塊的方法,然后又融合了小波變換域去噪的方法。
BM3D算法總共有兩大步驟,分為基礎(chǔ)估計(jì)(Step1)和最終估計(jì)(Step2)。在這兩大步中,分別又有三小步:相似塊分組,協(xié)同濾波和聚合。
Stpe1:基礎(chǔ)估計(jì)
(1) 相似塊分組:首先在噪聲圖像中選擇一些大小的參照塊(考慮到算法復(fù)雜度,不用每個(gè)像素點(diǎn)都選參照塊,通常隔3個(gè)像素為一個(gè)步長(zhǎng)進(jìn)行選取,復(fù)雜度降到1/9),在參照塊的周圍適當(dāng)大小區(qū)域內(nèi)進(jìn)行搜索,尋找若干個(gè)差異度最小的塊,并把這些塊整合成一個(gè)3維的矩陣。
(2) 協(xié)同濾波:形成若干個(gè)三維的矩陣之后,首先將每個(gè)三維矩陣中的二維的塊(即噪聲圖中的某個(gè)塊)進(jìn)行二維變換,可采用小波變換或DCT變換等。二維變換結(jié)束后,在矩陣的第三個(gè)維度進(jìn)行一維變換,變換完成后對(duì)三維矩陣進(jìn)行硬閾值處理,將小于閾值的系數(shù)置0,然后通過在第三維的一維反變換和二維反變換得到處理后的圖像塊。
(3) 聚合:此時(shí),每個(gè)二維塊都是對(duì)去噪圖像的估計(jì)。這一步分別將這些塊融合到原來的位置,每個(gè)像素的灰度值通過每個(gè)對(duì)應(yīng)位置的塊的值加權(quán)平均,權(quán)重取決于置0的個(gè)數(shù)和噪聲強(qiáng)度。
Step2:最終估計(jì)
具體的步驟從流程圖可看出和Step1基本一樣,不同的有兩處:
一處是聚合過程將會(huì)得到兩個(gè)三維數(shù)組:噪聲圖形成的三維矩陣和基礎(chǔ)估計(jì)結(jié)果的三維矩陣。
另一處是協(xié)同濾波中用維納濾波(Wiener Filtering)代替了硬閾值處理。
降噪算法總結(jié)
BM3D算法是目前傳統(tǒng)算法中效果最好的去噪算法,相比于NLM噪聲更少,圖像細(xì)節(jié)恢復(fù)更多,但算法復(fù)雜度實(shí)在太高,除非解決計(jì)算性能問題,不然至少工業(yè)界是無法容忍幾分鐘的處理時(shí)間進(jìn)行降噪處理。
圖像去噪難點(diǎn)在于區(qū)別高頻信號(hào)(如紋理、邊緣)和噪聲,去噪常用思想是利用圖像的相似性。空域去噪是認(rèn)為相近的點(diǎn)相似,通過平滑可以降低隨機(jī)性的噪聲,效果較好的去噪方法大多是多種方法結(jié)合,既能很好地保持邊緣信息,又能去除圖像中的噪聲,比如將中值濾波和小波濾波結(jié)合起來進(jìn)行濾波。
基本上傳統(tǒng)的去噪算法都是從噪音圖像中找出規(guī)律后再進(jìn)行相對(duì)應(yīng)的去噪處理。那么如果從有噪音的圖片本身無法找到規(guī)律,我們是否也可以借助其他類似但又沒有噪音的圖片,來總結(jié)圖片具有的固有屬性呢?(深度學(xué)習(xí)方法)

文作者為CSDN博主「panda愛學(xué)習(xí)」
原文鏈接:https://blog.csdn.net/NXHYD/java/article/details/105339386
好消息!
小白學(xué)視覺知識(shí)星球
開始面向外開放啦??????
下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程 在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。 下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講 在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目,即可下載包括圖像分割、口罩檢測(cè)、車道線檢測(cè)、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺。 下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講 在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。 交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請(qǐng)按照格式備注,否則不予通過。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~

