我有一个关于训练深度神经网络进行物体检测的数据增强的问题。
我的数据集非常有限(近300张图片)。我通过将每个图像从0-360度旋转,步长为15度来增强数据。因此,我只从一个中获得了24张旋转图像。总的来说,我得到了大约7200张图片。然后我在每个增强图像中围绕感兴趣的对象绘制了边界框。
这似乎是一种增强数据的合理方法吗?
最好的问候
答案 0 :(得分:2)
为了训练一个好的模型,你需要很多代表性的数据。你的增强只是旋转的代表,所以是的,如果你担心没有足够的物体旋转,这是一个很好的方法。但是,它在任何意义上对其他对象/转换都没有帮助。
答案 1 :(得分:1)
看起来你是在正确的轨道上,旋转通常是一个非常有用的转换,用于增加训练数据。我建议尝试其他转换,例如移位(你最有可能想要检测部分存在的物体),缩放(使你的模型对比例不变),剪切,翻转等。通过组合不同的转换,你可以在训练中引入额外的多样性数据。 300个图像的训练集是一个非常小的数字,所以你肯定需要不止一个变换来增加这么小的训练集。
答案 2 :(得分:0)
只要在执行rotation
时不隐式更改标签,这是一种很好的方法。例如。包含数字6的图像在旋转180度时将变为数字9。所以,在这种情况下你需要注意。
但是,您也可以进行其他几何变换,例如scaling
,translation
如果您的问题域与ImageNet数据有一些相似之处,您可以考虑使用预先训练的模型(如ImageNet)的其他扩充。这样,即使您的数据稀缺,也可以训练更深入的模型。
答案 3 :(得分:0)
即使旋转增加了图像的表现复杂性,也可能还不够。相反,您可能还需要添加其他类型的扩充。
颜色增强如果它们仍然代表您数据的真实分布,则非常有用。
空间扩充工作得非常好。请记住,大多数现代系统使用大量的裁剪,这可能会有所帮助。
实际上我有一些脚本,我试图变成一个可能适合你的库。如果您愿意,请检查https://github.com/lozuwa/impy。