目标检测:Segmentation is All You Need ?

对于目标检测,从滑动窗口时代开始,我们已经习惯了候选区域特征提取然后分类的套路,深度学习时代强大的特征表示能力让我们能够探索不一样的道路,比如:

ECCV18 Oral | CornerNet目标检测开启预测“边界框”到预测“点对”的新思路

Grid R-CNN解读:商汤最新目标检测算法

FoveaBox:目标检测新纪元,无Anchor时代来临!

通过定位特定语义点来定位目标。

而且Anchor-Free方法越来越流行,预先定义的Anchor降低计算量的同时,却已经成为限制目标检测精度提高的因素。

今天跟大家分享的一篇文章《Segmentation is All You Need》,可能又要颠覆大家的认知,我们不仅不需要Anchor,甚至我们思考目标检测的方式都被局限了!

论文作者信息:

论文作者来自牛津大学、湖南农业大学、SnowCloud公司。该论文已投NeurIPS 2019。

提出问题

在现代目标检测应用中,目标部分被遮挡、环境光照差和目标相对场景过小等依然难以被解决。

下图展示了这些极端的例子:

这些难以处理的情况几乎都和算法能够选择或者预定义正确的、尺度合理的候选区域有关系。

而计算机视觉任务中的分割,不对目标做任何位置和尺度的假设,对像素进行无差别分类。

目标检测可否直接用分割来完成呢?这就是作者要解决的问题。

算法思想

既然是用分割来做目标检测,那就需要有标注好的分割数据集。

作者使用目标检测数据库中目标的包围框来计算目标的mask,即弱监督标注。

请看下面的例子:

上面的图像来自我爱计算机视觉曾经报道的“数钢筋”大赛DataFountain新上计算机视觉比赛-20万巨奖数钢筋,在这些钢筋端部的包围框上计算内接椭圆,其包含的区域即可以认为是目标的弱监督像素级标注了。

就像下面这幅苹果图像,你很容易通过包围框简单得到苹果的大致区域。

完整的算法示意图如下:


首先是生成弱监督标注数据,然后使用这些数据训练语义分割(不是实例分割),推断的时候,语义分割的结果转化为二值图像,最后使用轮廓提取算法找到不同的目标个体。

图像中往往有复杂的遮挡,比如:

这需要在制作目标像素级标注时考虑到,下图是将目标包围框转化为像素级标注的细化:

作者称这种标注方法为multimodal annotations(多模标注)。

推断时,对二值图像进行轮廓查找,作者设计了Run-data-based tracing 算法。


查找到的不同的轮廓即为不同的目标个体。

对于极其小的目标的训练,作者在此框架下引入vector field方法。示意图如下:


实验结果

作者在三个数据集上进行了实验,分别是数钢筋大赛的数据、WiderFace人脸数据集和COCO 目标检测数据集。

下图是数钢筋的结果:

该文提出的算法在参数量最少的情况下,精度最高,超过目标检测state-of-the-art Cascade RCNN算法。

下图是在WiderFace人脸检测数据集上的结果,依然超过了所有方法。

最后是在COCO 数据集上的结果,该文算法取得了与Mask RCNN 和 Cascade R-CNN相匹敌的精度。这类算法才刚刚出来,应该还有很大改进空间!

值得一提的是,作者对目标进行像素级标注的方法,对于人脸和钢筋这种实心的目标可能比较有效,对于自行车这种中间有很大空隙的,会不会有问题?

不知作者会不会进一步公布在COCO数据集上不同类的检测结果,应该很有趣。

另外作者目前没有公开代码,也没公布推断时间。

这篇文章颠覆了我们的认知,原来什么框、什么点也不需要,也可以做目标检测!

也许是作者急于快点公布算法与实验结果,以至于忘了在论文最后写结论了^_^

论文地址:

https://arxiv.org/abs/1904.13300v1

我爱计算机视觉
我爱计算机视觉

关注计算机视觉与机器学习技术的最前沿,“有价值有深度”,分享开源技术与最新论文解读,传播计算机视觉与机器学习技术的业内最佳实践。

理论计算机视觉目标检测
1
暂无评论
暂无评论~