【问题标题】:Tensorflow object detection api: how to use imgaug for augmentation?Tensorflow 对象检测 api:如何使用 imgaug 进行增强?
【发布时间】:2020-01-15 13:46:44
【问题描述】:

我一直在使用imgaug 手动滚动增强器,因为我真的很喜欢options that are not available in the tf object detection api 中的一些。例如,我使用运动模糊是因为我的很多数据都包含快速移动的模糊对象。

如何最好地将我的增强序列与 api 集成以进行即时训练?

例如,假设我有一个增强器:

aug = iaa.SomeOf((0, 2), 
                 [iaa.Fliplr(0.5), iaa.Flipud(0.5), iaa.Affine(rotate=(-10, 10))])

有没有办法配置对象检测 api 来处理这个问题?

我目前正在做的是使用 imgaug 来生成(增强的)训练数据,然后从这个增强管道的每次迭代中创建 tfrecord 文件。这是非常低效的,因为我在训练期间将大量数据保存到磁盘而不是即时运行增强。

【问题讨论】:

  • 原则上你可以修改预处理函数来添加你想要的转换,但问题是库在 NumPy 中实现了增强,而 TF 对象检测 API 中的增强是在 TensorFlow 中实现的。所以你必须使用tf.py_func之类的东西,这可能不是很有效。
  • 坦率地说,如果有人有使用 tf.py_func 的解决方案,那就太好了。这会比我现在做的更有效率。我一直在看preprocessing.py 模块,也许这就是推动这个的地方。,
  • 您希望进行哪些增强操作?是否可以在 TF 中实现它们?
  • 其中一个重要的就是运动模糊,其他的大部分都是相当标准的。我想一个新问题是如何以与对象检测 api 集成的方式在 TF 中实现一个?我认为它在preprocessing.py。坦率地说,我希望将 imgaug 与 TF api 集成起来很简单,以为我只是错过了一些标准技巧。
  • 一种方法是生成一个只有 imgaug 的新数据集并关闭 tf 的在线训练增强

标签: tensorflow object-detection-api data-augmentation


【解决方案1】:

有人为此做了一个回购:
https://github.com/JinLuckyboy/TensorFlowObjectDetectionAPI-with-imgaug

对不起,这不是一个代码答案,我还没有真正研究过,所以我不会将此标记为正式回答。如果我有机会测试它,我会告诉人们。

【讨论】:

    猜你喜欢
    • 2019-09-12
    • 2021-05-26
    • 2018-10-21
    • 2019-03-05
    • 2019-03-12
    • 2019-04-22
    • 2021-08-07
    • 1970-01-01
    • 2019-05-22
    相关资源
    最近更新 更多