专利名称:基于第二代条带波变换的人体检测方法
技术领域:
本发明属于模式识别技术领域,涉及人体检测方法,可用于对图像中的人体 及其它复杂目标的分类与检测。
背景技术:
人体检测在计算机视觉中有许多重要的应用,如视频监控、智能汽车及智能 交通、机器人和高级人机交互等。然而,由于人体自身姿态的变化、衣服的多样 性和光照等因素的影响,人体的外观变化非常大,导致人体检测成为一个非常困 难的问题。
目前,静态图像中人体检测的方法主要有基于人体模型的方法、基于模板匹 配的方法和基于统计分类的方法。基于人体模型的方法有明确的模型,可以处理 遮挡问题,并且可以推断出人体的姿态。缺点是模型的构建比较难,求解也比较 复杂。基于模板匹配的方法计算简单,缺点是由于人体姿态的复杂性,很难构造 出足够的模板以处理不同的姿态。基于统计分类的方法通过机器学习从一系列训 练数据中学习得到一个分类器,用该分类器来表示人体,然后利用该分类器对输 入窗口进行分类及识别。基于统计分类的方法的优点是比较鲁棒,缺点是需要很 多训练数据,并且很难解决姿态和遮挡的问题。
基于统计分类的方法主要包括两个步骤特征提取和分类器设计。其中所选 特征的表征能力将直接影响分类器的性能。目前所选的特征包括原始灰度特征
空间、Haar小波特征、形状描述符特征、Gabor^寺征、有向梯度直方图HOG特征和 SIFT特征等。其中HOG特征提取方法的提取速度快,检测正确率也较高,由此, 近年来得到了广泛的应用。如何进一步提高检测的正确率,成为该研究领域的核 心问题之一。
根据分类器的设计方法,现有的基于统计分类的方法可分为基于神经网络NN 的方法、基于支持向量机SVM的方法和基于Adaboost的方法。AdaBoost是一种具 有自适应性的Bostirig算法,它通过建立多学习机组合使得弱学习机的性能得到 提升,由于其独有的对学习机性能的自适应和对过学习现象的免疫性,近年来引 起了广泛的关注。传统的基于图像边缘的表示方法仅通过图像的边缘来描述其几何特性,不仅 不严格,而且很难较好地刻画图像。为此,法国学者Pennec和Mallat等引入了几 何流来刻画图像的几何性质,于2000年提出了第一代条带波Bandelet变换。但其 计算复杂度高,而且由于其非正交性,在曲波变换时会引入边界效应。为此,法 国学者G.Peyr6和S.Mallat在2004年提出了第二代Bandelet变换,避免了第一代 Bandelet变换的重采样和弯曲等繁杂操作,通过多尺度分析和几何方向分析共同 完成图像的分解。多尺度分析通过二维标准小波变换完成,几何方向分析通过几 何正交方向上的一维小波变换完成。
目前,基于第二代Bandelet变换的研究主要集中于图像的压縮和降噪中。由
于其能够更好的表示图像,所以,如何将其应用于图像的特征提取,从而实现对
特定目标的分类和识别,成为其研究领域的一大热点。
发明内容
本发明的目的是从图像的几何流特性出发,提出一种基于第二代条带波变换 的人体检测方法,以进一步提高人体检测的正确率。
实现本发明目的的技术方案是利用条带波Bandelet变换具有沿几何流方向 的多尺度变换的优点,以Bandelet变换之后的Bandelet系数及其统计特征作为人 体图像的特征,通过AdaBoost训练这些特征,得到分类器,并使用窗口扫描实现 对静态图像中人体的检测。具体过程如下
(1) 以INRIA数据库为基础,通过负样本的自举操作获取大量的负样本,并 与数据库中其它的正样本一起构成训练样本集;
(2) 提取训练样本集中所有训练样本的Bandelet联合特征组成一个样本特征 集,利用AdaBoost算法进行分类训练,得到一个分类器;
(3) 输入任意大小的被测图像,计算其Bandelet系数矩阵;
(4) 根据所得的Bandelet系数矩阵,计算被测图像中所有扫描窗口的Bandeet 联合特征,输入到步骤(2)中所得的分类器中进行分类;
(5) 根据分类器输出的分类结果,利用主窗口合并法,对所有分为人体的扫描 窗口进行组合,形成最终的人体检测结果。
本发明与现有的技术相比具有以下优点
1、由于本发明使用了两种不同的特征提取方法进行负样本的自举操作,使得 在获得大量负样本的同时,所获得的负样本也更具代表性,其构成的样本集训练的分类器具有更好的分类性能。
2、 由于本发明在提取Bandelet联合特征时使用的Bandelet变换是通过图像的 几何流来刻画图像的几何性质,使得该Bandelet联合特征具有更好的特征表征能 力,能够更利于分类器训练,与特征维数相近的其它特征相比,对应分类器达到 相同训练误差所需的训练时间大大縮短。
3、 实验结果表明,本发明中使用的Bandelet联合特征能够更好的刻画图像, 使得与传统的HOG特征提取方法相比,在分类正确率上有明显的提高,检测也更 加准确。
图l是本发明的流程示意图2是本发明中使用的部分正样本与负样本图像;
图3是本发明与传统HOG特征提取方法在样本训练时的误差衰减对比图; 图4是本发明用于静态图像的人体检测结果图。
具体实施例方式
本发明由图像的几何流特性出发,提出了一种基于第二代Bandelet变换的人 体检测特征提取新方法。即利用Bandeet变换中的Bandelet系数及其统计特征作为 图像的特征,进行分类并检测图像中的人体。本发明在对Bandelet变换的一些改进 的基础上,通过实验确立了相关的最优参数和统计特征,然后利用AdaBoost分类 器算法进行了样本训练,并将分类结果与HOG特征进行了比较。详细描述如图l、 图3、图4和图5。
参照图l,本发明的具体实现过程如下-
步骤一,以INRIA数据库为基础,通过负样本的自举操作来获取大量的负样 本,并与数据库中其它的正样本--起构成训练样本集。
本发明使用的数据库来自INRIA人体数据库,下载地址为 http:〃pascal,inrialpes.fr/data/human/。由于该数据库没有提供足够的负样本,所 以需要以该数据库为基础,通过负样本的自举操作来获取大量的负样本。
本发明为了使训练样本更具有带表性,在特征提取时分别使用了 HOG特征及 Bandelet联合特征两种特征,这样进行负样本的自举操作,可得到两个负样本集, 然后取其交集作为最终的负样本集。最后由这个负样本集加上INRIA数据库中的
7正样本集,得到最终的训练样本集,共有6246个样本,将其中的2416个正样本 与1877个负样本作为训练集,1132个正样本与821个负样本作为测试集,样本 的大小均为128X64像素。图2给出了其中的部分样本图像,其中图2(a)为部分 正样本,图2(b)为部分负样本。
其中,所述负样本的自举操作过程如下-
(1.1) 先从INRIA数据库中任取一小部分正样本与负样本,进行特征提取,训 练初始分类器;
(1.2) 使用这个初始分类器,来检测数据库中的其余非人体图像,从错分的扫 描窗口图像中随机挑选一部分与当前的负样本组成新的负样本集,使用随机挑选 能够避免混入大量特征相似的样本图像;
(1.3) 重复特征提取、训练分类器、检测非人体图像及组成新的负样本集这一 过程直至收集到与INRIA数据库中正样本个数相同的最终负样本。
步骤二,利用Bandelet变换,计算所有训练样本的Bandelet联合特征组成一个 训练样本特征集。
(2.1) 对每个样本图像做二维离散正交小波变换 先对每行做一维小波变换
X,+Z,2)/V^ / = l,2,...rar/2 il-l,3,5…。二2,4'6…
X,=(H2)/V^ / = ra:/2,"x:/2 + l,..."x /1 = 1,3,5... 。 = 2,4,6...
其中,11,《,,1,2分别表示每一行上第/,/1,/2个像素点的灰度值,m:表示图像
灰度矩阵的行数;
然后对每列做一维小波变换
=CY;1+I;.2)/V^ y、l,2,…"少/2 " = 1,3,5...」2 = 2,4,6... 义j.=(义"_义,2)/^ ) = ">^/2,">;/2 + 1,..."7 " = 1,3,5... )2 = 2,4,6...
其中,J^,Z",^2分别表示每一列上第y,几y'2个像素点的灰度值;"少表示
图像灰度矩阵的列数。本发明通过对比实验得出,做二维小波变换的层数为l时, 特征的表征性能最好。
(2.2) 将二维离散正交小波变换后的样本图像进行二进剖分,并将每个丄x丄的 小块作为 一个Bandelet块。
8本发明通过对比实验得出,当二进剖分大小丄x丄取为4X4像素时,特征的表 征性能最好。
(2.3)对各Bandelet块,根据Lagarange罚函数法求取一个最优方向,即最佳几 何流方向,具体步骤为
(a) 对于尺寸为丄x丄的子块S,将圆周角
,然后按下式截去右边小于8个像素与下边小于16个像素的多余部分
X=|X/8|X8 Y叫Y/16IX16 | l表示截尾取整
其中,X为被测图像在水平方向的像素值,Y为被测图像在垂直方向的像素值。 截去多余部分是为了在向水平移动8像素及垂直移动16像素的图像扫描时,能 够直接从整个图像的特征值中准确取出任意扫描窗口上的特征值。
(4.2) 对处理过的被测图像进行二维离散正交小波变换,小波变换的层数为l;
(4.3) 将二维离散正交小波变换后的图像进行4X4像素的二进剖分,并将每个 4 X 4像素的小块作为 一个Bandelet块;
(4.4) 计算每个Bandelet块在各方向上的投影误差,并按最小Lagrange函数法,求取一个最优的投影误差排序索引;
(4.5) 根据每个Bandelet块的最优排序索引,将其上的二维离散小波变换系数 进行重排序,得到对应的一维信号;
(4.6) 将每个一维信号作一维小波变换,并将对应的一维小波变换系数,按 Mallet法则重新组合为二维形式,作为对应Bandelet块的Bandelet系数,将所有 Bandelet块的Bandelet系数构成该处理过的被测图像的Bandelet系数矩阵。
步骤五,根据Bandelet系数矩阵,计算被测图像中所有扫描窗口的Bandelet
联合特征。
(5.1) 将被测图像左上角的一个样本大小的区域作为第一个扫描窗口,每向右 平移8个像素或向下平移16个像素作为一个新的扫描窗口,由此得到一组扫描窗 □;
(5.2) 设裁剪后的被测图像大小为XxY,某扫描窗口在被测图像中的位置为(x, y),则取Bandelet系数矩阵中(x/2, y/2)、 (x/2+X/2, y/2)、 (x/2, y/2+ Y/2)和(x/2+X/2, y/2+Y/2)四个位置上大小为l/4样本的区域上的值,作为该扫描窗口上的Bandelet 系数;
(5.3) 计算每个扫描窗口上Bandelet系数的能量、熵、均值及最大值这几类统 计值,将这些统计值与Bandelet系数一起作为对应扫描窗口的Bandelet联合特征。
步骤六,将所有扫描窗口的Bandelet联合特征输入之前所得的分类器进行分 类,得到一组判定结果。
分类器将判定所有扫描窗口中的图像是否是人体。每个扫描窗口会得到一个 判定分数,该值大于O表示该扫描窗口为人体窗口,否则为非人体窗口。将被测 图像的縮放比、所有扫描窗口的位置及其所得的分类器分数作为分类器输出的分 类结果。
步骤七,根据分类器输出的分类结果,利用主窗口合并法,对所有分为人体 的扫描窗口进行组合,形成最终的人体检测结果,具体步骤如下
(7.1) 根据分类器输出的扫描窗口判断被测图像中是否包含人体,若分类器输 出的扫描窗口没有人体窗口,则被测图像中不包含人体,否则,从所有的人体窗 口中,找出其分类器分数最高的作为主窗口;
(7.2) 对主窗口与其他人体窗口进行组合判定,当其他人体窗口处于主窗口周 围且重叠小于l/2时判为不组合,否则进行组合;(7.3) 将主窗口与所有需要组合的人体窗口的边界均值作为一个检测结果; 本发明,在求边界均值时,将人体窗口的分类器分数作为边界的加权值分
类器分数越大的,其边界加权越大,对最终的检测结果影响越大;分类器分数越 小的,其边界加权越小,对最终的检测结果影响也越小,这样能使人体的检测位 置更加准确。
(7.4) 删除主窗口及所有参与组合的人体窗口;
(7.5) 若还有剩余的人体窗口,则再找出其中分类器分数最高的作为主窗口, 并重复(2)- (4)的操作;
(7.6) 在被测人体图像上标出所有检测结果,作为该被测图像最终的人体检测 结果。 一般采用矩形框来表示检测结果,被检测出的人体处于矩形框内。
本发明的效果可通过以下仿真进一步说明
1. 仿真内容
采用本发明所提出的Bandelet联合特征提取方法和目前广泛使用的HOG特征 提取方法进行仿真对比实验。其中的正样本集取自INRIA数据库,负样本集以该 数据库为基础,通过负样本自举操作得到。最后得到的样本集共有6246个样本, 其中2416个正样本与1877个负样本作为训练集,1132个正样本与821个负样本 作为测试集,样本大小均为128x64像素。图2给出了其中的部分样本图像,其中 图2(a)为部分正样本,图2(b)为部分负样本。
针对每种特征提取方法,先提取训练集的特征,再使用AdaBoost算法进行分 类训练,得到一个分类器,然后使用该分类器对测试集进行分类测试,最后输入 任意被测图像,检测是否包含人体,如果包含人体则要检测出人体的位置。其中 的两幅被测图像大小分别为274x311像素和331x344像素,扫描窗口均为128x64 像素,縮放因子取
。扫描图像时,使用浓密扫描,X方向平 移8个像素,Y方向平移16个像素。首先针对每个縮放尺度,扫描整幅图像一次, 然后从中提取所有扫描窗口上的特征值,进行分类识别,最后将分为人体的窗口 组合成检测结果,并在原被测图像上表示出来。其中窗口组合采用的是主窗口合 并的方法。硬件平台为Intel Core2Duo CPU E6550@2.33GHZ、 2GB RAM。软 件平台为MATLAB7.2。
2. 仿真结果及分析
图3给出了本发明和传统HOG联合特征提取方法在样本训练时的误差衰减对
12比图。其中C为训练轮数,Error为训练误差。从图3中可以看出,采用Bandelet 联合特征在训练时的误差要始终小于使用HOG特征训练时的误差。可见,使用 Bandelet联合特征更利于进行分类器训练,与特征维数相近的其它特征相比,对 应分类器达到相同训练误差所需的训练时间大大縮短。
表1给出了本发明和与传统HOG特征提取方法在对样本测试时的对比。
表l. 分类结果对比
训练轮数(C)与误差(Error)Accuracy (测试正确率)FP (假阳率)Time (秒/次)
100CCErrorHOG0.13322000.093686.5850/o7.99%0.120
Bandelet0,12561640,093688.991%6.61%0.435
2000.082589,503%6.32%联合特征0.09851080.093491.654%5.07%0.476
3630.022891.551%3.85%从表l中IOO轮的训练误差就能看出,使用本发明的特征提取方法,更利于
进行分类器训练。同时,对比相同训练误差下不同分类器对测试集的分类结果可
以看出,本发明的特征提取方法相比HOG特征提取方法,在分类正确率上有了较 大的提高。表1中,最后一列为每个样本特征提取的平均时间,从中可以看出, 由于几何流搜索占用了大部分的时间,导致特征提取的速度相比HOG要慢一些, 但对静态图像的人体检测影响不大。
图4给出了本发明对某些人体图像的最终检测结果。其中,图像4(a)为对扫 描窗口分类识别的结果,图像4(b)为对图像4(a)的扫描窗口进行组合的最终检测 结果,图(c)为另一幅图像的检测结果。从图中可以看出,使用本发明的Bandelet 联合特征提取方法,能够准确的从被测人体图像中检测出人体。
实验表明,使用HOG特征提取方法及本发明的Bandelet联合特征提取方法, 均能快而准确的从被测人体图像中检测出人体。但本发明的特征提取方法具有更 高的分类正确率,使其具有更高的人体检测正确率,非常适合于静态图像的人体 检测。
1权利要求
1. 一种基于第二代条带波Bandelet变换的人体检测方法,包括如下过程(1)以INRIA数据库为基础,通过负样本的自举操作获取大量的负样本,并与数据库中其它的正样本一起构成训练样本集;(2)提取训练样本集中所有训练样本的Bandelet联合特征组成一个样本特征集,利用AdaBoost算法进行分类训练,得到一个分类器;(3)输入任意大小的被测图像,计算其Bandelet系数矩阵;(4)根据所得的Bandelet系数矩阵,计算被测图像中所有扫描窗口的Bandelet联合特征,输入到步骤(2)中所得的分类器中进行分类;(5)根据分类器输出的分类结果,利用主窗口合并法,对所有分为人体的扫描窗口进行组合,形成最终的人体检测结果。
2. 根据权利要求1所述的人体检测方法,其中过程(l)按如下过程进行 (2a)先从INRIA数据库中任取一部分正样本与负样本,分别使用HOG特征及Bandelet联合特征进行特征提取,并使用AdaBoost算法进行分类训练,得到两个初始分类器;(2b)分别使用这两个初始分类器,测试INRIA数据库中的其余非人体图像, 从错分的扫描窗口图像中随机挑选一部分负样本与当前负样本组成新的负样本 集,并重复特征提取、训练分类器、测试非人体图像及组成新的负样本集这一过 程,直至收集到与INRIA数据库中正样本个数相同的最终负样本;(2c)从所得的最终负样本中去除重复的负样本,得到最终的负样本集;(2d)将最终的负样本集加上INRIA数据库中的正样本集,得到最终的训练样 本集,共有6246个样本,并将其中的2416个正样本与1877个负样本作为训练 集,1132个正样本与821个负样本作为测试集,样本的大小均为128X64像 素。
3. 根据权利要求l所述的人体检测方法,其中过程(2)所述的提取训练样本 集中所有训练样本的Bandelet联合特征组成一个样本特征集,按如下过程进行-(3a)对每个训练样本做层数为l的二维离散正交小波变换; (3b)将二维离散正交小波变换后的样本图像进行4X4像素的二进剖分,并将 每个4 X 4像素的小块作为 一个Bandelet块;(3c)计算每个Bandelet块在各方向上的投影误差,并按最小Lagrange函数法,求取一个最优的投影误差排序索引;(3d)根据每个Bandelet块的最优排序索引,将其上的二维离散小波变换系数进行重排序,得到对应的一维信号;(3e)将每个一维信号作一维小波变换,并将对应的一维小波变换系数,按Mallet法则重新组合为二维形式,作为对应Bandelet块的Bandelet系数,由此得到一个Bandelet系数矩阵;(3f)计算每个Bandelet块中Bandelet系数的能量、熵、均值及最大值这几类统计值,并按对应Bandelet块的位置构成一个统计值矩阵,将Bandelet系数矩阵及统计值矩阵一起作为该训练样本最终的Banddet联合特征矩阵;(3g)将所有训练样本的Bandelet联合特征矩阵,构成一个训练样本特征集。
4.根据权利要求l所述的人体检测方法,其中过程(3)所述的输入任意大小的被测图像,计算其Bandelet系数矩阵,按如下过程进行(4a)输入任意大小的被测图像,先将其按一定比例縮放,然后按下式截去右边小于8个像素与下边小于16个像素的多余部分X=pC/8|X8 Y=|Y/16|X16其中,X为被测图像在水平方向的像素值,Y为被测图像在垂直方向的像素值,ll表示截尾取整;(4b)对截去处理过的被测图像进行二维离散正交小波变换,小波变换的层数为l;(4c)将二维离散正交小波变换后的被测图像进行4X4像素的二进剖分,并将每个4 X 4像素的小块作为 一个Bandelet块;(4d)计算每个Bandelet块在各方向上的投影误差,并按最小Lagrange函数法,求取一个最优的投影误差排序索弓I;(4e)根据每个Bandelet块的最优排序索引,将其上的二维离散小波变换系数进行重排序,得到对应的一维信号;(4f)将每个一维信号作一维小波变换,并将对应的一维小波变换系数,按Mallet法则重新组合为二维形式,作为对应Bandelet块的Bandelet系数,将所有Bandelet块的Bandelet系数构成该被测图像的Bandelet系数矩阵。
5. 根据权利要求l所述的人体检测方法,其中步骤(4)所述的根据所得的Bandelet系数矩阵,计算被测图像中所有扫描窗口的Bandelet联合特征,按如下过程进行(5a)将被测图像左上角的一个样本大小的区域作为第一个扫描窗口,每向右平移8个像素或向下平移16个像素作为一个新的扫描窗口,得到一组扫描窗口;(5b)设裁剪后的被测图像大小为XxY,某扫描窗口在被测图像中的位置为(x, y),则取Bandelet系数矩阵中(x/2, y/2) 、 (x/2+X/2, y/2) 、 (x/2, y/2+Y/2)禾卩(x/2+_X/2,y/2+Y/2)四个位置上大小为l/4样本的区域上的值,作为该扫描窗口上的Bandelet系数;(5c)计算每个扫描窗口上Bandelet系数的能量、熵、均值及最大值这几类统计值,并将这些统计值与Bandelet系数一起作为对应扫描窗口的Bandelet联合特征。
6. 根据权利要求l所述的人体检测方法,其中步骤(5)按如下过程进行(6a)根据分类器输出的扫描窗口判断被测图像中是否包含人体,若分类器输出的扫描窗口没有人体窗口,则被测图像中不包含人体,否则,从所有的人体窗口中,找出其分类器分数最高的作为主窗口;(6b)对主窗口与其他人体窗口进行组合判定,当其他人体窗口处于主窗口周围且重叠小于l/2时,判为不组合,否则进行组合;(6c)将主窗口与所有需要组合的人体窗口的边界均值作为一个检测结果;(6d)删除主窗口及所有参与组合的人体窗口 ;(6e)若还有剩余的人体窗口,则再找出其中分类器分数最高的作为主窗口,并重复6b-6d的操作;(6Q在被测图像上标出所有检测结果,作为该被测图像最终的人体检测结果。
全文摘要
本发明提出了一种基于第二代条带波变换的人体检测方法。其过程为通过负样本的自举操作获取大量的负样本,并与数据库中其它的正样本一起构成训练样本集;利用Bandelet变换,计算所有训练样本的Bandelet联合特征组成一个训练样本特征集;利用AdaBoost算法,对样本特征集进行分类训练,得到一个分类器;输入任意大小的被测图像,计算其Bandelet系数矩阵;根据该系数矩阵,计算被测图像中所有扫描窗口的Bandelet联合特征;将所有扫描窗口的Bandelet联合特征输入之前所得的分类器进行分类;根据分类结果,利用主窗口合并法,对所有分为人体的扫描窗口进行组合,形成最终的人体检测结果。本发明具有检测正确率高的优点,可用于对图像中的人体及其它复杂目标的分类与检测。
文档编号G06K9/00GK101520839SQ20091002172
公开日2009年9月2日 申请日期2009年3月30日 优先权日2009年3月30日
发明者星 伍, 岳立川, 李阳阳, 杨淑媛, 焦李成, 爽 王, 红 韩 申请人:西安电子科技大学