炼数成金 门户 商业智能 人工智能 查看内容

解读目标检测新范式:Segmentations is All You Need

2019-6-3 11:05| 发布者: 炼数成金_小数| 查看: 25336| 评论: 0|原作者: 程泽华|来自: 机器之心

摘要: 多年来,基于候选区域网络(RPN)的现有模型在目标检测任务中得到了广泛认可,NMS 是该模型的基础,但这种模型也存在一定缺陷,如在复杂遮挡情况下召回率很低。为了解决这一问题,程泽华等研究者提出使用弱监督分割 ...

网络 工具 模型 商业智能 芯片

多年来,基于候选区域网络(RPN)的现有模型在目标检测任务中得到了广泛认可,NMS 是该模型的基础,但这种模型也存在一定缺陷,如在复杂遮挡情况下召回率很低。为了解决这一问题,程泽华等研究者提出使用弱监督分割多模态注释,在没有 NMS 的情况下实现了高度稳健的目标检测性能。

作者利用注释质量较差的边界框在困难环境中实现稳健的目标检测性能,避免了与 anchor 框或 NMS 相关的所有超参数。他们提出的模型超越了之前基于 anchor 的一步和多步检测器,而且简单得多。该模型在准确性和召回率方面都达到了当前较佳水平。这项工作的一作,程泽华对该论文进行了解读。

论文:Segmentations is All You Need

论文链接:https://arxiv.org/pdf/1904.13300v3.pdf

RPN 系统的基本逻辑定位和分类已经在很多检测任务中已经取得了不错的成绩,然而这并不符合人认知事物的过程——人做检测,一步到位。也就是说,无论是 anchor 还是 NMS,都不应该存在于整个训练过程。论文中提到的新标注方法可以直接把检测(detection)标注转化成一个二值化的多模态标注,没有 NMS,也没有 Anchor。

边界框(Bounding Box)不应该存在
虽然 anchor 的存在减少了很多计算量,但是也带来了超参数增加、人为调参过拟合评测数据集、前后景目标类别不平衡等一系列令人头疼的问题。

让我们回到边界框的本质。所有的边界框其实都是一种无限制保证前景物体像素召回率的标注方式,它会尽可能贴着外轮廓,因此会导致背景像素大量进入框内。然而,真实世界的物体可以随意转动,不同的机位拍一个 3D 物体出现的结果可以大不相同,因此用框作为一个表征工具来把东西框起来,本身就不稳健。而且,框的标注本身也带有一定的随机性,毕竟要遵守标注规则把框标得非常好可能花的成本也会很高。

非极大值抑制(NMS)不应该存在
NMS 是一项很神奇的工作,目标检测领域用 NMS 作为选框策略已经有大概几十年了,因为没有一项工作能超越它。然而如上所述,既然边界框本身并不稳健,选出的框再优秀也无济于事。更何况选出的框也不会格外优秀,因为真实世界里不可能有一个具体的阈值来控制所有的场景,例如遮挡问题。现实世界中的遮挡问题十分复杂,挡了一部分和挡了一大半完全不是同一种情况。既然如此,用一个单一的阈值怎么可能解决问题?事实上,在之前的工作中,动态调整 NMS 的 SoftNMS、动态调整 IoU 的 Cascade RCNN 方案都取得了很不错的结果,但是前者依然回避了「复杂遮挡」的复杂性,后者参数量激增,速度慢到难以想象。

如上所言,边界框靠不住,NMS 也靠不住。

那么为什么不直接做分割?分割存在哪些问题?

分割(segmentation)的问题所在
Anchor Free 方法已经不新鲜了,相信这些问题早已经让一些一线工作的研究人员头疼很久了。那么为什么难?

分割糊成一团,很难用;
分割很贵;
YOLO 又快又简单,能满足客户要求。

第一个问题用 Instance Aware 可以解决,但为了完成 Instance Aware,计算量可能增加;第二个问题几乎无解;第三个问题主要还是 YOLO 太出名,darknet 写的是真的好,而后得过且过。

解决方案就是分割
熟悉 Kaggle 的人可能对「检测转分割」这个解决方案不是很陌生。检测问题用分割标签来做,性能就会提高很多。因为分割的表征能力真的很强——分割样本更少,得到的模型收敛更快,并且检测里的难题可以得到很好的解决。对于之前提到的第二个问题,论文给出了一个转化方法,即将检测的标签转化成一个二值化的多模态标注。

论文给出的分割结果如下:

也就是说,原图的框变成椭圆,而后分成了普通的分割形状、边界以及边界交集三个不同的标签。作者拿这些标签来训练,解决了不 Instance Aware 和复杂遮挡问题,而后只需要把一个二值化的输出做一个轮廓追踪(Contour Tracing),把分割的结果加个边(注意,这个标注是算法直接就能跑出来的,不是标的。)