Learning to Detect Fake Face Images in the Wild

關鍵字:forgery detection, GAN, Contrastive loss, deep learning, fully convolutional network.網絡

如今篡改檢測存在的問題:很難發現GAN網絡生成圖像的可區別的共性特徵。app

論文提出的檢測方法:提出了一個深度篡改判別器[\(DeepFD\)],是一個二分類的判別器,採用對比損失函數來尋找不一樣GAN網絡生成圖像的共同特徵,而後經過級聯一個分類器來對上一步找到的特徵進行分類。框架

實驗採用的數據集:\(CelebA\)和各類GAN網絡生成的數據集,包括\(DCGAN、WGAP、WGAN-GP、LSGAN、PGGAN\)dom

實驗的結果:提出的\(DeepFD\)在對如今流行GAN網絡生成圖像的檢測中實現了94.7%的準確率。函數


[補充] 對比損失函數性能

  • \(caffe\)的孿生神經網絡(\(siamese\) \(network\))中,採用的損失函數是對比損失函數[\(contrastive\)\(loss\)],其表示爲:

\(L=\frac{1}{2N}\sum_{n=1}^Nyd^2+(1-y)max(margin-d,0)^2\)學習

  • 該損失函數最初的提出是在\(Yann\)$ LeCun$的Dimensionality Reduction by Learning an Invariant Mapping提出的,主要是用在降維中,即原本類似的樣本,在通過降維(特徵提取)後,在特徵空間中,兩個樣本仍舊類似;而本來不類似的樣本,在通過降維後,在特徵空間中,兩個樣本仍舊不類似。
  • 觀察上面的對比損失函數,這種損失函數能夠很好的表達成對樣本的匹配程度,也可以很好用於訓練提取特徵的模型。當\(y=1\)(即樣本類似)時,損失函數只剩下\(∑yd^2\),即本來類似的樣本,若是在特徵空間的歐式距離較大,則說明當前的模型很差,所以加大損失。而當\(y=0\)時(即樣本不類似)時,損失函數爲\(∑(1−y)max(margin−d,0)^2\),即當樣本不類似時,其特徵空間的歐式距離反而小的話,損失值會變大,這也正好符號咱們的要求。
  • lYGMn0.png
  • 這張圖表示的就是損失函數值與樣本特徵的歐式距離之間的關係,其中紅色虛線表示的是類似樣本的損失值,藍色實線表示的不類似樣本的損失值。

1. 過往研究

  • 圖像篡改檢測分爲兩類:外在特徵[\(extrinsic\) \(feature\)]和內在特徵[\(intrinsic\) $ feature$]。
  • 外在特徵是指將原始圖片內嵌入惟一的信號,當收到這個圖片的時候經過這個嵌入的信號來檢測圖像是否被修改。例如,水印。缺點是須要提早知道被嵌入的信號內容。
  • 內在特徵是指發現原始圖像內在不變的特徵,被篡改的圖像應該可以經過檢測提取出的統計屬性來判斷固有的屬性是否發生變化。
  • 相關研究:經過檢測元件噪聲、重壓縮[\(JPEG\)格式]等線索來判斷圖像是否被篡改。
  • 本文提出了一種神經網絡:\(deep\) \(forgery\) $discriminator $ [\(Deep FD\)]來檢測\(GAN\)網絡生成的圖像。收集的不一樣GAN網絡生成的圖片來做爲訓練集,在這些訓練集上,讓採用對比損失函數的\(DeepFD\)網絡經過成對的訓練集學到共同的鑑別特徵。
  • 本文的貢獻:提出一種基於對比損失函數的神經網絡\(DeepFD\)來檢測GAN網絡生成的圖像。\(DeepFD\)可以定位[\(localize\)]篡改圖像的非真實的細節。

2. DeepFD 網絡框架

2.1 網絡結構

lYyTc6.png

    \(DeepFD\)包括兩個階段,第一個階段是經過收集的數據和真實的圖像來基於對比函數來學到共同的特徵\(D1\),第二階段是經過判別器(分類器\(D2\))對\(D1\)進行分類。(分類器\(D2\)直接級聯到\(D1\)網絡的第四層)網絡的詳細參數以下:測試

lYgEpn.png


2.2 數據集

lYR8L6.png

    [Note] \(C(N_t,2)\)是排列組合的意思。優化


2.3 共同特徵學習階段

    輸入集的輸入是以對爲標準的,記\(R_i=D_1(X_i)\),共同特徵學習的目的是最小化\(E_w(X_1,X_2)\)spa

\[E_w=||D_1(X_1)-D_1(X_2)|| \]

    直接最小化\(E_w(X_1,X_2)\)能夠將特徵表示\(D_1(X_i)\)映射爲常含數。這會致使特徵表示沒有意義。

因此咱們採用對比損失函數:

\[L(W,(P,x_1,x_2))=1/2(p_{ij}(E_w)^2+(1-p_{ij})(max(0,m-E_w)^2)) \]

    其中\(p_{ij}\)表示兩個樣本是否類似,\(m\)爲閾值。以這種方式,能夠學習由不一樣GAN生成的僞圖像的共同特徵。若是\(p_{ij}=1\),經過對比損失函數,特徵表示\(D_1(X_i)\)會更加類似\(D_1(X_j)\)。經過基於比對損失函數的迭代訓練,共同特徵很快即可學習到。


2.4 分類器學習階段

    分類器能夠採用SVM,隨機森林分類器,拜耳分類器。本文采用的卷積神經網絡做爲分類器,這樣會造成一個端對端的網絡結構。卷積神經網絡的損失函數採用交叉熵,採用反向傳播訓練。

\[L_C(x_i,y_i)=-\sum_{i}^{N_t}(D_2(D_1(x_i))log(y_i)) \]


3. 實驗結果

3.1 實驗參數

    數據集:\(CelebA\)和5中GAN網絡,分別爲\(DCGAN、WGAP、WGAN-GP、LSGAN、PGGAN\)

    數據數量:每一個GAN網絡生成200000個64×64大小的篡改圖像池。對於\(PGGAN\)生成的高像素圖像,咱們採用下采樣來造成64×64大小的圖像。最後選擇出400198做爲訓練數據集和5000做爲測試數據集。

    網絡參數:D1和D2學習率le-3,最大訓練epoch爲15,對比損失函數閾值m爲0.5.Adam optimizer 優化。batch大小爲32。在前兩個epoch中,只採用成對的數據來訓練D1,在這以後,訓練D2。

    爲了實驗的嚴謹,我和傳統的實驗進行對比而且設計了基準方法。同時也採用了不一樣的分類器,例如RFC (Random forest classifier), SVM (Support vector machine), and LC(Linear classifier)。


3.2 對比結果

    圖2展現了對比損失函數趨於穩定在25000次迭代(第2個epoch)上。

lYqSoR.png

    圖三展現了在不包括LSGAN訓練集,提出的\(DeepFD\)在採用對比損失函數和沒有采用的狀況下,性能的對比。

lYqBlT.png

    表二展現了和其它研究對比結果

lYLKHJ.png

    LSGN顯示了較少不切實際的細節圖片。

    問題 ???


3.3 可視化篡改圖片不真實的細節

    \(DeepFD\)採用全卷積神經網絡,能夠將特徵圖可視化來定位篡改圖像中不真實的細節。受引用[14]的啓發,在分類器D2的最後一個卷積層中有兩個通道,致使該層的學習目標將傾向於學習高激活特徵表示,這能夠被視爲不切實際的細節定位。PGGAN生成的篡改圖像的六個可視化結果如圖4所示。

lYx1lq.png

    [問題]:這個定位不真實細節是如何實現的。


4. 結論

    對比損失函數可用於很好地捕獲由不一樣GAN生成的篡改圖像的共同判別特徵。 此外,提出的分類器細化過程進一步提升了分類性能,可用於可視化假圖像中的不真實細節。 咱們的實驗結果代表,該方法在準確性和查全率方面優於其餘基準方法。

相關文章
相關標籤/搜索