楊雨鑫 ,周 欣 ,2,熊淑華 ,何小海 ,卿粼波
(1.四川大學(xué) 電子信息學(xué)院,四川 成都610065;2.中國信息安全測評(píng)中心,北京100085)
深度偽造是利用深度學(xué)習(xí)算法生成偽造人臉圖像/視頻技術(shù)的總稱。 這種視覺合成技術(shù)根據(jù)實(shí)現(xiàn)方式的不同,具體細(xì)分為DeepFake、Face2Face[1]、FaceSwap[2]等。 該技術(shù)可以將圖像中已有的面部表情和動(dòng)作提取出來,合成另一張人臉替代原圖臉部區(qū)域,最終制造出人眼難以區(qū)分的虛假圖像/視頻。
2019 年,SnapChat 和ZAO 等應(yīng)用程序?qū)崿F(xiàn)了用戶與電影明星換臉的功能,深度偽造技術(shù)快速進(jìn)入公眾視野并引發(fā)關(guān)注。 與此同時(shí),普通人可以利用開源的深度偽造程序生成逼真的人臉圖像/視頻,使得眾多公眾人物陷入遭受深度偽造技術(shù)攻擊的風(fēng)險(xiǎn)之中。 龍坤[3]等人從國家政治安全、經(jīng)濟(jì)安全、社會(huì)安全、國民安全方面論述了深度偽造技術(shù)帶來的潛在危害,美國國防高級(jí)研究計(jì)劃署也在同年針對(duì)虛假圖像/視頻發(fā)起檢測項(xiàng)目。 因此,針對(duì)深度偽造算法生成圖像的檢測工作變得越來越重要。
目前針對(duì)人臉深度偽造技術(shù)提出了眾多檢測方案。 ZHANG Y[4]等討論了采用機(jī)器學(xué)習(xí)方法進(jìn)行檢測的可行性,使用詞袋模型提取圖像特征,對(duì)比了支持向量機(jī)[5](Support Vector Machines,SVM)、隨機(jī)森林、多層感知器等多種分類器的檢測結(jié)果。COZZOLINO D[6]等人使用隱寫分析領(lǐng)域提出的局部特征描述符[7],訓(xùn)練線性支持向量機(jī)分類器完成圖像篡改檢測任務(wù), 此方法在第一屆IEEE 圖像取證挑戰(zhàn)賽中奪得冠軍。 雖然機(jī)器學(xué)習(xí)方法具有良好的特征可解釋性以及說服力,但是不斷演進(jìn)的深度偽造圖像對(duì)傳統(tǒng)檢測方法提出了挑戰(zhàn)。 LI Y[8]等人根據(jù)早期深度偽造視頻忽略人物眨眼特性,使用長期循環(huán)卷積網(wǎng)絡(luò)[9]進(jìn)行分類檢測。 SABIR E 等人[10]發(fā)現(xiàn)深度偽造視頻幀間存在時(shí)空不連續(xù)性差異,組合循環(huán)神經(jīng)網(wǎng)絡(luò)和DenseNet 提取時(shí)空特征進(jìn)行端到端的訓(xùn)練。
針對(duì)效果不斷提升的深度偽造圖像/視頻,機(jī)器學(xué)習(xí)方法存在檢測準(zhǔn)確率不高的缺點(diǎn),并且神經(jīng)網(wǎng)絡(luò)方法內(nèi)部檢測過程可解釋性匱乏,其“黑盒”特性導(dǎo)致取證存在一定困難。 ZHOU P[11]等提出的雙流網(wǎng)絡(luò)結(jié)構(gòu)為深度偽造檢測提供了思路。 本文工作基于雙流網(wǎng)絡(luò)特征融合思想,結(jié)合深度學(xué)習(xí)高檢測率的優(yōu)點(diǎn),探索性地融入傳統(tǒng)特征提取方法,引入特征可解釋性同時(shí)提升檢測結(jié)果。
本文提出了圖1 深度偽造圖像檢測模型,算法模型由四部分組成,包括圖像預(yù)處理模塊、傳統(tǒng)特征提取模塊、神經(jīng)網(wǎng)絡(luò)特征提取模塊、特征融合判決模塊。
算法以視頻流中圖像幀空間特性為主要研究對(duì)象,圖像預(yù)處理模塊將圖像中與人臉區(qū)域無關(guān)的背景進(jìn)行剔除,根據(jù)后續(xù)不同的特征提取模塊對(duì)保留的人臉區(qū)域進(jìn)行針對(duì)性處理。 傳統(tǒng)特征提取模塊與神經(jīng)網(wǎng)絡(luò)特征提取模塊共同組成雙流網(wǎng)絡(luò)結(jié)構(gòu),此結(jié)構(gòu)使得模型從兩個(gè)方面更好地對(duì)特征信息進(jìn)行理解。 傳統(tǒng)特征提取模塊可以提取圖像中紋理特征,保證特征對(duì)分類結(jié)果具有很好解釋性與說服力。神經(jīng)網(wǎng)絡(luò)特征提取模塊使用前沿的網(wǎng)絡(luò)結(jié)構(gòu)提取特征,保證分類結(jié)果的可靠性。最終,在特征融合判決模塊進(jìn)行特征融合完成分類任務(wù)。 在訓(xùn)練過程中,網(wǎng)絡(luò)計(jì)算多處損失值相加組成最終損失,不斷優(yōu)化網(wǎng)絡(luò)訓(xùn)練參數(shù),以提高網(wǎng)絡(luò)判別準(zhǔn)確率。
深度偽造算法關(guān)注點(diǎn)在于擬合逼真的人臉區(qū)域RGB 圖像, 圖2 圖像預(yù)處理模塊按照特定規(guī)則抽取視頻流,檢測并勾畫圖像中的人臉區(qū)域,完成視頻流到圖像幀的數(shù)據(jù)轉(zhuǎn)換。 將人臉區(qū)域直接作為傳統(tǒng)特征提取模塊的數(shù)據(jù)輸入,而神經(jīng)網(wǎng)絡(luò)特征提取模塊的輸入需要進(jìn)行適當(dāng)處理。 首先,對(duì)圖像在RGB 空間進(jìn)行平滑濾波,抑制深度偽造圖像低水平不穩(wěn)定偽影,改善真實(shí)圖像和深度偽造圖像之間的低水平相似性,從而更多地引導(dǎo)分類器學(xué)習(xí)泛化能力更好的內(nèi)在特征[12-13]。 其次,GUO Y 等人[13]在圖像著色篡改檢測中,發(fā)現(xiàn)篡改圖像的亮度-色度-飽和度空間存在統(tǒng)計(jì)不一致的特點(diǎn),并且由于RGB 分量值與顯示的顏色之間聯(lián)系不直觀,HSV 顏色空間以人類感官的方式封裝信息,表現(xiàn)更佳,神經(jīng)網(wǎng)絡(luò)提取的特征具有更好的可解釋性。 故將濾波后的RGB 空間進(jìn)行轉(zhuǎn)換,以HSV 空間圖像作為神經(jīng)網(wǎng)絡(luò)特征提取模塊的數(shù)據(jù)輸入。
圖1 融合傳統(tǒng)特征與神經(jīng)網(wǎng)絡(luò)框架
圖2 圖像預(yù)處理模塊框架
圖3所示的傳統(tǒng)特征提取模塊主要針對(duì)RGB空間人臉區(qū)域提取紋理信息。 灰度共生矩陣(Gray-Level Co-occurrence Matrix,GLCM)可以描述局部區(qū)域相鄰像素點(diǎn)之間相關(guān)程度,反映圖像灰度方向、間隔和變化幅度的綜合信息。 由于深度偽造算法生成的虛假圖像尺寸區(qū)域有限,本文將RGB 空間人臉區(qū)域進(jìn)行3×3 的網(wǎng)格劃分,深度偽造圖像主要集中在核心區(qū)域,與之相鄰的區(qū)域內(nèi)多為原始圖像信息。
圖3 傳統(tǒng)特征提取模塊框架
針對(duì)每個(gè)網(wǎng)格區(qū)域?qū)⒍嗤ǖ赖膱D像轉(zhuǎn)換為灰度圖像,采用直方圖均衡化的方式進(jìn)行對(duì)比度調(diào)整,然后對(duì)調(diào)整結(jié)果灰度級(jí)進(jìn)行壓縮以降低后期計(jì)算量。 由于統(tǒng)計(jì)灰度共生矩陣特征維度較大,后期分類器據(jù)其區(qū)分紋理信息具有一定困難。 本文使用由GLCM 演化計(jì)算的統(tǒng)計(jì)量參數(shù),進(jìn)一步分析特定灰度級(jí)結(jié)構(gòu)重復(fù)出現(xiàn)導(dǎo)致的紋理分類特征。 本文根據(jù)現(xiàn)有文獻(xiàn)[14]及工程計(jì)算量為考量選用以下指標(biāo):
(1)角二階矩(能量)
角二階矩(Angular Second Moment,ASM)是反映圖像灰度分布均勻性和紋理粗細(xì)度的指標(biāo)。 局部區(qū)域內(nèi)圖像灰度分布較均勻,ASM 值相應(yīng)較大。
(2)對(duì)比度(Contrast)
對(duì)比度是反映圖像中紋理溝紋深淺以及局部灰度變化總量的指標(biāo)。 在圖像中,局部像素對(duì)的灰度差別越大即紋理溝紋越深,圖像的對(duì)比度越大,圖像的視覺效果越清晰。
(3)熵(Entropy)
熵是測量灰度級(jí)分布隨機(jī)性的特征參數(shù),表征圖像中紋理的復(fù)雜程度。 在圖像中,原始圖像所有元素排列隨機(jī)性越高,即灰度復(fù)雜程度和紋理溝紋越復(fù)雜,熵值越大;反之,熵值越小。
通過水平、豎直以及對(duì)角線四種方向考察不同的紋理規(guī)律,即灰度共生矩陣的方向分別取0°、45°、90°、135°四個(gè)方向。 在每個(gè)方向的灰度共生矩陣的基礎(chǔ)上,提取二階矩、對(duì)比度以及熵三類豐富的紋理特征參數(shù)。 計(jì)算所有圖像特征均值并將其歸一化,如此分類器可以在關(guān)注局部網(wǎng)格紋理特征的同時(shí),對(duì)網(wǎng)格區(qū)域之間的紋理特征進(jìn)行對(duì)比。最終,輸出1×108 特征表征圖像紋理差異。
神經(jīng)網(wǎng)絡(luò)特征提取模塊主要針對(duì)輸入的HSV 空間圖像進(jìn)行特征提取。 在計(jì)算機(jī)視覺領(lǐng)域的圖像分類任務(wù)中,傳統(tǒng)分類算法通常根據(jù)經(jīng)驗(yàn)人工提取圖像特征,最終組成特征集合通過分類器對(duì)樣本進(jìn)行分類。 而以卷積神經(jīng)網(wǎng)絡(luò)為代表的深度學(xué)習(xí)方法,通過監(jiān)督學(xué)習(xí)的方式取代了人工提取特征的過程。 網(wǎng)絡(luò)中的卷積層將會(huì)對(duì)特征從空間相關(guān)性和通道相關(guān)性進(jìn)行特征提取。
Google 公司在GoogLeNet 中創(chuàng)新性地提出了Inception 卷積層結(jié)構(gòu),該結(jié)構(gòu)在ImageNet 大賽獲得冠軍之后,Google 在其基礎(chǔ)上不斷改進(jìn)提出了InceptionV2結(jié)構(gòu)、InceptionV3 結(jié)構(gòu)以及Inception-ResNet 結(jié)構(gòu)。
圖4 深度可分離卷積模塊結(jié)構(gòu)
文獻(xiàn)[15]中的核心模塊對(duì)InceptionV3 結(jié)構(gòu)進(jìn)一步改進(jìn),即用圖4 深度可分離卷積(Depthwise Separable Convolution)來替代原來InceptionV3 中的Inception 模塊。此模塊中,1×1 卷積核卷積結(jié)果的輸出通道數(shù)與3×3 卷積核的個(gè)數(shù)相同, 將卷積核的映射過程分解成兩步相互獨(dú)立的操作, 使得特征圖的跨通道相關(guān)性與空間相關(guān)性充分解耦。XceptionNet 采用殘差連接的深度可分離卷積層進(jìn)行線性堆疊, 網(wǎng)絡(luò)輸入為299×299 大小的圖像。 總體架構(gòu)具有36 個(gè)卷積層, 具體分為14個(gè)模塊,除了首尾兩個(gè)模塊外,所有模塊都使用線性殘差連接進(jìn)行堆疊, 顯著加快了XceptionNet 的收斂。尾部模塊利用全局平均池化層,降低了卷積模塊結(jié)果的特征長度。
本文網(wǎng)絡(luò)使用目前分類架構(gòu)中效果優(yōu)異的XceptionNet 提 取 特 征。 由 于 網(wǎng) 絡(luò)Entry flow、Middle flow、Exit flow 三個(gè)部分存在大量參數(shù),網(wǎng)絡(luò)深度過深。 本文采用在ImageNet 數(shù)據(jù)集預(yù)訓(xùn)練好的網(wǎng)絡(luò)參數(shù)為卷積層初始化,如此可以避免無法高效利用訓(xùn)練數(shù)據(jù)集,以及訓(xùn)練結(jié)果收斂到性能較差的局部最優(yōu)解的問題。將HSV 空間圖像作為XceptionNet 分類網(wǎng)絡(luò)的輸入值,采用實(shí)驗(yàn)訓(xùn)練數(shù)據(jù)集對(duì)該網(wǎng)絡(luò)模型參數(shù)進(jìn)行微調(diào),最終訓(xùn)練的結(jié)果作為網(wǎng)絡(luò)損失值的參考量之一。 本文對(duì)使用的XceptionNet 進(jìn)行了針對(duì)性調(diào)整,由于全局平均池化層與全卷積層連接處的1×2 048 特征相對(duì)紋理特征維數(shù)較大,將其卷積為1×256 特征向量,并保留此1×256 特征向量與傳統(tǒng)特征向量在特征融合判決模塊進(jìn)行特征融合。
圖5 特征融合判決模塊將神經(jīng)網(wǎng)絡(luò)模塊1×256特征和傳統(tǒng)特征提取模塊1×108 特征級(jí)聯(lián),使得雙流網(wǎng)絡(luò)中HSV 色彩空間特征與RGB 空間紋理特征相交互。同時(shí),在特征融合結(jié)點(diǎn)進(jìn)行梯度截?cái)啵员WC特征融合模塊訓(xùn)練過程中,不影響神經(jīng)網(wǎng)絡(luò)特征提取模塊梯度傳導(dǎo),在特征融合后連接最后的全卷積層。
圖5 特征融合判決模塊框架
損失值均采用均方誤差(Mean Square Error,MSE)函數(shù)與標(biāo)簽值進(jìn)行計(jì)算。 總訓(xùn)練損失Total Loss 由Loss1 與Loss2 兩部分組成:
Loss1 為特征融合判決模塊訓(xùn)練損失,Loss2 為神經(jīng)網(wǎng)絡(luò)特征提取模塊訓(xùn)練損失。 網(wǎng)絡(luò)采用多損失雙流的網(wǎng)絡(luò)結(jié)構(gòu),可以保證關(guān)注網(wǎng)絡(luò)總損失的同時(shí),融入神經(jīng)網(wǎng)絡(luò)支流損失提升判決準(zhǔn)確率。 采用監(jiān)督學(xué)習(xí)方式,根據(jù)總損失反向傳播調(diào)整網(wǎng)絡(luò)各層參數(shù),直到損失趨于穩(wěn)定。
實(shí)驗(yàn)數(shù)據(jù)采用德國慕尼黑工業(yè)大學(xué)2019 年中旬發(fā)布的FaceForensics++[6]數(shù)據(jù)集。 該數(shù)據(jù)集包含F(xiàn)aceSwap、DeepFake 和Face2Face 三 類 深 度 偽 造 視頻。 本文對(duì)每個(gè)視頻間隔20 幀進(jìn)行抽樣以減少圖像重復(fù)度過高,最終組成圖像數(shù)據(jù)集。 混合數(shù)據(jù)集使用三類深度偽造方法的視頻數(shù)據(jù)集等比例混合生成。 本文使用的數(shù)據(jù)集合構(gòu)成如表1 所示。
本文實(shí)驗(yàn)使用GPU 為Nvidia GTX1080Ti,顯存容量為11 GB,使用CUDA8.0,操作系統(tǒng)為Ubuntu 16.04,深度學(xué)習(xí)框架使用Pytorch-1.2。
表1 圖像數(shù)據(jù)集 (幀)
實(shí)驗(yàn)設(shè)置Batch size 為12,最大訓(xùn)練Epoch 為200,網(wǎng)絡(luò)初始學(xué)習(xí)率為0.001。 本文采用Adam 優(yōu)化器在訓(xùn)練過程中動(dòng)態(tài)調(diào)整參數(shù)學(xué)習(xí)率,參數(shù)更新公式如下:
其中,θ 為網(wǎng)絡(luò)的待訓(xùn)練參數(shù),α 為Adam 優(yōu)化器控制 調(diào) 整 的 學(xué) 習(xí) 率,和為 修 正 偏 差 后 的 一 階 和 二階矩估計(jì)。
本文基于FaceForensics++數(shù)據(jù)集訓(xùn)練網(wǎng)絡(luò)模型參數(shù),采用混淆矩陣(Confusion Matrix)統(tǒng)計(jì)測試集圖像分類結(jié)果, 根據(jù)工程實(shí)際應(yīng)用引入準(zhǔn)確率(Accuracy)和召回率(Recall)兩個(gè)評(píng)價(jià)指標(biāo),如下式所示:
其中,真陽性(True Positive,TP)為算法判斷深度偽造圖像為深度偽造圖像,假陽性(False Positive,F(xiàn)P)為算法判斷真實(shí)人臉圖像為虛假人臉圖像,假陰性(False Negative,F(xiàn)N)為算法判斷深度偽造圖像為真實(shí)人臉圖像,真陰性(True Negative,TN)為算法判斷真實(shí)人臉圖像為真實(shí)人臉圖像。準(zhǔn)確率(Accuracy)是指算法檢測正確的圖像占驗(yàn)證集圖像數(shù)量的百分比。 同時(shí),本文使用召回率(Recall)單獨(dú)評(píng)價(jià)算法對(duì)深度偽造圖像/真實(shí)圖像判別能力。
本文首先針對(duì)DeepFake、Face2Face、FaceSwap 三種不同深度偽造方法數(shù)據(jù)集單獨(dú)訓(xùn)練,表2 顯示了訓(xùn)練模型在測試集中的檢測準(zhǔn)確率。 無論相較于機(jī)器學(xué)習(xí)Steg.Features[7]+SVM 分類器的方法,還是深度學(xué)習(xí)MesoNet 以及XceptionNet 方法,本文提出的模型檢測針對(duì)FaceSwap 和Face2Face 深度偽造圖像都取得了明顯性能提升,雖然DeepFake 準(zhǔn)確率相比較XceptionNet 方法有所減低,但是其準(zhǔn)確率與本模型相比仍屬最高值,表明結(jié)合了紋理特征和HSV 空間特性的雙流網(wǎng)絡(luò)模型對(duì)提升檢測準(zhǔn)確率具有積極作用。
表2 訓(xùn)練模型在測試集的準(zhǔn)確率(%)
由于工程實(shí)踐中,無法得知待檢測圖像潛在使用的深度偽造方法,故算法支持同時(shí)檢測多種深度偽造方法更具有實(shí)際意義。 為了進(jìn)一步驗(yàn)證,本文在某一特定深度偽造方法數(shù)據(jù)集訓(xùn)練,并交叉檢測其他深度偽造方法測試集。 結(jié)果在表3 和表4 以召回率指標(biāo)進(jìn)行顯示。 通過表3 首行數(shù)據(jù)橫向?qū)Ρ瓤芍?,采用DeepFake 數(shù)據(jù)集訓(xùn)練所得的模型參數(shù),檢測DeepFake 虛假圖像的召回率達(dá)到98.51%, 真實(shí)圖像召回率達(dá)到98.94%。 但是,使用此模型參數(shù)檢測Face2Face 虛假圖像以及FaceSwap 虛假圖像召回率極低,僅為5.94%和0.28%。 其余數(shù)據(jù)也表現(xiàn)出相同規(guī)律。 結(jié)果表明,各類深度偽造方法有其自身特點(diǎn)。 采用單一深度偽造數(shù)據(jù)集訓(xùn)練的模型不具有泛化性,僅對(duì)單一偽造方法檢測具有很高的召回率,對(duì)其他深度偽造方法檢測率與隨機(jī)判別相似,不具有檢測性能。
表3 特定模型在測試集的召回率(%)
表4 混合數(shù)據(jù)集訓(xùn)練模型的召回率(%)
本文進(jìn)一步在混合數(shù)據(jù)集進(jìn)行訓(xùn)練,針對(duì)各類深度偽造方法使用混合模型參數(shù)計(jì)算驗(yàn)證集召回率。 實(shí)驗(yàn)結(jié)果如表4 所示,本文算法的混合參數(shù)針對(duì)三種深度偽造虛假圖片同時(shí)具有檢測能力,并且相對(duì)現(xiàn)有方法, 僅在Face2Face 虛假圖像中召回率有小幅下降,DeepFake,F(xiàn)aceSwap 虛假圖像檢測召回率均獲得了小幅提升,特別地對(duì)于真實(shí)圖片檢測的召回率提升了2.11 個(gè)百分點(diǎn)。 綜上表明,本方法具有一定泛化性,在擴(kuò)充訓(xùn)練集深度偽造圖像種類后,不再限制于單一種類檢測。 在工程實(shí)踐中具有重要意義。
本文提出了一種融合傳統(tǒng)特征與神經(jīng)網(wǎng)絡(luò)的深度偽造檢測算法,并以FaceForensics++公開數(shù)據(jù)集為基線測試。 通過實(shí)驗(yàn)表明,本文算法相比現(xiàn)有算法在準(zhǔn)確率與召回率均有明顯提升,使用XceptionNet保證高檢測率的同時(shí),GLCM 的紋理特征為算法提供了一定的特征可解釋性,對(duì)各類深度偽造圖像/視頻檢測具有一定泛化性,表現(xiàn)出優(yōu)異的鑒別性能。與此同時(shí),深度偽造技術(shù)也在不斷發(fā)展與演化,與真實(shí)圖像的差異愈加細(xì)微。 在后續(xù)的研究中,結(jié)合視頻流幀內(nèi)空間特性與幀間時(shí)間特征進(jìn)一步提升檢測準(zhǔn)確率是研究的重點(diǎn)。