两阶段目标检测详解--FastRCNN

目录

一、RCNN存在缺点

二、FeastRCNN改进

(一)模型结构

(二)ROI池化层

(三)SVD全连接层加速网络

三、总结 


FastRCNN是2015年有名的两阶段目标检测算法。

基于SPP-Net之后的两阶段目标检测算法优化改进。

一、RCNN存在缺点

  1. 预测速度慢;
  2. 训练速度慢;
  3. 训练所需空间大。

FastRCNN是RCNN后续之作,在以上缺点当面进行了优化;网络结构参考了SPPNet。

二、FeastRCNN改进

(一)模型结构

它的结构是在RCNN、SPPNet基础上改进的,大致改进3个方面:

  1. 引入感兴趣区域池化层ROI;ROI是SPP的一个特例,SPP有多个金字塔,ROI只有一个金字塔。
  2. 多任务损失函数(Multi-task loss);即分类和边框回归任务能一起完成,去除了SVM分类器;
  3. 利用了截断的奇异值分解(Truncated SVD for faster detection)加速了全连接网络。

网络结构如下图:

 网上参考了如下流程图,细节更明了:

  1. 输入图像经过卷积网络提取特征feature maps;
  2. 图像经过SS提取候选框,筛选出约2000个候选区域;
  3. 把建议窗口映射到CNN的最后一层卷积feature map上;
  4. 对各个候选框采用RoI,提取固定长度的特征向量;
  5. 在全连接层上进行fine-tune,所有层都能够fine-tune。(Fast的采样方式与SPP不一样,Fast先采样N个图片,对N个图片进行ROI采样,再训练;SPP训练样本是来自所有图像打散后均匀采样,每个训练样本来自不同的图片,内存耗费大)。
  6. 通过全连接层分别生成softmax分类和边框回归模型。

(二)ROI池化层

它是空间金字塔池化的单层特例,将RoI区域的卷积特征拆分成H×W网格;

下图是SPP和ROI的比较:

SPP有3个金字塔,Roi只有1个金字塔;金字塔数量减少了,那么计算量也相对减少了。

(三)SVD全连接层加速网络

         RoI池化层后的全连接层需要进行约2k次(每个建议框都要计算),因此在Fast R-CNN中可以采用SVD分解加速全连接层计算,具体实现如下:

  •         1. 物体分类和窗口回归都是通过全连接层实现的,假设全连接层输入数据为x,输出数据为y,全连接层参数为W,尺寸为u×v,那么该层全连接计算为:

y=Wx(计算复杂度为u×v)

  •         2. 若将W进行SVD分解,并用前t个特征值近似代替,即:

W=U*∑VT≈U(u,1:t)*∑(1:t,1:t)*V(v,1:t)*T

  •         3. 那么原来的前向传播分解成两步:

y=Wx=U*(∑VT)*x=U*z

  •         4. 计算复杂度为u×t+v×t,若t<min(u,v),则这种分解会大大减少计算量;

        在实现时,相当于把一个全连接层拆分为两个全连接层,第一个全连接层不含偏置,第二个全连接层含偏置;实验表明,SVD分解全连接层能使mAP只下降0.3%的情况下提升30%的速度,同时该方法也不必再执行额外的微调操作。

三、总结 

比R-CNN、SPP-Net更快的trainning/test,更高的mAP。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值