李 昂
(1福建師范大學(xué)計(jì)算機(jī)與網(wǎng)絡(luò)空間安全學(xué)院 福建 福州 350007)
(2數(shù)字福建大數(shù)據(jù)安全技術(shù)研究所 福建 福州 350117)(3福建省公共服務(wù)大數(shù)據(jù)挖掘與應(yīng)用工程技術(shù)研究中心 福建 福州 350117)
隨著深度學(xué)習(xí)技術(shù)的完善與發(fā)展,為人們帶來便利同時(shí)也會(huì)相應(yīng)的帶來一定的風(fēng)險(xiǎn)。尤其是換臉技術(shù)的不斷升級(jí)改進(jìn),換臉方法所需的技術(shù)門檻越來越低,而生成的假臉則越來越逼真。因此為了達(dá)到更好的檢測(cè)精度,檢測(cè)模型不得不加深網(wǎng)絡(luò)架構(gòu),增加更多的參數(shù)量以獲得更好的準(zhǔn)確率,但又會(huì)導(dǎo)致模型復(fù)雜性過高,網(wǎng)絡(luò)運(yùn)算效率降低等一系列問題。
現(xiàn)如今換臉檢測(cè)算法網(wǎng)絡(luò)模型復(fù)雜和參數(shù)冗余的問題是普遍存在的,大多的換臉檢測(cè)模型依靠重復(fù)堆疊網(wǎng)絡(luò)模塊,或大量引入殘差結(jié)構(gòu),運(yùn)行效率較低。故部分換臉檢測(cè)模型為了優(yōu)化網(wǎng)絡(luò)模型,提高訓(xùn)練速度,通過研究輕量級(jí)網(wǎng)絡(luò)來解決這個(gè)問題?,F(xiàn)如今一些方法雖然降低了模型的復(fù)雜度,減輕模型的計(jì)算負(fù)載,但所得到的檢測(cè)效果都不盡人意。
而本文基于EfficientNetV2網(wǎng)絡(luò),對(duì)其進(jìn)行輕量化改進(jìn),從而提高了模型的檢測(cè)效率。首先,將原網(wǎng)絡(luò)注意力機(jī)制SENet模塊改進(jìn)為高效通道注意力模塊(efficient channel attention,ECA),可使一維卷積自適應(yīng)地確定卷積核的大小,降低了網(wǎng)絡(luò)模型的復(fù)雜度[1]。其次對(duì)網(wǎng)絡(luò)架構(gòu)進(jìn)行優(yōu)化,將原始EfficientNetV2特征提取模塊中的各個(gè)stage的卷積層數(shù)進(jìn)行調(diào)整,簡(jiǎn)化了網(wǎng)絡(luò)模型架構(gòu),提高了網(wǎng)絡(luò)的運(yùn)行速率。最后,通過實(shí)驗(yàn)對(duì)比分析其他的網(wǎng)絡(luò)模型,驗(yàn)證改進(jìn)后模型的性能效果。
EfficientNetV2[2]模型是Google團(tuán)隊(duì)在CVPR2021上提出的對(duì)EfficientNet模型的升級(jí)版本。EfficientNetV2模型相比較于EfficientNet,它擁有更高的性能和更短的訓(xùn)練周期。EfficientNetV2分為Stage0到Stage7。第0個(gè)Stage是一個(gè)卷積核大小為3×3步距為2的普通卷積層,之后的Stage1~Stage3和Stage4~Stage6分別是在重復(fù)堆疊Fused-MBConv和MBConv結(jié)構(gòu),而Stage7由一個(gè)普通的1x1的卷積層。EfficientNetV2模型在Stage4~Stage6中都使用了通道注意力機(jī)制,即SE(Squeeze-and-Excitation)壓縮-激勵(lì)模塊[3]。
針對(duì)上述情況,本文從通道注意力機(jī)制SE模塊和各階段堆疊次數(shù)對(duì)EfficientNetV2進(jìn)行優(yōu)化,提出的輕量化EfficientNetV2網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 本文提出的輕量化EfficientV2網(wǎng)絡(luò)模型
一方面,EfficientNetV2模型在Stage4~Stage6中使用的通道注意力機(jī)制是SE模塊,其全局平均池化層和兩個(gè)全連接層構(gòu)成的殘差結(jié)構(gòu)產(chǎn)生的冗余的參數(shù)量會(huì)增加網(wǎng)絡(luò)的計(jì)算負(fù)擔(dān)。針對(duì)這種情況,本文采用更加輕量化的注意力機(jī)制高效通道注意力模塊ECA來代替SE模塊,減少了模型參數(shù)量和提升網(wǎng)絡(luò)的運(yùn)算效率。
另一方面,上述網(wǎng)絡(luò)每個(gè)階段的堆疊次數(shù)隨著網(wǎng)絡(luò)層數(shù)的加深大致呈指數(shù)型增長(zhǎng),影響了網(wǎng)絡(luò)模型的計(jì)算速度,還有可能導(dǎo)致梯度消失的問題。本算法重新定義網(wǎng)絡(luò)各階段重復(fù)堆疊的次數(shù)減少各階段網(wǎng)絡(luò)堆疊次數(shù),在保證網(wǎng)絡(luò)準(zhǔn)確率的情況下實(shí)現(xiàn)網(wǎng)絡(luò)的輕量化改造。
在EfficientNetV2網(wǎng)絡(luò)中,通道注意力機(jī)制使用了SENet,是在CVPR2017上首次被提出的,其中心思想是動(dòng)態(tài)調(diào)節(jié)特征矩陣各層的重要程度,但SENet不利于網(wǎng)絡(luò)模型的輕量化,影響了網(wǎng)絡(luò)模型的計(jì)算速度還有可能導(dǎo)致梯度消失的問題。
ECA(Efficient Channel Attention)高效通道注意力模塊正是一種不降維的局部跨信道交互策略,其通過非線性自適應(yīng)確定的一維卷積來實(shí)現(xiàn)。因此本文使用ECA模塊既避免了維度縮減,又有效捕獲了跨通道交互。如圖2所示,ECA模塊去掉了SE模塊的2層全連接層,采用一維卷積。實(shí)驗(yàn)證明,這種方法可以保證運(yùn)算效率和檢測(cè)準(zhǔn)確性。此外,ECA模塊可以通過大小為k的快速一維卷積有效實(shí)現(xiàn),其中內(nèi)核大小k代表本地跨通道交互的覆蓋范圍。
圖2 ECANet模塊結(jié)構(gòu)示意圖
本文將注意力機(jī)制 SE模塊改進(jìn)為 ECA模塊,既避免降維導(dǎo)致的副作用,提高了網(wǎng)絡(luò)模型的精度,同時(shí)大大減少了參數(shù)量,簡(jiǎn)化了網(wǎng)絡(luò)模型架構(gòu),提高了網(wǎng)絡(luò)的運(yùn)行速率,實(shí)現(xiàn)網(wǎng)絡(luò)輕量化的構(gòu)想。
在EfficientNetV2網(wǎng)絡(luò)中,隨著網(wǎng)絡(luò)深度的增加,每層的重復(fù)堆疊次數(shù)大致呈指數(shù)型增長(zhǎng),其會(huì)大大減慢訓(xùn)練和測(cè)試過程。故本節(jié)重新定義EfficientNetV2每個(gè)階段的重復(fù)次數(shù)。在原網(wǎng)絡(luò)中,Stage1~Stage6中Fuse-MBconv(MBConv)的重復(fù)次數(shù)為[2,4,4,6,9,15],而本文將每階段的重復(fù)次數(shù)調(diào)整為[1,2,1,3,3,6]。
原網(wǎng)絡(luò)層數(shù)復(fù)雜,所消耗的計(jì)算資源多。因此對(duì)原網(wǎng)絡(luò)的簡(jiǎn)化,保留了網(wǎng)絡(luò)中的核心架構(gòu),減少了網(wǎng)絡(luò)參數(shù),簡(jiǎn)化了計(jì)算量同時(shí)也能達(dá)到很好的分類檢測(cè)效果。
本節(jié)首先介紹了實(shí)驗(yàn)數(shù)據(jù)集,其次是實(shí)驗(yàn)環(huán)境和實(shí)驗(yàn)參數(shù)的設(shè)置,最后分析模型的效果,并與修改前的網(wǎng)絡(luò)和現(xiàn)有換臉檢測(cè)方法做對(duì)比。
本文所使用的數(shù)據(jù)集是FaceForensics++(FF++)[4],包含1000段來自于YouTube上的真實(shí)視頻,基于DeepFakes,F(xiàn)ace2Face,F(xiàn)aceSwap,F(xiàn)aceShifter,NeutralTextures五種篡改方式進(jìn)行面部圖像的篡改合成。此外為了生成質(zhì)量等級(jí)不同的視頻,其使用由兩種不同壓縮率,即高質(zhì)量HQ(c23)和低質(zhì)量LQ(c40)。本文選取了DeepFakes、Face2Face、FaceSwap、FaceShifter、NeutralTextures五種篡改方式的數(shù)據(jù)集作為本實(shí)驗(yàn)的數(shù)據(jù)集,將每段視頻取30幀的方式得到實(shí)驗(yàn)樣本的數(shù)據(jù)集。
本文實(shí)驗(yàn)使用CPU為Intel(R) Xeon(R) Silver 4210R CPU @ 2.40GHz,顯卡為NVIDIA GeForce RTX 3080,CUDA版本為11.5。深度學(xué)習(xí)框架使用pytorch,版本為1.10.0。為提高模型分類精度和訓(xùn)練效率,本文實(shí)驗(yàn)的損失函數(shù)為CrossEntropyLoss,采用Adam優(yōu)化器進(jìn)行優(yōu)化,學(xué)習(xí)率為3e-4,每次實(shí)驗(yàn)訓(xùn)練200輪,實(shí)驗(yàn)采用準(zhǔn)確率(Acc)作為評(píng)價(jià)指標(biāo)。
2.3.1 改進(jìn)后的參數(shù)量的變化
本小節(jié)將提出的網(wǎng)絡(luò)與原EfficientNetV2網(wǎng)絡(luò)在參數(shù)量方面進(jìn)行比較,通過實(shí)驗(yàn)可知:EfficientNetV2、只使用ECA模塊、只簡(jiǎn)化每個(gè)階段stag和簡(jiǎn)化每個(gè)階段Stage&ECA模塊的參數(shù)量分別為20.78 M、17.12 M、8.67 M和7.32 M。從結(jié)果來看,不管是簡(jiǎn)化每個(gè)階段的重復(fù)次數(shù)還是用ECA模塊替換原SENet,在網(wǎng)絡(luò)參數(shù)上都有了明顯的減少,三種方法的參數(shù)量較原模型分別減少了17.61%、58.28%和64.78%,提高了運(yùn)算速度,符合本文輕量化網(wǎng)絡(luò)的目的。
2.3.2 ECA模塊
在本節(jié),我們將只替換ECA模塊得到的網(wǎng)絡(luò)結(jié)構(gòu)與EfficientNetV2在FaceForensice++(FF++)數(shù)據(jù)集的5種篡改類型上的每輪訓(xùn)練所需要的平均時(shí)間(秒)和檢測(cè)準(zhǔn)確率進(jìn)行比較,結(jié)果圖3所示。
圖3 在基于c23和c40的五種篡改方式數(shù)據(jù)集上訓(xùn)練一輪所需時(shí)間的對(duì)比(0:Deepfakes 1:Face2Face 2:FaceShifter 3:FaceSwap 4:NeuralTextures)
在原EfficientNetV2模型基礎(chǔ)上將SE模塊修改為ECA,在訓(xùn)練時(shí)間上發(fā)生了顯著的變化。首先對(duì)于5種篡改方式,在訓(xùn)練時(shí)間上都有顯著的縮短,整體上大約下降了6.17%,在提高網(wǎng)絡(luò)模型的運(yùn)算效率方面有了顯著的改善。因此,這項(xiàng)實(shí)驗(yàn)證明了本文的想法在提高網(wǎng)絡(luò)效率,構(gòu)造輕量化網(wǎng)絡(luò)模型方向上是可行的。
此外,在原EfficientNetV2模型基礎(chǔ)上將SE模塊修改為ECA,在準(zhǔn)確率Acc方面表現(xiàn)不俗,除了FaceSwap和NeuralTextures在c40上準(zhǔn)確率Acc略微下降外,其余的準(zhǔn)確率都有上升。具體如表1所示:
表1 與EfficientNetV2準(zhǔn)確率的對(duì)比
2.3.3 與其他模型的比較
將本文方法與其他方法在FaceForensice++壓縮率為c40的低質(zhì)量數(shù)據(jù)集上的4種篡改類型上的檢測(cè)準(zhǔn)確率進(jìn)行比較,結(jié)果如表2所示。對(duì)比實(shí)驗(yàn)結(jié)果如下:
表2 與其他方式對(duì)比實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果表明:在僅使用ECA模塊的模型(Ours1)和簡(jiǎn)化每個(gè)階段Stage并且使用ECA模塊的模型(Ours2)上,雖在FaceSwap和NeuralTextures兩種篡改方式上準(zhǔn)確率略微下降,而在DeepFakes和Face2Face的篡改方式上,準(zhǔn)確率都有較為明顯的提升,并且在綜合所有篡改方式進(jìn)行測(cè)試時(shí),本文的兩種模型都比EfficientNetV2模型有著較為明顯的提升。更重要的是,兩種模型的參數(shù)量比原模型分別減少了17.61%和64.78%,所需要的運(yùn)算時(shí)間也大幅度提升。因此本文算法將EfficientNetV2輕量化改造后,模型的參數(shù)量和訓(xùn)練時(shí)間都大幅度降低,在保證檢測(cè)準(zhǔn)確度的情況下,能夠更加高效的完成換臉檢測(cè)任務(wù),輕量化構(gòu)想有效可行。
本文基于EfficientNetV2網(wǎng)絡(luò),提出一種輕量化的換臉檢測(cè)模型。首先,將注意力機(jī)制SE模塊改進(jìn)為ECA模塊,減少了模型的參數(shù)量;其次,對(duì)網(wǎng)絡(luò)架構(gòu)進(jìn)行優(yōu)化,將原始EfficientNetV2特征提取模塊中的各個(gè)stage(階段)的卷積層數(shù)進(jìn)行調(diào)整,簡(jiǎn)化了網(wǎng)絡(luò)模型架構(gòu),提高了網(wǎng)絡(luò)模型的運(yùn)算效率。