【发布时间】: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