向大家推荐一篇今天新出的目标检测相关论文 Stitcher: Feedback-driven Data Provider for Object Detection ,该文发明了一种简单方法改进业界老大难:小目标检测问题。
该文作者来自中科院自动化所、旷视科技、香港中文大学,孙剑老师和贾佳亚老师都为论文的共同作者。
大多数目标检测算法在小目标检测上都有显著的性能下降,作者通过统计分析发现,这与训练阶段小目标对损失函数的贡献小有关系,Feedback-driven Data Provider 顾名思义,作者提出了一种基于训练时反馈然后提供数据的方式改进训练,而制作新数据的方式也很简单,就是把图像拼接起来 Stitcher。
请看下图,这是Faster RCNN算法在COCO 数据集上训练时小目标对Loss贡献比例,baseline方法来自小目标的Loss贡献比例小于10%,而该文发明的方法 Stitcher 则让其更加均衡。
相比于业界已有的多尺度训练的方法,Stitcher几乎不增加训练时间,但取得的精度提升却更加可观,如下图:
下表为在COCO数据集上大中小三种目标的统计,小目标占整个标注框的41.4%,但仅出现在52.3%的图像中,可见小目标数量很多,且在图像中出现较集中。
因为小目标在图像中出现的比例低,那么在训练时缺少小目标时如何制作小目标数据作为补充呢?将正常图像中的目标resize小一点,其纹理依然清晰类别仍然可辨,作者通过将多幅正常图像resize并拼接的方式制作数据集,这就是Stitcher的由来。
算法流程
在训练时,根据小目标对loss的贡献比率确定是否要在下一次迭代提供给网络拼接的图像训练,如下图:
图中是将4幅正常图像拼接resize后拼接为一幅新的训练图像。
当小目标对Loss的贡献比例小于一定阈值,即将拼接的图像加入下一次迭代的训练集。
实验结果
使用上述看似简单的方法,却能带来非常稳固的性能提升,下图为训练Faster R-CNN 随着迭代次数增加AP的变化,
为了验证方法的有效性,作者使用不同的目标检测算法(Faster R-CNN、RetineNet)、骨干网(Res-50-FPN、Res-101-FPN)做了实验,只要加上Stitcher 就能提高模型精度,而且不仅对小目标有效,对大、中目标也有效!当然从结果看,小目标获得的精度增益更大。
作者又将其与其他处理小目标检测的常见方法比如多尺度训练、SNIP、SNIPER进行了比较,Stitcher 在提高精度更多的情况下,几乎不增加时间代价,当然是更好的选择。
在大的骨干网上也获得了精度增益:
更长的训练周期,Stitcher持续获得精度增益,而baseline在训练周期达到6时精度开始下降,如下表:
换到 PASCAL VOC数据集,依然能涨点:
值得一提的是,Stitcher不仅适用于目标检测,在实例分割的对比实验中,同样获得了不晓得精度提升。如下表:
总之,作者从训练样本对Loss贡献不平衡的角度思考小目标检测问题,通过设计Loss反馈驱动的机制和图像拼接的方法显著改进了小目标检测,其稳固的精度增益表明,该机制可以成为目标检测算法训练的通用组件。
论文地址:
https://arxiv.org/abs/2004.12432
作者称代码将开源。
在我爱计算机视觉公众号后台回复“Stitcher”,即可收到论文下载。
说到不平衡问题,强烈推荐大家阅读:
目标检测中的不平衡问题综述
END
备注:目标检测
目标检测交流群
2D、3D目标检测等最新资讯,若已为CV君其他账号好友请直接私信。
我爱计算机视觉
微信号:aicvml
QQ群:805388940
微博知乎:@我爱计算机视觉
网站:www.52cv.net
在看,让更多人看到