代替Mask R-CNN,BlendMask欲做实例预测任务的新基准?
「免费学习 60+ 节公开课:投票页面,点击讲师头像」
作者 | Hao Chen、Kunyang Sun、Zhi Tian、Chunhua Shen、Yongming Huang、Youliang Yan
译者 | 刘畅
编辑 | Jane
出品 | AI科技大本营(ID:rgznai100)
【导读】实例分割是一种基础视觉任务。在今天要为大家介绍的工作中,作者通过有效地将实例级信息与具有较低级细粒度的语义信息结合起来,提升了掩码预测精度。本文的主要贡献是提出了一个Blender模块,该模块从自上而下和自下而上的实例分割方法中汲取了灵感。由于该方法简单且有效,作者希望本文的BlendMask可以作为各种实例预测任务的基准。
论文地址:
https://arxiv.org/abs/2001.00309
最近,全卷积实例分割方法引起了众多研究者的关注,因为它们通常比Mask R-CNN这样的两阶段方法更简单,更有效。迄今为止,当模型具有相似的计算复杂度时,这些方法几乎都在Mask精度上落后于两阶段Mask R-CNN方法,但这也侧面证明该类方法有很大的提升空间。
本文提出的BlendMask可以通过很少的通道有效地预测密集的像素位置敏感实例特征,并且仅使用一个卷积层就可以为每个实例学习注意力图,从而进行快速推理。BlendMask可以轻松地与最新的一阶段检测框架结合使用,并且在相同的训练策略下,其性能优于Mask R-CNN,且速度提高了20%。轻量级的BlendMask版本在单张1080Ti GPU卡上可以达到25 FPS,34.2%的mAP。
引言
性能最好的目标检测器和分割器通常都遵循两阶段模式。它们由全卷积网络,区域提升网络(RPN)组成,用于对最可能的感兴趣区域(RoI)进行密集的预测。Mask生成的质量和速度与Mask的头结构紧密相关。另外,独立的头部网络很难与诸如语义分割的相关任务共享特征,这给网络架构优化带来麻烦。
One-stage目标检测的最新进展证明,诸如FCOS之类的方法可以在精度上胜过two-stage方法。采用这样的one-stage检测框架执行实例分割任务是非常必要的,因为1)仅由常规操作组成的模型对于跨平台部署而言更简单,更容易;2)统一的框架为多任务网络架构优化提供了便利和灵活性。
密集的实例分割方法可以追溯到DeepMask,这是一种自顶向下的方法,可以使用滑动窗口生成密集的实例mask。Mask的表示在每个空间位置被编码为一维向量。尽管结构简单,但是在训练中有几个问题会阻碍它获得出色的性能:1)失去了特征和mask之间的局部一致性;2)特征表示是多余的,因为在每个前景特征处会重复地对掩模进行编码;3)在使用大步卷积进行下采样后,位置信息会消减。
在本文这项工作中,作者考虑将自上而下和自下而上的方法进行混合。这里不得不提两个重要的工作,即FCIS和YOLACT。他们预测实例级别的信息(例如边界框位置),并将其与分别使用裁剪(FCIS)和加权求和(YOLACT)的单像素预测结合起来。作者认为这些过度简化的组装设计可能无法在顶层和底层特征的表示能力之间取得良好的平衡。
较高层语义的特征对应于较大的感受野,并且可以更好地捕获有关实例(如姿势)的整体信息,而较低级别的特征则会保留更好的位置信息并可以提供更好的细节。本文工作的重点之一是研究在全卷积实例分割中更好地合并这两种方法。更具体地说,本文通过丰富实例级信息与更细粒度的掩码预测来泛化了基于建议(proposal-based)的掩码组合。本文进行了广泛的消融研究,以发现最佳尺寸,分辨率,对齐方法和特征位置。具体而言,本文实现了以下目标:
本文为基于建议(proposal-based)的实例mask生成设计了一种灵活的方法,称为Blender,该方法将丰富的实例级信息与准确的密集像素特征结合在一起。在头部处理器的比较中,本文的混合器在COCO数据集上的mAP分别比YOLACT和FCIS中的相应技术高1.9和1.3点。
本文提出了一种简单的架构BlendMask,该架构将大的计算开销添加到已经很简单的FCOS框架中。
BlendMask的一个明显优势是,其推理时间不会像传统的two-stage方法那样随着预测次数的增加而增加,这使其在实时场景中更加稳健。
在COCO数据集上,使用ResNet-50作为backbone网络,BlendMask的性能可达到37.0%mAP,使用ResNet-101的性能达到38.4%的mAP,在准确性上优于Mask R-CNN,而速度提高了约20%。本文创造了全卷积实例分割的新记录,在mask mAP中仅以一半的训练次数和1/5的推理时间就超过TensorMask 1.1个点。
据本文介绍,BlendMask可能是第一个在mask AP和推理效率方面均能胜过Mask R-CNN的算法。
BlendMask可以自然地解决全景分割,因为BlendMask的底部模块可以同时分割“things and stuff”。
与Mask R-CNN的mask头部(通常为28×28分辨率)相比,BlendMask的底部模块能够输出分辨率更高的mask,这是因为其灵活性强,并且底部模块不受FPN的束缚。因此,BlendMask能够产生具有更精确边缘的mask,如图4所示。对于图形等应用程序,这可能非常重要。
提出的BlendMask是一种通用且灵活的算法。仅使用少量的修改,就可以应用BlendMask解决其他实例级别的识别任务,例如关键点检测。
方法
BlendMask由一个检测器网络和一个mask分支组成。Mask分支包括了三个部分,一个是用于预测分数图的底部模块;一个是用于预测实例注意力的顶层,以及一个用于将分数图与注意力合并的混合(Blender)模块。整个网络如图2所示。
底部模块 与其它基于proposal的全卷积方法类似,本文添加了一个称为base(B)的底部模块去预测分数图。这个模块的输入可以是分割网络的主干特征图,也可以是像YOLACT之类的特征金字塔。
顶层(Top layer)本文在每个检测塔的顶端单独添加了一个卷积层去预测顶层的注意力信息A。其相较于YOLACT,多了一个注意力图。
Blender模块是BlendMask的核心部分,它结合了位置相关的注意力信息去生成最终的预测结果。该模块的输入就是底层模块B,顶层注意力信息A和bounding box的回归P。
首先是使用ROIPooler以p_d的大小去剪切base,然后resize到一个固定的RxR大小。
接下来将注意力信息图从M插值到R。
然后使用softmax把它归一化到K维。
最后点乘区域R和分数S,得到最后的mask logit。k是base的索引,图1是K=4时的blending过程。
这里面有几个超参,作者在实验部分做了相应的消融实验来确定这类参数。
R,底层ROI的分辨率
M,顶层预测图的分辨率
K,base的数量
实验
实验细节
训练方面,采用了基于ImageNet预训练的ResNet-50模型。通道数为128的DeepLabv3+作为底部模型。训练里面的超参数与FCOS设置的差不多。在测试时间时,是在1080Ti单卡上,batch为1来测试模型的时间。
作者做了详细的消融实现,来说明本文算法的有效性,其中包括融合方法(Blender vs YOLACT vs FCIS)、Top- bottom- 分辨率、base的数量、底部特征的位置(backbone vs FPN)、插值方式(最近邻和双线性)等等。
实验结果
作者主要与Mask RCNN, Tensor Mask等方法做了相应的对比,如表格8所示,在仅使用一半训练次数的情况下,BlendMask的结果优于修改过的Mask RCNN和TensorMask。
作者还设计了一个实时版本的BlendMask,并与YOLACT相比较。结果如表格9所示。下图展示的是基于ResNet101骨干网络的YOLACT、Mask RCNN几种算法间的可视化比较。
结论
本文为实例级密集预测任务设计了一种新的混合器模块,该模块同时使用高级实例和低级语义信息。与不同的主流检测网络集成起来既高效又容易。
本文的框架BlendMask是优于精心设计的Mask R-CNN,没有花里胡哨的东西,将速度提高了20%。此外,实时版本的BlendMask-RT在单个1080Ti GPU卡上,可达到25 FPS,34.2%的mAP。作者认为本文的BlendMask可以代替Mask R-CNN进行许多其他实例级识别任务。
(*本文为AI科技大本营编译文章,转载请微信联系1092722531)
◆
精彩推荐
◆
点击阅读原文,或扫描文首贴片二维码
所有CSDN 用户都可参与投票和抽奖活动
加入福利群,每周还有精选学习资料、技术图书等福利发送
推荐阅读
2019,不可错过的NLP“高光时刻”
4万程序员学了10万次的课程,今天,曝光背后的讲师!
机器学习模型五花八门不知道怎么选?这份指南告诉你
300多局点,数据接入量超过2TB/S,华为用AI优化数据中台 | BDTC 2019
“一百万行Python代码对任何人都足够了”
达摩院 2020 预测:感知智能的“天花板”和认知智能的“野望”
详解CPU几个重点基础知识
在以太坊上开发 Dapp 的瓶颈和门槛有哪些? | 博文精选
你点的每个“在看”,我都认真当成了AI
相关文章:

如何让ie 7 支持box-shadow
box-shadow是一个很好用并且也常用的css 3属性,但是,如果我们要保证它能在ie 8及更低的版本下运行的话,需要借助一些其他的插件或文件。在这里我主要讲一下,如何用PIE.htc来解决ie 7不支持box-shadow。 代码如下: <…
拥有AI「变声术」,秒杀了多年苦练的模仿艺能
「免费学习 60 节公开课:投票页面,点击讲师头像」作者 | Daniel Chen,爱奇艺资深研发工程师 出品 | AI科技大本营(ID:rgznai100)【导读】什么是Voice Conversion(VC)?它有…
服务器架设笔记——编译Apache及其插件
之前一直从事Windows上的客户端软件开发,经常会处理和服务器交互相关的业务。由于希望成为一个全栈式的工程师,我对Linux上服务器相关的开发也越来越感兴趣。趁着年底自由的时间比较多,我可以对这块做些技术研究。虽然这些知识很基础也很老&a…

Silverlight 2中多语言支持实现(上)
引言 最近项目要在Silverlight 2应用程序中实现本地化,原以为这个过程非常简单,却没想到实现的时候一波三折,好在结果还算不错。需求是这样的,用户第一次访问的时候,默认为英文,当用户选择一种显示语言后&a…

解析大型.NET ERP系统 多国语言实现
实现多国语言有许多种实现方案,无外乎是一种字符串替换技术,将界面控件的文本标签替换成相应语言的文字。.NET Windows Forms实现多国语言的方法有以下几种: 1 .NET的方案,使用资源文件 分别做三个语言的资源文件,比如…

服务器架设笔记——Apache模块开发基础知识
通过上节的例子,我们发现Apache插件开发的一个门槛便是学习它自成体系的一套API。虽然Apache的官网上有对这些API的详细介绍,但是空拿着一些零散的说明书,是很难快速建立起一套可以运行的系统。(转载请指明出于breaksoftware的csd…
解密Elasticsearch技术,腾讯开源的万亿级分布式搜索分析引擎
「免费学习 60 节公开课:投票页面,点击讲师头像」作者 | johngqjiang,腾讯 TEG 云架构平台部研发工程师来源 | 腾讯技术工程(ID:Tencent_TEG)【导读】Elasticsearch(ES)作为开源首选…

Centos5上firefox的升级
Centos5上firefox的升级默认Centos5上firefox的版本是1.5当我们使用yum update firefox提示到的版本还是1.5 可是我们在使用1.5版本的firefox可能会有一些问题,比如打不开QQ空间接下来我们就将系统的firefox从rpm包的1.5版本升级到tar包的3.0首先删除1.5版本的fire…

cheat engine lua
function CEButton1Click(sender) local x getProperty(CETrainer.CEEdit1,"Text")--这句很重要,获取文本框的值 --writeInteger(0x42c0c0,readInteger(0x42c0c0)x)--设置0X42C0C0地址的值 setProperty(CETrainer.CEEdit2,"Text","0001000")--设…

服务器架设笔记——使用Apache插件解析简单请求
一般来说,对于一个请求,服务器都会对其进行解析,以确定请求的合法性以及行进的路径。于是本节将讲解如何获取请求的数据。(转载请指明出于breaksoftware的csdn博客) 我们使用《服务器架设笔记——编译Apache及其插件》…
如何用Python快速抓取Google搜索?
「免费学习 60 节公开课:投票页面,点击讲师头像」作者 | linksc译者 | 弯月,编辑 | 郭芮来源 | CSDN(ID:CSDNnews)自从2011年 Google Web Search API 被弃用以来,我一直在寻找其他的方法来抓取G…

利用歌词插件 让WMP活起来
如果利用起这个歌词插件的话 是不是可以减少下载那么多播放器和每次更新的烦恼呢?因为WMP是系统自带的.可以下载的插件名称:Wa3 Music Engine 或者乐辞的歌词秀插件转载于:https://blog.51cto.com/david25/84211

Linux性能研究(总)
http://www.vpsee.com/2009/11/linux-system-performance-monitoring-introduction/ http://www.jb51.net/LINUXjishu/34607.html 公司有个测试服务器,上面跑了几个应用和一个DB。 DB被这个几个应用使用。 最近老是被挂掉。 CPU 使用率100%。 搞到最后大家都不能用。…
万字干货:如何从零开始构建企业级推荐系统?
「免费学习 60 节公开课:投票页面,点击讲师头像」作者丨gongyouliu编辑丨zandy来源 | 大数据与人工智能(ID: ai-big-data)最近几个月有很多人咨询作者怎么从零开始搭建工业级推荐系统,有做音视频的、有做新闻资讯的、有…

Mocha BSM基础架构管理——灵活的网络拓扑展现
业务需求与挑战企业的网络拓扑结构与设备时常变化,人工往往难以维护网络拓扑。尤其对于上千台设备的大型网络来说情况更为复杂。当用户网络设备大量增加后,网络结构异常复杂,用户的网络拓扑很难在一个屏幕上展现或者很难找到要查阅的网络拓扑…
服务器架设笔记——打通MySQL和Apache
在《服务器架设笔记——使用Apache插件解析简单请求》一文中,我们已经可以获取请求内容。这只是万里长征的第一步。因为一般来说,客户端向服务器发起请求,服务器会有着复杂的业务处理逻辑。举个例子,大部分客户端软件都有日志模块…
【Maven】maven的安装配置和ecplise结合
2. Maven的安装和配置 2.1. 安装 进入Maven官网的下载页面:http://maven.apache.org/download.cgi,如下图所示: 选择当前最新版本:“apache-maven-3.0.4-bin.zip”,下载到本地,解压缩到本地磁盘D:下。 2…
2020年趋势一览:AutoML、联邦学习、云寡头时代的终结
作者 | Roberto Sannazzaro,Ben Longstaff译者 | 夕颜出品 | AI科技大本营(ID:rgznai100) 【导读】在 2020 年来临之际,新年前夕往往是人们回顾过去一年并展望来年的好时机。本文将深入探讨了关于 AI 的技术和非技术方面的趋势&am…
使用C++实现一套简单的状态机模型——实例
一般来说,“状态机”是一种表达状态转换变换逻辑的方法。曾经有人和我讨论过为什么不直接用ifelse,而要使用“状态机”去实现一些逻辑,认为使用“状态机”是一种炫技的表现。然而对于大型复杂逻辑的变化和跳转,使用ifelse将带来代…

net通过oledb 和ibm自带连接方式,连接db2数据库出错
第一种通过ibm方式连接 DataSet ds new DataSet(); OleDbConnection cn new OleDbConnection( "ProviderIBMDA400.1;Data Source192.168.21.10;User IDb4dd;" "Passwordb4dd;Default CollectionQIBMPP"); …

SAP QM 'QM System' 有什么控制作用?
SAP QM ‘QM System’ 有什么控制作用? QM system可以控制如下二点: 1>如果我方与Vendor的质量标准匹配,且相互认证,那么我方收货后不用检验,系统不产生检验批;如果我方与vendor的质量标准匹配&#x…

使用C++实现一套简单的状态机模型——原理解析
在上一文中,我们介绍了该状态机模型的使用方法。通过例子,我们发现可以使用该模型快速构建满足基本业务需求的状态机。本文我们将解析该模型的基础代码,以便大家可以根据自己状态机特点进行修改。(转载请指明出于breaksoftware的c…
干货:NIST评测(SRE19)获胜团队声纹识别技术分析 | CSDN博文精选
作者 | xjdier来源 | CSDN博文精选(*点击阅读原文,查看作者更多精彩文章)近日,NIST说话人识别技术评测 (Speaker Recognition Evaluation,SRE)正式公布榜单,芯片初创公司清微智能和清华大学等机构组成的联队…

网络系统传输负载测试
网络系统传输负载测试 随着企业各种信息系统相继投入使用,生产、管理信息逐步增加,企业网络规模迅速扩大,信息城域网承受着空前的压力,网络带宽严重不足,网络系统传输丢包、设备死机情况频频发生。我们需要对网络状况做…

android圆形旋转菜单,而对于移动转换功能支持
LZ该公司最近接手一个项目,需要写一个圆形旋转菜单,和菜单之间的移动换位支持,我本来以为这样的demo如若互联网是非常。想想你妈妈也帮不了我,空旋转,但它不能改变位置,所以LZ我们只能靠自己摸索。 最后LZ参…
微信9年:张小龙指明方向,微信AI全面开放NLP能力
作者 | 夕颜责编 | 王金许出品 | AI科技大本营(ID:rgznai100)一年一度的微信公开课 Pro 在广州保利世贸博览馆如期举行。一大早,同在博览馆举办的广州年货促展会参会者,夹杂着参加腾讯公开课的与会者,让这里变得人流攒…
实现HTTP协议Get、Post和文件上传功能——使用WinHttp接口实现
在《使用WinHttp接口实现HTTP协议Get、Post和文件上传功能》一文中,我已经比较详细地讲解了如何使用WinHttp接口实现各种协议。在最近的代码梳理中,我觉得Post和文件上传模块可以得到简化,于是几乎重写了这两个功能的代码。因为Get、Post和文…

第一篇文章,做个纪念
第一篇文章,做个纪念,这个blog好吗?拭目以待!转载于:https://blog.51cto.com/197536/88241

Maven工程引入jar包(转)
Maven项目引入jar包的方法,希望能帮助有需要的朋友们 法一.手动导入:项目右键—>Build Path—>Configure Build Path—>选中Libraries—>点击Add External Jars—>选中已事先下好的Jar包导入即可。 法二.通过pom.xml文件的Dependencies标…

实现HTTP协议Get、Post和文件上传功能——使用libcurl接口实现
之前我们已经详细介绍了WinHttp接口如何实现Http的相关功能。本文我将主要讲解如何使用libcurl库去实现相关功能。(转载请指明出于breaksoftware的csdn博客) libcurl在http://curl.haxx.se/libcurl/有详细的介绍,有兴趣的朋友可以去读下。本文…