MMDetection学习系列(1)——Faster RCNN深度探索与实战指南

B站影视 2025-01-15 10:19 2

摘要:目标检测是当前计算机视觉领域内研究的一个热点,与图像分类不一样的是,目标检测不仅要准确地识别出图像中目标的类别,还要准确的定位该目标的位置,并用边界框把目标框起来。

引言

目标检测是当前计算机视觉领域内研究的一个热点,与图像分类不一样的是,目标检测不仅要准确地识别出图像中目标的类别,还要准确的定位该目标的位置,并用边界框把目标框起来。

基于深度学习的目标检测算法可以分为两类:二阶算法(Two Stage)和一阶算法(One Stage)。

二阶算法:先生成区域候选框,再通过卷积神经网络进行分类和回归修正。常见算法有RCNN、SPPNet、Fast RCNN,Faster RCNN 和 RFCN 等。二阶算法检测结果更精确。

一阶算法:不生成候选框,直接在网络中提取特征来预测物体的分类和位置。常见算法有SSD、YOLO系列和RetinaNet等。一阶算法检测速度与更快。

论文信息:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks论文链接:https://arxiv.org/pdf/1506.01497

模型算法下载

Coovally AI Hub模型算法」,即可获取下载链接!

摘要

目前最先进的目标检测网络需要先用区域提案算法推测目标位置,像SPPnet1和Fast R-CNN2这些网络已经减少了检测网络的运行时间,这时计算区域提案就成了瓶颈问题。本文中,我们介绍一种区域提案网络(Region Proposal Network, RPN),它和检测网络共享全图的卷积特征,使得区域提案几乎不花时间。RPN是一个全卷积网络,在每个位置同时预测目标边界和objectness得分。RPN是端到端训练的,生成高质量区域提案框,用于Fast R-CNN来检测。我们通过共享其卷积特征进一步将RPN和Fast R-CNN合并到一个网络中。使用最近流行的神经网络术语“注意力”机制,RPN模块告诉统一网络需要看哪里。对于非常深的VGG-16模型3,我们的检测系统在GPU上的帧率为5fps(包含所有步骤),在PASCAL VOC 2007、PASCAL VOC 2012和MS COCO数据集上实现了最先进的目标检测准确率,每个图像用了300个提案框。在ILSVRC和COCO 2015比赛中,Faster R-CNN和RPN是几个比赛的第一名方法的基础。

Faster R-CNN介绍

自R-CNN以及Fast R-CNN的出现之后,Fast R-CNN仍然有许多缺点,即选择性搜索找出所有的候选框这个也非常耗时,因此性能存在瓶颈,为了解决这个问题,Faster R-CNN就出现了。

Faster R-CNN是R-CNN和Fast R-CNN的改进版本,其主要创新在于引入了区域建议网络(Region Proposal Network, RPN),使得目标检测过程更加高效。

Faster R-CNN算法的主要组成部分包括:特征提取网络(Feature Extractor)、区域建议网络(Region Proposal Network, RPN)感兴趣区域(Region of Interest, ROI)池化、分类和边界框回归。

Faster R-CNN的优势在于:整个网络可以一起训练,提高了检测的准确性;RPN的引入大幅减少了候选区域的数量,加快了检测速度;在多个目标检测基准上取得了当时最先进的结果。

网络结构

Faster R-CNN是对Fast R-CNN进行的改进,所以模型上有很多相似之处。简单来说,Faster R-CNN其实是在Fast R-CNN模块的基础上加了一个Region Proposal Network模块。

三种网络结构如下:

下图给出的是使用VGG16模型的Faster R-CNN网络结构图,即Faster R-CNN中的conv layers使用的是VGG16的conv layers。

在上图中我们也将整个网络分为了4部分,包括:

Conv Layers:使用13个卷积和4个pooling层来提取图片的feature map,这部分是Fast R-CNN模块和Region Proposal Network模块共享的。

Region Proposal Network:用神经网络取代传统的方法来产生region proposal。

RoI pooling:根据region proposal和feature map来提取每个region对应的feature,这和Fast R-CNN中的 RoI Pooling Layer相同。

Classification and Regression:和Fast R-CNN类似,这部分主要完成两个工作:(1)一个是经过FC layer +softmax进行分类,主要是对object proposal进行分类的,一共包括(K+1)类,即K类物体加上1个背景类。(2)另一个是经过FC layer+bbox regressor输出的,这个就是为K个类各输出4个值(K*4),而这4个值代表着精修的bounding box position。

据此架构,从输入到输出的处理流程如下:

1.通过预训练卷积网络(比如ImageNet、VGG)等的卷积层,计算输入图像的特征映射;

2.得到的特征映射分别作为Fast-R-CNN和RPN的输入,这是为了共享特征映射;

3.RPN通过在输入的特征映射上进行训练,输出2000个候选区域;

4.Fast-R-CNN使用RPN产生的2000个候选区域进行分类和边界框回归,并微调预训练网络;

总的来说,架构由RPN和Fast-R-CNN构成,RPN生成候选区域,Fast-R-CNN使用RPN生成的候选区域进行分类和回归。

区域提议网络 (RPN) 的工作原理

RPN 负责在特征映射上生成一系列可能包含物体的候选区域(region proposals)。

它通过滑动窗口的方式对特征映射进行处理,为每个位置生成一组锚点(anchors),并对这些锚点进行前景/背景分类和边界框回归。

损失函数

RPN多任务损失函数如下所示:

模型训练

Faster R-CNN训练过程

和之前的目标检测网络训练类似,都是在一个预训练网络的基础上进行训练的。在本文中主要使用4-step交替训练法来训练Faster R-CNN,主要步骤如下:

预训练特征提取网络:通常使用在大规模图像分类数据集上预训练的网络。

交替训练RPN:使用训练图像通过特征提取网络提取特征,然后训练RPN以生成区域提议。

使用RPN提议训练分类和边界框回归网络:利用RPN生成的区域提议来训练分类和边界框回归网络。

端到端微调:最后,解冻特征提取网络的权重,并联合优化整个网络。

实验结果

PASCAL VOC2007

在Faster R-CNN框架下,SS的mAP为58.7%,EB的mAP为58.6%。使用快速R-CNN的RPN 取得了具有竞争力的结果,在使用多达300个建议8的情况下,mAP为59.9%。由于共享卷积计算,使用RPN产生的检测系统比使用SS或EB快得多;较少的方案中也可以看出降低了区域全连接层的成本。

PASCAL VOC 2012

在PASCAL VOC 2012测试集上,我们的方法在 VOC 2007 trainval+test和PASCAL VOC 2012 trainval的联合集上训练的mAP为70.4%。

MS COCO

Faster R-CNN在COCO测试开发集上的mAP@0.5和mAP@[.5, .95]分别为42.1%和21.5%。在相同的协议下,mAP@0.5,mAP@[.5, .95]分别比快速R-CNN高出2.8%和2.2%。这表明,在较高的IoU阈值下,RPN在提高定位精度方面表现出色。使用COCO数据集集进行训练时,Faster R-CNN在COCO test-dev上mAP@0.5和 mAP@[.5, .95]分别为42.7%和21.9%。

图 6 显示了MS COCO测试开发集上的一些结果。

结论

论文中提出了用于高效、准确生成区域建议的RPN。通过与下游检测网络共享卷积特征,区域建议步骤几乎不需要成本。我们的方法使基于深度学习的统一物体检测系统能够以接近实时的帧速率运行。学习到的RPN还能提高区域建议的质量,从而提高整体物体检测的准确性。

Coovally AI模型训练与应用平台

Coovally AI模型训练与应用平台,它整合了整合30+国内外开源社区1000+模型算法

平台已部署1000+模型算法

如果你也想要使用Faster R-CNN等热门算法进行模型训练,可直接登录Coovally平台,一键进行下载。

来源:小码科普君

相关推荐