開發與維運

【圖像去噪】基於變分偏微分方程HNHOTV_OGS算法實現稀疏圖像去噪附matlab代碼

1 簡介

如今,人類已進入圖像的大數據時代,圖像處理技術深入到生物醫學、天文觀測、

社交通信、電影製作和視頻監控等各個領域。諸如武器的制導、偵測目標和打擊評估等軍事任務,數字成像技術和圖像處理技術在軍事領域發揮了至關重要的作用。可見光、紅外和合成孔徑雷達等成像技術,在歷次高科技戰爭中,始終貫穿始末,軍事裝備的信息化水平被大大提高,傳統的作戰,無論是方式,還是理念,都被根本地顛覆。因為不確定的成像環境和採集過程的隨機性,往往獲得的圖像不清晰,視覺效果差。圖像去模糊(反捲積)往往存在病態性,且這種病態性是本質上的,在無正則化措施的前提下無法消除,從而使我們獲得的復原圖像不夠清晰。由噪聲引起的圖像退化,造成分辨率下降,嚴重影響後續的判讀分析、模式識別和特徵提取等工作。真實可靠的信息,我們都希望獲得,為了對圖像進行後續的高級處理和應用,需對其進行預處理,如去噪、去模糊、壓縮感知重建等。我們可以基於硬件和軟件的角度對圖像實施去噪處理,比如使用質量更好的 CCD 和 CMOS 傳感器來採集圖像,改善成像系統,但不夠靈活而且價格較高,所以往往傾向於基於軟件層面對算法進行改進以達到去除圖像噪聲的目的。例如,利用紅外製導技術的超聲速巡航武器,其光學探頭與大氣的劇烈作用,會產生複雜的湍流場並使氣體密度發生改變,對成像系統造成干擾,並影響圖像的傳輸,所成的像,就會發生偏移和模糊。

基於偏微分方程的濾波方法作為一種有效的圖像去噪方法,受到了學者們的廣泛研

究。傳統的濾波方法在一定程度上能夠消除噪聲,但在保持圖像特徵信息方面的效果不太理想,基於偏微分方程的圖像去噪方法能夠有效地平衡去除噪聲和保持圖像結構信息方面之間的矛盾,使去噪圖像能夠得到很好的視覺效果。本文主要研究的是將偏微分方程應用於圖像去噪,這類方法的優點在於:

(1)具有良好的理論支撐,在傳統濾波方法的基礎上,結合了成熟的微分幾何、統計學、應用數學等學科知識;

(2)模型簡單,去噪效果好,將模型稍作改變即可推廣到解決高維及流形問題上;

(3)具有較強的擴展性,可以將多種圖像處理理論(如多尺度分析、奇異值分解等)很好地結合到偏微分方程的理論框架下。基於偏微分方程的圖像去噪方法大致可以分為三類:基於變分偏微分方程的去噪方法;基於微分幾何的偏微分方程的去噪方法;基於擴散偏微分方程的去噪方法。基於偏微分方程的圖像去噪方法具有模型簡單,擴展性強,去噪效果好等優點,已被廣泛應用於圖像去噪。

全變分(total variationTV)模型在圖像的每一點上都僅沿著垂直於圖像梯度的方向擴散,即是沿著邊緣方向擴散,而在梯度方向是不擴散的,從而解決了過度平滑的問題,也有效地保護了圖像邊緣的信息,因此該模型能較好地保留圖像的邊緣細節。但對於圖像的平坦區域,它的邊緣方向實際上是不明顯甚至是不存在的,此時沿著圖像邊緣方向擴散就會導致平坦區域的去噪能力不足,容易把平坦區域的噪聲誤當成圖像邊緣處理,導致出現虛假邊緣,從而產生階梯效應。基於變分法和偏微分方程的圖像去噪方法能夠有效地平衡去除噪聲和保持圖像結構信息方面之間的矛盾,使復原圖像能得到很好的視覺效果。本文主要研究的是將變分偏微分方程方法應用於灰度圖像中加性高斯噪聲的去除。本文針對經典的全變分模型所存在的缺點,藉助變分法和偏微分方程的理論優勢,

圍繞圖像去噪問題,提出 HNHOTV-OGShybrid non-convexhigher order total variation overlapping group sparsity)算法.HNHOTV-OGS 算法同時使用了重疊群稀疏(overlapping group sparsityOGS)正則項和非凸的高階全變分正則項用於階梯效應的消除,OGS 正則項傾向於在全局範圍內對復原圖像中的偽影進行平滑處理,而非凸高階項傾向於平滑局部的紋理部分,並保持鋒利的邊緣。

image

image

image

image

2 部分代碼

clcclear all;close all;imageName = 'boat512.tiff';Img = double(imread(imageName)); %Your Image goes hereN = numel(Img);[row, col] = size(Img);row = int2str(row);col = int2str(col);imageSize = [row 'x' col];K     =   fspecial('average',1); % For denoising. (K is the identity operator)f = imfilter(Img,K,'circular');sigma = 20; % Noise level ( in paper, 10, 20 and 30 are tested)fprintf('The noise std of the observed image: %g.\n', sigma); f = f +  sigma * randn(size(Img)); %Add a little noise%**************Initialize parameters for denoising*****************opts.lam       = 0.35; % Play around with this !! opts.omega     = 3.0;  % and also this !!opts.grpSz         = 3; % OGS group sizeopts.Nit           = 400;opts.Nit_inner     = 5;opts.tol           = 1.0e-5;opts.rho           = 0.009;  %initial rho value. rho will be updated in each iteration of the algorithm.opts.p             = 0.1;regType = 'ani';out = hnhotv_ogs(f, Img, K, opts);figuresubplot(131)imshow(Img,[]);title('原始圖像')subplot(132)imshow(uint8(f));title(sprintf('Noisy (PSNR = %3.3f dB, SSIM = %3.3f)',psnr_fun(f,Img), ssim_index(f,Img)));title('加噪圖像')subplot(133)imshow(out.sol,[]);title('去噪圖像')title(sprintf('HNHOTV-OGS Denoised (PSNR = %3.3f dB,SSIM = %3.3f, cputime %.3f s) ',...                       psnr_fun(out.sol,Img),ssim_index(out.sol,Img), out.cpuTime));

3 仿真結果

image

image

4 參考文獻

[1]邱豪駿. 基於變分偏微分方程的圖像去噪算法研究. 

博主簡介:擅長智能優化算法、神經網絡預測、信號處理、元胞自動機、圖像處理、路徑規劃、無人機等多種領域的Matlab仿真,相關matlab代碼問題可私信交流。

部分理論引用網絡文獻,若有侵權聯繫博主刪除。

image

Leave a Reply

Your email address will not be published. Required fields are marked *