◆劉俊伯 馬 源 魏 堯 和嘉鵬
(華東理工大學信息學院 上海 200237)
隨著當今互聯網技術的飛速發展,數字圖像已成為當下時代主流的信息傳輸方式,應用也極為廣泛,由此也產生了諸如圖像篡改等網絡安全問題。圖像篡改主要是一部分人為了達到某種目的,而使用圖像處理軟件隨意地改變圖像內容以達到某種惡意的目的或獲取利益。篡改后的圖像具有一定的安全隱患,這些惡意行為不僅影響人們的日常生活,甚至會危及國家安全。通常,篡改后的圖像能達到以假亂真的視覺效果,因此,研究針對數字圖像的篡改認證取證技術就顯得尤為重要。
圖像篡改檢測技術分為主動檢測技術和被動檢測技術。主動檢測技術指的是預先在圖像中嵌入某種數字簽名、數字水印等信息,接收方通過提取該類信息來檢測所得信息是否與發送方的信息一致,以此來判斷圖像是否被篡改。而被動檢測技術則是通過提取數字圖像的各特征(如DC、AC系數),來判斷圖像是否被篡改。卷積神經網絡(Convolutional Neural Network,CNN)在模式識別和圖像分類等領域有著廣泛的應用。本文選用深度學習的CNN網絡來實現篡改檢測,改變了傳統圖像特征提取的方法,取得了很高的檢測率,具有一定的新穎性。
JPEG雙壓縮指的是用兩個不同的質量因子 QF(Quality Factor)對同一張圖片分別進行前后兩次的壓縮。在雙壓縮時,原始圖像首先被解壓縮,即先解碼和反量化,再進行逆DCT變換,再把進行過以上操作的圖像進行第二次壓縮操作,過程圖1所示。
由于DCT系數值的統計直方圖在經過JPEG雙壓縮之后會出現一定的周期性,其中JPEG圖像二次壓縮后的AC系數值的直方圖會呈現出周期性的高低交錯,而一次壓縮的JPEG圖像就不會有此特性。因此,本文把這種二次壓縮后的JPEG圖像統計特性的改變稱為“DQ效應”(Double Quantization)。通過對DCT系數直方圖進行傅立葉變換,這時經過JPEG二次壓縮直方圖頻譜圖的兩邊,小幅度上依然會有極值出現,而經過JPEG一次壓縮的沒有這個特點。這些特性即是進行JPEG篡改取證的重要理論依據,我們發現JPEG雙壓縮會讓DCT系數的AC交流分量值出現特殊的規律:(1)如果QF1>QF2,會導致系數值缺失且具有周期性;(2)如果QF1≤QF2,會導致極值的周期性。JPEG一次壓縮過的圖像的直方圖類似是拉普拉斯或廣義高斯分布,JPEG二次壓縮會破壞這種情況[3]。綜上所述,根據JPEG雙壓縮后敏感的系數特征,其具體實現算法如下:

圖1 JPEG雙壓縮流程[1]
(1)圖像分塊的離散余弦變換(BDCT變換):
首先對輸入的JPEG圖像進行無重疊的8×8的分塊,圖像邊緣不足8×8的部分用0補值,并對每一小塊分別進行離散余弦變換。將結果四舍五入至整數。對于任意8×8塊的離散余弦變換的公式為:

上式中,u,v∈ [1,7],且f(x,y),F(u,v)分別表示離散余弦變換前后的圖像。
(2)對每一塊提取系數構建特征向量:
在全圖圖像塊中,如果將數據直接輸入網絡,將很難確定這種輸入數據的方式,且增加了訓練的計算量。冗余信息會影響到CNN特征表達的結果,故讓代表圖像特征最多嘴密集部分的系數代入模型可以使之有效實現(由于DC系數值分布導致不能很好地設計特征的取值,所以主要考慮了 AC系數),進而對得到的DCT系數矩陣進行Zig-zag排序處理,具體方式如圖2所示。
按Zig-zag順序取第2-11像素塊,統計每一個像素塊中出現的系數值為{-11,-10,…,0,…,10,11}內共23個整數出現的次數,構成一個10×23表示的特征向量。用Q表示規定大小的塊,則表示為第i個頻率處DCT系數值為u的統計值,Zig-zag提取圖像塊具體位置如表1所示。
(4)卷積神經網絡設計
神經網絡的構建方面,本例采用了經典的CNN網絡,經過實驗發現八層結構學習效果較好。訓練數據在輸入之前,先進行統一的標準化處理,在兩個全連接層處采用Dropout技術來抑制網絡對訓練數據過擬合,并使用 Adam算法(Adaptive Moment Estimation)來對實驗參數進行更新,最后對學習率、卷積核大小等超參數使用網格搜索算法來調優,得到了最終的模型,具體內容如圖3所示。
訓練集采用了Github上用戶@namtpham提供的圖像篡改數據集 CASIA v2.0[4],其中包含各種色彩鮮明的動物圖像共 7491張。從中隨機選取1100張作為訓練圖像;測試集采用了從公共數據庫[5]選取的鳥類圖像,共200張。運用重疊分塊去處理每張圖片。初始塊大小設置為64×64,分塊的位移為64。從圖像篡改取證的角度出發,依次去驗證算法對 JPEG雙壓縮的篡改檢測,觀察其能否區分開一次壓縮的圖像和二次壓縮的圖像。

圖2 Zig-zag排序方式

表1 提取圖像塊的具體位置

圖3 卷積神經網絡具體模型

圖4 數據集(a)-(b):未篡改圖像;(c)-(d):篡改圖像
通過訓練與測試CNN分類器對一次壓縮和二次壓縮的區分能力,將樣本塊分成了64×64,128×128,512×512,1024×1024的不同維度大小。圖5展示了不同維度的塊和不同QF2條件下,圖像在CNN網絡中分類正確率的大小。
圖5表明樣本塊的分辨率設置的越大,最后的分類正確率就會越高。可以明顯看出,當分塊維度為1024×1024時,正確率基本達到90%及以上。因為分塊的維度越大,其帶有的特征信息也就越多,區分自然也更容易。而且第二次壓縮的質量因子越大,分類的正確率會越高。在給出的尺寸下,當第二次壓縮因子QF2=95時,分類正確率幾乎都能達到95%及以上。

圖5 不同維度分塊和不同QF2下的檢測準確率
本文首先對數據集進行分類、設置不同的訓練和測試指標,并用深度學習的方法來實現對JPEG雙壓縮的篡改取證,并獲得了很高的檢測準確率。下一步將在此基礎上,實現圖像篡改定位。