Learning Data Augmentation Strategies for Object Detection
今天介绍一篇来自 Google Brain 团队的工作 “Learning Data Augmentation Strategies for Object Detection”,作者是 Barret Zoph, Ekin D. Cubuk, Golnaz Ghiasi, Tsung-Yi Lin, Jonathon Shlens, Quoc V. Le。
这篇文章可以看做是之前 AutoAugment 的扩展,在检测任务上搜索一个好的数据增强方案。作者在 AmoebaNet + NAS-FPN 上用搜出来的数据增强方法能达到 50.7 的 COCO validation mAP。
Motivation
首先回顾一下 AutoAugment:对于图像分类任务通常要用到一系列的数据增强手段,比如左右翻转 Flip,对比度/饱和度增强,Resize,等等。使用哪些数据增强方法、每个方法使用几次、每个方法被使用到的概率、方法之间的顺序可以构成一个庞大的搜索空间,然后用 AutoML 的方法搜一个不错的组合,一般要比人工设计的数据增强策略要效果好。
Method
而在这篇 Paper 中,目标任务的任务从分类变成了检测,首先作者提出一个观点:在检测任务中如果直接采用分类任务的数据增强策略,带来的涨点是有限的。检测任务上有一些和框的位置有关的数据增强方法,比如旋转角度,仿射变换,是分类任务上没有的。因此有必要针对检测任务专门搜最优的数据增强方法。
作者将检测任务上的数据增强策略搜索看成了一个离散优化问题(discrete optimization problem)。
首先作者定义了22个数据增强运算,包括对颜色、几何变换、框位置的变换进行增强。官方的 TensorFlow 代码可以在这里找到。一些运算的介绍如下表所示:
有一些数据增强运算,比如 Mixup,Manifold Mixup,Dropblock 作者发现加进去会掉点,就没有采用。
有了这22个数据增强运算,怎么构成搜索空间呢?作者规定了最终的数据增强策略由 K 个子策略 (sub-policies)组成,每个子策略包含 N 个数据增强运算。每个运算又包含两个超参数:被用到的概率 P 和强度 M。P 和 M 被离散化为6份。训练的时候,每次抽一个子策略,然后把这个子策略包含的数据增强运算应用到图片上。
这样整个搜索空间的大小为:
( 22 × P ×