李小紅,王曉霞
(1.天津天獅學院信息科學與工程學院,天津 301700;2.渤海大學信息科學與技術學院,遼寧 錦州 121013)
所謂圖像篡改,就是通過拼接、粘貼、變換等方式改變原始圖像[1]。在云計算網絡及其移動設備不斷豐富的環(huán)境下,大量網絡圖像面臨著被應用軟件偽造的可能,產生未知圖像篡改。這種經過篡改的圖像會令其表達信息失真,嚴重的會導致安全威脅。例如利用篡改圖像欺騙司法調查,災害鑒定等。圖像篡改檢測就是根據圖像的特征,通過各類算法完成篡改范圍的檢測確定。圖像篡改技術多樣發(fā)展,使一些偽造圖像很難辨別,這也推動了圖像篡改檢測研究的不斷進步。
在當前研究成果中,文獻[2]根據拼接取證,基于QDCT域提取得到Markov特征。此方法主要針對拼接篡改進行分析,但是沒有充分考慮復制粘貼和尺度變換等篡改情況的適用性。文獻[3]基于Y通道DCT系數,創(chuàng)建對應的哈希表,通過哈希表對比確定偽造痕跡。該方法能夠達到像素級性能,但是其針對的是剪切篡改場景,且哈希創(chuàng)建時需要依賴原始圖像。文獻[4]提出了CBAM-RPN卷積網絡,用以改善篡改圖像的特征提取。該方法能夠根據主分支較好的捕獲到偽造信息,同時根據次分支捕獲到噪音信息。現有研究中,很大一部分是針對某種特定篡改場景進行檢測,同時利用圖像屬性和哈希實現偽造識別。這類方法普遍存在適應性較差,圖像格式較為單一,檢測精度易受影響等缺點。
由于卷積神經網絡(CNN)表現出良好的學習與參數整定優(yōu)勢,使得CNN在圖像處理領域被高度重視。CNN能夠擺脫屬性依賴,且具有更好的普適性。另外,CNN中的卷積結構能夠降低深度學習時對資源的消耗,更適合部署于資源寶貴的移動設備端。文獻[5]引入CNN,并將其輸入設定為非重疊圖像區(qū)域;文獻[6]采取元數據來比較圖像在學習網絡里的相似性,文獻[7]設計了多通道CNN,并在其中提取多梯度特征;文獻[8]設計了級聯(lián)CNN,通過低層的補充學習,改善對復雜特征的處理效果。關于CNN在圖像篡改方面的應用研究,當前主要存在以下問題:篡改部分和非篡改部分特征提?。惶荻忍幚韺W絡學習的影響。這些問題的存在也導致現有檢測方法的性能突破。此外,考慮到現有方法CNN網絡層過多,產生大量中間參數和結果,使其對部署環(huán)境資源有著嚴格的約束。于是,本文設計了一種剪枝壓縮CNN,通過剪枝策略實現網絡壓縮。經過壓縮后的網絡具有能夠獲得更好的訓練效果,并且參數與存儲消耗都將明顯減少?;诩糁嚎sCNN,優(yōu)化相應的網絡層,增強篡改圖像特征提取,改善對各類篡改圖像的檢測效果。
在CNN網絡中,將其學習集標記為D={X={x0,x1,…,xn},Y={y0,y1,…,yn}},X為學習網絡IN參數,Y為學習網絡OUT結果;加權集標記為W,假定CNN中一共包含L層,則其對應的加權集可以表示如下
(1)
這里的Ni表示第i層內包含的加權數量。在進行CNN學習時,需要根據集合W的調整,令集合D達到最低損失。學習過程中,會在各層產生大量的中間數據,對應形成大量的加權,參數的增加引發(fā)的復雜度和資源消耗是非線性的,因此,為使其能夠適應移動設備端部署要求,本文對其采取剪枝操作。即在保證CNN學習性能的基礎上,盡可能的裁剪掉W中冗余加權,使剩余加權具有更高的利用密度。采取網絡學習精度作為性能衡量,于是加權裁剪可看做是一個組合優(yōu)化過程。根據加權集W確定解搜索空間是2W,裁剪加權時最優(yōu)解約束為
(2)
其中,W′表示剪枝更新后的加權集;K表示W′內的加權數量;Loss(D|W)表示學習集D對應的損失。為了從大量加權中搜索得到最佳組合,根據重要程度對W內元素進行評價,并依次裁掉其中較低評價值。在設計重要程度指標時,考慮到關聯(lián)程度大的樣本在預測下層網絡過程中具有更大的優(yōu)勢。于是,先求解網絡中神經元關聯(lián)程度,再對其進行由大到小排序,選擇部分較大值作為激活值。該篩選過程可以描述為圖1。其中,i層包含的神經元數量是ni,向j層傳遞的結果是Yi。當第j層和第i層內的神經元存在依賴關系時,將兩層間的加權表示為Wj,i,它的元素wk,l表示第j層內的神經元k和第i層內的神經元l間的加權關系。
圖1 網絡層間的傳播模型
傳播模型中的f(·)表示激活函數,它的具體描述如下
(3)
(4)
根據激活值對學習集內的若干樣本采取分割得到I段,激活值落在第m段的概率記做pfi,m,此時,利用(4)求解出激活值對應的熵為
(5)
Ri=abs(E(wk,lyk,l)·H(f)i)
(6)
利用式(6)配合迭代操作來衡量加權,并進行剪枝,能夠確保剪枝精度和壓縮性能。在迭代過程中,將各層剪枝效果采取橫向對比,根據精度和剪枝效果對其進行反饋調整。雖然每次迭代裁掉的加權數量不大,但是有效保證了每次迭代的精度和合理性。假定層i內的加權總數是ni,層i剪枝率時,迭代總數是di。于是,可以計算出每次被裁剪出去的加權個數,公式為
Numi=pini/di
(7)
剪枝壓縮CNN的步驟可以描述如下:
1)輸入初始CNN模型M0,確定M0的加權矩陣。
2)通過激活值與熵的融合,對學習集內的加權重要程度進行求解,并采取反向排序。
3)開始迭代處理,通過剪枝率控制加權裁剪,同時令其加權歸零。
4)利用前一輪結果,在新一輪迭代時采取調整,保證M0的精度損失最小。
5)迭代達到上限或者剪枝壓縮結束,輸出新的CNN模型Mr。
在對篡改圖像處理的初期,為了盡可能發(fā)現圖像內的像素區(qū)別,本文設計了如下三個原始過濾器
(8)
過濾器設計時要盡可能相似,這樣有利于篡改痕跡的識別?;?8)中的三個過濾器,對其中的每一個經過對稱和變換處理,擴展出18個新過濾器。在對稱處理時,包含水平對稱、垂直對稱、對角對稱。在旋轉處理時,包含90°、180°、270°變換。利用18個過濾器可以得到18個特征圖。由于三通道原因,這里累計將會產生54個加權矩陣。其具體描述如下
Wi=[W((3*i-3)mod 18)+1W((3*i-2)mod 18)+1W((3*i-1)mod 18)]
(9)
Wi的i取值為[1,18]。CNN模型加權服從標準差為0.01高斯規(guī)則。在CNN模型的卷積層上部署過濾器。當該層采取若干數量的過濾器處理輸入時,將會得到相應數量特征索引。此時得到對應的輸出如下
(10)
(11)
pooling(·)為池函數。隨后進入調節(jié)層,在該層限制飽和性。為防止提取特征的惡化,這里通過a和b參數對數據進行線性轉化,公式如下
(12)
(13)
式中,T1與T2均代表限定值。當發(fā)現兩幅圖像的相似性符合(13)條件,意味著存在復制粘貼偽造。對pooling池化層采樣的圖像做傅氏變換,公式如下
(14)
其中,N和K依次代表行、列向量。此時求解出它們的偏差,根據偏差對比,能夠判斷出是否存在尺度變換篡改。
為了實現篡改定位,這里引入相關度處理。其思想是選擇一個圖像塊Ik(i,j),對其周圍的鄰近圖像塊做相關度分析,利用漢明距離得到相關度公式如下
(15)
當圖像塊沒有發(fā)生篡改時,求解出的相關度會明顯小于發(fā)生篡改時的值,這樣,通過相關度比較便可以確定實際的篡改位置。
仿真數據集采用VOC2007,其中包含3000幅可用于網絡學習的圖像?;赩OC2007訓練CNN模型,考慮到圖像篡改檢測的需求,通過程序對數據集樣本進行任意形式的篡改,用于實際測試。
首先,對本文提出的CNN剪枝壓縮性能進行驗證。在不同壓縮率的情況下,對比了三種(文獻[9]、文獻[10]和本文)剪枝壓縮的效果,結果如圖2所示。可以看出,三種方法的曲線趨勢一致,壓縮率越大,剪枝的準確性就越低。由于壓縮率與裁掉的加權呈正相關,所以裁掉的加權與剪枝準確性呈負相關。經過對比,本文方法在同樣壓縮率的情況下,具有更好的剪枝準確性;分析可以得到,在同樣的剪枝準確性時,具有更高的壓縮比。在綜合衡量壓縮率與剪枝準確性后,本文方法能夠獲得更好的剪枝壓縮性能。
圖2 剪枝壓縮性能對比
然后,對提出的剪枝壓縮CNN圖像篡改檢測性能進行主觀驗證。圖3列舉了兩種篡改圖像場景,(a)~(e)依次描述了用于測試的原始圖像、篡改圖像,以及三種方法(文獻[6]、文獻[8]和本文)的檢測結果。其中第一幅測試圖像中包含了拼接、粘貼、尺度變換篡改,第二幅測試圖像中包含了尺度變換篡改。根據篡改檢測結果對比,本文方法能夠準確判斷出圖像中的篡改區(qū)域,并且能夠對篡改區(qū)域的邊緣進行準確描述,進而判斷出篡改區(qū)域所屬類型,相比其它對比方法,具有更好的主觀效果。
圖3 圖像篡改檢測結果主觀對比
最后,對提出的剪枝壓縮CNN圖像篡改檢測性能進行客觀驗證。采取準確度(precision)與F-measure作為評價指標。precision代表檢測范圍內被正確識別出的偽造像素占比。F-measure代表檢測方法準確性與全面性的綜合性能,其計算公式為:
(16)
其中,recall表示召回率。F-measure越大,意味著檢測的綜合性能越出色。
通過對100次檢測結果取平均,得到三種方法(文獻[6]、文獻[8]和本文)的precision、F-measure,以及檢測時間結果,如表1所示。
表1 客觀結果對比
根據篡改檢測的客觀實驗結果,本文方法的precision指標分別比文獻[6]和[8]提高了3.8%和0.7%,F-measure指標分別比文獻[6]和[8]提高了15.13%和1.76%。表明本文方法具有更高的檢測準確度和更好的檢測全面性。另外,由于測試圖像包含多種篡改手段,說明本文方法對于不同篡改方式的圖像,均具有穩(wěn)定的檢測效果。經過檢測時間的對比可以發(fā)現,本文方法的檢測時間僅為文獻[6]的52.67%,文獻[8]的16.82%,顯著降低了CNN圖像篡改檢測的時間復雜度。
本文基于CNN模型提出一種圖像篡改檢測方法,首先針對現有CNN模型層數和參數過多問題,設計了剪枝壓縮策略。通過激活值與熵的融合,以及逐層裁剪,合理的裁剪冗余加權。然后針對剪枝壓縮CNN,設計了相應的網絡層,并對不同的篡改方式和篡改位置進行了分析。最后通過數據集的仿真,驗證了本文提出的剪枝策略具有良好的準確度和壓縮率;所提的篡改檢測方法顯著提升了篡改檢測的準確性和全面性,能夠準確判斷出圖像中的篡改區(qū)域,并且能夠對篡改區(qū)域的邊緣進行準確描述;顯著降低了篡改檢測時間和復雜度,更適合于移動設備端的部署應用。