本發明總體上涉及圖像處理,并且更具體地涉及處理圖像以降低噪聲并且增強圖像內容。
背景技術:
圖像去噪的目標是從被噪聲破壞的圖像重構“無噪”增強圖像。存在很多用于圖像去噪的圖像處理方法。
第一組方法使用局部方法,其中將目標像素的無噪估計重構為目標像素的小空間鄰域內的像素值的加權平均。一種這樣的方法用諸如高斯核函數的平滑濾波器對含噪圖像進行卷積,其中權重根據函數隨著與目標像素的距離而減小。由于對鄰域內的局部圖像結構(像素值)不敏感的線性濾波運算,得到的圖像通常具有模糊的偽影。
為了克服模糊的偽影,其他局部方法嘗試通過使用非線性濾波器來使濾波器“邊緣感知”。中值濾波器將像素值重構為鄰域內的像素值的中間值。
另一方法使用各向異性擴散,其中濾波器的形狀可以作為擴散過程的結果適應于局部圖像結構,其對圖像不連續敏感。
sigma濾波器通過對目標像素與其鄰域內的其他像素之間的絕對像素值差進行閾值處理來識別鄰域內與目標像素相似的像素。然后通過鄰域內僅相似像素值(具有相似度閾值內的差的像素)的平均來重構目標像素。該模型中的權重可以根據相似度標準認為是0或1。
已知對sigma濾波器的若干擴展。例如,可以使用雙邊濾波器,其中,代替硬閾值算子(0或1權重),權重根據兩個核函數(一個在空間域中,一個在范圍(像素值)域中)的乘法而連續變化。
另一方法檢查所關注像素周圍的不同的局部圖像區域,并且確定每個局部區域的無噪估計。所關注像素的估計然后確定為局部區域估計的某種加權平均。
另一方法確定每個像素值的噪聲方差(其存儲在查找表中)。然后基于該噪聲模型調整相似度閾值和權重。
局部去噪方法受益于允許快速計算的空間局部性。然而,這些方法無法使用圖像的全局統計量,諸如重復模式,而這是圖像去噪的重要線索。
第二組方法使用非局部去噪方法。非局部方法通過搜索圖像內的全部分塊來檢索與目標圖像分塊相似的圖像分塊。然后,目標分塊被相似分塊的加權平均替換。
另選的非局部方法包括使用來自相同圖像的學習字典和變換域非局部濾波的圖像分塊的稀疏重構。這些方法的非局部搜索步驟使得它們在具有計算和存儲器約束的系統中難以使用。
另選地,可以通過使用圖像分割或置信度傳播對馬爾可夫隨機場(MRF)執行推理來實現非局部去噪。為了實現快速性能,迭代的次數小,在結果中留下相當大的噪聲。
技術實現要素:
本發明的實施方式提供了用于對含噪圖像去噪以生成無噪增強圖像的方法。方法使用局部去噪函數庫。對于圖像的每個像素,使用像素周圍的局部鄰域(分塊)構造鍵(key)。鍵將每個像素映射到函數庫中的去噪函數。通過將選擇的函數應用于像素的分塊來確定像素的無噪重構。
例如,能在離線過程中使用訓練圖像學習去噪函數庫。學習過程最小化了重構誤差。方法通過鍵將非線性映射與函數結合。對于各種分塊配置優化函數以提供比現有的手動調節的局部去噪方法更好的重構,同時仍然允許快速處理。
附圖說明
圖1是根據本發明的實施方式的去噪方法的流程圖。
圖2是根據本發明的實施方式的去噪方法的詳細流程圖。
圖3是根據本發明的實施方式的空間映射的示意圖。
圖4是根據本發明的實施方式的噪聲映射的流程圖。
圖5是根據本發明的實施方式的函數映射的流程圖。
圖6是根據本發明的實施方式的使用庫函數去噪的示意圖。
圖7是根據本發明的實施方式的構造函數庫的流程圖。
具體實施方式
圖1是根據本發明的實施方式的用于使用局部去噪函數庫501對含噪圖像101進行去噪110以產生去噪圖像102的方法的流程圖。方法可以在如現有技術中已知的通過總線連接到存儲器和輸入/輸出接口的處理器中執行。
圖2是去噪方法的詳細流程圖。含噪圖像中的像素x具有值I(x)。像素周圍的局部鄰域或“分塊”是P(x)。分塊可以具有任意形狀,諸如矩形、橢圓形、或者適應于圖像內容的不規則的像素排列。
噪聲估計器210使用含噪圖像101中的像素的局部鄰域或分塊P(x)來確定每個像素的噪聲方差σ211。函數映射m(x)510使用噪聲方差估計和像素的局部鄰域來將每個像素映射到函數230,見圖5。選擇的函數f230應用于240含噪圖像中的分塊P(x),以生成去噪圖像102的對應的去噪像素。
噪聲估計
在噪聲估計210期間,該方法估計每個像素的噪聲的方差。在一種實施方式中,假定方差σ對于所有具有相同值v的像素是等同的
如果I(x)=v并且I(y)=v,那么σ(x)=σ(y)=σv。
使用每個像素周圍的局部分塊來估計方差。對于圖像中具有平均值v的每個分塊,確定分塊的強度值的方差,每個分塊一個方差。如果分塊源自恒定顏色區域,則該分塊的方差等于噪聲的經驗估計。
然而,因為分塊還可以源自非恒定顏色區域,所以分塊方差估計近似是具有值v的像素的噪聲方差分布的下限。值v的噪聲方差估計為具有平均值v的分塊的中心像素的噪聲方差分布的k階統計量。在一種實施方式中,k例如選擇為分塊中心像素值的方差計算分布的具有值v的像素數量的0.1。
一般來說,方差隨著像素值改變而平滑地改變。每個值的獨立的噪聲估計造成了非平滑的噪聲輪廓。因此,平滑化方差以產生平滑的噪聲輪廓。
函數映射
對于圖像的每個像素x,使用像素x周圍的分塊P(x)和像素值的噪聲估計來構造鍵。鍵包括空間鍵和噪聲鍵。
如圖3中示出的,使用像素x周圍的例如3x3的像素I(xi),xi∈P(x)的分塊P(x)301通過空間映射函數310來構造空間鍵302。分塊P(x)的大小和形狀可以不同于用來估計噪聲方差的分塊。
在一種實施方式中,空間鍵是局部n元模式(LnP)320,例如局部二元模式(LbP)。對于分塊內的每個像素xi獲得一位信息。如果分塊中的像素值I(xi)與含噪圖像中的像素值I(x)之間的差小于像素的方差σ(x),則該位設置為0,否則該位設置(321)為1:
空間鍵具有|s|位。圖3中示出了所確定的局部二元模式的示例,其中黑色像素(位0)對應于分塊內的與含噪圖像中的像素(即,分塊中的中心像素)具有相似的值的像素,并且白色像素(位1)對應于分塊內的與含噪圖像中的像素具有不相似的值的像素。
圖4是噪聲映射的流程圖。使用含噪圖像中的像素的方差401的估計通過噪聲映射函數410構造噪聲鍵402。在一種實施方式中,通過方差σ(x)的n位均勻量化給出噪聲鍵:
n(x)=σ(x)的|n|位量化。
像素的鍵m是空間鍵與噪聲鍵的串接,如下:
從而鍵具有|s|+|n|位。
如圖5中所示,鍵m 502將圖像的像素映射510到去噪函數庫501中的用來對像素去噪的去噪函數f。
使用庫函數去噪
如圖6中示出的,從含噪圖像像素x確定鍵k 502,并且fk是函數庫中對應的函數。去噪函數使用像素周圍的分塊P(x)601(即,分塊包括像素x周圍的局部鄰域像素)。該分塊的大小和形狀可以不同于用來確定鍵的分塊。在一種實施方式中,去噪函數是分塊中的像素強度的線性函數
其中Wk 602是線性函數的權矩陣,I(P(x))是分塊P(x)的像素強度的矩陣,并且是在通過將矩陣的列堆積為列向量的向量化之后的兩個矩陣之間的內積運算。
學習去噪函數庫
如圖7中示出的,使用訓練圖像樣本721來學習去噪函數庫501。訓練圖像樣本721包括無噪701和對應的含噪711訓練圖像樣本對。通過訓練樣本構造器720生成訓練樣本721。在一種實施方式中,通過將合成噪聲添加到無噪701圖像來獲得含噪711圖像。
訓練或函數擬合730優化了函數,使得最小化使用含噪711圖像的無噪圖像的重構與無噪701圖像之間的差:
其中I和是無噪和含噪訓練圖像樣本對721,l是函數庫中的去噪函數的數量,并且去噪函數F通過首先使用函數映射510將像素映射到去噪函數然后使用映射的函數對像素去噪,來操作每個圖像像素:
F(x)=fm(x)(x)。
在一種實施方式中,通過根據鍵將訓練圖像對的像素分組來求解訓練。然后,分別優化每個組。當庫函數是線性函數時,通過求解線性最小二乘問題來最優地學習庫函數。當庫函數是非線性函數時,使用非線性優化技術(諸如梯度下降或牛頓法)來學習庫函數。