許 喆,王志宏,單存宇,孫亞茹,楊 瑩
(公安部第三研究所 網絡空間安全技術研發基地,上海 200031)
隨著深度生成技術的快速發展,機器自動內容生成水平不斷提高,其中人臉偽造更是內容生成中的熱門技術,在短視頻、游戲直播、視頻會議等領域得到了廣泛應用。但具備極高欺騙性的深度偽造引發了諸多爭議,如色情視頻換臉、人體圖像合成等,帶來了潛在的社會信任和社會安全問題。因此如何自動高效地檢測偽造視頻成為迫切需要解決的問題,吸引了國內外研究人員的廣泛關注。
目前人臉偽造視頻檢測主要被建模成有監督的分類任務,包括基于單幀的分類檢測和基于多幀的分類檢測。前者主要利用異常顏色、眼睛牙齒細節等特征在單幀內實現偽造視頻檢測[1-6];后者則對視頻中的眨眼頻率、表情變化等時序信息進行建模[7-13]。基于多幀的方法相較于單幀,性能都有不同程度的提高,證明了時序信息的引入對提升檢測精度的重要性。然而當前工作仍存在兩個主要問題:一是由于深度偽造方法不斷地迭代更新、種類繁多,而現有的監督檢測算法訓練依賴的標注數據需要相應的偽造模型生成,這些偽造模型大多沒有開源,復現難度大,訓練成本高,極大地增加了檢測模型的訓練和更新成本;二是基于深度卷積網絡提取特征的方法雖然性能良好但訓練成本高,進一步提高了偽造檢測模型的應用門檻。因此,需要一個平衡性能和成本的偽造檢測方法。
為解決上述問題,在文獻[10]研究的基礎上,本文將偽造視頻中不自然的表情和面部動態行為視為異常,引入時序異常檢測任務中相關研究成果,設計了一種基于人臉特征點的無監督視頻人臉偽造檢測模型。主要思路是采用無監督方法重構正常視頻的人臉特征點,然后通過比較重構誤差的異常,判斷視頻的真偽。相較于目前有監督的檢測模型,一方面,本文方法只需要正常視頻作為訓練數據,不需要任何偽造方法生成的帶標注的偽造視頻;另一方面,本文未使用深度卷積神經網絡(Convolutional Neural Network,CNN)提取特征,僅采用主要人臉特征點,可以很好地保留視頻人臉行為模式信息,同時減少訓練時間,提高訓練效率。
本文的主要工作包括:
1)將時序數據異常檢測方法引入人臉偽造視頻檢測中,將人臉偽造視頻檢測任務轉為無監督的異常檢測任務。
2)提出一個全新的無監督的人臉偽造視頻檢測框架。本文方法無需任何標注數據,首先基于偏移特征、局部特征、時序特征等多粒度信息重構待檢測視頻中人臉特征點序列;然后通過計算原始序列與重構序列的重構誤差對偽造視頻進行自動檢測。
3)在人臉偽造視頻標準數據集上進行了大量的對比實驗,結果表明本文方法可以有效檢測多種類型的偽造視頻,同時具有訓練時間短、實現簡單的特點,大幅減少了訓練和使用成本。
目前人臉偽造視頻檢測主要被建模成有監督的分類任務,大多數工作都集中在基于單幀的偽造檢測方法上。一部分工作通過人工選擇關鍵特征后作進一步檢測,如Matern等[1]通過顏色異常、臉部陰影和眼睛牙齒缺失的細節來判斷真偽。更多的工作使用CNN 自動抽取特征,如:Afchar 等[2]認為微觀的信息容易受到噪聲的干擾,而宏觀的信息不能很好地捕捉偽造細節,因此提出了基于介觀的方法;Qian 等[3]提出的F3-Net(Frequency in Face Forgery Network)在CNN 提取的特征基礎上進一步提取頻域特征;Li 等[4]通過檢測替換人臉時的融合邊界存在的噪聲和錯誤來判斷真偽,達到了良好的性能;湯桂花等[5]針對現有檢測方法在有角度及遮擋情況下存在的真實人臉誤判問題,通過提高面部關鍵點定位準確度改善了由于定位誤差引起的面部不協調,進而降低了真實人臉誤判率;翁澤佳等[6]則引入領域對抗分支,所提模型能夠抽取魯棒性更強、泛化能力更高的特征。盡管目前基于單幀方法的效果良好,但是它們并沒有充分利用視頻的時序信息,所以最近越來越多的工作關注基于多幀的方法。其中一部分是基于人類自身的生理特征,如:李旭嶸等[7]通過基于EfficientNet 的雙流網絡檢測模型在良好的準確率基礎上提高了對抗壓縮的能力;Li 等[8]通過檢測眨眼頻率的異常作判斷;Yang 等[9]基于人臉特征點的中心區域和整體朝向不一致作區 分;Sun 等[10]提出的LRNet(Landmark Recurrent Network)則通過門控循環網絡捕捉人臉特征點序列中不自然的表情和面部異常變化。相較于人工選擇的特征,利用CNN 提取特征的應用更廣泛,如Güera 等[11]和Sabir 等[12]都利用CNN 提取單幀特征,再用長短期記憶(Long Short-Term Memory,LSTM)網絡提取時序特征;Gu 等[13]設計了兩個非常復雜的模塊分別捕捉空間不一致性和時序不一致性,達到了目前最優的性能。但是上述基于深度卷積網絡特征的方法往往結構復雜、訓練時間長。此外,現有的監督檢測算法訓練依賴的標注數據需要相應的深度偽造方法生成,由于偽造方法不斷地迭代更新、種類繁多,而且大多沒有開源,復現訓練難度大、成本高,這極大地提高了檢測模型的應用門檻。
時序異常檢測是從正常的時間序列中識別異常的事件或行為的任務。由于該任務獲取標記數據成本高昂,因此文獻[14-15]的有監督方法應用有限,所以目前大多數研究集中在無監督方法上。文獻[16-17]中利用LSTM 網絡構建時序特征來預測異常。Zong 等[18]提出自動編碼器和高斯混合模型相結合的方法,通過自動編碼器計算序列關鍵信息的編碼表示,再用高斯混合模型對編碼表示進行密度估計。文獻[19-21]則結合LSTM 網絡和變分自動編碼器,通過重構誤差預測異常。基于序列重構誤差的方法是目前主要的方法之一,可以很好地檢測出序列中的異常,達到良好的精度。
本文根據文獻[10]的假設,偽造視頻中存在不自然的表情和面部器官移動,這些描述面部動態行為的幾何特征可以被人臉特征點序列很好地表達出來。本文將這些不自然的地方視為該序列的異常,借鑒時序異常檢測任務的無監督研究成果,設計基于人臉特征點的無監督視頻偽造檢測模型。
本文模型由三個部分組成:數據預處理、人臉特征點序列重構和偽造得分計算。具體地說,對于待檢測視頻,先通過數據預處理抽取人臉特征點序列;然后利用卷積網絡和循環網絡編碼多層次時序信息的變分自動編碼器CNN-GRUVAE(CNN-Gated Recurrent Unit-Variational Auto-Encoder)重構特征點序列;最后計算重構序列和原序列的誤差獲得偽造分數,最終實現偽造視頻的自動檢測。
數據預處理的目的是抽取出待檢測視頻中人臉的特征點序列,包括人臉特征點抽取和特征點序列校準。
首先對待檢測視頻中的每一幀進行人臉檢測,并裁剪出人臉圖像,抽取出68 個人臉特征點[22],再將這些人臉特征點通過仿射變換對齊到預先設定的位置。
接著,需要對抽取出的人臉特征點序列進行校準。由于這些特征點是逐幀抽取的,即使在人臉幾乎不移動的情況下,特征點也會有明顯的抖動。因此參考文獻[10]的工作,在校準過程中先通過Lucas-Kanade 光流算法[23]預測連續幀的下一幀,再利用卡爾曼濾波器[24]合并原幀和預測幀去除噪聲,最終獲得精度更高的人臉特征點序列。
本文人臉特征點序列重構主要采用變分自動編碼器實現,包括編碼模塊和解碼模塊,整體框架如圖1 所示。其中編碼模塊主要編碼視頻中多層次的人臉特征點的時序信息,得到深層編碼表示。針對原始人臉特征點序列,首先通過捕捉幀與幀之間的變化獲得“鄰近幀”的偏移特征;然后基于CNN 抽取連續數幀信息,獲得“分塊幀”的局部特征;最后采用雙向門控循環神經單元(Bi-directional Gate Recurrent Unit,BiGRU)提取視頻“連續幀”的序列特征。而解碼模塊通過深層編碼表示,采用BiGRU 和全連接網絡還原出人臉特征點的重構序列。

圖1 人臉特征點序列重構的整體框架Fig.1 Overall framework of facial landmark sequence reconstruction
本文提出的人臉特征點序列重構方法具體描述如下:
文本分類相關工作[25]說明CNN 可以有效提取序列的局部特征,因此,本文在前述偏移特征的基礎上,使用CNN 提取數幀之間的“分塊幀”的局部特征。對于偏移特征序列fseq=[f1,f2,…,fN],首先將相鄰特征連接為特征矩陣,即
其中:d表示卷積核大小;⊕表示連接操作。
為了獲得不同角度的特征,需要隨機初始化通道個數的濾波器wj(j∈[1,m],wj∈Rd×136),其中m為通道個數。所以偏移特征fi對應的第j個通道的局部特征為:
其中:*指的是卷積;h、b分別指激活函數和偏置。綜上,局部特征序列為:
其中:ci表示m個通道組成的向量,表示第i幀對應的分塊幀特征。
進一步地,考慮到視頻中人臉表情變化的連續性和關聯性,本文在視頻偽造檢測過程中采用BiGRU 建模人臉特征點序列的“連續幀”的序列特征。具體地,將局部特征ci通過BiGRU 后得到每幀對應的隱層表示:
將正、逆序隱層表示拼接,得到深層編碼表示zi=其序列為zseq=[z1,z2,…,zN]。
此外,由于采樣訓練過程中不能傳遞梯度,所以本文采用重參數方式。即對于深層編碼表示zi(i∈[1,N]),通過兩個獨立的全連接層分別得到期望和方差:μi=FCμ(zi)、σi=FCσ(zi)。重參數后的編碼表示為=μi+ξiσi,ξi服從正態分布N(0,I)(I為單位矩陣)。
在解碼過程中,同樣需要考慮前后編碼的時序信息,本文采用一個BiGRU 和一個全連接網絡依次解碼。
最終得到重構特征序列為f'seq=[f'1,f'2,…,f'N]。計算每一幀人臉特征點序列和重構特征序列的重構誤差,即第i幀的重構誤差為:
其中:ω是KL 散度的系數。
圖2 為隨機選取的一個正常視頻(實線)和相應偽造視頻(虛線),選擇其中4 個有代表性的特征維度,繪制成的重構誤差序列對比折線圖。如同多變量時序異常檢測任務一樣,重構誤差較大的地方說明在該點模型不能很好地還原,在圖2 中表現為一個個波峰。其中圖2(a)、(b)是區分明顯的樣例,可以看出虛線部分的波峰更多,也更頻繁;而實線基本沒有起伏,十分平緩。這是由于在訓練階段,模型只編碼重構正常的特征序列,對于偽造特征序列則不能很好地還原,會產生更明顯的波峰。

圖2 不同維度特征點序列的重構誤差Fig.2 Reconstruction errors of facial landmark sequences with different dimensions
時序異常檢測任務通常通過對重構序列誤差大小人工或自動地設置閾值來判斷是否異常,但是本任務難以簡單地通過一個閾值來區分。如圖2(c)、(d)所示的樣例,正常視頻序列的誤差在某些點非常高,甚至超過偽造視頻序列,這種情況在實際數據中更常見。這是因為相較于時序異常檢測任務中系統產生的序列,正常的人臉移動也會包含很多的個性化特征,這種個性化特征造成的較大重構誤差并不能簡單地和偽造產生的重構誤差區分開,導致通過簡單設定閾值的方法并不能取得好的區分效果。但是從序列整體來看,偽造特征序列重構誤差的波峰會更頻繁地出現。因為偽造視頻中每一個表情都是偽造的,所以重構誤差較大的地方較多,波峰也更多;而正常視頻中每個人盡管都有自己獨特的表情特點,但大多都服從普遍的模式,可以被很好地重構還原,所以波峰出現得較少。
根據上述分析,本文從重構誤差波峰頻率的角度出發,使用離散傅里葉變換將時域序列轉換為頻域信號,此時偽造視頻的重構誤差序列在高頻部分會占有更大的比例。所以本文通過在頻域上設定頻率閾值θ,分別計算每一維特征點重構誤差序列頻率大于θ的比例作為特征點j的偽造得分scorej,最終整個視頻的偽造得分為:scoreall=score1+score2+… +score136,得分越大說明是偽造的可能性越大。圖3(a)、(b)分別表示測試集中偽造、正常視頻的偽造分數頻數圖,即重構誤差序列頻域中高頻和的頻數圖。容易看出,本文方法使正常和偽造的偽造分數集中于不同的區間,此時設置一個偽造分數相關的閾值,可以更簡單地進行區分。

圖3 偽造分數分布比較Fig.3 Comparison of forgery score distribution
3.1.1 數據集
為驗證本文方法的有效性,采用視頻偽造檢測任務中廣泛使用的兩個數據集FaceForensic++[26]和Celeb-DF[27]。其中FaceForensic++遴選了互聯網上的1 000 個視頻,用Deepfakes、Face2Face、FaceSwap、FaceShifter 和NeuralTextures等5 種偽造算法分別生成1 000 個偽造視頻。根據壓縮率不同,每一個視頻有未壓縮、輕微壓縮和重度壓縮三個版本,本文實驗采用輕微壓縮版本。Celeb-DF 包含了5 639 個偽造視頻和540 個正常視頻,采用改進的開源深度偽造算法,改善了顏色不一致等明顯偽影。
3.1.2 參數設置
在預處理階段,本文使用Dlib[22]標注人臉特征點。在重構流程前,將整個人臉特征點序列按2 s 即60 幀為一塊切分,卷積網絡的卷積核大小設置為5,填充設置為2,通道設置為32。編碼的維度設置為16,解碼器的輸出的維度設置為32。
此外每批包含256 條數據,每次訓練200 個輪次。采用Adam 優化器,學習率設置為0.001。KL 散度損失的權重設置為0.005。
3.1.3 衡量指標
為了應對數據集樣本不均衡的情況,本文實驗選擇不容易受不均衡樣本影響的接受者操作特征(Receiver Operating Characteristic,ROC)曲線的 曲線下 方面積(Area Under Curve,AUC)作為衡量指標。
其中:insi表示第i條樣本代表第i條樣本在得分從小到大排列時的序號;M、N分別表示正樣本和負樣本的個數;pos表示正例的集合。
本文設計了以下實驗:1)通過對比在不同偽造方法上的檢測效果,驗證本文提出的無監督人臉偽造視頻檢測方法的有效性和可移植性;2)通過對比不同方法的訓練時間,進一步說明本文方法的高效率和低成本;3)通過消融實驗,說明本文方法各部分設計的合理性。
3.2.1 對比實驗
對比實驗主要用來說明本文無監督方法的有效性及可移植性。
1)模型有效性。首先對比FaceForensic++數據集上不同偽造方法的檢測性能,驗證本文無監督人臉偽造視頻檢測方法CNN-GRU-VAE 的有效性,實驗結果如表1 所示。CNNGRU-VAE 訓練集采用FaceForensic++數據集,隨機選擇800個正常視頻作訓練。測試分為兩個部分,首先選擇FaceForensic++剩下的200 個正常視頻和不同方法下的200個偽造視頻分別構造不同方法下的測試集。LRNet(DF)是模型LRNet[10]僅使用DeepFake 偽造的數據作為訓練集負例得出的模型;LRNet(NT)是文獻[10]僅使用NeuralTexture 偽造的數據作為訓練集負例得出的模型。可以看出本文方法在DeepFake 上性能良好,不僅遠好于LRNet(NT),與LRNet(DF)也很接近;在Face2Face 上與LRNet(DF)性能接近;在FaceShifter 和FaceSwap 上比LRNet(DF)和LRNet(NT)都好。這說明本文的無監督模型僅使用正常數據訓練,面對未知偽造方法生成的視頻仍然能夠有效鑒偽,相較于使用單個偽造方法生成數據集上的訓練模型,在未知方法生成的數據集上達到了不錯的性能。CNN-GRU-VAE 對NerualTexture偽造方法的檢測效果較差,主要是模型中的對多層次時序信息建模干擾了對幾何信息的感知,具體解釋將在3.2.3 節根據消融實驗結果說明。

表1 不同模型在FaceForensic++數據集上的AUC得分Tab.1 AUC scores of different models on FaceForensic++dataset
2)模型移植性。使用Celeb-DF[27]的所有數據測試不同數據源對模型性能的影響,結果如表2 所示。其中,除LRNet和 CNN-GRU-VAE 之 外,Two-stream[28]、Meso4[2]、MesoInception4[27]、FWA(Face Warping Artifacts)[29]、DSPFWA(Deep Spatial Pyramid Face Warping Artifacts)[27]、Xception-c23[27]、Capsule[30]采用的是文獻[27]中的實驗數據。

表2 通過AUC分數對不同模型的移植性能評估Tab.2 Transplantation performance evaluation of different models by AUC scores
FaceForensic++的實驗設置和文獻[27]相同,訓練與測試集僅考慮DeepFake 偽造數據集上的結果。可以看出本文的無監督方法在FaceForensic++上超過部分方法,在Celeb-DF 上的性能好于多數方法。這說明本文模型在不同數據源上的可移植性優于多數有監督模型。
3.2.2 訓練成本實驗
為了驗證本文模型在訓練成本上的優勢,從GPU 的顯存占用、預處理后訓練數據在硬盤占用和訓練時長三個方面,將本文方法和其他偽造檢測模型進行比較,結果如表3所示。其中,除CNN-GRU-VAE 之外,Xception[31]、X-Ray[4]、CNN+RNN(Convolutional Neural Network+Recurrent Neural Network)[32]、TSN(Temporal Segment Network)[33]、LRNet 采用的是文獻[10]的實驗數據。

表3 訓練成本對比Tab.3 Comparisons of training cost
從表3 可以看出,基于人臉特征點的模型在GPU 的顯存占用、硬盤訓練數據占用和訓練時長都有明顯減少,LRNet和CNN-GRU-VAE 顯存和硬盤需求都遠小于其他方法,訓練時間都不到其他模型的1%。相較于同樣基于人臉特征點的算法LRNet,盡管本文模型比它復雜,但訓練時間更短,顯存占用更少。顯存占用少是因為LRNet 每次輸入的批大小為1 024,而CNN-GRU-VAE 批大小為256。訓練時間更短的主要原因有:LRNet 需要的訓練數據比CNN-GRU-VAE 多1 倍;LRNet 有兩個相似的網絡需要分開訓練;LRNet 收斂緩慢,通常需要400 輪以上才能達到比較好的性能,1 000 輪以上才能基本收斂,然而CNN-GRU-VAE 訓練200 輪時就已經基本收斂;由于本文是無監督算法,所以面對不同的偽造方法只需要訓練一次,而LRNet 此類的多數有監督算法想要達到比較理想的性能,需要在每一個偽造方法上訓練一次。這充分說明了本文提出的無監督算法在訓練成本上的優勢。
3.2.3 消融實驗
消融實驗主要分析本文方法各部分設計的合理性和有效性,結果如表4 所示。其中:CNN-GRU-VAE 表示本文完整方法的AUC 得分;其他表示模型消除不同部分時的AUC 得分與完整模型AUC 得分的差值。“不使用偏移特征”是模型將人臉特征點序列直接輸入解碼器,不使用偏移特征;GRUVAE 是將編碼器中去除CNN 后的模型;CNN-GRU-AE 是用自動編碼器替換變分自編碼器。從整體結果來看,本文各部分設計都有效地提升了視頻中人臉偽造檢測的性能。

表4 網絡結構消融實驗中不同組件對AUC分數的影響Tab.4 Influence of different components on AUC score in ablation study of network structure
使用偏移特征替換原始特征點后,Deepfake、FaceShifter和FaceSwap 在引入偏移特征后AUC 分數都有0.059 1 到0.061 8 的提升,而Celeb-DF 有0.045 0 的提升,說明了細粒度時序特征引入的有效性及必要性。但是在Face2Face 和NeuralTexture 上的檢測性能反而降低了,其中Face2Face 變化不明顯,但NeuralTexture 的AUC 分數下降了0.040 5。通過觀察數據可以發現,相較于另外三個偽造算法,NeuralTexture 不自然的偽造痕跡更多體現在人臉器官的幾何特點上,所以偏移特征雖然引入了細粒度時序特征,卻弱化了模型對人臉特征點幾何特征的提取,導致NeuralTexture的效果反而變差。
而通過GRU-VAE 模型的結果可知,引入CNN 后,Deepfake、FaceShifter 和Celeb-DF 的AUC 分數都有較大的提升,其他的也有少量提升。這說明CNN 引入的“分塊幀”局部特征有助于加強模型的鑒偽能力。
變分自編碼器的引入使多數方法的AUC 分數都有不同程度的提升,說明相較于自編碼器,變分自編碼器通過引入噪聲使模型更加健壯,在深度偽造檢測上表現為增強了模型對個性時序特征的容納能力。但是NeuralTexture 上的性能降低了很多,這是因為區分NeuralTexture 需要的是幾何特征,而不斷增強的時序特征并沒有給區分NeuralTexture 帶來優勢,反而阻擾了模型對幾何信息的感知。
本文創新性地將時序數據異常檢測思想引入視頻的人臉偽造檢測中,提出了一種基于人臉特征點重構誤差的無監督人臉偽造視頻檢測框架。首先對待檢測視頻逐幀抽取人臉特征點,并進行特征點序列校準;其次,基于偏移特征、局部特征、時序特征等多粒度信息對待檢測視頻中的人臉特征點序列進行重構;然后基于離散傅里葉變換計算原始序列與重構序列之間的重構誤差;最后根據重構誤差的波峰頻率對偽造視頻進行自動檢測。實驗結果表明,本文提出的無監督方法能夠有效檢測現有大部分偽造方法生成的人臉偽造視頻,并在不同數據源間具有良好的移植性。未來的工作旨在更好地融合幾何特征和時序特征,同時希望能夠提升模型區分個性特征和偽造特征的能力,使其達到更好的精度。