R-CNN 到 Faster R-CNN的发展过程

R-CNN

R-CNN(Regional CNN)是第一个将卷积神经网络用于目标检测的深度学习模型。

主要思路:首先使用无监督的选择性搜索(Selective Search,SS)方法将输入图像中具有相似颜色直方图特征的区域进行递归合并,产生约2000个候选区域。然后从输入图像中截取这些候选区域对应的图像,将其裁剪缩放至合适的尺寸,并相继送入一个CNN特征提取网络进行高层次的特征提取,提取出的特征再被送入一个SVM分类器进行物体分类,以及一个线性回归器进行边界框位置和大小的修正。最后对检测结果进行非极大值抑制(Non-Maximum Suppression,NMS)操作,得到最终检测结果。

SPPNet

SPPNet中的SPP是指金字塔池化(Spatial Pyramid Pooling)。由于R-CNN中的SVM分类器和线性回归分类器只接受固定长度的特征输入,这就要求之前由CNN提取的特征必须是固定维度的,进一步要求输入的图像也是固定尺寸的,这也是上文提到的R-CNN中要对候选区域图像进行裁剪或缩放至固定尺寸的原因。然而,这种操作会破坏截取图像的长宽比,并损失一些信息。

SPPNet提出了空间金字塔池化层,该层被放置于CNN的末端,它可以接受任意尺寸的特征图作为输入,然后通过三个窗口大小可变但窗口个数固定的池化层,最终输出具有固定尺寸的池化特征。此外,R-CNN还存在另一个问题:它产生的大量候选区往往是互相有重叠的,这表明特征提取过程存在大量的重复计算,进而导致了R-CNN的速度瓶颈。

为了解决该问题,SPPNet在R-CNN的基础上,只进行一次全图的特征提取,而后每个候选区域对应的特征直接从全图特征中进行截取,然后送入空间金字塔池化层进行尺寸的统一。

Fast R-CNN

Fast R-CNN 的思想与SPPNet几乎一致,主要区别在于前者使用感性趣区域池化(Region-of-Interest Pooling)而非空间金字塔池化。同时,Fast R-CNN在得到了固定长度的特征后,使用全连接网络代替了之前的SVM分类器和线性回归器来进行物体分类和检测框修正,这样可以与前面用于提取特征的CNN构成一个整体,大大增强了检测任务的一体性,提高了计算效率。

Faster R-CNN

Faster R-CNN在Fast R-CNN的基础上,将其最耗时的候选区域提取步骤(即选择性搜索)用一个区域候选网络(Region Proposal Network,RPN)进行了替代,并且这个RPN和用不检测的Fast R-CNN网络共享特征提取部分的权值。

在Faster R-CNN中,一幅输入图像先由RPN提取候选区域,再取出各个候选区域对应的特征图,送入Fast R-CNN(独立于RPN的后半部分)进行物体分类和位置回归。Faster R-CNN第一次做到了实时的物体检测,具有里程碑意义。

猜你喜欢

转载自blog.csdn.net/qq_41251963/article/details/108724148