許曼曼 楊繼翔
摘 要:為了提高圖像區(qū)域的復(fù)制篡改檢測(cè)效率,提出了一種基于相位相關(guān)的數(shù)字圖像檢測(cè)與定位算法。該算法首先對(duì)圖像進(jìn)行滑窗分塊,根據(jù)各個(gè)圖像塊的灰度均值大小選出可能匹配的圖像塊對(duì),然后利用相位相關(guān)技術(shù)對(duì)圖像塊對(duì)進(jìn)行匹配度計(jì)算,最后根據(jù)候選圖像塊對(duì)之間的距離消除誤匹配塊對(duì),并標(biāo)記篡改區(qū)域。實(shí)驗(yàn)結(jié)果表明,該算法檢測(cè)效率高且實(shí)用性強(qiáng)。
關(guān)鍵詞:相位相關(guān);圖像檢測(cè);篡改檢測(cè)
DOIDOI:10.11907/rjdk.161845
中圖分類號(hào):TP317.4
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):16727800(2016)011019903
0 引言
目前數(shù)字圖像篡改檢測(cè)技術(shù)是一個(gè)熱門學(xué)科,在國(guó)內(nèi)外得到了廣泛關(guān)注。數(shù)字圖像有主動(dòng)取證和被動(dòng)取證兩種,被動(dòng)取證技術(shù)因其不需要任何預(yù)簽名或預(yù)嵌入信息而應(yīng)用更為廣泛。安徽大學(xué)的谷宗運(yùn)[1]提出了基于Tchebichef矩的數(shù)字圖像被動(dòng)認(rèn)證算法,該算法是在提取圖像的低頻分量后,對(duì)低頻分量進(jìn)行分塊并提取每一塊的矩特征,因而能有效抵抗噪聲污染、有損壓縮以及旋轉(zhuǎn)等攻擊;王俊文[2]提出了基于小波變換和Zernike矩的檢測(cè)算法和基于高斯金字塔分解和Hu矩的算法。Zernike矩算法主要對(duì)待檢測(cè)圖像利用小波分解進(jìn)行降維,提取低頻分量進(jìn)行研究。Hu矩算法的核心思想是對(duì)待檢測(cè)圖像進(jìn)行高斯金字塔分解,并使用圓形塊代替?zhèn)鹘y(tǒng)的方形塊,以對(duì)抗區(qū)域復(fù)制過(guò)程中帶來(lái)的旋轉(zhuǎn)問(wèn)題;劉美紅等[3]提出了基于將圖像分塊后提取每塊的特征向量進(jìn)行分形和統(tǒng)計(jì)的檢測(cè)方法,該算法最后利用圖像塊的位置信息和歐式距離來(lái)定位篡改區(qū)域;杜振龍等[4]提出了采用圖像3種特征復(fù)合的方式來(lái)描述圖像的盲檢測(cè)算法;吳瓊等[5]提出了基于零連通特征和模糊隸屬度的圖像盲取證算法;魏為民[6]提出利用JPEG塊效應(yīng)不一致的方法對(duì)合成圖像進(jìn)行盲檢測(cè);駱偉祺等[7]提出了采用圖像7維特征作為圖像塊特征向量的特征提取方法,該方法可以對(duì)抗平滑濾波、壓縮等后處理操作,但不能抗旋轉(zhuǎn);康曉兵等[8]提出了一種有效的盲檢測(cè)算法來(lái)識(shí)別圖像復(fù)制偽造區(qū)域,該算法采用截尾奇異值分解變換來(lái)處理圖像塊數(shù)據(jù),并對(duì)圖像塊進(jìn)行相似性匹配檢測(cè)。本文利用相位相關(guān)計(jì)算圖像塊之間的匹配度,對(duì)圖像進(jìn)行滑窗分塊時(shí)可以一次滑動(dòng)多個(gè)像素,大大減少了圖像塊數(shù)量,從而有效提高了檢測(cè)效率。
1 檢測(cè)與定位算法
1.1 算法基本思想
當(dāng)前圖像篡改檢測(cè)技術(shù)中最常用的是塊匹配技術(shù),該方法是將圖像劃分為獨(dú)立且相互重疊的小圖像塊,然后選取圖像特征來(lái)描述圖像塊,在圖像塊特征集合中搜索出特征匹配的圖像塊對(duì),進(jìn)而得出篡改區(qū)域。本文利用相位相關(guān)技術(shù)來(lái)判斷圖像塊匹配度并計(jì)算它們之間的相對(duì)位移,根據(jù)相對(duì)位移可以得出它們之間的重疊部分。即使兩個(gè)圖像塊不完全一樣,利用它們的相對(duì)位移可以標(biāo)記出相互重疊的部分?;诖嗽?,本文方法對(duì)圖像進(jìn)行分塊時(shí)可以一次滑動(dòng)多個(gè)像素,從而減少圖像塊數(shù)量,大大縮小了圖像塊對(duì)匹配的搜索空間,有效提高了程序運(yùn)行時(shí)間。
1.2 利用相位相關(guān)求圖像重疊率
相位相關(guān)算法是基于傅里葉變換的一種技術(shù)。由于相位相關(guān)利用圖像的功率譜信息而不依賴于圖像內(nèi)容,所以具有很強(qiáng)的抗噪能力,常用于數(shù)字圖像取證領(lǐng)域。該技術(shù)能夠檢測(cè)出圖像塊之間的偏移量。
傅里葉變換和反變換能將信號(hào)在時(shí)域與頻域之間進(jìn)行轉(zhuǎn)化,所以能夠分別在時(shí)域或頻域上分析信號(hào)。由于它是一種全局變換,所以不能同時(shí)在兩個(gè)域上分析信號(hào)。傅里葉變換在不同研究領(lǐng)域中有各種不同的變體形式,比如離散傅里葉變換和連續(xù)傅里葉變換。對(duì)數(shù)字圖像進(jìn)行傅里葉變換,能將圖像從時(shí)域變換到頻域空間,利用傅里葉頻譜特性進(jìn)行圖像處理??焖俑道锶~變換(fft)是離散傅里葉變換的快速算法,它將復(fù)雜的運(yùn)算過(guò)程分解成無(wú)數(shù)個(gè)簡(jiǎn)單的加(減)運(yùn)算,而且保留了離散傅里葉變換的所有特性。因此,快速傅里葉變換在圖像處理中得到了廣泛應(yīng)用。
假設(shè)g(x,y)是由圖像f(x,y)平移變換所得,平移量為(x0,y0),它們之間的關(guān)系可以表示為:
其中,G*(u,v)是 G(u,v)的共軛復(fù)數(shù),對(duì)互功率譜P(u,v)進(jìn)行離散傅里葉逆變換后,能得到兩個(gè)圖像間的相位相關(guān)性矩陣p(x,y),即互功率譜脈沖函數(shù)。矩陣中的峰值與它們之間的重疊程度有關(guān),且峰值對(duì)應(yīng)的坐標(biāo)表示兩個(gè)圖像塊之間的平移量。
互功率譜脈沖函數(shù)的最大值代表兩個(gè)圖像之間的相關(guān)性,隨著相關(guān)性降低,脈沖函數(shù)的峰值也會(huì)減小。圖1是對(duì)大小為32×32的圖像塊進(jìn)行實(shí)驗(yàn)的結(jié)果,圖1(a)中的兩幅圖像完全一樣,脈沖函數(shù)的峰值在(1,1)處最大且等于1,其余部分全為0;圖1(b)中兩幅圖像的平移量為(4,1),脈沖函數(shù)最大為0.49;圖1(c)中兩幅圖像的平移量為(8,7),峰值為0.32;圖1(d)顯示的圖像沒(méi)有明顯峰值,且最大值只有0.12,兩幅圖像不相關(guān)。
1.3 算法步驟
步驟1:讀取待檢測(cè)圖像的大小A×B,對(duì)圖像進(jìn)行劃窗分塊,每塊為正方形,子塊邊長(zhǎng)為a,滑動(dòng)步長(zhǎng)為a_sli,當(dāng)圖像邊界不能完整分塊時(shí),對(duì)子塊進(jìn)行補(bǔ)零,構(gòu)成a×a像素的圖像塊。
步驟2:對(duì)每一圖像塊用其左上角第一個(gè)像素在圖像中的位置(xi,yi)進(jìn)行標(biāo)示,計(jì)算每個(gè)圖像塊的灰度均值,并從大到小排序。
步驟3:由于篡改區(qū)域與被復(fù)制區(qū)域在灰度均值上相似,對(duì)每個(gè)圖像塊只要在其[-L,L]范圍內(nèi)利用相位相關(guān)技術(shù)搜索與其匹配的圖像塊即可,具體步驟如下:
(1)對(duì)每個(gè)圖像塊首先排除與它互相重疊的圖像塊對(duì),因?yàn)樵谕鶊D像中復(fù)制和粘貼區(qū)域不相交。當(dāng)|xi-xi′|≤a且|yi-yi′|≤a時(shí),兩個(gè)圖像塊相互重疊。
(2)對(duì)于不重疊的圖像塊對(duì)進(jìn)行相位相關(guān)計(jì)算,計(jì)算結(jié)果返回脈沖函數(shù)峰值P和峰值的坐標(biāo)(i1,j1)。P與預(yù)設(shè)閾值T1比較,結(jié)果有3種情況:①峰值P小于預(yù)設(shè)閾值T1時(shí),說(shuō)明圖像塊對(duì)不相關(guān);②峰值P大于預(yù)設(shè)閾值T1且平移坐標(biāo)為(1,1)時(shí),說(shuō)明兩個(gè)圖像塊完全匹配,記為候選匹配塊對(duì)1;③峰值P大于預(yù)設(shè)閾值T1且平移坐標(biāo)為(m,n)時(shí),說(shuō)明兩個(gè)圖像塊部分重疊,記為候選匹配塊對(duì)2。
步驟4:在候選匹配塊對(duì)中,計(jì)算每對(duì)塊對(duì)之間的偏移量,當(dāng)具有相同偏移量的圖像塊數(shù)大于預(yù)設(shè)閾值T2時(shí),圖像塊對(duì)即是復(fù)制粘貼區(qū)域,否則是誤匹配塊對(duì)。
步驟5:對(duì)檢測(cè)出的匹配塊對(duì)進(jìn)行白色標(biāo)記,輸出標(biāo)記圖片。
2 實(shí)驗(yàn)結(jié)果與分析
所有實(shí)驗(yàn)均運(yùn)行在CPU為Intel Core (TM)2.4GHz、內(nèi)存為4GB以及Windows7上,采用Matlab 7編程進(jìn)行測(cè)試。
實(shí)驗(yàn)選擇的第一幅是256×256的灰度圖像,如圖2(a)所示,圖2(b)是復(fù)制粘貼篡改過(guò)的圖像。利用Photoshop圖像處理軟件復(fù)制圖像中的馬,粘貼到草地上的另一邊。
對(duì)圖像進(jìn)行檢測(cè),設(shè)置參數(shù)值子塊大小為16×16,滑動(dòng)步長(zhǎng)為8像素,L=10,閾值T1=0.28,T2=9,檢測(cè)結(jié)果如圖3所示。
子塊與滑動(dòng)步長(zhǎng)的大小是影響檢測(cè)準(zhǔn)確率的重要因素,對(duì)第二幅實(shí)驗(yàn)圖像采用不同的子塊大小及滑動(dòng)步長(zhǎng)進(jìn)行對(duì)比實(shí)驗(yàn)。圖4(a)是原圖,圖4(b)是篡改后的圖像,圖5(a)是子塊a=16×16,滑動(dòng)步長(zhǎng)為8像素,L=10,閾值T1=0.28,T2=20時(shí)的檢測(cè)結(jié)果;而當(dāng)子塊a=8×8,滑動(dòng)步長(zhǎng)為4像素,L=20,閾值T1=0.43,T2=100時(shí),檢測(cè)結(jié)果如圖5(b)所示。
實(shí)驗(yàn)結(jié)果表明,不同的參數(shù)大小對(duì)篡改區(qū)域的定位有很大影響,當(dāng)子塊大小為16時(shí),程序能準(zhǔn)確定位出復(fù)制粘貼區(qū)域,由于子塊比較大,所以邊緣區(qū)域不能被準(zhǔn)確標(biāo)記到;當(dāng)子塊大小縮小到8時(shí),從圖5(b)中可以看出,標(biāo)志篡改區(qū)域變得更加準(zhǔn)確,圖像中動(dòng)物的腳也能標(biāo)記出來(lái)。所以在對(duì)圖像進(jìn)行分塊時(shí),子塊與滑動(dòng)步長(zhǎng)越小,算法標(biāo)記復(fù)制粘貼區(qū)域的精確率越高,同時(shí)檢測(cè)時(shí)間也越長(zhǎng)。
3 結(jié)語(yǔ)
本文算法在檢測(cè)圖像篡改區(qū)域時(shí),有效解決了檢測(cè)效率低的問(wèn)題。在對(duì)圖像劃分子塊時(shí),一次滑動(dòng)多個(gè)像素,可大大減少圖像塊數(shù)量;在進(jìn)行相位相關(guān)匹配前,先對(duì)圖像塊的灰度均值進(jìn)行比較,選擇均值相近的圖像塊進(jìn)行進(jìn)一步匹配,從而縮小搜索范圍,提高程序檢測(cè)效率。實(shí)驗(yàn)結(jié)果表明,本文算法能準(zhǔn)確定位篡改區(qū)域且檢測(cè)效率高。
參考文獻(xiàn):
[1] 谷宗運(yùn).區(qū)域復(fù)制篡改的數(shù)字圖像被動(dòng)認(rèn)證研究[D].安徽:安徽大學(xué),2011.
[2] 王俊文.數(shù)字圖像內(nèi)容篡改盲取證研究[D].南京:南京理工大學(xué),2010.
[3] 劉美紅,徐蔚鴻.基于分形和統(tǒng)計(jì)的復(fù)制—粘貼篡改圖像的檢測(cè)[J].計(jì)算機(jī)應(yīng)用,2011,31(8):22362239.
[4] 杜振龍,楊凡,等.基于復(fù)合特征的復(fù)制粘貼偽造圖像盲檢測(cè)[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(11):42644267.
[5] 吳瓊,孫韶杰,等.數(shù)字圖像盲取證對(duì)樣本合成修復(fù)應(yīng)用的篡改區(qū)域檢測(cè)算法[J].自動(dòng)化學(xué)報(bào),2009,35(3):239243.
[6] 魏為民.基于Fourier譜分析的數(shù)字圖像被動(dòng)取證研究[D].上海:上海大學(xué),2009.
[7] 駱偉祺,黃繼武,丘國(guó)平.魯棒的區(qū)域復(fù)制圖像篡改檢測(cè)技術(shù)[J].計(jì)算機(jī)學(xué)報(bào),2007,30(11):19982007.
[8] 康曉兵,魏生民.基于TSVD的圖像復(fù)制區(qū)域偽造檢測(cè)算法[J].計(jì)算機(jī)應(yīng)用研究,2008,25(12):37413743.
(責(zé)任編輯:黃 ?。?