MaskRCNN学习笔记

来源:互联网 发布:英国一年制硕士 知乎 编辑:程序博客网 时间:2024/05/21 05:41

摘要

作用:物体检测+产生一个切割mask
FasterRCNN区别:能生成一个检测框

1. 简介

1.1 基础扫盲

物体检测Fast/Faster RCNN
通常包含两个问题,一是判断属于某个特定类的物体是否出现在图中;二是对该物体进行定位(常用表征就是物体的边界框)可实现输入测试图片,输出检测到的物体类别和位置。
语义分割 Fully Convolutional Network (FCN)
简单而言就是给定一张图片,对图片上的每一个像素点分类
实例分割
物体检测和语义分割的综合体。相对物体检测的边界框,实例分割可精确到物体的边缘;相对语义分割,实例分割可以标注出图上同一物体的不同个体
这里写图片描述

1.2 目标与方法

目标:instance segmentation的优化
方法:在FasterRCNN基础上,多一个branch(就是一个应用在ROI的FCN)计算量上多了一点但是模型可以更快更好。
说明:
1. FasterRCNN不能实现输入到输出像素级别的alignment,使模型在特征提取上受限;
改进(很小):
新加一个层RoIAlign,将RoIPool所选择的特征图谱区域与原始图像的区域进行对齐。
效果(明显):
1. 将mask的准确率提高10%~50%
2. mask和分类去耦合对每一类进行mask的预测,不用在类之间比较,同时预测物体类别(?)

2.相关工作

2.1 R-CNN

R-CNN的目标是分析图像,并正确识别图像中主要对象,通过边界框标出对象的具体位置。

  • 输入:图像
  • 输出:图像中每个对象的边界框和标签

Step1:利用 selective search 算法找到大约2000个 region proposal 
Step2: 利用CNN对每个 region proposal 提取上述区域的特征(即使这些区域大多是重叠的),通过SVM确定边框中的图像类别;
Step3:对每个分好类的 region proposal  boundingbox regression 纠正,应用LinearRegression,输出更紧密的边框坐标。

2.2 Fast R-CNN

R-CNN不足

  • 单个图像的每个region proposal都需要CNN进行判断,每次判断大约需要2000次FP。
  • 此网络必须单独训练三种不同的模型:提取图像特征的CNN网络,判断类别的分类器和缩小边框的回归模型,使得训练复杂

引入ROIPooling
最后一个卷积之后加了RoIPool层,然后使用池化操将所有RoI统一成一样大小。
概括:RCNN先找再卷积;Fast RCNN先卷积再找
优化损失函数
使用multitaskloss做完训练时的损失函数,将boundingbox regression直接加入到CNN网络中训练。

整合单元模型
Fast R-CNN将CNN、Classifier和LR整合成一个单输入双输出的网络。具体而言在CNN输出层用softmax函数代替了SVM分类器,来输出对象类别;同时在CNN输出层,还加入了用来输出边界框坐标的线性回归层。这样单个网络就可以输出所需信息。

所以,这个过程可以理解为:
Step1: 利用 selective search 算法找到大约2000个 region proposal 
Step2:原始图像一次卷积得到 feature map ;
Step3: 将原始图像和 feature map 进行映射,在 feature map 中找到: region proposal ,然后进行RoI Pooling,变成一样尺寸大小的,再输入 Fc 
Step4:最后输入两个softmax:判定是否含有object、给出 bouding box的值。

整个模型的输入和输出分别为:

  • 输入:带多个区域建议的图像。
  • 输出:具有更紧密边界框的每个区域的对象类别。

2.3.2 Faster R-CNN

Fast R-CNN的不足
仍然依赖 selective search region proposal给出的结果,而寻找region proposal本身就是一个很大的开销。

出发点:
优化对单独运行选择性搜索算法的方式,重复利用多个region proposal中相同的CNN结果,几乎把边框生成过程的运算量降为0

提出Region Proposal Network(RPN)
其核心思想是使用卷积神经网络直接产生region proposal(主要是认为 feature map 中每一个像素点都是原图中一部分的映射得到的,所以直接根据 feature map 在原图中找到若干 region proposal )

Step1:对于原图进行一次CNN输出一张 feature map ,尺寸记为mm;
Step2:对于mm个点,在原图中找9个 anchor ,一共是mm9个;
Step3:上述 anchor 同样经过两个softmax(和fast r-cnn一样),取topN个结果返回

原创粉丝点击