【问题标题】:Data Augmentation for Object Detection using Deep Learning使用深度学习进行目标检测的数据增强
【发布时间】:2017-05-06 21:07:21
【问题描述】:

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

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

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

最好的问候

【问题讨论】:

  • 在测试期间,您是否期待所有这些角度的图像?好的。但是,如果您的所有测试图像都是直立的,可能会有小的旋转,那么不会。在这种情况下,您应该只使用您期望在真实数据中具有的范围内的旋转。

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


【解决方案1】:

尽管旋转会增加图像的表示复杂性,但这可能还不够。相反,您可能还需要添加其他类型的增强。

颜色增强如果仍然代表数据的真实分布,则很有用。

空间增强效果很好。请记住,大多数现代系统都使用大量裁剪,因此这可能会有所帮助。

实际上,我正在尝试将一些脚本转换为可能对您有用的库。如果您愿意,请查看https://github.com/lozuwa/impy

【讨论】:

    【解决方案2】:

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

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

    如果您的问题域与 ImageNet 数据有一些相似之处,您可以考虑使用预训练模型,例如 ImageNet。即使在数据稀缺的情况下,这也能让您训练更深入的模型。

    【讨论】:

    • 感谢您的建议。我现在也在图片中包含了翻译。
    【解决方案3】:

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

    【讨论】:

    • 谢谢你解释得这么好。我现在也包含了翻译。
    【解决方案4】:

    为了训练一个好的模型,您需要大量的代表性数据。您的增强仅代表旋转,所以是的,如果您担心没有足够的对象旋转,这是一个好方法。但是,它在任何意义上都无助于泛化到其他对象/转换。

    【讨论】:

    • 感谢您的回复。因为我打算使用深度学习方法检测仓库中的托盘。我计划为此应用 Faster R-CNN。您如何看待这种算法进行实时检测?或者你会建议别的吗?
    • Faster R-CNN 在 10Hz 左右运行,如果您正在寻找实时检测,可以尝试使用 YOLO pjreddie.com/darknet/yolo
    猜你喜欢
    • 2017-10-20
    • 1970-01-01
    • 2017-09-24
    • 2021-01-30
    • 2020-07-22
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    相关资源
    最近更新 更多