魏偉一,王婉茹,趙毅凡,陳 幗
(西北師范大學計算機科學與工程學院,甘肅 蘭州 730070)
各種修圖軟件的廣泛使用可以很方便地實現(xiàn)圖像內(nèi)容修改,因此在新聞、雜志和司法等領域,判斷圖像真?zhèn)畏浅V匾?。檢測圖像、視頻是否經(jīng)過篡改的取證技術成為了一個重要的研究方向,圖像復制粘貼篡改檢測是檢測一幅圖像中是否存在多個相同區(qū)域。一般來說,偽造檢測都遵循預處理、特征提取、特征匹配和偽造定位的經(jīng)典流程。復制粘貼篡改檢測技術主要分為基于塊的特征提取和基于關鍵點的特征提取2類。
在基于塊的復制-粘貼篡改檢測方法中,預處理一般分為規(guī)則塊劃分和不規(guī)則塊劃分2種方法。前者將圖像直接劃分為重疊的或非重疊的規(guī)則分塊;后者一般是指根據(jù)鄰近區(qū)域像素的一致性將圖像劃分成不規(guī)則的超像素塊,然后圖像塊經(jīng)過如極復指數(shù)變換PCET(Polar Complex Exponential Transform)[1]、離散余弦變換DCT(Discrete Cosine Transform)[2]或離散小波變換DWT(Discrete Wavelet Transform)后得到塊內(nèi)特征并匹配。為降低塊匹配的時間復雜度,Cozzolino等人[3]提出利用快速且有效的近似最近鄰搜索算法(PatchMatch)定位篡改區(qū)。Novozmsk等人[4]推導出一個基于JPEG的約束,圖像中的某些塊必須滿足這個約束才能被確定是篡改區(qū)域,但這種方法只適合JPEG格式的圖像。Pun等人[5]首先對超像素使用局部韋伯描述符WLD(Weber Local Descriptor)提取特征進行粗匹配,再將圓形塊進行離散Fourier-Mellin變換得到精確匹配的結果?;趬K的特征提取方法在小區(qū)域的篡改檢測中準確性較好,但時間復雜度較高,對仿射變換、大尺度的幾何變換等各種攻擊的魯棒性較差。
關鍵點具有尺度不變性、縮放不變性和較好的魯棒性等優(yōu)點,因此被廣泛應用于計算機視覺任務中。在基于關鍵點的篡改檢測方法中,以每個關鍵點周圍區(qū)域的像素作為輸入進行關鍵點的特征描述,比較常用的關鍵點提取方法有SIFT(Scale-Invariant Feature Transform)[6]、Harris[7]、SURF(Speeded Up Robust Features)[8]和AKAZE(Accelerate KAZE)[6]等。Lin等人[7]提出了一種評價聚類方法,結合混合關鍵點可以檢測篡改。Alhammadi等人[8]通過結合單圖像超分辨率SISR(Single Image Super-Resolution)算法設計了一種用于篡改檢測的super-SURF算法。Liu等人[9]利用K-means聚類將圖像分為紋理區(qū)域和平滑區(qū)域后,分別提取不同的特征點檢測篡改區(qū)域,這種在不同區(qū)域用各自特征點進行檢測得到的結果容易受分割區(qū)域的影響。為了得到更多的特征點,Li等人[10]通過降低對比度閾值和放大圖像獲得更多的特征點。肖斌等人[11]提出使用結構張量屬性將超像素塊分組并在組內(nèi)進行SIFT塊內(nèi)結構匹配,但是這種方法只可以將圖像分割成平滑區(qū)、過渡區(qū)和紋理區(qū)。相比基于塊的檢測方法,通?;谔卣鼽c的檢測方法的速度要快得多,但是基于特征點的方法在檢測小區(qū)域或平滑區(qū)域的篡改時精度較低。因此,結合兩者優(yōu)勢可得到更好的檢測結果。
以上2種檢測方法都屬于傳統(tǒng)的復制粘貼篡改檢測方法,隨著深度學習和神經(jīng)網(wǎng)絡方法的廣泛使用,新的篡改檢測方法不斷涌出。Muzaffer等人[12]以圖像均勻塊作為AlexNet神經(jīng)網(wǎng)絡的輸入提取第5層特征并降維得到每個圖像塊的特征。Liu等人[13]利用卷積核網(wǎng)絡進行復制-粘貼偽造檢測,但檢測得到的非篡改區(qū)比較多。Agarwal等人[14]使用簡單線性迭代聚類SLIC(Simple Linear Iterative Clustering)劃分超像素,然后使用VGGNet(Visual Geometry Group Network)提取超像素內(nèi)的特征。雖然基于神經(jīng)網(wǎng)絡的篡改檢測方法可以得到較好的效果,但是訓練時間不理想,并且一部分復制-粘貼篡改常發(fā)生在圖像不規(guī)則的小區(qū)域中,導致檢測精度不高。
一方面,現(xiàn)有的方法在提取特征點時大多直接在整幅圖像降低對比度閾值,或劃分平滑、紋理和過渡區(qū)域后再分別在不同的區(qū)域使用不同的對比度閾值,這樣難以根據(jù)不同的區(qū)域特性使用合適的閾值;另一方面,特征提取多在灰度圖像上進行,沒有利用圖像的色彩信息。因此,針對現(xiàn)有算法存在的問題,結合基于特征點的方法和基于塊的方法的優(yōu)勢,本文使用自適應形態(tài)重建AMR(Adaptive Morphological Reconstruction)算法[15]分割超像素并計算超像素的顏色矩;然后將圖像聚類成多個子區(qū)域,在不同的子區(qū)域中自適應使用不同的對比度閾值提取足夠多的特征點。四元數(shù)矩陣對圖像的色彩信息有良好的表達效果,并且不是單一的顏色特征,因此本文提出在特征點周圍用四元數(shù)矩陣構建局部高斯金字塔提取Hu矩特征。對圖像的特征向量經(jīng)過2NN(2 Neareast Neighbour)匹配處理后,利用估計仿射變換RANSAC(RANdom SAmple Consensus)消除錯誤匹配,最后結合Delaunay算法有效定位出偽造區(qū)。
在提取一幅圖像特征點時,本文稱高熵區(qū)特征點密集而低熵區(qū)特征點較少的現(xiàn)象為“特征點分布不均勻”效應?,F(xiàn)有解決這一效應的方法大多通過直接降低圖像對比度閾值來得到更充分的特征點,但這樣會給高熵區(qū)增加過多的特征點,從而使后續(xù)的特征匹配過程更加復雜。因此,本文提出基于顏色矩的區(qū)域劃分和四元數(shù)Hu矩的彩色圖像復制-粘貼篡改檢測算法,算法過程如圖1所示。
Figure 1 Flowchart of the proposed algorithm圖1 本文所提算法流程圖
復制-粘貼篡改檢測中常見的超像素分割方法有SLIC、分水嶺分割和基于熵率法等,但是這些超像素分割方法的參數(shù)不易確定。而AMR分割算法無需指定固定參數(shù),且對尺度變化魯棒、計算時間復雜度較低,因此本文使用AMR進行超像素分割。SLIC和ARM的分割結果如圖2所示,可看出AMR能提供更好的分割結果。
Figure 2 Segmentation results of SLIC and AMR圖2 SLIC與AMR分割結果對比
2.2.1 超像素顏色矩提取
顏色矩是一種簡單有效的色彩特征表示方法,由一階矩、二階矩和三階矩組成,計算方式如式(1)~式(3)所示:
(1)
(2)
(3)
其中,pi,j表示彩色圖像第j個像素的第i個顏色分量;N表示圖像中的像素個數(shù);μi,σi和Si分別為一階矩、二階矩和三階矩。
人眼觀看物體時最先看到的是物體的明暗變化,這種明暗感知被數(shù)字化到Lab顏色模型中的L通道,因此本文在L通道計算顏色矩Fcolor,組成一個3維直方圖向量,如式(4)所示:
Fcolor=[μL,σL,sL]
(4)
2.2.2 基于密度的超像素區(qū)域劃分
一幅圖像中,超像素是局部區(qū)域中相似像素的集合,使用顏色矩可以表達圖像超像素的顏色分布,所以本文將顏色矩作為超像素的特征。常用的聚類算法有K-means、基于密度的聚類DBSCAN(Density-Based Spatial Clustering of Applications with Noise)和凝聚層次聚類等[16]??紤]到DBSCAN聚類算法可通過控制2個參數(shù)實現(xiàn)聚類,所以提出用DBSCAN算法對超像素的顏色矩進行聚類,以實現(xiàn)區(qū)域劃分。另外,本文在聚類算法中加入輪廓系數(shù)[17]評價指標,可以讓不同的圖像根據(jù)自身的顏色矩特征自適應聚類。聚類的結果如圖3所示,可以看出根據(jù)顏色矩自適應劃分可以將圖像分割成多個不同的區(qū)域,便于后續(xù)根據(jù)區(qū)域特性提取均勻特征點。
Figure 3 Results of adaptive region division圖3 自適應區(qū)域劃分結果
2.2.3 均勻SIFT特征點提取
為使特征的描述符具有尺度、縮放、旋轉(zhuǎn)甚至仿射不變的特性,Lowe[18]提出了一種圖像局部特征描述的算子SIFT算法。SIFT特征點的檢測與特征描述過程主要包括:尺度空間檢測;確定特征點的位置及尺度;確定特征點方向;生成128維特征向量。
在視覺處理中,基于特征點的檢測方法可以反映一幅圖像的局部特征。但是,一幅圖像中的特征點大多集中在高熵區(qū)域,容易導致特征點分布不均勻(如圖4c所示),這樣不易發(fā)現(xiàn)較平坦區(qū)域的篡改。因此,Wang等人[19]提出通過降低對比度閾值來得到更多的特征點,但如圖4d所示的平滑區(qū)域“特征點分布不均勻”問題仍未得到有效解決。
Figure 4 Results of feature points extraction圖4 特征點提取結果
雖然通過降低對比度閾值可以得到充足的特征點,但其缺點是對比度閾值難以確定。如果對比度閾值設置較大,會導致特征點不足,篡改定位不全;若對比度閾值設置較小,會導致特征點過多,使后續(xù)特征點匹配過程更加復雜。所以,本文提出一種動態(tài)調(diào)整對比度閾值以得到均勻特征點的特征點密集度評價算法,算法流程如圖5所示。
Figure 5 Flowchart of the evaluation algorithm for feature point density圖5 特征點密集度評價算法流程圖
本文用區(qū)域大小和特征點個數(shù)之間的關系描述一個區(qū)域內(nèi)特征點的密集程度,即特征點密集度,如式(5)所示:
Dense=sizeregion/siftnum
(5)
其中,sizeregion表示區(qū)域大小,siftnum表示區(qū)域內(nèi)的特征點數(shù)量。
利用本文的特征點密集度評價算法提取的特征點結果如圖4f所示,可見動態(tài)改變對比度閾值可以得到更均勻的特征點。
特征點是一種局部梯度特征,非紋理區(qū)域一般較平坦,梯度值較小,直接使用特征點匹配會造成較多的錯誤;并且SIFT特征點的提取是在灰度圖像中進行,忽略了色彩信息,借助四元數(shù)可以將一幅三通道的RGB彩色圖像經(jīng)過計算融合到一個通道中,保存了大量的色彩信息,因此本文提出提取特征點的局部四元數(shù)Hu矩特征,以表現(xiàn)特征點的色彩信息。
2.3.1 四元數(shù)
四元數(shù)是一種超復數(shù),有3個虛部和1個實部。在傳統(tǒng)的四元數(shù)表示方法中,一般令四元數(shù)的實部為0。Wei等人[20]結合了信息熵、顏色和亮度等圖像信息,根據(jù)人類視網(wǎng)膜的視覺感知結構提出了一種新穎的四元數(shù)表達方式。相比傳統(tǒng)的表示方法,此四元數(shù)不僅利用了四元數(shù)的實部,并且可以將不同的顏色通道更好地關聯(lián)在一起,如式(6)所示:
Q=H+RGi+BYj+Ik
(6)
其中,H表示信息熵,RG表示R和G顏色空間的差值,BY表示B和Y顏色空間的差值,I值表示圖像的亮度。具體計算如式(7)~式(13)所示:
R=r-(g+b)/2
(7)
G=g-(r+b)/2
(8)
B=b-r+g/2
(9)
Y=(r+g)/2-|r-g|/2-b
(10)
RG=(r-3g)/2
(11)
BY=2b-r-g+|r-g|/2
(12)
I=(r+g+b)/3
(13)
其中r,g,b表示紅綠藍3種顏色值。
2.3.2 Hu不變矩
Hu矩具有平移不變性、旋轉(zhuǎn)不變性和縮放不變性,因此使用Hu矩可以對圖像的像素強度進行有效度量。為增強特征描述符,在特征點的周圍取n×n鄰域構建高斯金字塔并得到金字塔各層的四元數(shù)矩陣,最后計算各層Hu矩并使用局部熵比融合金字塔的各層Hu矩。
(1)對于離散圖像,圖像的(p+q)階原點矩可以表示如式(14)所示:
(14)
其中,ρ(x,y)表示圖像函數(shù),Row表示圖像的行,Col表示圖像的列。
(2)圖像的質(zhì)心坐標計算如式(15)所示:
(15)
其中,m00表示零階原點矩,m10和m01表示一階原點矩。
(3)圖像的(p+q)階中心矩可表示為式(16):
p,q=0,1,2,…
(16)
(4)為抵抗尺度變化,利用零階中心矩u00對各階中心距進行歸一化處理,得到歸一化中心矩:
(17)
其中,m=(p+q)/2+1。
(5)利用二階、三階中心矩可以導出如式(18)~式(24)所示的7個不變矩:
H1=η20+η02
(18)
(19)
(20)
(21)
H5=(η30-3×η12)×(η30+η12)×
(3×η21-η03)×(η21+η03)×
(22)
(η20-η02)+4×η11×(η30+η12)×
(η21+η03)
(23)
H7=(3×η21-η03)×(η30+η12)×
(3×η12-η30)×(η21+η03)×
(24)
最終Hu矩特征用式(25)表示:
FHu={H1,H2,H3,H4,H5,H6,H7}
(25)
2.3.3 局部熵比Hu矩特征提取
由于金字塔不同層的同一特征表示的信息量不同,因此需要計算每層的信息熵[21]與逐層總和的比值,并對各層得到的Hu矩特征加權,使局部Hu矩特征更加魯棒。
(1)將第k層中的局部信息熵λk進行量化,如式(26)所示:
(26)
(2)將量化后的比例作為每層Hu矩特征的權重,并進行累加求和,得到最終的局部Hu矩特征描述,如式(27)所示:
FHu=λ1FHu1+λ2FHu2+…+λkFHuk
(27)
將得到的128維SIFT特征與局部7維Hu矩特征級聯(lián),這樣對于每一個特征點,形成了一個新的135維的特征描述子:F=[FSIFT,FHu]。在特征匹配時,用2NN算法進行特征間的相似性度量。先計算某一特征與其它特征向量之間的歐氏距離得到距離集合D,并將D中的距離從小到大排序得到n-1個特征;然后計算最相近的2個距離的比值,如果比值小于T_match,說明2個特征匹配,匹配結果如圖6a所示。但是,特征經(jīng)過2NN匹配后仍可能存在誤匹配,本文通過估計仿射變換RANSAC消除錯誤匹配,結果如圖6b所示。
Figure 6 Results of feature matching圖6 特征匹配結果
本文在零均值歸一化互相關ZNCC(Zero-mean Normalization Cross Correlation)的基礎上提出一種準確定位篡改區(qū)的新算法。
2.5.1 零均值歸一化互相關系數(shù)
從圖6a的第3列和圖6b的第3列可以看出,經(jīng)過RANSAC后仍存在部分錯誤匹配,所以計算匹配的特征點R(i,j)周圍鄰域的ZNCC系數(shù)去除孤立點并用于后續(xù)的定位,計算如式(28)所示:
(28)
其中,xi和yi分別表示2個樣本在模板上的值,μx和μy表示均值,σx和σy表示標準差,n表示模板中像素的個數(shù)。
如果R(i,j)小于給定的ZNCC閾值T_ZNCC,則鄰域置為1。在本文實驗中,取以特征點為中心的10×10鄰域。
2.5.2 Delaunay算法
將原圖再次使用SLIC算法[22]進行超像素分割,利用SLIC中的K-means對得到的匹配特征點進行聚類,如果每個標簽類別中特征點的個數(shù)少于3個,則視為孤立點,舍棄;否則,使用Delaunay算法[23]提取離散點的邊界。Delaunay算法是一種邊界輪廓提取算法,可以滿足全局和局部最優(yōu)的要求。如圖7所示,該算法在每個超像素中找到離散的點,用Delaunay三角形連接離散點的外側框線,分別得到連通區(qū)域,最后填充連通區(qū)域,并進行形態(tài)學處理定位出最終的篡改區(qū)。
Figure 7 Delaunay algorithm圖7 Delaunay算法
GRIP數(shù)據(jù)集[1]和FAU數(shù)據(jù)集[24]中包含平滑區(qū)、非平滑區(qū)的篡改,因此本文選擇在這2個公共數(shù)據(jù)集上進行實驗。GRIP數(shù)據(jù)集中包含80幅篡改圖像和80幅真值圖像,每幅圖像的尺寸大小均為768×1024像素。FAU數(shù)據(jù)集中包含48組圖像,其中包含旋轉(zhuǎn)和尺度不同攻擊的圖像共計720幅,此數(shù)據(jù)集中的圖像大小為300×420像素到2592×3888像素不等。
使用的評價標準分別為精確率P(Precision)、召回率R(Recall)及F值[24],其定義如式(29)~式(31)所示:
(29)
(30)
(31)
其中,NTP是檢測的結果中正確檢測為篡改區(qū)的像素數(shù)目,NFP是檢測的結果中錯誤檢測為篡改的像素數(shù)目,NFN是檢測結果中未檢測出的像素數(shù)目。
在本文所提的算法中,參數(shù)的設置對篡改結果的檢測至關重要,因此在實驗中分別選擇20幅包含非平滑區(qū)域篡改圖像和20幅包含平滑區(qū)域篡改的圖像,在以下幾個參數(shù)的約束下進行實驗:在提取密集特征點時,特征點密集度閾值越小得到的特征點越緊密,但是同時會降低特征點提取效率,通過實驗發(fā)現(xiàn),設特征點密集度T_dense為2是一個很好的折衷方案;在局部熵比Hu矩特征的提取過程中,構建的局部高斯金字塔的層數(shù)設為3;使用2NN算法進行特征匹配時,根據(jù)實驗結果分析,匹配閾值過大會增加誤匹配,過小會使得篡改區(qū)域的定位不完整,因此本文將特征的匹配閾值T_match設為0.4;在定位階段,為判斷特征點的相關性以去除孤立點,進而使用Delaunay算法進行篡改區(qū)域定位,將零均值歸一化互相關系數(shù)T_ZNCC設為0.5;在最后使用Delaunay算法定位時,考慮到可能將相鄰區(qū)域中的特征點視為同一類,所以將篡改的圖像再次使用SLIC超像素分割算法,初始化超像素個數(shù)為100,300,500和800,分別進行篡改定位實驗,最終發(fā)現(xiàn)超像素個數(shù)為100時邊緣處理的效果最好,如圖8所示。
Figure 8 Comparison of different number of superpixels圖8 不同超像素個數(shù)對比圖
Figure 9 Detection images of comparative algorithms圖9 算法檢測結果對比
通過數(shù)據(jù)集上的實驗可以看出,本文算法比文獻[10,11]的算法更加精確。圖9為對比算法的5組結果圖。表1將本文算法與其他算法進行了對比,可看出本文算法的精度要比文獻[10,11]算法的高。這是因為文獻[10]在特征點提取過程中使用了固定閾值,從而得到的特征點不充分,提出的密集度特征點密集度評價算法相比于文獻[10]得到的特征點更加均勻,另外還考慮到特征點局部的顏色信息,提取局部熵比四元數(shù)Hu矩特征,相比文獻[10,11]只用到的SIFT特征更加魯棒,特征描述符具有更準確的描述性。在篡改定位階段,從圖9可以看出,在特征點聚類后使用Delaunay算法定位,得到的定位結果更準確。因此,對比這2種算法,本文算法具有更好的匹配結果和篡改定位效果。
本文分別測試了不同縮放、旋轉(zhuǎn)等攻擊下本文算法和文獻[10,11]算法的檢測結果,如圖10所示。從圖10可以看出,在應對旋轉(zhuǎn)和縮放攻擊時,相比文獻[10,11]算法,本文算法取得的效果更好。
Table 1 Detection results of different algorithms表1 不同算法檢測結果對比
Figure 10 Attack comparison results of different algorithms圖10 不同算法的攻擊效果對比
為得到均勻的特征點,本文提出一種基于密集度的自適應特征點提取算法,先通過自適應聚類分割區(qū)域,根據(jù)每個區(qū)域的特征點密集度動態(tài)調(diào)整對比度閾值,從而得到密集的特征點;提出在特征點的周圍計算局部熵比四元數(shù)Hu矩特征,以增強特征描述的魯棒性,增加特征描述符的顏色信息;針對特征匹配后存在的誤匹配,通過估計仿射變換矩陣去掉錯誤匹配;在篡改定位階段,通過計算零均值歸一化互相關系數(shù)去掉孤立點,并使用Delaunay算法得到準確的定位結果。實驗結果表明,本文算法不僅可以自適應地將圖像分割成不同的區(qū)域,并且在特征提取、特征匹配和篡改定位上都得到了更好的效果。此外,本文算法在應對旋轉(zhuǎn)、縮放攻擊上也都表現(xiàn)出了較好的魯棒性。