Faster-RCNN 和 Mask-RCNN详解

Faster-RCNN ,Mask-RCNN原理

  • 一、摘要
    • 1.1 图像分割
    • 1.2 语义分割与实例分割
  • 二、Faster-RCNN
    • 2.1 Faster-RCNN模型架构
    • 2.2 🍊深度卷积网络(backbone)
    • 2.3 🍎RPN(Region Proposal Network)
    • 2.4 🍉RoI Pooling
    • 2.5 🍈分类与回归
    • 2.6 Faster-RCNN总结
  • 三、Mask-RCNN

一、摘要

1.1 图像分割

图像分割:图像分割是对图像中属于特定类别的像素进行分类的过程叫图像分割,属于pixel-wise即像素级别的下游任务。简单来说,图像分割就是按像素进行分类的问题。

传统的图像分割算法是基于灰度值的不连续性和相似的性质来进行分割,而深度学习则是利用卷积神经网络,来理解图像中的每个像素所代表的含义。

基于深度学习的图像分割技术主要分为这两类:语义分割及实例分割。

1.2 语义分割与实例分割

语义分割:语义分割会为图像中的每个像素分配一个类别,但是同一个类别之间的对象不会进行区分。具体来说,语义分割的目的是为了从像素级别理解图像的内容,并为图像中的每个像素分配一个类。

实例分割:实例分割只对特定的物体进行分类,这看起来和目标检测类似,不同的是目标检测输出目标的最小外界矩阵和类别,而实例分割输出的目标的Mask和类别。

概括来说,语义分割只能划分类别,而同类无法划分,因此部分场景在语义分割之后还需要进一步用实例分割来划分同类别的不同实例,如fig.1中的bc所示。

Fig.1 语义分割,实例分割与全场景分割

Fig.1. 语义分割,实例分割与全场景分割


二、Faster-RCNN

2.1 Faster-RCNN模型架构

Faster-RCNN可以大致分成四个模块,如Fig.2所示,细节如图Fig.3所示:
🍊深度卷积网络(backbone):即特征提取网络,用于特征提取。通过若干卷积+池化+激活层等组成来提取图像的feature maps,用于后续的RPN层和提取proposal。

🍎RPN(Region Proposal Network):即区域候选网络,该部分代替了RCNN与Fast RCNN的SS算法来生成候选框,该部分有两个任务,一个是分类,判断所有预设anchor是属于positive还是negative(即anchor内是否有目标,二分类),还有一个任务就是边界框回归,修正anchors来得到较为准确的proposals。

🍉RoI Pooling :即兴趣域池化,用于收集RPN生成的Proposals(每个框的坐标),并从1中提取出来,生成Proposals feature maps送入全连接层来判断类别和回归。

🍈分类与回归 :利用Proposals feature maps计算出具体类别,同时再做一次边界框回归获得最终的检测位置。

下面将围绕这四块分别展开:

在这里插入图片描述

Fig.2. Faster-RCNN整体结构

在这里插入图片描述

Fig.3. Faster-RCNN模型可视化

2.2 🍊深度卷积网络(backbone)

需要注意的是,这里我们以VGG为骨干网络作为例子来讲解(如Fig.4所示),实际情况中我们可以根据需要选择Resnet50,101或者mobilenet来作为特征提取网络。

输入:先将图像resize成M*N的输入尺寸,一般在VGG中,输入图像的尺寸为224×224。

特征提取网络:可以从图中看到,特征提取网络包含了13个conv层,13个relu激活层,以及4个池化层(原VGG网络中包含了5个池化层,这里舍弃了最后一层池化层)。在VGG网络中,采用的是3×3的卷积核,以及2×2的池化核,池化后的特征图尺寸减半。因此,经过特征提取网络之后,输处特征图的尺寸为输入的1/16,即M/16×N/16。
在这里插入图片描述

Fig.4. 特征提取网络-backbone

2.3 🍎RPN(Region Proposal Network)

首先,在讲RPN之前,我们需要明确的一点是,RPN的作用是提取候选框,RPN结构如Fig.5所示。

经过上一步,我们已经得到了M/16×N/16大小的特征图,可以看到我们将会对我们得到的特征图并行的进行两步操作,分别是沿着路径1的RPN操作以及沿着路径2的ROI Pooling操作。这一部分我们讲RPN操作。

我们会使用一个3×3的滑动窗口来遍历刚刚得到的特征图,然后计算出滑动窗口中心点坐标对应的原始图像上的中心点坐标,最后在原始图像上的每个中心点或者叫像素点绘制9中不同尺度的anchor boxes。

上一部分讲到了在得到的特征图上使用一个3×3的模板遍历特征图,这对应了图中的3×3的卷积操作,其中padding=1,stride=1。那么问题来了,如何将特征图的中心点坐标对应原图的中心点呢,前面我们讲到了VGG网络输入图像与输出特征图的尺寸关系是1/16,因此我们只需要将特征图上的中心点坐标乘以16即可。下一步就是在原图上画出基于中心点的9个锚框了,论文中给出的是三种尺度(128,256,512),每种尺度对应的比例是(1:1,1:2,2:1),这个尺度其实是一种经验设计,可以根据实际项目的需求来调整大小,如图Fig.6。

在3×3的卷积核遍历完特征图之后,原图会产生许多许多的anchor,其中大部分的anchor都是我们不需要的,后面的操作会对这些anchor进行取舍,如Fig.7。

接下来我们来看一下3×3的卷积后,特征图的变化,由于我们采用的是3×3尺寸的卷积核,padding=1,stride=1的卷积,因此卷积后的特征图尺寸并没有变化(scale+2×padding-kernelsize/stride + 1 = 14),因此可以看出,卷积后的特征图尺寸没有变化。512则是指VGG网络的最后一层的通道数为512(由卷积核的个数决定),如Fig.8所示。
在这里插入图片描述

Fig.5. RPN

在这里插入图片描述

Fig.6. 先验框

在这里插入图片描述

Fig.7. 先验框在原图

在这里插入图片描述

Fig.8. 路径1的3×3卷积

首先,来讲路径3,路径3设置了一个11的卷积核,卷积核个数为18,经过这一层的卷积之后,得到的特征图尺寸没变,但是通道数变成了18,这18个通道的作用就是用于区分每个中心点对应的9个anchor是前景还是背景,对每一个anchor进行一个二分类,即29=18。
我们以特征图上的一个位置为例,将其展开,可以将18个通道分为两两一组,每一组的第一个值为第一个anchor的前景概率,第二个值为第一个anchor的背景概率,以此类推,如Fig.10所示。

在这里插入图片描述

Fig.9. 路径3的1×1卷积

在这里插入图片描述

Fig.10. 路径3卷积后的结果含义

了解了前面的正负样本匹配的问题,现在我们来看路径4,同样是一个1×1的卷积核,卷积核个数为36,这里的36=4×9,即对应了9种不同尺度anchor的对应的坐标调整参数(dx,dy,dh,dw)。

在这里插入图片描述

Fig.11. 路径4的1×1卷积

在这里插入图片描述

Fig.12. 路径4卷积后的结果

最后,便是RPN部分的损失函数:
分类损失用的是softmax损失函数。
位置误差损失需要强调的是对先验框与GT box的回归值和预测框与GT box的回归值之间的L1范数构建损失函数。
在这里插入图片描述

在这里插入图片描述

Fig.13. RPN损失函数

2.4 🍉RoI Pooling

ROI Pooling层的输入由两个:原始的feature maps和RPN输出的Proposals。
需要说明的是,我们传入ROI Pooling层的输入为原始特征图和RPN输出的的候选框对应到原始特征图的不同部分,然后将这些部分裁剪下来传入到ROI Pooling层中。

每一块ROI区域都将被采用池化的方式resize成同样的尺寸(7*7),最后送入softmax进行分类以及box的预测。
在这里插入图片描述

Fig.14. RoI Pooling图示

2.5 🍈分类与回归

通过两层relu激活函数和全连接层,将我们的ROI Pooling后的区域展平,送入到Softmax分类器中分类,以及box_pred中微调预测框的位置,其中损失函数如下图所示,分为分类损失和回归框损失:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.6 Faster-RCNN总结

  1. 将完整的图像输入特征提取网络得到特征图

  2. 使用RPN结构生成候选框信息,将RPN生成的候选框位置投影到原始的特征图的对应位置,得到对应的特征矩阵。

  3. 使用ROI Pooling层将输入的候选区域通过池化的方式resize成一个尺寸,并将特征图送入全连接层中展平进行预测框的微调以及分类。
    (Mask-RCNN未完待续,今天先休息了)。

三、Mask-RCNN

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/452401.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VS2019 添加程序包

dotnet add package AlibabaCloud.SDK.Bailian20230601 来提示添加程序包 选择菜单栏 项目----管理NuGet程序包 输入程序包的名称,然后添加即可, 这只是给当前工程添加,并不是给VS添加,所以你打开新工程,需要使用的话…

Android BitmapShader setLocalMatrix缩放Bitmap高度重新onMeasure,Kotlin

Android BitmapShader setLocalMatrix缩放Bitmap高度重新onMeasure&#xff0c;Kotlin <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://sc…

ps基本操作

目录 ps基本操作 ps基本操作

【C++入门学习指南】:函数重载提升代码清晰度与灵活性

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; C入门到进阶 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一、函数重载1.1 函数重载的概念1.2 函数重载的作用1.3 C支持函数重载的原理1.4 扩展 &…

Kubernetes基础(十一)-CNI网络插件用法和对比

1 CNI概述 1.1 什么是CNI&#xff1f; Kubernetes 本身并没有实现自己的容器网络&#xff0c;而是借助 CNI 标准&#xff0c;通过插件化的方式来集成各种网络插件&#xff0c;实现集群内部网络相互通信。 CNI&#xff08;Container Network Interface&#xff0c;容器网络的…

Leetcode—535. TinyURL 的加密与解密【中等】

2024每日刷题&#xff08;110&#xff09; Leetcode—535. TinyURL 的加密与解密 实现代码 class Solution { public:// Encodes a URL to a shortened URL.string encode(string longUrl) {while(!urlToCode.count(longUrl)) {string code;for(int i 0; i < 6; i) {code…

【01】C++入门

文章目录 Ⅰ 命名空间1. 命名空间域的产生2. 命名空间域的定义3. 命名空间域的使用 Ⅱ 缺省参数1. 缺省的概念2. 缺省的分类3. 声明和定义不能同时存在缺省参数 Ⅲ 函数重载1. 函数重载概念2. 编译器如何实现函数重载 Ⅳ 引用1. 引用的概念2. 引用的特性3. 引用的使用场景4. 引…

云服务器也能挂游戏 安卓模拟器

安卓模拟器云服务器 什么是BlueStacks模拟器主机&#xff1f; 特网科技基于Windows操作系统预装了BlueStacks Android模拟器您能够通过Android模拟器安装Android应用程序、如APP游戏、安卓APP、APP游戏等。 我可以在主机上安装应用程序吗&#xff1f; 你可以在BlueStacks模…

css1基础选择器

大纲 一.标签选择器 比较简单&#xff0c;前面直接写目标标签 二.类选择器 应用 例子 三.多类名选择器&#xff08;调用时中间用空格隔开&#xff09; 四.id选择器 应用 五.通配符选择器 应用 六.总结

汽车租赁系统

目录 一.研究背景 二.系统架构 1、SSM 2、JAVA 3、MySQL 4、系统架构 三.系统功能 1、车辆管理 2、客户管理 3、销售管理 4、统计分析 四.系统实现 五.结论总结 一.研究背景 传统的销售与信息统计管理都主要依靠人工&#xff0c;处理出的销售数据量与使用管理系统…

SpringBoot第二天

Bean管理 Bean扫描 在Spring中&#xff0c;Bean的扫描有两种写法 第一种是在xml配置文件中用标签扫描 <context:component-scan basepackage"com.cacb"/> 第二种是是注解扫描 ComponentScan(basePackages"com.cacb") 而在SpringBoot中&#xf…

Stable Diffusion 模型下载:EnvyHyperrealXL01

模型介绍 一个基于 EnvyHyperdrive 和 NewReality 的超写实模型&#xff0c;使生成的照片级真实感模型在主题和视觉上与我的其他模型相似&#xff0c;除了&#xff0c;你知道&#xff0c;照片级真实感。 &#x1f603; 条目内容类型大模型基础模型SDXL 1.0来源CIVITAI作者_En…