Faster RCNN论文总结

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

原文链接

[1506.01497] Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks (arxiv.org)

Abstract

当时的物体检测网络依靠候选区生成算法来猜测物体位置。SPPnet与Fast RCNN降低了检测部分的运行时间,但是却暴露出了候选区生成算法十分耗时这一瓶颈。Faster RCNN提出了候选区生成网络(RPN:Region Proposal Network),RPN能够和检测网络共享全图的卷积特征,从而让候选区生成几乎不消耗多余的时间。RPN是一个能够同时产生边框坐标信息和分类置的信度全卷积网络。RPN通过端到端的训练可以为后续的Fast RCNN生成更高质量的候选区,并且通过简单的交替优化可以让两个网络共享部分卷积层参数。

Introduction

Fast RCNN在检测网络已经几乎达到了能够满足实时检测的速度,但候选区生成运算需要消耗大量时间的问题仍是一个瓶颈。问题在于Selective Search的方法计算量大且需要使用CPU来计算。

本文中提出的RPN是全卷积网络,能够和检测网络共享卷积层参数,从而只需要很少的额外运算量。为了将RPN和Fast RCNN统一在一起,作者提出了交替微调两个网络参数的训练方法。

Region Proposal Networks

RPN网络可以接受任意大小的图像作为输入,输出目标的矩形候选框(Region Proposal)的集合,每个候选框均有一个目标得分。

为生成Region Proposal:使用滑动窗口在Conv feature map上滑动,生成一个一维的向量(256-d大小)。再通过两个1*1全卷积层(cls layer 和 reg layer)输出目标分类的概率与边界框回归参)。(细节如下图)

RPN示意图

Translation-Invariant Anchors

Faster-RCNN中的Anchors由三种尺度(128128,256256,512512)及三种比例(1:1,1:2,2:1),所以每个位置在原图上有9个anchor box。对于一张1000x600x3的图像,大约有60x40x9(20k)个anchor(6040为特征图大小),忽略跨越边界的anchor以后,剩下约6k个anchor。对于RPN生成的候选框之间存在大量重叠,基于候选框的cls得分,采用非极大值抑制,IoU设为0.7,这样每张图片只剩2k个候选框。

A Loss Function for Learning Region Proposals

取和确知框IOU最高的和大于0.7的anchor标记为正例,小于0.3的为负例,其余的对计算损失函数不产生贡献。

损失函数定义为

其中i是anchor的索引,pi是对anchor的分类置信度,pi*是确知分类置信度(正例为1,负例为0),ti是边框坐标参量化的四个值,ti*表征确知框的参量,Lclass使用log loss,Lreg使用smooth L1 loss,只有作为正例时(pi*≠0)Lreg才对损失计算有贡献。两部分损失由{pi}, {ti}分别计算,并由NclassNreg归一化,λ为二者的平衡参量。

边框坐标参量化映射关系为

tx = (x - xa)/wa, ty = (y - ya)/ha, tw = log(w/wa),th = log(h/ha)

其中(x,y)为边框的中心坐标,(w,h)为宽和高,(tx, ty,tw,th)为网络的输出,xa,ya,wa,ha为anchor预设的中心坐标和宽高。

除此之外,Faster RCNN中采用的BBox回归与SPP及Fast RCNN中的不同。在Faster RCNN中,用作回归的特征图是相同尺寸的,但k个不同的回归元参数独立不共享,从而可以从相同的特征图中识别出不同大小的物体。

Optimization

RPN作为全卷积网络,可以使用随机梯度下降和反向传播进行端到端训练。采用“以图片为中心”的采样策略,一个小批次的输入来自于一张图片所包含的正例与负例anchor。为了解决负例占多数的问题,使一个批次中随机采样的256个anchor正例与负例的比例为1:1,当正例不足128时在用多的负例补充。

Sharing Convolutional Features for Region Proposal and Object Detection

同时训练两个网络时的问题在于,Fast RCNN需要用到RPN的输出结果,因此无法在RPN的参数还未确定时训练Fast RCNN。为了解决这一问题,作者提出了四步交替优化的训练算法:

第一步:训练RPN

第二步:利用第一步生成的RPN参数训练Fast RCNN

第三步:使用检测网络的参数来训练RPN,但是保持共享的卷积层参数不变,只改变RPN独占的参数

第四步:保持共享卷积层参数不变,只微调Fast RCNN的全连接层参数

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值