今天跟大家分享下前天新出的论文 SOLOv2: Dynamic, Faster and Stronger,一看这名字就知道很霸气!SOLO 超越自己,在原有架构基础上引入动态卷积和发明了Matrix NMS,再次刷新COCO 实例分割数据集的最高精度(41.7 AP),而且其轻量级版本精度与Mask RCNN相近(37.1 AP vs 37.8),而速度能达到 31.3 fps(GPU V100)!

下图中红色标出的即为SOLOv2的结果:

可谓在实时轻量级和高精度两个战场都很抢眼!

该文作者信息:

论文出自沈春华老师组,作者单位澳大利亚阿德莱德大学、同济大学、字节跳动公司。

作者是在自己之前的工作SOLO基础上做的改进,所以我们有必要看看SOLO的架构:

SOLO架构

长久以来实例分割都是在目标检测给出框的情况下再进行目标mask分割,而这种思路和人类的视觉感知是不同的,人眼是可以直接定位到目标的轮廓的。SOLO的本意为 Segmenting Objects by Locations,即根据位置分割目标。

SOLO的预测头

SOLO将图像划分为SxS个网格,认为每个网格都是一个潜在的目标实例。

具体实现上,图像经过全卷积网络(FCN)后进入两个分支的预测。一个类别分支,预测每个网格所处的物体类别,每个网格对应一个C维类别向量(C为类别数),总的类别矩阵大小为S x S x C;一个mask分支预测每个网格所属的物体mask,总的mask矩阵大小为H x W x (S x S)。

请注意:mask是不关乎类别的,无论是什么物体,只要该物体落入了这个网格,mask 分支都预测它的mask。

mask分支预测得到的每个网格的mask的大小是和原图大小相等,每个网格只对应落入此网格的物体的mask。

这样来自相同位置(网格)的物体类别和相应mask就出来了,每个网格完成了单个目标实例的分割。

由于一个物体可能落在不同的相邻网格里,所以以上过程得到的肯定是多个网格含有相同的物体的mask。故最后必须进行NMS(非极大抑制),以消除重复的分割结果。

从作者的可视化图:

可以很明显的看出这个问题,NMS是必须的。

现实图片中,由于目标实例并不会很密集,所以计算SxS个网格的mask会有大量的计算冗余,作者在SOLOv1中给出的解决方案是对mask预测分支进行分解,分别为预测 x-分支和y-分支,以降低计算量和内存占用,如下图b中所示。

这样mask的预测就从S x S 个变为预测 S + S 个。

作者在SOLOv2中一项重要改进是引入动态卷积。因为在mask预测时每个网格使用的特征是固定的,输出的Mask是冗余的,可以直接从网络的类别分类结果过滤掉那些不含目标的,同时使用动态卷积,也可以降低模型参数。

所谓动态滤波,即滤波核的参数是通过网络预测出来的,这样网络自适应调整的能力也增强了。

如上图中的(c)。模型在mask预测分支时动态进行卷积核学习和特征学习,最后将此二者卷积得到最终的mask。

从FPN中构造mask分支预测前的特征:

作者的另一个重要更新是发明了Matrix NMS方法。

其启发自soft NMS,soft NMS 是每次选择置信度最高的候选mask(或框)降低与其存在重叠的候选mask(或框)的置信度。这个过程是迭代的、顺序的,没法并行。

作者反其道而行之,既然是降低每个mask的置信度,那我就干脆想办法按照一定规则对所有mask挨个降低置信度。而某一候选mask j 置信度被降低,和两方面因素有关:

1)与其存在重叠的置信度比起其高的mask i,迫使mask j置信度衰减;

2)mask i 本身也有一定概率置信度被其它候选mask k 降低,mask i 置信度降低的概率。

当然你也可以说mask k的置信度还有可能被其他mask 迫使衰减,如果考虑到完整链条,那这个过程就复杂了,作者以上面的过程作为计算衰减因子的近似,不追求完美的数学表达。而且实际计算时仅考虑最大重叠的置信度高的mask的带来的衰减。

mask i 置信度被降低的概率:

mask j 置信度衰减因子:

事实证明,这样的近似已经够用了。

以上每个mask置信度衰减的过程是可并行计算的,计算速度也很快。

作者甚至在论文中给出了Matrix NMS的Python代码:

这个Matrix NMS不仅适用于SOLO,也可以用于其他目标检测和实例分割算法需要NMS的场合中。

实验结果

作者在COCO test-dev数据集上进行了实例分割实验:

SOLOv2达得了新的SOTA,使用Res-DCN-101-FPN,AP 达到41.7!比Mask RCNN 高近 4 个百分点。

作者在生成的mask 上直接生成目标框,得到同样在COCO test-dev数据集上目标检测的结果,同样达到了主流算法水平:

超越著名的单阶段目标检测器FCOS、CenterNet。

下图为与Mask R-CNN分割结果的比较:

可见在物体边缘上得到的结果更好。

除了精度高,速度也是SOLOv2的一点亮点,精度与Mask R-CNN相近的SOLO-512 在V100的GPU上可达31.3 fps!

下图为作为目标检测算法使用时,与其他算法的精度和推断时间比较的散点图:

SPLOv2的几个版本在速度与其他相近时,精度大幅超越对手。从图中可见,相比经常被谈起的YOLOv3,SOLOv2 精度提升巨大。

作者在新出的LVIS实例分割数据集上与Mask R-CNN也进行了对比:

大多数情况下好于Mask R-CNN,平均精度更高,唯有在小目标分割上低于Mask R-CNN,这可能与网格的划分有关系(当然划分密集有助于检测到小目标,但计算代价更大)。

将SOLOv2用于全景分割,在COCO val2017数据集上的结果:

SOLOv2取得了与之前最高精度的UPSNet相近的精度!

精度高、速度快、代码还将开源!相信SOLO系列算法必将在实例分割、目标检测、全景分割领域留下浓墨重彩的一笔!

论文地址:

https://arxiv.org/pdf/2003.10152.pdf

代码地址:

https://github.com/WXinlong/SOLO

(目前还未开源)

在我爱计算机视觉公众号后台回复“SOLO”,即可收到这两篇论文的下载。

END

备注:分割

图像分割交流群

语义分割、实例分割、全景分割、抠图等技术,若已为CV君其他账号好友请直接私信。

我爱计算机视觉

微信号 : aicvml

QQ群:805388940

微博/知乎:@我爱计算机视觉

投稿:amos@52cv.net

网站:www.52cv.net

在看,让更多人看到  

动态实例分割SOLOv2,更快更强更精准!相关推荐

  1. 更快地编写更好的代码:5 分钟阅读

    更快地编写更好的代码:5 分钟阅读 关于如何在不影响质量的情况下更快地编码的小技巧 最近,我阅读了David Farley的"现代软件工程",它详细阐述了现代软件开发核心的持久性原 ...

  2. 超越Swin Transformer!谷歌提出了收敛更快、鲁棒性更强、性能更强的NesT

    [导读]谷歌&罗格斯大学的研究员对ViT领域的分层结构设计进行了反思与探索,提出了一种简单的结构NesT,方法凭借68M参数取得了超越Swin Transformer的性能. 文章链接:htt ...

  3. 更快,可扩展性更强的 Apache Cassandra 4.0 正式发布

    责编 | 张红月 出品 | CSDN(ID:CSDNnews) 上周刚刚宣布因 Bug 延迟发布的 Apache Cassandra 4.0 版本正式发布了.Apache Cassandra 副总裁 ...

  4. UP-DETR:收敛更快!精度更高!华南理工微信开源无监督预训练目标检测模型...

    关注公众号,发现CV技术之美 0 写在前面 基于Transformer编码器-解码器结构的DETR达到了与Faster R-CNN类似的性能.受预训练Transformer在自然语言处理方面取得巨大成 ...

  5. IntelliJ IDEA 2019.3 发布,启动更快,性能更好(新特性解读)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 原文地址:https://www.jetbrains.com/id ...

  6. Java 启动和停止界面_IntelliJ IDEA 2019.3 发布,启动更快,性能更好(新特性解读)...

    点击上方"小哈学Java",选择"星标" 回复"资源",领取全网最火的Java核心知识总结~ 2019.3 11 月 28 IntelliJ ...

  7. EfficientNetV2:训练速度快了5~10x,更小,更快,精度更高的EfficientNet

    本文转自AI公园. 作者:Mostafa Ibrahim 编译:ronghuaiyang 导读 相比于之前的SOTA,训练速度快了5~10x,而且性能更高. 论文链接:https://arxiv.or ...

  8. Wi-Fi 6强势来袭-更大容量 更低延迟 更快网速 更安全

    - 季冠闪星云 - Wi-Fi 6时代 -大容量 • 低延迟- 近几年,5G和Wi-Fi 技术都是热门话题,随着科技互联网的飞速发展,Wi-Fi 技术也随之得到了大规模提升.各行各业都在进行企业数字化 ...

  9. 德鲁伊 oltp oltp_内存中OLTP –更快变得更简单!

    德鲁伊 oltp oltp In-memory OLTP is a revolutionary tool introduced on SQL Server 2014. On SQL Server 20 ...

最新文章

  1. 基于itchat的个人情感分析
  2. 扛鼎之作!Twitter 图机器学习大牛发表160页论文:以几何学视角统一深度学习
  3. 《树莓派渗透测试实战》——总结
  4. macbook pro 识别不到外接显示器
  5. 启动和停止Oracle服务bat脚本
  6. PyCharm安装开发游戏的Pygame
  7. 窥探ASP.Net MVC底层原理 实现跨越Session的分布式TempData
  8. DockPanel 类
  9. C语言——数组、函数、指针
  10. FIREDAC连接SQLITE乱码的解决
  11. ClassLoader类加载器简介
  12. 【书籍学习】MATLAB书籍\【chinapub】matlab教程一套电子书
  13. 计算机硕士系统毕业论文答辩ppt,计算机硕士论文答辩ppt
  14. 下载列表失败_Mac配置的Motrix,高速下载百度云
  15. flash 在谷歌 不能使用
  16. 幅相曲线渐近线_第十讲 频域分析法(Nyquist曲线)
  17. 计算机函数求各科及格率怎么求,合格率怎么算(计算及格率的方法)
  18. SPECCPU2006 Spec2006 使用说明
  19. java 微分方程求解_解微分方程
  20. ThreadPoolExecutor(四)——Interrupt

热门文章

  1. Namomo Spring Camp Div2 Week1 - 第三次打卡
  2. java之歌_程序员之歌
  3. 怎么截取网页全图_FastStone Capture长截图怎么使用?滚动截图教程
  4. mysql+性能优化+命令_MySQL 性能优化及常用命令
  5. 图书管理系统详细设计说明书_书城管理系统不同模块在图书管理中体现不同作用...
  6. android通知栏如何添加按钮,如何在通知栏上放置媒体控制器按钮?
  7. linux下expdp定时备份_Linux 自动备份 Oracle 数据库 Shell 脚本
  8. 安卓button设置背景图_这些安卓源码调试技巧,不懂的人月薪绝对不过 30k !
  9. Linux仿真运算集群,fluent DPM Linux计算集群运行报错 - 计算模拟 - 小木虫 - 学术 科研 互动社区...
  10. FW: How to use Hibernate Lazy Fetch and Eager Fetch Type – Spring Boot + MySQL