我读Faster R-CNN

论文地址:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
代码地址:GitHub

背景

R-CNN 三部曲之完结篇,在上一篇物体检测需要 Selective Search 获取 proposal,然后神经网络分类基础上,将获取 proposal 和 detection 合并为同一个神经网络,算法更加 graceful 并且速度和准确度都有提升。
这里写图片描述

方法

可以理解为将提取 proposal 的步骤也抽象为了一种 R-CNN。conv 层最后一层每个像素为中心,提取不同尺寸,不同比例的 proposal(RPN),之后计算是否属于前景,并且求得 bounding box regression(是不是很像 Fast R-CNN 干的事情?)。在这之后再使用 Fast R-CNN 中的 RoI Layer,进而对 proposal 分类。过程图:
all
图片来源1

RPN

对于最后一层卷积层产生的 feature map,使用 3x3 的全连接层(类似卷积),每个点就会产生与 conv 层相同 feature 维度的一个向量。后面又接了 ReLU,这样每个点的 feature 就有了。
下面再说说对每个点提取 proposal,作者提出 anchor 的概念,咱就暂且叫他“茴”吧2,每个点不同尺寸,不同比例提取 k 个 proposal 。此处不明白,k 个 proposal 的 feature 有什么不同,每个 proposal 会对应产生是否是前景/背景值,以及位置回归值。很奇怪作者未做任何提及,难道是在每个 anchor box 里面 pooling 了一把?
RPN
图片来源3

Loss Function

与 Fast R-CNN 非常相似,

L({pi},{ti})=1NclsiLcls(pi,pi)+λ1NregipiLreg(ti,ti)

等号右面第一项是前背景分类的目标函数,第二项是 bounding box regression 的目标函数。最小化两者之和,关于等式定义,首先说系数。作者想要前后两项的比重基本上是1:1,所以不管系数有何意义,咱都可以认为系数为 1 即可。
第一项 pi 表示每个茴的 四种写法前背景的预测值, pi=1{i} Lcls 是 ln 函数。
第二项可以参考前一篇 Fast R-CNN,具体值如下:
第二项
图片来源 4

训练方法

使用 batch 进行训练,每个 batch 大小约为 256 个茴,正负样本 1:1。
如何确定正负样本?正样本标定规则:

  1. 如果茴与 ground truth 有最大 IoU,标记为正样本;
  2. 如果茴与 ground truth 的 IoU > 0.7,标记为正样本。

事实上,采用第 2 个规则基本上可以找到足够的正样本,但是对于一些极端情况,例如所有的茴与 groud truth 的 IoU 不大于 0.7,可以采用第一种规则生成。
负样本标定规则:如果茴与 ground truth 的 IoU < 0.3,标记为负样本。剩下的既不是正样本也不是负样本,不用于最终训练。
训练网络时,卷积层使用前面模型 (ZF/VGG net) 初始化参数,后面随机初始化。使用 VOC 数据集训练。

整个网络训练方式

由于获取 proposal 和 detection 两个网络共用卷积层,采用交替训练方式。具体方式:

  1. 先训练 RPN 网络,conv 层使用 Imagenet 数据集 pre-trained 参数初始化,训练全部网络层;
  2. 再训练 R-CNN 网络,conv 层使用 Imagenet 数据集 pre-trained 参数初始化,训练全部网络层。每幅图片的 proposal 从上步得到,此时这两个网络是全部分离的;
  3. 使用上步中的参数初始化网络,只 fine-tune 特有层,不修改 conv 层;
  4. 保持 conv 层不变,fine-tune 特有层,不修改 conv 层。

测试图片时,最后还需要加入非最大值抑制,减少不必要的重叠 proposal。

实验部分

准确度提升:
准确度
时间缩短:
时间

后记

感觉有点怪怪的,行文方法和前两篇有些差异,没有达到我预想到的高度。下篇 YOLO。


  1. 使用Faster-Rcnn进行目标检测
  2. 鲁迅,《孔乙己》,《呐喊》,1919年4月《新青年》第六卷第四号
  3. Faster R-CNN学习笔记
  4. 深度学习检测方法梳理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值