華秀茹 魏為民 栗風(fēng)永
(上海電力大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 上海 200090)
由于網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,圖像編輯軟件被人們廣泛使用,這使得圖像篡改越來越普遍。數(shù)字圖像作為現(xiàn)代社會(huì)的重要信息載體,其真實(shí)性尤其重要,越來越多的人研究數(shù)字圖像取證[1]。數(shù)字圖像取證包括主動(dòng)取證和被動(dòng)取證。主動(dòng)取證需要事先對(duì)圖像嵌入相關(guān)信息,如水印、簽名等;被動(dòng)取證不需要事先對(duì)圖像操作,而是直接檢測(cè)圖像的真實(shí)性,因此具有更實(shí)際的意義。復(fù)制粘貼是圖像篡改時(shí)最常用的操作,通過復(fù)制圖像中部分區(qū)域一處或多處粘貼到圖像的另外區(qū)域中。在對(duì)圖像進(jìn)行復(fù)制粘貼篡改操作時(shí),往往還會(huì)進(jìn)行一些處理操作,例如旋轉(zhuǎn)、縮放、模糊、壓縮、添加噪聲等使得篡改區(qū)域更加真實(shí)。復(fù)制粘貼篡改案例如圖1所示 ,導(dǎo)彈發(fā)射升空?qǐng)D使用了復(fù)制粘貼篡改操作。
圖1 導(dǎo)彈發(fā)射圖
研究人員針對(duì)復(fù)制粘貼篡改盲取證方法主要分為塊匹配方法和特征點(diǎn)匹配方法?;趬K的偽造檢測(cè)方法將輸入圖像劃分為重疊和常規(guī)圖像塊,通過匹配圖像像素塊或變換系數(shù)獲得篡改區(qū)域?,F(xiàn)有的分塊的方法主要有:基于頻率的DCT算法[2]、DWT算法[3]、FMT算法[4];基于矩的Hu不變矩[5]、blur不變矩[6]、Zernike矩[7];基于降維的PCA算法[8]、PCA-EVD算法[9]。由于塊匹配算法提取特征向量維數(shù)較多導(dǎo)致計(jì)算復(fù)雜度高的問題,提出效率高復(fù)雜度低的特征點(diǎn)匹配算法。對(duì)于特征點(diǎn)匹配算法,是指在整個(gè)圖像上提取和匹配圖像關(guān)鍵點(diǎn)以抵抗一些圖像變換,同時(shí)識(shí)別重復(fù)區(qū)域,如SIFT算法[10]、SURF算法[11]、ORB算法[12]。雖然特征點(diǎn)匹配算法提取的特征向量維數(shù)少、效率高,但存在因圖像本身存在的平滑或相似區(qū)域?qū)е绿卣鼽c(diǎn)提取不精確而產(chǎn)生的對(duì)篡改區(qū)域漏檢情況。
針對(duì)以上問題本文提出基于超像素分割與SURF算法結(jié)合匹配篡改區(qū)域。算法對(duì)圖像進(jìn)行SLIC超像素分割成獨(dú)立不重疊塊,提取圖像的SURF特征點(diǎn)與特征描述子用以匹配。匹配特征點(diǎn)時(shí)將k-d樹和BBF算法結(jié)合提高算法運(yùn)行效率。最后用RANSAC剔除誤匹配,二值化圖像顯示篡改區(qū)域。
復(fù)制粘貼檢測(cè)算法如圖2所示。算法由超像素分割圖像、特征點(diǎn)提取與匹配、剔除誤匹配后處理操作三個(gè)階段完成:
(1) 分割圖像。對(duì)待檢測(cè)圖像SLIC超像素分割,分割成不重疊的小塊。
(2) 特征點(diǎn)提取與匹配。提取圖像的SURF特征點(diǎn)以及特征描述子,通過構(gòu)建k-d樹與BBF算法提高特征點(diǎn)匹配速度。
(3) RANSAC剔除誤匹配,形態(tài)學(xué)腐蝕膨脹操作顯示篡改區(qū)域。
圖2 復(fù)制粘貼篡改檢測(cè)示意圖
已有的塊匹配算法將圖像分割成重疊的圖像塊,增加提取特征點(diǎn)向量的維數(shù),降低檢測(cè)效率。采用超像素分割將檢測(cè)圖像分割成不重疊的獨(dú)立小塊。在比較幾種著名的分割方法后[13-15],選擇采用復(fù)雜度相對(duì)較低的簡(jiǎn)單現(xiàn)行迭代聚類SLIC超像素分割算法[15]。
對(duì)于待檢測(cè)圖像,SLIC超像素分割算法可以生成近似均勻、緊湊的塊。通過設(shè)置圖像所需塊的個(gè)數(shù)參數(shù)即可得到獨(dú)立不重疊的小塊。為了避免分割時(shí)復(fù)制區(qū)域與粘貼區(qū)域出現(xiàn)在同一塊中,對(duì)于圖像數(shù)據(jù)集中的圖片,設(shè)置超像素個(gè)數(shù)不少于100塊。SLIC超像素分割的實(shí)例如圖3所示。
特征點(diǎn)提取時(shí)使用Bay提出的SURF算法,該算法在特征提取時(shí)因使用積分圖和降維的特征描述子,因此特征點(diǎn)提取速度快,且有較好的旋轉(zhuǎn)、尺度、光照不變性。使用SURF算法提取圖像特征點(diǎn)的步驟主要有構(gòu)建Hessian矩陣、確定特征點(diǎn)方向、提取特征描述子。
(1) 構(gòu)建Hessian。SURF算法提取圖像特征點(diǎn)首先要構(gòu)建圖像的Hessian矩陣。Hessian矩陣是由多元函數(shù)對(duì)應(yīng)的二階偏導(dǎo)數(shù)組成的方陣。圖像I(x,y)由高斯濾波后的Hessian矩陣表達(dá)式為:
(1)
式中:(x,y)為像素點(diǎn)位置;σ表示像素點(diǎn)對(duì)應(yīng)尺度空間的尺度;Lxx(x,y,σ)、Lxy(x,y,σ)、Lyy(x,y,σ)分別表示圖像上的點(diǎn)通過高斯函數(shù)與高斯二階偏導(dǎo)數(shù)卷積的結(jié)果。通過計(jì)算圖像中每個(gè)像素的Hessian行列式的值,以此來判斷特征點(diǎn)。SURF算法使用方框?yàn)V波器代替高斯濾波器,以方框?yàn)V波器的近似模板加以計(jì)算。Hessian矩陣判別式為:
Det(H)=Lxx*Lyy-(ω*Lxy)2
(2)
式中:ω為加權(quán)系數(shù),可以平衡使用方框?yàn)V波器近似模板時(shí)所帶來的誤差。方框?yàn)V波器及其近似模板如圖4所示。
圖4 濾波模板及其近似模板
圖4中(a)、(b)、(c)表示高斯濾波模板在yy方向、xx方向、xy方向上二階導(dǎo)數(shù)Lyy、Lxx和Lxy對(duì)應(yīng)的值;(d)、(e)、(f)分別表示方框?yàn)V波器對(duì)(a)、(b)、(c)的近似。
為了改變方框?yàn)V波器的模板尺寸構(gòu)造尺度空間,采用3維線性插值法找出極值點(diǎn)確定為特征點(diǎn)。
(2) 確定方向。以檢測(cè)到的特征點(diǎn)為圓心,6s(s為尺度空間值)為半徑畫圓。計(jì)算落在60度扇形區(qū)域內(nèi)點(diǎn)分別在水平方向和垂直方向的Harr小波響應(yīng)值總和,并對(duì)點(diǎn)的響應(yīng)賦權(quán)值,距離特征點(diǎn)越近,權(quán)值越大。以一定的步長(zhǎng)滑動(dòng)扇形區(qū)域,響應(yīng)值最大的所屬扇形區(qū)域即為該中心特征點(diǎn)的方向。扇形區(qū)域滑動(dòng)示意圖如圖5所示。
圖5 扇形區(qū)域滑動(dòng)示意圖
(3) 局部特征描述子。以特征點(diǎn)為中心,構(gòu)建20s×20s的正方形區(qū)域,特征點(diǎn)的主方向?yàn)樵撜叫螀^(qū)域的主方向。將正方形區(qū)域劃分成16個(gè)4s×4s的子區(qū)域,分別計(jì)算子區(qū)域25個(gè)像素點(diǎn)在水平方向和垂直方向上的Harr小波響應(yīng)值,分別為水平方向值之和∑dx、絕對(duì)值之和∑|dx|,垂直方向值之和∑dy、絕對(duì)值之和∑|dy|,其中:dx表示像素點(diǎn)在水平方向(x方向)的Harr小波響應(yīng)值;dy表示像素點(diǎn)在垂直方向(y方向)的Harr小波響應(yīng)值。正方形共有16個(gè)子區(qū)域,故該特征點(diǎn)可以得到64個(gè)特征描述子。特征點(diǎn)描述子如圖6所示。
圖6 特征點(diǎn)的特征描述子
特征點(diǎn)之間的距離通過計(jì)算特征描述子差異的L-2范數(shù)表示。提取的特征點(diǎn)構(gòu)建k-d樹,使用BBF算法搜索每個(gè)塊中的每個(gè)特征點(diǎn)與其余塊中特征點(diǎn)的最近鄰居,若差值小于閾值(設(shè)置為0.04)則認(rèn)為兩特征點(diǎn)匹配。若一塊中的部分特征點(diǎn)與另一塊中的特征點(diǎn)匹配,則初步認(rèn)為兩塊匹配,完成粗匹配。特征點(diǎn)提取與匹配示例如圖7所示。
圖7 特征點(diǎn)提取與匹配示例
塊中特征點(diǎn)粗匹配時(shí)會(huì)由于圖像中的平滑區(qū)域或相似區(qū)域之間像素的相似性而出現(xiàn)特征點(diǎn)誤匹配現(xiàn)象,針對(duì)此現(xiàn)象要進(jìn)行相對(duì)應(yīng)的后處理操作。以圖7為例,圖片大小為800×600,檢測(cè)到的特征點(diǎn)總數(shù)為1 727,匹配特征點(diǎn)數(shù)261,正確的匹配特征點(diǎn)數(shù)為256,占匹配特征點(diǎn)數(shù)98%,故可初步完成篡改檢測(cè)的粗匹配。
剔除特征點(diǎn)匹配時(shí)出現(xiàn)的誤匹配特征點(diǎn)對(duì),采用RANSAC(Random Sample Consensus)算法剔除誤匹配[16-17]。RANSAC是訓(xùn)練模型去除噪聲影響的一種方法,其思想是使用盡可能少的點(diǎn)來訓(xùn)練模型,盡可能多地?cái)U(kuò)大模型參數(shù)的影響范圍。
在匹配特征點(diǎn)集中隨機(jī)選取4個(gè)匹配點(diǎn)對(duì)計(jì)算出矩陣模型,利用模型測(cè)試其余特征點(diǎn)匹配對(duì),計(jì)算滿足模型的特征點(diǎn)匹配對(duì)個(gè)數(shù)與變換誤差,更新迭代矩陣模型與迭代次數(shù),迭代出最優(yōu)矩陣模型,消除誤匹配點(diǎn)對(duì),如式(3)所示。
(3)
式中:通常令h33=1來歸一化矩陣;(x,y)表示特征點(diǎn)對(duì)位置;(x′,y′)為匹配的特征點(diǎn)對(duì)位置;s表示尺度參數(shù)。
二值化圖像顯示匹配塊中的匹配特征點(diǎn)對(duì)。由于匹配特征點(diǎn)對(duì)的特征點(diǎn)間存在空隙,需要將獨(dú)立的匹配特征點(diǎn)對(duì)之間變成可見的連通區(qū)域。形態(tài)學(xué)腐蝕膨脹操作可以填補(bǔ)空隙,連通特征點(diǎn)。形態(tài)學(xué)操作的完成需要使用結(jié)構(gòu)元素,結(jié)構(gòu)元素由0和1組成的矩陣構(gòu)成,本文選用經(jīng)典結(jié)構(gòu)元素B,其表達(dá)式如下:
(4)
對(duì)于腐蝕和膨脹操作,本文選取先膨脹后腐蝕運(yùn)算,即閉運(yùn)算,具有填充特征點(diǎn)之間的空隙、連接臨近特征點(diǎn)、平滑邊界、消除誤判的作用。針對(duì)二值圖像A,進(jìn)行閉運(yùn)算的數(shù)學(xué)特征表達(dá)式[18-19]為:
A·B=(A⊕B)ΘB
(5)
式中:⊕表示膨脹運(yùn)算;Θ表示腐蝕運(yùn)算。
以圖3(b)篡改圖像為例,經(jīng)二值化和閉運(yùn)算后的檢測(cè)結(jié)果如圖8所示。
圖8 圖3(b)篡改檢測(cè)結(jié)果
用MATLAB 2017a驗(yàn)證本文算法的有效性。原始圖像集A選取文獻(xiàn)[20]中的48幅原圖像與MICC_600[10]中的152幅原圖共200幅,選用文獻(xiàn)[20]中的240幅篡改圖像作為篡改圖像集B,數(shù)據(jù)集中圖像的尺寸為389×259到1 632×1 224之間。篡改圖像主要由表1中的攻擊方式以及參數(shù)構(gòu)成。
表1 攻擊參數(shù)設(shè)置
實(shí)驗(yàn)驗(yàn)證檢測(cè)數(shù)據(jù)集中篡改圖像的有效性,分別檢測(cè)無后處理操作的普通篡改和經(jīng)后處理操作的篡改,結(jié)果如圖9-圖12所示。
(a) 原圖像 (b) 篡改圖像 (c) 檢測(cè)結(jié)果圖9 普通篡改檢測(cè)結(jié)果圖
(a) 原圖像 (b) 篡改圖像 (c) 檢測(cè)結(jié)果圖10 抗JPEG壓縮檢測(cè)結(jié)果圖
(a) 原圖像 (b) 篡改圖像 (c) 檢測(cè)結(jié)果圖11 抗添加噪聲檢測(cè)結(jié)果圖
(a) 原圖像 (b) 篡改圖像 (c) 檢測(cè)結(jié)果
(d) 原圖像 (e) 篡改圖像 (f) 檢測(cè)結(jié)果圖12 抗旋轉(zhuǎn)和縮放檢測(cè)結(jié)果圖
圖10顯示本文算法有效檢測(cè)出圖像在JPEG壓縮質(zhì)量因子為90的篡改區(qū)域。圖11顯示篡改圖片在添加噪聲偏差為20的情況下本文算法檢測(cè)效果。圖12顯示本文算法抗旋轉(zhuǎn)和縮放的效果,其中:(b)是在原圖像的基礎(chǔ)上對(duì)篡改區(qū)域旋轉(zhuǎn)60°;(e)是在原圖像的基礎(chǔ)上對(duì)篡改區(qū)域縮放比為500的篡改圖像。從以上檢測(cè)結(jié)果可看出,本文算法可以有效地檢測(cè)出無后處理操作的普通復(fù)制粘貼篡改和經(jīng)后處理操作的篡改。
實(shí)驗(yàn)選擇與文獻(xiàn)[10]、文獻(xiàn)[21]相比較。并選擇準(zhǔn)確率和虛警率作為測(cè)評(píng)標(biāo)準(zhǔn)。準(zhǔn)確率和虛警率定義如下:
(6)
(7)
式中:TPR表示篡改圖像數(shù)據(jù)集中被正確檢測(cè)出篡改圖像的概率;Tforged_true表示篡改圖像數(shù)據(jù)集中正確檢測(cè)出篡改圖像個(gè)數(shù);Tforged表示篡改圖像數(shù)據(jù)集圖像總數(shù);FPR表示原始圖像數(shù)據(jù)集中圖像被檢測(cè)為篡改圖像的概率;Foriginal_false表示原始圖像被檢測(cè)為篡改圖像的個(gè)數(shù);Foriginal表示原始圖像數(shù)據(jù)集圖像總數(shù)。
對(duì)于本文算法和比較算法,用數(shù)據(jù)集A測(cè)試FPR,數(shù)據(jù)集B測(cè)試TPR,實(shí)驗(yàn)結(jié)果如表2所示。
表2 準(zhǔn)確率和虛警率測(cè)試結(jié)果 %
可以看出,文獻(xiàn)[10]中SIFT算法在檢測(cè)出復(fù)制粘貼篡改的同時(shí),由于特征點(diǎn)提取量多、特征向量維數(shù)大,導(dǎo)致虛警率較高。文獻(xiàn)[21]中檢測(cè)算法在特征匹配后使用區(qū)域增長(zhǎng)算法降低虛警率。本文算法在粗匹配時(shí)因先對(duì)圖像分割,以分割塊為目標(biāo)進(jìn)行匹配提高了準(zhǔn)確率,在精匹配階段用RANSAC算法降低誤匹配率。
分別用SURF算法和SIFT算法進(jìn)行特征點(diǎn)提取與匹配,其性能檢測(cè)結(jié)果如圖13所示。
圖13 算法性能比較
本文算法提取圖像SURF特征點(diǎn)與特征描述子,匹配特征點(diǎn)時(shí)用k-d樹和BBF算法結(jié)合降低計(jì)算復(fù)雜度,提高效率,故檢測(cè)效率高于SIFT算法。從圖13可以看出,用SURF算法進(jìn)行特征點(diǎn)提取與匹配時(shí),在添加JPEG壓縮、噪聲、旋轉(zhuǎn)、縮放等后處理操作時(shí)檢測(cè)時(shí)間明顯低于SIFT算法。
現(xiàn)有的復(fù)制粘貼篡改檢測(cè)算法對(duì)于基于塊匹配的算法因提取的特征向量多,存在算法效率低、花費(fèi)時(shí)間長(zhǎng)的問題;基于特征點(diǎn)匹配的算法特征向量提取較少,效率高,但存在漏檢問題。針對(duì)以上問題提出基于超像素分割和特征點(diǎn)匹配結(jié)合的算法。算法對(duì)待檢測(cè)圖像用SLIC超像素分割成不重疊的小塊,以塊為單位進(jìn)行SURF特征點(diǎn)粗匹配,特征點(diǎn)匹配時(shí)將k-d樹和BBF算法結(jié)合提高檢測(cè)效率,精匹配階段用RANSAC算法去除誤匹配,運(yùn)用二值化、形態(tài)學(xué)腐蝕膨脹操作顯示篡改區(qū)域從而達(dá)到匹配復(fù)制粘貼篡改區(qū)域的效果。實(shí)驗(yàn)表明本文算法在檢測(cè)篡改區(qū)域時(shí)提高準(zhǔn)確率,降低誤檢測(cè)率,同時(shí)提高檢測(cè)速度。