具体实施方式
参照图1,本发明的具体实施步骤如下:
步骤一,提取CVC-02数据库中所有训练样本图像的尺度旋转不变SIFT特征点D。
(1a)将第j幅训练样本分割为16×16像素大小的块,提取每个块的SIFT特征点作为第j幅图像的SIFT特征点Dj,其中,Dj=[d1…,dt…,dm]T,t∈[1,m],m为从第j幅图像中提取的SIFT特征点维数,符号T表示向量的转置;
(1b)按照步骤(1a)提取所有训练图像的尺度旋转不变SIFT特征点D,其中Dj={D1…,Dj…,Dn},j∈[1,n],n为训练样本数。
步骤二,对所有训练样本图像的尺度旋转不变SIFT特征点D进行非负矩阵分解,得到一个系数矩阵H和一个基矩阵W。
(2a)随机生成一个大小为m×r的非负矩阵,作为基矩阵W的初始值W0,其中r为设定的值,r的取值要满足(m+n)r<mn;
(2b)随机生成一个大小为r×n的非负矩阵,作为系数矩阵H的初始值H0;
(2c)根据已知的基矩阵W,系数矩阵H和步骤一中得到的所有训练样本图像的尺度旋转不变SIFT特征点D,更新系数矩阵H和基矩阵W:
(2c1)由公式:得到第k次更新后的系数矩阵H的值为Hk,其中,符号T表示矩阵的转置,Hk-1表示第k-1次更新后的系数矩阵H的值,k为迭代次数,k=1,2,…,N,N为最大迭代次数;
(2c2)由公式:得到第k次更新后的基矩阵W的值为Wk,其中,符号T表示矩阵的转置,Wk-1表示第k-1次更新后的系数矩阵W的值;
(2c3)根据步骤(2c1)得到的第k次更新后得到的系数矩阵H的值Hk和步骤(2c2)得到的第k次更新后的基矩阵W的值Wk,计算目标函数F1=||D-WkHk||2,其中,符号||·||表示对矩阵取二范数。
(2d)重复步骤(2c),直至目标函数F1的值小于设定的阈值TR=10-8或k达到最大的迭代次数N=1000。
步骤三,将基矩阵W按照施密特正交化法进行正交化,得到正交化后的正交矩阵Q。
(3a)令:b1=w1,得到第1个中间变量b1,w1为基矩阵W的第1列向量;
(3b)由公式:得到第2个中间变量b2,w2为基矩阵W的第2列向量;
(3c)按照公式: 计算,得到第f个中间变量bf,f∈[3,r],r为基矩阵W的列数,wf为基矩阵W的第f列向量,bf-1为第f-1个中间变量;
(3d)将得到的r个中间变量按照公式:进行单位化,得到正交矩阵Q的第e列向量qe,be为第e个中间变量,e∈[1,r],符号||·||表示对向量取二范数;
(3e)将得到的列向量qe组合得到正交矩阵Q={q1…,qe…,qr},e∈[1,r]。
步骤四,将正交矩阵Q转置后与训练样本的尺度旋转不变SIFT特征点D相乘,得到训练样本的特征F。
根据步骤三得到的正交矩阵Q和步骤一中得到的所有训练样本图像的尺度旋转不变SIFT特征点D,按照公式:F=QTD计算得到训练样本的特征F,其中,符号T表示矩阵的转置。
步骤五,使用支持向量机SVM分类器对所得到的训练样本的特征F进行分类训练,得到最终的检测分类器。
步骤六,从CVC-02数据库或INRIA数据库中提取出待检测的图像,输入到步骤五得到的检测分类器中,检测出人体。
(6a)将输入的CVC-02数据库或INRIA数据库中的待检测图像按比例α进行缩放,α∈[0.5,2];
(6b)将缩放后的被检测图像左上角的一个大小为128×64像素的区域作为第一个扫描窗口,每向右平移8个像素或向下平移8个像素作为一个新的扫描窗口,由此得到一组扫描窗口,提取每个窗口的尺度旋转不变SIFT特征点Dt;
(6c)将步骤(3)中得到的正交矩阵Q转置后与步骤(6b)中提取的扫描窗口的尺度旋转不变SIFT特征点Dt相乘,得到扫描窗口的特征Ft;
(6d)将得到的扫描窗口的特征Ft输入到步骤(5)得到的检测分类器中,得到各个扫描窗口的分类器分数;
(6e)根据扫描窗口的分类器分数判断被测图像中是否包含人体,若分类器输出的扫描窗口含有人体,则从所有的含有人体的扫描窗口中,找出分类器分数最高的扫描窗口作为主窗口;
(6f)将与主窗口重叠大于的人体窗口和主窗口的边界进行加权组合,得到加权组合后的组合窗口;
在参与组合的人体窗口中,分类器分数最高的人体窗口的边界bmax的权值为0.7,分类器分数最低的人体窗口的边界bmin的权值为0.3,根据公式:bz=0.7bmax+0.3bmin计算得到加权组合后的组合窗口的边界bz;
(6g)保留步骤(6f)得到的加权组合后的组合窗口,将步骤(6f)中参与组合的人体窗口从步骤(6d)中的扫描窗口中删除;
(6h)若将步骤(6f)中参与组合的人体窗口从步骤(6d)中的扫描窗口中删除后,还有人体窗口剩余,则再从剩余的人体窗口中找出分类器分数最高的人体窗口作为主窗口,并重复步骤(6f)-(6g);
(6i)在被检测人体图像上标出所有加权组合后的组合窗口,作为被测图像最终的人体检测结果,采用矩形框表示检测结果,被检测出的人体处于矩形框内。
本发明的效果可以通过以下仿真实验得到验证:
1)仿真实验条件设置:本发明的仿真实验在Matlab2009a上编译完成,执行环境为Windows框架下的HP工作站。实验所需的训练样本和测试样本均取自于CVC-02数据库。训练样本包括2032个正样本与15300个负样本,测试样本包括1140个正样本与15000个负样本,正样本与负样本图像的大小均为128×64像素,图2给出了其中部分正样本图像,图3给出了其中部分负样本图像。
2)仿真内容及结果分析
仿真一:分别使用本发明和现有的有向梯度直方图HOG特征提取方法对分类器的性能进行对比,在r=1000,假阳率FPPW=10-4时,分类器的正确率如表1所示。
表1.分类器性能
从表1可以看出,本发明的分类器性能高于现有的有向梯度直方图HOG特征提取方法的分类器性能。并且,本发明提取的特征维数为1000,而有向梯度直方图HOG的特征维数为3780,本发明所提出的特征提取方法特征维数较小,降低了数据运算量。
仿真二:使用本发明方法对INRIA数据库中的图像进行检测,检测结果如图4所示。从图4可以看出本发明的方法能够在光照不均匀,背景复杂,人体姿势存在变化及存在部分遮挡的情况下将人体检测出来。
仿真三:使用本发明方法对CVC-02数据库中的图像进行检测,检测结果如图5所示。从图5可以看出本发明的方法能够在光线较暗及存在部分遮挡的情况下将人体检测出来。
综上,本发明在降低提取的图像特征维数的同时,提高了特征的表达能力,同时本方法能够在光照不均匀,光线较暗,背景复杂,人体姿势存在变化及存在部分遮挡的情况下将人体检测出来。从而使本方法非常适合于图像中的人体检测。