基于支持向量机和深度特征的行人识别方法与流程

文档序号:11775210阅读:583来源:国知局
基于支持向量机和深度特征的行人识别方法与流程

本发明属于图像处理技术领域,涉及一种基于支持向量机和深度特征的行人识别。



背景技术:

目前,基于单目视觉的行人目标检测与跟踪技术已广泛应用于实际,在一定程度上解决了现在一般行人检测系统对其的技术需求。但是,由于单目视觉主要是基于对像素的彩色和灰度信息进行分析与应用,达到目标检测与跟踪的目的,所以还是存在很多缺陷。首先是光照变化,像素的彩色和灰度信息对光照很敏感,一点点的光照变化反映在像素的彩色和灰度值上都变得显著,这使得基于单目的运动目标检测与跟踪系统很难在光照变化复杂的室外条件下工作。其次是类运动目标的干扰,典型的类行人目标就是阴影。运动目标的阴影由于其在几何形状、运动规律等方面和真正的目标十分相似,在只有像素点的彩色和灰度信息的条件下很难很好的区分两者,这使得提取的行人目标质量受到影响,给后续的跟踪带来一定的干扰。由于行人目标形变十分多样,运动姿态、衣着变化、摄像机视角、行人间的相互遮挡等都会对最后检测出来的行人目标的外观产生影响,这使得传统的一些基于单目视觉的目标检测与跟踪算法准确度下降甚至失效。

为了提高行人检测系统的准确性和鲁棒性,克服光照变化、类行人目标干扰、外观变化等因素对行人目标检测与跟踪的影响,本课题针对俯视场景下的行人检测与跟踪问题进行了研究。针对基于单目的行人目标检测与跟踪技术中存在的问题,本发明引入了双目立体视觉。双目立体视觉较单目来说,在保留像素的彩色和灰度信息的同时,增加了像素点深度这一关键信息。像素点的深度信息更加稳定,不易受光照变化的干扰,通过结合像素点的深度信息,可以更准确更细致的检测和区分目标,提高行人目标检测与跟踪的准确度和抗干扰能力。本发明在单目视觉的基础上,结合双目的深度信息,在充分考虑了行人检测系统在理论上和实践上面临的各种困难后,试图构建一个能对实际场景中的行人进行准确、快速检测和跟踪、具有稳定性和鲁棒性的行人检测系统。

行人目标检测与跟踪技术作为计算机视觉领域当前的研究热点,牵涉到诸如图像传感器、图像处理算法、机器学习算法等诸多学科领域。本发明主要的研究内容是基于双目的运动目标检测与跟踪技术,是计算机视觉的一个研究重点,具有很高的学术价值。另一方面,目前计算机视觉的商业开发越来越多,而作为重要分支之一的就是行人目标检测系统,也有着丰富的应用场景。



技术实现要素:

本发明提供一种基于支持向量机和深度特征的行人识别,该方法采用机器学习的方法使用基于深度特征描述子与svm的行人分类器进行行人检测。本发明基于设定姿态和电梯下的真是场景视频制作正负样本集合,使用基于深度信息的特征描述子,通过制作的训练样本使用libsvm选取rbf核作为svm的核函数针对深度信息特征来对行人分类器进行训练,学习得到训练模型后,最终以滑动窗口的方式检测运动目标区域中的行人。

本发明将深度信息特征描述子分为局部深度信息变化特征和局部深度信息大小特征,使用libsvm选取rbf核作为svm的核函数针对深度信息特征来对行人分类器进行训练,得出判别模型。由于依靠行人的运动属性或者行人在图像中的灰度属性等特征不能推断出它描述的是一个真正的行人还是其他和行人具有类似运动规律的非行人目标,因此采用基于深度信息的特征描述子利用svm进行判别训练,得到准确的行人检测模型。

基于支持向量机和深度特征的行人识别方法,包括如下步骤:

步骤一:制作训练样本,构造设定姿态下和搜集的真实场景视频中的正样本与负样本;

步骤二:一种基于深度信息的特征描述子,用以描述行人(俯视视角下)在深度图中的特征。该行人特征描述子主要分为两部分,一部分用来刻画局部深度信息的变化特征,另一部分用来刻画局部深度信息的大小特征。

对于深度图中的一点(x,y),首先计算它跟邻域像素在x方向和在y方向上的差值δx和δy:

δx=d(x+1,y)-d(x-1,y)(1)

δy=d(x,y+1)-d(x,y-1)(2)

其中,d(x,y)表示点(x,y)的深度值。之后,对得到的δx和δy进行量化编码:

式中td是一阈值。那么对于深度图中一点(x,y),其在局部深度信息的变化特征就定义为(tx,ty)。它有3×3=9种组合形式,每种组合形式就描述了一种深度信息的变化情况,如当取值为(1,1),则表示在点(x,y)的四领域内右上角最高;当取值为(-1,0)时则表示深度在y方向上变化不大,而在x方向上减小。

有了每个像素点的大小变化特征(tx,ty),就可以通过统计直方图来获得9种不同变化的分布情况,从而更精确的刻画一个局部区域的深度变化特征了。具体说,以(tx,ty)的9种可能的组合形式作为直方图的9个bin,取一统计单元统计每种情况的频数。得到的每个bin的频数组合起来,就是该统计单元的9维深度特征。

有了局部深度度信息的变化特征还是不够的,由定义我们知道,它只能反映局部深度信息的相对大小,而无法反映局部深度的绝对大小。所以用局部深度信息的均值来描述该区域的深度信息的绝对大小。但是,考虑到在立体匹配的过程中会产生误匹配点,这些误匹配点的深度将被赋值为零。它们不能正确反映该位置真正的深度信息,会降低局部区域的均值。所以对于这些误匹配点应在计算均值的时候将其剔除,即:

其中,b表示待统计的局部区域,x表示b内的像素点,dx表示其深度值,n是b内所有像素点的个数,而n0是深度值为零的无效像素点。求得的就是区域b的深度大小的特征描述。

本发明选取9×9大小的窗口作为特征提取单元。将9×9的特征提取单元进一步划分为互不重叠的9个3×3大小的区块,每个小区块如中的小红框所示。在每个小红框中,计算中心像素的深度信息变化特征(tx,ty),这样就得到了9组深度信息变化特征。之后,计算特征提取单元81个像素的有效平均值最为特征提取单元的深度信息的大小特征。选取27×27大小的窗口作为特征统计单元。统计共计81个深度信息变化特征的分布情况,作为统计单元的前9个特征维度。对于表征深度信息绝对大小的均值特征,依次按从左到右、从上到下的顺序作为统计单元的后9个特征维度。每个特征提取单元深度大小的特征之外,也保留了这些深度大小特征的空间分布情况。最后,选取108×108大小的检测窗口。在本发明的应用场景下,该大小的窗口基本能覆盖待检测的行人轮廓。同样,为了表征特征统计单元的空间分布情况,本发明将16个特征统计单元串联起来,一次按照从左到右、从上到下的顺序组合起来,就获得了检测窗口完整的深度信息描述子,共计18×16=288维。

步骤三:对得到的训练样本使用libsvm选取rbf核作为svm的核函数针对深度信息特征来对行人分类器进行训练;

步骤四:根据分类器在运动目标区域以滑动窗口的方式检测运动目标区域中的行人,使用非极大值抑制的办法来剔除冗余的检测窗口;

得到训练好的行人分类器之后,就可以在运动目标区域以滑动窗口的方式检测运动目标区域中的行人了。行人分类器在运动目标区域滑动过程中,会对存在同一行人的区域输出多个检测结果窗口,这是不必要。

对于运动目标区域中检测到的所以窗口根据置信概率进行排序,从置信度最高的检测窗口开始处理。计算其与剩余窗口的重叠面积,若面积大于阈值t,则认为它们描述的是同一行人目标,将其剔除;否则,将其保留。当遍历完除最大置信概率的检测窗口后,再计算除当前窗口和剔除窗口后剩余窗口中置信概率最大的检测窗口,如此循环直至处理完窗口。

步骤五:得到输出图像。

本发明的方法有效能够有效减缓相互遮挡、相互粘连等情况,从而提高了行人识别的准确率,获得较好的检测效果。

附图说明

图1是本发明的方法流程图。

图2是本发明的部分正样本示意图。

图3是本发明的部分负样本示意图。

图4是本发明的深度变化特征统计直方图示意图。

图5是本发明的基于非极大值抑制的冗余检测窗口消除算法流程图。

图6是本发明具体实施方式的冗余检测窗口消除实验结果。

具体实施方式

本实施方式的方法,软件环境为windows7系统,仿真环境为matlab2008a,流程如图1所示:

步骤一:制作训练样本,制作设定姿态下和采集的真实场景视频中的正样本与负样本;

训练样本的准备是构建行人识别分类器的第一步。由于本发明需要识别的行人是基于深度信息的,没有现成的数据库,所以需要手动制作训练样本。训练样本主要分为正样本和负样本。不论是正样本还是负样本,都需要尽量覆盖各种可能出现的情况。

样本的尺寸统一为108×108像素大小,基本可以覆盖目标行人的头肩部。正样本的构建主要分为两部分,一部分是设定姿态下的采样,另一部分是采集真实场景的视频,然后根据背景减除法获得的运动目标区域进行扫描采样,并手动进行标记。设定姿态下,主要考虑头部相对与肩部的位置变化、行人朝向变化、视角变化、行人身高变化等变化因素,尽量覆盖所以可能的变化情况。一部分正样本的示例如图2所示。负样本的采集同样分为两部分,一部分是设定的负样本,另一部分是来自真实场景的运动区域扫描采集的负样本。部分负样本的实例如图3所示。

步骤二:使用一种基于深度信息的特征描述子,用以描述行人(俯视视角下)在深度图中的特征。该行人特征描述子主要分为两部分,一部分用来刻画局部深度信息的变化特征,另一部分用来刻画局部深度信息的大小特征。

步骤三:一种基于深度信息的特征描述子,用以描述行人(俯视视角下)在深度图中的特征。该行人特征描述子主要分为两部分,一部分用来刻画局部深度信息的变化特征,另一部分用来刻画局部深度信息的大小特征。

有了每个像素点的大小变化特征(tx,ty),就可以通过统计直方图来获得9种不同变化的分布情况,从而更精确的刻画一个局部区域的深度变化特征了。具体说,以(tx,ty)的9种可能的组合形式作为直方图的9个bin,取一统计单元统计每种情况的频数。得到的每个bin的频数组合起来,就是该统计单元的9维深度特征了,其示意图如图4所示。

步骤四:得到训练好的行人分类器之后,就可以在运动目标区域以滑动窗口的方式检测运动目标区域中的行人了。行人分类器在运动目标区域滑动过程中,会对存在同一行人的区域输出多个检测结果窗口,这是不必要的,我们仅需获得一个最准确描述行人的检测窗口。可以使用非极大值抑制的办法来剔除冗余的检测窗口,其流程图如图5所示。

对于运动目标区域中检测到的所以窗口根据置信概率进行排序,从置信度最高的检测窗口开始处理。计算其与剩余窗口的重叠面积,若面积大于阈值t,则认为它们描述的是同一行人目标,将其剔除;否则,将其保留。当遍历完除最大置信概率的检测窗口后,再计算除当前窗口和剔除窗口后剩余窗口中置信概率最大的检测窗口,如此循环直至处理完所以窗口。实验结果如下图6所示。

综上所述,基于支持向量机和深度特征的行人识别方法实现了行人识别的过程。该方法能够有效减缓相互遮挡、相互粘连等情况,并且兼顾算法实时性,从而大幅度提高了算法的实时性和灵活性。

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