楚雪玲, 魏為民, 華秀茹, 李思纖, 栗風(fēng)永
(上海電力大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 上海 200090)
盲取證技術(shù)在不知道原始來(lái)源的情況下,利用統(tǒng)計(jì)和幾何特征、插值效應(yīng)或特征不一致可驗(yàn)證圖像/視頻的真實(shí)性。由于JPEG壓縮可能會(huì)覆蓋數(shù)字篡改的某些痕跡,因此許多盲取證技術(shù)僅對(duì)未壓縮的圖像有效。然而,大多數(shù)媒體捕獲設(shè)備和后期處理軟件(如PHOTOSHOP),以JPEG格式輸出圖像,而且互聯(lián)網(wǎng)上的圖像大多是JPEG格式的。因此,對(duì)JPEG壓縮魯棒性研究的盲取證技術(shù)至關(guān)重要。原始JPEG圖像(質(zhì)量因子為QF1)被篡改后通常需要重新壓縮,即將經(jīng)過(guò)數(shù)字篡改后的偽造圖像以不同質(zhì)量因子(QF2)的JPEG格式重新存儲(chǔ),可能會(huì)引入雙重JPEG壓縮的證據(jù)。近年來(lái),許多成功的雙JPEG圖像壓縮檢測(cè)算法被提出。文獻(xiàn)[1-2]分析了篡改前后的雙量化(Double Quantilization,DQ)效應(yīng),發(fā)現(xiàn)經(jīng)過(guò)兩次量化的圖像區(qū)域的離散余弦變換(Discrete Cosine Transfrom,DCT)系數(shù)直方圖一般呈現(xiàn)周期性,不同于單量化區(qū)域的DCT系數(shù)直方圖。文獻(xiàn)[3]識(shí)別了DCT系數(shù)在時(shí)域與頻域的周期性壓縮偽跡,可以檢測(cè)塊對(duì)齊和非對(duì)齊的雙JPEG壓縮。文獻(xiàn)[4-5]提出單壓縮圖像的DCT系數(shù)一般遵循Benford定律,而雙壓縮圖像的DCT系數(shù)則違反了Benford定律。在文獻(xiàn)[5]中,采用DCT首位統(tǒng)計(jì)特征和支持向量機(jī)(Support Vector Machine,SVM)分類(lèi)器相結(jié)合來(lái)對(duì)雙JPEG壓縮檢測(cè)。文獻(xiàn)[6]將雙JPEG壓縮應(yīng)用于隱寫(xiě)術(shù),使用的特征是從低頻DCT系數(shù)的統(tǒng)計(jì)中得到的,不僅對(duì)普通的偽造圖像有效,而且對(duì)使用隱寫(xiě)算法處理的圖像也有效。
然而,上面討論的算法有一個(gè)共同點(diǎn),它們只估計(jì)圖像的壓縮歷史,而不能準(zhǔn)確地指出操作了哪個(gè)區(qū)域。文獻(xiàn)[7]提出的算法是第一個(gè)通過(guò)分析DCT系數(shù)直方圖中隱藏的DQ效應(yīng)來(lái)自動(dòng)定位局部篡改區(qū)域的算法。該算法使用貝葉斯方法估計(jì)了單個(gè)8×8塊被篡改的概率,得到的塊后驗(yàn)概率圖將顯示篡改(單壓縮)區(qū)域和未修改(雙壓縮)區(qū)域的視覺(jué)差異。為了更準(zhǔn)確地定位篡改區(qū)域,文獻(xiàn)[8]利用先驗(yàn)知識(shí),即篡改區(qū)域應(yīng)該是光滑的、聚類(lèi)的,并使用圖像分割算法最小化一個(gè)已定義的能量函數(shù)來(lái)定位篡改區(qū)域。文獻(xiàn)[9]探索了一種新的基于特征的技術(shù),使用殘差的條件聯(lián)合分布進(jìn)行定位,不僅計(jì)算效率高,而且不受場(chǎng)景內(nèi)容的影響。文獻(xiàn)[10]基于文獻(xiàn)[7]提出了更合理的概率模型,計(jì)算了每個(gè)8×8塊被雙重壓縮的可能性,并結(jié)合一種估計(jì)初級(jí)量化質(zhì)量因子的有效方法,比文獻(xiàn)[7]具有更好的性能?;诟倪M(jìn)的統(tǒng)計(jì)模型,文獻(xiàn)[11]提出的方法既可以檢測(cè)塊對(duì)齊的壓縮篡改區(qū)域,也可以檢測(cè)塊非對(duì)齊的壓縮篡改區(qū)域。文獻(xiàn)[12]基于DCT系數(shù)的第一個(gè)數(shù)字特征對(duì)圖像拼接結(jié)果進(jìn)行定位,并使用SVM進(jìn)行分類(lèi)。然而,當(dāng)QF1>QF2時(shí),這些方法的性能很差。
眾所周知,深度學(xué)習(xí)方法可以自動(dòng)學(xué)習(xí)特征并進(jìn)行分類(lèi)。利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)的深度學(xué)習(xí)在語(yǔ)音識(shí)別、圖像分類(lèi)或識(shí)別、文檔分析、場(chǎng)景分類(lèi)等領(lǐng)域取得了很大的成功。對(duì)于隱寫(xiě)分析,文獻(xiàn)[13-14]利用CNN自動(dòng)學(xué)習(xí)特征,捕捉對(duì)隱寫(xiě)分析有用的復(fù)雜依賴(lài)關(guān)系,結(jié)果令人大受鼓舞。事實(shí)上,使用CNN的分層特征學(xué)習(xí)可以學(xué)習(xí)特定的特征表示,具有深度模型的神經(jīng)網(wǎng)絡(luò)也可以有效地進(jìn)行盲圖像取證。
本文提出了一種利用CNN進(jìn)行訓(xùn)練/測(cè)試的方法,來(lái)檢測(cè)雙JPEG壓縮篡改的圖像。為了增強(qiáng)CNN的效果,對(duì)DCT系數(shù)進(jìn)行預(yù)處理。提取DCT系數(shù)的直方圖作為輸入,然后設(shè)計(jì)一維CNN從這些直方圖中自動(dòng)學(xué)習(xí)特征并進(jìn)行概率結(jié)果分類(lèi),并與其他文獻(xiàn)中的算法進(jìn)行性能比較。
利用圖像軟件篡改圖像時(shí),JPEG圖像在篡改完成之后,可能會(huì)使用與原始圖像質(zhì)量因子QF1不同的質(zhì)量因子QF2再一次壓縮存儲(chǔ),即JPEG圖像的雙重壓縮。應(yīng)當(dāng)注意,當(dāng)QF1=QF2時(shí),圖像特性改變不明顯。圖像雙壓縮過(guò)程如圖1所示。首先把原始JPEG圖像解壓縮,即先解碼和反量化;再進(jìn)行逆DCT變換;最后對(duì)解壓縮的圖像執(zhí)行第二次壓縮。
圖1 雙JPEG壓縮過(guò)程
JPEG壓縮是一種基于8×8塊的方案,將DCT系數(shù)應(yīng)用于輸入圖像的8×8塊,然后量化DCT系數(shù),并對(duì)其應(yīng)用舍入函數(shù)。量化系數(shù)進(jìn)一步通過(guò)熵編碼進(jìn)行編碼,量化表對(duì)應(yīng)每個(gè)特定的壓縮質(zhì)量因子QF,QF值為0~100的整數(shù)。QF值較低,表示丟失了更多的信息。DCT系數(shù)的量化是造成壓縮圖像信息丟失的主要原因。
對(duì)給定的JPEG圖像進(jìn)行預(yù)處理。首先,從JPEG頭部提取其量化的DCT系數(shù)和最后一個(gè)質(zhì)量因子,在實(shí)驗(yàn)中,只使用彩色圖像的Y分量;然后,為每個(gè)DCT頻率構(gòu)造一個(gè)直方圖。圖像直流系數(shù)直方圖的分布與交流系數(shù)的直方圖不同,可能會(huì)給特征設(shè)計(jì)帶來(lái)困難,因此本文算法只考慮交流系數(shù)。此外,如果將整個(gè)直方圖直接輸入到CNN分類(lèi)器中,則訓(xùn)練操作會(huì)很復(fù)雜,原因如下:首先,CNN的輸入特征維數(shù)必須一致,而直方圖的大小總是變化的;其次,可能產(chǎn)生過(guò)高的培訓(xùn)計(jì)算成本。為了在不丟失重要信息的情況下降低特征向量的維數(shù),選擇每個(gè)直方圖峰值附近的指定區(qū)間(可能包含大部分重要信息)表示整個(gè)直方圖。使用以下方法提取低頻下的特征集,具體如圖2所示。首先,選取Zig-zag排列的第2~10個(gè)DCT系數(shù)構(gòu)建特征集,僅取對(duì)應(yīng)于{-5,-4,…,4,5}被認(rèn)為是有用的特性。設(shè)B為一個(gè)大小W×W的塊,hi(u)為DCT系數(shù)在第i個(gè)頻率處的直方圖,u在B中呈z字形排列。特征向量集由式(1)組成,通過(guò)上述方法獲得每個(gè)樣本9×11維的特征向量。
圖2 Zig-zag取值示意
XB=[hi(-5),hi(-4),hi(-3),hi(-2),
hi(-1),hi(0),hi(1),hi(2),
hi(3),hi(4),hi(5)]
i∈2,3,4,…,10
(1)
CNN依賴(lài)于3個(gè)概念:局部接受域、共享權(quán)重和空間子采樣[15]。在每個(gè)卷積層中,輸出特征圖通常表示與多個(gè)輸入的卷積,可以捕獲相鄰元素之間的局部依賴(lài)性。每個(gè)卷積連接之后都有一個(gè)池化層,池化層以局部最大化或平均的形式執(zhí)行子采樣,這樣的子采樣可以降低特征圖的維數(shù),進(jìn)而降低輸出的靈敏度[16]。在這些交替的卷積層和池化層之后,輸出特征圖經(jīng)過(guò)幾個(gè)全連接,然后輸入到最終的分類(lèi)層。分類(lèi)層使用一個(gè)softmax連接來(lái)計(jì)算所有類(lèi)的分布。
本文的CNN網(wǎng)絡(luò)結(jié)構(gòu)由2個(gè)卷積層、2個(gè)池化層連接和3個(gè)全連接層組成,如圖3所示。
圖3 CNN網(wǎng)絡(luò)結(jié)構(gòu)
輸入數(shù)據(jù)為9×11維的向量,輸出為兩個(gè)類(lèi)(單壓縮/雙壓縮)概率的分布。對(duì)于卷積連接,將卷積核m×n設(shè)為3×1,卷積核數(shù)量k設(shè)為100,滑動(dòng)步長(zhǎng)設(shè)為1。以第1卷積層為例,輸入數(shù)據(jù)的特征向量為99×1,第1卷積層將這些特征數(shù)據(jù)與100個(gè)3×1的卷積核進(jìn)行卷積,步長(zhǎng)為1。輸出特征為97×1×100,即特征圖數(shù)量為100,輸出特征圖維數(shù)為97×1。對(duì)于池化層,同樣將卷積核m×n設(shè)置為3×1,池化步長(zhǎng)設(shè)置為2,觀(guān)察到這種重疊池化可以防止訓(xùn)練過(guò)程中的過(guò)擬合。每個(gè)全連接層有1 000個(gè)神經(jīng)元,最后一個(gè)的輸出與softmax層連接,可以產(chǎn)生出每個(gè)樣本應(yīng)該被分類(lèi)到每個(gè)類(lèi)的概率。在JPEG圖像偽造檢測(cè)中,只有單壓縮和雙壓縮兩類(lèi)。
網(wǎng)絡(luò)中每個(gè)連接層之間使用ReLU激活函數(shù),激活函數(shù)為f(x)=max(0,x)。在文獻(xiàn)[17]中,使用ReLU激活函數(shù)的深度學(xué)習(xí)網(wǎng)絡(luò)收斂速度是傳統(tǒng)學(xué)習(xí)網(wǎng)絡(luò)的幾倍,對(duì)大型數(shù)據(jù)庫(kù)的訓(xùn)練性能效果更佳。在全連接層中,引入了“dropout”技術(shù)[18]。其核心思想是在訓(xùn)練過(guò)程中從神經(jīng)網(wǎng)絡(luò)中隨機(jī)抽取單元,為有效地組合不同的網(wǎng)絡(luò)結(jié)構(gòu)提供一種方法。使用dropout技術(shù),可以有效地緩解過(guò)擬合,縮短訓(xùn)練時(shí)間。
從Dresden Image Database圖像數(shù)據(jù)庫(kù)[19]中選取tiff格式的500張?jiān)紙D像,70%進(jìn)行訓(xùn)練,30%做測(cè)試,采用QF1為{60,70,80,90,95}進(jìn)行第1次JPEG壓縮,采用QF2為{60,65,70,75,80,85,90,95}進(jìn)行第2次JPEG壓縮,將產(chǎn)生5組共1 750張單壓縮圖片和40組共14 000張雙壓縮圖片,圖像塊大小分別選擇為64×64,128×128,256×256,512×512,1024×1024。實(shí)驗(yàn)環(huán)境為Python3.6,TensorFlow1.8.0.
設(shè)置不同的圖像塊大小,檢測(cè)其在CNN網(wǎng)絡(luò)中不同QF2時(shí)所檢測(cè)分類(lèi)的正確率,結(jié)果如表1所示。
表1 采用本文算法時(shí)QF2在圖像不同尺寸下檢測(cè)的正確率
文獻(xiàn)[20]使用DCT首位統(tǒng)計(jì)特征和SVM分類(lèi)器相結(jié)合進(jìn)行雙JPEG壓縮檢測(cè)。本文中同樣的樣本在文獻(xiàn)[20]算法中檢測(cè)的正確率如表2所示。
表2 采用文獻(xiàn)[20]算法時(shí)QF2在圖像不同尺寸下檢測(cè)的正確率
為了直觀(guān)地觀(guān)察出表1和表2數(shù)值變化的趨勢(shì),將表1和表2數(shù)據(jù)分別生成圖4和圖5。
圖4 采用本文算法時(shí)QF2在圖像不同尺寸下檢測(cè)的正確率
圖5 采用文獻(xiàn)[20]算法時(shí)QF2在圖像不同尺寸下檢測(cè)的正確率
由圖4和圖5可得出共同的結(jié)論:樣本尺寸越大,分類(lèi)檢測(cè)的正確率越高;當(dāng)樣本尺寸大小為1 024×1 024時(shí),正確率都非常高;本文提出的CNN算法性能明顯優(yōu)于文獻(xiàn)[20]中的算法性能。首先,對(duì)于卷積神經(jīng)網(wǎng)絡(luò),樣本尺寸越大,所包含的統(tǒng)計(jì)信息越多,特征提取的也就越多,分類(lèi)器越容易進(jìn)行區(qū)分,所以檢測(cè)正確率越高。其次,QF2值越大,分類(lèi)器分類(lèi)的正確率越高,當(dāng)QF2為95時(shí),檢測(cè)正確率在最大尺寸下達(dá)到100%。當(dāng)QF1 分析JPEG圖像雙壓縮的特征可知,對(duì)于雙JPEG壓縮篡改檢測(cè)而言,第二次壓縮的直方圖與第一次壓縮的直方圖不同,會(huì)出現(xiàn)很明顯的周期值缺失或周期性極大值和極小值,因此本文提出了一種CNN對(duì)JPEG圖像雙壓縮的檢測(cè)算法。將圖像的DCT系數(shù)直方圖作為CNN網(wǎng)絡(luò)的輸入進(jìn)行特征提取,利用深度學(xué)習(xí)可以用深層次網(wǎng)絡(luò)自動(dòng)學(xué)習(xí)到原始數(shù)據(jù)中隱含的關(guān)系,而不需要對(duì)數(shù)據(jù)進(jìn)行“顯式”的預(yù)處理。實(shí)驗(yàn)結(jié)果表明,與現(xiàn)有算法對(duì)比,本文提出的算法檢測(cè)率最高提高了1.3%,證明了該方法在JPEG雙壓縮檢測(cè)性能上的優(yōu)越性。4 結(jié) 語(yǔ)