一种行人检测方法与流程

文档序号:18031931发布日期:2019-06-28 22:45阅读:268来源:国知局
一种行人检测方法与流程

本发明涉及智能识别技术领域,具体地说,是一种基于svm和hog的行人检测识别方法,适用于智能辅助驾驶,智能监控,行人分析以及智能机器人等领域。



背景技术:

近年来,随着智能检测的快速发展,行人检测也进入了一个较快的发展阶段,但是还存在很多问题有待解决,尤其是在性能和速度方面难以达到平衡。

目前行人检测技术大概可以分为两类:1、基于背景建模,利用背景建模方法,提取出前景运动的目标,在目标区域内进行特征提取,然后利用分类器进行分类,判断是否包含行人,背景建模目前主要存在的问题:(1)必须适应环境的变化(比如光照的变化造成图像色度的变化);(2)相机抖动引起画面的抖动(比如手持相机拍照时候的移动);

(3)图像中密集出现的物体(比如树叶或树干等密集出现的物体,要正确的检测出来);(4)必须能够正确的检测出背景物体的改变(比如新停下的车必须及时的归为背景物体,而有静止开始移动的物体也需要及时的检测出来);(5)物体检测中往往会出现ghost区域,ghost区域也就是指当一个原本静止的物体开始运动,背景差检测算法可能会将原来该物体所覆盖的区域错误的检测为运动的,这块区域就成为ghost,当然原来运动的物体变为静止的也会引入ghost区域,ghost区域在检测中必须被尽快的消除。

2、基于统计学习的方法,这也是目前行人检测最常用的方法,根据大量的样本构建行人检测分类器。提取的特征主要有目标的灰度、边缘、纹理、颜色、梯度直方图等信息。分类器主要包括神经网络、svm、adaboost以及现在被应用于计算机视觉的深度学习。但是统计学习目前存在以下难点:(1)行人的姿态、服饰各不相同、复杂的背景、不同的行人尺度以及不同的光照环境;(2)提取的特征在特征空间中的分布不够紧凑;(3)分类器的性能受训练样本的影响较大;(4)离线训练时的负样本无法涵盖所有真实应用场景的情况。

目前的行人检测基本上都是基于法国研究人员dalal在2005的cvpr发表的hog+svm的行人检测算法(histogramsoforientedgradientsforhumandetection,navneetdalel,billtriggs,cvpr2005)。另外,为了解决速度问题可以采用背景差分法的统计学习行人检测,前提是背景建模的方法足够有效(即效果好速度快),目前获得比较好的检测效果的方法通常采用多特征融合的方法以及级联分类器,常用的特征有harry-like、hog特征、lbp特征、edgelet特征、css特征、cov特征、积分通道特征以及centrist特征。



技术实现要素:

本发明的主要目的在于提供一种行人检测方法,其克服现有技术的不足,通过检测人头和双腿的组合策略来提高检测行人率,从而基于svm和hog的行人检测识别方法解决行人检测率不高的问题。

本发明的另一目的在于提供一种行人检测方法,其通过快速有效的检测,以保证自动驾驶期间对行人的安全不会产生威胁,适用于智能辅助驾驶。

达到以上目的,本发明采用的技术方案为一种行人检测方法,其包括步骤:

s100训练svm分类器,以人头和双腿为正样本,以行人背景作为负样本,训练两个svm分类器;

s200将待检测的图像构造图像金字塔;

s300滑动窗口,在图像金字塔的各个尺度上截取目标窗口;

s400对目标窗口提取hog特征;

s500将s400中提取的hog特征送入svm分类器中,分类判断目标窗口是行人的头部、行人的双腿或行人背景;

s600根据s500中检测到的头部和双腿结果来组合行人,判断待检图像中是否含有行人。

根据本发明的一实施例,所述步骤s200具体包括步骤:对图像进行下采样或上采样,降低图像的分辨率,识别不同尺度的目标,其中,金字塔的底部是待处理图像的高分辨率表示,顶部是低分辨率的近似。

根据本发明的一实施例,所述步骤s500具体包括步骤:将提取的hog特征送入训练的两个svm分类器,其中一个svm分类器负责判断是否是行人的头部,如果是则终止判别并记录下坐标值,如果不是则送入下一个svm分类器,判断是否是行人的双腿,如果是记录下坐标值,两个都不是则判断为行人背景。

根据本发明的一实施例,所述步骤s100中的训练svm分类器包括步骤:

s110截取正样本,正样本是在行人正样本的基础上裁剪出行人的头部;

s120再裁剪出行人的双腿,采集的双腿要求站立,为基本垂直的双腿;

s130训练出两个svm分类器,其中一个svm分类器识别是否是行人头部,另一个svm分类器识别是否是行人的双腿。

根据本发明的一实施例,所述步骤s600将检测到的行人头部和双腿进行组合,通过非极大值抑制的方法,选出最优框,其中,所述非极大值抑制的过程是一个迭代-遍历-消除的过程,其包括步骤:

s610将所有框的得分排序,选中最高分及其对应的框;

s620遍历其余的框,如果和当前最高分框的重叠面积大于一定阈值,将此框删除;

s630从未处理的框中继续选一个得分最高的,重复上述过程。

根据本发明的一实施例,所述步骤s100中的svm设置参数如下:

svm->settype(cv::ml::svm::types::c_svc);//选择opencv的c类支持向量机,n类分组(n\geq2),允许用异常值惩罚因子c进行不完全分类;

svm->setkernel(cv::ml::svm::kerneltypes::poly);//采用多项式核函数,opencv中定义的多项式和函数为:k(x,y)=(gammax^ty+coef0)^degree;

svm->setdegree(10.0);//设置多项式核函数的degree为10;

svm->setgamma(0.09);//设置多项式核函数的gamma为0.09;

svm->setcoef0(1.0);//设置多项式核函数的coef0为1;

svm->setc(10.0);//设置的错误代价参数c为10。

根据本发明的一实施例,所述步骤s400中的hog特征提取算法的实现过程,包括步骤:

s410灰度化;

s420采用gamma校正法对输入图像进行颜色空间的标准化;

s430计算图像每个像素的梯度,包括大小和方向;

s440将图像划分成小细胞单元;

s450统计每个细胞单元的梯度直方图,形成每个细胞单元的描述符;

s460将每几个细胞单元组成一个区间,一个区间内所有细胞单元的特征描述符串联起来便得到所述区间的hog特征描述符;

s470将图像内的所有区间的hog特征描述符串联起来得到所述图像的hog特征描述符,这个就是最终的可供分类使用的特征向量。

与现有技术相比,本发明的有益效果是:

(1)由于人头和双肩组成的身体上半部在运动中一般不会发生形变,具有较强的稳定性,站立的行人在直立行走时双腿也具有较强的稳定性,因而通过检测人头和双腿的组合策略可以增加提高行人的检测率。

(2)由于hog是在图像的局部方格单元上操作,所以它对图像几何的和光学的形变都能保持很好的不变性,这两种形变只会出现在更大的空间领域上;其次,在粗的空域抽样、精细的方向抽样以及较强的局部光学归一化等条件下,只要行人大体上能够保持直立的姿势,可以容许行人有一些细微的肢体动作,这些细微的动作可以被忽略而不影响检测效果。因此hog特征适合于做图像中的人体检测。

附图说明

图1是根据本发明实施例的训练程序流程图。

图2是根据本发明实施例的检测程序流程图。

具体实施方式

以下描述用于揭露本发明以使本领域技术人员能够实现本发明。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。

如图1至图2所示的是一种行人检测方法,所述行人检测方法,包括步骤:

step1:训练svm分类器。

svm分类器:

svm(supportvectormachine)指的是支持向量机,是常见的一种判别方法。在机器学习领域,是一个有监督的学习模型,通常用来进行模式识别、分类以及回归分析。

svm方法是通过一个非线性映射,把样本空间映射到一个高维乃至无穷维的特征空间中(hilbert空间),使得在原来的样本空间中非线性可分的问题转化为在特征空间中的线性可分的问题.简单地说,就是升维和线性化.升维,就是把样本向高维空间做映射,一般情况下这会增加计算的复杂性,甚至会引起“维数灾难”,因而人们很少问津.但是作为分类、回归等问题来说,很可能在低维样本空间无法线性处理的样本集,在高维特征空间中却可以通过一个线性超平面实现线性划分(或回归).一般的升维都会带来计算的复杂化,svm方法巧妙地解决了这个难题:应用核函数的展开定理,就不需要知道非线性映射的显式表达式;由于是在高维特征空间中建立线性学习机,所以与线性模型相比,不但几乎不增加计算的复杂性,而且在某种程度上避免了“维数灾难”.这一切要归功于核函数的展开和计算理论。

通过核函数,以后的高维内积都可以转化为低维的函数运算,这里也就是只需要计算低维的内积,然后再平方。明显问题得到解决且复杂度降低极大。总而言之,核函数它本质上隐含了从低维到高维的映射,从而避免直接计算高维的内积。

核函数有很多种,相同种类但是不同参数的核函数效果又有所不同,需要说明的是并不是说所有的核函数都能显示的写出隐含的从低维到高维的扩维细节。成为核函数有满足的条件mercer’scondition。一般用得比较多比较成熟的核函数有如下几个。

选择不同的核函数,可以生成不同的svm,常用的核函数有以下4种:

⑴线性核函数k(x,y)=x·y;

⑵多项式核函数k(x,y)=[(x·y)+1]^d;

⑶径向基函数k(x,y)=exp(-|x-y|^2/d^2);

⑷二层神经网络核函数k(x,y)=tanh(a(x·y)+b)。

本发明通过人工裁取正样本,负样本并标记出来,调用opencv3.0中集成的svm。其中svm设置的各种参数如下:

svm->settype(cv::ml::svm::types::c_svc);//这里我们选择opencv的c类支持向量机,n类分组(n\geq2),允许用异常值惩罚因子c进行不完全分类。

svm->setkernel(cv::ml::svm::kerneltypes::poly);//采用多项式核函数,opencv中定义的多项式和函数为:k(x,y)=(gammax^ty+coef0)^degree;

svm->setdegree(10.0);//设置多项式核函数的degree为10;

svm->setgamma(0.09);//设置多项式核函数的gamma为0.09;

svm->setcoef0(1.0);//设置多项式核函数的coef0为1;

svm->setc(10.0);//设置的错误代价参数c为10。

hog特征:方向梯度直方图(histogramoforientedgradient,hog)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。hog特征结合svm分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。hog+svm进行行人检测的方法是法国研究人员dalal在2005的cvpr上提出的,而如今虽然有很多行人检测算法不断提出,但基本都是以hog+svm的思路为主。

(1)主要思想:

在一副图像中,局部目标的表象和形状(appearanceandshape)能够被梯度或边缘的方向密度分布很好地描述。

(2)具体的实现方法是:

首先将图像分成小的连通区域,我们把它叫细胞单元(cell)。然后采集细胞单元中各像素点的梯度的或边缘的方向直方图。最后把这些直方图组合起来就可以构成特征描述器。

(3)提高性能:

把这些局部直方图在图像的更大的范围内(我们把它叫区间或block)进行对比度归一化(contrast-normalized),所采用的方法是:先计算各直方图在这个区间(block)中的密度,然后根据这个密度对区间中的各个细胞单元做归一化。通过这个归一化后,能对光照变化和阴影获得更好的效果。

(4)优点:

与其他的特征描述方法相比,hog有很多优点。首先,由于hog是在图像的局部方格单元上操作,所以它对图像几何的和光学的形变都能保持很好的不变性,这两种形变只会出现在更大的空间领域上。其次,在粗的空域抽样、精细的方向抽样以及较强的局部光学归一化等条件下,只要行人大体上能够保持直立的姿势,可以容许行人有一些细微的肢体动作,这些细微的动作可以被忽略而不影响检测效果。因此hog特征是特别适合于做图像中的人体检测。

针对目标检测窗口的hog特征提取算法实现过程如下:

1)灰度化(将图像看做一个x,y,z(灰度)的三维图像);

2)采用gamma校正法对输入图像进行颜色空间的标准化(归一化);目的是调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时可以抑制噪音的干扰;

3)计算图像每个像素的梯度(包括大小和方向);主要是为了捕获轮廓信息,同时进一步弱化光照的干扰。

4)将图像划分成小cells(例如6*6像素/cell);

5)统计每个cell的梯度直方图(不同梯度的个数),即可形成每个cell的descriptor(描述符);

6)将每几个cell组成一个block(例如3*3个cell/block),一个block内所有cell的特征descriptor串联起来便得到该block的hog特descriptor;

7)将图像image内的所有block的hog特征descriptor串联起来就可以得到该image的hog特征descriptor了,这就是最终的可供分类使用的特征向量。

训练本文svm分类器的方法是首先截取正样本和负样本。

本发明的正样本是在行人正样本的基础上裁剪出行人的头部和行人的双腿。

因此要训练出两个svm分类器,一个svm分类器识别是否是人头,另一个svm分类器识别是否是双腿。

负样本的选取是行人的背景。

step2:对待检测图片的构造图像金字塔,即对图像进行下采样,降低图像的分辨率,以便能够识别不同尺度的目标。

图像金字塔是一种以多分辨率来解释图像的有效但概念简单的结构。应用于图像分割,机器视觉和图像压缩。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。

step3:对某一尺度的图像选择间隔特定像素跳跃进行切割获取目标窗口,即滑动窗口。

step4:对目标窗口提取hog特征。

step5:将step4中提取的hog特征送入svm分类器中。

此处训练两个svm分类器,一个svm分类器负责判断是否是人头,如果是则终止判别并记录下坐标值,如果不是则送入下一个分类器,判断是否是双腿,如果是记录下坐标,两个都不是的判断为背景。

step6:根据step5中检测到的头部和双腿将行人组合起来,并且采用非极大值抑制的方法,选出最好的框。

非极大值抑制(non-maximumsuppression,nms),就是抑制不是极大值的元素,可以理解为局部最大搜索。这个局部代表的是一个邻域,邻域有两个参数可变,一是邻域的维数,二是邻域的大小。

抑制的过程是一个迭代-遍历-消除的过程。

(1)将所有框的得分排序,选中最高分及其对应的框;

(2)遍历其余的框,如果和当前最高分框的重叠面积(iou)大于一定阈值,就将该框删除;

(3)从未处理的框中继续选一个得分最高的,重复上述过程。

以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明的范围内。本发明要求的保护范围由所附的权利要求书及其等同物界定。

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