deepfake detection比赛链接https://www.kaggle.com/competitions/multi-ffdi
训练分类模型判别图片是否为AI生成图片,探究不同数据增强方法对模型表现的影响。
1、数据增强方法
图像分类任务中常见的数据增强方法:
(1) 几何变换:
- 随机裁剪(Random Cropping):随机从原始图像中裁剪出固定大小的区域,这有助于模型学习不同位置的特征。
transforms.RandomCrop(128)
- 随机缩放(Random Scaling):对图像进行随机缩放,增加模型对不同尺度对象的识别能力。在本次任务中,将训练和验证数据统一resize到(256, 256),使所有数据相同大小的分辨率,又能够减少显存占用。
transforms.RandomResizedCrop(256)
- 随机旋转(Random Rotation):随机选择一个角度对图像进行旋转,有助于模型学习不同角度的视觉特征。
transforms.RandomRotation(degrees=(-45, 45))
- 随机翻转(Random Flip):以一定的概率对图像进行水平或垂直翻转,增加数据的多样性。
transforms.RandomHorizontalFlip()
transforms.RandomVerticalFlip()
(2) 颜色和光照变换
-
颜色抖动(Color Jittering):随机调整图像的亮度、对比度、饱和度和色调,使模型更具鲁棒性。
transforms.ColorJitter(brightness=0.4, contrast=0.4, saturation=0.4, hue=0.1)
-
随机灰度变换(Random Grayscale):以一定概率将图像转换为灰度图像,这种变换可以降低模型对颜色的依赖,增加泛化能力。
transforms.RandomGrayscale(0.8)
-
随机色彩噪声(Random Color Noise):向图像中添加随机颜色噪声,模拟真实场景中的光照变化和传感器噪声。
(3) 空间变换
- 弹性变形(Elastic Distortion):通过对图像进行局部扭曲,模拟图像变形的情况,增加模型对形变的鲁棒性。
(4) 混合增强
- Mixup:将两幅图像按照一定比例进行混合,即生成一个新的图像,标签则按照比例混合。这有助于模型更好地处理类别之间的边界和提升泛化能力。
- Cutmix:通过将一个图像的一部分剪切并粘贴到另一个图像上来创建新的训练样本。
2、实验对比不同数据增强方法的效果
代码来自:https://www.kaggle.com/code/chg0901/0-98-deepfake-ffdi-ways-to-defeat-0-86-beseline
数据增强方法 | 验证集acc |
---|---|
水平方向和垂直房向的翻转 | 78.75% |
RandomCrop(128) | 79.22% |