Faster R-CNN解读

引言

论文:《Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks》
详细内容可以参看博客,我只记录一些我自己的理解。

摘要

1.提出使用RPN网络替代R-CNN和Fast R-CNN中的区域提取Selective Search
2.采用RPN和Fast R-CNN交替训练的方式

RPN网络

网络结构大致如下,就是传统的CNN网络进行multi-task。可以采用ZFnet或者是VGG16net两种架构。
这里写图片描述

Anchor

主要记录一下anchor的概念。
Anchor是设置在原图上的一些矩形框。RPN进行ROI提取的大致思路就是:对CNN最后一层的feature map进行3*3的滑窗,feature map的每一个节点可以对应原图上的一个感知区,逐个判断Anchor是否包含ROI。
论文为了解决多尺度的问题,设置了9种不同的Anchor。9的来源是:ratio [1:1,1:2,2:1]和scale [128,256,512]的全排列。
Feature Map的每一个节点都对应一个Anchor的中心点,因此,对于ZFnet网络的Feature Map最后一层输出是40*60,因此会对应40*60*9=21600个Anchors。需要对每一个anchor判断是否包含ROI。为了解决Anchors太多的问题,论文提出使用如下两个方式进行解决:
1.忽略cross boundary的Anchor。意思就是,如果某一个Anchor与边缘交叉了,那么就将这个anchor去掉。这样的做法是可以理解的,不想将某一个cross boundary的anchor删除的一个原因是可能这里出现了obj,但是由于各种scale的anchor遍布整个原图,完全会有其他更合适的非cross-boundary的anchor标注该obj,因此删除。
通过这样的方式可以将Anchor下降到6000个左右
2.通过非极大抑制算法NMS可以将Anchor 下降到约2000个左右
NMS算法介绍

损失函数

RPN网络的损失函数介绍如下:

L(pi,ti)=1NclsiLcls(pi,pi)+λ1NregipiLreg(ti,ti) L ( p i , t i ) = 1 N c l s ∑ i L c l s ( p i , p i ∗ ) + λ 1 N r e g ∑ i p i ∗ L r e g ( t i , t i ∗ )

由分类的损失函数和回归的损失函数组成(PS: 分类的损失函数指的是判断anchor内部)
下面分别进行介绍

分类损失函数

1NclsiLcls(pi,pi) 1 N c l s ∑ i L c l s ( p i , p i ∗ )

其中,
pipiNcls{101minibatchanchor { p i 预测概率 p i ∗ { 1 正例 0 反例 N c l s 1个minibatch中的anchor数量

LclsSoftmax L c l s 函数是Softmax 函数

回归损失函数

λ1NregipiLreg(ti,ti) λ 1 N r e g ∑ i p i ∗ L r e g ( t i , t i ∗ )

其中
piNreg{10anchoranchor { p i ∗ { 1 正例 0 反例 目的是计算正例anchor N r e g anchor的总数量

Lreg=smoothL1(ti,ti) L r e g = s m o o t h L 1 ( t i , t i ∗ )

其中
smoothL1(x)={0.5x2|x|0.5|x|<1 s m o o t h L 1 ( x ) = { 0.5 x 2 当|x|<1 | x | − 0.5 否 则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值