具体实施方式
参照图1,本发明的具体实施如下:
步骤一,提取CVC-02数据库中所有训练样本图像的有向梯度直方图特征H,并计算该有向梯度直方图特征H的核矩阵KH。
(1a)提取所有训练样本图像的有向梯度直方图特征H;
(1a1)对第i幅训练样本图像进行边缘检测,得到图像中每个像素的边缘强度和边缘方向,其中,i∈[1,n],n为训练样本数;
(1a2)将图像分成大小为8×8互不重叠的格子,将0~180度分成九个方向通道,将每个格子内的像素对其所属的通道投票,投票的权值为该像素的边缘强度;
(1a3)将相邻的四个格子组成一个块,且每个块之间有的重叠,对每个块进行归一化;
(1a4)将归一化后的所有块串接起来,构成第i幅训练样本的有向梯度直方图特征Hi;
(1a5)重复步骤(1a1)-(1a4),提取所有训练样本图像的有向梯度直方图特征H:
H={H1…,Hi…,Hn},i∈[1,n],n为训练样本数;
(1b)使用核函数计算所有训练样本图像的有向梯度直方图特征H的核矩阵KH;
常用的核函数有:线性核函数,多项式核函数,径向基核函数,Sigmoid核函数和高斯核函数。本发明中使用多项式核函数:计算所有训练样本图像的有向梯度直方图特征H的核矩阵KH,其中Hp和Hq分别为均匀局部二值模式特征H的第p列向量和第q列向量,p∈[1,n],q∈[1,n],符号T表示向量的转置,指数d=3,第一个系数γ=1,第二个系数c=0。
步骤二,提取CVC-02数据库中所有训练样本图像的均匀局部二值模式特征U,并计算该均匀局部二值模式特征U的核矩阵KU。
(2a)提取CVC-02数据库中所有训练样本图像的均匀局部二值模式特征U;
(2a1)将CVC-02数据库中第j幅训练样本分割为8×8像素大小的块,j∈[1,n],n为训练样本数;
(2a2)将每个块的左上角的一个大小为3×3像素的区域作为一个窗口,向右平移1个像素或向下平移1个像素作为一个新的窗口,由此得到一组窗口;
(2a3)对于其中的任意一个窗口W,以位于窗口W中心的像素值gc为阈值,用中心像素值gc与窗口W中其余的8个像素值依次作比较,若位于中心的像素值gc大于与它相邻的像素值,则标记为1,否则标记为0,这样得到一组8位的二进制码作为窗口W的编码;
(2a4)将块中满足条件:0与1之间转换次数小于等于2的二进制码转换成十进制数,作为块的编码值;
(2a5)将每个块中的编码值进行直方图统计,并归一化,得到每个块的均匀局部二值模式特征;
(2a6)将所有块的均匀局部二值模式特征级联后,作为第j幅图像的均匀局部二值模式特征Uj,j∈[1,n],n为训练样本数;
(2a7)重复步骤(2a1)-(2a6),提取所有训练样本图像的均匀局部二值模式特征U,其中U={U1…,Uj…,Un},j∈[1,n],n为训练样本数;
(2b)按照公式:计算得到所有训练样本图像的均匀局部二值模式特征U的核矩阵KU,其中Up和Uq分别为均匀局部二值模式特征U的第p列向量和第q列向量,p∈[1,n],q∈[1,n],符号T表示向量的转置,指数d=3,第一个系数γ=1,第二个系数c=0。
步骤三,利用多核学习MKL算法对步骤一得到的有向梯度直方图特征H的核矩阵KH和步骤二得到的均匀局部二值模式特征U的核矩阵KU进行分类训练,得到用于检测的多核分类器。
本发明中使用的多核学习MKL算法来自文献“MoreGeneralityinEfficientMultipleKernelLearning”,Proceedingsofthe26thInternationalConferenceonMachineLearning,Montreal,Canada,2009,Pages1065-1072。
步骤四,确定初步人体窗口。
(4a)将输入的CVC-02数据库中的待检测图像按比例α进行缩放,α∈[0.5,2];
(4b)将缩放后的被检测图像左上角的一个大小为128×64像素的区域作为第一个扫描窗口,每向右平移8个像素或向下平移8个像素作为一个新的扫描窗口,由此得到一组扫描窗口,提取每个扫描窗口的有向梯度直方图特征H1和均匀局部二值模式特征U1;
(4c)计算每个扫描窗口的有向梯度直方图特征H1的核矩阵KH1和均匀局部二值模式特征U1的核矩阵KU1;
(4d)将每个扫描窗口的有向梯度直方图特征H1的核矩阵KH1和均匀局部二值模式特征U1的核矩阵KU1输入到步骤三得到的多核分类器中,得到每个扫描窗口的分类器分数;
(4d)将分类器分数大于0的所有扫描窗口标记为初步人体窗口;
步骤五,利用景深信息从步骤四得到的初步人体窗口中去除分类器分数大于0的背景窗口,得到最终的人体窗口。
(5a)将步骤四得到的初步人体窗口对应到相应的深度图像上,深度图像由CVC-02数据库提供;
(5b)对每个初步人体窗口的深度图像进行直方图统计,找出最大百分比pm的深度值dm,在深度图像中找出比深度值dm小的所有深度值的最大深度值dm1,在深度图像中找出比深度值dm大的所有深度值的最小深度值dm2;
(5c)计算最大百分比的深度值dm,最大深度值dm1及最小深度值dm2所占的百分比和s1:s1=pm+pm1+pm2,
其中pm1为最大深度值dm1在深度图像中占的百分比,pm2为最小深度值dm2在深度图像中所占的百分比;
(5d)将步骤(5c)得到的百分比和s1小于阈值th=45%的初步人体窗口删除,保留剩余的初步人体窗口,作为最终的人体窗口;
步骤六,对最终的人体窗口进行组合,形成最终的人体检测结果。
(6a)从最终的人体窗口中,找出分类器分数最高的窗口作为主窗口;
(6b)将与主窗口重叠大于的人体窗口和主窗口的边界进行加权组合,得到加权组合后的组合窗口;
在参与组合的人体窗口中,分类器分数最高的人体窗口的边界bmax的权值为0.7,分类器分数最低的人体窗口的边界bmin的权值为0.3,根据公式:
bz=0.7bmax+0.3bmin计算得到加权组合后的组合窗口的边界bz;
(6c)保留步骤(6b)得到的加权组合后的组合窗口,将步骤(6b)中参与组合的人体窗口从步骤(6a)中的最终的人体窗口中删除;
(6d)若将步骤(6b)中参与组合的人体窗口从步骤(5d)得到的最终的人体窗口中删除后,还有人体窗口剩余,则再从剩余的人体窗口中找出分类器分数最高的人体窗口作为主窗口,并重复步骤(6b)-(6c);
(6e)在被检测人体图像上标出所有加权组合后的组合窗口,作为被测图像最终的人体检测结果,采用矩形框表示检测结果,被检测出的人体处于矩形框内。
本发明的效果可以通过以下仿真实验得到验证:
1.实验条件:
1)仿真实验条件设置:本发明的仿真实验在Matlab2009a上编译完成,执行环境为Windows框架下的HP工作站。实验所需的训练样本和测试样本均取自于CVC-02数据库。训练样本包括2032个正样本与15300个负样本,测试样本包括1140个正样本与15000个负样本,正样本与负样本图像的大小均为128×64像素,图2给出了其中部分正样本图像,图3给出了其中部分负样本图像。
2)仿真内容及结果分析
仿真一:分别使用本发明和现有的有向梯度直方图HOG特征的方法对分类器的性能进行对比,在假阳率FPPW=10-4时,分类器的正确率如表1所示。
表1.分类器性能
从表1中可以看出,本发明的分类器性能高于传统的有向梯度直方图HOG特征提取方法的分类器性能,在分类正确率上有了较大的提高,更有利于分类器的分类。
仿真二:使用本发明方法与直接串接两种不同的特征的融合方法进行分类器性能的对比,在假阳率FPPW=10-4时,分类性能如表2所示。
表2.分类器性能
|
HOG+ULBP |
本发明 |
正确率 |
87% |
90.5% |
从表2可以看出,本发明的分类效果好于直接串接不同特征的融合方法,且直接串接不同的特征使得串融合后的特征矩阵比较大,占用空间大,加大运算量。
仿真三:使用本发明方法与现有的方法对同一幅来自CVC-02数据库的图像进行人体检测,检测结果如图4所示。其中,图4(a)为本发明得到的人体检测结果,图4(b)为现有方法的检测结果。从图4中可以看出本发明中利用景深洗洗可以去除虚景,更准确的检测出了人体。
综上,本发明采用多核学习算法来融合两种不同的特征,能更加丰富的表征人体信息,提高了分类器的性能,并且利用景深信息来去除背景窗口,使得人体检测更加准确。