胡 靖,蒲文博,孔維華
(成都信息工程大學 計算機學院,成都 610225)
隨著深度學習和神經(jīng)網(wǎng)絡的快速發(fā)展,面部圖像篡改已經(jīng)成為一項簡單的任務。最近,一種被稱為深度換臉(Deepfake) 的技術引起了廣泛的關注。它能合成另一個身份的人臉,并替換原視頻中目標人的臉,同時保留原始的面部表情、光照以及位置信息。這種技術生成的換臉視頻能達到肉眼難以區(qū)分的視覺效果。由于人臉與身份識別密切相關,深度換臉視頻可能會被惡意地濫用而威脅公眾的隱私安全。此外,隨著抖音、微信等社交媒體的快速發(fā)展,這種偽造視頻可以被迅速而廣泛地傳播。
為了應對深度換臉視頻給隱私安全帶來的威脅,大量研究人員投入到深度換臉檢測技術研究中。最近提出的深度換臉檢測方法大體上可以分為兩類:圖像(幀)檢測方法和視頻檢測方法。圖像(幀)檢測方法又可以進一步分為基于卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)的分類方法和基于自編碼器的偽造區(qū)域定位方法。基于CNN的分類方法通常將深度換臉檢測視為二分類問題,使用CNN絡進行特征圖提取,以獲得有利于網(wǎng)絡判別圖像是否為換臉圖像的隱含信息。偽造區(qū)域定位方法側重于將篡改的區(qū)域暴露出來。與圖像檢測任務不同,視頻檢測任務側重于對整個視頻的判斷。
為了解決現(xiàn)存方法的缺陷,本文基于多任務學習策略[1],提出了一種雙分支深度換臉檢測網(wǎng)絡。該網(wǎng)絡結合了視頻檢測方法和圖像檢測方法的特點,將兩種方法視為同一網(wǎng)絡的不同任務,使得網(wǎng)絡能對視頻進行綜合判斷的同時檢測每幀的偽造情況。此外,通過引入卷積注意力模塊(Convolutional Block Attention Module,CBAM)[2]和時序?qū)W習模塊模型,擁有對特征圖的局部通道信息和局部空間信息的注意能力,以及提取時序不連續(xù)信息的能力。實驗結果表明,在公開數(shù)據(jù)集Celeb-DF[3]和 FaceForensics++[4]上,所提方法在視頻檢測任務和幀檢測任務中都具有優(yōu)秀的準確率(Accuracy,ACC)和ROC(Receiver Operating Characteristic)曲線下面積(Area under ROC Curve,AUC)。此外,該方法在面對不同光照、人臉朝向、視頻質(zhì)量的換臉視頻時表現(xiàn)出了良好的魯棒性。
近年來,注意力機制在深度學習中得到了廣泛研究與應用。例如,張宇等人[5]提出了一種融入注意力機制的動作識別方法,通過引入注意力機制,模型更專注于重要信息,從而降低了模型過擬合的風險。注意力機制受人類視覺神經(jīng)的啟發(fā),通過引入注意力權重,調(diào)整網(wǎng)絡對不同信息的關注度,使網(wǎng)絡注意關鍵信息而忽略非關鍵信息,提升網(wǎng)絡的效率。換臉檢測工作中,合成人臉周圍不一致信息是模型判斷圖像是否偽造的關鍵。然而這種關鍵信息往往只占極少部分,因此將注意力機制引入深度換臉檢測,能提升模型對該信息的注意能力。
卷積注意力模塊[2]包含通道注意力模塊(Channel Attention Module,CAM)和空間注意力模塊(Spatial Attention Module,SAM)兩個部分,其中CAM如圖1所示。
圖1 通道注意力模塊示意圖
通道注意力模塊的具體工作流程如下:
設卷積網(wǎng)絡中卷積層輸出特征圖F∈H×W×C。CAM以該特征圖為輸入,特征圖分別經(jīng)過兩個基于通道維度的全局最大池化層和全局平均池化層,得到兩個特征向量1×1×c和1×1×c。這兩個特征向量隨后會分別進入一個共享的兩層感知機中,該感知機第一層神經(jīng)元個數(shù)為c/r,第二層神經(jīng)元個數(shù)為c,其中r為壓縮率。經(jīng)過感知機輸出的兩個特征向量會進行對應元素相加,相加的特征向量再經(jīng)過sigmoid激活函數(shù)處理,以輸出最終的通道注意力圖Mc。該特征圖最終會和輸入特征圖F相乘,這樣輸入特征圖F的不同通道便被賦予了可學習權重。簡單地,通道注意力圖可以表示為
(1)
式中:σ為sigmoid激活函數(shù),W0和W1分別為共享感知機的兩層參數(shù)。
空間注意力模塊如圖2所示。
圖2 空間注意力模塊示意圖
空間注意力模塊的具體工作流程如下:
(2)
式中:σ為sigmoid激活函數(shù),Cov對應卷積操作。
雙分支深度換臉檢測網(wǎng)絡架構如圖3所示。Dlib[6]人臉識別庫會將原視頻中的每幀人臉提取出,作為網(wǎng)絡的輸入數(shù)據(jù)。基于CBMA的ResNet50[7]會逐幀提取空間信息。在注意力機制的幫助下,會篩選出有助于判斷的關鍵信息。每幀的空間信息會被輸入到時序?qū)W習模塊,用于提取幀間不連續(xù)信息。融合了空間信息和時序信息的特征圖會輸入至幀檢測分支和視頻檢測分支中。幀檢測分支會輸出每幀的檢測結果,而視頻檢測分支會輸出整個視頻的檢測結果。
圖3 算法網(wǎng)絡架構
基于CBAM[2]模塊的ResNet50[7]具體實現(xiàn)如圖4所示:
圖4 整合CBAM模塊的ResNet50的流程示意圖
(1)在ResNet50中第一層7×7卷積層后分別加入通道注意力模塊和空間注意力模塊,賦予模型對圖像低層特征的注意能力;
(2)在ResNet50最后一層卷積層后,平均池化層(avg pool)前加入通道注意力和空間注意力模塊,賦予模型對圖像高層特征的注意能力;
(3)移除ResNet50原本的最后一層全連接層,使ResNet提取的特征向量直接輸入至下層時序?qū)W習模塊中。這樣ResNet50就有兩層CBAM模塊,能分別賦予模型對圖像低層特征和高層特征的注意能力。
設輸入的視頻大小為n×h×w×3,其中,n為輸入視頻幀數(shù),h和w為每幀圖像的高和寬,通過基于CBAM的ResNet50模塊提取的輸出特征向量大小為n×2 048。
相比CBAM原文在ResNet50的每個ResBlock中加入CBAM模塊的方法,本文方法使ResNet50擁有注意能力的同時降低了網(wǎng)絡參數(shù),提高了模型的信息提取效率。
時序?qū)W習模塊在深度換臉檢測中扮演了重要角色。本文中,時序?qū)W習模塊由三層門控循環(huán)單元(Gated Recurrent Unit,GRU)[8]網(wǎng)絡構成,具體結構如圖5所示。時序?qū)W習模塊接收來自上層ResNet50輸出的每幀的特征向量,由于模塊中每層GRU網(wǎng)絡包含256個神經(jīng)元,因此模塊輸出大小為n×256的包含時序信息的特征圖,其中n為輸入幀數(shù)。
圖5 時序?qū)W習模塊結構圖
時序?qū)W習模塊提取的特征圖會被同時傳遞到視頻檢測分支和幀檢測分支中。如圖3所示,在視頻檢測分支中包含了一個平均池化層和全連接層。平均池化層接收來自時序?qū)W習模塊的特征圖,產(chǎn)生大小為16×16的特征圖,特征圖被展平成一維特征向量,該特征向量大小為256。視頻檢測分支中的全連接層接收該特征向量,輸出模型對整個視頻的判斷結果。與此同時,幀檢測分支中的一個共享的全連接層會接收來自每一幀的特征向量,每個特征向量大小均為256,并對每一幀是否為換臉幀做出最終判斷。平均池化層能綜合所有幀的特征信息,輸出固定大小的特征圖,視頻檢測分支中的全連接層便使用該特征圖輸出對整個視頻的預測結果。此外,平均池化使輸出的特征圖與視頻幀長度無關,因此本文方法能處理不同長度的視頻。
Lv=EVi~X[-ln(Fv(Vi)yi)],
(3)
(4)
L=α1·Lv+a2·Lf。
(5)
Celeb-DF(v2)[3]是2020年提出的大規(guī)模數(shù)據(jù)集,用于評估換臉檢測方法。該數(shù)據(jù)集包含 590個真實視頻和5 639個換臉視頻。換臉視頻由59位不同性別、年齡和種族的名人的公開可用的YouTube視頻生成。值得注意的是,Celeb-DF數(shù)據(jù)分布不平衡,其中換臉視頻顯著多于真實視頻,為模型的正確判別提出了挑戰(zhàn)。
FaceForensics++[4]包含從 YouTube 抓取的1 000個真實視頻和使用四種換臉算法生成的4 000個造假視頻,每個算法生成的換臉視頻數(shù)量為1 000。本文使用深度換臉合成的版本,故該數(shù)據(jù)為平衡數(shù)據(jù)集。除此以外,F(xiàn)aceForensics++包含了從三個質(zhì)量從高到低的版本,分為raw、c23、c40。
3.2.1 數(shù)據(jù)集準備
由于原數(shù)據(jù)集為純視頻數(shù)據(jù),需要先對這些視頻進行預處理,步驟如下:
首先,使用Dlib[6]庫中的人臉檢測器對數(shù)據(jù)集的每個視頻中的每一幀進行人臉檢測并提取。然后,將提取的人臉調(diào)整為64 pixel×64 pixel,并使用 ImageNet的均值和標準差對人臉圖像進行歸一化。由于Celeb-DF數(shù)據(jù)集中視頻的平均幀數(shù)約為300,因此,為了加速網(wǎng)絡訓練,實驗中的輸入視頻的長度統(tǒng)一設置為300。如果視頻少于300 幀,則重復其最后一幀以達到300幀。這一方法借鑒了自然語言處理中常用的post-padding方法。但需要注意的是,本文方法在真實應用環(huán)境中可以接收并處理任意長度的視頻。
3.2.2 對比方法
實驗比較了五種圖像檢測方法和三種視頻檢測方法,分別為DSP-FWA[9](在FWA的基礎上加入了空間金字塔池化以應對不同輸入尺寸換臉圖像)、Meso4[10](通過捕獲深換臉圖像的介觀特征以判斷圖像是否為Deepfake合成)、MesoInception4[10](在Meso4基礎上結合Inception模塊的改進網(wǎng)絡)、Xception[4](使用常用的卷積神經(jīng)網(wǎng)絡XceptionNet提取Deepfake圖像的空間域信息)、Capsule[11](以VGG19為基礎,基于膠囊網(wǎng)絡結構檢測換臉視頻幀)、ResNet50+LSTM[12](包含了以ResNet50作為提取空間域信息的卷積網(wǎng)絡和LSTM作為提取時序信息的循環(huán)神經(jīng)網(wǎng)絡)、ResNet50+GRU(ResNet50+LSTM的變體,使用和本文方法相同的GRU網(wǎng)絡替換LSTM網(wǎng)絡)、Inception3D[13](通過3D卷積網(wǎng)絡同時提取偽造視頻的空間信息和時序信息,以判斷換臉視頻是否偽造)。
上述對比方法均為開源方法。為了保證實驗的公平性,上述對比方法均使用本文預處理的數(shù)據(jù)集重新訓練。如果上述方法提供最優(yōu)模型,則加載最優(yōu)模型作為預訓練模型并在本文數(shù)據(jù)集上微調(diào),以確保各對比方法取得最優(yōu)性能。
3.2.3 評價指標
實驗中使用ACC和AUC作為評價指標。ACC的計算方式為
(6)
式中:TP為正例預測正確的個數(shù),F(xiàn)P為負例預測錯誤的個數(shù),TN為負例預測正確的個數(shù),F(xiàn)N為正例預測錯誤的個數(shù)。
AUC的計算方式為
(7)
式中:posNum為正樣本數(shù),negNum為負樣本數(shù),則分母表示為正負樣本總的組合數(shù);predpos表示模型對正樣的預測結果,predneg為模型對負樣本的預測結果,分子則表示正樣本大于負樣本的組合數(shù),含義為分別隨機從數(shù)據(jù)集中抽取一個樣本,正樣本的預測值大于負樣本的概率。
3.2.4 實現(xiàn)細節(jié)
本文方法使用PyTorch實現(xiàn)。實驗環(huán)境為搭載了四張NVIDIA Tesla P100 GPU的服務器。本文方法訓練迭代20次,批處理(batch size)大小為16,學習率設置為1×10-4。為平衡視頻檢測損失和幀檢測損失的影響,使網(wǎng)絡的兩個分支的檢測能力相近,公式(5)中α1和α2設置為 1。
為了保證實驗的公平性,對比方法盡可能使用與本文方法相同的實驗設置。例如,為了保證對比方法使用的GPU顯存與本文方法相同,對于圖像檢測方法,它們的批處理大小設置為3 000;對于視頻檢測方法,它們的批處理大小設置為16。
3.3.1 Celeb-DF上的結果
表1給出了本文方法和對比方法在Celeb-DF數(shù)據(jù)集上的ACC和AUC結果,可以看出本文方法在視頻檢測任務和幀檢測任務都取得了優(yōu)于對比方法的成績。在視頻檢測任務中本文方法取得了0.97的ACC和0.96的AUC,在幀檢測任務中本文方法取得了0.95的ACC和0.95的AUC。Celeb-DF是一個不平衡的數(shù)據(jù)集,其中換臉視頻與真實視頻比例為7∶1。相比其他基于CNN網(wǎng)絡的圖像檢測方法,例如Meso4,本文模型能有效提取空間信息和幀間時序信息,通過融合空間域和時序信息的方式有效提升模型的檢測性能。因此,相比于圖像檢測方法這種單一的信息提取方法,本文方法能在不平衡數(shù)據(jù)集中做出更準確的判斷。與本文方法相似,視頻檢測方法融合了空間域和時序信息,但由于本文方法在視頻檢測方法基礎上引入雙分支結構,在聯(lián)合損失函數(shù)的同時優(yōu)化下網(wǎng)絡的兩個分支得到互相增強,因此取得了更優(yōu)秀的視頻檢測結果。此外,本文方法引入了注意力機制,增強了對關鍵信息的捕捉能力。
表1 各方法在Celeb-DF數(shù)據(jù)集上的性能對比
3.3.2 FaceForensics++ 的結果
表2給出了本文方法和對比方法在 FaceForensics++ 中等質(zhì)量數(shù)據(jù)集c23上的性能對比結果。本文方法在視頻檢測任務上取得了0.95和0.95的 ACC 和 AUC,在幀檢測任務上取得了0.94和0.94 ACC和AUC,無論是在視頻檢測任務還是幀檢測任務上都優(yōu)于對比方法——這和在Celeb-DF上的測試結果基本一致。
表2 在FaceForensics++ c23上的性能對比結果
本文方法創(chuàng)新設計了雙分支網(wǎng)絡結構,能融合視頻的空間域不連續(xù)信息和幀間不連續(xù)信息,加之注意力機制的引入,模型能注意換臉視頻的局部信息,有效提升模了型對換臉視頻的檢測能力。
此外,實驗使用Grad-CAM[14]圖像來展示本文模型在空間域上的檢測方式。Grad-CAM通過展示模型對輸入圖像的注意力區(qū)域來解釋模型在空間域的決策方式。圖6給出了模型在FaceForensics++數(shù)據(jù)集上輸出的Grad-CAM可視化圖像,圖中前兩列分別為來自FaceForensics++的換臉圖像和模型輸出的Grad-CAM圖像,后兩列分別為來自FaceForensics++的真實圖像和模型輸出的Grad-CAM圖像。從圖6中可以得出,紅色的注意力區(qū)域主要集中在人臉與其背景之間的邊界區(qū)域。這表明本文方法通過檢測換臉視頻幀中的合成人臉與周圍環(huán)境的不連續(xù)特征判斷是否為換臉合成。
圖6 本文方法在FaceForensics++上的Grad-CAM圖像
本實驗通過對在Celeb-DF數(shù)據(jù)集上進行消融實驗來研究提出的模型的多任務結構以及各個模塊的作用。為了驗證CBAM模塊引入給模型帶來的性能提升,實驗去除了CBAM模塊,用ResNet50以代替,記為“-CBAM”。為了驗證幀檢測分支帶來的性能提升,在“-CBAM”此基礎上,去除幀檢測分支,記為“-CBAM,-FP”,該模型與對比方法“ResNet50+GRU”相同。為了驗證視頻檢測分支帶來的性能提升,實驗在“-CBAM”基礎上移除視頻檢測分支,留下ResNet50、時序?qū)W習模塊和幀檢測分支,記為“-CBAM,-VP”。為了驗證時序?qū)W習模塊和幀間不連續(xù)信息在深度換臉檢測中的作用,在“-CBAM,-VP”基礎上又移除時序?qū)W習模塊(TM),記為“-CBAM,-TM,-VP”。
消融實驗結果如表3所示,“-CBAM”模型在視頻檢測任務上取得了0.95的ACC,0.95的AUC;在幀檢測任務上取得了0.94的ACC,0.93的AUC??梢园l(fā)現(xiàn),相比本文模型,CBAM模塊在圖像檢測任務帶來了2%的AUC提升,在視頻檢測任務帶來了1%的AUC提升。CBAM能提供模型在空間域和在通道方向的注意力學習能力,使模型能關注對決策有用的關鍵信息,例如換臉圖像的不一致區(qū)域,以提高模型的性能。模型“-CBAM,-FP”在視頻檢測取得了0.92的ACC和0.90的AUC,相比“CBAM”視頻檢測AUC成績下降了5%;模型“-CBAM,-VP”在幀檢測任務取得了0.93的ACC和0.91的AUC,相比“-CBAM”,幀檢測AUC成績降低了2%。上述兩個實驗說明,本文提出的雙分支網(wǎng)絡得益于多任務學習的特殊優(yōu)化方式,相比傳統(tǒng)的單任務模型有更好的效果,兩個任務在提出的聯(lián)合損失的優(yōu)化下,能力得到互相加強。模型“-CBAM,-TM,-VP”在幀檢測任務取得了0.75的ACC和0.68的AUC。這種模型就是常見的使用CNN網(wǎng)絡進行換臉圖像檢測的模型,其CNN網(wǎng)絡為ResNet50,由表可知,相較于“-CBAM,-VP”,時序模塊的加入使得模型AUC提高了0.23,充分證明了時序信息在換臉檢測工作中的重要作用。
表3 各方法在Celeb-DF上的消融實驗結果
在實際應用中,視頻傳播前都會采用視頻壓縮算法以減少視頻的冗余信息。然而,視頻的壓縮程度會對檢測模型的性能有著顯著的影響。為了驗證本文方法在面對低質(zhì)量視頻時的魯棒性,對比了和其他方法面對FaceForensics++低質(zhì)量數(shù)據(jù)集 c40的性能,結果如表4所示。對比表2的結果可知,雖然本文模型在視頻檢測任務和幀檢測任務中都有一定的性能下降,但仍在兩個檢測任務中都取得了0.92的AUC,遠高于其他模型在c40上的性能。該實驗充分證明了本文方法在面對低質(zhì)量壓縮視頻時的魯棒性。
表4 各方法在FaceForensics++ c40上的性能對比
圖7展示了模型應對來自Celeb-DF測試集的不同換臉視頻樣例的預測結果,其中包含了模型對不同視頻不同光照、相同視頻不同人臉朝向位置的檢測結果。從圖7(a)可得出,雖然本文方法在面對暗光場景時檢測性能會有些許下降,但仍都給出正確的判斷(預測概率均大于0.5),顯示了模型對不同光照環(huán)境的魯棒性。此外,圖7(b)展示了模型面對相同視頻不同人臉朝向的預測結果,證實了模型對不同人臉位置檢測能力相同。
圖7 模型在不同光照和人臉朝向?qū)Q臉圖像的預測結果
為了展示環(huán)境物遮擋對模型的影響,使用了常用的數(shù)據(jù)增強方法Cutout[15]對來自Celeb-DF測試集中的換臉視頻的每一幀使用隨機位置的20 pixel×20 pixel的黑色方塊進行遮擋,以模擬環(huán)境物體對人臉信息的遮擋。圖8給出了本文方法對同一換臉視頻在有遮擋和無遮擋時的預測概率,其中預測值大于0.5則表明模型判斷為換臉視頻幀,值越大表明模型越確定其為換臉視頻幀。圖8表明,當有環(huán)境在遮擋時,模型預測結果會有一定的下降,盡管如此,模型仍對這些視頻幀仍做出了正確判別。該實驗證實了本文方法對環(huán)境遮擋情況的魯棒性。
圖8 模型在有遮擋和無遮擋時對換臉視頻的預測概率對比
本文提出了一種基于多任務學習和注意力機制的雙分支深度換臉視頻檢測網(wǎng)絡模型,克服了當前圖像檢測任務和視頻檢測任務的缺陷,在檢測視頻是否為偽造的同時能逐幀判斷視頻幀是否為深度換臉技術合成。此外,本文通過引入卷積注意模塊和時序?qū)W習模塊,檢測每幀的局部空間的不連續(xù)信息和幀間時序不連續(xù)信息。在兩個主流的公開數(shù)據(jù)集上的實驗表明,本文方法在幀檢測任務和視頻檢測任務中取得了優(yōu)秀的成績。而且,本文方法具有更好的泛化能力,在面對不同光照條件、不同人臉朝向以及低視頻質(zhì)量時表現(xiàn)出了良好的魯棒性。
如今深度換臉檢測仍面臨著大量的挑戰(zhàn),例如,當模型在面對真實世界廣泛存在的真假視頻分布不平衡的數(shù)據(jù)時,換臉檢測算法性能會有顯著下降,因此,深度換臉中的不平衡學習將是后續(xù)研究的重點。