Tensorflow目标检测API: 如何使用imgaug进行数据增强?

7

我一直在使用imgaug手动制作数据增强器,因为我确实喜欢其中一些在tf物体检测API中不可用的选项。例如,我使用运动模糊,因为我的许多数据都有快速移动和模糊的对象。

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

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

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

有没有一种方式可以配置对象检测 API 以使其与此配合使用?

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


1
原则上,您可以修改预处理函数以添加所需的转换,但问题在于该库使用NumPy实现增强,而TF对象检测API中的增强是在TensorFlow中实现的。因此,您将不得不使用类似于tf.py_func的东西,这可能不是非常高效的。 - jdehesa
坦白地说,如果有人能够使用tf.py_func提供解决方案,那将是非常好的。这比我现在所做的更有效率。我一直在查看preprocessing.py模块,也许那是推进这个问题的地方。 - eric
你想要哪些数据增强操作?在TF中实现它们是否可行? - rvinas
其中一个重要的问题是动态模糊,其他大部分都是标准的。我想一个新的问题是如何在TF中实现它,并与对象检测API集成?我认为这在preprocessing.py中。坦率地说,我原以为将imgaug与TF API集成很简单,以为我只是缺少一些标准技巧。 - eric
一种方法是使用仅包含imgaug的新数据集,并关闭tf的在线训练增强。 - denisb411
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接