湯桂花,孫 磊,毛秀青,戴樂育,胡永進
(信息工程大學,鄭州 450001)
傳統圖像偽造技術通常利用圖像編輯軟件(如Adobe Photoshop、Illustrate 和GIMP 等)通過復制粘貼,對真實圖像進行拼接,有針對性地改變圖像內容,偽造圖像。隨著人工智能、云計算、大數據技術的快速發展,以及高性能計算硬件的不斷更新迭代,通過訓練大量數據偽造出高質量圖像的深度偽造技術成為主流。Goodfellow 等[1]于2014 年提出的生成對抗網絡(Generative Adversarial Network,GAN)提供了一種基于零和博弈的高質量圖像偽造方法,能夠直接由隨機噪聲通過深度神經網絡生成圖像。原始GAN 經過不斷改進發展,已經可以生成高分辨率的逼真圖像。PGGAN(Progressive Growing of GAN)[2]是偽造高分辨率人臉圖像的重大突破,通過漸進增長的訓練方式,可以在CelebA-hq數據集的訓練下生成1 024×1 024 的高分辨率人臉圖像,是目前偽造圖像質量最高的模型之一。STGAN(Style-Transfer GAN)[3-4]在PGGAN 模型的基礎上作了進一步改進。然而,STGAN 解決的是人臉之間的風格轉換問題,在已有人臉圖像的基礎上進行偽造,并非直接由隨機噪聲生成圖像,與以往GAN 圖像偽造模型有著本質的不同,因此本文選擇PGGAN 偽造人臉圖像作為評估數據集,能更好地代表目前GAN偽造技術的水平和揭示GAN偽造圖像的本質差異。
作為一項新穎的科技創新,深度偽造技術在帶來全新產業價值的同時也給個人和社會帶來了相應的風險和挑戰。近年來,日益開放的網絡環境為偽造信息的傳播創造了理想空間,英、法、美等國相繼出現了利用深度偽造技術制造假新聞誘導輿論、欺騙公眾甚至進行間諜活動的事件,引起人們對倫理、法律和安全方面的重大擔憂。傳統的偽造圖像檢測技術通常對圖像篡改操作中所引入的特有效應進行分析,并定位出篡改區域。GAN 偽造圖像與傳統偽造圖像相比,不存在圖像拼接以后留下的痕跡,所以傳統的偽造圖像檢測技術無法有效甄別GAN 偽造圖像。目前針對GAN 偽造圖像也提出了一些有效的檢測方法。Li等[5]通過分析H、S、V 和Cb、Cr、Y 通道中真偽圖像顏色分量的差異,提出了一種彩色圖像統計特征集來檢測GAN偽造圖像;McCloskey等[6]對一種常用GAN模型中的生成網絡結構進行分析發現,GAN 偽造圖像的飽和像素頻率和顏色分量統計關系與相機拍攝的圖像不同,利用這兩個線索作者設計了針對GAN 偽造圖像的檢測算法;Nataraj等[7]則通過提取像素域中三個顏色通道上的共現矩陣表示顏色分量間的相關性,并結合深度學習的方法來檢測GAN 偽造圖像。然而面對圖像合成后的后處理,這些檢測方法的魯棒性較差,如常見的壓縮、添加噪聲、模糊等會使圖像的像素值產生變化,像素間的相關性會遭到破壞,GAN偽造圖像和真實圖像間的上述差異就會被大大降低,影響檢測效果。Tariq等[8]提出了基于深度卷積神經網絡(Convolutional Neural Network,CNN)的分類器來檢測GAN偽造的人臉圖像,雖然也取得了良好的分類效果,但未從GAN 偽造圖像本身的特性進行分析,訓練好的模型面對其他GAN 偽造圖像的分類效果不穩定,并且需要大量數據和較高的硬件條件;Yang等[9]通過對一定量的GAN偽造人臉圖像觀察發現,基于GAN的人臉偽造算法可以生成具有高度真實細節的人臉器官,但對人臉中這些器官的位置卻沒有明確的約束,導致即使是使用先進的PGGAN 生成的人臉圖像也存在面部不協調的問題,如圖1 所示。可以觀察到圖1 的前兩張人臉輪廓均存在不同程度的扭曲,第三張人臉的右眼呈現不自然的閉合。該文進一步利用Dlib 函數庫中集成的人臉檢測器提取了68 個面部關鍵點位置,并將位置數據作為特征向量對真偽人臉進行分類,在正臉圖像中取得了較好的效果;但是在有角度及遮擋情況,由于定位偏差人為引入了面部不協調,真實人臉就容易被誤判為GAN偽造的不協調偽造人臉,導致判真率較低。

圖1 PGGAN生成的不協調人臉示例Fig.1 Examples of dissonant faces synthesized by PGGAN
針對真實人臉的誤判問題,本文提出了一種基于深度對齊網絡(Deep Alignment Network,DAN)[10]的GAN 偽造人臉圖像檢測方法。基于DAN 構建的面部關鍵點提取網絡通過輸入人臉的全局信息避免進行關鍵點定位時被局部信息誤導,提升了面部關鍵點定位準確度,能有效改善在有角度及遮擋情況下真實人臉誤判為偽造人臉的問題。本文方法在PGGAN 偽造的高分辨率人臉數據集和CelebA(CelebFaces Attributes Dataset)[11]人臉數據集上進行了實驗,結果表明該方法能夠有效提高有角度及遮擋情況下真實人臉的檢測正確率。
本文在復現文獻[9]的工作并對誤判的真實人臉圖像進行關鍵點定位后分析發現,誤判人臉的關鍵點定位均出現了較大偏差。圖2 為誤判人臉的定位情況,在有角度和遮擋情況下,面部器官及輪廓定位出現較大偏差,人為引入了面部不對稱、不協調,形成如圖1 所示的PGGAN 不協調人臉,從而導致真實人臉被判定為GAN 偽造的不協調人臉,產生真實人臉誤判情況。Dlib 提取68 個面部關鍵點是基于ERT(Ensemble of Regression Trees)算法[12],即基于梯度提高學習的回歸樹方法。該算法以標準人臉關鍵點作為初始值,每次從關鍵點附近進行特征采樣取值,通過迭代來修正關鍵點的位置,并且各特征點是獨立的回歸,沒有利用相互之間的相對位置關系。而這種僅基于局部區域進行關鍵點定位的方法,缺少整體信息,在面部存在遮擋和旋轉角度的情況下容易被局部信息誤導,導致定位出現偏差。這種由于定位偏差引入的面部不協調進一步造成在真偽人臉分類中真實人臉的誤判問題。

圖2 誤判人臉的關鍵點定位情況Fig.2 Location of landmarks of misjudged faces
因此針對文獻[9]中提出的GAN 偽造人臉檢測方法在真實人臉部分遮擋及有角度情況下存在誤判的問題,本文方法通過提高面部關鍵點的定位準確度,降低遮擋及有角度情況下的面部關鍵點定位偏差,改善真實人臉誤判問題,提升判真率。
本文選擇68 個面部關鍵點對真偽人臉進行定位,利用關鍵點位置分類暴露GAN 偽造人臉圖像存在的面部不協調問題。68 個關鍵點分為內部關鍵點和輪廓關鍵點,內部關鍵點包含眉毛、眼睛、鼻子、嘴巴等共計51 個關鍵點,輪廓關鍵點包含17 個關鍵點,可以較為精確地定位面部器官及輪廓。檢測方法的整體流程如圖3 所示,所用人臉圖像均來自于公開數據集。

圖3 GAN偽造人臉圖像檢測方法整體流程Fig.3 Flowchart of GAN-synthesized face detection method
首先基于DAN 構建面部關鍵點提取網絡,并利用標準人臉對齊數據集對其進行訓練,保存模型。然后利用面部關鍵點提取模型對人臉圖像進行定位并輸出關鍵點位置信息:為了減少冗余信息的同時最大化保持數據的內在信息,選擇主成分分析(Principal Component Analysis,PCA)[13]降維方法將136 維的真偽人臉圖像面部關鍵點特征映射到三維空間,以便進行下一步分類。最后,利用支持向量機(Support Vector Machine,SVM)構建一個分類器以區分GAN 偽造的和真實的人臉,將處理后的數據作為特征向量輸入分類系統進行訓練測試并輸出分類結果。
本文基于DAN 構建真偽人臉圖像的面部關鍵點提取網絡,其中前饋神經網絡架構如表1 所示,Conv 表示卷積層。在網絡的第三、四層,受Inception-v3[14]的啟發,將原網絡的3×3 卷積分解為1×3 和3×1 卷積,提高網絡非線性的同時降低網絡的參數和計算量;采用全局均值池化(Global average pooling,Avgpool)代替全連接層(Fully Connected layer,FC),減少網絡參數,避免過擬合。除了最大池化層和輸出層之外,每一層都進行批處理規范化,并使用線性整流函數(Rectified Linear Unit,ReLU)進行激活,最后一層輸出當前的關鍵點位置估計。

表1 前饋神經網絡架構Tab.1 Structure of feed-forward neural network
面部關鍵點位置信息獲取過程介紹如下:
1)輸入人臉圖像I,經過第一級CNN 獲得偏移估計ΔS1,加上初始關鍵點位置估計,得到該階段的關鍵點位置估計S1;
2)計算S0相對于S1的仿射矩陣T2,T2用來將輸入圖像歸一化到標準形狀,得到矯正后的人臉圖像T2(I)和關鍵點位置T2(S1),并根據前一階段產生的關鍵點位置估計值生成關鍵點熱度圖Ht,本階段t=2,計算公式如下:

其中:si為Tt(St-1)第i個關鍵點位置,(x,y)為像素點位置,利用關鍵點熱圖,卷積神經網絡可以推斷出前一階段估計的關鍵點位置。然后將T2(I)、H2以及第一級全連接層的輸出特征圖F2作為第二級CNN 的輸入,得到ΔS2,進一步利用ΔS2和T2(S1)經過標志點變換獲得該階段的關鍵點位置估計S2,計算公式為:

3)計算誤差:

其中:S*為真實的關鍵點位置,dipd為S*的瞳孔距離。本文誤差閾值設置為0.08,不滿足則返回2)。
4)重復2)、3)階段,直到訓練完所有樣本,保存訓練好的面部關鍵點提取模型,批樣本數為1 000,每批樣本包含64 張人臉圖像。
5)利用面部關鍵點提取模型對真偽人臉進行定位,并將68 個二維坐標轉換為136 維特征向量,輸出面部關鍵點位置集合。

在面部關鍵點的提取過程中,從初始關鍵點位置估計S0開始,生成的關鍵點熱圖Ht、特征圖Ft和一個相似變換矩陣Tt在網絡的各個連續階段之間形成鏈接。與之前的局部區域圖像定位關鍵點的方法相比,增加了人臉的全局信息,避免被局部的信息誤導,對有角度和部分遮擋狀態下的人臉可以獲得更為準確的定位,從而得到更好的檢測效果。
SVM 是基于統計學學習理論提出的一種機器學習方法,主要思想是尋找一個超平面,使兩組不同的高維數據盡可能地被超平面隔離,根據結構風險最小化原則,最大化分類間隔構建最優分類超平面來提高分類器的泛化能力,在統計樣本量較少的情況下,也能獲得良好效果。SVM 與其他學習機相比,具有良好的泛化能力,在處理分類中的非線性、小樣本、高維數等問題表現良好,適用于本文的分類工作。在應用SVM對真偽圖像面部關鍵點進行分類前,先利用PCA 對提取的真偽圖像面部關鍵點位置數據進行降維處理,將136 維的坐標數據轉換為3 維向量,以便利用SVM 進行分類訓練。PCA 是一種使用廣泛的數據分析方法,用于提取數據的主要特征分量。本文的SVM 分類器應用LibSVM[15]開源模式識別軟件包實現。SVM分類器的核函數和參數設置對分類效果有很大影響,尤其是核函數參數γ及分類懲罰因子C。本文采用LibSVM 提供的徑向基函數(Radial Basis Function,RBF)內核訓練SVM分類系統:

選用網格搜索法對參數進行調優,即對每個參數設置多個值,然后進行交叉驗證嘗試各種可能的(C,γ)組合,找出使交叉驗證精確度最高的(C,γ)組合作為實際分類中的參數值。搜索范圍設置為C:[2-2,2-1,20,21,22],γ:[10-4,10-3,10-2,10-1,100],通過五折交叉驗證(5-fold cross validation),選擇C=22,γ=10-2。同時考慮數據集中真偽人臉圖像的數量分布不均衡,本文通過調整訓練數據集中樣本損失與類頻率成反比的方法來平衡兩個類的損失。
實驗配置如下:中央處理器(Central Processing Unit,CPU):Inter Core i7-9750H,主頻為2.60 GHz,內存為16 GB;圖像處理器(Graphic Processing Unit,GPU):GeForce RTX 2070MQ,顯存為8 GB。
實驗中用到了三種數據集:300W、CelebA 和PGGAN。300W 是一個標準人臉對齊數據集,由Labeled Face Parts in the Wild(LFPW)[16]和Annotated Faces Landmarks in the Wild(AFW)[17]等多個數據集綜合而成,標注了68個關鍵點和瞳孔坐標,包含室內與室外兩種情況下的人臉圖像,整體難度系數較高。將300W 作為訓練集對基于DAN 的面部關鍵點獲取網絡進行訓練,獲得的面部關鍵點提取模型具有較好的泛化能力。
CelebA 包含了202 599 張的固定分辨率為216×178 像素的真實人臉圖像,廣泛用于人臉相關的計算機視覺訓練任務。
PGGAN 數據集由10 000 張利用PGGAN 技術偽造的1 024×1 024像素的人臉圖像組成。
有角度及遮擋人臉數據集(以下簡稱非正臉數據集)來源于CelebA 及PGGAN 偽造的人臉圖像。首先篩選出CelebA 中有角度及遮擋人臉圖像,然后對剩余圖像隨機選擇3 000張進行手動遮擋,最后將這兩個部分和PGGAN 數據集進行合并,如圖4所示;正臉數據集則由PGGAN 和CelebA 兩個數據集直接合并而成,為了與非正臉數據集區分,將其簡稱為正臉數據集。

圖4 有角度及遮擋人臉數據集的獲取Fig.4 Acquisition of faces with angles and occlusion
為了驗證本文面部關鍵點提取網絡在有角度及遮擋情況下具有更高的定位準確度,使用Dlib 函數庫中的人臉檢測器(以下簡稱為Dlib)與本文網絡分別提取有角度及遮擋人臉圖像的68 個面部關鍵點,并計算誤差進行對比分析,其中人臉圖像全部來自于用標準人臉數據集300W。
將本文網絡和Dlib提取的面部關鍵點位置與標準值求取誤差并作曲線,結果如圖5 所示。可以看出,同樣的數據,整體上本文網絡的誤差曲線要低于Dlib,其中部分人臉關鍵點定位情況對比如圖6 所示。在有角度及遮擋的情況下,本文網絡表現出更好的性能,而Dlib則容易被誤導致使定位不準。定位不準意味著人為引入了面部不對稱、不協調,從而影響對真偽人臉特別是真實人臉的檢測效果。進一步根據如下公式計算均方根誤差(Root Mean Square Error,RMSE):

圖5 本文網絡與Dlib誤差曲線Fig.5 Error curves of proposed network and Dlib

圖6 Dlib與本文網絡對遮擋人臉的關鍵點定位情況Fig.6 Landmark location of faces with occlusion by Dlib and proposed network

其中:yi表示測試值,i為真實值,共有m組數據。Dlib的均方根誤差為77.78,遠高于本文網絡的18.21,RMSE 越小,誤差越低,效果越好,說明本文構建的人臉檢測網絡對有角度及遮擋人臉的關鍵點提取準確率更高。
本節主要對本文提出的偽造人臉圖像檢測方法進行整體實驗評估,為了避免閾值的選取影響分類結果,實驗選擇受試者工作特征(Receiver Operating Characteristic,ROC)曲線下面積(Area Under ROC,AUC)和精確率召回率(Precision Recall,PR)曲線下面積(Average Precision,AP)為性能指標。ROC 的X軸為偽陽性率(False Positive Rate,FPR),表示SVM 分類器判斷為真實人臉中實際為GAN 偽造人臉占所有GAN 偽造人臉的比例;Y軸為真陽性率(True Positive Rate,TPR),表示分類模型判斷為真實人臉中實際為真實人臉占所有真實人臉的比例。PR曲線的Y軸表示精確率(Precision),X軸表示召回率(Recall)。
首先利用300W 數據集對面部關鍵點信息提取網絡進行訓練,保存模型;接著使用訓練好的模型提取正臉數據集和有角度及遮擋人臉數據集的面部關鍵點。為了對比PCA 降維處理對實驗結果的影響,對關鍵點數據分別做以下兩種處理:1)利用PCA 對136 維的坐標數據進行降維處理轉換為三維特征向量,以便進行分類;2)將每組數據展開為一維數組。然后將處理后的正臉數據集輸入SVM 分類器進行訓練,輸出訓練結果,并保存分類模型;最后輸入非正臉數據集得到測試結果。圖7 和圖8 分別顯示了本方法與其他基于深度神經網絡的檢測方法在正臉數據集和非正臉數據集上的ROC 曲線和PR 曲線,量化結果如表2 所示,包括在相同數據集上使用不同的分類方法和人臉檢測網絡的綜合性能對比。

表2 不同檢測方法的綜合性能對比Tab.2 Overall performance comparison of different detection methods

圖7 不同檢測方法的ROC曲線Fig.7 ROC curves of different detection methods

圖8 不同檢測方法的PR曲線Fig.8 PR curves of different detection methods
實驗結果表明,在正臉和非正臉情況下,本文方法對真偽人臉的分類效果均優于其他檢測方法,包括一些基于深度神經網絡的方法(如VGG19 和XceptionNet),并且這兩種基于深度神經網絡的方法還需要較大的參數量和更高的硬件要求。在測試集為有角度和遮擋人臉的情況下,各檢測方法的AUC值和AP 都出現了不同程度的下降,但本文方法的AUC 值還是達到了89.76%,AP 也保持在96.38%,明顯優于其他檢測方法。雖然由于面部關鍵點提取網絡的參數個數較多導致本文方法參數量大于文獻[9]方法的參數量,但還是遠小于另外兩種基于深度神經網絡方法的參數量;并且面部關鍵點提取網絡可以單獨進行訓練,不影響檢測效果。當分類方法相同時,未經PCA 處理的AUC 值均略有下降,并且同樣對302 599張真偽人臉進行分類,未經PCA 處理時運行耗時增加5 945 ms,存儲數據也需要更大空間,因此在圖像較多時選擇PCA對數據進行處理更優。同樣進行PCA 處理,DAN 進行改進后的AUC 值分別提升了1.91%和2.92%,并且有更小的參數量和計算量,性能優于原網絡。
綜上,本文提出的GAN 偽造人臉圖像檢測方法有三個優點:1)面部關鍵點位置與圖像大小無關,在訓練和使用所獲得的分類方法時不需要重新對圖像進行縮放,可以有效避免由于縮放操作而導致的影響;2)基于該特征向量的分類方法對硬件需求不高,參數量小,計算成本較低;3)該方法旨在提升檢測正確率,在正臉和有角度和遮擋人臉圖像上都表現出了更好的性能,并不只適用于某一類人臉圖像。
針對現有GAN 偽造圖像檢測方法對于有角度及遮擋情況下的人臉考慮較少,存在真實人臉誤判問題,本文提出基于DAN 來提取68 個面部關鍵點,獲得更為準確的面部位置信息,進而通過SVM 對面部關鍵點特征進行分類甄別真偽人臉圖像,降低了有角度及遮擋人臉的誤判率。最后實驗驗證了本文方法相比其他檢測方法在正臉和有角度及遮擋人臉上都展現出了更好的性能,能有效提高GAN 偽造人臉圖像的檢測正確率。由于GAN 模型缺乏對不同人臉部件配置的約束這一問題目前還未得到徹底修正,因此,基于面部關鍵點的方法還可以進行進一步研究。例如,在真實人臉面部表情強烈扭曲的情況下如何避免誤判,以及進一步提升對偽造人臉圖像的甄別效果,下一步可以考慮通過獲取面部的三維空間位置來進行分類,暴露三維空間中GAN 偽造人臉的缺陷來提高檢測正確率。