第十七周:Fast R-CNN论文阅读

摘要

这篇博客介绍了Fast R-CNN,这是一种双阶段的目标检测模型,是对RCNN的改进。RCNN由于对每个候选区域单独进行特征提取,导致了大量的重复计算。为了解决这一问题,Fast R-CNN引入了更为高效的策略。它首先对整张图片进行卷积操作,得到特征图,然后根据候选区域在原图中的空间位置信息,在特征图上进行RoI Pooling,从而避免了重复计算。RoI Pooling层根据预定义的网格尺寸对候选区域特征图进行划分,然后在每个网格内执行最大池化操作,最终生成固定尺寸的RoI特征向量。这种方法还确保了无论候选区域的大小如何变化,都能生成一致的特征表示。此外,Fast R-CNN采用多任务损失函数,对分类器和边界框回归器进行联合训练。这种设计不仅加快了训练和推理的速度,还通过学习两种任务之间的相互影响,提高了目标检测的准确度。与RCNN相比,Fast R-CNN实现了端到端的训练,减少了训练阶段的复杂性,从而提升了检测精度。但Fast R-CNN并未解决候选区域生成过程中的耗时问题。

Abstract

This blog introduces Fast R-CNN, a two-stage object detection model that improves upon RCNN. RCNN extracts features for each candidate region separately, leading to a significant amount of redundant computations. To address this, Fast R-CNN introduces a more efficient strategy. It first performs convolution on the entire image to obtain feature maps, then conducts RoI Pooling on these feature maps based on the spatial location information of the candidate regions, thus avoiding redundant computations. The RoI Pooling layer divides the feature maps of candidate regions according to predefined grid sizes and performs max pooling in each grid, ultimately generating fixed-size RoI feature vectors. This method also ensures that consistent feature representations are generated regardless of variations in the size of candidate regions. Additionally, Fast R-CNN employs a multi-task loss function to jointly train the classifier and bounding box regressor. This design not only accelerates training and inference speeds but also enhances detection accuracy by learning the interactions between the two tasks. Compared to RCNN, Fast R-CNN achieves end-to-end training, reducing the complexity of the training phase and thus improving detection accuracy. However, Fast R-CNN does not address the time-consuming issue of candidate region generation.


文章简介

Title:Fast R-CNN
Author:Ross Girshick ;Microsoft Research
WOS:https://arxiv.org/abs/1504.08083v2


1. 引言

在FastRCNN提出之前,目标检测算法都是采用的多阶段训练流程,如RCNN。
目标检测任务的复杂性是因为需要目标的精确定位,这就带来了两个主要的难点:需要处理大量的候选区域、需要对这些候选框进行调整以实现精确定位。
尽管RCNN在目标检测任务上达到了很高的准确率,但也具有明显的缺点:

  1. 训练过程是多阶段的流程:首先,需要对与训练好的CNN进行微调;然后将CNN提取到的特征用来训练SVM分类器;最后用CNN提取到的特征来训练边界框回归器。三个步骤依次执行。
  2. 训练在时间和空间上的开销很大:训练SVM分类器和边界框回归器的数据是由CNN提取出的候选框的特征,这些特征需要先存到磁盘,在训练SVM分类器和边界框回归器时再从磁盘取出使用。
  3. 目标检测的速度很慢:在测试时,从每个测试图像中的每个候选区域提取一次特征,非常耗时。

2. Fast R-CNN框架

Fast R-CNN框架如下图所示。与RCNN一样,Fast R-CNN采用 selective search 算法产生图像的2K个左右的候选框。与RCNN不同,Fast R-CNN的网络输入图像不是候选区域,而是整张图像,而且候选框的位置信息也作为网络输入。整张图像经过CNN(文中用的网络是VGG的最后一个卷积层之前的网络)提取特征后,得到图像的特征图。各种不同大小的候选区域对应的特征图经过 RoI pooling 层得到特定尺寸的特征图,这些特征图展平后经过两层全连接层得到RoI特征向量。每个 RoI 特征向量分别经过两个不同的全连接层,其中,一个最终经过softmax得到每个类别的概率,另一个最终经过边框回归器得到除背景外其他所有类别的边框调整信息。
在这里插入图片描述

2.1 RoI位置信息映射

Fast R-CNN的网络输入是整张图像和其中的候选区域的信息,候选区域的特征图是根据整张图像的特征图和候选区域在原图中的相对位置得到的,具体方式如下:
位置信息先不考虑通道
在这里插入图片描述
经过卷积后,RoI在原图和特征图中的相对位置不变。

2.2 RoI pooling

RoI pooling 的输入是原图像的特征图和 RoI 在特征图中的位置信息,输出是特定尺寸的 RoI 特征图。
RoI pooling 对特征图中的 RoI 的每个通道都进行最大池化,但 RoI pooling 需要根据 RoI 的尺寸来决定池化的尺寸,具体如下:
在这里插入图片描述
假设RoI层的输出为 k ∗ k k*k kk ,RoI 特征图区域尺寸为 H ∗ W H*W HW,则划分后的网格中每个格子的尺寸为 H k ∗ W k \frac{H}{k}*\frac{W}{k} kHkW。若网格的分界线落到非整数像素上,则可对像素采用四舍五入的方法确定其所属的网格,例如如果一个网格从(1.2, 3.3)到(2.8, 4.7),则此网格在实际中包括行1, 2, 3和列3, 4, 5的像素,另一种处理方法为填充,使得每个网格尺寸为整数。

2.3 分类器与边界框回归器

分类器的输出为 N + 1 N+1 N+1个类别的概率,其概率是经过softmax的,所以满足概率分布,即概率的和为1;边界框回归器的输出是目标类别的位置和大小调整信息,输出的节点数为 N ∗ 4 N*4 N4.其中N为目标类别的个数,不包括背景。

2.4 以VGG16为backbone的Fast RCNN的网络结构

Layer Name Type Parameters Activation Function
conv1_1 Convolution 3x3 filters, 64 channels ReLU
conv1_2 Convolution 3x3 filters, 64 channels ReLU
pool1 Max Pooling 2x2 pool, stride 2 -
conv2_1 Convolution 3x3 filters, 128 channels ReLU
conv2_2 Convolution 3x3 filters, 128 channels ReLU
pool2 Max Pooling 2x2 pool, stride 2 -
conv3_1 Convolution 3x3 filters, 256 channels ReLU
conv3_2 Convolution 3x3 filters, 256 channels ReLU
conv3_3 Convolution 3x3 filters, 256 channels ReLU
pool3 Max Pooling 2x2 pool, stride 2 -
conv4_1 Convolution 3x3 filters, 512 channels ReLU
conv4_2 Convolution 3x3 filters, 512 channels ReLU
conv4_3 Convolution 3x3 filters, 512 channels ReLU
pool4 Max Pooling 2x2 pool, stride 2 -
conv5_1 Convolution 3x3 filters, 512 channels ReLU
conv5_2 Convolution 3x3 filters, 512 channels ReLU
conv5_3 Convolution 3x3 filters, 512 channels ReL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值