盛文俊,曹 林,張 帆+
(1.北京信息科技大學 光電測試技術及儀器教育部重點實驗室,北京 100101; 2.北京信息科技大學 儀器科學與光電工程學院,北京 100101; 3.北京信息科技大學 信息與通信工程學院,北京 100101)
在科學技術飛速發(fā)展的現(xiàn)代社會,通過人臉進行身份驗證的應用日益廣泛,因此人臉檢測[1]、人臉識別[2]等技術日新月異。但是,人臉的隱私性較差,很容易被偽造,特別是近年來隨著深度學習[3]的發(fā)展,基于深度學習的方法可以生成各式各樣逼真的人臉。這些方法雖然存在一定的娛樂性質,但也為惡意攻擊他人提供了新的手段。
深度學習[3]的發(fā)展,特別是卷積神經網絡[4](convolutional neural networks,CNN)以及生成對抗網絡[5](gene-rative adversarial nets,GAN)的發(fā)展,為人們帶來了各種各樣的偽造手段和防偽技術,二者相互博弈,共同進步。
現(xiàn)如今對人臉的偽造主要分為4種類型:人臉合成、換臉、人臉屬性操縱以及人臉表情操縱。人臉合成主要是通過生成對抗網絡(如CycleGAN[6]、StarGAN[7])生成不存在的但極其逼真的人臉。換臉即將一個人的臉替換為另一個人的臉,通常采用基于計算機圖形學的FaceSwap技術以及基于深度學習的Deepfake技術完成。人臉屬性操縱就是改變人的膚色、發(fā)型、年齡等,如今FaceApp的流行已經可以讓人們輕松地做到這一點。人臉表情操縱即修改人臉表情,如將表情“哭”變成表情“笑”等,實現(xiàn)這種偽造最流行的技術之一是Face2Face,該技術可通過表情的跟蹤和轉移、面部的渲染以及背景的合成的步驟完成,可實時進行。如圖1所示的4張人臉,只有第一張是真實的光學圖片,其余的圖片都是通過各種手段偽造而成的。通常,人類的肉眼無法分辨哪些是真實的,哪些是偽造的。
圖1 偽造人臉圖片
深度學習技術的發(fā)展在為偽造人臉提供各種先進手段的同時,各種防偽方法也應運而生。Rossler等[8]提出基于XceptionNet[9]的檢測方法,該方法基于XceptionNet[9]提取特征,之后將特征送入分類器中,對偽造人臉進行檢測。Dang等[10]分別在XceptionNet[9]和VGG16[11]的基礎上引入注意力機制,文中方案使用基于回歸的方法估計注意力圖,然后將其與輸入的卷積特征圖相乘,對特征圖進行了優(yōu)化。Guera等[12]考慮到現(xiàn)有的防偽方法中未考慮視頻連貫性,提出使用遞歸神經網絡(recurrent neural network,RNN)中的長短期記憶網絡(long short term memory,LSTM)來比較視頻中的幀間差異。該方案將經過CNN提取的特征圖輸入到LSTM中,使得人臉防偽具有了連貫性,跳出了基于圖像檢測的常用思維。Guo等[13]認為在防偽領域中,CNN不應該學習圖像表示的內容,而更應該學習圖像中細微的篡改痕跡。因此,文獻[13]改進了約束卷積層[14],提出了一種自適應殘差提取網絡,該網絡可以用作圖像的預處理,達到抑制圖像內容的目的。
相比于傳統(tǒng)的CNN,膠囊網絡可以減少由于人臉的方向、角度等姿態(tài)信息變化引起的誤差。因此,Nguyen等[15]采用膠囊網絡(capsule network,CN)進行真?zhèn)舞b別。但是對比于現(xiàn)今的基于CNN的檢測方法,膠囊網絡的特征提取模塊層數(shù)過淺,提取得到的特征細節(jié)信息不夠充分,這限制了其準確率。
針對膠囊網絡現(xiàn)存的問題,本文提出基于有監(jiān)督注意力網絡的偽造人臉視頻檢測方法。提出的模型在原始膠囊網絡的基礎上,通過引入有監(jiān)督的注意力分支來預測注意力圖,隨后將其送入膠囊網絡的特征提取模塊,對原始膠囊網絡細節(jié)特征提取不充分的問題進行了優(yōu)化。此外,通過引入焦點損失[16](focal loss)使模型更專注于難檢測的困難樣本。本文在FaceForensics++[8]數(shù)據集上對提出的模型進行了評估,實驗結果表明提出的模型優(yōu)于原始的膠囊網絡。
綜上所述,本文的主要貢獻包括:
(1)在膠囊網絡工作的基礎上,引入了有監(jiān)督的注意力分支,優(yōu)化了膠囊網絡的特征提取模塊。
(2)使用焦點損失而非交叉熵損失,提高模型對難檢測的困難樣本的檢測能力。
傳統(tǒng)的CNN采用標量來表示神經元及權重,之后估算各種特征出現(xiàn)的概率。本文使用膠囊網絡[15],以向量模的形式來預測特征出現(xiàn)的概率,這有效地降低了在預測過程中由于人臉的方向、角度等姿態(tài)信息變化引起的誤差。因此,本文基于膠囊網絡[15]檢測偽造人臉視頻,如圖2網絡結構的下半部分。輸入的圖像經過特征提取模塊得到特征圖,之后將其輸入到膠囊網絡中,膠囊網絡分為3個主要膠囊和兩個輸出膠囊,主要膠囊對輸入的特征進行編碼,關聯(lián)了低級特征和高級特征的關系,經過動態(tài)路由算法[15]輸出到兩個輸出膠囊,該過程是主要膠囊向輸出膠囊傳遞的過程。不同于CNN,動態(tài)路由算法使用向量積的形式代表特征的耦合程度。在參數(shù)更新迭代過程中,當向量積為負值時,耦合程度應當減小,反之則增大。隨著迭代次數(shù)的增多,耦合程度越來越高,達到一定次數(shù)后,對向量進行加權求和及非線性激活,輸出到輸出膠囊。膠囊網絡的具體結構以及動態(tài)路由算法請參見文獻[15]。最后,膠囊網絡的輸出同圖像的標簽進行比較,得到該部分的損失——Lp(x)。
圖2 網絡結構
然而,原始基于膠囊網絡的方法[15]僅使用VGG19[11]的前三層作為特征提取模塊,這在一定程度上影響了最終的檢測準確率。為了優(yōu)化原始膠囊網絡中的特征提取模塊,本文引入了圖2的上半部分——有監(jiān)督的注意力分支。具體而言,首先將人臉輸入到有監(jiān)督的注意力網絡中提取特征,該過程會同步輸出一張注意力圖,而后將特征輸入至分類器中,分為兩類,即是真實的還是偽造的,分類的結果同該人臉正確的標簽進行比較,得到該注意力分支的損失——La(x)。 整個訓練過程中,隨著各種參數(shù)的不斷優(yōu)化,輸出的注意力圖也越來越符合人眼的視覺機制,對特征提取模塊的優(yōu)化效果也越來越好。
此外,本文采用焦點損失監(jiān)督模型的訓練。這是由于該損失可以使模型在訓練過程中更專注于難檢測的困難樣本,進而提高檢測準確率。
Nguyen等[15]提出的膠囊網絡雖然在一定程度上彌補了傳統(tǒng)CNN的不足,但是由于它的特征提取模塊過淺,在提取特征的細節(jié)不夠充分的情況下便輸入到膠囊網絡中,這在一定程度上限制了其檢測的準確率。
近年來,注意力模型迅速發(fā)展,已經成為了深度學習領域中一個重要的概念。注意力機制符合人類的視覺機制,并且可以對圖像或者視頻進行直觀的視覺解釋。傳統(tǒng)的注意力結構[17]比較簡單,可以通過在原始網絡中直接引入1×1的卷積層,經過激活函數(shù)后與特征相乘完成。但這種方法對圖像細節(jié)的感知較差。因此,本文采用有監(jiān)督的注意力分支,即引出單獨的一支網絡來估計注意力圖。相比于傳統(tǒng)的注意力網絡,本文提出的注意力網絡帶有監(jiān)督信息,并且目的只有一個:估計更加符合人類視覺機制的注意力圖,該注意力圖會隨著訓練不斷地優(yōu)化。將獲得的注意力圖引入到主干的特征提取模塊,在保留膠囊網絡主干結構的同時,達到優(yōu)化特征的目的。
獲得注意力圖的過程如圖3所示,本文采用經過Imagenet[18]預訓練的XceptionNet[9]作為注意力網絡,對圖像進行歸一化后,在中間流的第一個可分離卷積層(separable convolution,SeparableConv)后進行注意力圖的估計。具體而言,在經過中間流的第一個SeparableConv得到的特征圖的基礎上,使用1×1的卷積層對其進行維度變化,經過批標準化(batch normalization,BN),Sigmoid激活函數(shù)后再和SeparableConv得到的特征圖相乘,作為后一層的輸入。在整個訓練過程中,該注意力圖會有監(jiān)督地進行自我優(yōu)化。經過維度、尺寸的匹配后,將該注意力圖與主干結構的特征圖相乘,最終優(yōu)化用于輸入膠囊網絡的特征圖。
圖3 有監(jiān)督的注意力網絡結構
優(yōu)化后的特征圖A′(x)定義如式(1)所示
A′(x)=(1+M(x))·A(x)
(1)
式中:M(x) 為估計的注意力圖,A(x) 為特征提取模塊輸出的特征圖。
從式(1)可以看到,估計的注意力圖的每個像素都加入了常量1,這樣做的目的是該常量可以在注意力圖的峰值處突出顯示特征圖,并能防止較低值區(qū)域的像素值降至0。后續(xù)的實驗部分會比較加入了常量1的影響。
本文對部分人臉進行了注意力圖的可視化,可視化結果如圖4所示,上面3張是實驗過程中裁剪出的人臉圖片,其中第一張是真實的,其余兩張是偽造的,下面3張是對應上方人臉圖片的注意力圖。從圖4可以看到注意力機制可以有效地對人臉的關鍵部位進行關注,例如眼睛、鼻子、嘴巴等。
圖4 注意力圖的可視化
人臉防偽的各種方法所用的數(shù)據集雜亂不一,傳統(tǒng)的交叉熵損失對所有樣本一視同仁,沒有側重點,這就導致了當模型遇到難檢測的困難樣本時,會和那些易檢測的樣本做相同的處理。這樣訓練的模型會對那些困難樣本的檢測產生誤差,對模型的防偽能力產生消極的影響。
焦點損失在交叉熵損失的基礎上,通過引入兩個因子:平衡因子α和權重速率調節(jié)因子γ,一定程度上解決了困難樣本的檢測問題,其損失函數(shù)L定義如式(2)所示
(2)
其中,y′是輸入經過激活函數(shù)的輸出,α用來平衡正負樣本的數(shù)量不均衡,γ用來調節(jié)易檢測樣本權重降低的速率,y是輸入的標簽,其中y=1表示正樣本,y=0表示負樣本。
本文在主干結構以及有監(jiān)督的注意力分支都采用該損失,訓練過程中總的損失L(x) 可以表示為主干以及分支的和,如式(3)所示
L(x)=La(x)+Lp(x)
(3)
其中,La(x) 為注意力分支的焦點損失,Lp(x) 為膠囊網絡的焦點損失,二者的定義如式(4)和式(5)所示
(4)
(5)
其中,y′a是注意力分支的輸入經過激活函數(shù)的輸出,αa用來平衡注意力分支中正負樣本的數(shù)量不均衡,γa用來調節(jié)注意力分支中易檢測樣本權重降低的速率,y′p是膠囊網絡的輸入經過激活函數(shù)的輸出,αp用來平衡膠囊網絡中正負樣本的數(shù)量不均衡,γp用來調節(jié)膠囊網絡中易檢測樣本權重降低的速率,y是輸入的標簽,其中y=1表示正樣本,y=0表示負樣本。
(1)數(shù)據集:數(shù)據集FaceForensics[19]的發(fā)布給研究者們帶來了經過Face2Face偽造的1000多個視頻(50萬幀圖像)。隨后,該作者發(fā)布了FaceForensics數(shù)據集的擴展版本FaceForensics++。FaceForensics++[8]數(shù)據集通過Deepfake和FaceSwap技術進一步擴大,共包含3000個偽造視頻(150萬幀圖像)。如今,該數(shù)據集已經成為大多數(shù)此領域研究者的基準數(shù)據集。
本文方法選用FaceForensics++[8]數(shù)據集中的Face2Face、FaceSwap、DeepFakes這3種偽造類型進行實驗。在每類偽造類型的1000個視頻中,選取720個視頻,每個視頻截取其中的270幀作為訓練集;選取140個視頻作為驗證集,剩余的140個視頻作為測試集,驗證集和測試集中每個視頻截取100幀。隨后,采用MTCNN[20]算法定位識別人臉并進行裁剪,整理后作為本文實驗所采用的數(shù)據集。
(2)實驗參數(shù)設置:在訓練過程中,網絡輸入圖像的大小為256×256,共訓練20個周期,批處理大小設置為32,膠囊網絡的學習率為0.001,有監(jiān)督注意力網絡的學習率為0.0001,采用隨機梯度下降法(stochastic gradient descent,SGD)進行優(yōu)化,膠囊網絡與有監(jiān)督注意力網絡中的焦點損失參數(shù)一致,其中平衡因子αa和αp為0.25,權重速率調節(jié)因子γa和γp為2。本文使用Pytorch作為基礎框架,GPU為英偉達公司的NVIDIA RTX 2080Ti(共5塊)。表1是不同方法的網絡參數(shù)數(shù)量及處理時間比較。由表1可以得出,本文方法較原始的膠囊網絡方法參數(shù)有所增多,約增加了3倍,但處理單張圖片用時僅增多了約0.5倍;而同Rossler等[8]提出的基準方法相比,增多了約7000 K的參數(shù)量,但處理單張圖片用時相差不多。綜上,本文方法可行。
表1 本文方法與原始膠囊網絡方法的網絡參數(shù)數(shù)量及處理時間比較
3.2.1 對比實驗
本文在膠囊網絡的基礎上,提出使用有監(jiān)督的注意力分支來優(yōu)化膠囊網絡的特征提取模塊,并使用焦點損失替換原始網絡中的交叉熵損失。
為了驗證本文提出方案的有效性,將本文方法與原始的膠囊網絡方法[15]進行對比實驗。原始的膠囊網絡方法與本文方法的數(shù)據集和參數(shù)保持完全相同。本文使用準確率(accuracy)作為實驗指標,其計算公式如下所示
(6)
式中:TP(true positions)表示正類判定為正類的樣本數(shù)量,TN(true negetives)表示負類判定為負類的樣本數(shù)量,total表示總的樣本數(shù)量。
表2給出了DeepFakes、Face2Face和FaceSwap這3種偽造類型的實驗結果。從表2可以得出,對于DeepFakes和Face2Face這兩種偽造類型,本文提出方案的準確率提升較為明顯,約提升了1個百分點。對于FaceSwap偽造類型,由于FaceSwap技術在處理面部抖動等方面更加成熟,且在整張人臉的替換中人臉的姿態(tài)信息更符合實際,所以膠囊網絡在對該技術類型的處理中,優(yōu)勢沒有其它兩種類型明顯,而注意力分支結構的存在仍然對準確率的提高有一定的促進作用,約為0.4%。
表2 本文方法與原始膠囊網絡方法在不同偽造類型上的準確率比較/%
此外,為了驗證本文提出模型的泛化性,我們將所有的偽造類型整合到一起,分別用原始的膠囊網絡和本文模型進行實驗,結果見表3。結果表明,本文模型較于原始的膠囊網絡,準確率提升了約4%,泛化能力更強。其泛化能力增強的根本原因在于本文引入的有監(jiān)督注意力分支的重要作用,而引入的注意力分支可以對人臉的關鍵部位進行重點關注。
表3 本文方法與原始膠囊網絡方法在FaceForensics++數(shù)據集上的準確率比較/%
3.2.2 模型性能對比實驗
近年來,許多檢測效果優(yōu)秀的方法被提出,為驗證本文模型的優(yōu)越性,本文在Face2Face偽造類型上進行了對比實驗,表4為本文方法與其它方法的檢測準確率對比。
從表4可以看出,本文方法對比于近年來許多優(yōu)秀的方法,檢測性能都有一定的提升。其中,對比于Cozzolino等[21]以及Bayar等[22]提出的方法有顯著的性能提升,分別提升了約20%和12%;對比于Afchar等[23]和Raghavendra等[24]提出的方法,提升了約5%;對比于Rossler等[8]提出的基準方法,由于本文方法結合了XceptionNet在特征提取方面和膠囊網絡在魯棒性方面的優(yōu)勢,因此準確率更高,提高了約0.7%;對比于Li等和Zhu等最近提到的方法,分別提高了約1.3%和0.6%。綜上,由于有監(jiān)督注意力分支在視覺解釋上的獨特優(yōu)勢,本文方法較最先進方法有明顯的性能提高。
表4 本文方法與其它方法在Face2Face偽造數(shù)據集上的準確率比較/%
3.2.3 消融實驗
為了驗證有監(jiān)督注意力分支以及焦點損失各自的作用,本文進行了以下消融實驗:在DeepFakes、Face2Face和FaceSwap這3種偽造類型上引入有監(jiān)督注意力分支,訓練模型后計算其準確率;不使用有監(jiān)督注意力分支,僅使用焦點損失代替交叉熵損失。準確率結果見表5。由表5可以看出,對于3種偽造類型,有監(jiān)督注意力分支的引入對模型的性能提升較大,尤其是DeepFakes偽造類型,提升了約0.9%。焦點損失使得模型專注于困難樣本的檢測,同樣起到了不可忽視的作用。
表5 在不同的偽造類型上引入注意力分支及焦點損失的準確率比較/%
另外,對于FaceSwap偽造類型,分別引入有監(jiān)督注意力分支和焦點損失的提升相較于其它兩種偽造類型的提升較小,這驗證了本文在3.2.1節(jié)中關于該偽造類型檢測性能提升較小的原因。
而后,使用所有偽造類型整合的數(shù)據集再次進行以上測試,實驗結果見表6。由表6可以看出,單獨引入有監(jiān)督注意力分支使模型的檢測性能提高了約2.7%。單獨引入焦點損失提高了約1.2%,該結果同樣驗證了上述結論。
表6 在FaceForensics++數(shù)據集上分別引入注意力分支及焦點損失的準確率比較/%
3.2.4 有監(jiān)督注意力模型實驗
相比于傳統(tǒng)的注意力網絡,我們使用的注意力網絡特點很明顯,即帶有監(jiān)督信息且對原始網絡的影響較小。本文通過在原始膠囊網絡的特征提取模塊上直接獲得注意力圖并與特征圖相乘來驗證這一點,實驗結果見表7。相較于直接引入注意力,由于本文使用的注意力圖是有監(jiān)督地獲取的,因此更加符合人類的視覺機制。由表7可以看出,本文使用的有監(jiān)督注意力分支的檢測性能提高了約1.8%,明顯好于傳統(tǒng)的注意力網絡。
表7 在FaceForensics++數(shù)據集上直接引入注意力、使用注意力分支的準確率比較/%
進一步,為了驗證2.2節(jié)中提到的常量對模型的影響,本文通過是否在有監(jiān)督注意力網絡中引入常量1來進行對比,表8驗證了引入了常量1相較于不引入常量1提升了0.32%,可見常量1確實在突出特征圖以及防止低值像素方面具有一定的促進意義。
表8 在注意力分支結構中是否為每個像素引入常量1準確率比較/%
本文提出一種基于有監(jiān)督注意力分支的膠囊網絡結構用以檢驗照片或者視頻是否經過偽造。對于輸入的圖像,本文通過有監(jiān)督的注意力網絡估計注意力圖,用來優(yōu)化膠囊網絡的特征提取模塊,而后通過膠囊網絡來檢測真?zhèn)?,并且使用焦點損失來提高檢測精度。實驗結果表明,本文方法比原始的膠囊網絡方法有了明顯的性能提升,在各種偽造類型混合的情況下也能較準確的辨別真?zhèn)?。作為未來工作,我們將嘗試使用多特征融合的方式來估計注意力圖。