A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 梦缠绕的时候 黑马粉丝团   /  2018-7-15 09:27  /  1262 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

[size=0.8]Mask R-CNN是在Faster R-CNN上扩展出了一个并行分支,用来进行实力分割任务,原分支继续执行边界框预测任务。用来进行实例分割的分支就是一个作用于每一个ROI的简单的FCN。
[size=0.8]R-CNN在每一张图片上生成多个候选区域,在每一个候选区域上独立的运行卷积网络预测对象位置。R-CNN在RoIs的特征映射上采用RoIPool来提高速度和准确度。Faster R-CNN增加了一个候选区域网络(RPN),是当下顶级的架构。
[size=0.8]早期的方法采用自下而上的分割,DeepMask和后面的一些方法采用推荐分割区域的方法,然后使用Fast R-CNN进行分类。上述的方法都是先进行分割,然后再分类,这样很慢且不准确。
[size=0.8]Faster R-CNN对于每一个候选对象有两个输出,类别标签和边界框补偿,Mask R-CNN在此基础上,增加了一个object mask的输出。
[size=0.8]首先简要回顾一下Faster R-CNN。Faster R-CNN分为两个stage,RPN(产生候选对象边界框)和Fast R-CNN(使用RoIPool提取特征,然后分类和边界框回归)。
[size=0.8]Mask R-CNN也分为两个stage,第一个依然是RPN,第二个在分类和边界框的基础上,增加了一个二进制mask的输出。
[size=0.8]训练过程中,对于每一个RoI定义了一个多任务loss: 分别为分类loss,边界框预测loss和mask预测loss。前两个与Fast R-CNN所定义的一样。这里说一下mask预测loss。对于每一个RoI,输出为维,以m*m的分辨率编码K个二进制masks,定义mask预测损失为平均二进制交叉熵损失,对于每一个与真实类别k相关的RoI,mask损失只定义在第k个mask上(其它的mask输出并不加入到该loss上)
[size=0.8]mask预测损失的设计方法,解耦了mask预测和分类预测,有更好的效果。
[size=0.8]mask编码了一个输入对象的空间布局,是pixel-to-pixel级别,因此需要使用全卷积层。类别和边界框预测后面是用全连接层。
[size=0.8]作者使用FCN(全卷积层),在一个RoI上 这种pixel-to-pixel级别的映射,需要RoI特征保存确切的空间相关性,因此作者提出了RoIAlign层。
[size=0.8]经过RoIPool后的特征在pixel级别的表现上不是很好,因为RoIPool将原先特征上的浮点值量化离散的整数值,例如量化的计算通常为[x / 16],其中x为连续的坐标值,通常为浮点数,[ ]为舍入符号,如向上取整或向下取整,由此可见这种舍入的量化方式导致了一些信息的丢失,因此作者提出了RoIAlign层。
[size=0.8]RoIAlign舍弃了舍入的量化方式,取而代之的是计算精确的特征值,如用x / 16取代[x / 16]。下图为RoIAlign的图示:
[size=0.6]这里写图片描述

[size=0.8]作者为了表述清晰,将Mask R-CNN网络分为两部分,(i)前半部分称为
[size=0.8]convolutional backbone
[size=0.8],用来提取图像特征;(ii)后半部分称为
[size=0.8]head
[size=0.8],用来进行进行分类,边界框回归和mask预测。下图为MaskR-CNN在使用ResNet网络的Faster R-CNN和在使用FPN网络的Faster R-CNN的
[size=0.8]head
[size=0.8]架构:
[size=0.6]这里写图片描述

[size=0.8]训练:如果一个RoI与ground-truth的IoU大于0.5,判定该RoI为正例,否则为负例。mask损失只在正例上定义。mask就是一个RoI与其ground-truth的交集。
[size=0.8]作者采用一图想为中心的训练方式。重新设置图像的大小。每一个GPU上的mini-batch有2张图像,每一个图像有N个RoIs,这些RoI的正负例比例为1 :3。对于采用ResNet网络的Mask R-CNN来说,N=64;采用FPN的Mask R-CNN,N=512。作者同时在8个GPU上进行训练,迭代160k次,开始的学习率为0.0001,迭代到120k时,学习率降为0.00001。使用0.0001的权重衰减和0.9的momentum。RPN设置5种规模的anchors,每种包含3中长宽比。RPN单独训练,不与Mask R-CNN分享权重。
[size=0.8]推断:对于采用ResNet网络的Mask R-CNN来说,N=300;采用FPN的Mask R-CNN,N=1000。在这些proposal上进行box prediction,然后进行non-maximum suppression。然后,mask加到加到分数最高的100个检测box上,这与训练采用的并行方式是不同的。mask分支可以在每个RoI上预测K个masks,但是我们只使用第k个mask,k是分类分支预测的该RoI的类别。m*m个浮点数mask输出被resize成RoI的size,然后用0.5的阈值进行二值化。
[size=0.6]这里写图片描述

[size=0.6]这里写图片描述

[size=0.6]这里写图片描述

[size=0.6]这里写图片描述

[size=0.6]这里写图片描述



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马