物体检测是计算机视觉的重要任务之一,从最开始的 Viola-Jones 2001 的人脸检测开始,到 Ross 的 Deformable Part Model(DPM)2007 通用物体检测,再到现在基于深度学习的 Region Convolution(RCNN)2013 模型,我们见证了物体检测的准确率快速的提升,并且计算机视觉所使用的数学方法也从 Boosting,变成了 SVM,到最近的 Deep Neural Network。基于物体检测,研究者们成功的设计出了实例分割 Mask RCNN。RCNN 是近年来物体检测的基石,有大量的论文和博客在分析和改进 RCNN,本篇文章希望通过介绍除了 RCNN,YOLO,SSD 和 Mask RCNN 之外的 novel idea 来帮助大家开拓眼界,避免思维陷入单一模式。

基础网络的改进方向

说起神经网络,大家就会想起用 ResNet,VGG 或者 Inception 来作为主干。来自韩国 Intel 公司的组发明的 PVANet 和 MSRA 的代季峰组的 Deformable Convolution 成功的跳出了惯性思维,大大提升了检测网络的速度和准确性。

PVANet : Deep but Lightweight Neural Networks for Real-time Object Detection

PVANet 贡献了一个可以适用于 Fully Convolution Network 的网络结构,该网络的浅层使用了 CRelu 可以将 Channel 减半,在深层使用 Inception 加强网络的学习效果。CRelu 和完整网络结构如下:

网络参数能够减半的原因是因为,CRelu 发现浅层的网络冗余度高,并且存在反相现象,通过 CRelu 可以重建出另一半的通道。PVANet 跟 Faster RCNN 的速度对比如下表:

Deformable Convolution Networks (ICCV 2017 oral)

本篇文章在 Spatial Transform Network 的基础上提出了 Deformable Convolution Network。个人感觉这篇论文是很有可能的 ICCV Best Paper 的论文之一。这篇论文和 Dilation Network 也有一定的关系。并且这篇论文提供了完整,清晰的代码,为之后的研究提供了很好的平台。

如上图(a)是传统的 CNN,采样是在 3 by 3 的 regular grid 进行采样。(b)为作者提出的 Deformable Convolution,可以看出采样点在 regular grid 的基础上面加上了 offset,能够让神经网络自己决定采样点的位置。(c)和(d)为一种特殊的采样方法,为 Deformable CNN 在某种位移情况下的表现形式。

网络的训练是基于 spatial transformer Network,通过 Bilinear interpolation 的方式进行学习,Backpropagation 也是可以微分的。Deformable CNN 的结构如下图:

作者在 Semantic segmentation 和物体检测任务上面测试了方法,without bells and whistles,作者可以达到 state-of-the-art 的结果(仅仅物体检测)。如果我们将采样点显示出来就会发现奇妙的现象。采样点会有选择性的位移到 foreground。

Deformable Part-based Model Fully Convolutional Networks for Object Detection (BMVC 2017 oral)

这篇论文和 Deformable CNN 是同期的论文,两者的出发点基本一样。但是训练的过程中,作者使用的 DPM 论文中的公式对物体的位移进行了限制,论文的流程图如下:

物体检测框架的改进

由于 NMS(Non Maximum Suppression)的存在,使得 RCNN 框架的物体检测不是完全的 end-to-end 模型,代季峰组的 Relation Network module 能够代替 NMS,实现 100% 的 end-to-end 模型。

Soft-NMS, improving object detection with One Line of Code (ICCV 2017)

NMS 能除去重叠的 bounding box,是物体检测系统中不可或缺的部分。但是作者发现 NMS 也会滤掉靠的很近的物体。比如下图两匹靠得近的马左边的马由于跟右边的马有很大的 overlapping,从而造成误检。为了避免这种现象的产生,soft-NMS 将 overlapping 的 bounding box 的 confidence 降低而非直接变成零。如下图左边的马的 confidence 从 0.80 降低到了 0.4,从而使得改 bounding box 能够被检测到。soft-NMS 能够在所有的公开数据上面得到 1 个点左右的提升,并且结合 deformable CNN 得到了 state-of-the-art 的结果。

Relation Network for Object Detection (CVPR 2018 submitted)

这篇论文提出了对 relation 进行建模的的 relation module,可以代替 NMS

,实现 100% 的 end-to-end 物体检测。对关系的描述可以提高计算机视觉模型的效果是大家的共识,但是本篇论文是少有的成功运用关系的论文。Relation module 的结果会高于 soft-NMS。在可以预见的将来,relation module 会大量地运用于 CV 模型中。但是美中不足的是,relation network 到底捕捉到了什么样的关系是论文无法说明的。Relation Network 的模型跟最近提出的 non local convolution,attention is all you need 有着惊人的相似。相信如果从这个角度出发,应该会有很大的收获。Relation Module 的结构如下:

Relation Module 跟 NMS 和 Soft-NMS 之间的结果对比。

实例分割的改进

在实例分割方面,除了 Mask RCNN 之外存在着很多新颖的方法,但是由于结果没有 Mask RCNN 好,经常会被人忽律,但是其中的 idea 还是很值得学习借鉴的。

Mask RCNN 已经成为了 instance segmentation 的 baseline 模型,这里就不多做介绍,结构如下:

Deep Watershed Transform for Instance Segmentation (CVPR 2017)

这篇 instance segmentation 的论文在 mask rcnn 之前,这篇论文提出了学习一种类似于 watershed transform 的能量。Watershed transform 可以直接计算,但是由于自然图像的复杂使得结果有很多 local minimal,通过 deep learning 学习到的势能会更加稳定,如下图:

网络通过 GT angle 和 watershed energy 两种 supervision 训练得到。两种能量可以通过 mask 标注产生,Ground-truth 如下图:

MaskLab : Instance Segmentation by Refining Object Detection with Semantic and Direction Features (CVPR 2018 submitted)

MaskLab 的作者是来自 Google 的团队,第一作者同时也是 deeplab 的作者。应该算是 segmentation 的元老级人物。这篇论文跟 mask rcnn 类似,但是使用了 semantic segmentation 和 Direction prediction 两个分支的信息来生成 mask,结果会比 feature pyramid network 的 mask rcnn 好很多。这篇论文的创新性来自 Direction Pooling,通过每个区域的 direction 的 voting 来得到 region mask,idea 跟 deformable CNN 中的 deformable region pooling 类似。

MaskLab 框架如下:

Directional Pooling 结构如下:

Panoptic Segmentation (CVPR 2018 submitted)

Panoptic Segmentation 中文名为全景分割,是由 Facebook 的大神联手推出的结合 instance segmentation 和 semantic segmentation 的新任务。作者发现,instance segmentation 只能够分别物体,但是没有办法对 stuff 进行预测。而传统的 semantic segmentation 不能够区分物体。作者提出了同时对物体进行分割,并且对 stuff 进行分类的新任务。

(a)为原图,(b)为 semantic segmentation 图,(c)为 instance segmentation,(d)为新提出的全景分割。与此同时作者提出了全景分割的 evaluation metric 和基于 mask rcnn + PSPNet 的 baseline 模型。新提出的任务应该还是有很大前进空间,相信各路大神应该会很快就攻占这一任务了吧 (>_<)

Instance Segmentation Benchmark

下面我们比较一下不同方法在 cityscape 上面的结果,可以看出 Mask RCNN 结果远超过其他方法,最新提出的 MaskLab 借助大数据的力量微弱超过 mask rcnn。

Cityscape 上面 Watershed,SGN 和 Mask RCNN 的比较

COCO 数据集 Mask RCNN 跟 MaskLab 比较

后RCNN时代的物体检测及实例分割进展相关推荐

  1. Anchor的泛化:统一物体检测、实例分割、姿态估计的Point-set Anchor

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 作者|FY.Wei,https://zhuanlan.zhihu.com/p/15805489 ...

  2. 碎片2:大白话讲解Mask R-CNN及常见物体检测算法

    文章目录 MASK R-CNN调研报告 1.Introduction 1.1 MASK R-CNN简介 1.2 直觉理解MASK R-CNN 2.Algorithm 2.1已有物体检测算法概述 2.1 ...

  3. Anchor-free应用一览:目标检测、实例分割、多目标跟踪

    作者|杨阳@知乎 来源|https://zhuanlan.zhihu.com/p/163266388 从去年5月开始,我一直对Anchor-free工作保持着一定的关注.本次借组内的paper rea ...

  4. 后 R-CNN时代, Faster R-CNN、SSD、YOLO 各类变体统治下的目标检测综述:Faster R-CNN系列胜了吗?,(知乎ChenJoya大佬,讲的挺好的,记录一下)

    我们检测到你可能使用了 AdBlock 或 Adblock Plus,它的部分策略可能会影响到正常功能的使用(如关注). 你可以设定特殊规则或将知乎加入白名单,以便我们更好地提供服务. (为什么?) ...

  5. CVPR目标检测与实例分割算法解析:FCOS(2019),Mask R-CNN(2019),PolarMask(2020)

    CVPR目标检测与实例分割算法解析:FCOS(2019),Mask R-CNN(2019),PolarMask(2020) 目标检测:FCOS(CVPR 2019) 目标检测算法FCOS(FCOS: ...

  6. Cascade R-CNN: High Quality Object Detection and Instance Segmentation(级联R-CNN:高质量目标检测与实例分割)

    Cascade R-CNN: High Quality Object Detection and Instance Segmentation Zhaowei Cai, and Nuno Vasconc ...

  7. 张祥雨团队最新工作:用于物体检测的实例条件知识蒸馏 | NeurIPS 2021

    [专栏:前沿进展]在青源LIVE第31期中,旷视研究院张祥雨团队的张培圳研究员深入浅出地为我们介绍了其团队被 NeurIPS 2021 录用的论文「用于物体检测的实例条件知识蒸馏」.本期报告首先简要回 ...

  8. mask rcnn属于dnn么_基于OpenCV DNN的 MaskRCNN 目标检测与实例分割

    这里主要记录基于 OpenCV 4.x DNN 模块和 TensorFlow MaskRCNN 开源模型的目标检测与实例分割 的实现. MaskRCNN 不仅可以检测图片或视频帧中的物体边界框,还可以 ...

  9. NeurIPS 2021 | 用于物体检测的实例条件知识蒸馏

    在青源LIVE第31期中,旷视研究院张祥雨团队的张培圳研究员深入浅出地为我们介绍了其团队被 NeurIPS 2021 录用的论文「用于物体检测的实例条件知识蒸馏」.本期报告首先简要回顾了用于图像识别. ...

  10. 直播 | 孙剑团队最新工作:用于物体检测的实例条件知识蒸馏 | NeurIPS 2021

    近期,旷视孙剑团队最新工作提出了一种新的目标检测知识蒸馏框架:实例-条件知识蒸馏(ICD)方法利用实例-特征交叉注意力来选择和定位与人类观察到的实例相关的知识,性能表现SOTA,这篇论文已经开源(地址 ...

最新文章

  1. Scrapy爬虫-必备插件
  2. sklearn.preprocessing下的数据标准化(scale、MinMaxScaler)
  3. python哪些是可变对象_什么是Python可变对象和不可变对象
  4. 逆袭“潮牌”后,李宁离安踏还有多远?
  5. Deepin安装Curl的方法
  6. python 属性描述符_Python属性描述符(二)
  7. 基友扫雷通关跟我炫耀!于是用Python自动扫雷程序十秒通关
  8. Python使用Apriori算法分析导演请某演员后还会请哪个演员
  9. 【Python3】py脚本打包成exe
  10. 结合element-ui封装的一个分页函数
  11. struts标签logic:iterate的用法
  12. 谷歌浏览器自带的翻译插件为什么不能用?
  13. 航空航天行业工作站应用---EDA仿真计算工作站
  14. 图片标注问题image_caption
  15. Socket通信实例详解
  16. 精密测量和超精密测量
  17. 闲聊人工智能产品经理(AIPM)—人工智能产品需求
  18. 网络编程之端口:端口号为什么常见是8000、8080、8888...
  19. 解决idea集成maven在使用骨架构建项目报错问题
  20. 提供了一些工具类以及自定义 View,用于日常的 Android 快速开发

热门文章

  1. 管理员说:CSDN博客,一天访问量1000就很好了
  2. 安卓打开本应用的应用信息界面的代码
  3. Strategy(策略模式)
  4. 单价数量和总价的公式_小学数学量的计算单位及常用公式表
  5. php 忽略加载动态某个目录,php – 如何使用RecursiveIteratorIterator忽略目录?
  6. exfat最佳单元大小_ICLR2019最佳论文!神经网络子网络压缩10倍,精确度还能保持不变...
  7. python创建子窗口_python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
  8. oracle 获取异常 信息,oracle存储过程异常信息的显示
  9. Python多环境扩展管理-Virtualenv
  10. JMeter数据库请求配置及示例