深度学习目标检测--选择性搜索与R-CNN模型与算法步骤

本文详细介绍了R-CNN模型在深度学习目标检测中的应用,阐述了选择性搜索算法在候选区域提取中的作用,以及R-CNN模型的结构和工作流程。通过AlexNet提取特征,结合多分类SVM进行目标分类,R-CNN显著提升了目标检测的精度。文章还探讨了目标检测中的关键概念,如BoundingBox、IoU和非极大值抑制,为理解深度学习目标检测提供了基础。
摘要由CSDN通过智能技术生成

(本来做深度学习目标检测的相关图书,但由于时间原因搁置了,所以本文作为样章,重复率很低)

AlexNet模型在2012年的ILSVRC比赛中大放异彩,引起了神经网络的应用热潮。Ross深受启发,将AlexNet模型的图像分类功能应用到目标检测方向上,成功开启了利用深度学习实现目标检测的时代。R-CNN作为最初的基于深度学习的目标检测网络模型,很好地解决了如何利用卷积网络去目标定位和如何在小规模的数据集上训练出较好的网络模型,为之后基于深度学习的目标检测方法奠定了良好的基础。本章我们将深入讨论基于R-CNN的目标检测是如何实现的,以及总结分析R-CNN方法的优缺点。

本章主要涉及到的知识点有:

  1. 选择性搜索与R-CNN:R-CNN的关键技术选择性搜索及其先验知识。
  2. R-CNN模型:详细描述R-CNN模型的具体结构及其作用。
  3. R-CNN的训练与测试:基于R-CNN实现目标检测,并描述实验细节。

1  选择性搜索与R-CNN 

目前,传统的目标检测方法一般首先在图像上利用穷举法或者滑动窗口方法选出所有目标可能出现的边框,其次对这些边框进行提取特征并识别分类,在得到所有分类成功的边框后,通过非极大值抑制输出检测结果及边框。对图像使用穷举法或者滑动窗口方法选出所有目标可能出现的边框,就是在原始图像上进行不同尺度或大小的滑动窗口,获取每个目标可能的位置,以便后续的识别和分类。但是穷举法或者滑动窗口方法的时间复杂度太高,且产生了冗余的候选区域。而且由于不可能每个尺度都能兼顾到,因此得到目标位置的准确度也不高,实际应用很不理想。而选择性搜索算法主要用于为目标检测方法提供候选区域(Region Proposal,RP),能够有效地去除冗余候选区域,使得计算量大大的减小,提高计算速度。

 

图1  原图和原始分割图

选择性搜索作为基于区域提取的目标检测中广泛使用的算法,被先后应用于R-CNN、SPP-Net、Fast R-CNN等网络模型中。选择性搜索算法首先需要利用切分方法产生初始的分割区域,再使用多种相似度指标计算合并一些小的区域。如上图所示分别是原图及其分割图,目标检测时不能使用原始分割图的区域作为候选区域,原因在于大部分目标在原始分割图里都被分为多个区域,原始分割图无法体现目标之间的遮挡和包含,例如杯子之间的遮挡、咖啡杯与碟子的包含等。如果试图通过合并相邻的区域来解决这种问题,我们最终会得到一个包含两个对象的分段区域,这样对于目标检测是毫无意义的。实际生活中,我们并不需要完美的分割区域,只要能够获取实际目标高度重合的区域就可以。因此我们只需要考虑以下问题:

(1)适应不同尺度:不同尺度或大小的边框对于目标检测起着至关重要的结果,穷举法在于通过改变窗口大小来适应目标的不同尺度,选择性搜索算法采用了图像分割以及使用一种层次算法来适应不同尺度,有效地解决了这个问题。

(2)多样化:面对复杂的应用场景,我们需要通过不同的特征来区分目标,单一的策略无法应对多种类别的图像,因此该算法使用颜色、纹理、大小等多种特征对分割好的区域进行合并。

(3)速度快:一个算法的时间复杂度对于实际应用起着至关重要的作用。

选择性搜索的具体算法如下:

输入: 一张图像
输出:候选的目标位置集合L
1.	利用切分方法得到候选区域集合R = {r1,r2,…,rn}
2.	初始化相似集合S = ϕ 
3.	遍历相邻区域对(ri,rj) :
		计算相似度s(ri,rj)
		S = S∪s(ri,rj)
4.	当s≠ϕ 时:
		从S中获得最大相似度s(ri,rj)=max(S)
		合并对应的区域rt = ri∪rj
		移除ri对应的相似度:S = S\s(ri,r*)
		移除ri对应的相似度:S = S\s(r*,rj)
		计算rt对应的相似度集合St
		S = S∪St
		R = R∪rt
5.	从 R中所有区域提取边框L

在算法流程中,我们主要考虑颜色相似度、纹理相似度、尺寸相似度和空间交叠相似度这4个参数。

(1)颜色相似度

在计算多种相似度的时,一般把单一相似度的值归一化到[0,1]之间,越靠近1表示两个区域之间的相似度越大。计算颜色相似度时,首先将RGB颜色空间转为HSV颜色空间,其次在每个颜色通道下以bins=25计算直方图,因此每个区域的颜色直方图有25*3=75个区间。最后对直方图做归一化后,便可以使用以下公式计算颜色相似度:

 

(2)纹理相似度

计算纹理相似度时采用SIFT-Like特征,即对每个颜色通道的8个不同方向计算方差σ=1的高斯微分,再使用L1归一化获取图像三个颜色通道的8个方向的10 bins的直方图,获取到一个240维的向量。如下所示为纹理相似度的计算公式,与颜色相似度计算方式类似,合并之后新区域的纹理特征计算方式也和颜色特征计算相同,其中是直方图中第k个bin的值。

 

(3)尺寸相似度

优先合并小的区域时,如果仅仅是通过颜色和纹理特征合并的话,很容易使得合并后的区域不断吞并周围的区域,导致多尺度只应用在了局部,而不是全局的多尺度。因此需要给小的区域更多的权重,这样以保证在图像每个位置都是多尺度的合并。如公式所示,两个区域越小,其相似度越大,越接近1。

 

(4)交叠相似度

如果区域ri包含在rj内,我们首先应该合并。如果ri很难与rj相接,那它们则不应该合并在一块。这里定义区域的合适度距离主要是为了衡量两个区域是否更加“吻合”,其指标是合并后的区域的边框越小,其吻合度越高,即相似度越接近1。其公式如下:

 

(5)最后合并以上相似度则为最终的相似度s(ri,rj)

 

在目标检测中,我们还会经常用到以下几个概念,这里作为先验知识作详细讲解。

(1)Bounding Box(bbox)

bbox是包含目标的最小矩形,通常称为边框、标定框、定位框等。bbox指的是目标应在的最小矩形内部,如下图中的红色框和蓝色框。目标检测中关于目标位置的信息输出是一组(x,y,w,h)数据,其中x,y代表着bbox的左上角或者其他固定点,对应的w,h表示bbox的宽和高,因此一组(x,y,w,h)可以唯一确定一个边框。

图2  Bounding Box示意图

(2)Intersection Over Union(IoU)

在训练网络的时候,我们常依据候选区域和标定区域的IoU值来确定正负样本。对于两个区域R和R′,则两个区域的重叠程度(overlap)计算如下:

 

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

非极大值抑制是局部最大值的搜索问题,也存在于很多计算机视觉算法部分。如何设计高效的非极大值抑制算法对实际应用是十分关键的,例如数据挖掘、目标识别以及纹理分析等。非极大值抑制在目标检测上的应用就是把非极大值去掉,因此在目标检测上,就是对一个目标有多个标定框,使用极大值抑制算法滤掉多余的标定框,这样便可以去掉冗余的标定框。

2  R-CNN模型与算法步骤

相比于分类,目标检测不仅仅要确定目标是什么,还要确定其在哪里;分类通常是一张图像获得一个类别,而检测则要找出图像中存在的多个目标,并确定其类别。因此,目标检测主要有两大任务:目标定位和目标分类。基于深度学习的方法在最近5年来取得了显著的效果,R-CNN(Region-based Convolutional Neural Network)作为深度学习在目标检测领域的开篇之作,有着不可小觑的影响力。R-CNN模型出自论文《Rich feature hierarchies for accurate oject detection and semantic segmentation》,其网络模型如下图3.3所示,是一个针对高准确度的目标检测与语义分割的多特征层级的神经网络,普遍来讲就是一个用来做目标检测和语义分割的神经网络。

R-CNN中的卷积神经网络(Convolutional Neural Network,CNN)为AlexNet模型,它有5 层卷积层和3 层全连接层。如上图3.4所示,可以将AlexNet模型分为上下两个部分,分别对应两个GPU,只有到了特定的网络层后才需要两块GPU进行交互,这种设置是为了利用两块GPU来提高运算的效率,其实在上下两部分的网络结构差异无几。除此之外,AlexNet模型的优点在于使用ReLU激活函数以提高网络的收敛速度;使用局部响应归一化(Local Response Normalization,LPN)以提高模型的泛化能力,降低错误率;使用Dropout层以防止过拟合现象。

R-CNN的成功证明了神经网络应用在自底向上的候选区域的可行性,用来目标分类和目标定位成为可能性。而且如果缺乏大量的标注数据,可以使用神经网络的迁移学习,采用在其他大型数据集训练好的神经网络模型,然后在小规模的特定的数据集中进行微调。R-CNN通过AlexNet网络模型提取丰富的、层次化的图像特征,相比于传统方法,在 Pascal VOC 2012 的数据集上其精度提高了将近30%,达到了53.3%。其算法的基本流程为:

(1)对于每幅输入图像,使用选择性搜索方法提取将近2000个候选区域。

(2)对候选区域外包围一个固定大小的边框,使其具有固定的尺寸。

(3)将变换后的区域图像块输入到预训练的AlexNet模型当中,提取图像特征。

(4)将特征展开后,输入到多分类支持向量机(Support Vector Machine, SVM))中进行类别的判定。

在步骤(3)中需要将候选图像进行缩放,因为CNN对输入图像的大小有限制,所以在将候选区域输入CNN网络之前,要将候选区域进行固定尺寸的缩放。这里的缩放主要分为两大类:

(1)各方向同性缩放,长宽放缩相同的倍数

这种方法就是把候选区域的边界扩展延伸成正方形,延伸部分的灰色区域使用原图中的像素填补或者灰色部分不填补。灰色部分用原始图像中的相应像素填补,如上图(B)所示;或者灰色部分不填补,如上图(C)所示。

(2)各方向异性缩放, 长宽放缩的倍数不同

异性缩放时,长宽缩放的比例不同,因此导致图像产生扭曲现象。一般将将图像的长宽直接缩放到227*227或其他大小,如上图(D)所示。而且在放缩前应考虑候选区域周围的补充像素p,如上图所示,第一层p=0,第二层p=16。论文实验表明,采用各方向异性缩放并且p=16的时候效果最好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值