R-CNN模型结构精讲

R-CNN

图1

图2

1. 模型结构

输入图片→提取候选框→缩放→提取特征→分类/回归

(1)输入图片(Input image)。

(2)通过selective search从图片中生成2000个候选框(Extract region proposals),候选框可能是最后的目标。

(3)通过Bounding box膨胀(对于每一个候选框往外扩若干像素,把扩出来的候选框进行缩放,扩的操作是为了捕捉周围的像素信息)扩大候选框。再通过CNN卷积把每一个候选框不管长宽比例统一强制缩放成227*227的正方形。

(4)把每一个正方形逐一喂到同一个卷积神经网络(例如Alexnet或VGG这种图像分类网络)进行前向计算,提取出特征图,传送到FC层,从最后一个全连接层(FC层)提取一个4096维的特征向量,既输出的特征。

(5)用线性支持向量机(SVM)对这些特征进行分类,每个分类一个SVM;同时进行边界框回归(Bounding-box regression)。

(6)最终得到每一个候选框的类别,以及每个候选框精修精调后的预测框。

(7)进行NMS(Non-Maximum Suppression,非极大值抑制)

2. Selective Search(候选框提取算法)

传统目标检测算法使用“穷举法”来获取候选区域,即暴力的使用滑动窗口从左到右、上到下扫描图片。缺点非常明显,候选区域过多,相邻窗口重复信息大,无效的区域也很多,导致计算量大,检测速度慢。

RCNN使用Selective Search(SS)来获取候选框,具体步骤如下:

(1)图片中的每一个像素作为一组,然后计算每个像素的纹理;

(2)将相近的组合起来形成更大的像素组,然后继续合并各个像素组;

(3)SS选取的检测框大小都不一样,最后,得到不同尺寸的BBox候选框(约2000个)。

图3

其原理是在图像中找到出事的分割区域,既颜色,纹理,大小相近的区域,对这些区域进行加权合并,可以产生不同层次的候选框。相比传统的穷举法,Bounding-box候选框明显的减少了,在后面步骤的物体分类上减少了很多计算资源。

其他候选框提取算法:Objectness,Category independent object proposals,CPMC

3. Bounding-box regression(边界框回归)

对SS提供的候选框的初始区域进行位置的精修或精调,得到一系列的偏移量,对候选框事假这些的偏移量,得到最终的预选框。解决了因定位造成的错误。

4. NMS(Non-Maximum Suppression,非极大值抑制)

所针对的问题:筛选掉2000个候选框中冗余的候选框,保留最优的候选框。

思路:选取那些邻域里分类数值最高,并且抑制那些分数低的窗口。

做法:设定阈值(阈值通常设定0.3~0.5 ),比较两两区域的IoU与阈值的关系。IoU是两个区域的交并比,那么可以如下两个思路来筛选候选框,假设阈值设定0.5:

(1)IoU>0.5,表示A框与B框重叠率高,可能是同一个物体,保留上一步计算的分类概率值高的候选框;

(2)IoU<0.5,表示A框与B框重叠率不高,可能是两个物体;

假设检测到如下出6个都是人脸的矩形框,目的要找到最好的一个。

(3)根据分类器的类别分类概率做排序从小到大的概率分别为A、B、C、D、E、F;

(4)从最大概率矩形框F开始,分别判断A~E与F的重叠度IoU是否大于设定的阈值;

(5)假设B、D与F的重叠度超过阈值,那么就去除矩形框B、D;并标记第一个矩形框F,是我们保留下来的一个人脸框;

(6)从剩下的矩形框A、C、E中,选择概率最大的E,然后判断E与A、C的重叠度,如果A、C的重叠度都大于设定的阈值,那么就去除;并标记E是我们保留下来的第二个矩形框;

(7)就这样一直重复,遍历所有,直到找到所有被保留下来的矩形框。

5. 各阶段耗时统计

由图2及表1可看出,类别增加后,只在SVM分类以及非极大值抑制(NMS)期间耗时些许增加,不会特别影响训练模型的检测时间,因此是非常可扩展的。

 图4

生成候选框

候选框缩放

CNN提取特征

SVM分类

NMS

20个类别

2.1s

2.6s

5.9s

0.005s

0.001s

200个类别

2.1s

2.6s

5.9s

0.026s

0.012s

表1

6. 改进的R-CNN

(1)提取候选框:EdgeBoxes,RPN网络(Faster R-CNN)。

(2)兼容任意尺寸图像:由于R-CNN中有一个全连接层,因此输入卷积神经网络图像的尺寸是固定的。而SPPNet中的空间金字塔池化和Faster R-CNN中的ROI Pooling都可以兼容任意尺寸图像的输入。

(3)预设长宽比:Anchor(Faster R-CNN)可以预设长宽比固定的框,在此基础上进行目标检测

(4)共享卷积运算:SPPNet,Fast R-CNN直接把原图用卷积神经网络一次处理,所有候选框共享这一次处理的特征图,大大提高了速度。

(5)融合各层特征:FPN  

7. 总结

(1)论文出处

    R-CNN原文《Rich feature hierarchies for accurate object detection and semantic segmentation》

(2)训练R-CNN的关键在于目标检测任务的数据比较少,解决他的关键在于先在数据量足够的辅助任务上预训练一个模型,再迁移到目标检测任务上进行微调

(3)优点

* R-CNN显著地提升了PASCAL VOC的目标检测性能

* 在ImageNet目标检测任务上超过了基于CNN的模型

* 检测时间是可控制的,可忍受的

* 类别增多不会特别影响检测时间,是非常可扩展的

* 模型简单并且开源

(4)缺点

* 在训练时分了多个阶段:依赖上下游多个工序协作的,不是一个端到端的系统

* 耗费大量空间储存特征:在训练SVM和BBox regressor时需要把每一张图片上的每一个候选框中的特征提取出来,提取出来的特征要放在磁盘里储存,供后续训练使用

* 耗费大量时间提取特征:对于一张测试图片R-CNN也需要先产生2000个候选区域每个候选区域都需要通过CNN的前向传播提取特征,因此测试一张图片也会很慢

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值