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