【目标检测】对Fast-RCNN论文的一些理解

1.Fast-RCNN核心

RCNN的提出使得神经网络重新回归目标检测之中,作为神经网络用来目标检测的开山之作,RCNN也存在着许多缺点:

1.训练时速度慢,RCNN通过selective search方法产生2000+个候选框,对每一个候选框都要进行前向反向运算,存在着大量的重复计算,效率低下。

2.测试时速度慢,原因同上。

3.需要大量的存储空间,因为特征提取与分类和框回归独立,所以RCNN需要把神经网络的输出特征保存下来,占用大量的存储空间。

Fast-rcnn是既rcnn,sppNet之后提出的新的目标检测算法,相较于RCNN,其主要有两点改进:

1. 引入了ROI pooling层,相较RCNN将所有的region proposal都resize到相同大小进行CNN训练,Fast-RCNN只需一次对整个图片进行卷积,然后对于ss产生的region proposal,通过ROI pooling层到相同大小后进行特征提取,即共享卷积,这些候选区域的前几层特征不需要再重复计算。(一次卷积vs2000+卷积,大大提升训练测试速度)。

2.将最终的分类和bounding box regression放在了同一个网络中进行训练,而非独立进行,这样做无需存储特征,减少存储空间。

2.Fast-RCNN的网络结构

输入 一整张图片 与 ROI

输出 每个ROI对应的类别信息和bounding box回归。

图像归一化为224×224直接送入网络。前五阶段是基础的conv+relu+pooling形式,在第五阶段结尾,输入P个候选区域(图像序号×1+几何位置×4,序号用于训练)

这里写图片描述

ROI polling

ROI polling 将每个ROI均匀的分为M*N块,对每一块进行max pooling,将每一个ROI对应的特征图的区域转换为相同大小的特征,送入全连接层。

ROI polling层的训练过程:

首先考虑普通max pooling层。设xi为输入层的节点,yj为输出层的节点。

其中判决函数δ(i,j)表示i节点是否被j节点选为最大值输出。不被选中有两种可能:xi不在yj范围内,或者xi不是最大值。

对于roi max pooling,一个输入节点可能和多个输出节点相连。设xi为输入层的节点,yrj为第r个候选区域的第j
个输出节点。 
这里写图片描述

判决函数δ(i,r,j)表示i节点是否被候选区域r的第j个节点选为最大值输出。代价对于xi的梯度等于所有相关的后一层梯度之和。

网络训练过程

在调优训练中,每一个mini-batch中先加入N张图片,而后加入从N中图片中选取的R个ROI,放入网络进行训练,这R个候选框可以复用N张图片前5个阶段的网络特征。 
实际选择N=2, R=128。

训练数据正样本:负样本为1:3,其中对于ROI标记为正样本即ROI与gt的IOU>0.5,否则标为负样本

 

分类与位置调整

对于每个mini-batch中的R个ROI,在经过ROI池化层后,送入两个并列的全连接层中,称为multi-task。

这里写图片描述cls_score层用于分类,输出K+1维数组p,表示属于K类和背景的概率。 
bbox_prdict层用于调整候选区域位置,输出4*K维数组t,表示分别属于K类时,应该平移缩放的参数。

代价函数L:

全连接层提速

分类和位置调整都是通过全连接层(fc)实现的,设前一级数据为x后一级为y,全连接层参数为W,尺寸u×v。一次前向传播(forward)即为: 

将W进行SVD分解,并用前t个特征值近似: 

原来的前向传播分解为两步:

计算复杂度变为u×t+v×t。 
在实现时,相当于把一个全连接层拆分成两个,中间以一个低维数据相连。 

这里写图片描述

3.实验与结论

实验过程不再详述,只记录结论 
- 网络末端同步训练的分类和位置调整,提升准确度 
- 使用多尺度的图像金字塔,性能几乎没有提高 
- 倍增训练数据,能够有2%-3%的准确度提升 
- 网络直接输出各类概率(softmax),比SVM分类器性能略好 
- 更多候选窗不能提升性能

4.一个读论文过程中的问题

论文中提到SPPNet反向求导效率低,而ROI能够较好的完成反向传播,主要原因是SPPNet是将所有图片的region proposal保存起来,每次训练随机选择一些ROI,那么对于每个ROI最坏的情况来自不同的图片,这就导致每次需要将这所有的图片都进行一次前向运算(反向传播需要用),导致效率十分低下。而fast-RCNN在训练的时候,每个mini-batch输入2张图片产生的128个region proposal,这样的话一次只需将2张图片送入CNN中训练,反向传播效率比较高。
 

参考论文:https://blog.csdn.net/shenxiaolu1984?utm_source=feed

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值