第12名方案简述
第12名方案简述
作者:Atsamaz Gatsoev
比赛排名:第12名
免责声明:这是我第一次参加计算机视觉(CV)比赛,如果我的代码或方法有什么不妥之处,请大家见谅。
数据准备
- 第1个数据集:从每个视频中提取单帧随机画面
- 第2个数据集:从每个视频中提取10帧随机画面(用于堆叠)
- 使用来自 Blazeface (@humananalog kernel) 进行人脸提取
- 输出图像调整为 256x256
- 主要的数据增强是 JPEG 压缩和缩小,概率为 0.5
- 辅助的数据增强(并非同时使用):模糊、高斯噪声、随机亮度、水平翻转
- 对于单模型训练,通过过采样来平衡类别;对于堆叠模型训练,通过欠采样来平衡类别
模型
- EfficientNet B0-B6 (imagenet)
- EfficientNet B1-B6 (noisy student)
Efficientnet 让我在 Public LB(公开排行榜)上获得了巨大的提升,但更重要的是为这类模型选择合适的数据增强和超参数。
训练与验证
我选取了 #40-49 的数据块作为验证集,它与 LB 的相关性很好(大约 10% 的差异),每个模型的输入尺寸均为 256x256。
- 单模型训练:输入尺寸取决于模型(从 224 到 260),Adam 优化器(lr=1e-4),StepLR(step=2, gamma=0.1)
- 堆叠模型训练:输入尺寸 256x256,Adam 优化器(lr=1e-3)
每个模型大约训练 3-5 个 epoch 就会开始过拟合。
堆叠与集成
我在第一个数据集上训练了一堆不错的单模型,Public LB 分数在 0.38-0.4 之间,然后使用第二个数据集将不同的模型组合成堆叠模型。
然后我从这次实验中选出了最好的 5 个堆叠模型,结合它们的验证分数进行了逐帧加权集成。
对我无效的尝试
- MesoNet, RNN - 在训练数据上欠拟合
- 强数据增强(例如 cutout, huesaturation, 90度旋转)
- 堆叠模型的堆叠 - 看起来像是过拟合了,但不是很严重
- FaceForensics++ - 我从这个数据集中最多只得到了 0.68 的 Public LB 分数