DGM4人造DeepFake資料 —— Multi-Modal Media Manipulation Dataset
再造資料集的意義
此前的其他相關資料集
- 要麼是單模態的Fake
- 圖片篡改:
- 文字篡改
- 要麼是多模態小規模資料
- human-generated:
- out of context pairs:
並且都是二分類問題(單純分類為“是否”為fake資料)
DGM4資料集
- 規模大
- 文字-影像雙模態
- 標籤細(不再是單純的二分類標籤)
DGM4 生成方法
4種型別 | Swap | Attribute |
---|---|---|
Image(Face) | FS(換全臉) | FA(換面部表情) |
Text | TS | TA |
FS(Face Swap):
對資料來源\(O\)中的圖片集\(O_{img}\)的每張圖片(\(\forall I_o \in O_{img}\))
- 從
CelebA-HQ
資料集中選擇一張臉作為假臉:\(I_{celeb}^f\) - 隨機選擇換臉模型:
SimSwap
&InfoSwap
二選一 - 換掉圖片\(I_o\)中最大的臉 \(I_o^f\)
- 猜測:這裡應該是
- 識別圖片中所有臉(但人臉識別用的什麼模型?)
- 選擇最大的臉\(I_o^f\)
- 猜測:這裡應該是
- 最終得到
- 換臉樣本:\(I_s\)
- 換臉的框框(
MTCNN
BBox, Multi-task Cascaded Convolutional Networks Bounding Box):\(y_{box} = \{x_1, y_1, x_2, y_2\}\) (左上角和右下角座標)
FA(Face Attribute)
對資料來源\(O\)中的圖片集\(O_{img}\)的每張圖片(\(\forall I_o \in O_{img}\))
- 選擇最大的臉:\(I_o^f\)
- 預測它的面部表情:使用
CNN-based Network
- 疑問:分類模型具體啥樣?“反面”表情如何定義的?
- 生成反面表情 \(I_{emo}^f\):使用
HFGI
和StyleClip
(GAN-based method
) - 將\(I_{emo}^f\)重新渲染到\(I_o\)上
- 最終得到
- 換表情樣本: \(I_a\)
- 假臉框框:\(y_{box}\)
TS(Text Swap)
給定一條文字\(T_o\)
- 使用
NER
模型,獲取文字中的一個名字,query: 'PER' - 從資料來源\(O\)中拿到另一條文字\(T_o^{\prime}\)
- 計算\(T_o\)和\(T_o^{\prime}\)透過
Sentence-BERT
生成的embedding(向量) - 計算兩個embedding向量的餘弦相似度,只有當相似度很低時,\(T_o^{\prime}\)是可以用來作為假文字\(T_s \leftarrow T_o^{\prime}\),其中\(T_s\)含有\(M\)個單詞
- 否則返回步驟2重新尋找\(T_o^{\prime}\)
- 最終得到
- 假文字: \(T_s\)
- \(y_{tok} = \{y_i | y_i=0/1, i=1...M\}\),其中\(y_i=1\)表示\(T_s\)的第i個單詞是假的
TA(Text Attribute)
- 使用
RoBERTa
將所有文字按情感分為正負中三個子集\(\{O_+, O_-, O_{neu}\}\)
給定一條文字\(T_o\)
- 獲取\(T_o\)所有情感詞
- 為每個情感詞,用
B-GST
模型生成反向情感文字(不是詞?)作為替換 - 最終得到
- 假文字:\(T_a\)
- \(y_{tok}\)
結合
- 得到4種造假方法各自生成的東西: \(I_s, I_a, T_s, T_a\)以及原始文字對\(I_o, T_o\)
- 生成樣本集\(P = \{p_m | p_m = (I_x, T_y), x,y \in \{o, s, a\}\}, o\)表示original
- 同時,每個\(p_m\)都有以下標籤
- \(y_{bin}\)二分類標籤(猜測:表示是否被替換)
- \(y_{mul} = \{y_j| y_j = 0/1, j=1...4\}\):一個4維向量,就是{FS, FA, TS, TA}的one-hot編碼
- \(y_{box}\)
- \(y_{tok}\)
- 最後從\(P\)中選取一半的樣本做image perturbations(影像擾動),擾動方式
- JPEG壓縮
- 高斯濾波(gausian blur)