Fast R-CNN——“two-stage“经典之作

0.背景

最早的目标检测算法R-CNN具有一下问题:

1.候选框的数量较多,计算量大,影响计算速度。

2.每个候选框都参与卷积运算,而候选框和候选框间重叠部分较大,造成较多的重复计算。

3.每个候选框送入卷积网络前都得进行剪裁变形,形成固定尺寸,在这个过程会损失原有特征。

1.SPP-Net

正是在上述背景下,诞生了SPP-Net。

SPP-Net做出的主要贡献:

1.1 提出特征的映射。

与原来的R-CNN不同,SPP-Net虽然也先利用搜索算法获得了候选框区域,但它仍然是把整个图像送入到卷积网络中提取特征,形成新的特征图。而利用原图和特征图的卷积操作运算法则,我们可以得到特征图中哪部分是由原图中的某个候选框区域得到的,也即存在映射关系。也即即使是对一整张图片进行卷积,我们也得到了每个候选框区域对应的特征图。

这里涉及一个知识:神经元的感受野。

通俗来说,就是由于卷积运算的性质,特征图中的某个值只和原图中的某几个元素有关,因此选定特征图中的一个区域,把每个点对应的原图中的区域拼起来,就得到了一个映射关系。也即特征图的这个区域的特征只由原图中某个区域得到,也即只和它有关。所以可以理解为特征图的这个区域A是原图中对应区域B的特征(这和只对该区域进行单独卷积得到的特征一样)。

这样子做,只使用了一次卷积,大大加快了计算速度。

1.2 提出SPP池化层

池化层的一大特征就是无论输入是什么尺寸的图像,只要选定池化分割的大小,输出的特征图大小是一定的。经过这个操作,尽管每个候选框的特征图大小不同,经过池化就可以转化为同样大小的特征图,展开就可以送入全连接层中进行后续任务。

这里的SPP层还有个特色是使用了多尺度的融合(金字塔结构),它采用4*4,2*2,1*1不同尺度的池化,再进行拼接形成每个候选框的特征向量。这样子更大可能保留了原有的特征。

1.3 总结

在上述处理下,首先解决了图像变形特征损失与多卷积计算冗余的问题,但计算速度仍然较慢。

2.Fast R-CNN

2.1 对候选区域进行初步的筛选

在Fast R-CNN中,首先使用选择性搜索或其他方法生成候选区域,然后通过非极大值抑制(NMS)过程去除重叠度较高的候选区域。(非极大抑制(NMS)一般就是用来去重的)

2.2 延续SPP-Net映射和池化操作

解决图片变形特征损失与卷积计算冗余问题。

2.3 真正实现“two-stage",优化R-CNN结构

Fast R-CNN做出的最大贡献在于把卷积网络,图像分类,边界框回归三个R-CNN独立的部分整合成了一个整体,可以整体进行训练,大大加快的计算速度。

过程概述:经过类似SPP-Net的特征提取操作,得到每个候选框区域对应的特征向量,同时送到softmax分类网络和边界框回归网络进行操作。

具体的训练过程标签设置在笔者Faster R-CNN的文章中有提到。

损失函数即两个回归分别对应的softmax和均方差损失函数加权和。

2.4 总结

相较于R-CNN,Fast R-CNN真正实现了”two-stage",即一阶段:选定候选框;二阶段:把候选框送入网络,得到其类别与修正后的边界框。(训练也只用训练后面整个网络)。

2.5 补充

对于测试过程,与训练过程不同,为了满足真正目标检测的需求,需要在最后网络输出的结果上增加NMS操作,即去除重叠度高的同类检测框。

非极大值抑制(NMS)具体过程:

对于同一类别的预测框(如分类都是猫)

先找出概率最大的,也即分类得分最高的,设置一个iou阈值,遍历同类别(即猫)所有预测框,删除与其iou大于该阈值的框。

接着在剩下的框中,同样选取得分最高的,重复上述操作,直到遍历完所有猫的预测框。

则得到了猫这个类别最终所有的预测框。

接着对于其他类,如狗,猴,按上述猫的方法重复进行即可。

最终得到精简版的预测结果。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值