经典网络解读系列(二):fast rcnn

部分博客内容引用:

https://alvinzhu.xyz/2017/10/10/fast-r-cnn/

https://blog.csdn.net/shenxiaolu1984/article/details/51036677

 

 

首先讲一下前作rcnn的缺点,有关rcnn,可以参考博客https://blog.csdn.net/zlrai5895/article/details/80724284。

rcnn缺点有三个:

 

  1. 训练过程是多级流水线。分为三个阶段训练:CNN的训练、SVM的训练、检测框回归线性模型的训练。
  2. 训练在时间和空间上是的开销很大。对于一张图像,图像和上面大量重叠的候选框都要经过CNN提取特征,并写入磁盘。时间和存储空间成本都很高。
  3. 目标检测速度很慢。原因同上。

fast rcnn的改善:

 

  1. 比R-CNN具有更高的目标检测精度(mAP)。rcnn在voc2012 map 62%,fast rcnn 在voc2012 map 66%
  2. 训练是使用多任务损失的单阶段训练。
  3. 训练可以更新所有网络层参数。
  4. 不需要磁盘空间缓存特征。

网络结构:

                                                                                                              输入完整图像

                                                                                                                        |

                                                                                                            CNN(VGG等)

                                                                                                                        |

最后一个最大池化层替换为ROI池化层(在特征图上提取候选区域,每个候选区域均匀分成M×N块,对每块进行max pooling。将特征图上大小不一的候选区域转变为大小统一的数据,送入下一层。 )

                                                                                                                        |

                                                                                                    -------------------------------

                                                                                                    |                                             |

                                                       全连接层 输出k个类别加上1个       全连接层输出
K个类别的每一                                                                                                 背景类别的Softmax概率估计         每组4个值,表示检测框位置的修正检测框位置的修正。

 

 

训练:

首先是预训练

网络除去末尾部分如下图,在ImageNet上训练1000类分类器。结果参数作为相应层的初始化参数。 
这里写图片描述 

然后是微调

如上面所说,用ROI替换最后的pool,然后,网络的最后一格全连接层和Softmax(其被训练用于1000类ImageNet分类)被替换为前面描述的两个同级层(全连接层和K+1个类别的Softmax以及类别特定的检测框回归)。

 

微调策略

 

每一个mini-batch中首先加入N张完整图片,而后加入从N张图片中选取的R个候选框。这R个候选框可以复用N张图片前5个阶段的网络特征。 

实际选择N=2, R=128。

训练数据构成

N张完整图片以50%概率水平翻转。 
R个候选框的构成方式如下:

类别比例方式
前景25%与某个真值重叠在[0.5,1]的候选框
背景75%与真值重叠的最大值在[0.1,0.5)的候选框

训练时候的损失函数

 

loss_cls层评估分类代价。由真实分类uu对应的概率决定: 

Lcls=−logpu

 

loss_bbox评估检测框定位代价。比较真实分类对应的预测参数tutu和真实平移缩放参数为vv的差别: 

Lloc=Σ4i=1g(tuivi)

g为Smooth L1误差,对outlier不敏感: 

 

g(x)={0.5x2|x|−0.5|x|<1otherwise

总代价为两者加权和,如果分类为背景则不考虑定位代价: 

L={Lcls+λLlocLclsu为前景u为背景

计算全连接层的加速策略:

 

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

y=Wx


计算复杂度为u×v

 

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

W=UΣVTU(:,1:t)⋅Σ(1:t,1:t)⋅V(:,1:t)T

 

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

y=Wx=U⋅(Σ⋅VT)⋅x=Uz


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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值