前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >二等奖 DeepFake 假脸挑战赛 项目记录

二等奖 DeepFake 假脸挑战赛 项目记录

作者头像
机器学习炼丹术
发布2020-07-14 11:05:35
7440
发布2020-07-14 11:05:35
举报

1 比赛概述

DeepFake技术是可以生成换脸的视频。这些内容生成和修改的技术可能会影响公共话语的质量或者侵犯他人的权力,尤其是考虑到这种伪造的视频可能被而已用来误导、操纵、骚扰和诈骗。

识别这种合成视频是一个要求高技术、且迫切需要的一种技术。这次挑战的目标是促使一种新算法的诞生,来帮助检测深层伪造的合成视频。

2 数据

这次比赛要预测的就是一个视频是否是伪造的,预测的是一个视频是假视频的概率。

给出的训练数据如下图:

3 Metric

比赛的评估就是用二分类交叉熵。

有意思的是,在比赛初期,很多人的成绩非常差的原因是,这里面的预测值1是fake,0是true,和一般的逻辑是反着的哈哈。

4 处理思路

这是一个视频分类任务,把视频分解成多个图像,然后用图像分类之后再汇总起来。

  • 一个视频有300多帧,我们均匀的取出17帧,然后从17帧中每一帧取出一个人脸图片。
  • 其中从视频帧中检测人脸使用的是MTCNN模型,然后保存的人脸图片中,有80.8%的都是Fake的人脸,有19.2%的是真实的,所以需要对样本进行筛选和正负样本的平衡。
  • 检测出来的人脸不一定都是人脸,所以这里需要去除一些噪音。
  • 在推理阶段,从一个视频中取出17帧,然后检测到17个人脸图片,然后得到17个图片是否被修改的17个概率。

这是两个被伪造的人脸:

这是能看出被伪造的。随机抽取一帧,然后检测人脸,然后将人脸图片截出来。

5 截取人脸

在截取人脸的时候,一般并不是检测到哪里,就只截取那部分的图片。截图到一个图,然后首先要把长方形扩展到正方形,然后再扩大1.5倍候选框。这样就可以保留更多一些人脸的细节:

黑色是模型检测出来的人脸,然后扩展成红色的正方形,然后再扩大1.5倍变成蓝色的

6 如何去除脏数据

这里设计了一个检测差异度的指标:

效果如下:

但是这个也有弊端,对于这种仅仅修改了鼻子的图片,这个指标就会这些微小修改的伪造图筛选掉:

最后实验证明,这个指标对最终精度的提升非常可观。机器学习关键还是数据呀!

7 如何平衡正负样本

使用欠采样来平衡。要求在一个batch内,每一个真实的人脸都有其对应的虚假的人脸。

  • 【真实样本】:随机找一个视频,然后从这个视频中的17帧图片中选取一个人脸;
  • 【伪造样本】:随机选取该真实视频对应的虚假视频之一,从选取17帧中随机选择一个人脸。

8 模型选用

EfficientNet效果最好了。

9 数据增强

关键在于使用ShiftScaleRotate(),提高0.02的成绩。

10 推理过程

  1. 一个视频,随机抽取17帧,去掉其中的无效帧(没有人脸)
  2. 预测人脸,得到置信度,然后将置信度按照顺序排列。
  3. 然后将置信度较大的8个图像,求置信度的平均值,大于0.5就按照这个提交成绩;小于0.5就按照全部人脸的置信度均值提交。(我也不知道为啥这样,其他的队友提出的建议2333)

11 具体参数

  1. optimizer:SGDM,momentum=0.9
  2. lr=0.001 学习率衰减策略,iter=60000的时候乘上0.1,iter=90000再乘上0.1
  3. batchz_size=16

喜欢的话请关注我们的微信公众号~【机器学习炼丹术】。

  • 公众号主要讲统计学,数据科学,机器学习,深度学习,以及一些参加Kaggle竞赛的经验。

微信搜索公众号:机器学习炼丹术。期待您的关注。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习炼丹术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 比赛概述
  • 2 数据
  • 3 Metric
  • 4 处理思路
  • 5 截取人脸
  • 6 如何去除脏数据
  • 7 如何平衡正负样本
  • 8 模型选用
  • 9 数据增强
  • 10 推理过程
  • 11 具体参数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档