目标检测:Segmentation is All You Need ?
对于目标检测,从滑动窗口时代开始,我们已经习惯了候选区域特征提取然后分类的套路,深度学习时代强大的特征表示能力让我们能够探索不一样的道路,比如:
ECCV18 Oral | CornerNet目标检测开启预测"边界框"到预测"点对"的新思路
通过定位特定语义点来定位目标。
而且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
作者暂无likerid, 赞赏暂由本网站代持,当作者有likerid后会全部转账给作者(我们会尽力而为)。Tips: Until now, everytime you want to store your article, we will help you store it in Filecoin network. In the future, you can store it in Filecoin network using your own filecoin.
Support author:
Author's Filecoin address:
Or you can use Likecoin to support author: