如何正确使用样本扩充改进目标检测性能

(欢迎关注“我爱计算机视觉”公众号,一个有价值有深度的公众号~)

众所周知,在计算机视觉识别任务中,对训练样本进行增广是非常重要的,可以减少过拟合、改进模型泛化性能。

在大多数视觉任务中,对图像进行颜色改变或是增加随机噪声等这些通用数据增广操作,都会改进模型预测能力,但如果能利用特定任务的先验知识则往往会获得更大的性能改进。比如在目标检测的任务中,将目标的图像随机复制粘贴到其他背景图像中,形成人造的含有目标的样本。

来自ECCV2018的论文《Modeling Visual Context is Key to Augmenting Object Detection Datasets》研究了在目标检测任务中,使用目标类实例分割标注的数据进行数据增广的上下文建模,取得了显著的性能改进。

作者信息

算法思想

将拥有像素级标注的对象实例,与场景图像合成,作为目标检测的训练图像是一种显而易见的样本扩充,但问题并不是这么简单,该文作者发现如果忽视了场景图像上下文本身出现该对象的可能性,随机将对象实例与图像合成的话,有时候甚至会使检测性能下降。

如下图所示:

上图中将Instances列中的图像放入Images列中。右上角是正常的图像合成,使用上下文引导(context guidance)的方法,这些物体在现实世界中经常是自然同时出现的。右下角是错误合成的图像,狗的头部不能以大的尺度出现在铁轨上,啤酒瓶不该和飞机一起出现在天空中。

也许你已经想到了这篇文章的想法,训练一个深度学习网络,预测Images中某一幅图像是否适合与某一类实例instance相合成。

请看下图:

首先在场景图像中生成200个候选框,然后以每个候选框为中心裁剪出包围它的周围邻域图像,将候选框内像素置0,将此裁剪出的图像送入Context CNN,分类其与那一类目标合成最自然。最后将目标实例适应大小(rescale)并与上述图像融合(blend),作为扩充的训练样本。

下面是一些常用的图像blend合成方法示例:

如何为Context CNN分类器构建训练样本呢?

该文作者的做法非常简单,找到数据库中含有目标的图像中的目标包围框,将完全覆盖此包围框的外围图抠出来作为正样本。

负样本则是在那些不含有目标的区域抠图。

请看下图,在第一和第二行展示了构建的正样本,第三行展示了构建的负样本。

假设目标检测的类别是K类,加上负样本类,则该分类问题是K+1类图像的分类问题,训练时作者使用在ImageNet预训练的ResNet50网络微调权重。

下面是一些blend合成后的样本示例:

第一行是合成的比较自然的,第二行有些视觉上的小问题,第三行则是一些错误合成的例子。

实验结果

训练数据使用Pascal VOC 2012数据集的训练集,共20类目标,其目标含有像素级语义标注,共1464幅图像,目标检测器和Context CNN分类器均在其上训练。

测试数据使用Pascal VOC 2007数据集的测试集,其含有4956幅图像,类别与训练集相同。

目标检测器模型使用开源的BlitzNet。

Base-DA:常规的图像颜色改变、图像缩放旋转等样本扩充方法。

Random-DA:使用随机背景图像与目标图像合成的方法。

Context-DA:该文提出的考虑上下文建模的方法。

作者首先为每一个目标类训练单个的检测器,训练20个,评估其性能,如上图中的Table 1,

相比Base-DA方法,可以看到除了在chair类性能略有下降,其他类别性能均上升,而随机图像合成的Random-DA则对性能造成了损害。

这证明该文提出的方法不仅有效,而且对于目标类别没有特定性,是通用的目标检测样本扩充方法。

而后作者训练一个多目标检测器,如上图中的Table 2,除了在bus类下降,整体性能同样得到提升。

上述方法用在语义分割上怎么样?

上文证明,这种面向特定任务的目标检测样本扩充方法大幅提高了性能,那能否将其用在语义分割场景中呢?

答案是肯定的。在作者后续扩充版本的论文《On the Importance of Visual Context for Data Augmentation in Scene Understanding》中,使用上述方法,也改进了语义分割的性能。

如果训练数据只有目标的包围框,没有像素级标注怎么办?

上述增广方法,必须得到目标的像素级标注,不然在合成的时候会很不自然,分割数据的标注可是非常耗时且昂贵的。

作者的答案是使用弱监督学习,在扩充版本论文中,对于训练数据中图像使用DeepLabV1-DeepLabV4语义分割方法分割出目标,将分割结果集成,然后用于训练数据的合成。

通过使用这种弱监督学习的方法,相对有像素级标注的监督学习方法,只损失了0.6%的mAP性能,仍比不进行样本扩充高出1.6%。

总结

这篇论文深入研究了目标检测样本扩充的上下文建模方法,表明样本扩充不能乱来,也要有“基本法”,比较有启发的是,那常规的样本扩充方法是否也有值得探索的“基本法”呢?比如颜色改变的程度大小?比如样本旋转的角度?等等。

期待各位读者能发明更具指导性的方法来。

工程地址:

http://thoth.inrialpes.fr/research/context_aug/

https://github.com/dvornikita/context_aug

【本文由“我爱计算机视觉”发布,2018年09月14日】

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180914A16PRF00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券