R-CNN(Region with CNN feature)

目录

1. 介绍

2. R-CNN

2.1 SS(Selective Search) 算法 生成候选框

2.2 CNN 提取特征

2.3 SVM 分类

非极大值抑制

2.4 回归器微调候选框

3. R-CNN 的缺点


1. 介绍

目标识别的发展历史如图

R-CNN(Region with CNN feature)_第1张图片

 

2. R-CNN

RCNN 是两阶段目标检测的鼻祖,类似于深度学习开山之作AlexNet那种地位

目标检测的可以分为两种:one-stage和two-stage

R-CNN(Region with CNN feature)_第2张图片

 

RCNN的算法流程为:

R-CNN(Region with CNN feature)_第3张图片

 

2.1 SS(Selective Search) 算法 生成候选框

因为RCNN是two-stage的算法,这种算法的特点是先生成候选框,然后根据生成的候选框去进一步的分类或者调整

R-CNN(Region with CNN feature)_第4张图片

 

这些候选框生成有很多的方法,比如根据聚类算法将类似灰度值的作为同一个区域,这样就可以产生一个阈值的效果。根据不同的区域,生成不同的候选框,RCNN总共生成2000个矩形候选框

R-CNN(Region with CNN feature)_第5张图片

 

2.2 CNN 提取特征

RCNN成功因素之一就是使用了深度网络进行特征提取,而不是传统的手工涉及特征的方法

当时深度学习的开山之作为AlexNet,因为当时的局限性,特征提取后的size是固定的,为了和全连接层保持一致,所以这里需要固定的输入大小。

这里用的是AlexNet 网络,所以输入图像的大小为227*227。而AlexNet特征提取层的输出为4096的向量,所以这里的输出为2000*4096

R-CNN(Region with CNN feature)_第6张图片

 

2.3 SVM 分类

CNN 提取的特征送入SVM进行类别的分类,SVM是一个二分类的分类器

这里的分类类别是20,所以最后会产生一个2000*20的输出。2000类似于batch,20为分类个数

R-CNN(Region with CNN feature)_第7张图片

 

矩阵的运算过程为:

R-CNN(Region with CNN feature)_第8张图片

 

非极大值抑制

经过SVM分类器后的输出维度是2000*20,意思是每个不同的类别都有2000个候选框,接下来进行非极大值抑制将无用的候选框去除

例如,假设第一列是cat这个类别,那么在2000个中寻找预测最准的那个框。然后将这个预测准的候选框与周围的候选框求iou,去除iou > 给定阈值的候选框

目标检测首先要检测的准,也就是分类的问题,所以在2000*20的每一列里面找到预测最准的候选框。既然这个候选框识别这么准了,就将周围的候选框框的较准的也去掉,因为周围候选框的识别准确率不够高,可以去除重叠的候选框。

R-CNN(Region with CNN feature)_第9张图片

 

2.4 回归器微调候选框

因为SS算法生成的候选框虽然可以根据类似聚类的算法产生,但还是具有一定的随机性

这里使用一个回归器对候选框进行微调

回归器可以理解为一个回归模型,会产生连续的预测值。

将生成的候选框和真实的标签框通过最小二乘算法,然后一直训练,回归器就可以尽可能的将产生好的候选框去拟合真实的标签框

R-CNN(Region with CNN feature)_第10张图片

 

3. R-CNN 的缺点

RCNN算法的流程如下

R-CNN(Region with CNN feature)_第11张图片

 

可以发现,RCNN的实现步骤很繁琐,而且相互之间的依赖程度很高,导致运行速度很慢。

R-CNN(Region with CNN feature)_第12张图片

 

你可能感兴趣的:(#,关于,object,detection,cnn,深度学习,计算机视觉)