Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 论文笔记

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

论文链接: https://arxiv.org/abs/1506.01497

一、Problem Statement

像SPPnet, Fast R-CNN这些网络中,使用selective search的方法提取region proposal, 暴露出region proposal 的计算是个瓶颈。

二、Direction

  1. 提出了一个Region Proposal Network(RPN),并把RPN和特征提取层共享特征,实现“attention” 机制。
  2. 引进了anchor boxes 概念。

三、Method

先看一下整体的框架:

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 论文笔记_第1张图片

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 论文笔记_第2张图片

1. Backbone

Faster R-CNN 接受任意大小的输入,进入网络之前对图片进行了规整化尺度的设定,如可设定图像短边不超过600,图像长边不超过1000,我们可以假定M * N=1000 * 600(如果图片少于该尺寸,可以边缘补0,即图像会有黑色边缘。

2. Region Proposal Network

可以把任意大小的图片输入到RPN,然后输出一系列的proposal 区域,每一个proposal会带一个objectness score。RPN是由FCN组成的。Feature Map进入RPN后,先经过一次 3 * 3的卷积,同样,特征图大小依然是 60 * 40,数量512,这样做的目的应该是进一步集中特征信息,接着看到两个全卷积,即kernel_size=1*1,p=0,stride=1;

3. Anchors

在每一个卷积核地方,同时预测K个region proposal。所以regression分支有4k个输出,代表K个boxes。classification分支有2k个输出,代表每个proposal存在目标可能的概率。在每个卷积核的地方中,K个proposals都是有anchors参考的。

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 论文笔记_第3张图片

每个位置有3个scales和3个 aspect ration的anchor,所以总共有 k = 9 anchors。所以对于一个 大小为 W * H 的feature map, 总共有 WHk 个anchors。

translation-invariant Anchors具有以下特性:

  1. 任一位置预测
  2. 减小模型大小
  3. 解决multiple scales问题,因为是基于pyramid of anchors。

4. RoI Pooling

通过RoI pooling层使每个RoI生成固定尺寸的feature map,进入到后面可利用全连接操作来进行目标分类和定位;

5. Loss function

整体的 objective function:
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 ∗ ) L_{(\{p_i\},\{t_i\})}=\frac{1}{N_{cls}}\sum_iL_{cls}(p_i, p_i^*) + \lambda\frac{1}{N_{reg}}\sum_ip^*_iL_{reg}(t_i, t_i^*) L({pi},{ti})=Ncls1iLcls(pi,pi)+λNreg1ipiLreg(ti,ti)
这里的 i 是anchor的索引, p i p_i pi是achor i 中有目标的概率, p i ∗ p_i^* pi 是真值,如果anchor i postive,则为1,negative为0。 t i t_i ti 是一个向量代表预测的bounding box的值, t i ∗ t_i^* ti 是 positive anchors的bounding box 的真值。 L c l s L_{cls} Lcls 是 二分类的log loss 而 L r e g ( t i , t i ∗ ) = R ( t i − t i ∗ ) L_{reg}(t_i, t_i^*)=R(t_i - t_i^*) Lreg(ti,ti)=R(titi)是 smooth L1 loss。

所以有两个问题:

怎么定义anchor为postive 还是 negative呢?
positive label定义为两种:

  1. anchor/anchos 与 ground truth box有最高的 IoU overlap;
  2. anchor 与 任何一个 ground truth box 有高于0.7的 IoU overlap;
    negative label 定义:
  3. anchor 与所有 ground truth box 低于0.3 的IoU overlap;

不在这两个定义内的anchors,对训练没影响,忽略。
bounding box regression的参数
t x = ( x − x a ) / w a , t y = ( y − y a ) / h a , t w = l o g ( w / w a ) , t h = l o g ( h − h a ) , t x ∗ = ( x ∗ − x a ) / w a , t y ∗ = ( y ∗ − y a ) / h a , t w ∗ = l o g ( w ∗ − w a ) , t h ∗ = l o g ( h ∗ − h a ) , \begin{matrix} t_x=(x-x_a)/w_a, \quad t_y=(y-y_a)/h_a, \\ t_w=log(w/w_a), \quad t_h=log(h-h_a), \\ t_x^*=(x^*-x_a)/w_a, \quad t_y^*=(y^*-y_a)/h_a, \\ t_w^*=log(w^*-w_a), \quad t_h^*=log(h^*-h_a), \end{matrix} tx=(xxa)/wa,ty=(yya)/ha,tw=log(w/wa),th=log(hha),tx=(xxa)/wa,ty=(yya)/ha,tw=log(wwa),th=log(hha),

x , y , w , h x,y,w,h x,y,w,h 代表目标中心,宽度和高度。 x , x a , x ∗ x, x_a, x^* x,xa,x 分别代表 predicted box, anchor box, ground truth box。这就表明其实是回归anchor box接近 ground truth box。

四、Conclusion

经典 two-stage detector Faster R-CNN。 提出的anchors概念影响很大。结构比较清晰,但是对论文中训练的方法还是有点迷糊,等待以后再回顾吧。

References

  1. https://www.cnblogs.com/wangyong/p/8513563.html

你可能感兴趣的:(2D目标检测论文笔记,深度学习,神经网络)