Fast R-CNN

1 Fast R-CNN的改进

Fast R-CNN是在R-CNN的基础上融入了SPP Net网络优点之后的一个改进网络,相比于R-CNN和SPP Net具有以下优点:
1 训练/预测运行速度更快;
2 mAP效果评估指标更高;
3 实现端到端( end-to-end )的 单阶段 模型训练;(多任务损失函数(Multi-task loss))
4 所有层的参数都可以fine tune重训练;
5 不需要离线存储特征文件;
6 采用SVD简化FC全连接层的计算量;
7 使用Softmax替换SVM分类器;

2 Fast R-CNN引进的技术

Fast R-CNN引入三种新技术:
RoI Pooling Layer
Multi-task loss (多任务损失函数)
SVD (类似连续的FC层<没有激活>)

2.1  ROI Pooling Layer

空间金字塔结构SPP的单层特例;
将ROI区域卷积高阶特征转换为HxW的结构;
内部使用Max Pooling。
就是将SPP三层融合在一起,变成了只有一层,如下图
这个改动我的理解来看,变成单层,留池化最多的一层,是因为,另外两层的特征在池化最多的一层里面其实也有部分体现,留一层减少了计算量等费时操作,效果的话相比较而言 ROI Pooling可能效果差一些,不过也还行,算是在在费时方面做了优化

2.2 Multi-task loss(多任务损失函数)

Multi-task loss:包含分类分支和回归分支,其中分类返回输出的是K+1个概率分布p,回归分支输出的是预测位置(box offset偏移系数值)。
前面是分类器损失,后面是回归器损失
指示函数      
当u=0的时候(当前候选框为背景/负例),函数值为0;
当u>=1的时候(当前候选框为物体/正例),函数值为1;
在回归器用指示函数是因为在候选框为背景的时候,不需要用回归器,所以不计算回归损失
分类器损失就是计算每个类别的置信度的损失
回归器 Smooth L1 Loss损失函数
在RCNN中回归器使用的  L2Loss(平方误差损失
相比较于RCNN为什么采用Smooth L1 Loss损失函数呢?
        Smooth L1 Loss相比于L2 Loss,对于 离群点 不敏感 ,当预测值和实际值差值比较大的时候,使用L2 Loss容易出现梯度爆炸的问题,而使用Smooth L1Loss不容易出现梯度爆炸。
        Smooth L1 Loss相比于L1 Loss,在预测值接近实际值的位置(x=0位置),是连续可导的,收敛速度会更快。
        Smooth L1 Loss的功能类似Huber Loss。
函数如下图

2.3 SVD(类似连续的FC层<没有激活>)

在R-CNN和SPP Net中,SS提取的ROI区域比较多,所以后面的全连接操作比较多,差不多得进行2K次全连接操作,因此计算量有点大,故Fast R-CNN中采用SVD分解加速全连接计算。在实现上,相当于将一个全连接拆分为两个全连接。
使用SVD之后的效果如下图

3 Fast R-CNN fine tune训练操作

在pre train的基础模型(前面的Conv特征提取使用ImageNet数据集上训练好的AlexNet或者VGG网络)上进行fine tune训练操作(微调,为了适应新的数据)

3.1 Mini-Batch Sampling抽样

分级抽样法(Hierarchical Sampling)
        每个Batch抽取N个图像,然后从N个图像中抽取R个ROI区域组成训练数据
        论文建议:Batch尺寸(128) = 每个Batch的图像数目(2) * 每个图像的ROI区域数目(64)
        论文建议:每个Batch中,至少25%的正例样本。
        充分利用卷积层的共享计算。
就是说每个批次选择两个图像,从两个图象里抽出来64个区域提名,一共128个样本进行批次训练
RoI分类基于和Ground Truth的重叠
        物体/正例:IoU >= 0.5
        背景/负例:IoU < 0.5

3.2 使用Softmax替换SVM分类器

为什么使用Softmax替换SVM分类器?
        因为在R-CNN中,微调操作是一个独立的分类损失函数,模型的求解是一个 独立的过程,所以求解的模型容易过拟合,故需要单独训练一个SVM分类器来进行明确的分类操作。 而在Fast R-CNN中,由于损失函数是由两部分构成的:分类损失和回归损失; 这相当于在softmax中引入了类间竞争,效果会更好,另外论文中测试效果如下:

Fast R-CNN的改进和缺陷

1 改进

基本解决了R-CNN的绝大多数问题,但是还是有一些问题没有解决,具体如下:
        解决了SPP Net网络中的fine tune的问题(局部训练);
        解决了R-CNN网络中各阶段独立模型训练的问题(特征提取、SVM分类器、BBR回归器);
        使用Full Image的方式一次性提取图像的Feature Map,降低了提取RoI区域特征属性的运行时间;
        引入RoI Pooling Layer层,对于不同大小的RoI候选框产生相同维度大小的特征属性向量。

2 缺陷

Fast R-CNN中的主要问题就是使用SS产生候选区域块ROI区域在整个检测过程中耗 时太长(SS候选框获取2~3s,特征分类0.3s)。
  • 14
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值