姚昆侖,李 鵬
(湘潭大學(xué)自動(dòng)化與電子信息學(xué)院,湖南 湘潭 411105)
深度偽造指的是使用深度學(xué)習(xí)方法讓理智的觀察者錯(cuò)誤地將某段偽造的音視頻視為個(gè)人真實(shí)言語或行為的方法,其推動(dòng)了文娛事業(yè)的發(fā)展,同時(shí)也可能誤導(dǎo)輿論,擾亂社會(huì)秩序以及威脅人臉識(shí)別系統(tǒng)。傳統(tǒng)圖像取證法檢測準(zhǔn)確率低,且可通過在偽造影像中加入噪聲的方式繞過[1]?;谏疃葘W(xué)習(xí)的偽造檢測技術(shù)大致可以分為兩類:一類是基于CNN架構(gòu)和損失函數(shù)來直接檢測偽造圖像,另一類是通過真?zhèn)螆D像頻譜中的差異化分析,找出特定的GAN指紋特征 ,最終實(shí)現(xiàn)對(duì)偽造圖像的識(shí)別?;贑NN架構(gòu)和損失函數(shù)的方法準(zhǔn)確率較高,但計(jì)算量大,目前僅在較小的數(shù)據(jù)集上實(shí)驗(yàn)?;贕AN指紋特征的方法則可通過選用無指紋特征的GAN來規(guī)避檢測,且GAN技術(shù)發(fā)展迅速,該方法不具備通用性。本文提出的方法屬于第一類方法,使用膠囊網(wǎng)絡(luò)架構(gòu)取代原網(wǎng)絡(luò)中CNN架構(gòu),在準(zhǔn)確率不變的情況下極大減少了實(shí)驗(yàn)參數(shù),降低了計(jì)算復(fù)雜度[2]。
膠囊網(wǎng)絡(luò)是2017年有“深度學(xué)習(xí)之父”之稱的Hinton等人[1]提出的,用以彌補(bǔ)卷積神經(jīng)網(wǎng)絡(luò)不足的新的深度學(xué)習(xí)方法。膠囊是由多個(gè)卷積構(gòu)成的集合,用來代表一類特征。多個(gè)膠囊構(gòu)成膠囊層,膠囊層之間以動(dòng)態(tài)路由的方式傳遞信息[3]。
特征出現(xiàn)的概率由膠囊輸出的向量的長度表示,因此,輸出向量需要使用非線性壓縮函數(shù)將向量的長度壓縮至0到1之間,以滿足數(shù)學(xué)邏輯。非線性壓縮函數(shù)squash如下:
式中,vj為膠囊j的向量輸出;sj為向量j的總輸出。
膠囊的總輸入sj是上一層膠囊的預(yù)測向量的加權(quán)和,預(yù)測向量有上層膠囊的輸出與變換矩陣相乘得到。
為了使膠囊層i與高級(jí)膠囊層j之間的耦合系數(shù)之和為1,使概率分布符合數(shù)學(xué)邏輯,使用softmax方程來確定cij。
圖1 膠囊層連接示意
本文提出的深度偽造檢測方法流程如圖2所示。預(yù)處理的任務(wù)取決于輸入的類型,如果輸入是視頻,則第一步是分離幀。如果輸入是一幀或者一張圖片,則將如數(shù)分離為patch。通常的輸入尺寸為100×100到300×300,輸入越大結(jié)果就越好,但需要更多計(jì)算能力[4]。
圖2 基于膠囊網(wǎng)絡(luò)的深度偽造檢測方法流程圖
后期處理單元根據(jù)預(yù)處理單元進(jìn)行工作。如果任務(wù)是檢測虛假圖像,則將提取的patch分?jǐn)?shù)平均;如果輸入是視頻,則將所有幀的分?jǐn)?shù)平均。最終的得到輸出[5]。
本文提出的膠囊深度偽造檢測詳細(xì)架構(gòu)如圖3所示。主膠囊層包含多個(gè)膠囊,每個(gè)膠囊分為三個(gè)部分:二維卷積部分、統(tǒng)計(jì)池化層(Stats Pooling)和一維卷積部分。論文證明統(tǒng)計(jì)池化層在偽造檢測任務(wù)中是十分有效的,統(tǒng)計(jì)池化后的輸出適用于一維卷積。[6]經(jīng)過一維卷積后的輸出經(jīng)過動(dòng)態(tài)路由發(fā)送到輸出膠囊,由于本實(shí)驗(yàn)只需要做輸入的真假判斷,因此最終又輸出膠囊計(jì)算最終結(jié)果。
圖3 膠囊檢測網(wǎng)絡(luò)架構(gòu)
本實(shí)驗(yàn)采用了FaceForensics++數(shù)據(jù)集。該數(shù)據(jù)集包含了4 000個(gè)上傳自Youtube的視頻,其中包含1 000個(gè)原視頻,以及分別使用deepfake、Face2Face和FaceSwap技術(shù)進(jìn)行了偽造的視頻。數(shù)據(jù)集中訓(xùn)練集,驗(yàn)證集和測試集的數(shù)量分別為720、140和140個(gè)[7]。
為了減少計(jì)算量,在實(shí)驗(yàn)中對(duì)于訓(xùn)練集使用其前100幀,并裁減為300×300大??;對(duì)于驗(yàn)證集和測試集,僅使用其前10幀,同樣裁減為300×300大小。
本實(shí)驗(yàn)使用了XceptionNet[4]作為對(duì)照,該網(wǎng)絡(luò)在檢測深度偽造的圖像方面取得了最好的效果。但是XceptionNet是一個(gè)擁有超過2 000萬個(gè)參數(shù)的大型網(wǎng)絡(luò),使得其訓(xùn)練速度較慢[8]。
實(shí)驗(yàn)參數(shù)方面,本實(shí)驗(yàn)使用Adam優(yōu)化器,其中β1= 0.9,β2= 0.999,DropOut為0.05。動(dòng)態(tài)路由的k=0.5。
模型的準(zhǔn)確性和參數(shù)方面,首先,本文除了與XceptionNet比較外,還設(shè)計(jì)了實(shí)驗(yàn)對(duì)比不同初級(jí)膠囊個(gè)數(shù)對(duì)準(zhǔn)確性和參數(shù)的影響。實(shí)驗(yàn)經(jīng)過了25次迭代,表1顯示了3~10個(gè)初級(jí)膠囊對(duì)實(shí)驗(yàn)準(zhǔn)確性的影響??梢钥闯?,隨著初級(jí)膠囊增多,模型的準(zhǔn)確性逐漸增加,當(dāng)膠囊數(shù)量為8個(gè)時(shí),膠囊檢測網(wǎng)絡(luò)的準(zhǔn)確率已經(jīng)超過了XceptionNet的準(zhǔn)確率,同時(shí)參數(shù)量僅為XceptionNet的1/5[9]。
表1 不同膠囊數(shù)量的膠囊檢測網(wǎng)絡(luò)實(shí)驗(yàn)結(jié)果
同時(shí),盡管較少的膠囊使得網(wǎng)絡(luò)準(zhǔn)確率降低,但可以在不對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行重大更改的情況下輕量化網(wǎng)絡(luò),使得網(wǎng)絡(luò)移植到移動(dòng)端更加便利。
對(duì)數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行多分類對(duì)比,結(jié)果如表2所示,可以看到Face2Face偽造是兩個(gè)網(wǎng)絡(luò)中最難檢測的攻擊。XceptionNet在deepfake方式偽造檢測方面表現(xiàn)更好,準(zhǔn)確度為84.81%。總體而言,與XceptionNet相比,本文提出的方法在所有偽造方式上的性能更加均衡。
表2 FaceForensics++數(shù)據(jù)庫的多類分類準(zhǔn)確性對(duì)比
除了檢測偽造視頻,本實(shí)驗(yàn)還對(duì)膠囊檢測網(wǎng)絡(luò)進(jìn)行訓(xùn)練,使其可以對(duì)計(jì)算機(jī)生成的圖像(CGI)和攝影作品(PI)進(jìn)行分類。本實(shí)驗(yàn)使用了Rahmouni等人創(chuàng)建的數(shù)據(jù)集[7,8],CGI集包含取自5個(gè)大型3A游戲的1800張高分辨率屏幕截圖,像素為1920×1080。PI集包含從RAISE數(shù)據(jù)集中選擇的1800張高分辨率攝影圖像,像素為4900×3200[10]。
本實(shí)驗(yàn)將這些數(shù)據(jù)集分解為100×100大小的patch,因此輸入圖像的大小為100×100,通過計(jì)算所有patch的平均分類概率來計(jì)算完整圖片的準(zhǔn)確率。實(shí)驗(yàn)結(jié)果如表5.3所示,本實(shí)驗(yàn)提出的方法明顯優(yōu)于其他三個(gè)較新的分類方法,并且在完整圖片數(shù)據(jù)集上實(shí)驗(yàn)了100%的分類精度。
表3 對(duì)CGI和PI的分類準(zhǔn)確性
本文提出了基于膠囊網(wǎng)絡(luò)的深度偽造檢測方法,可以用于數(shù)字圖像和偽造視頻的檢測。[11]所做的改進(jìn)使得本實(shí)驗(yàn)提出的模型可以在使用更少參數(shù)的情況下持平甚至超過目前的檢測方法,從而降低計(jì)算成本。證明了該模型具有優(yōu)秀的適應(yīng)性,通過可視化膠囊輸出分析了膠囊檢測的工作原理[12]。