使用深度学习进行对象检测的数据扩充

时间:2016-12-21 12:28:04

标签: machine-learning computer-vision neural-network deep-learning object-detection

我有一个关于训练深度神经网络进行物体检测的数据增强的问题。

我的数据集非常有限(近300张图片)。我通过将每个图像从0-360度旋转,步长为15度来增强数据。因此,我只从一个中获得了24张旋转图像。总的来说,我得到了大约7200张图片。然后我在每个增强图像中围绕感兴趣的对象绘制了边界框。

这似乎是一种增强数据的合理方法吗?

最好的问候

4 个答案:

答案 0 :(得分:2)

为了训练一个好的模型,你需要很多代表性的数据。你的增强只是旋转的代表,所以是的,如果你担心没有足够的物体旋转,这是一个很好的方法。但是,它在任何意义上对其他对象/转换都没有帮助。

答案 1 :(得分:1)

看起来你是在正确的轨道上,旋转通常是一个非常有用的转换,用于增加训练数据。我建议尝试其他转换,例如移位(你最有可能想要检测部分存在的物体),缩放(使你的模型对比例不变),剪切,翻转等。通过组合不同的转换,你可以在训练中引入额外的多样性数据。 300个图像的训练集是一个非常小的数字,所以你肯定需要不止一个变换来增加这么小的训练集。

答案 2 :(得分:0)

只要在执行rotation时不隐式更改标签,这是一种很好的方法。例如。包含数字6的图像在旋转180度时将变为数字9。所以,在这种情况下你需要注意。

但是,您也可以进行其他几何变换,例如scalingtranslation

如果您的问题域与ImageNet数据有一些相似之处,您可以考虑使用预先训练的模型(如ImageNet)的其他扩充。这样,即使您的数据稀缺,也可以训练更深入的模型。

答案 3 :(得分:0)

即使旋转增加了图像的表现复杂性,也可能还不够。相反,您可能还需要添加其他类型的扩充。

颜色增强如果它们仍然代表您数据的真实分布,则非常有用。

空间扩充工作得非常好。请记住,大多数现代系统使用大量的裁剪,这可能会有所帮助。

实际上我有一些脚本,我试图变成一个可能适合你的库。如果您愿意,请检查https://github.com/lozuwa/impy