[論文読み] Learning Self-Consistency for Deepfake Detection

# はじめに
「Deepfake」は，深層学習に基づく画像生成技術により画像や動画上の顔を生成・加工する技術を指す．Deepfake画像は非常に精巧であり，フェイクニュースやなりすまし，証拠の改竄など多くの問題を引き起こす可能性が問題視されている．近年，Deepfakeにより生成された画像や動画を自動的に検出する研究が盛んに取り組まれている．
Deepfake検出は一般的にDeepfakeとRealの2クラス分類問題として扱われる．

今回，紹介する論文である「Learning Self-Consistency for Deepfake Detection」はAmazonが提案した手法である．

# 概要
Pair-Wise Self-Consistency Learning(PCL)-Inconsistency Image Generator(I2G)学習時に実際のDeepfake画像を必要としない自己教師あり学習ベースの手法である．
Real画像から疑似的なDeepfake画像を生成する生成器I2Gと特徴マップの一貫性が示される整合性マップを予測するモデルPCLで構成される．

# アプローチ
PCL-I2Gは，Deepfake画像の特徴マップの一貫性の予測に着目している．

## Inconsistency Image Generator(I2G)
I2GはReal画像から疑似的なDeepfake画像と特徴マップの一貫性を示す整合性マップ，ラベルを生成する．

![i2g.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3744226/e0a7b57f-325a-f43c-d9c1-ff31d9b8a5d6.png)

I2Gは3つの手順で疑似的なDeepfake画像と特徴マップの一貫性を示す整合性マップ，ラベルを生成する．

### 1，ソース画像とターゲット画像の選択
Real画像(ターゲット画像)$X^t$から顔の器官点を推定し，最も類似度の高い器官点の位置を持つ画像をReal画像群から探索してソース画像$X^s$とする．

### 2，マスクの生成
1で推定した器官点からソース画像$X^s$とターゲット画像$X^t$を合成するマスク$M$を生成する．生成するマスク$M$は，ターゲット画像$X^t$に対してソース画像$X^s$の合成領域を指定するものである．

### 3，合成
ターゲット画像$X^t$とソース画像$X^s$，生成したマスク$M$を用いてDeepfake画像$X^g$を生成する．
最後に，マスクにぼかしを施すことで特徴マップの一貫性を示す整合性マップを生成する．

## Pair-Wise Self-Consistency Learning(PCL)
PCLは，Real画像とI2Gが生成した疑似的なDeepfake画像と特徴マップの一貫性を示す整合性マップ，ラベルを用いて学習を行う．
PCLはソース特徴マップを抽出するBackboneと抽出したソース特徴マップに基づいてDeepfakeとRealの2クラスを予測するClassication Branch，ソース特徴マップを元に特徴マップの一貫性を予測するConsistency Branchで構成される．

![PCL.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3744226/d7827f01-38b4-c80c-a738-c0cafd9d3b9c.png)

### Backbone
Backboneでは，入力された画像からソース特徴マップを抽出して，抽出したソース特徴マップをClassication BranchとConsistency Branchに入力する．
BackboneにはImageNetで学習済みのResNet-34を用いている．

### Classication Branch
Consistency Branchでは，Backboneで抽出したソース特徴マップを畳み込み処理により埋め込む．そして，パッチに分割した特徴マップごとの類似度を計算することで特徴マップの一貫性を予測する．

### Consistency Branch
Classication Branchでは，Backboneで抽出したソース特徴マップに基づいてDeepfakeとRealの2クラスを予測する．

## 損失関数
損失関数は下記のように予測クラスと正解ラベルとのクロスエントロピー$L_{CLS}$と予測した整合性マップと正解の整合性マップのクロスエントロピー$L_{PCL}$の総和で定義される．λは損失の比率を調整する重みである．

```math
\begin{align}
    L = λL_{PCL} + L_{CLS}
\end{align}
```

# 実験
いくつかの実験を抜粋して結果を記載する．
Area Under Curve(AUC)で比較する．

## 実験1，FF++に対するAUC比較
5つの従来手法とPCL-I2GのFF++に対するAUCを比較する．
PCL-I2Gは従来のどの手法よりも高いAUCである．

![result4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3744226/8aa7bb54-6a73-948b-7378-54cab9cc4ded.png)

予測した整合性マップと正解の整合性マップの可視化結果．

![result_pic2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3744226/0540edec-6019-6847-bd54-77e6113e8bfc.png)

## 実験2，汎化性能の評価
FF++で学習した従来手法とI2Gで生成した疑似的なDeepfake画像で学習したPCL-I2GのDFR，CD，DFDC，DFDC-Pに対するAUCを比較する．
PCL-I2Gは汎化性能に優れていたFace X-Rayよりも高いAUCである．

![result5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3744226/11e7099e-205f-9e25-eb14-f21271ee6db5.png)

# まとめ
PCL-I2Gは実際のDeepfake画像ではなく疑似的なDeepfake画像を生成するI2Gと整合性マップを予測するPCLで構成される手法である．
実際のDeepfake画像を学習に用いていないにも関わらず従来の手法と比較して高い汎化性能を持ち，似たアプローチであるFace X-Rayよりも高性能な手法である．

# 参考文献
論文：Learning Self-Consistency for Deepfake Detection
LINK：https://arxiv.org/abs/2012.09311

# 備考
・公式の実装
なし
・非公式の実装
https://github.com/jtchen0528/PCL-I2G
https://github.com/Dreemurr-T/Deepfake-Detection-based-on-self-consistency