張娜,王阿川
ZHANG Na,WANG Achuan
東北林業大學,哈爾濱150040
Northeast Forestry University,Harbin 150040,China
隨著計算機以及網絡通信技術的快速崛起,通過互聯網傳輸數據、文檔、圖像、聲音等信息的頻率在不斷地增加。但同時,由于多媒體處理軟件被廣泛應用,這些傳輸在網絡上的各種信息也遭到了各種有意無意的攻擊和破壞,從而使得信息接收者對于接收到的信息的可靠性就會產生質疑,這樣,傳輸信息的安全性也受到了威脅。所以,在這樣一個信息技術迅猛發展的時代,能夠保證信息的安全性、真實性以及可靠性顯得尤為重要。在所有傳輸數據的媒介中,使用圖像作為載體的概率占有很大的比重。而且,圖像也是包含數據信息相當豐富的一種傳輸媒介。能夠對圖像數據進行監測和保護,是迫切需要建立的一種技術。
針對圖像篡改的檢測方法中,較成熟的技術屬于主動檢測方法,即事先在圖像中嵌入了數字水印或者數字簽名,但是這種方法存在著諸多的不足和缺陷,并且魯棒性較弱。因此,根據圖像自身的像素信息進行檢測的被動檢測(也稱為盲檢測)技術成為了研究的熱點。目前基于被動檢測研究的方法有:基于小波低頻子帶提取特征且利用迭代劃分法結合相似性匹配搜索相似圖像塊的圖像復制粘貼篡改檢測技術[1],基于三角形抗平移、旋轉、尺度縮放等特性[2]的圖像復制粘貼篡改檢測技術,采用SURF(Speed Up Robust Feature)提取圖像的集合不變量特征且采用最近鄰法進行特征匹配[3]的圖像復制粘貼篡改檢測技術。也有基于數學形態學[4]、二維相位一致性[5]以及馬爾可夫特征[6]的篡改檢測技術,還有基于質量評價量和方差分析、基于雙JPEG壓縮統計特性,然后采用支持向量機(SVM)進行訓練與分類的檢測方法[7-8]。
上述被動檢測技術中,復制-粘貼篡改檢測的研究方法較多,技術也相對成熟,但是該方法有一定的局限性。基于特征提取的支持向量機的檢測方法能夠對圖像的篡改與否進行檢測分類,但是沒有對篡改區域進行準確定位,仍然找不到篡改區域。基于小波變換的篡改檢測[9-10]對JPEG圖像進行了檢測,該方法有了很大的進步,不過其只找到部分篡改區域,還有相當一部分篡改區域未定位。本文在此基礎上進行了改進,結合小波系數相關性的概念對圖像進行檢測并且對篡改區域進行再定位。
對上述問題進行研究的理論分析中,小波變換的應用起到了關鍵性的作用。它能夠同時在時域及頻域上均體現較好的局部化特性,所以,當利用小波變換解決實際問題時,可以根據不同的分析需求,調節時頻域到適合解決問題的時頻窗口,從而具體到信號的任何細微部分。
2.1.1 連續小波變換
假設存在某個能量有限信號f(t),即f(t)∈L2()R,函數的內積如下:

定義為函數f(t)的連續小波變換,簡稱CWT(Continuous Wavelet Transform)。式(1)的變換結果定義為小波變換系數。Ψa,τ(t)稱為連續小波基函數,其中a為尺度因子或伸縮因子(表示與頻率相關的伸縮),τ為位移因子,它們均為連續變化的量。
連續小波變換的基本定義與推導公式,通常只符合在理論上進行分析和應用。若想在實際中得到應用,非常有必要對連續小波變換采取離散化或者數字化,用以適應現在計算機的處理模式。而且,離散化最主要原因還在于:離散化處理后,可最大化地減弱甚至去除系數的冗余性。
2.1.2 離散小波變換
對式(1)中的自變量a和τ采用離散化處理之后,得到一種相對于連續小波變換(CWT)的變換方法,即離散小波變換(Discrete Wavelet Transform,DWT)。實際需要時,通常采用一種比較典型和被廣泛接受的離散方式對自變量a和τ進行離散,如下:
(2)當尺度確定后,均勻地對位移因子進行離散化處理,即τ=。
在(1)(2)中,a0,τ0均為大于0的實常數,m和k均為整數。為了方便進一步運用,一般情況下取常數為:a0=2,τ0=1。則離散后的小波變換可以表示為:

2.1.3 多分辨率分析
由于單一的小波變換對本文圖像篡改檢測的作用不是很大,研究中,通常需要對圖像進行更細微更精確的分析,這樣就涉及到多分辨率分析。為了便于理解,可以從以下兩種不同的角度來引入多分辨率分析的概念。
首先從濾波器組角度出發,若對連續信號x(t)進行數字化采樣,數字頻率在-π~+π之間。將該信號x[n]分別通過一個低通濾波器和一個高通濾波器,那么信號的頻譜中0~+π的部分分解為0~低頻部分和~π的高頻部分。對于頻率較低的部分,可以理解為信號的光滑部分;而頻率較高的部分,理解為信號的細節。以上這些可認為是一級處理模塊,還可以將多級處理模塊進行級聯。上面的分解還可以繼續分解下去,將分解后的低頻部分作為下一級的輸入,再通過低通和高通濾波器,得到下一級的光滑和細節部分。從多尺度分析角度來看,每一級處理模塊恰好對應一個尺度,每一級分解就是將信號在該尺度下進行了分解,這就是一種多分辨率分析。
再從函數空間角度說明,但是要特別提到的是,函數空間的逐級分解中,分解不是任意的,其中存在著特殊性,即分解后的子空間之間存在正交關系。假設第j級子空間為Vj,將Vj進行分解得到Vj+1和Wj+1,Vj+1又可以繼續再分解,以此類推,可以無限地分解下去,不過分解中任意的Vj和Wj都必須為非空。以上的函數空間分解正好對應了多分辨率分析的空間分解,使得多分辨率分析更容易理解和研究。
前言已經提到,小波變換就如同一臺“顯微鏡”。改變“顯微鏡”的不同焦距可以觀測到信號放大或者縮小的任意細節或概貌。這樣不僅能夠觀察被分析信號中的光滑部分,還可以檢測到信號突變點,并判別出它們的性質。因此,對信號進行小波變換,可以直觀準確地檢測及識別出其中的突變點。而這些突變點通常表現為過零點、極值點、斷點等具有一定特性的點,這些正是本文要研究分析的關鍵所在[11]。
而通過研究發現,小波分析應用于信號的突變點檢測,不管是采用小波變換系數的模極大點,還是過零點、斷點,都必須綜合考慮其在不同尺度上的總體表現,進行全面地分析和判斷,方可精確地判定突變點的位置。一般情況下,尺度稍小的小波變換可以減小頻率混疊現象,識別出突變點位置的準確率較高。若是檢測噪聲信號干擾點的準確位置,在多個尺度下分析比較檢測點的位置才能夠抗擊干擾[11]。
3.1.1 小波變換模極大值
(1)Lipschitz指數定義
利用小波變換來檢測信號突變點(或者奇異點),這個是廣義上的定義,實際應用中通常需要一個具體的函數或者表達式來表征。事實上,可以根據小波變換模極大值在多尺度上的綜合表現,來確定信號中突變點的特性。而小波變換模極大值與信號突變點之間的關系,需要一種度量的方法,來表征信號局部變化的程度,Lipschitz指數即可實現[11]。其定義為:
假設某一信號x(t)在點t0附近滿足如下特征,即

式中,h是一個無窮小的正數,Pn(t)是經過x(t0)點的n次多項式,則稱x(t)在t0處的Lipschitz指數為a。
事實上,Pn(t)就是信號x(t)在t0點處的Taylor級數展開的前n項,即

可以看出,a一定比n大,且比n+1小或者與n+1相等(不一定等于n+1,但肯定小于n+1)。
(2)Lipschitz指數與小波變換極大值在尺度上的表現之間的關系
當t屬于區間[t0,t1]時,假設有:

也可以寫為:

當a=2j時,上式可變為:

式中,ja把尺度特征j和Lipschitz指數a巧妙地聯系在一起。并且可以得到一些規律,即:隨著尺度a或者j的變化,小波變換的對數值也發生相應地變化。
3.1.2 最小二乘法的曲線擬合
在實驗過程中,往往會得到一組數據點(xi,yi)(i=0,1,…,m),為了研究兩個變量(x,y)之間存在的關系,自然而然地引入了最小二乘法這個數學概念。最小二乘法比較廣泛的用法,是將其應用于曲線擬合。
用數學公式描述即,對于這組數據點(xi,yi)(i=0,1,…,m),需要在函數類Φ中求得一個函數Φ(n∈Z+),使得誤差平方和達到最小。從幾何角度出發,就是找到一條曲線y=p(x),使得其上的值與給定數據點(xi,yi)(i=0,1,…,m)的距離平方和的值為最小。稱函數p(x)為擬合函數,求p(x)的方法稱為曲線擬合的最小二乘法。
3.1.3 相關系數的定義
在數學理論中,相關系數或者相關性,經常用來表示任意兩個隨機變量之間存在的線性相關的程度。假設有兩個隨機變量(m×n的矩陣)X、Y,在離散的前提下,它們之間存在的相關性描述如下:
(1)計算平均值

(3)計算X、Y的協方差

(4)計算二者的相關性

可以得到,ρxy即為X、Y的相關系數。ρxy的大小描述了變量X與Y之間存在的聯系:
①當相關系數為0時,X和Y沒有任何相關性。
②當相關系數為0~1.0之間時,X和Y表現為正相關。即X增大(減小),則Y增大(減小)。
③當相關系數為-1.0~0之間時,X和Y表現為負相關。即X增大(減小),則Y減小(增大)。
根據上述算法理論,對待測圖像(即篡改圖像)進行檢測。算法實現步驟如下:
(1)讀取圖像。首先讀取被檢測的大小為256×256的灰度圖像。
(2)圖像非重疊分塊。對上述實驗要求的圖像進行非重疊分塊操作,分塊大小為32×32,則將整個圖像共分為8×8=64塊。分別對每一塊進行如下步驟的處理。
(3)邊緣檢測并記錄邊緣坐標。本實驗采用canny算子對各分塊進行邊緣提取,并將檢測后的二值圖像中像素值為1的坐標進行記錄,以便后續步驟中運用。
(4)對分塊按行進行離散小波變換。由于分塊仍是圖像,即是二維的,故需將其轉換為一維向量,本步驟是按行進行轉換。然后對其進行小波變換,選取db1小波作為基本小波,對轉換后的一維向量進行三層小波分解,得到三層小波系數,將其按照分塊的大小轉換為相應尺寸的矩陣。
(5)求局部模極大值。詳細步驟為:以被檢測到的邊緣坐標處的小波系數為中心,選取該小波系數及其8-鄰域為一個范圍,即以這九個系數為目標,先求各個系數的模極大值,然后得到模極大值的對數。
(6)對每一分塊進行多項式擬合。以上述的小波分解層數為自變量xi(i=1,2,3),步驟(5)中得到的小波系數模極大值為函數值yi(i=1,2,3),根據這組已知的自變量和函數值進行多項式擬合。
(7)對分塊進行按列處理,實現步驟(4)~(6),將其中的按行操作均換為按列操作。
(8)求各分塊按行和按列的平均擬合誤差。對每一分塊,將以上步驟中得到的按行(按列)擬合曲線的函數值與原始小波系數進行做差處理,求差值的絕對值,再求平均。
(9)求平均擬合誤差。對每個分塊的按行平均擬合誤差和按列平均擬合誤差再進行平均,即對每個分塊都有平均擬合誤差erro。
(10)設定閾值,篡改部分定位。根據步驟(9)得到的每一個erro,選取一個閾值區間。若某一個分塊的erro屬于該閾值區間,則該分塊被初步確定為篡改區域。
(11)將步驟(10)中得到的圖像(如圖3)分為大小為16×16的分塊,共16×16=256塊。重復步驟(3)~(10)。
(12)求分塊的相關系數。對步驟(11)中得到的篡改區域,計算每一塊與其8-鄰域的分塊的相關性,得到8個相關系數值,求得這8個相關系數的平均值ave。其中對于圖像的邊緣塊,由于不存在8-鄰域,因此只對與其相鄰的圖像塊進行計算,然后求平均值ave。若ave大于0.6,則相關性較強,可判斷不是篡改區域;否則,相關性較弱,則該分塊可能遭到篡改。
本實驗在硬件配置為Pentium?4 CPU 3.00 GHz,內存為1.00 GB的微機上進行。實驗平臺為Matlab7.0。所選取的原始圖像(如圖1)均為256×256的灰度圖像,在原始圖像的基礎上,利用Photoshop軟件進行了篡改,則得到了篡改圖像(如圖2)。將圖2中的圖像作為待測圖像,對其進行檢測。

圖1 原始圖像

圖2 篡改圖像
4.1.1 檢測結果1
由圖3中第一次檢測結果是算法步驟(1)~(10)的檢測結果,可以看到,雖然篡改的部分可以被檢測出來并且定位,但是在未被篡改的部分出現了很多的錯誤檢測(誤檢),而且在篡改部分也有漏檢的地方,這使得結果不是非常理想。因此,用改進的算法進行再一次的檢測和定位。

圖3 第一次檢測結果
4.1.2 檢測結果2
為了減小誤檢和漏檢率,準確定位篡改區域,將圖3中圖像利用步驟(11)~(12)進行再次處理,即進行相關性強弱的判斷,對圖像進一步檢測和定位,得到的結果如圖4所示。

圖4 第二次檢測結果
由圖4可以看到,從視覺效果上,檢測以及定位的效果比第一次檢測結果精確度有所提高。在第一次檢測結果中出現的大部分誤檢以及漏檢情況,在第二次檢測中得到很好的改善。為了能夠使得視覺感受和定量分析達到一致,對兩次檢測結果平均誤檢率和漏檢率進行定量的比較,如表1。從表1中可以看到,第二次檢測結果誤檢率和漏檢率,與第一次檢測結果相比,均有一定比例的減少,效果比較理想。

表1 兩次檢測結果比較(%)
4.1.3 檢測結果3
考慮到圖像分塊的大小及分塊的形狀可能會對檢測結果產生影響,因此,這里僅以圖像分塊為8×8,8×16(如圖5)為例進行實驗研究。對實驗結果進行統計發現8×8分塊檢測結果誤檢率較高,而8×16分塊檢測結果較好,但是仍有一定比例的漏檢。因此,分塊大小和形狀對檢測結果有一定的影響。同樣可以對其他的分塊大小和形狀進行實驗研究。

圖5 不同分塊不同形狀檢測結果
從以上檢測結果中分析,出現誤檢和漏檢的原因可能是:
(1)求模極大值。由于有些圖像自身能夠提取的邊緣信息比較豐富,而如果篡改部分的信息又與原始圖像的周圍信息非常相近時,這樣在求模極大值的時候,很容易將原始圖像信息作為篡改的部分檢測出來,造成誤檢。對于上述情形,可根據后續步驟中的相關性判斷進行處理,大部分誤判可消除,對于處理后仍然存在的誤判區域,則作為篡改區域進行研究分析,并且將其統計在誤檢率中。
(2)多項式曲線擬合。利用最小二乘法進行曲線擬合時,實驗中運用了Matlab7.0中自帶的函數polyfit(x,y,n)。一幅圖像中每個圖像分塊的多項式參數不同、擬合數據不同,因此擬合參數并不唯一。非篡改分塊和篡改分塊擬合曲線(以圖2(a)中某一分塊的數據為例)如圖6所示(橫軸為分解層數,縱軸為小波系數模極大值的對數)。由圖中曲線得知,非篡改分塊擬合誤差較大,而篡改分塊的擬合誤差較小,這為后續步驟的閾值設定奠定了基礎。

圖6 非篡改分塊和篡改分塊擬合曲線
(3)閾值的選擇。閾值的判斷是檢測中非常關鍵的步驟。實驗中,對于算法步驟(10)中的閾值的選擇,依據得到的erro值確定的數值范圍a~b,取,在小于k的值中選取數個閾值,步長為0.1,根據誤檢率和漏檢率確定最終的閾值。以圖2(a)為例,a=0.1,b=1.1,則選取閾值分別為0.5、0.4、0.3進行比較。由圖7三個不同的閾值進行比較,得到圖7(a)誤檢率較高,圖7(c)漏檢率較高,因此選取0.4作為最佳閾值。

圖7 不同的閾值對檢測結果的影響
本文針對篡改圖像可能會出現的突變點以及強邊緣情況進行了分析研究,提出了基于小波變換模極大值以及圖像信息相關性相結合的檢測以及定位方法。利用小波變換多分辨率分析的概念,先將圖像進行三級分解得到各層小波系數,在邊緣信息及其鄰域內求取小波系數的模極大值,然后對模極大值的對數進行曲線擬合。根據曲線擬合的誤差來判斷圖像的篡改與否,很重要的一步是,判斷分塊與周圍分塊之間的相關性,根據相關性系數的大小進一步定位。大量的實驗結果證明,該方法在檢測圖像的篡改方面效果比較理想,定位也比較準確。主要存在的優勢體現在:(1)該方法為被動檢測方法,即不用在待測圖像中添加任何水印或者簽名,而是直接對圖像進行處理;(2)利用小波系數之間存在的相關性,對圖像中檢測到的篡改部分進一步定位,實驗結果比較理想;(3)改進后的檢測結果中誤檢率和漏檢率均相應減小。待解決的問題:(1)對于篡改部分面積非常大的圖像檢測效果稍差一些,目前只能檢測篡改區域不超過一定比例的圖像;(2)由于實際應用中,彩色圖像的傳輸占大部分的比重,灰度圖像使用的概率次之,因此為了更好地應用于實際中,可進一步將研究重點放在彩色圖像上。
[1] 張小祥,周治平.小波低頻子帶提取特征的圖像復制篡改檢測[J].計算機工程與應用,2011,47(10):161-163.
[2] 王浩明,李德龍,楊曉元,等.一種基于三角形區域生長的圖像篡改檢測方法[J].武漢大學學報,2011,57(5):455-460.
[3] 金媛媛.基于SURF的copy-move篡改檢測方法研究[D].西安:西北大學,2011.
[4] Kihara M,Fujiyoshi M,Wan Q T,et al.Image tamper detectionusingmathematicalmorphology[C]//IEEEInternational Conference on Image Processing,2007.
[5] Chen W,Shi Y Q,Su W.Image splicing detection using 2_d phase congruency and statistical moments of characteristic function[C]//SPIE Electronic Imaging:Security,Steganography and Watermarking of Multimedia Contents,San Jose,CA,USA,2007.
[6] 李哲,張愛新,金波,等.基于統計特征和馬爾可夫特征的圖像拼接盲檢測[J].計算機科學,2010,37(7):277-279.
[7] 周治平,張小祥.基于質量評價量和方差分析的圖像篡改檢測[J].計算機工程,2011,37(9):236-238.
[8] 岳紅原,黃堅.基于雙JPEG壓縮統計特性的圖像篡改檢測方法[J].南京工程學院學報:自然科學版,2009,7(2):34-40.
[9] Sutcu Y,CoskunB,SencarHT,etal.Tamperdetection based on regularity of wavelet transformcoefficients[C]//IEEE International Conference on Image Processing,2007:397-400.
[10] 吉建華.基于小波系數規則性的JPEG2000圖像篡改檢測[D].天津:天津大學,2008.
[11] 劉濤,曾祥利,曾軍,等.實用小波分析入門[M].北京:國防工業出版社,2006:132-137.