大家好,欢迎来到IT知识分享网。
**
Mask RCNN个人解读
**
摘要:
作者提出了一个概念上简单,灵活和通用的对象实例分割框架。 我们的方法能够高效地检测图像中的对象,同时为每个实例生成高质量的分割掩膜(mask)。给每个RoI增加一个和边界框回归(Faster_R-CNN)平行的分支区预测目标的掩膜(mask),该分支是小弟FCN。易训练,泛化能力强。
改进
使用RoIAlign替换RoIPooling,不适用空间量化,保留真实确定的空间位置。影响很大:mask精度极大提高,定位精度大幅度提高。其次,分离掩膜和类别预测的很重要。RoI分类主要是预测类别,mask给每个类一个二进制掩膜,不需要在类别间进行竞争,FCN对每个像素分类,成功连接segment和classfication
相关工作
R-CNN发展史:R-CNN是在原始图像上提取proposal,每个都要输入到深度网络中去,进行分类回归。后来进行改进,一整张图输入进去,在特征图上提取proposal,速度加快。faster-R-cnn是改进了提取proposal的方法,使用RPN替代选择性搜索的方法(SS),进一步加快速度,提高精度
实例分割:实力分割比较老的方法是产生分割proposal ,输入到fast-rcnn网络中去进行分类,速度慢,精度低。其后比较好的的方法是:提出发杂的多阶段级联网络,从边界框中预测分割proposal,然后再进行分类。最近提出了一种方法是将目标检测系统和产生分割proposal的系统结合在一起,用于全卷积实例分割。主要是预测一系列对位置敏感的全卷积输出信道。这些信道能够同时检测目标的类别,边界框,掩膜,速度很快,但是在遇到目标发生重叠时,会产生虚假边界。语义分割驱动的实例分割,聪明和每个像素分类结果开始,试图把同类别的像切割到每个实例,这些方法是分段优先的策略,Mask-RCNN是基于实例优先的策略。这两种方法可以进行结合
Mask的输出需要提取更精细的空间布局。Mask-R-CNN的关键元素:像素到像素的对齐(Fast/Faster-R-CNN除妖缺失部分)。一千的方法是费雷取决于mask预测,Mask-RCNN采用了和fast-RCNN一样的方式,使他们平行发生。
Mask-RCNN损失函数分成3部分:
Lcls和Lbox与fast-RCNN中定义的一样,Lmask使mask分支上的损失函数,输出大小为Kmm,其编码分辨率为mm的K个二进制mask,即K个类别每个对应一个二进制mask,对每个像素使用sigmoid 函数,Lmask是平均二进制交叉熵损失。RoI的groundtruth类别为k,Lmask只定义在第k个Mask上,其余的mask属于对它没有影响(也就是说在训练的时候,虽然每个点都会有K个二进制mask,但是只有一个k类mask对损失有贡献,这个k值是分类branch预测出来的)。
Mask-RCNN没有类间竞争,因为其他类别不贡献损失。mask分支对每个类别都有预测,依靠分类层选择输出mask(此时大小应该是mm,之预测了一个类别出来,只需要输出该类别对应的mask即可),使用FCN的一般方法是对每个像素使用softmax以及多项交叉熵损失,会出现类间竞争。二值交叉熵会使得每一类的 mask 不相互竞争,而不是和其他类别的 mask 比较 。
类间竞争的问题再次解释一下:softmax会产生FCIS的 ROI inside map与ROI outside map的竞争
mask表示:全连接层(fc)不能保存空间结构,但是全卷积网络(FCN)可以(可能是padding),类别标签以及box偏移量经过fc,不可避免重叠成为短输出向量,mask经过FCN可以实现像素到像素的对应,但是这个操作需要RoI特征(小特征向量)很好的对齐,保留每个像素的空间对应。
区域不匹配问题转自知乎的应该作者,链接在文章上面,解释的很清楚。
RoIPool:提取小特征图的标准操作,本质其实是量化,先把RoI的浮点输出量化称特征图的力度,然后继续按照自身定义的空间bin把量化后的RoI继续细分,最后每个bin聚龙输出(通常最大池化实现)。但是这种量化操作会造称像素错位。对预测像素精度的mask会造成给很大影响。
RoIAlign(对齐):改进了RoIPool苛刻池化的方式,将特征与输入对齐。就是避免了RoI边界或者bin的量化
将特征图划分成网格,(在faster-RCNN中,输入图像大小固定,因此特征图大小固定,因此网格数和大小每次都是一样的,只是每个RoI可能大小不一样),在每个RoI的bin中,有4个周期采样的位置,利用附近的网格点的值计算采样点的值,季孙方法:双线性插值。最后汇总结果(最大值或者平均值,可以池化进行,文中使用双线性插值到1414,再pooling到77)。没有任何池化操作,因此,采样点的位置和个数影响不大(不敏感)。
网络结构:1.提取特征的网络主干结构。2.边界框识别(包括分类和回归)的网络头。3.mask预测独立作用每个RoI。
操作的一些技巧:Lmask实在正RoI上定义。mask的目标就是RoI和相关的真实mask的交集。测试阶段先进行box预测枝,才进行mask。不是并行的三条线。
提升效果的一些方法:1.数据蒸馏。自训练的一种策略,在带标签的数据上进行训练,预测未标记的数据,然后谁用预测结果继续训练模型。2.模型的重要性,包括non-local(NL)模型。3.增强数据集。
写的不好的地方欢迎指正。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/22759.html