162、数据增强策略:在超分任务中提升模型泛化能力的旋转、裁剪与噪声注入
162、数据增强策略:在超分任务中提升模型泛化能力的旋转、裁剪与噪声注入去年做遥感图像超分项目时,我遇到一个让人头疼的问题:模型在训练集上PSNR飙到38dB,一到真实卫星影像就掉到32dB。排查了三天,最后发现是数据增强没做对——训练时只用了随机裁剪,模型学会了“记住”特定纹理的排列方式,而不是真正理解高频细节的恢复逻辑。这个教训让我重新审视了超分任务中数据增强的每个细节。旋转:别让模型学会“方向偏好”很多同学在超分任务里直接套用分类网络的旋转增强——随机旋转0°、90°、180°、270°。这在超分里有个隐藏陷阱:图像的方向性纹理会被模型错误地当作先验知识。比如草地纹理在0°和90°下统计特性完全不同,模型如果看到所有训练样本都是水平排列的草叶,遇到垂直方向的草叶就会产生伪影。我的做法是分两步走。第一步,对HR-LR图像对做同步旋转,保证HR和LR的空间对应关系不变。这里踩过坑:曾经图省事只旋转LR,HR保持原样,结果模型学到的映射关系完全错乱,重建出来的图像像被揉过的纸团。第二步,控制旋转角度范围。对于自然图像(风景、人脸),我通常只做±15°的小角度旋转,配合水平翻转。对于遥感图像或医学影像这种方向性不敏感的数据,才放开到90°的倍数。别这样写:if random.random() 0.5: img = rotate(img, 90)——这种硬编码会让模型在特定角度上过拟合。实际代码里我会这样处理: