目标检测论文阅读 Faster RCNN

本文介绍了FasterR-CNN目标检测论文的核心内容,包括区域提议网络RPN的原理、如何通过深度全卷积网络生成候选区域,以及如何通过共享卷积特征和ROI池化进行高效检测。此外,文章还提及了FCN(全卷积网络)在目标检测中的应用,以及上采样技术的优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 目标检测论文阅读笔记

目标检测论文阅读 RCNN Rich feature hierarchies for accurate object detection and semantic segmentation-优快云博客

目标检测论文阅读 SPPNet Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition-优快云博客

目标检测论文阅读 Fast R-CNN-优快云博客

目标检测论文阅读 Faster RCNN-优快云博客

目标检测论文阅读 Cascade R-CNN: Delving into High Quality Object Detection-优快云博客

目标检测论文阅读 Mask R-CNN-优快云博客

目标检测论文阅读 YOLO You Only Look Once:Unified, Real-Time Object Detection-优快云博客


Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

Fast rcnn减少了检测所需的时间,但仍使用传统的SS区域推荐方法,速度有待提升。

论文中提出了区域提议网络RPN,用深度神经网络获取区域建议。RPN与检测网络共享卷积特征(后面说明),从而实现几乎无成本的区域提议。

RPN是一个全卷积网络,它同时预测物体边界和每个位置的物体性得分。RPN通过端到端的训练获取区域建议,并投到fast RCNN中。

Faster R-CNN,由两个模块组成。第一个模块是提出区域的深度全卷积网络,第二个模块是使用提出区域的Fast R-CNN检测器

训练流程:

(1)用CNN提取输入图像的特征,得到feature map

(2)通过RPN网络从feature map得到候选框ROIs/proposal(约2000个),计算每个ROI和gt之间的iou,通过人为的设定一个IoU阈值(通常为0.5)对ROIs进行二分类,判别候选框内容是正样本(前景)还是负样本(背景),并对这些正负样本采样,使得他们之间的比例尽量满足(1:3,二者总数量通常为128),通过回归微调前景的BBox与标注gt接近。

(3)ROI pooling得到等尺寸的feature,再送入多分类器

(4)通过多分类器对候选框进行多分类

(5)再进行BBox回归

测试流程:

(1)用CNN提取输入图像的特征,得到feature map

(2)通过RPN网络从feature map得到候选框ROIs(约300个),并对ROIs进行二分类,判别候选框内容是前景还是背景,留下前景的候选框,抛弃背景候选框。

(3)ROI pooling得到等尺寸的feature,再送入多分类器

(4)通过多分类器对候选框进行多分类

(5)再进行BBox回归

区域提议网络RPN

RPN目的是判断每个像素点对应的k个区域是不是包含目标,如果包含(那么先根据输出的坐标偏置修正box位置)则(作为区域推荐)输给后面的RCNN做进一步判断

RPN网络相当于提前做了一部分检测,即判断是否有目标(具体什么类别这里不判),以及修正anchor使框的更准一些

RPN网络的输入是CNN得到的feature map,RPN在feature map上用3*3的滑动窗得到对应原图的多个候选框。

滑动窗口中涵盖的部分特征图对应着原图中的一部分区域(感受野)。

Anchor是作用于原图的,论文中采用三种尺寸三种形状的Anchor。特征图上的一个点可以映射回输入图上的一个区域,以特征图的点为中心预先设定k个boxes,这些boxes就称为在这个点上生成的k个anchor boxes(所有anchor boxes的中心点坐标是一样的)。

一个m*n的特征图就有m*n*k个anchor boxes

一次向前传播可以将一个窗口中的所有anchor box(K个,文中为9)送入后续层:分类层判断每个anchor box是前景还是背景,输出2k个Scores;回归层输出anchor box4K个偏移量注意,这里输出的是坐标偏移量,不是坐标本身,要得到修正后的anchor还要用原坐标和这个偏移量运算一下

RPN最后的建议层:

损失函数:

可以得知faster rcnn整体的loss由四个部分组成:

(1)RPN网络进行二分类的loss(候选框是前景 or 背景)

(2)RPN网络前景BBox与gt微调的loss,BBox reg loss

(3)多分类的loss,从RPN网络得到的bbox进行多类别判断的loss

(4)最后每个类别BBox reg微调的loss

RPN和fast RCNN :让二者可以共享网络参数的方式

单独训练的RPN和fast RCNN都以各自的方式修改深度网络的权重,因此需要开发一种允许两个网络间共享卷积层的技术

论文提出了三种联合训练的方法,实际采用的是“四步交替训练”

交替训练:

首先训练RPN,然后使用RPN给的建议来训练Fast R-CNN。然后使用Fast R-CNN调优的网络初始化RPN,并迭代这个过程。

      具体而言:

(1)训练RPN的基本卷积模块(称为基1)和特有卷积模块1(称为特1)

(2)训练Fast RCNN的基本卷积模块2(称为基2)和特有卷积模块2(称为特2)(用RPN的输出作为Fast R-CNN特有卷积模块2的region proposals)

RPN和Fast RCNN的基本卷积模块其实是一样的,只是分别训练了一套参数

(3)训练RPN:基1采用基2的参数并冻结参数,再次训练RPN的特1

(4)训练Fast RCNN:冻结基2参数,用第三步训练过的RPN给Fast RCNN提供区域推荐,训练Fast RCNN的特2参数

(5)重复上述4步,直到模型达到一个比较好的效果

全卷积网络FCN

FCN用到的三种技术:

不含全连接层(fc)的全卷积(fully conv)网络。可适应任意尺寸输入。

增大数据尺寸的反卷积(deconv)层。能够输出精细的结果。

结合不同深度层结果的跳级(skip)结构。同时确保鲁棒性和精确性

CNN网络在卷积层之后会接上若干个全连接层, 将卷积层产生的特征图映射成一个固定长度的特征向量。

AlexNet为代表的经典CNN结构适合于图像级的分类和回归任务,因为它们最后都期望得到整个输入图像的一个数值描述(概率),比如AlexNetImageNet模型输出一个1000维的向量表示输入图像属于每一类的概率。

FCN将传统CNN中的全连接层转化成一个个的卷积层。如下图所示,在传统的CNN结构中,前5层是卷积层,第6层和第7层分别是一个长度为4096的一维向量,第8层是长度为1000的一维向量,分别对应1000个类别的概率。FCN将这3层表示为卷积层,卷积核的大小(通道数,宽,高)分别为(4096,7,7)、(4096,1,1)、(1000,1,1),输出概率特征图。

所有的层都是卷积层,故称为全卷积网络。

FCN网络一般是用来对图像进行语义分割的,于是就需要对图像上的各个像素进行分类---对最后一层卷积产生的特征图(如上图中的tabby cat heatmap)进行上采样,使它恢复到输入图像相同的尺寸,从而可以对每一个像素都产生一个预测,同时保留了原始输入图像中的空间信息。

  1. 跳跃结构

其实直接使用前两种结构就已经可以得到结果了,但是直接将全卷积后的结果上采样后得到的结果通常是很粗糙的。所以这一结构主要是用来优化最终结果的,思路就是将不同池化层的结果进行上采样,然后结合这些结果来优化输出(与FCN思路相同)。

   

对第5层做32倍反卷积(deconvolution),得到的结果不太精确。于是将第 4 层和第 3 层的输出也依次反卷积

卷积转化为矩阵

卷积:

计算:

卷积核:

输入:

我们记向量化的图像为I ^T, 向量化的卷积矩阵为C,输出特征向量为O^T

我们将一个1*16的行向量乘以一个16*4的矩阵,得到一个1*4的行向量,那么反过来一个1*4的向量乘以一个4*16的矩阵不就是能得到一个1*16的行向量,这既是转置卷积的思想。

注意,这两个操作并不是可逆的

上采样:

上采样:对于低分辨率的特征图,常常采用上采样的方式将它还原高分辨率

双线性插值上采样

已知4Q,线性插值得到两个R,再线性插值得到P

反卷积上采样

普通的卷积操作,会使得分辨率降低,如下图33的卷积核去卷积44得到2*2的输出。

上采样的过程也是卷积,那么怎么会得到分辨率提高呢?之前我们看卷积时有个保持输出与输入同分辨率的方法就是周围补0

其实上面这种补0的方法是有问题的,只在四周补0会导致最边上的信息不太好,那我们把这个信息平均下,在每个像素与像素之间补0,如下图所示:

反池化上采样

 

(但在实际计算中,并不是通过卷积核在输入上进行滑动计算,效率太低,而是将卷积核转换为等效矩阵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值