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)