王正,胡勇,楊浩天
(四川大學網(wǎng)絡空間安全學院,成都610065)
圖像隱寫分析是檢測圖像是否隱藏有秘密信息。圖像隱寫分析算法的分類,根據(jù)秘密信息被嵌入工作域的不同,可以分為空域圖像隱寫分析算法和變換域圖像隱寫分析算法;根據(jù)隱寫分析算法的實用范圍,可分為專用隱寫分析與通用隱寫分析。針對某種具體的隱寫算法,通過對該隱寫算法在嵌入信息后圖像呈現(xiàn)出來的規(guī)律或者統(tǒng)計特征來設計隱寫分析算法,即為專用隱寫分析。專用隱寫分析只針對某一種具體的隱寫算法,不具有普遍性,故當前通用隱寫分析的研究較多。而JPEG 圖像在互聯(lián)網(wǎng)中的應用非常廣泛,研究JPEG 圖像變換域隱寫分析技術(shù)具有重要的現(xiàn)實意義?;谝陨峡紤],本文研究變換域圖像通用隱寫分析算法。
卷積神經(jīng)網(wǎng)絡能夠提取到圖像中相鄰元素的相關(guān)性,因此當前針對變換域圖像的隱寫分析深度學習模型主要是基于卷積神經(jīng)網(wǎng)絡的。Xu[1]、Zeng 等人[2]、甘霖[3]分別提出針對JPEG 圖像的深度學習隱寫分析模型。其中,Xu[1]構(gòu)建一種20 層的卷積神經(jīng)網(wǎng)絡模型,該模型為了減少信息的丟失,不使用池化層,并加入了跳轉(zhuǎn)鏈接,以防梯度消失現(xiàn)象出現(xiàn)。Zeng 等人[2]提出一個含有三個卷積神經(jīng)網(wǎng)絡深層子網(wǎng)絡的JPEG 圖像隱寫分析模型HCNN,取得較好的效果。甘霖[3]設計一種在空域感知像素的變化,以此來檢測變換域是否有秘密信息嵌入的模型,該模型對HCNN 的復雜結(jié)構(gòu)進行了簡化,減少了參數(shù)變量,使計算開銷更低。
甘霖[3]提取的網(wǎng)絡模型JPEGCNN 通過優(yōu)化HCNN 結(jié)構(gòu)取得更好的分類檢測效果。但該模型使用的池化層會丟失一些信息,并且卷積核的設計只是簡單的重復而沒有隨著層數(shù)的加深而加深,還有一些可以優(yōu)化的地方。基于此,本文提出一種新的模型,對JPEGCNN 的結(jié)構(gòu)進行了優(yōu)化,包括使用步長為2 的卷積核替代池化層,在每一層激活函數(shù)之前加了BN 層以及使用全局卷積。與JPEGCNN 一樣,本文設計的模型也是在空域感知像素的變化,以此來檢測JPEG 域是否有嵌入秘密信息。實驗表明,本文提出的網(wǎng)絡模型WCNN 能夠優(yōu)化JPEGCNN 的結(jié)構(gòu),取得更高的檢測準確率。
文獻[3]所用的完整模型如圖1 所示。
該網(wǎng)絡包含5 個卷積層,在預處理模塊,輸入圖像經(jīng)過高通濾波器處理后,變成254×254 pi 圖像,高通濾波器的卷積核大小為3×3 pi。在特征提取模塊,前四個卷積層都使用16 個3×3 pi 的核,最后一個卷積層使用16 個5×5 pi 的核。卷積部分每一層卷積核后面通過激活函數(shù)來提升網(wǎng)絡模型的擬合能力,然后通過平均池化產(chǎn)生特征圖,使圖像大小減半。特征提取模塊提取的特征被輸入到分類模塊中進行分類。分類模塊包含兩個全連接層和一個Softmax 激活函數(shù)。每層全連接層后添加Dropout 層,以防止過擬合。Softmax 激活函數(shù)給出該圖像含有秘密信息的可能性以及未含有秘密信息的可能性。最后,網(wǎng)絡模型輸出的是可能性最高的類別結(jié)果。
圖1 JPEGCNN完整模型
本文提出的卷積神經(jīng)網(wǎng)絡如圖2 所示。
圖2 WCNN網(wǎng)絡模型
(1)預處理模塊
預處理模塊采用與文獻[3]相同的高通濾波器。文獻[3]通過實驗證明了使用3×3 pi 大小的濾波器相比5×5 pi 大小或者更大的濾波器效果更好。Pibre 等人[4]論證了圖像隱寫分析中高通濾波器的必要性。對于圖像而言,一般將秘密信息嵌入到權(quán)重較小的高頻部分,使圖像的變化盡可能的不被察覺。通過使用高通濾波器放大嵌入的信息,可以更快地提取到隱寫圖像的特征。
(2)特征提取模塊
WCNN 的特征提取模塊包含5 個卷積層,輸入圖像大小為256×256 pi。前兩層分別包含8、16 個大小為5×5 pi 的卷積核,第三、四層分別包含32、64 個大小為3×3 pi 的卷積核,最后一層包含128 個大小為16×16 pi 的卷積核。每一層的卷積核個數(shù)隨著卷積層的加深而成倍增加,以更充分地提取出前一層的特征。與JPEGCNN 網(wǎng)絡模型不同,WCNN 前四層卷積核卷積步長均為2。在進行卷積操作前進行補零,以保持邊界信息和使卷積后特征圖大小為2 的整數(shù)次方。最后一層使用的是全局卷積,第四層卷積層后輸出圖像大小為16×16 pi,故全局卷積中每個卷積核大小為16×16pi。使用全局卷積可以減少參數(shù)的數(shù)量,減輕了過擬合的發(fā)生。每一層卷積層在通過激活函數(shù)之前都會應用BN(批量正則化)層。特征提取模塊的激活函數(shù)全部使用ReLU。
(3)分類模塊
特征提取模塊提取的特征將被輸入到分類模塊中進行分類,分類模塊最終會輸出圖像的所屬類別。與JPEGCNN 網(wǎng)絡模型不同,WCNN 分類模塊只有一個128 維全連接層和一個Softmax 分類器。因為每個卷積層都有BN 操作以及最后有全局卷積操作,解決了過擬合的問題,所以不需要Dropout 層。全局卷積操作能夠替代一個全連接層,所以分類模塊與JPEGCNN 模型相比精簡了很多。
激活函數(shù)可以在網(wǎng)絡模型中加入非線性因素,大幅度提高卷積神經(jīng)網(wǎng)絡的擬合能力。常見的激活函數(shù)有Sigmoid 函數(shù)、TanH 函數(shù)、ReLU 函數(shù)等。這些函數(shù)能夠破壞卷積層經(jīng)過線性濾波后產(chǎn)生的線性特征。在圖像隱寫分析中,非線性激活函數(shù)一般會選擇TanH 與ReLU(如圖3 所示)。實驗中可以觀察到,ReLU 函數(shù)表現(xiàn)更好,所以本文設計的網(wǎng)絡模型中的激活函數(shù)全部采用ReLU 函數(shù)。
圖3 TanH和ReLU激活函數(shù)
BN 應用在神經(jīng)網(wǎng)絡某層時,會對每一個minibatch 數(shù)據(jù)的內(nèi)部進行標準化處理,使輸出規(guī)范化到N(0,1)的正態(tài)分布。在CNN 中加入BN 能防止梯度彌散,加快訓練速度,提高模型精度。文獻[5]中特征指出BN 要應用在卷積神經(jīng)網(wǎng)絡中非線性映射前。文獻[5]和文獻[6]中的實驗都證明在卷積神經(jīng)網(wǎng)絡中加入BN能提高檢測準確率。
池化層主要是對卷積層提取的特征進行降維處理,以保留主要特征并減少參數(shù),其本質(zhì)就是一種卷積操作。但是池化層在去除冗余信息的同時也會丟失一些有用的信息。所以本文使用步長為2 的卷積層來替代池化層,這樣能在對特征進行降維的同時防止信息的丟失。本文采用這種方法后,CNN 能夠加快收斂,提高檢測準確率。
深度學習平臺為TensorFlow,數(shù)據(jù)集為BOSSBase v1.01[7],GPU 為NVIDIA GTX960。BOSSBase v1.01 數(shù)據(jù)集包含10000 張大小為512×512 pi 的灰度圖。由于計算資源限制,將所有圖像壓縮成256×256 pi 的灰度圖。由于該模型是針對JPEG 圖像的隱寫分析,所以對于數(shù)據(jù)集中的PGM 圖像,均通過JPEG Toolbox 壓縮為JPEG 圖像。
通過五種變換域的隱寫算法來評估WCNN 網(wǎng)絡模型的隱寫分析效果。這五種變換域隱寫算法分別是:Jsteg、nsf5、MB1、MB2 以及J-UNIWARD,其中J-UNIWARD 是目前變換域中應用最為廣泛的隱寫算法。隱寫圖通過在載體圖中使用隱寫算法嵌入數(shù)據(jù)得到。10000 張載體圖通過隱寫算法可以得到10000 張隱寫圖,將這10000 對載體-隱寫圖作為實驗的數(shù)據(jù)庫。其中使用6500 對載體-隱寫圖作為訓練集,使用2500 對載體-隱寫圖作為驗證集,使用1000 對載體-隱寫圖作為測試集,即訓練集、驗證集和測試集使用6.5:2.5:1 的比率。
實驗中的mini-batch 即每批訓練的圖像數(shù)設為64。WCNN 網(wǎng)絡模型學習率初始化設為0.01,使用Adadelta[8]梯度下降算法。高通濾波器參數(shù)被設置為不可訓練。特征提取模塊中,使用“Xavier”[9]初始化器來初始化每層卷積層的卷積核,其卷積步長為2。實驗過程中,通過遷移學習方法,對于0.8bpnzAC 和1.0bpnzAC 這樣高嵌入容量的模型,訓練時使用隨機初始化權(quán)重。對于0.2bpnzAC 和0.5bpnzAC 這樣的較低嵌入容量的模型,則在其相鄰較高嵌入容量的模型基礎(chǔ)上進行微調(diào),以節(jié)省訓練時間,加快模型收斂速度。WCNN 模型經(jīng)過120 輪訓練之后收斂到一個穩(wěn)定的狀態(tài),因此訓練的輪數(shù)定為120 輪。
(1)激活函數(shù)對比
本文對比TanH 函數(shù)和ReLU 函數(shù)對模型檢測效果的影響。在WCNN 模型中的前兩層卷積層使用TanH 函數(shù),其他卷積層設計為與WCNN 模型相同。在嵌入容量為0.5bpnzAC 的情況下,對J-UNIWARD進行隱寫分析實驗結(jié)果如表1 所示。
表1 TanH 函數(shù)與ReLU 函數(shù)下的模型檢測結(jié)果
對比表1 中模型檢測結(jié)果可知,ReLU 函數(shù)表現(xiàn)更好,能提高模型檢測準確率。所以WCNN 模型中的激活函數(shù)全部采用ReLU 函數(shù)。
(2)替代池化層
池化層在去除冗余信息的同時也會丟失一些有用的信息。應用池化層會導致檢測的準確率降低,所以在本文中選擇用步長為2 的卷積核替代池化層。實驗表明,按照文獻[3]中使用平均池化層,其他部分和WCNN 模型相同。在嵌入容量為0.5bpnzAC 的情況下,對J-UNIWARD 進行隱寫分析能達到85.05%的準確率。使用步長為2 的卷積核代替池化層后,WCNN模型能達到86.80%的準確率。
(3)性能分析
本文使用JPEGCNN 與WCNN 做對比。WCNN 借鑒了JPEGCNN 的設計思想,并且進行了一定的優(yōu)化。使用JPEGCNN 對五種灰度圖變換域隱寫算法的分析結(jié)果如表2 所示。
表2 WCNN 和JPEGCNN 針對五種JPEG 域隱寫算法的分析檢測結(jié)果
從表2 中可以看到,相對于JPEGCNN,WCNN 在變換域隱寫分析上具有更高的準確率。WCNN 與JPEGCNN 的區(qū)別主要有使用步長為2 的卷積核替代池化層,在每一層激活函數(shù)之前加了BN 使反向傳播能夠減少梯度消失的情況,以及使用全局卷積減少參數(shù)的個數(shù),減輕過擬合的發(fā)生。
本文針對基于卷積神經(jīng)網(wǎng)絡的灰度圖JPEG 域隱寫分析方法進行了研究。根據(jù)特征提取源的不同,既可以根據(jù)JPEG 圖像的量化DCT 系數(shù)進行特征提取,也可以根據(jù)JPEG 圖像解壓縮后的空域圖像像素進行隱寫分析特征提取。本文采用的是后者,根據(jù)修改變換域中的DCT 系數(shù)給空域像素帶來的改變進行隱寫分析。本文提出的網(wǎng)絡模型WCNN 優(yōu)化了JPEGCNN模型的結(jié)構(gòu)。仿真實驗結(jié)果表明WCNN 對上述五種變換域隱寫算法具有較好的檢測能力。