徐 代,岳 璋,楊文霞*,任 瀟
(1.武漢理工大學(xué)理學(xué)院,武漢430070; 2.武漢理工大學(xué)自動(dòng)化學(xué)院,武漢430070)
(?通信作者電子郵箱wenxiayang@163.com)
圖像篡改識(shí)別技術(shù)是指針對(duì)數(shù)字圖像偽造過程和痕跡,綜合運(yùn)用圖像處理與識(shí)別方法,結(jié)合圖像特征,發(fā)現(xiàn)并定位被篡改區(qū)域的一類技術(shù),在經(jīng)濟(jì)發(fā)展、政治建設(shè)、法制完善等方面具有重要的物證價(jià)值。國內(nèi)外相關(guān)學(xué)者在篡改識(shí)別技術(shù)種類與普適性方面進(jìn)行了大量研究。Wang等[1]對(duì)近年來篡改圖像被動(dòng)取證技術(shù)進(jìn)行了概述與分析,從語義的低、中、高三個(gè)層次對(duì)這些方法的主要思想進(jìn)行了詳細(xì)介紹,并提出了一些建議;Zhang等[2]提出的基于勒讓德不變矩的方法,通過構(gòu)造模糊不變量對(duì)篡改區(qū)域進(jìn)行評(píng)價(jià)與判斷,具有更強(qiáng)的抗噪聲性和識(shí)別能力;劉一等[3]提出的再采樣算法,在重采樣的基礎(chǔ)上加入了縮放因子和信號(hào)二階導(dǎo)數(shù),實(shí)驗(yàn)結(jié)果表明所提算法具有很好的抗JPEG壓縮能力;王春華等[4]提出了一種基于區(qū)域直方圖和特征相關(guān)匹配規(guī)則算法,針對(duì)圖像復(fù)制-粘貼篡改,通過積分圖像,提高了Hessian矩陣行列式對(duì)圖像特征點(diǎn)的檢測效率;及瑩等[5]針對(duì)尺度不變特征轉(zhuǎn)換(Scale-Invariant Feature Transform,SIFT)算法對(duì)鏡像篡改識(shí)別精度不高的缺陷,通過重組極坐標(biāo)等方法將識(shí)別準(zhǔn)確率提升了30個(gè)百分點(diǎn),進(jìn)一步完善了經(jīng)典識(shí)別體系;鄭繼明等[6]結(jié)合離散小波變換(Discrete Wavelet Transform,DWT)和(Oriented Fast and Rotated BRIEF,ORB)特征提取算法,基于漢明距離匹配相似關(guān)鍵點(diǎn),實(shí)現(xiàn)對(duì)篡改圖像的檢測,同時(shí)可以對(duì)平移、旋轉(zhuǎn)、加噪聲等篡改手段具備一定的魯棒性。這些成果的出現(xiàn)推動(dòng)了圖像防偽研究工作的進(jìn)步,也為后續(xù)的研究積累了最初的理論基礎(chǔ)。
2006年,隨著深度學(xué)習(xí)理論的完善,尤其是逐層學(xué)習(xí)和參數(shù)微調(diào)技術(shù)的出現(xiàn),卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)快速發(fā)展,推動(dòng)了篡改圖像識(shí)別技術(shù)進(jìn)入更高層次的研究。Bayar等[7]開發(fā)了一種新的卷積層形式,用以抑制醫(yī)學(xué)圖像的內(nèi)容并自適應(yīng)地學(xué)習(xí)操作檢測特性,實(shí)驗(yàn)證明其具有良好的識(shí)別效果;常亮等[8]對(duì)卷積神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別方面的研究進(jìn)展與應(yīng)用進(jìn)行了深入分析,直觀地給出了卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用對(duì)圖像理解效果的提升;劉萬軍等[9]提出了基于雙重優(yōu)化的卷積神經(jīng)網(wǎng)絡(luò)圖像識(shí)別算法,對(duì)卷積神經(jīng)網(wǎng)絡(luò)的識(shí)別性能進(jìn)行了優(yōu)化,為后續(xù)多種結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)發(fā)展提供了一種新的思路。
在利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)研究圖像識(shí)別方面,很多成熟的研究方法啟發(fā)了一些值得繼續(xù)研究的方向:張文達(dá)等[10]提出的一種多通路結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)雖然有效降低了下采樣對(duì)特征提取的影響,但是缺少權(quán)值共享,參數(shù)設(shè)計(jì)稍顯復(fù)雜;曲長文等[11]提出多通道卷積神經(jīng)網(wǎng)絡(luò)識(shí)別方法,隨機(jī)融合4個(gè)不同梯度方向的特征,有效降低了識(shí)別錯(cuò)誤率,但是此模型網(wǎng)絡(luò)結(jié)構(gòu)比較復(fù)雜,與單通道卷積神經(jīng)網(wǎng)絡(luò)相比,訓(xùn)練時(shí)間增加了接近一倍,且誤差反向傳播的時(shí)間有待于進(jìn)一步縮短。
結(jié)合現(xiàn)有文獻(xiàn)可知,利用改進(jìn)的R-CNN(Region-Convolutional Neural Network)方法識(shí)別篡改圖像仍處于發(fā)展階段,針對(duì)其中尚未被很好解決的兩個(gè)難點(diǎn):一是對(duì)特征的提取,需要在有針對(duì)性的基礎(chǔ)上盡可能多地包含待檢測區(qū)域的信息,以便更精確地區(qū)分偽造區(qū)域與原圖的差異[12];二是由于梯度優(yōu)化能力直接影響到網(wǎng)絡(luò)層級(jí)和結(jié)果的收斂范圍,梯度算法的合理性設(shè)計(jì)是難點(diǎn)。受以上文獻(xiàn)的啟發(fā),本文在文獻(xiàn)[13]提出的雙向流網(wǎng)絡(luò)的基礎(chǔ)上,提出并融合一些有針對(duì)性的改進(jìn)方法,包括加入信號(hào)特征提取檢驗(yàn)重采樣痕跡,以及提出改進(jìn)的分段AdaGrad自適應(yīng)學(xué)習(xí)率梯度算法,實(shí)現(xiàn)一個(gè)三向流篡改圖像識(shí)別系統(tǒng)。
卷積神經(jīng)網(wǎng)絡(luò)是一種帶有卷積結(jié)構(gòu)的深度神經(jīng)網(wǎng)絡(luò),卷積結(jié)構(gòu)可以減少深層網(wǎng)絡(luò)占用的內(nèi)存量,其3個(gè)關(guān)鍵的操作:局部感受野、權(quán)值共享和pooling池化層,有效減少了網(wǎng)絡(luò)的參數(shù)個(gè)數(shù),緩解了模型的過擬合問題。
2016年提出的Faster R-CNN算法[12],本質(zhì)上相當(dāng)于“基礎(chǔ)特征網(wǎng)絡(luò)+區(qū)域生成網(wǎng)絡(luò)(Region Proposal Network,RPN)+Fast R-CNN”的組合系統(tǒng)。它將Fast R-CNN中的檢測算法替換成為RPN,利用RPN對(duì)region進(jìn)行選取,通過添加額外的RPN分支網(wǎng)絡(luò),將候選框提取合并到深度網(wǎng)絡(luò)中,并創(chuàng)新地提出了“Anchor”的思路用以解決多尺寸圖像目標(biāo)的輸入問題。RPN提取目標(biāo)區(qū)域后,將圖片數(shù)據(jù)送入檢測網(wǎng)絡(luò),通過全連接層(Fully Connected layer,F(xiàn)C)進(jìn)行分類和回歸任務(wù)。在訓(xùn)練階段,通過對(duì)R-CNN進(jìn)行訓(xùn)練,在其與RPN共享卷積層參數(shù)不變的前提下,微調(diào)不共享層(即R-CNN層)的參數(shù),交替訓(xùn)練RPN和檢測網(wǎng)絡(luò),使兩個(gè)網(wǎng)絡(luò)共享卷積層。這一算法在后續(xù)的應(yīng)用檢驗(yàn)中,被證明具有優(yōu)越的識(shí)別性能,一度成為目標(biāo)識(shí)別領(lǐng)域的主流框架之一,也對(duì)相繼產(chǎn)生的R-FCN(Region based on Fully Convolutional Network)、SSD(Single Shot multibox Detector)等產(chǎn)生了直接影響。
算法結(jié)構(gòu)示意圖如圖1。
圖1 Faster R-CNN算法流程結(jié)構(gòu)Fig.1 Flow structure of Faster R-CNNalgorithm-process
用Faster R-CNN算法識(shí)別篡改圖像的具體實(shí)現(xiàn)步驟可以概括為:特征提取、區(qū)域候選網(wǎng)絡(luò)選定、目標(biāo)區(qū)池化、目標(biāo)分類。其中:Softmax分支用于anchors獲得前景(目標(biāo))和背景,Regressor分支用于計(jì)算anchors的邊界框回歸偏移量。使用RPN直接生成檢測框,遍歷卷積網(wǎng)絡(luò)計(jì)算獲得的特征圖,為每一個(gè)點(diǎn)都配備多種anchors作為初始的檢測框。通過后面2次邊框回歸,修正檢測框位置,最終可以實(shí)現(xiàn)目標(biāo)檢測和篡改區(qū)域定位。
盡管Faster R-CNN在針對(duì)篡改圖像識(shí)別方面具有以上種種優(yōu)越的性能,但是其識(shí)別精度仍可以得到進(jìn)一步提高。如果考慮在池化之前從不同的卷積層提取特征,實(shí)現(xiàn)對(duì)多尺度特征的融合,將有效提高對(duì)細(xì)節(jié)部分的檢測精度,從而在一定程度上進(jìn)一步降低篡改區(qū)域的漏警率。
文獻(xiàn)[13]使用的雙流特征網(wǎng)絡(luò)結(jié)構(gòu)(RGB、噪聲),經(jīng)實(shí)驗(yàn)表明,對(duì)經(jīng)歷了幾何變換后(縮放、旋轉(zhuǎn)等)的篡改圖像識(shí)別精度不及對(duì)復(fù)制粘貼和拼接篡改的檢測,存在一定的提升空間;且原文中從SRM(Steganalysis Rich Model)的過濾層中提取噪聲,但是有些圖片恰恰是通過隱寫加入了篡改信息,因此原文方法在去噪過程中會(huì)丟失掉一部分?jǐn)?shù)據(jù)特征,針對(duì)某些情況下的篡改圖片識(shí)別效果未必理想。
針對(duì)因主要特征提取不全、特征采集方式單一導(dǎo)致的識(shí)別精度不理想,以及梯度算法易出現(xiàn)收斂振蕩等問題,本文提出一個(gè)基于Faster R-CNN的三向流特征提取篡改識(shí)別網(wǎng)絡(luò),針對(duì)圖像復(fù)制粘貼、剪切拼接、幾何變換這三大篡改方式進(jìn)行定位與識(shí)別,從RGB特征、背景噪聲對(duì)比差異、傅里葉變換頻譜標(biāo)準(zhǔn)差三個(gè)方面,給出相應(yīng)的判斷依據(jù),將從RGB流、噪聲流和信號(hào)流中提取的特征用一個(gè)多線性池化層整合,進(jìn)一步改進(jìn)這三種模式的空間共線性。
深度學(xué)習(xí)網(wǎng)絡(luò)本身也具有特征提取的功能,但是在處理篡改圖像識(shí)別問題時(shí),需要更加關(guān)注篡改痕跡,而非僅僅關(guān)注圖像本身的內(nèi)容,因此這就要求我們提取并分析更多的特征。如果只利用傳統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)提取特征,想要達(dá)到較高的準(zhǔn)確度,網(wǎng)絡(luò)復(fù)雜度會(huì)很高;如果僅采用簡單網(wǎng)絡(luò),如本文中所用的VGG網(wǎng)絡(luò),識(shí)別效果并不理想[10]。本文提出三向流結(jié)構(gòu),可以充分利用現(xiàn)有的預(yù)訓(xùn)練網(wǎng)絡(luò)和相關(guān)研究成果,綜合考慮三種不同類型的特征,即使不使用復(fù)雜網(wǎng)絡(luò)也能達(dá)到理想的識(shí)別效果。本文在三向流特征網(wǎng)絡(luò)中,加入Faster R-CNN并進(jìn)行端到端的訓(xùn)練,這樣的深度學(xué)習(xí)檢測模型已經(jīng)被證明了在一系列尺度上檢測對(duì)象的良好性能[11-12],其中,RPN負(fù)責(zé)提取可能包含感興趣對(duì)象的圖像區(qū)域,它可以適應(yīng)圖像處理檢測。為了區(qū)分篡改區(qū)域和真實(shí)區(qū)域,利用來自RGB通道的特征捕獲線索,即篡改邊界處的視覺不一致以及篡改區(qū)域和真實(shí)區(qū)域之間的對(duì)比效果。同時(shí),第二個(gè)特征流用來分析圖像中的局部噪聲特征,最后再檢驗(yàn)重采樣痕跡,將Faster RCNN框架以三向流方式適應(yīng)圖像操作檢測。我們研究了三種模式,通過多線性整合來識(shí)別篡改區(qū)域。經(jīng)實(shí)驗(yàn)表明,這三個(gè)流對(duì)于檢測不同的篡改技術(shù)是互補(bǔ)的,識(shí)別精度令人滿意。
本系統(tǒng)的基本處理步驟如下。首先,對(duì)待檢測圖像進(jìn)行建模,將邊界框(bounding boxes)回歸為真實(shí)值(ground-truth);然后,分析圖像中的局部噪聲特征和重采樣痕跡,將RGB圖像通過小波去噪和傅里葉頻譜,提取噪聲特征圖和信號(hào)特征圖,并利用噪聲特征和信號(hào)特征,提供圖像處理分類的附加依據(jù);接著,通過卷積層提取局部特征,三向流共用RPN生成候選區(qū)域(region proposals),通過池化、選取空間特征、對(duì)特征降維,將目標(biāo)區(qū)域調(diào)整到固定尺寸,輸出大小固定的矩形框映射,得到目標(biāo)區(qū)域在三個(gè)流向的特征集合,進(jìn)行多線性池化;最后,將所得結(jié)果輸入到一個(gè)全連接層和一個(gè)Softmax層,網(wǎng)絡(luò)生成預(yù)測標(biāo)簽,表示為cls_pred。
由于VGG-16網(wǎng)絡(luò)具有更快的訓(xùn)練速度和更小的內(nèi)存占用量,更適用于本項(xiàng)目組的初期研究,因此本文采取VGG-16基礎(chǔ)網(wǎng)絡(luò)架構(gòu),提出的三向流算法網(wǎng)絡(luò)結(jié)構(gòu)示意圖如圖2。
圖2 基于Faster R-CNN的三向流網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Structureof three-stream network based on Faster R-CNN
針對(duì)將數(shù)字圖像中某一區(qū)域進(jìn)行復(fù)制并粘貼到同一幅該圖像另一區(qū)域的篡改方式,對(duì)于同幅圖像的復(fù)制粘貼篡改,被復(fù)制區(qū)域的噪聲、色彩和紋理等屬性與目標(biāo)區(qū)域相似,因此可以采取基于局部色彩不變量的檢測方法,通過計(jì)算特征相似度,對(duì)圖像塊像素特征進(jìn)行比對(duì),發(fā)現(xiàn)相似度高或者完全相同的可疑區(qū)域,進(jìn)而實(shí)現(xiàn)圖像檢測。
首先針對(duì)圖像的RGB特征,提取R、G、B分量,然后分別對(duì)其作小波變換。小波變換[14]可以將二維圖像在不同尺度下逐層分解為3個(gè)高頻子帶和1個(gè)低頻子帶,其中低頻子帶集中了原圖像的大部分能量,可以作為最大尺度分解下原圖像的最佳逼近。用小波變換后的低頻子帶代替原圖像,變換后的圖像尺寸為原圖的1 4i(i為小波變換的次數(shù)),從而降低了待檢測圖像的尺寸,減少了計(jì)算機(jī)的運(yùn)行工作量。
用大小為a×a的滑窗對(duì)圖像進(jìn)行分塊,本文取a=8。每一子塊的位置用左上角的像素位置表示。為了進(jìn)一步減少圖像色彩的損失,結(jié)合CMYK模式下的色彩通道轉(zhuǎn)換,根據(jù)灰度值轉(zhuǎn)換公式:Y=0.299R+0.587G+0.114B,求出Y通道的塊數(shù)。然后根據(jù)R、G、B、Y四個(gè)通道求出圖像塊的特征值,包括R、G、B三個(gè)分量各自的均值α(1)、α(2)、α(3),以及按照四種不同方式等分Y通道時(shí),標(biāo)號(hào)1區(qū)域色彩分量占整體的百分比,記為α(4)、α(5)、α(6)、α(7),則一共可以提取 7個(gè)特征值。劃分方式如圖3所示。
圖3 對(duì)Y通道的四種等分方式Fig.3 Four halvingmethods for Y channel
其中:p1、p2為閾值,本文暫設(shè)為0.3。根據(jù)經(jīng)驗(yàn),對(duì)于相似度的判斷,閾值設(shè)置較大會(huì)導(dǎo)致容忍度提高,誤判的幾率變大;設(shè)置較小,漏判的幾率則會(huì)變大。本項(xiàng)目組經(jīng)過多次嘗試,通過分析檢測結(jié)果中篡改區(qū)域的邊界連續(xù)性程度,綜合考量識(shí)別效果,最終選取0.3為最優(yōu)的閾值。M(1)、M(2)、M(3)分別代表R、G、B特征相似度值,M(4)、M(5)、M(6)、M(7)分別代表Y通道四種劃分方式對(duì)應(yīng)的相似度值。文獻(xiàn)[15]中作者又加了一條限制:|i-j|≥α,|j-k|≥α,即事先認(rèn)定兩個(gè)子塊不能是相鄰的。作者給出的解釋是當(dāng)篡改者復(fù)制粘貼時(shí),往往會(huì)將圖像子塊進(jìn)行一定的位移,即大于一個(gè)子塊的長度,而不是緊挨著或重疊一部分,但是這樣設(shè)定并不嚴(yán)謹(jǐn),這主要與所選取子塊的大小有關(guān)。因此本文去掉了這一限制,以提高準(zhǔn)確度與合理性。
當(dāng)式(1)的兩個(gè)條件均滿足時(shí),可以判定原圖和對(duì)比圖相似度較高,即經(jīng)歷了復(fù)制粘貼篡改。
針對(duì)拼接篡改圖像的背景噪聲具有不一致性的特征,本文使用基于圖像背景噪聲相關(guān)性的篡改檢測方法。首先利用小波去噪,得到去噪后的圖像,然后根據(jù)拼接篡改圖和去噪圖像獲得背景噪聲圖像,最后根據(jù)背景噪聲圖像中子塊與周圍鄰域子塊的相關(guān)系數(shù)大小對(duì)篡改圖像進(jìn)行鑒別定位。
具體算法流程如下:
步驟1 對(duì)待檢測圖像作去噪處理。
步驟2 根據(jù)待檢測圖像和去噪后的圖像,得到背景噪聲分布圖像。
步驟3 對(duì)背景噪聲圖像作分塊處理。子塊大小均為a×a,本文取a=8。
步驟4 相關(guān)性檢測:分別對(duì)以圖像子塊Zk(i,j)為中心的8鄰域子塊進(jìn)行相關(guān)系數(shù)計(jì)算,遍歷背景噪聲中每個(gè)子塊。按照式(2)計(jì)算相關(guān)性。
其中Zˉk為Zk(i,j)的均值。
由于圖像未篡改和篡改區(qū)域邊緣臨界處的相關(guān)系數(shù)小于未篡改區(qū)域內(nèi)部的相關(guān)系數(shù)[16],因此可以根據(jù)背景噪聲圖像相鄰子塊的相關(guān)系數(shù)大小來判定圖像篡改并定位。
步驟5 對(duì)子塊進(jìn)行分類,并輸出二值化圖像。
在圖像篡改的過程中,通常會(huì)使用旋轉(zhuǎn)、縮放等幾何變化,這些操作需要運(yùn)用插值等方法對(duì)圖像進(jìn)行重采樣,對(duì)重采樣的檢測可以判斷一幅圖像是否被以某種幾何方式篡改??紤]到重采樣會(huì)導(dǎo)致離散傅里葉變換頻譜發(fā)生明顯變化[17-18],因此本文使用基于傅里葉變換的圖像重采樣檢測,并計(jì)算其標(biāo)準(zhǔn)偏差,根據(jù)不同采樣因子導(dǎo)致的標(biāo)準(zhǔn)偏差的差異,分別對(duì)圖像上采樣和下采樣操作進(jìn)行檢測,以此判斷圖像是否經(jīng)歷過重采樣操作。
首先對(duì)圖像數(shù)據(jù)集進(jìn)行預(yù)處理,將彩色圖像轉(zhuǎn)化為灰色圖像,對(duì)灰色圖像分別進(jìn)行上、下采樣。上采樣因子從1開始,間隔為0.1;下采樣因子從0開始,間隔為0.1。
對(duì)灰色圖像I(x,y)進(jìn)行傅里葉變換:
并按式(3)分別計(jì)算行向量和列向量的標(biāo)準(zhǔn)偏差:
其中m Y表示行向量Y的像素平均值。原始圖像和重采樣圖像經(jīng)過傅里葉變換后,如果傅里葉變換頻譜圖的標(biāo)準(zhǔn)偏差存在比較明顯的差異(本文暫設(shè)大于閾值0.7),則可以認(rèn)定原圖像經(jīng)歷了幾何篡改。
RGB流、噪聲流與信號(hào)流主干卷積網(wǎng)絡(luò)結(jié)構(gòu)相同,并且共享一個(gè)池化層。在不降低性能的前提下,進(jìn)行多線性池化,這樣的優(yōu)點(diǎn)是保留了待檢測圖像數(shù)據(jù)集的空間信息,節(jié)省了內(nèi)存,加快了訓(xùn)練速度。此后,對(duì)L2標(biāo)準(zhǔn)化,然后轉(zhuǎn)入全連接層。
本文沿用文獻(xiàn)[13]中對(duì)RPN的損失函數(shù):
其中:pi表示預(yù)測結(jié)果落在目標(biāo)區(qū)域內(nèi)的概率表示目標(biāo)與非目標(biāo)的對(duì)數(shù)損失,表示回歸損失,R為smooth L1函數(shù)。
由于參數(shù)的更新涉及到損失函數(shù)對(duì)參數(shù)的偏導(dǎo),當(dāng)偏導(dǎo)很小時(shí),參數(shù)更新速度會(huì)變得很慢。均方差損失對(duì)參數(shù)的偏導(dǎo)要用到sigmoid激活函數(shù)的導(dǎo)數(shù),但是sigmoid函數(shù)在其變量值很大或很小時(shí),曲線趨于平穩(wěn),導(dǎo)數(shù)接近于0;而交叉熵對(duì)參數(shù)的偏導(dǎo)無需sigmoid函數(shù),有效避免了參數(shù)更新停滯的問題,這就是交叉熵?fù)p失較均方差損失的優(yōu)勢(shì)所在。
本文基于三向特征流,使用交叉熵?fù)p失進(jìn)行分類,使用光滑L1損失進(jìn)行bounding box回歸。定義總損失函數(shù):
其中:Ltamper代表最終的交叉熵分類損失,它基于來自RGB流、噪聲流和信號(hào)流的多線性池化特征;f1、f2、f3分別對(duì)應(yīng)來自于RGB流、噪聲流、信號(hào)流的ROI特征。
為了得到最優(yōu)的權(quán)值,往往需要選擇相應(yīng)的優(yōu)化算法以得到最小的函數(shù)損失值。而求解最小的函數(shù)損失值,需要先計(jì)算出損失函數(shù)的梯度,然后按照梯度的方向使函數(shù)損失值逐漸減少,再通過對(duì)權(quán)值的不斷更新調(diào)整,使得函數(shù)損失值達(dá)到最小,從而獲得最優(yōu)解。SGD隨機(jī)梯度下降的算法思想是每次隨機(jī)選擇一個(gè)樣本進(jìn)行迭代更新,根據(jù)不同的迭代次數(shù)周期性地將學(xué)習(xí)率進(jìn)行更新。其參數(shù)更新方程為:
其中θ代表學(xué)習(xí)率。每次迭代按照一定的學(xué)習(xí)率θ沿梯度的反方向更新參數(shù),直至收斂。
由于各個(gè)參數(shù)的重要性往往是不一樣的,對(duì)于不同的參數(shù)動(dòng)態(tài)地采取不同的學(xué)習(xí)率效果會(huì)更好,也會(huì)讓目標(biāo)函數(shù)更快收斂。AdaGrad算法就是將每一個(gè)參數(shù)的每一次迭代梯度取平方累加后再開方,用全局學(xué)習(xí)率除以這個(gè)數(shù),作為學(xué)習(xí)率的動(dòng)態(tài)更新。更新方程如式(8):
其中:ε為全局學(xué)習(xí)率;δ為較小的常數(shù),本文設(shè)置其為10-7,以便數(shù)值計(jì)算的穩(wěn)定;r為梯度累計(jì)平方變量;g為梯度。這里的r滿足rt=rt-1+,即給梯度逐元素加一個(gè)平方和項(xiàng),因此學(xué)習(xí)率大的會(huì)變小,而小的會(huì)變大,實(shí)現(xiàn)了對(duì)損失值的下降速度及收斂穩(wěn)定性的控制。
但是,AdaGrad算法更新公式里的梯度累計(jì)平方變量r是建立在歷史數(shù)據(jù)的基礎(chǔ)上的,而其中一部分歷史梯度數(shù)據(jù)對(duì)當(dāng)前學(xué)習(xí)率的影響并不明顯,重復(fù)計(jì)算會(huì)導(dǎo)致不必要的計(jì)算量變大;另外,當(dāng)收斂曲線出現(xiàn)震蕩變化時(shí),缺少進(jìn)一步的優(yōu)化。考慮到在損失函數(shù)收斂到一定范圍內(nèi)時(shí),下降趨勢(shì)會(huì)明顯變慢,過擬合的可能性會(huì)變大,此時(shí)如果將學(xué)習(xí)率調(diào)整到一個(gè)較小的值,則可以有效減少損失函數(shù)在這一范圍內(nèi)的波動(dòng)震蕩,保證其繼續(xù)下降的趨勢(shì)。因此,本文嘗試一種基于AdaGrad算法的改進(jìn)的學(xué)習(xí)策略,保留對(duì)不同參數(shù)差異化學(xué)習(xí)率的算法特點(diǎn),然后加入分段處理,使得當(dāng)收斂震蕩時(shí),學(xué)習(xí)率加快下降。更新公式如式(9):
其中:θ'為上一次更新時(shí)的學(xué)習(xí)率;δ為一個(gè)較小的常數(shù),這里沿用AdaGrad算法的常數(shù)設(shè)置,設(shè)置其為10-7。改進(jìn)的更新公式首先去掉了梯度累計(jì)平方變量r,從而減少了對(duì)歷史數(shù)據(jù)的重復(fù)計(jì)算。其次是充分考慮到損失值的增量變化,當(dāng)損失函數(shù)的增量小于0時(shí),屬于前期正常變化階段,分母采用平方根形式,控制收斂速度;當(dāng)損失函數(shù)的增量大于0時(shí),此時(shí)下降曲線出現(xiàn)波動(dòng),采用分母為平方形式的更新公式,使得學(xué)習(xí)率迅速變小,加快損失函數(shù)的下降,跳過震蕩區(qū)域。通過有監(jiān)督地分段控制收斂速度,可以有效減少收斂曲線在訓(xùn)練終止前的頻繁震蕩,提高收斂精度,同時(shí)可以減少對(duì)歷史梯度數(shù)據(jù)不必要的計(jì)算,加快訓(xùn)練速度。
另外,為檢驗(yàn)收斂效果,引入對(duì)照組,使用Momentum動(dòng)量梯度算法[20]與改進(jìn)的梯度算法作對(duì)比:動(dòng)量梯度算法的原理是當(dāng)本次梯度下降的方向與上次更新量v的方向相同時(shí),上次的更新量能夠?qū)Ρ敬蔚乃阉髌鸬揭粋€(gè)正向加速的作用;當(dāng)本次梯度下降的方向與上次更新量v的方向相反時(shí),上次的更新量能夠?qū)Ρ敬蔚乃阉髌鸬揭粋€(gè)減速的作用。這樣可以使梯度下降時(shí)的折返情況減輕,從而加快訓(xùn)練速度。
參數(shù)更新公式為:
其中dw表示對(duì)w求偏導(dǎo)。
經(jīng)實(shí)驗(yàn)表明,在學(xué)習(xí)率較小時(shí),適當(dāng)?shù)膭?dòng)量能夠起到一個(gè)加速收斂速度的作用;在學(xué)習(xí)率較大時(shí),適當(dāng)?shù)膭?dòng)量能夠起到一個(gè)減小收斂時(shí)震蕩幅度的作用。
本文將AdaGrad算法、改進(jìn)的AdaGrad算法與Momentnum算法作對(duì)比,實(shí)驗(yàn)表明改進(jìn)的AdaGrad算法具有最優(yōu)性能。
為測試本文模型的效果,選取VOC2007和CIFAR-10兩個(gè)圖片數(shù)據(jù)集,利用代碼和PS軟件進(jìn)行批量合成篡改,其中這兩個(gè)數(shù)據(jù)集中用于訓(xùn)練的圖像數(shù)量分別為3 000張和5 000張,測試集圖片數(shù)量分別為499張和1000張。
確定漏檢率(False Negative Rate,F(xiàn)NR)和誤檢率(False Positive Rate,F(xiàn)PR):
其中:FN(False Negative)表示重采樣圖像被檢測為真實(shí)圖像的圖像個(gè)數(shù),TP(True Positive)表示重采樣圖像被檢測為重采樣圖像的圖像個(gè)數(shù),F(xiàn)P(False Positive)表示真實(shí)圖像被檢測為重采樣圖像的圖像個(gè)數(shù),TN(True Negative)表示真實(shí)圖像被檢測為真實(shí)圖像的圖像個(gè)數(shù)。
根據(jù)文獻(xiàn)[11-12]的建議,本文設(shè)定漏檢率和誤檢率均為0.02。在這一范圍內(nèi),可以認(rèn)定識(shí)別結(jié)果是比較準(zhǔn)確的。
設(shè)定初始學(xué)習(xí)率為0.001;用到的四種anchor尺寸分別為82、162、322、642,縱橫比為 1∶1、1∶2、2∶1;池化后的特征尺寸為7×7×1 024;用于RPN訓(xùn)練的小批量數(shù)目為100,測試數(shù)目為300。
實(shí)驗(yàn)流程如圖4所示。
圖4 本實(shí)驗(yàn)算法流程Fig.4 Flowchart of theproposed algorithm in theexperiments
具體流程詳解如下:
1)在自建的數(shù)據(jù)集上分類標(biāo)注篡改圖像類型,分別代入各自的檢測任務(wù)中訓(xùn)練。
2)基于RGB、噪聲、信號(hào)三大特征訓(xùn)練網(wǎng)絡(luò),分類池化。
3)在VGG 16網(wǎng)絡(luò)上進(jìn)行預(yù)訓(xùn)練,并作出分層調(diào)整,將分類層輸出調(diào)整為3。
4)訓(xùn)練參數(shù)。采用基于改進(jìn)的分段AdaGrad梯度算法更新權(quán)重參數(shù),迭代次數(shù)86000次。
5)分別代入兩個(gè)數(shù)據(jù)集測試結(jié)果。
6)框出篡改區(qū)域,并計(jì)算出識(shí)別準(zhǔn)確率,與文獻(xiàn)[13]方法的識(shí)別準(zhǔn)確率相比較。
7)輸出識(shí)別圖像。
4.3.1 不同梯度下降算法的性能分析
為分析本文模型性能,對(duì)三種不同梯度下降法的準(zhǔn)確率和收斂耗時(shí)進(jìn)行了比較分析,結(jié)果如表1所示。
實(shí)驗(yàn)結(jié)果表明,本文改進(jìn)的AdaGrad算法較Momentum算法和AdaGrad算法收斂更快,平均識(shí)別準(zhǔn)確率更高,整體效果更好。另外,給出了動(dòng)量梯度算法和改進(jìn)的AdaGrad梯度算法的收斂曲線對(duì)比圖,如圖5所示??梢姡谟?xùn)練結(jié)束前的后半段,改進(jìn)的AdaGrad梯度算法收斂曲線震蕩明顯更少,整體收斂性能更優(yōu)。
表1 三種梯度算法性能對(duì)比Tab.1 Performance comparison of three gradient algorithms
圖5 兩種梯度算法收斂曲線對(duì)比Fig.5 Convergence curve comparison of two gradient algorithms
4.3.2 篡改識(shí)別結(jié)果比較分析
表2是使用本文模型得到的三種圖像篡改手段的識(shí)別結(jié)果,其中,準(zhǔn)確率與耗時(shí)情況是在兩個(gè)數(shù)據(jù)集上實(shí)驗(yàn)結(jié)果的平均值。實(shí)驗(yàn)表明,三向流網(wǎng)絡(luò)結(jié)構(gòu)對(duì)于三種主要的圖像篡改手段均有比較高的識(shí)別準(zhǔn)確率,其中對(duì)于拼接篡改的識(shí)別準(zhǔn)確率高達(dá)96.2%,且對(duì)縮放篡改的檢測高于文獻(xiàn)[13]方法,實(shí)現(xiàn)了預(yù)期目標(biāo),整體性能良好,具有實(shí)際應(yīng)用及推廣價(jià)值。
表2 針對(duì)三種篡改手段的識(shí)別結(jié)果Tab.2 Recognition resultsfor threetamperingmethods
為衡量不同特征流的重要性與識(shí)別效果,在兩個(gè)數(shù)據(jù)集上應(yīng)用不同的識(shí)別方法進(jìn)行測試,包括單獨(dú)的RGB流、單獨(dú)的噪聲流和本文所用的三向流,三種不同特征流的識(shí)別準(zhǔn)確率對(duì)比結(jié)果如表3所示。可見,單獨(dú)的RGB流和噪聲流不能代表三種篡改行為的全部特征,本文所用的三向流網(wǎng)絡(luò)結(jié)構(gòu)對(duì)篡改圖像的識(shí)別準(zhǔn)確率在兩個(gè)數(shù)據(jù)集上均高于單獨(dú)的特征流網(wǎng)絡(luò)結(jié)構(gòu)。
表3 不同特征提取網(wǎng)絡(luò)結(jié)構(gòu)識(shí)別準(zhǔn)確率對(duì)比Tab.3 Accuracy comparison of different featureextraction network structures
最后,為比較本文的三向流算法的改進(jìn)效果,在數(shù)據(jù)集VOC2007和CIFAR-10上,利用本文所用模型與文獻(xiàn)[13]采用的基于RGB和噪聲特征的雙向流算法,針對(duì)三種不同篡改方式,識(shí)別精度的結(jié)果比較如表4所示。經(jīng)過對(duì)比,本文方法較對(duì)照文獻(xiàn)所用方法,在拼接、縮放和復(fù)制-粘貼三種篡改識(shí)別上均獲得改進(jìn),平均識(shí)別準(zhǔn)確率提高了1.998個(gè)百分點(diǎn)。
表4 與目標(biāo)文獻(xiàn)所用算法的準(zhǔn)確率對(duì)比Tab.4 Accuracy comparisonswith thealgorithms used in thetarget literatures
4.3.3 部分篡改識(shí)別結(jié)果可視化展示
圖6~8分別展示了針對(duì)三種篡改方式的三組不同圖像的實(shí)驗(yàn)結(jié)果。本文把拼接篡改集中放在圖像邊緣,把復(fù)制粘貼篡改放在圖像內(nèi)部,輸出對(duì)比結(jié)果。
圖6 拼接圖像識(shí)別Fig.6 Recognition of stitchingimages
圖7 復(fù)制粘貼圖像識(shí)別Fig.7 Recognition of copying and pasting images
圖8 伸縮圖像識(shí)別Fig.8 Recognition of scaling images
本文提出了一種基于三向流特征提取的改進(jìn)的Faster RCNN算法,將圖像的RGB相似量、背景噪聲對(duì)比差異及傅里葉變換頻譜標(biāo)準(zhǔn)差融入卷積神經(jīng)網(wǎng)絡(luò)特征提取層,經(jīng)實(shí)驗(yàn)表明,針對(duì)拼接、復(fù)制粘貼、縮放三種類型的圖像篡改,均取得了比目標(biāo)文獻(xiàn)更好的識(shí)別效果,也證實(shí)了本算法對(duì)于篡改圖像的識(shí)別具有較好的泛化能力。同時(shí),改進(jìn)了AdaGrad梯度算法,通過建立關(guān)于參數(shù)學(xué)習(xí)率更新的分段函數(shù),有效降低訓(xùn)練終止前的收斂震蕩,實(shí)現(xiàn)了對(duì)收斂速度的控制,可以將其拓展到其他相關(guān)深度學(xué)習(xí)算法。下一步,鑒于RPN訓(xùn)練速度較慢的特點(diǎn),考慮使用YOLO網(wǎng)絡(luò)結(jié)構(gòu),將檢測問題轉(zhuǎn)化為回歸問題,避開區(qū)域生成網(wǎng)絡(luò)對(duì)每個(gè)候選框的精修,從而簡化網(wǎng)絡(luò)結(jié)構(gòu),提高速度,同時(shí)在三向流特征提取的基礎(chǔ)上,又可以保證識(shí)別精度,這將是后續(xù)研究的主要方向。