目标检测之:Mask R-CNN

0.摘要

何恺明在提出resnet网络之后,有提出的一个目标检测框架,mask rcnn可以针对各个类别生产相应的掩码,0、1对应检测的背景和检测的目标,所以有着可以语义分割的特性,作者还说它可以进行行为分析。
ResNet+FPN+Fast RCNN(RPN)+Mask=Mask rcnn

1.回顾Fast RCNN

目标检测之:Mask R-CNN_第1张图片
Faster RCNN使用CNN提取图像特征,然后使用RPN去提取出ROI,然后使用ROI pooling将这些ROI全部变成固定尺寸,再给全连接层进行Bounding box回归和分类预测。

1.1RPN

两条分支:上面一条通过softmax获得前景还是背景,下面一条用于计算对于anchors的bounding box regression偏移量,以获得精确的proposal。而最后的Proposal层则负责综合positive anchors和对应bounding box regression偏移量获取proposals。整个网络到了Proposal Layer这里,就完成了相当于目标定位的功能。

1.2FPN

单独讲过这篇论文,不再赘述

目标检测之:Mask R-CNN_第2张图片

本文主要讲解一下roialign和第三条Mask分支

2.RoI pooling和ROIAlign

2.1RoI pooling

RoI Pooling层则负责收集proposal,并计算出proposal feature maps去做分类
Rol pooling层有2个输入:原始的feature maps、RPN输出的proposal boxes
Faster rcnn支持输入任意大小的关键就是RoI pooling,在pool之后之后不管输入的proposal feature maps是什么尺寸,都固定成固定的尺寸了
目标检测之:Mask R-CNN_第3张图片
spp也有固定输出尺寸的作用
目标检测之:Mask R-CNN_第4张图片

2.2ROI Align

proposal region的xywh通常是小数,但是为了方便操作会把它整数化。将整数化后的边界区域平均分割成 k x k 个单元,对每一个单元的边界进行整数化。就相当于把proposal region给挪动了,这样肯定会产生偏差。

目标检测之:Mask R-CNN_第5张图片
每一个小点都求距离它最近的4个feature map块的双线性插值,都求出来之后再四个小点进行max pooling就是这个点的roi align的值。可以是4个点再求pooling也可以是直接插值出1个点当做这个点的feature map,采样点设为4会获得最佳性能。
目标检测之:Mask R-CNN_第6张图片

双线性插值流程:
目标检测之:Mask R-CNN_第7张图片
目标检测之:Mask R-CNN_第8张图片
目标检测之:Mask R-CNN_第9张图片

3.Mask

目标检测之:Mask R-CNN_第10张图片
目标检测之:Mask R-CNN_第11张图片
左边是基于Faster RCNN引入mask支路后的检测部分。图中的ROI指的就是ROIAlign操作,采用7*7大小的划分得到7*7*1024维度的feature map,然后再接ResNet中的res5结构(Faster RCNN中这部分其实存在对ROI的重复计算,这也是后续类似R-FCN算法的改进点,当然也有一些做法是将ROIPool移到后面来做,也就是基于res5的输出做ROIPool,而不是基于res4的输出来做),另外这里对res5做了修改,使得这个结构不改变输入feature map的宽高,res5结构输出7*7*2048维度的feature map。基于该feature map有两条支路,上面那条支路经过池化层得到1*1*2048维度的输出并作为分类支路和回归支路的输入;下面那条支路接反卷积层和卷积层来得到mask。

右边是基于FPN算法引入mask支路后的检测部分。FPN中就将原来Faster RCNN中的ROI Pool移到res5后面,也就是ROI Align层之后不再涉及一些特征提取操作,这样就减少了很多重复计算。图中的ROI指的就是ROIAlign操作,上面一条支路得到维度为7*7*256的feature map(因为FPN算法是基于5个融合特征层分别做检测,这里仅以一个融合特征层为例介绍,每个融合特征层的输出channel都是256,因此经过ROIAlign后得到的输出channel还是256),最后接两个1024维度的全连接层就可以做为分类和回归支路的输入。下面一条支路用14*14大小的划分得到14*14*256的输出,然后接数个卷积和反卷积层得到mask。
目标检测之:Mask R-CNN_第12张图片
在这里插入图片描述
Lmask称为average binary cross-entropy loss,就是BCELoss
在这里插入图片描述

你可能感兴趣的:(论文学习,目标检测,计算机视觉,深度学习)