前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >经典论文解读 : Faster R-CNN,RPN网络的诞生

经典论文解读 : Faster R-CNN,RPN网络的诞生

作者头像
唐国梁Tommy
发布2021-05-28 17:15:18
3.6K0
发布2021-05-28 17:15:18
举报
文章被收录于专栏:唐国梁Tommy唐国梁Tommy

哈喽,大家好,今天我将和各位同学一起研读CV领域的一篇论文

《Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks》,该论文由CV领域大牛RGB和何凯明于2016年发表,此篇论文堪称经典论文之一。

如图-00所示(Faster RCNN):

一直以来,我的观点是经典且有影响力的论文必须要读、而且要经常拿出来读,因为,当下的很多新技术或新算法都是基于前人的成果(核心思想)。

好啦,今天我们还是老样子,根据论文的架构一一来梳理、总结、剖析。

第一部分:Abstract

该部分内容主要是作者对全篇论文中的创新点做了一个概括,作者提出了RPN(Region Proposal Network),RPN是一个全卷积网络,能够同时预测目标的bounding box和score,端到端的训练生成高质量的region proposals,同时RPN与检测网络共享卷积特征。

如图-01所示(Faster RCNN的检测结果):

算法Faster RCNN融合了RPN和Fast R-CNN为一个网络,且彼此之间共享卷积,这种网络结构类似于注意力机制(attention mechanism),RPN网络能够聚焦于关注的目标。

个人观点:RPN所做的事情类似于预处理的工作,把一些复杂的流程进行简化后,交给后续Fast RCNN继续处理,即节省了运行时间,又提高了准确性,所以,在后续很多目标检测算法中,基本上都被采用。】

第二部分:Introduction

1. 问题:目前的目标检测算法主要分成两个方向:① region proposal methods;② region-based convolutional neural networks;这两种方法的主要问题是proposals的计算过程非常耗时。

2.措施:基于深度卷积神经网络来计算proposals;

3. PRN进一步概述:

① 与检测网络共享卷积;

② RPN类似于FCN(fully convolutional network 全卷积网络),能够进行端到端的训练,并生成detection proposals;

③ RPN可以根据不同的尺度和长宽比来高效预测region proposals;

如图-02所示(RPN多尺度提取Proposals):

个人观点:之前的RCNN算法,在提取proprosal阶段用的selective search算法,缺点就是太慢、计算量太大,完全无法满足实时性和准确性。现在Faster R-CNN算法引入了RPN网络,可以加快proposal的提取,提高运行效率。】

第三部分:Related Work

针对于目标的porposal的提取通常作为一个模块,独立于检测器(detector)。Faster RCNN算法主要是针对该模块的优化。在目标检测领域,目前通用算法都是基于深度卷积神经网络,实现预测目标的bouding boxes,以及通过共享卷积,实现准确性和速度的提升。

如图-03所示(Faster RCNN的检测结果):

第四部分:Faster R-CNN

(一)该部分是本篇论文的核心内容,我们详细来梳理、总结一下:

Faster R-CNN由两个模块组成:

① 第一个模块是一个深度全卷积网络,用于region proposal;

② 第二个模块是Fast R-CNN检测器,其输入便是模块一提供的region proposals;

(二)Region Proposal Network 区域提议网络

RPN网络的输入是一张任意尺寸的图片,输出是一组带有矩形框的object proposals,每一个proposal都有对应的objectness socre(目标得分)。

如图-04所示(RPN):

1. Region Porposal 的生成过程:

① 为了生成region proposals,在最后共享的卷积层输出的卷积特征图上滑动一个小的网络;

② 每一个滑动窗口映射到一个低维的特征上;

③ 这个特征被输入到两个全相连的层(一个是box回归层,另一个是box分类层);

2. Anchors

① 在每一个滑动窗口位置,同时预测多个region proposals,每一个位置最大可能性的proposal的数量定义为k个。

② 回归层针对k个boxes的位置(4个值)输出4k个值;

③ 分类层输出2k个scores,用于评估每个proposal是否为目标物体的概率;

④ k个proposals类似于k个reference boxes,称之为anchors;

⑤ 默认情况下,对于每个滑动位置,RPN使用3个尺度和3个长宽比,生成9 (k=9) 个anchors。假设一个卷积特征图的大小为w * h,那么这张卷积特征图上总共有:w * h * k 个anchors.

2.1 Translation-Invariant anchors 平移不变性anchors

① 我们的方法的一个重要特性是,在anchors和计算相对于anchors的提案的函数方面,它都是平移不变的。

② 如果对图片中的object进行平移,proposal也应该进行平移;

③ 在k=9个anchors的情况下,算法有(4 + 2)x 9 个维度的卷积输出层;

2.2 多尺度的anchors作为regression references

① 基于anchor的方法构建在anchors金字塔结构上,该方法根据多尺度和多长宽比的anchor boxes,能够对bounding boxes进行分类和回归;

3. Loss Function 损失函数

① 算法给两种类型的anchors分配positive label:

第一种:anchors与ground-truth box重叠区域,IoU最大的anchor;

第二种:anchor与ground-truth box重叠区域,IoU超过0.7的anchor;

② 如果anchors与ground-truth boxes的IoU低于0.3,则给non-positive anchor分配positive label;

③ 那些anchors既不是positive,又不是negative,则对训练目标没有任何贡献;

④ 一张图片的损失函数公式可以定义如下:

下面对公式中的符号和变量进一步说明:

(1) i : 是mini-batch中一个anchor的索引;

(2)p_i : anchor i 为object的预测概率;

(3)p*_i : ground_truth label,如果anchor为positive,label为1;如果anchor为negative,label为0;

(4)t_i : 一个vector,表示预测bounding box的4个参数坐标值;

(5)t*_i : 与positive anchor关联的ground-truth box;

(6)公式中的两部分均进行了归一化处理,后者加入了权重参λ;

⑤ 对于bounding box regression,采取4个坐标的参数化。

(1)公式中的x, y, w, h 表示box的中心坐标和宽、高。

(2)变量 x, x_a, x* 分别表示 predicted box,anchor box, 以及 ground truth box。

4. Training RPNs

① RPN 通过反向传播和随机梯度下降法进行端到端的训练;

② 随机从一张图片中采样256个anchors,计算一个mini-batch的损失函数;

③ 采样的positive anchors 和 negative anchors的比例是 1 : 1;

④ 如果一张图片中少于128个 positive samples,那么用negative samples来填充mini-batch;

⑤ 所有层通过ImageNet预训练模型进行初始化;

5. Sharing Features for RPN and Fast R-CNN (RPN和Fast R-CNN共享特征)

5.1 基于特征共享的3种训练网络的方式

① alternating training 交替训练

第一步:首先训练RPN,然后使用proposals训练Fast R-CNN;

第二步:网络由Fast R-CNN微调,应用于初始化RPN,反复迭代这一过程;

② approximate joint training 近似联合训练

第一步:在训练过程中,RPN和Fast R-CNN融合到一个网络;

第二步:在每一次SGD迭代,当训练Fast R-CNN检测器时,前向传播生成region proposals;

第三步:反向传播正常进行,在共享层,反向传播将来自RPN的loss和Fast R-CNN的损失融合起来;

③ non-approximate joint training 非近似联合训练

在非近似联合训练中,RoI pooling层需要区分box坐标;【论文中没有详细讲解】

个人观点:RPN的提出,替换了RCNN,Fast RCNN中proposal提取的算法(selective search),减少了proposal的计算,提升了运行效率。同时,基于共享feature map,在Fast R-CNN检测阶段,基本上没有再次进行region proposal,时耗为0。后续很多的目标检测算法,基本上采用RPN的思想来进行region proposals。】

第五部分:Experiments

这部分作者分别基于:PASCAL VOC 2007 / 2012数据集 和 MS COCO数据集 进行了实验:

【注意:对实验结果感兴趣的读者朋友,可以去看论文,里面写的非常详细。】

1. Detection results on PASCAL VOC 2007 test set

2. Results on PASCAL VOC 2007 test set with Fast R-CNN detectors and VGG-16

3. Detection results of Faster R-CNN on PASCAL VOC 2007 test set using different settings of

anchors

4. Detection results on PASCAL VOC 2012 test set

5. Results on PASCAL VOC 2012 test set with Fast R-CNN detectors and VGG-16

6. Experiments on MS COCO

第六部分:Conclusion

作者已经提出了有效而准确的Region Proposal生成的网络(RPN)。通过与Fast R-CNN网络共享卷积特征,Region Proposal步骤几乎是无耗时。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 唐国梁Tommy 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档