MaskRCNN学习笔记
摘要
作用:物体检测+产生一个切割mask
和FasterR−CNNFasterR−CNN区别:能生成一个检测框
1. 简介
1.1 基础扫盲
物体检测:Fast/Faster R−CNNFast/Faster R−CNN
通常包含两个问题,一是判断属于某个特定类的物体是否出现在图中;二是对该物体进行定位(常用表征就是物体的边界框)可实现输入测试图片,输出检测到的物体类别和位置。
语义分割 Fully Convolutional Network (FCN)Fully Convolutional Network (FCN)
简单而言就是给定一张图片,对图片上的每一个像素点分类
实例分割
物体检测和语义分割的综合体。相对物体检测的边界框,实例分割可精确到物体的边缘;相对语义分割,实例分割可以标注出图上同一物体的不同个体
1.2 目标与方法
目标:instance segmentationinstance segmentation的优化
方法:在FasterR−CNNFasterR−CNN基础上,多一个branchbranch(就是一个应用在ROI的FCN)计算量上多了一点但是模型可以更快更好。
说明:
1. FasterR−CNNFasterR−CNN不能实现输入到输出像素级别的alignmentalignment,使模型在特征提取上受限;
改进(很小):
新加一个层RoIAlignRoIAlign,将RoIPool所选择的特征图谱区域与原始图像的区域进行对齐。
效果(明显):
1. 将mask的准确率提高10%~50%
2. mask和分类去耦合对每一类进行mask的预测,不用在类之间比较,同时预测物体类别(?)
2.相关工作
2.1 R-CNN
R-CNN的目标是分析图像,并正确识别图像中主要对象,通过边界框标出对象的具体位置。
- 输入:图像
- 输出:图像中每个对象的边界框和标签
Step1:利用 selective search selective search 算法找到大约2000个 region proposal region proposal
Step2: 利用CNN对每个 region proposal region proposal 提取上述区域的特征(即使这些区域大多是重叠的),通过SVM确定边框中的图像类别;
Step3:对每个分好类的 region proposal region proposal 做 bounding−box regression bounding−box regression 纠正,应用LinearRegression,输出更紧密的边框坐标。
2.2 Fast R-CNN
R-CNN不足
- 单个图像的每个region proposalregion proposal都需要CNN进行判断,每次判断大约需要2000次FP。
- 此网络必须单独训练三种不同的模型:提取图像特征的CNN网络,判断类别的分类器和缩小边框的回归模型,使得训练复杂
引入ROIPoolingROIPooling
最后一个卷积之后加了RoIPool层,然后使用池化操将所有RoI统一成一样大小。
概括:RCNN先找再卷积;Fast RCNN先卷积再找
优化损失函数
使用multi−tasklossmulti−taskloss做完训练时的损失函数,将bounding−box regressionbounding−box regression直接加入到CNN网络中训练。
整合单元模型
Fast R-CNN将CNN、Classifier和LR整合成一个单输入双输出的网络。具体而言在CNN输出层用softmax函数代替了SVM分类器,来输出对象类别;同时在CNN输出层,还加入了用来输出边界框坐标的线性回归层。这样单个网络就可以输出所需信息。
所以,这个过程可以理解为:
Step1: 利用 selective search selective search 算法找到大约2000个 region proposal region proposal ;
Step2:原始图像一次卷积得到 feature map feature map ;
Step3: 将原始图像和 feature map feature map 进行映射,在 feature map feature map 中找到: region proposal region proposal ,然后进行RoI PoolingRoI Pooling,变成一样尺寸大小的,再输入 Fc Fc ;
Step4:最后输入两个softmax:判定是否含有object、给出 bouding box bouding box的值。
整个模型的输入和输出分别为:
- 输入:带多个区域建议的图像。
- 输出:具有更紧密边界框的每个区域的对象类别。
2.3.2 Faster R-CNN
Fast R-CNN的不足
仍然依赖 selective search selective search region proposalregion proposal给出的结果,而寻找region proposalregion proposal本身就是一个很大的开销。
出发点:
优化对单独运行选择性搜索算法的方式,重复利用多个region proposalregion proposal中相同的CNN结果,几乎把边框生成过程的运算量降为0
提出Region Proposal Network(RPN)Region Proposal Network(RPN)
其核心思想是使用卷积神经网络直接产生region proposalregion proposal(主要是认为 feature map feature map 中每一个像素点都是原图中一部分的映射得到的,所以直接根据 feature map feature map 在原图中找到若干 region proposal region proposal )
Step1:对于原图进行一次CNN输出一张 feature map feature map ,尺寸记为m∗mm∗m;
Step2:对于m∗mm∗m个点,在原图中找9个 anchor anchor ,一共是m∗m∗9m∗m∗9个;
Step3:上述 anchor anchor 同样经过两个softmax(和fast r-cnn一样),取topN个结果返回