一种基于深度学习的目标检测与识别方法与流程

文档序号:11177727阅读:519来源:国知局
一种基于深度学习的目标检测与识别方法与流程

本发明属于计算机视觉识别技术领域,涉及一种基于深度学习的目标检测与识别方法。



背景技术:

最近五年,伴随新的智能计算方法—深度学习理论基础的突破,人工智能的各项技术,如语音识别技术、图像识别技术、数据挖掘技术等都有了实质性的发展并且成功地应用在多项产品中。计算机视觉作为人工智能领域里一项举足轻重的科学技术,得到了学术界、工业界的广泛关注。尤其卷积神经网络在图像目标检测及识别领域取得了非常不错的成果。

从最近的学术研究情况来分析,传统的目标检测算法不论是在检测准确度标准还是检测时间消耗来看,都已经到了瓶颈期。对深度学习的研究正在逐步改变这一现状。深度学习在视觉领域取得重大成功的实践是在物体识别任务上。但是如何使用深度学习完成目标检测任务还处在研究的初步阶段。本文研究使用深度学习的卷积神经网络同步完成目标检测与识别任务,提高算法的对光照变化、场景变换、天气等因素的鲁棒性,并在提高检测准确度,加快检测速度,具有积极的理论研究意义。



技术实现要素:

针对目标检测与识别技术,需要在提高检测准确率的同时加快检测速度,本发明提供一种基于深度学习的目标检测与识别方法。

在linux系统下,利用caffe平台搭建一个基于深度学习的目标检测与识别模型。该模型由卷积层、池化层、rpn层、rois层、roipooling层、全连接层、sparsepca层、预测窗口与预测类别输出层组成。本发明的方法提出了多rpn层融合策略,增强了对各尺度目标的检测能力;在两个全连接层之间添加了新的sparespca层,在降低了计算量的同时保证了准确率;最后针对目标位置预测,提出了对数抑制方法,改进了目标位置回归算法。最终达到了在保证检测精度的同时提高检测速度的目的。

一种基于深度学习的目标检测与识别方法,具体实现步骤如下:

步骤一:首先对输入图像进行卷积和下采样基本操作,该算法一共对输入图像进行5次卷积和5次下采样。卷积公式表述为:

o=∑i,j∈nwi,j*ii′,j′(1)

其中,wi,j是n*n大小的卷积核位置i,j处的参数;ii′,j′是与卷积核元素对应位置像素值。

下采样操作中,步长一般取2,该层也不需要学习参数。下采样的过程类似卷积操作,同样是用一个n*n的核在大的n*m的矩阵上滑动,但是滑动过程中并不是计算积的和,只是选出当前与核对应位置的最大值或均值。在卷积神经网络中常用的下采样方法有两种:最大值采样和均值采样,公式表述分别为:

o=maxii′,j′(2)

其中,ii′,j′表示图像中与核窗口对应的像素;n代表窗口核的尺寸。

步骤二:接下来,将步骤一的第5个池化层的输出输入到rpn层,rpn层的出发点是考虑在卷积神经网络中,与目标识别任务共用一组卷积操作以及卷积得到的特征。这样,网络卷积过程得到的中间特征图会有两个用途,一方面用来生成候选窗口,另一方面用来做特征分类识别。所以,rpn使用的目标函数也应该同时包含这两个部分,如式(4)。

其中,i是每个小窗口的索引;pi代表该窗口是物体的概率,取值为1或0,分半表示窗口是或不是目标物体;ti是一个四维的向量,表示该窗口的预测位置,是窗口的实际位置;ncls与nreg归一化系数,分别采用网络处理的图片数量(256)与小窗口数量(~2400)做归一化,λ用来平衡二者的权重,通常情况下,二者的权重设置为相同的,所以,本文设置λ=10;lcls(·)实际是二分类问题的目标函数,这里采用了逻辑回归的思想,使用的是对数损失函数,lreg(·)是位置回归函数。

rpn会生成一组候选窗口,可以根据各候选窗口对应的得分排序,筛选得分较高的作为最终的感兴趣窗口。往往使用rpn生成的300个窗口,与真正窗口的覆盖率就已经高于选择性搜索用2000个窗口的覆盖率,也正是如此,使用rpn生成的目标候选窗的准确率要远远高于选择性搜索。

步骤三:将rpn层得到的候选框经过筛选后输入到roipooling层,roipooling层主要是为了应对目标尺寸大小各异的情况提出的。这在只有识别分类的神经网络中是不存在的。roipooling层一般采用最大值池化算法来把任意有效的感兴趣区域变换成一个固定尺度的特征图。这是因为深度神经网络的全连接层以及分类层需要采用固定尺度维度的特征向量作为输入。感兴趣区域是来自卷积特征图中的一个矩形窗口,每一个感兴趣区域用一个四元组表示roi:(r,c,h,w)。其中,(r,c)指定窗口的左上角坐标,h,w分别代表窗口的高度与宽度。

假设roipooling层要得到的固定输出尺寸为h*w,采用的方法是把原h*w的窗口划分为多个子窗口,子窗口的大小近似为:

然后在各个子区域中再做标准的最大值采样即可。

步骤四:随后,将roipooling层的输出输入到全连接层中,通过全连接层的处理,使得输出从二维矩阵变成了一维向量。

步骤五:在全连接层之间加入一个sparsepca层,实现在网络的末端进行数据降维,减少参数量,简化模型。sparsepca层的前向传播公式简写为:

v=yx(6)

其中,y为(utu+λi)-1ut。x的每一行为一个样本,同样v的每一行为对应x的编码。再考虑每一条输入的情况,v中各元素可以表示为和的形式:

步骤六:最后再通过一个全连接层连接网络的位置预测输出和类别预测输出。

步骤七:在测试阶段,到步骤六就结束了,在训练阶段,通过得到的位置预测输出和类别预测输出再返回输入处对比真实值,通过对比与真实值的差值,重新再在下一次的训练中修改权重参数,达到让模型具有学习的功能作用。

本发明为了解决待检测目标尺度变化较大的问题,降低漏检率,在分析网络中间卷积特征图的特点基础之上,提出了多rpn层融合策略,在不同卷积特征图上生成候选目标窗口,增强了对各尺度目标的检测能力。针对目标位置预测问题,提出对数抑制方法,改进了目标位置回归算法,既避免了误差过大产生的震荡问题,又加快了目标函数在最优解附近的收敛速度。该方法针对卷积神经网络容易出现的过拟合问题,文章介绍和分析了深度神经网络避免过拟合的方法,包括dropout层的引入,以及目标函数中正则化项的作用。通过针对卷积神经网络中的参数分布情况,提出了对全连接层进行降维处理的方法。分析了全连接层的数据特点,给出使用稀疏主成分分析算法合理性,并通过实验对比数据,证明其有效性。

附图说明

图1为本专利的技术实现流程图

图2为基于深度学习的目标检测与识别网络结构图。

具体实施方式

下面结合附图和具体实现方案例对本发明作进一步说明。

参见图2,(1)模型的开始由5个卷积层和池化层交替连接,主要目的是通过卷积层提出图像的特征,通过池化层降低图像的维度从而相应地降低计算维度。

(2)接下来是rpn层,本方法使用了两个rpn层生成候选窗口。一个rpn层的输入来自conv-5另一个卷积层的输入来自conv-3。根据在这两个层上生成的窗口做了筛选,根据两个卷积层中特征图大小的比例关系,将特征窗口坐标位置映射到同一比例,如果该位置被重复检测,则保留包含目标置信度较高的窗口,舍弃置信度较低的窗口。

(3)通过筛选过的rpn层的输出再输入到roipooling层中。该层主要为了应对目标尺寸大小各异的情况提出的。roipooling层采用最大值池化算法来把任意有效的感兴趣区域变换成一个固定尺度的特征图。

(4)接下来将roipooling层池化过的二维图像矩阵输入到全连接层,通过全连接层的计算,输出一个一维向量便于以后的计算和分类。

(5)在两个全连接层之间添加一个sparsepca层,由于在训练过程中,很大一部分的时间消耗跟全连接层的参数个数有关系,所以该层主要目的就是减少输出向量的维度,减少计算量,提高检测速度。

(6)通过pca降维后的全连接层,输出检测的分类信息和位置信息。

(7)通过输出的分类信息和位置信息,再通过反向传播对比实际的标签,进行参数调整。其中在目标位置回归时采用对数抑制算法。

具体运用上:

步骤1:将想要检测的图片输入到模型中。

步骤2:模型通过卷积池化操作,对原始图像的特征进行了有效的提取,并且降低了原始图像的维度。

步骤3:将卷积conv-3和conv-5层的输出输入到rpn层中,通过rpn层对对这两个层产生可能的目标存在的候选窗口,随即通过置信值选取有效的窗口作为输出。

步骤4:将rpn层的输出输入到roipooling层中,将感兴趣区域变换成一个固定尺寸的特征图。

步骤五:随后将roipooling层中的输出输入到全连接层中,二维矩阵变换成一维向量,以便随后的输出分类。

步骤六:随后将全连接层计算完的一维向量输入到sparsepca层中,实施数据降维,减少随后全连接层的计算量。

步骤七:最后通过一个全连接层得到网络的预测位置输出和预测类别输出。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1