专栏首页唐国梁Tommy经典论文解读 : Faster R-CNN,RPN网络的诞生

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

哈喽,大家好,今天我将和各位同学一起研读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步骤几乎是无耗时。

本文分享自微信公众号 - 唐国梁Tommy(TangGuoLiangAI),作者:唐国梁Tommy

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-05-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【计算机视觉——RCNN目标检测系列】六、Faster R-CNN论文解读

    这10几天忙于实习公司模型训练和天池比赛,因此没有多少时间用于更新这个系列文章第六篇——Faster R-CNN论文解读。在前面一篇博客【计算机视觉——RCNN...

    AI那点小事
  • 02. OCR学习路径之文本检测(上)Faster R-CNN算法简介

    由于目前已经几乎不再使用传统的方法来做OCR,后续我们主要分享基于深度学习的OCR算法。该算法一般需要训练两个模型,一个是文本检测模型,一个是文字识别模型。

    Aalto
  • 【深度学习】从R-CNN到Mask R-CNN的思维跃迁

    发现之前写R-CNN系列的文章,侧重于结构设计层面的,比较零散,我写一个侧重于从R-CNN到Mask R-CNN设计思路是如何演变的,对R-CNN、Fast R...

    黄博的机器学习圈子
  • 基于深度学习的计算机视觉应用之目标检测

    目标检测作为图像处理和计算机视觉领域中的经典课题,在交通监控、图像检索、人机交互等方面有着广泛的应用。它旨在一个静态图像(或动态视频)中检测出人们感兴趣的目标对...

    磐创AI
  • 【个人整理】faster-RCNN的背景、结构以及大致实现架构(一)

    前言:faster-RCNN是区域卷积神经网络(RCNN系列)的第三篇文章,是为了解决select search方法找寻region proposal速度太慢的...

    小草AI
  • [深度学习概念]·实例分割模型Mask R-CNN详解

    Mask R-CNN是ICCV 2017的best paper,彰显了机器学习计算机视觉领域在2017年的最新成果。在机器学习2017年的最新发展...

    小宋是呢
  • 干货!关于目标检测你需要看的9篇论文

    目标检测是计算机视觉的核心任务之一。本期SFFAI15邀请了两位目标检测的一线科研人员,已有多篇顶会一作的张士峰和开源PyTorchCV的尤安升,同大家一起探讨...

    马上科普尚尚
  • 深度 | 像玩乐高一样拆解Faster R-CNN:详解目标检测的实现过程

    机器之心
  • 深度 | 像玩乐高一样拆解Faster R-CNN:详解目标检测的实现过程

    作者:Matt Simon 机器之心编译 本文详细解释了 Faster R-CNN 的网络架构和工作流,一步步带领读者理解目标检测的工作原理,作者本人也提供了...

    朱晓霞
  • Domain Adaptive Faster R-CNN for Object Detection in the Wild

    典型的目标检测假定训练和测试数据来自同一个理想分布,但是在实际中这通常是不满足的。这种分布的错误匹配将会导致一个明显的性能下降。这篇工作我们旨在提升目标检测的跨...

    狼啸风云
  • 从编程实现角度学习 Faster R-CNN(附极简实现)

    Faster R-CNN 的极简实现: github: simple-faster-rcnn-pytorch(http://t.cn/RHCDoPv ) 本文插...

    AI研习社
  • 重磅|基于深度学习的目标检测综述(一)

    作者:叶 虎 编辑:黄俊嘉 前 言 图像分类,检测及分割是计算机视觉领域的三大任务。图像分类模型(详情见[这里](https://medium.c...

    机器学习算法工程师
  • faster rcnn 详解

    经过R-CNN和Fast RCNN的积淀,Ross B. Girshick在2016年提出了新的Faster RCNN,在结构上,Faster RCNN已经将特...

    全栈程序员站长
  • 目标检测系列之二(R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN)

    目标检测系列之二(R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN)

    Minerva
  • PaddlePaddle实战 | 经典目标检测方法Faster R-CNN和Mask R-CNN

    机器视觉领域的核心问题之一就是目标检测(objectdetection),它的任务是找出图像当中所有感兴趣的目标(物体),确定其位置和大小。作为经典的目标检测框...

    用户1386409
  • 图像处理之目标检测入门总结

    本文首先介绍目标检测的任务,然后介绍主流的目标检测算法或框架,重点为Faster R-CNN,SSD,YOLO三个检测框架。本文内容主要整理自网络博客,用于普及...

    公众号机器学习与生成对抗网络
  • Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

    最先进的目标检测网络依赖于区域建议算法来假设目标位置。SPPnet和Faster R-CNN等技术的进步,降低了检测网络的运行时间,但是暴露了区域提案计算的瓶颈...

    狼啸风云
  • 深度学习目标检测(object detection)系列(四) Faster R-CNN

    版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/cha...

    chaibubble
  • Object Detection系列(四) Faster R-CNN

    Object Detection系列(一) R-CNN Object Detection系列(二) SPP-Net Object Detection系列...

    chaibubble

扫码关注云+社区

领取腾讯云代金券