我有来自DDSM乳房X光摄影的图像块,大小为150x150
。我想通过随机裁剪这些图像2次至120x120
大小来扩充我的数据集。因此,如果我的数据集包含6500
张图像,通过随机裁剪扩充后应该得到13000
张图像。问题是,我不希望丢失图像中的潜在信息,并且可能改变真实标签。
这样做的最佳方法是什么?我应该从150x150
随机裁剪到120x120
并希望结果最好,还是先填充它们然后进行裁剪?解决这个问题的标准方法是什么?
回答:
如果你的真实标签包含你试图分类的确切位置,请使用真实标签以有根据的方式裁剪你的图像。即,如果你移除了你试图分类的内容,请调整真实标签。
如果你不知道你正在分类的内容的位置,你可以
- 尝试在未增强的数据集上训练一个分类器,
- 找出你的分类器对图像的哪些区域有反应,
- 记录这些位置
- 以有根据的方式裁剪你的图像
- 训练一个新的分类器
但是,你如何“找出你的分类器对哪些区域有反应”?Zeiler和Fergus在《Visualizing and Understanding Convolutional Networks》中描述了多种方法:
想象你的分类器分类为乳腺癌或无乳腺癌。现在只需拿一张包含乳腺癌阳性信息的图像,用某种空白颜色遮挡图像的一部分(见上图中的灰色方块,Zeiler等人的图像),并预测癌症或无。现在移动遮挡的方块。最终,你将获得原始图像所有部分的粗略预测分数(见上图中的(d)),因为当你遮盖了负责阳性预测的重要部分时,你(应该)得到一个阴性癌症预测。
如果你有能够在图像中真正识别癌症的人,这也是检查并防范混杂因素的好方法。
顺便说一句:你可能想要即时裁剪并随机化裁剪方式,以生成更多的样本。
如果150x150
已经是感兴趣区域(ROI),你可以尝试以下数据增强方法:
- 使用一个更大的图像块,例如
170x170
,它总是包含你的150x150
图像块 - 使用一个更大的图像块,例如
200x200
,并将其缩小到150x150
- 向图像添加一些高斯噪声
- 稍微旋转图像(随机角度)
- 稍微改变图像对比度
- 人为模拟你在原始数据集中看到的其他(图像)效果