Make R-CNN论文学习
在论文是在Faster R-CNN的基础上的改进 ,实现的效果有:
- 目标检测:能够在输入图像中绘制出目标的边界框,预测目标位置
- 目标分类:判别出该划定边界的目标的类别是什么,如人、车、猫和狗等类别
- 像素级目标分割:(这就是其比Faster R-CNN多出的一个功能)能够在像素层面上对目标进行区分,将目标和背景区分开来,并使用不同的颜色进行标记
如Faster R-CNN的检测结果为:

而mask R-CNN的检测结果为:

可见mask R-CNN还能够将框中具体的目标部分使用同种颜色标记出来
mask R-CNN在Faster R-CNN上面的更改可从下面的两幅网络结构图中看出来:
Faster R-CNN的结构图为:

mask R-CNN的结构图为:

可见差别主要有两部分:
- 首先是RoI池化层改进成了RoI Align层
- 其次是在第二阶段中添加了一个掩模mask检测分支
Mask R-CNN能够很容易地用于其他任务中,比如能够在相同的框架下很容易地判断人类姿势。其在COCO系列挑战赛中的三种项目中都得到了最好的结果,如实例分割、边界框目标检测和人体关键点检测。
什么是实例分割?
实例分割就是不仅要正确检测出一张图片中所有的目标(即画出边界框),并且要精确地分割出每个实例(即上面图像中将边界框中准确的目标用同颜色标注,即对每个像素进行分类)
Mask R-CNN的目的就是为实例分割开发一个相对可用的框架。
首先mask分支是一个用在每个RoI上的小型FCN(全卷积网络),以像素到像素的方式预测分割掩模。掩模分支只增加了一个小的计算开销,使快速系统和快速实验成为可能
其次因为Faster R-CNN没有设计用于网络输入输出之间的像素对齐。这一点在RoIPool[13, 9]中最为明显,它实际上是用于处理实例的核心操作,对特征提取执行粗糙的空间量化。为了修正错位,我们提出了一个简单的,量化无关的层叫做RoIAlign,可以保留精确的空间位置。尽管看似一个很小的变化,RoIAlign起了很大的作用:它能将掩模准确率提高到10%至50%。而且我们发现它对于解耦掩模和类预测是至关重要的:在没有类间竞争的情况下,我们为每个类独立的预测二进制掩模。并且依赖于网络的RoI分类分支来预测类别。相比之下,FCNs通常实现每像素多类分类,分割和分类同时进行,基于我们的实验,发现它对实例分割效果不佳。
我们的模型在GPU上以200ms每帧的速度运行,使用一台有8个GPU的机器,在COCO上训练需要一到两天的时间
Mask R-CNN
Mask R-CNN采用了与Fast R-CNN相同的二阶段过程,第一阶段都使用相同的RPN网络。在第二个阶段中,在并行预测类和框偏置的同时还为每个RoI输出一个二进制掩模。这与最近大多数的系统(如[33,10,26])是相反的,最近的系统都依靠于掩模预测进行分类(而这里是将分类和掩模预测分开进行)。我们的方法遵循了Fast R-CNN并行应用边界框分类和回归的思想(大大简化了原始R-CNN的对阶段管道)。
通常,我们都会在每个采样RoI上定义一个多任务损失函数L=Lcls+Lbox+Lmask,分类损失函数Lcls和回归损失函数Lbox与Fast R-CNN中是相同的。掩模分支对每个RoI都有Km2维的输出,表示K个分辨率为m*m的二进制掩模,K表示类别数量(即对该RoI是否为K个类别中一个进行判定,且每个类别都会返回一个分辨率为m*m的二进制掩模)。为了实现它,我们对每个像素采用了sigmoid,并将Lmask定义为平均二进制交叉熵损失函数。对于某个与某真实类k相关联的RoI,Lmask仅被定义在第k个掩模上(这是因为其他的掩模输出对损失函数没有贡献)。⚠️掩模损失函数Lmask仅在RoI的正样本上定义
我们对Lmask的定义允许网络对每个类在没有类间竞争的情况下生成掩模。我们依赖与专用的分类分支去预测用于收集输出掩模的类别标签。该操作解耦了掩模和类别预测。这与通常将FCNs[23]应用于像素级的softmax和多项式交叉熵损失的语义分割做法不同。在传统做法中,掩模将会跨类别竞争。而在我们的方法中,使用了像素级的sigmoid和二进制损失函数,掩模将不会跨类别竞争(即无类别竞争)。我们通过实验发现,这种方法是改善实例分割结果的关键。
Mask Representation掩模表示
掩模编码了输入目标的空间布局。因此与在全连接层中类别标签和框偏置不可避免地缩成短的输出向量不同,这里能够通过卷积所提供的像素到像素的对应关系,很自然地抽取掩模的空间结构。
具体来说,我们使用一个FCN全卷积网络预测来自每个RoI的一个m*m的掩模。这允许在掩模分支中的每一层保持具体的m*m目标空间布局,不需要将其收缩成一个缺乏空间维度的向量表示。不像之前为了掩模预测扭曲到fc层的方法[33,34,10],我们的全卷积表示需要更少的参数,并且如实验中说明有着更高的准确度。
该像素到像素的行为需要RoI特征,其本身就是小特征图,为了更好的对齐,以准确的保留显式的像素空间对应关系,我们开发出在掩模预测中发挥关键作用的RoIAlign层,将在接下来讲到
RoIAlign
RoIAlign是从每个RoI中抽取一个小的特征映射(如7*7)的一个标准的操作。RoIPool首先将一个浮点数RoI量化为特征图的离散粒度,然后将这个量化的RoI细分为各自量化的空间bin,最后将每个bin覆盖的特征值聚合(通常通过max pooling)。量化是可执行的。例如,对在连续坐标系上的x计算[x/16],其中16是特征图步幅(缩放的比例),[.]表示四舍五入。同样的,当将RoI分成bins时(例如7×7)也执行同样的量化计算。这些量化操作使RoI与提取的特征错位。虽然这可能不会影响分类,因为分类对小幅度的变换有一定的鲁棒性,但它对预测像素级精确度的掩模有很大的负面影响。
为了解决这个问题,我们提出了一个RoIAlign层,消除了对RoIPool的粗糙量化,并将提取的特征与输入精准的对齐。我们提出的改变很简单,我们避免对RoI边界或bins进行量化(例如,我们使用x/16代替[x/16],即不进行四舍五入)。我们使用双线性插值[22](详情可见最邻近插值算法和双线性插值算法——图像缩放)在每个RoI bins中的四个常规采样位置计算输入特征的的精确值,并将结果汇总(使用最大或平均池化),即从原图根据缩放比例对应得到相应的像素值后才进行池化。我们注意到结果对抽取的4个样本位置甚至是采样多少个点并不敏感,只要不进行量化即可
正如我们在4.2节(对照实验)中所示,RoIAlign的改进效果明显。我们还比较了[10]中提出的RoIWarp操作。与RoIAlign不同,RoIWarp忽略了对齐问题,并在[10]的实现中有像RoIPool那样量化RoI。即使RoIWarp也采用了[22]中的双线性重采样,如实验所展示的那样(更多细节见表2c),它与RoIPool的效果差不多。这表明对齐起到了关键的作用。
新的网络结构为:

Make R-CNN论文学习的更多相关文章
- Faster RCNN论文学习
Faster R-CNN在Fast R-CNN的基础上的改进就是不再使用选择性搜索方法来提取框,效率慢,而是使用RPN网络来取代选择性搜索方法,不仅提高了速度,精确度也更高了 Faster R-CNN ...
- 基于深度学习的恶意样本行为检测(含源码) ----采用CNN深度学习算法对Cuckoo沙箱的动态行为日志进行检测和分类
from:http://www.freebuf.com/articles/system/182566.html 0×01 前言 目前的恶意样本检测方法可以分为两大类:静态检测和动态检测.静态检测是指并 ...
- 论文学习笔记 - 高光谱 和 LiDAR 融合分类合集
A³CLNN: Spatial, Spectral and Multiscale Attention ConvLSTM Neural Network for Multisource Remote Se ...
- R语言可视化学习笔记之添加p-value和显著性标记
R语言可视化学习笔记之添加p-value和显著性标记 http://www.jianshu.com/p/b7274afff14f?from=timeline 上篇文章中提了一下如何通过ggpubr ...
- 《Explaining and harnessing adversarial examples》 论文学习报告
<Explaining and harnessing adversarial examples> 论文学习报告 组员:裴建新 赖妍菱 周子玉 2020-03-27 1 背景 Sz ...
- Apache Calcite 论文学习笔记
特别声明:本文来源于掘金,"预留"发表的[Apache Calcite 论文学习笔记](https://juejin.im/post/5d2ed6a96fb9a07eea32a6f ...
- 论文学习-系统评估卷积神经网络各项超参数设计的影响-Systematic evaluation of CNN advances on the ImageNet
博客:blog.shinelee.me | 博客园 | CSDN 写在前面 论文状态:Published in CVIU Volume 161 Issue C, August 2017 论文地址:ht ...
- Fast RCNN论文学习
Fast RCNN建立在以前使用深度卷积网络有效分类目标proposals的工作的基础上.使用了几个创新点来改善训练和测试的速度,同时还能增加检测的精确度.Fast RCNN训练VGG16网络的速度是 ...
- 论文学习笔记 - Classifification of Hyperspectral and LiDAR Data Using Coupled CNNs
Classifification of Hyperspectral and LiDAR Data Using Coupled CNNs 来源:IEEE TGRS 2020 下载:https://arx ...
- 卷积神经网络(CNN)学习算法之----基于LeNet网络的中文验证码识别
由于公司需要进行了中文验证码的图片识别开发,最近一段时间刚忙完上线,好不容易闲下来就继上篇<基于Windows10 x64+visual Studio2013+Python2.7.12环境下的C ...
随机推荐
- 20.Vue中获取DOM元素和组件
1.获取DOM元素和组件:this.$refs
- 从Retrofit的源码来看 HTTP
关于Retrofit是啥,这里就不多解释了,还是先来瞅下官网: 而这次主要是了解它的底层动作机制,而在了解底层之前先来回顾一下官网的整体使用步骤: 咱们也以官网的这个例子为例,先从简单的使用开始逐步深 ...
- 【数组模拟-小顶堆的插入构造/遍历】PAT-L2-012.-关于堆的判断--数组模拟
L2-012. 关于堆的判断 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: “x is the root”:x是根结点: “x and y ar ...
- 1122 django中orm操作
目录 1. 静态文件的配置 手动静态文件的访问资源 静态文件的动态绑定 2.request方法 2.1 请求方式 2.2 获取前端的请求方式 request.method 2.3 request方法 ...
- P2P技术之STUN、TURN、ICE详解
现在大多数计算机主机都位于防火墙或NAT之后,很少有计算机直接接入Internet.通常,人们希望网络中两天计算机能直接进行通信(P2P通信),而不是需要其他公共服务器的中转. 由于主机位于防火墙或N ...
- 进程 multiprocessing Process join Lock Queue
多道技术 1.空间上的复用 多个程序公用一套计算机硬件 2.时间上的复用 cpu 切换程序+保存程序状态 1.当一个程序遇到IO操作,操作系统会剥夺该程序的cpu执行权限(提高了cpu的利用率,并且不 ...
- 2018 南京网络预赛Sum - 离线分段打表
题意 设 $f(n)$ 为 $n=ab$ 的方案数,其中 $a,b$ 为无平方因子数. 例如,$f(6)=4$,因为 $6 = 1 \times 6 = 2 \times 3 = 3 \times 2 ...
- html与HTML5的区别
文档的类型声明不同 html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.or ...
- sql server if exists和 if not exists 的关键字用法
if exists和if not exists关键字用法 1.介绍 if not exists 即如果不存在,if exists 即如果存在 2.使用 a.判断数据库不存在时 if not ...
- SpringMVC拦截器及多拦截器时的执行顺序
本文链接:https://blog.csdn.net/itcats_cn/article/details/80371639拦截器的配置步骤 springmvc.xml中配置多个拦截器配置自定义拦截器并 ...