張德鵬,王曉峰,胡姣姣,張 萌
(西安理工大學 應用數學系,西安 710048)
隨著圖像獲取設備的快速發展,免費圖像編輯軟件的可用性越來越高,而圖像編輯技術的濫用會生成虛假的圖像內容,使得數字圖像篡改變得越來越容易.篡改偽造圖像不僅降低了圖像可信度,而且會誤導大眾,有時甚至引發犯罪.因此,旨在揭示各種圖像篡改的取證工具越來越受到關注.
在圖像采集和傳輸過程中不可避免地會受到噪聲的干擾,這將會導致不同采集設備獲得的圖像之間存在著噪聲差異.這種類型的不一致性可以作為檢測圖像拼接操作的依據,為了檢測這種不一致性,近年來許多有效的方法被相繼提出.
Ajá-Fernandez等人[1]從局部統計模型來估計噪聲,其基礎是大多數圖像區域均是平坦的,但這在實踐中并不總是成立.Liu等人[2]針對圖像強度定義了噪聲水平函數(Noise Level Function,NLF),利用圖像像素平均值和亮度變化作為樣本集,并使用貝葉斯MAP(Maximum A Posteriori)估計來從單個圖像推斷噪聲水平函數,該方法后來擴展到圖像去噪領域[3].然而,在貝葉斯估計過程中,NLF曲線的形狀并沒有較好的限制.因此,均勻塊不足的圖像可能會影響NLF估計的準確性.Yang 等人[4]主要解決了噪聲水平估計中均勻樣本塊不足的問題,他們使用稀疏表示技術通過字典恢復來估計NLF.然而不足之處是,為了使擬合NLF更接近真實噪聲水平,在估計之前需要訓練可靠的字典.Lyu等人[5]利用帶通域中自然圖像峰度的特定的性質以及噪聲特性和峰度之間的關系,將噪聲統計量的估計表示為封閉形式解的優化問題,并進一步推廣到一種有效的局部噪聲統計量估計方法.Pun等人[6]利用多尺度噪聲差異作為圖像拼接偽造檢測依據,圖像最初被分割成多個尺度的超像素,在每個單獨的尺度中,計算噪聲水平和亮度之間的噪聲水平函數,實驗結果表明,該方案對于多目標拼接具有較好性能.Zeng等人[7]提出基于主成分分析的圖像塊噪聲水平估計算法,并通過k-means聚類區分原始區域和篡改區域.Chierchia 等人[8]提出了基于傳感器模式噪聲的圖像篡改檢測方法,在貝葉斯估計框架下使用馬爾可夫隨機場來探索圖像來源的空間依賴關系,在整個圖像上綜合考慮,利用優化技術實現全局最優解,并通過非局部去噪來提高估計,該技術在很大程度上改善了當前的技術水平.Yao 等人[9]通過探索NLF與相機響應函數(Camera Response Function,CRF)之間的關系,擬合CRF約束下的NLF曲線,建立貝葉斯最大后驗MAP框架來優化NLF估計.Cozzolino等人[10]從圖像的噪聲殘差中提取局部特征,從而定位篡改區域.
本文主要解決當篡改圖像中的拼接區域與原始區域的噪聲差異較小時拼接檢測的困難,提高了對不同后處理操作的魯棒性,并且運用自適應的閾值確定方法,提升了拼接區域檢測的性能.
大多數數字圖像在成像過程中通過傳感器或后處理操作引入固有的噪聲分量.最廣泛使用的噪聲模型是與信號無關的加性高斯白噪聲[11],噪聲圖像A(x,y)可以表示為:

其中,A(x,y)是 觀察到的噪聲圖像,A0(x,y)為原始圖像,N(x,y)表示與信號無關的噪聲.噪聲水平符合高斯分布:

其中,σ和 μ 分別表示高斯分布的標準差和均值.
在很多圖像處理過程中都涉及圖像分塊,針對不同的目的有不同的分塊策略.本文采用非重疊分塊的方法.具體方法為從左到右,從上到下移動遍歷整幅圖像(如圖1所示).并且選擇的塊應該遠小于圖像塊的大小.設檢測的圖像大小為m×n,分塊大小為d×d,則總共能劃分為bm/dc×bn/dc個子塊.

圖1 圖像非重疊分塊規則
實際處理中我們將除不盡余下的邊緣像素值舍掉.對于子塊大小選取要適中,子塊過大則篡改區域無法精確地定位;子塊過小則塊內信息內容不充分,容易出現較多誤檢,并且運算時間過長.通過實驗對比,本文選取大小為16×16的子塊,此時檢測精度較高(如圖2).記每一塊為Bi(x,y),i=1,2,···,bm/dc×bn/dc.

圖2 不同分塊定位結果
拉普拉斯是一種二階導數算子,與方向無關,對噪聲有雙倍加強作用.一個二維圖像函數的拉普拉斯變換是各向同性的二階導數,定義為:

為了更適合于數字圖像處理,將該方程用離散形式表示:

另外,拉普拉斯算子還可以表示成掩模的形式,如L1所示,從掩模形式容易看出,如果在圖像中一個較暗的區域中出現了一個亮點,那么用拉普拉斯運算就會使這個亮點變得更亮.因為在拼接圖像中的邊緣就是那些灰度發生跳變的區域,所以拉普拉斯銳化掩模在邊緣檢測中具有較好性能.同梯度算子一樣,拉普拉斯算子也會增強圖像中的噪聲.如文獻[12]使用兩個掩模L1和L2之 間的差作為新的掩模.L1和L2分別為:

令表示在圖像塊處應用掩模C的值,如下式:

假設每一個像素的噪聲標準差為 σi,通過和C卷積運算即可得到均值為0,方差為 36σ2i.其中噪聲方差σ2i的估計值可以在圖像塊Bi或局部鄰域通過求均值來得到.因此圖像塊Bi中噪聲方差可以被定義為:

其中,W和H分別為圖像非重疊塊的寬和高.
由于均值為0方差為σ2i的高斯白噪聲符合高斯分布,則可以得到其絕對偏差為:
得到:

因此對于塊的噪聲估計σi可以被定義為:

假設圖像A是m×n維的矩陣(假設r是A的秩),其SVD可以寫成:

其中,U是正交矩陣,S為對角矩陣,V為另一個正交矩陣的轉置.其中,UTU=Imm,VTV=Inn,(Imm和Inn表示單位矩陣),m和n表 示A的維數.S是包含AAT或ATA的特征值的平方根并以降序排列的對角矩陣.設S(i),(i=0,1,···,r)表 示奇異值,則有S(1)>S(2)>···>S(r).
通過使用參數M來表示選取奇異值的數量,計算M2[r/4,4r/5]個 奇異值的平均值PM,如下式:

PMσl與 的關系為:

其中,σl表 示圖像塊Bi(x,y)的噪聲.
由文獻[13]可知,噪聲水平越高,奇異值越大.而圖像內容決定了奇異值的前面部分,它會導致奇異值的前面部分包含在PM的計算中,因此M的值不能超過4r/5,另一方面,M也不應該太小,否則會導致噪聲估計的數據量太小,從而影響估計的準確性和可靠性.故M的取值范圍為M2[r/4,4r/5],本文取M=3r/4.
為了進一步利用SVD算法,我們需要求出a的值,詳細步驟見文獻[13],通過計算得到a(如表1所示).

表1 不同塊大小的a 估計值
當根據式(12)估計噪聲水平時,我們需要找出β 的值.由文獻[13]可知 β與圖像的復雜性(結構和其它視覺細節)有關,因此很難找出β 的精確值.為了解決這個問題,通過增加已知標準差的白高斯噪聲到噪聲圖像,從而得到β 的值.
假設在噪聲圖像上添加一個方差為σ1(σ1=50)的獨立高斯白噪聲,原始圖像的噪聲方差為 σl,得到總噪聲方差為σw,得到如下等式;

從式(12)即可得到兩個等式:
通過求解上面的方程組,可以計算出σl的值.

由于拼接操作會破壞圖像的紋理強度的一致性,因此它的改變可以作為拼接篡改的線索.文獻[11]中所說,圖像結構可以通過梯度協方差矩陣來表示.對于圖像塊Bi(x,y)可以得到梯度協方差矩陣,記為GBi:

其中,Dh和Dv分別表示垂直和水平濾波算子.

或

故對于圖像塊Bi(x,y)的 梯度協方差矩陣CBi的定義如下:

其中,T表示轉置.然而通過梯度矩陣CBi和協方差矩陣GBi可以反映很多重要的圖像塊信息.因此我們利用奇異值分解(SVD)來得到反映圖像信息的特征值和特征向量.

其中S(1)>S(2)>···>S(r).
因此我們用協方差矩陣所有特征值之和來反映圖像塊的紋理長度.其中和越大說明紋理越豐富.定義如下;

拼接圖像由兩個或多個不同來源的部分組成,可能包含不一致的噪聲特征和紋理強度特征.原則上,我們可以將全局圖像分成幾個局部片段,并使用前一節中介紹的方法估計所有圖像塊噪聲和紋理強度.但是,這種方式不僅計算復雜度相對較高,特別是對于一些尺寸較大的圖像,而且由于塊數較多還會造成誤檢升高.基于這兩個原因,我們提出了一種基于可疑區域的拼接檢測方法.
首先,利用基于紋理相似的原理定位出可疑區域;其次,利用上文方法對可疑區域進行噪聲估計;最后,定位出篡改區域.
拼接篡改操作使得圖像紋理強度的一致性受到破壞,但也存在拼接塊與原始圖像可能具有相似的紋理強度的可能,因此這種特征只能粗略定位出可疑篡改區域.如圖3給出原始圖和篡改圖像紋理強度的示例.
如圖4所示,篡改圖像和未篡改圖像的紋理強度具有明顯差異,根據這個特征我們可以粗略定位出篡改區域.具體過程如下:

圖3 圖像紋理強度特征(其中,(b),(d)圖中的橫坐標是分割對應塊,縱坐標是紋理強度值)

圖4 拼接規則
首先,利用非重疊分塊將圖像分為大小為32×32的分割塊.這里主要考慮分塊要能足夠表達圖像中的信息,過大則是定位精度較低,過小則可能產生漏檢.
接著,利用基于SVD的局部圖像梯度矩陣的方法估計圖像的紋理特征.分別表示為GBi(i=1,2,···,N)其中N是分割塊數,接著將所得到的的特征值利用聚類方法聚為4類.每一類特征均值分別用SR1,SR2,SR3,SR4來表示,用平方偏差和CSR-v來定義不同類之間的一致性:

SRave表示CSR-v的均值.為了確定塊是否是篡改塊,我們計算CSR-v與SRave的比值,記為ηv,如下:

其中,ηv表示區域之間的偏差比率.當比率在預定義閾值T范圍內時,用于檢測的圖像塊被分組為原始圖像區域,否則,分組為篡改區域.其中T的定義如下:

其中,F(η)表 示中η 距離1 最近的值.若T<ηv,則認為SRv區域為篡改區域,否則認為是原始區域.
首先,對待檢測圖像進行大小為16×16分塊處理.接著利用本文所提出方法得到噪聲值并用閾值進行二值化處理,閾值選擇如下:
計算出噪聲的平均值

由于拼接操作將圖像分為了兩部分或三部分,如圖4所示三種情形:
將提取最終噪聲值利用模糊聚類算法[14,15]將噪聲均值和對應塊聚為三類,計算出每一類噪聲的均值,閾值定義為:

其中,Nmax為三類中的最大均值,利用制定的二分類法將得到的噪聲值進行分類,定義如下:

在本節中,我們通過實驗來評估和分析所提出方法的性能.并給出所提方法和對比文章的精度測試、視覺圖,并對方案的魯棒性進行了分析.本文在Matlab 2014a,Win7平臺進行實驗.
由于所提出的方法是基于噪聲來檢測篡改區域的,因此驗證該方法的有效性是很有必要的.下面的實驗是為了驗證該方法對于不同噪聲的檢測性能.
我們從BSDS300數據庫中隨機抽取180張圖片.首先,通過對原始圖像添加均值為零標準差σ 的白高斯噪聲.其中 σ=1,3,5,7,9,通過這種方式,可以獲得5×180幅不同的噪聲圖像.我們從每幅噪聲圖像中剪切出一個120×120的正方形區域,并將其拼接到原始圖像上,生成5個不同的圖像數據集.然后我們在每個數據集上來計算平均真陽性率TP和假陽性率FP[7],并與文獻[7]和[9]進行比較.

從表2中可以看出對于較小σ 值,本文提出方法具有更好的檢測拼接區域的性能,但是對于較大 σ 值時,文獻[7]和[9]與本文的方法檢測拼接區域性能差別不是很大.由于現實拼接篡改圖像往往噪聲差異較小,故本文所提出的方法具有較好的檢測性能.
衡量一個方法的好壞不僅僅是檢測精度,還要考慮是否具有一般適用性.接下來的實驗是為了驗證該方法的一般適用性,我們利用Columbia IPDED數據集來定量分析檢測率以及對于后處理操作的魯棒性.
從表3中可以看出,本文所提出的方法具有更好的檢測性能,且對于一些常見后處理操作具有魯棒性,相比于最先進的圖像拼接定位方法,所提出的方法具有較好的檢測性能.從上表看到存在較高的誤檢率高,主要是因為本文采用非重疊分塊,且塊的大小為16×16,在定位時由于在拼接邊緣有一部分原始圖像被分割到拼接塊,因此按像素來計算誤檢率使得誤檢率較大,另一方面是由于閾值選擇造成的影響.

表2 不同噪聲水平差異拼接定位性能比較

表3 Columbia IPDED數據集的檢測精度對照表
表4是在BSDS300數據集中利用所提出的方法對處理前和后處理操作后的檢測率比較.

表4 BSDS300數據集的檢測精度對照表
為了檢驗所提出方案的篡改定位能力,我們分別選用Columbia IPDED數據庫與BSDS300數據中的圖像進行測試.圖5是拼接篡改圖像的4個實例,以及使用文獻[9]和文獻[7]方法的檢測結果.

圖5 數據庫中的拼接圖像篡改定位結果
從圖5可以看出,文獻[7]雖然能大致定位出篡改區域,但是誤檢率較大,文獻[9]也能大致定位出篡改區域,但是由于采用顯著區域檢測的方法,表現出較好性能,但是會出現檢測失敗的可能.相比之下我們所提出的方法具有一定優勢.
為了檢驗所提出方案的魯棒性,我們選用Columbia IPDED數據庫中的圖像進行內容保持性操作處理,如圖6,圖7,圖8是針對不同類型的內容保持性操作篡改定位實驗結果,并與文獻[9]和文獻[7]中的方法進行了對比.

圖6 不同JPEG質量因子的篡改定位結果,從左至右列依次為篡改圖像、未壓縮、JPEG95、JPEG85、JPEG75結果
從實驗結果和魯棒性實驗的結果可以看出,文獻[7]對于JPEG壓縮的定位能力相對較差,勉強可以看到篡改區域,特別對于JPEG質量因子較小時定位失敗.對于文獻[9]雖然表現出較好的性能,但是檢測率不高且存在定位失敗的情況.總之從上述圖中和表中的結果顯示,對于JPEG壓縮、伽瑪校正和高斯模糊的內容保持性的操作,我們所提出的方法的篡改定位能力總體上優于文獻[7]和文獻[9].

圖7 伽瑪矯正(Gamma=1.2)的篡改定位結果,從左至右列依次為篡改圖像、未后處理、伽瑪矯正結果

圖8 高斯模糊(3×3,σ =1)的篡改定位結果,從左至右列依次為篡改圖像、未后處理、高斯模糊結果
本文提出了一種基于噪聲水平的圖像拼接篡改定位算法.利用奇異值分解和改進的拉普拉斯算子計算噪聲特征,在此基礎上利用模糊聚類求出閾值,并定位出篡改區域.相比先前算法提高了定位精度,并對后處理操作具有較好魯棒性,特別對于拼接區域和非拼接區域噪聲差異較小時具有優越性.后續工作將致力于進一步改進噪聲估計算法,從而提高定位精度、精確定位篡改區域.