楊一, 盧佩, 劉效勇*, 謝峰
(1.桂林理工大學信息科學與工程學院, 桂林 541004; 2.廣西嵌入式技術與智能系統(tǒng)重點實驗室, 桂林 541004)
生成對抗網絡[1](generative adversari-al networks, GANs)的基本思想是同時訓練生成式和判別式兩種不同的網絡,前者試圖產生更接近真實的數(shù)據,而后者試圖分辨真實數(shù)據與生成數(shù)據,兩個網絡在多次迭代對抗訓練中共同學習和進步,以達到生成高質量圖像的目的。
近年來,包括PGGAN[2]、StyleGAN[3]和Styl-eGAN2[4]等先進 GAN技術的不斷發(fā)展,提高了生成人臉圖像的質量。這些GAN生成的人臉與相機自然采集人臉相比,很難用人眼進行區(qū)分。而合成的人臉可以直接用于制造虛假信息,容易被惡意濫用,例如把名人或政客的臉換成色情圖片,對個人的聲譽權嚴重損害;也被用來制作各國領導人演講的虛假新聞,對世界安全構成了威脅,造成國家之間的政治宗教緊張局勢,也對社會的穩(wěn)定安全帶來嚴重威脅和一定的倫理道德問題。因此為了減少虛假內容帶來的負面影響,利用技術檢測所生成的人臉圖像是十分重要的[5]。
到目前為止,人們提出專注于檢測GAN生成人臉圖像的算法可以大致分為兩類[6]:基于手工特征和基于深度學習的方法。①基于手工特征的方法。該方法取決于圖像的統(tǒng)計性質或固有性質,如顏色、紋理和邊緣信息等,但此類方法在檢測結構復雜的圖像時性能較差。②基于深度學習的方法。該方法從訓練數(shù)據中自動學習到給定任務的多級表示,更適合于復雜的圖像。因此越來越多的研究人員選擇采用卷積神經網絡[7](convolution neural networks, CNN)作為獲取鑒別性特征的手段。
隨著基于深度學習檢測方法的發(fā)展,涌現(xiàn)出一些基于CNN設計的模型,如Hsu等[8]將簡化的 DenseNet發(fā)展成雙流網絡結構并使用對比損失檢測生成圖像,其檢測性能優(yōu)于其他最先進的圖像檢測器。Chang等[9]提出改進的VGG網絡——NA-VGG來檢測偽造的人臉圖像,其性能與之前的網絡相比提高了29.3%。Bca 等[10]使用基于Xception的改進網絡得到了生成人臉區(qū)域的多尺度、多層次特征,在FFHQ數(shù)據集上進行實驗并在各方面表現(xiàn)優(yōu)秀。Fu等[11]使用高斯低通濾波器對圖像預處理,采用雙通道CNN網絡對人臉檢測,具有較好的性能。Chai等[12]使用基于補丁的分類器和有限的接收字段,使得圖像被篡改的區(qū)域能夠更容易被檢測到。而Hasin等[13]則在Denset、VGGNet等八種不同的神經網絡架構之間進行了對比,結果表明VGFacebook架構表現(xiàn)最好。上述文獻研究表明CNN在偽臉圖像檢測上具有優(yōu)越性。
盡管CNN在局部特征提取方面具有優(yōu)勢,但這些檢測方法卻受限于CNN接受域的性質,在對圖像全局表示上遇到了困難。因此為了彌補CNN在這方面中所面臨的問題,Vaswani等[14]首次提出了Transformer架構。Transformer是一種依賴于自注意力機制來構造輸入和輸出之間全局依賴關系的模型,沒有采用原始的循環(huán)和卷積神經網絡,研究表明 Transformer在圖像分類、翻譯等任務中能夠取得滿意的結果?;诖?Maaz等[15]有效結合CNN和Tansformer的優(yōu)點,使用一種高效混合體系結構EdgeNeXt,利用自注意力增加感受野并編碼多尺度特征,在ImageNet-1K上達到了79.4%的TOP-1精度。而Khan等[16]使用基于早期特征融合策略,采用兩種不同的網絡作為特征提取器,再將其輸入到Transformer中進行訓練。上述研究表明CNN與Transformer的結合可以取得更好的檢測效果。然而,CNN與Transformer串聯(lián)式網絡架構并不能很好地發(fā)揮Transformer提取全局特征的特性,部分輸入圖像在CNN訓練中存在著特征丟失的現(xiàn)象。隨之Peng等[17]提出了一種基于CNN和Transformer并行架構的模型,分別提取圖像的局部特征和全局表示,更能充分利用不同位置的特征防止其丟失。
因此,受文獻[17]研究方法的啟發(fā),現(xiàn)提出了CNN-Transformer雙流網絡模型,目的是將基于CNN局部特征與基于Transformer的全局表示相結合,以增強表示學習。在所設計的CNN分支流中引入空間注意力和通道注意力,加強圖像關鍵特征的提取。兩個分支流的中間部分加入特征交互模塊MixBlock,將局部特征與全局表示以交互式的方式結合在一起,進一步提升模型進行分類的性能,并在檢測后處理圖像上具有一定的魯棒性。
注意力(attention)是一種模仿人類對特定信息認知意識的機制,將關鍵細節(jié)放大,從而更關注數(shù)據的本質內容[18]。在計算視覺任務中使用注意力機制,主要目的是為了關注圖像中的重要部分并抑制不必要的信息,通過引入注意力能夠在訓練中提升模型性能。
通道注意力(channel attention, CA)是利用特征通道間關系,生成通道注意圖,如圖1所示。由于特征圖的每個通道被認為是一個特征檢測器[19],對于輸入圖像,通道注意力集中在圖像中“最有意義的”區(qū)域部分。結合Zhou等[20]和Hu等[21]的研究,發(fā)現(xiàn)同時利用平均池化和最大池化兩個特性,可以提高網絡的表示能力,而不是單獨使用兩者中任何一種池化類型。
圖1 通道注意力模塊Fig.1 Channel attention module
Mc(F)=σ{MLP[AvgPool(F)]+MLP[MaxPool(F)]}
(1)
式(1)中:σ為sigmoid激活函數(shù);AvgPool(F)、MaxPool(F)為池化后的特征圖;W0∈R(C/r)×C和W1∈RC×(C/r)分別為MLP的權重,其中r為減少率,C為特征通道維度大小;Mc(F)為通道注意力參數(shù)矩陣。
與通道注意力不同的是,空間注意力(spatial attention, SA)利用特征空間之間的關系生成空間注意圖,關注圖像中具有信息性的區(qū)域部分,與通道注意力互為補充,如圖2所示。
圖2 空間注意模塊Fig.2 Spatial attention module
在計算空間注意力的過程中,首先沿著通道軸進行平均池化和最大池化的操作,并將兩者連接起來,以產生有效的特征描述符。接著沿著通道軸應用池操作可以有效突出并顯示信息的區(qū)域部分[23]。在連接的特征描述符上,應用卷積層生成一張空間注意力圖Ms(F)∈RH×W,其中H、W分別表示注意力圖的高度和寬度。
Ms(F)=σ(f7×7{[AvgPool(F);MaxPool(F)]})
(2)
式(2)中:F為輸入的特征圖;σ為sigmoid激活函數(shù);f7×7代表卷積核大小為7×7的卷積運算。AvgPool(F)、MaxPool(F)為池化后的特征圖;Ms(F)為空間注意力參數(shù)矩陣。
Transformer是一種基于自注意力機制的模型,由6個編碼器和解碼器模塊組成。不僅在建模全局上下文方面表現(xiàn)強大,而且在大規(guī)模預訓練下對下游任務表現(xiàn)出卓越的可轉移性[24]。其中自注意力[25]機制是注意力機制的改進,減少了對外部信息的依賴,擅長捕捉數(shù)據或特征的內部相關性,也被用作捕獲全局信息的空間注意機制。自注意力在計算機視覺領域上成為主要工具的潛力。
圖3 縮放點積注意力Fig.3 Scaled dot-product attention
(3)
式(3)中:Attention()為注意力機制的計算函數(shù);Q為查詢向量;K、V為鍵值對;KT為鍵向量的轉置;Softmax()表示歸一化指數(shù)函數(shù)。
與只單獨使用一個注意力相比,Transformer采用由n個縮放點積注意力組成的多頭注意力(multi-head attention),使模型能夠共同關注不同位置以及不同表征子空間的信息,如圖4所示,多頭注意力計算公式為
圖4 多頭注意力Fig.4 Multi-head self-attention
(4)
在計算機視覺領域中,提取圖像的局部特征和全局表示是十分重要的,并不斷被廣泛研究。為在訓練過程中充分利用局部特征和全局信息,提出了一種并行雙流網絡模型,如圖5所示。
圖5 網絡框架縮略圖Fig.5 Network framework thumbnail
在圖5中,CNN-Transformer雙流網絡框架主要由一個主干模塊、雙分支、用于橋接雙分支的MixBlock交互模塊和兩個分類器組成。主干模塊是由一個步長為2的7×7卷積和一個步長為2的3×3最大池化層組成,用于提取圖像初始局部特征,并將特征提供給雙分支。對于兩條雙分支,從Transformer分支中向特征圖提供圖像的全局表示,以增加CNN分支的全局感知能力。同樣,來自CNN分支的局部特征也會被逐步反饋到補丁嵌入中,使Transformer分支中的局部細節(jié)變得更加豐富。MixBlock作為一個橋梁模塊,將CNN分支中的局部特征和Transformer分支中的全局表示融合在一起,共同構成了交互作用。這樣的并行結構可以分別最大限度上保留局部特征和全局表示。
在CNN分支和Transformer分支中分別由12個卷積塊和Transformer塊組成,由圖6所示。其中MHSA(multi-head self-attention)表示Transformer分支流的多頭自注意塊。CNN塊和Transformer塊中間的箭頭指向代表特征的流程方向,在階段輸出中,例如56×56,197分別表示特征圖的大小為56×56,嵌入補丁的數(shù)量為197。在最后分類里C-NN分支和Transformer分支分別通過平均池化和class token兩個不同分類器輸出結果。
圖6 雙分支交互圖Fig.6 Dual branch interaction diagram
2.2.1 CNN分支
在所設計的CNN分支中一共有五層,前面三層為卷積層,卷積核大小逐層遞減,分別為11×11、5×5和3×3,目的是訓練過程中先增大卷積感受域范圍,使其能夠在圖像上提取更多的特征,在后面利用小卷積核增強模型在提取特征的判別能力,同時減少模型的參數(shù)數(shù)量,避免增加不必要的計算量。卷積層的后面緊隨著是最大池化層,一方面是對卷積層所提取的信息進一步降低維度,另一方面加強圖像特征的不變性。
CNN分支結構的第一層以及在卷積層最后一層中通過引入通道注意力和空間注意力,為了能在訓練初始階段與收尾階段計算圖像各個通道的權重,提高捕獲真實自然人臉與GAN合成人臉圖像的重要區(qū)域特征和關鍵信息的能力。在每層最后使用ReLu激活函數(shù)防止訓練過程中造成圖像部分特征信息的丟失,也在全連接層利用dropout進一步緩解過擬合問題。
由于Transformer分支將圖像補丁投影到矢量的過程中導致了局部細節(jié)的丟失,而在CNN分支中,卷積核在圖像的重疊特征映射上滑動,保留精細的局部特征。因此CNN分支能夠連續(xù)為Tran-sformer分支提供細節(jié)信息,雙分支細節(jié)圖如圖7所示。
圖7 雙分支細節(jié)圖Fig.7 Double branch detail
2.2.2 Transformer分支
Transformer分支中包含了多個Transformer模塊,每個Transformer塊由一個多頭自注意模塊和一個多層感知機(multilayer perce-ption, MLP)塊(包含上投影全連接層和下投影全連接層)組成,歸一化層應用于每一層、自注意力層和MLP模塊中。
2.2.3 MixBlock模塊
在進行特征提取和表示的過程中,考慮到CNN分支中的特征映射和Transformer分支的補丁嵌入,兩者存在特征維數(shù)不一致問題,設計了如圖8所示的MixBlock模塊,該模塊以一種交互的方式,連續(xù)耦合圖像的局部特征和全局表示。
圖8 MixBlock交互模塊Fig.8 MixBlock interaction module
在特征維數(shù)不一致的問題上,一方面,CNN特征圖的維數(shù)是C×H×W(C、H、W分別代表通道、高度和寬度),補丁嵌入的形狀為(K+1)×E,K、1、E分別為圖像補丁個數(shù)、class token和嵌入維數(shù)。
當特征圖從CNN分支送入到Transformer分支時,首先需要通過1×1卷積對齊補丁嵌入的通道數(shù),接著使用下采樣模塊完成空間尺寸對齊,最后對特征映射進行補丁嵌入。反之當從Transformer分支反饋到CNN分支時,需要對補丁嵌入進行上采樣以對齊空間尺度,通道維度通過1×1卷積與CNN特征映射進行對齊,同時使用批歸一化模塊對特征進行正則化。
本次實驗是在Windows10系統(tǒng)下完成的,使用的是PyCharm Community 2022版本的軟件運行環(huán)境,其中Python的版本為3.9,以及使用Pytorc-h 1.11.0的深度學習框架,硬件配置中CPU選用Intel(R)Silver 4210R@2.40 GHz 2.39 GHz雙處理器,GPU選用RTX3060 12 GB顯卡。
在訓練過程中,采用交叉熵作為損失函數(shù),優(yōu)化器使用隨機梯度下降算法,其中學習率設置為0.002。訓練數(shù)據集的批次大小為32,輪次設為15。
實驗中的偽造人臉數(shù)據集主要來自StyleGAN2、PGGAN和StarGAN。其中StyleGAN2和PGGAN是近幾年生成的高質量高分辨率的人臉圖像,而StarGAN數(shù)據集則是對人臉一些屬性特征(如頭發(fā)、皮膚等)以及面部的表情變化進行操作。
真實自然人臉數(shù)據集主要采用CelebA和FFHQ。CelebA包含了10 177個身份和202 599個對齊的人臉圖像,而FFHQ是一個高質量的數(shù)據集,擁有不同的年齡、性別和種族等類型的人臉。相關數(shù)據集的描述和數(shù)量等詳細信息如表1所示。
表1 實驗中使用的數(shù)據集Table 1 Datasets used in the experiments
實驗使用四種常見的圖像后處理方法:中值濾波(median filter)、高斯濾波(Gaussian filter)、Jpeg壓縮(jpeg compress)和高斯噪聲(Gaussian noise)對測試集進行操作。中值濾波的窗口大小分別為3×3(MF3)和5×5(MF5);高斯濾波標準差為0,窗口大小分別為3×3(GF3)和5×5(GF5);jpeg壓縮中的質量因子分別設置為85(JPEG85)、90(JPEG90)和95(JPEG95)用于對原始圖像進行壓縮的處理,同時對原始圖像的每個像素分別添加均值為0、標準差為0.3(Noise0.3)、0.6(Noise0.6)和0.9(Noise0.9)的高斯噪聲,如表2所示。
表2 圖像處理操作類型及其參數(shù)Table 2 Types of image processing operations and their parameters
精度是分類模型中最常見的性能度量指標,既適用于二分類,也適用于多分類任務,其數(shù)值越接近100%,說明分類性能越好,計算公式為
(5)
式(5)中:Cnum為人臉圖片分類正確的數(shù)量;而Tnum為人臉圖像的總數(shù)量。
在所提出的雙流網絡模型中,保持Transformer分支流條件不變的情況下,進一步驗證在CNN分支流里引入通道注意力(CA)模塊和空間注意力(SA)模塊的必要性,使用StyleGAN2和PGGAN兩種不同類型的數(shù)據集上進行消融測試,測試結果由表3所示。
表3 消融實驗結果Table 3 Ablation experiment results
雙流網絡模型兩條不同的分支流分別通過平均池化和class token方式輸出各自的精度:CNN精度和Transformer精度,再把兩種不同的精度混合相加并平均輸出,得到最后分類的總精度。
由表3可知,相比原始未引入兩種注意力的CNN分支,在提取的人臉特征中含有較多空間和通道特征冗余度,分類過程中不能保證較好的鑒別性區(qū)分。單獨引入CA或SA時,在提取人臉特征上也無法取得滿意的效果。而CA和SA在提取特征上具有互補性,使得CNN+TF+CA+SA模型更能集中關注和區(qū)分真實自然人臉和GAN合成人臉,精度可高達99.52%。實驗表明通過在CNN分支中引入通道注意力和空間注意力,使模型在提取高質量合成人臉的特征上更有鑒別性,也進一步保證了模型的分類精度。
對于測試數(shù)據集,為減少圖像背景在訓練過程中所帶來不必要的影響,進而專注檢測圖像中的人臉。實驗選擇從每張圖像中裁剪出512×512的面部區(qū)域去除背景,接著裁剪后的圖像使用雙線性插值調整為64×64。
為了評價所提方法的有效性,將本文方法的實驗結果與文獻[26-27]中已有的方法進行了比較,對比結果由表4所示。
表4 方法對比結果Table 4 Comparison results of methods
在原圖各方法的對比結果中,本文方法使用雙分支提取人臉圖像的局部特征和全局表示上表現(xiàn)出顯著的分類性能,分類精度可高達99.92%,優(yōu)于前面兩種現(xiàn)有的方法。然而在生活的實際應用中,圖像加噪、jpeg壓縮等后處理操作已廣泛應用于數(shù)字圖像中。
對于經過后處理幾種不同的測試集,MF集和GF集隨著濾波半徑的增加,文獻[26]中的方法性能下降速度最快,文獻[27]中的方法其次,而本文方法的分類精度保持在93%以上。主要原因是中值濾波和高斯濾波削弱了人臉圖像中的高頻成分,對邊緣信息進行平滑,進而表現(xiàn)出一定的模糊效果。文獻[26]中的方法只學習了圖像高頻成分表示,因此在預處理后的圖像上分類效果較差,而所提方法在特征交互上可以抑制這些圖像后處理操作的影響。對于JPEG集現(xiàn)有兩種方法而言, jpeg壓縮的質量因子對其檢測精度有較大的影響,并且伴隨著質量因子的不斷縮減,檢測精度也隨之下降,但與之相比,本文方法的精度能夠保持在85%以上。在Noise集,噪聲的添加給合成人臉圖像的檢測帶來了多余干擾信息,在局部范圍內無法較好區(qū)分或遺漏所需的鑒別性特征,而所提方法在全局上彌補了這一局限性,與文獻[26-27]方法相比,能夠達到90%以上的分類效果。因此,在GAN生成的人臉圖像檢測中,CNN-Transformer并行雙流網絡模型比現(xiàn)有的兩種方法在檢測后處理圖像上更具有魯棒性。
深度學習的發(fā)展以及伴隨著由GAN合成的人臉圖像技術越來越成熟,一定程度上給國家和社會在經濟和安全上會造成嚴重的消極影響。針對合成人臉圖像的檢測,提出了一種CNN-Transformer并行的雙流網絡框架,在CNN分支流中引入空間注意力和通道注意力,而Transformer分支流中使用自注意力和多層感知機,訓練過程中分別提取圖像的局部特征和全局表示,并在中間使用MixBlock模塊進行交互。通過在不同的數(shù)據集上進行訓練并測試,實驗結果表明,與現(xiàn)有方法相比,該方法能夠取得不錯的分類性能,并在后處理圖像上能表現(xiàn)出魯棒性性能。未來會進一步增加數(shù)據集的數(shù)量和種類,擴展所提方法來檢測其他合成的圖像。