首页 百问百答 帖子详情
rcnn是什么神经网络
收藏
快速回复
百问百答 问答学习资料 400 0
rcnn是什么神经网络
收藏
快速回复
百问百答 问答学习资料 400 0

R-CNN是一种目标检测网络
R-CNN(Region with CNN Feature)2014年提出,在此之前都是传统的目标检测算法,人为定义特征进行检测,进入了瓶颈期,进步缓慢,但是R-CNN出来之后将目标检测领域的准确率至少提高了30%,是第一个成功将深度学习应用到目标检测上的算法。R-CNN基于卷积神经网络(CNN),线性回归,和支持向量机(SVM)等算法,实现目标检测技术。 R-CNN算法流程可分为三个步骤

一张图像生成1k~2k个候选区域(使用Selective Search方法)。找出所有潜在可能包含目标的区域;运行速度需要相对较快;比如, Selective Search在CPU上仅需要运行几秒钟就可以产生2000个候选区域。


对每个候选区域,使用神经网络抽取特征,特征送入每一类的SVM分类器,判别是否属于该类。
使用回归器精细修正预测框的位置,例如对于每个框,回归器预测其与真实框的距离差距(左上角与右下角点坐标)。 
从它的算法流程可以看出R-CNN具有以下缺点

测试速度慢;
训练速度慢,过程极其繁琐;
训练所需空间大。
具体步骤如下:

1、生成一系列感兴趣区域,即锚框
让我们从基础的图像分类出发,在图像分类中,我们输入一张图像,然后由模型输出属于的类别。对于目标检测,我们的算法也要实现分类的功能,与图像分类的区别是,一张图像上可能有多个类别目标,每个类别的数量也不尽相同,分布在整张图像上。一个很自然的想法是,我们每次提取图像中的一小块矩形区域,然后预测该矩形区域内图像的类别,这样我们就能得到目标的类别和位置。这就是生成感兴趣区域(Region of Interest即ROI)过程(如下图绿框就是我们的感兴趣区域),如何高效的生成感兴趣区域将不在本文进行探讨。 

2、对这些区域进行分类判断并输出置信度得分
如下图,我们对每个框内图像都进行一次分类与置信度打分,然后对于一个阈值0.9分(超参可调)之上的框进行保留,那么这些框就是我们检测到的目标位置。由于每个我们的锚框都进行了预测,所以结果很可能出现多个框预测的都是同一个目标。于是我们还需要进行最后一步,去重! 

3、非极大值抑制(Non Maximum Suppression,即NMS)
非极大值抑制在目标检测中是指,对于两个预测框如果重叠程度超过0.5(超参可调),那么我们只保留其中置信度最高的框。多重复这样的过程,直到框的数量不在发生改变,那么我们就可以得到最终去重后的结果,如下图,检测到一个电线干和两个人。 

0
收藏
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户