返回列表

Silver zone solo, no credits used.

374. Deepfake Detection Challenge | deepfake-detection-challenge

开始: 2019-12-11 结束: 2020-04-23 AI安全与对抗 数据算法赛
Silver zone solo, no credits used.

银牌区独行侠,未使用积分

作者:Victor Paslay
比赛排名:第 44 名

我很遗憾没有早点参加这次比赛,我只进行了一个月的强化工作。这应该是我获得的第一枚银牌。我读过很多关于如何获得高分的文章,其中许多都缺少一个细节:有些人为了攀登高峰付出了巨大的努力——这是一个非常重要的细节。当我读到诸如“我每天在这个比赛上工作10小时”这样的评论时,我简直不敢相信(也许有点夸张),在此之前我想的是——好吧,每周2-3小时。这次我部分辞去了工作,因为我想认真参加 Kaggle 比赛,加上我的工作中没有计算机视觉经验,而 DFDC(Deepfake Detection Challenge)对我来说似乎非常有趣。最后,我可以说我平均每周在这个比赛上花费 30-40 小时,周末也在工作。我没有使用任何外部机器进行训练,我加入得晚,无法使用积分。我的电脑配置是 32 GB 内存,128 GB SSD + 256 GB SSD,GeForce GTX 1080 Ti。SSD 在这次比赛中帮了大忙。

我相信对我来说主要的“神奇之处”在于正确的训练-验证技术。例如,我训练了 EfficientNetB1,它接收 224x224 的图像作为输入,并输出一个二进制数(假或真),使用了以下数据组织方式:

对于每个 epoch:

  • 从唯一的真实视频中选取单张人脸图像(随机帧)。
  • 选择随机假视频,该视频源自某个真实视频,方式是你不要选取两个或更多源自同一个唯一真实视频的假视频。然后从每个假视频中选取随机帧和随机人脸。最终你会得到与真实样本数量相同的下采样假样本。
  • 每个 epoch 你都随机选取人脸/帧/视频。
  • 此外,你需要在所有 epoch 中按固定的文件夹方式划分训练/验证集。

1 个 EPOCH 只需要 5-10 分钟(如果你把所有图像都提取到了 SSD 上)!整个训练只需要 1-1.5 小时!最终我的不同模型验证分数大约在 0.22 到 0.25 之间。

在推理过程中,我提取了 20 帧,对它们进行分类,并计算预测值的中位数。

我还训练了 LRCNN(以 EfficientNetB1 为骨干网络),其输入仅为 3 个连续帧。

我的最终解决方案是三个单帧模型的平均值(乘以 0.85)加上一个 LRCNN 模型(乘以 0.15)。

我尝试了太多太多的东西,我花了两天时间训练 Inception-ResNet V2,给电脑接了风扇,我甚至担心醒来时屋子里全是烟 :) 我相信如果一天有 50 小时而不是 24 小时,如果我和某人组队,我可以做得更好。这场比赛没有尽头,我们可以在这里应用无限多的方法。

我要感谢像 Human Analog 和 Shangqiu Li 这样的人——他们值得很多赞。也感谢大家的参与!

同比赛其他方案