【问题标题】:Augment Artificial Images to look like real Images for TF Object Detection增强人工图像,使其看起来像真实图像以用于 TF 对象检测
【发布时间】:2019-02-09 20:31:19
【问题描述】:

我正在使用来自 Tensorflow 对象检测 API 的 Faster R-CNN Inception ResNet v2 模型来训练 CNN 进行安全标志检测。由于我没有真实的图像数据集,因此我编写了一个代码,该代码创建了一个人工数据集,该数据集由计算机绘制的标志图像和来自公开数据集(GTSDB、KITTI 等)的真实世界背景图像组成。虽然经过训练的模型在看不见的人造图像上效果很好,但它在我用 iPhone 5SE 拍摄的真实世界测试图像上效果不佳。

我已经从 imgaug (https://imgaug.readthedocs.io/en/latest/index.html) 获得了各种数据增强技术,并在互联网上搜索了解决方案,但对于真实世界的图像没有任何成功。

此外,将测试图像的大小调整为接近训练图像的大小并将它们转换为 .png 没有任何效果。

我用于训练的人造图像之一(尺寸:640x480,格式:.png):

还有一张真实世界的测试图片,用于测试模型(尺寸:3024x4032,格式:.JPG):

我的想法是我的图像与真实世界的图像不够接近,因此后者的分类不起作用。另一个想法是,我的数据集没有包含足够的“正常”(不是大量增强的图像,没有用大量的 gaussianNoise、旋转、缩放等进行增强)训练图像。 有什么想法可以让我的训练图像更真实吗?也欢迎任何其他意见。

【问题讨论】:

    标签: python image opencv dataset object-detection-api


    【解决方案1】:

    我们在公司做了类似的事情。一般来说,这是一个坏主意,只有在没有其他方法可以获取此类数据时才应使用。确实,花一周时间对现实世界的数据进行注释会给你带来更好的结果。

    但是,如果您希望采用这种方法,以下是我们认为有用的提示:

    • 尽量巧妙地放置人造物体,因此使用接近其亮度、清晰度等的背景,使其看起来更自然
    • 将标志放在适当的位置,比如墙上,而不是路上
    • 冻结您的特征提取器网络
    • 使用较小的学习率(例如 5e-07)。

    这些只是针对过度拟合的建议。

    另外,我可以看到训练集和测试集的分辨率有很大不同。在将图像输入模型之前手动调整测试集的大小。

    【讨论】:

    • 您好 Dmytro,非常感谢您的回答。我听从了你的建议,并会告诉你它是如何工作的,因为目前正在进行培训,并将持续到周一左右。通过冻结特征提取器,您的意思是在管道配置文件的“train_config”下添加“freeze_variables:.*FeatureExtractor.*”选项?至少这是我发现的,很高兴知道这是正确的行动。
    • 是的,这是正确的。我不记得确切的模式,但类似这样。
    猜你喜欢
    • 1970-01-01
    • 2021-06-06
    • 2019-05-22
    • 1970-01-01
    • 2014-07-16
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多