快速高效的行人检测方法
技术领域
本发明涉及图像处理技术领域,尤其是快速高效的行人检测方法。
背景技术
传统的行人检测框架通过对数据集提取特征然后用分类器训练得到行人检测器,在检测阶段将需要检测的图片作为检测器的输入,最后输出检测结果。
BING特征通过对图像进行缩放,然后对缩放后的图像求梯度,用训练好的BING模板对梯度图像的每个像素点进行卷积,当8×8的模板对每一个像素点进行卷积时需要进行64次乘法和63次加法运算,这对于检测的过程来说是非常耗时的操作。
K-Means算法是一种常见的聚类算法。它先随机选择一些初始点作为聚类中心,然后计算每个样本点与各个聚类中心的距离,将它归为距离某个中心点最近的类别。当样本初次聚类完成后,按照上述方法重新计算每个类别的中心点,直到类的中心点达到稳定,最终将这个点作为所属类别的质心。K-Means算法需要经过多次迭代,收敛速度是较缓慢的,并且随机选择初始点对聚类的效果和收敛速度都是有很大影响的。
发明内容
本发明所要解决的技术问题是提供一种快速高效的行人检测方法,它检测的速度获得极大提高。
本发明是这样实现的:快速高效的行人检测方法,包括训练阶段和检测阶段;在训练阶段:
1)创建数据集,对创建的数据集提取特征,训练SVM行人检测模型,得到SVW判别模型;
2)创建数据集,采用K-Means++算法优化训练样本,提取HWEBING特征,训练HWEBING似物性模型,获得HWEBING检测模型;
3)输入检测图像,加载HWEBING检测模型和SVW判别模型;
在检测阶段:1)通过提取HWEBING特征获得似物性窗口,采用非极大值抑制减少窗口数目;
2)提取候选行人窗口的HOG和MLBP特征;
3)采用SVM分类器分类决策,得到检测结果。
所述的采用K-Means++算法优化训练样本具体是,先使用K-Means++算法优化训练样本,对样本进行了筛选提高了检测率;HWEBING算法在训练阶段建立Hash表,将卷积的结果提前放到Hash表中保存,在检测阶段需要卷积时直接查找Hash表来得到卷积的结果;最后在计算窗口的似物性得分时,增强了结构复杂物体的窗口得分。
所述的K-Means++算法,先将样本分为K类,然后生成随机的数据集,在这些数据集中任意选择一个样本点作为第一个类的中心点,然后按照概率选择下一个聚类中心,概率如公式(1)所示,其中Di为第i个样本点和距离它最近中心的距离平方,sum(Di)为所有最近距离的和,最后重复此操作直到找到K个聚类中心点,在找到K个类的中心点以后再执行K-Means算法;
所述的Hash表的建立是,通过对第一级SVM训练得到的8*8的模型的每一行前四列和后四列分别建立Hash表,则每个模型对应16个Hash表;每个梯度幅值只取前四位,建立Hash表的过程如下所示,其中h(x,y)为哈希表,x表示前四位或者后四位,x∈{0,1},y为行数,y∈{0,7},w(x,y)为(x,y)处的模型值。
1)假设i=0,b1=i&0xf,b2=(i>>4)&0xf,b2=(i>>8)&0xf,b2=(i>>12)&0xf;
2)对于y∈{0,7},计算h(x,y)的值如式(2)和(3)所示:
h(0,y)=b1*w(y,3)+b2*w(y,2)+b3*w(y,1)+b4*w(y,0) (2)
h(1,y)=b1*w(y,7)+b2*w(y,6)+b3*w(y,5)+b4*w(y,4) (3)
3)i每次加1,循环上述过程直到i≥216时建表完成。
在建立Hash表之后,卷积时查找表就能得到结果;但是当查找Hash表时,需要创建一个矩阵来实现快速拼接表键;这个矩阵中(x,y)处的值是原来梯度幅值图(x,y)处的后面8个值的前四位。
所述的通过提取HWEBING特征获得似物性窗口,需要采用窗口增强,具体方法为:针对大小为2m×2n的窗口,利用比它小一半的窗口的得分对它进行增强,采用的公式如(4)所示:
其中
是滤波得分图在(x,y)处窗口大小为2
m×2
n的得分值,
为
增强后的得分值,A和B分别为对(x+i,y)和(x,y+i)处得分增强的系数。
所述的非极大值抑制包括
1)将窗口的得分按照从大到小的顺序排列,选取得分最高的点作为建议窗口,然后把其它窗口和此得分最高的窗口计算面积重叠比,当重叠比达到阈值就将这个窗口去除;然后重复此过程,直到所有的窗口被计算完;
2)对滤波得分图进行均值滤波,当滤波后某点的值变小达到阈值,将它保留,反之将它去;然后再将均值滤波后的值从大到小排列,设置一个阈值t,把以当前窗口为中心的t*t区域内的其它窗口去除。
所述的MLBP的阈值计算公式如式(5)所示:
其中,p为块内邻域点的个数,Max为块内邻域的最大灰度值,Min为块内邻域的最小灰度值,Lp为p点的灰度值,Lcenter为块的中心像素值;
MLBP的值为如式(6)所示:
其中,Li为i点的灰度值,Ln为式(13)得到的阈值,当i>0,t(i)=1,i≤0,t(i)=0;
所述的MLBP特征提取的流程图包括如下步骤:
1)图像分块
将一幅图像分为许多个大小相同的块,由于按照一定的步长对整幅图像进行逐步的移动,所以块与块之间定会存在重叠部分。对于一幅大小为x×y像素的图像而言,若规定块的宽高分别为width和height,则水平上滑动的块的个数为xn,垂直上滑动的块的个数为yn,stride为块移动的步长,计算的公式如式(7)所示:
2)统计块的直方图
根据上述的MLBP计算方法先计算图像每个块中的所有像素点的MLBP值,然后将MLBP模式按照ULBP的映射方法映射到59维的bin中,然后统计块内像素点对bin的加权投票,每次的投票加一;
3)直方图归一化
在得到图像中每个块的直方图之后,需要对块的直方图进行归一化;
4)直方图级联
将一幅图像划分为若干个块之后会得到每个块的直方图,再将所有块归一化后的直方图进行级联,最终得到的直方图为xn×yn×59维;若图像的大小为64×128,每个块的大小为16*16,块滑动的步长为8个像素,所以水平方向的滑动块数为7个,垂直方向的滑动的块数为15个,总共块的个数为7×15=105个块,所以最终的维数为105×59=6195维;
HOG特征描述图像的边缘信息,LBP特征描述图像的纹理信息,它们在一定程度是互补的。对LBP特征改进的MLBP特征能够更好地提高LBP特征的性能,将HOG特征和MLBP特征结合可以进一步地提高检测率。
所述的直方图归一化的方法为L2-Norm,归一化使得MLBP特征更具有鲁棒性。
与现有技术相比,本发明在传统的行人检测框架上做出了改进,在提取特征之前提出了一种基于BING(Binarized Normed Gradients)特征的改进算法HWEBING(Hash andWindow Enhancement of Binarized Normed Gradients)对图像进行预检测,预检测能够减少大量的非物体的窗口,筛选出可能是物体的候选窗口。然后在提取特征的过程中提出了一种基于均匀模式LBP改进的局部纹理特征MLBP(Mean of Local Binary Pattern)。因为均匀模式LBP在提取的过程中没有考虑到噪声的影响,并且也没有考虑到块的中心像素和邻域像素的突变,所以MLBP特征针对这点做出了改进。最后在使用HWEBING算法获得候选窗口后,在候选窗口上提取MLBP特征和HOG特征以提高检测率。本发明的MLBP特征的检测率比均匀模式LBP和基本模式LBP的检测率分别提高了3.5%和2.1%。并且相比传统的行人检测方法,本方法利用HWEBING算法对图片进行预检测后再提取HOG和MLBP特征比直接提取HOG和MLBP特征的速度提高了5.5倍。使用HWEBING算法与HOG-MLBP特征结合取得较好的行人检测效果。
附图说明
附图1为现有技术的行人检测框架;
附图2为本发明的行人检测框架;
附图3为本发明的窗口增强原理;
附图4为本发明的MLBP特征提取流程图。
具体实施方式
本发明的实施例:快速高效的行人检测方法,包括训练阶段和检测阶段;在训练阶段:
1)创建数据集,对创建的数据集提取特征,训练SVM行人检测模型,得到SVW判别模型;
2)创建数据集,采用K-Means++算法优化训练样本,提取HWEBING特征,训练HWEBING似物性模型,获得HWEBING检测模型;
3)输入检测图像,加载HWEBING检测模型和SVW判别模型;
在检测阶段:1)通过提取HWEBING特征获得似物性窗口,采用非极大值抑制减少窗口数目;
2)提取候选行人窗口的HOG和MLBP特征;
3)采用SVM分类器分类决策,得到检测结果。
所述的采用K-Means++算法优化训练样本具体是,先使用K-Means++算法优化训练样本,对样本进行了筛选提高了检测率;HWEBING算法在训练阶段建立Hash表,将卷积的结果提前放到Hash表中保存,在检测阶段需要卷积时直接查找Hash表来得到卷积的结果;最后在计算窗口的似物性得分时,增强了结构复杂物体的窗口得分。
所述的K-Means++算法,先将样本分为K类,然后生成随机的数据集,在这些数据集中任意选择一个样本点作为第一个类的中心点,然后按照概率选择下一个聚类中心,概率如公式(1)所示,其中Di为第i个样本点和距离它最近中心的距离平方,sum(Di)为所有最近距离的和,最后重复此操作直到找到K个聚类中心点,在找到K个类的中心点以后再执行K-Means算法;
所述的Hash表的建立是,通过对第一级SVM训练得到的8*8的模型的每一行前四列和后四列分别建立Hash表,则每个模型对应16个Hash表;每个梯度幅值只取前四位,建立Hash表的过程如下所示,其中h(x,y)为哈希表,x表示前四位或者后四位,x∈{0,1},y为行数,y∈{0,7},w(x,y)为(x,y)处的模型值。
1)假设i=0,b1=i&0xf,b2=(i>>4)&0xf,b2=(i>>8)&0xf,b2=(i>>12)&0xf;
2)对于y∈{0,7},计算h(x,y)的值如式(2)和(3)所示:
h(0,y)=b1*w(y,3)+b2*w(y,2)+b3*w(y,1)+b4*w(y,0) (2)
h(1,y)=b1*w(y,7)+b2*w(y,6)+b3*w(y,5)+b4*w(y,4) (3)
3)i每次加1,循环上述过程直到i≥216时建表完成。
在建立Hash表之后,卷积时查找表就能得到结果;但是当查找Hash表时,需要创建一个矩阵来实现快速拼接表键;这个矩阵中(x,y)处的值是原来梯度幅值图(x,y)处的后面8个值的前四位。
BING算法在计算窗口的得分时对于结构比较复杂的物体并不能给出完全正确的得分,如图3所示,人的上半身红色的衣服和下半身浅蓝色的裤子可能会被BING算法视做两个不同的物体,从而导致这两个部分的建议窗口得分较高。这两个部分中间衔接的梯度幅值相差太大,所以对于行人来说不一定可以形成较好的封闭轮廓,可能会导致蓝色窗口的得分会降低。
因此针对这一点本发明提出了窗口增强的方法。所述的通过提取HWEBING特征获得似物性窗口,需要采用窗口增强,具体方法为:针对大小为2m×2n的窗口,利用比它小一半的窗口的得分对它进行增强,采用的公式如(4)所示:
其中
是滤波得分图在(x,y)处窗口大小为2
m×2
n的得分值,
为
增强后的得分值,A和B分别为对(x+i,y)和(x,y+i)处得分增强的系数。
所述的非极大值抑制包括
1)将窗口的得分按照从大到小的顺序排列,选取得分最高的点作为建议窗口,然后把其它窗口和此得分最高的窗口计算面积重叠比,当重叠比达到阈值就将这个窗口去除;然后重复此过程,直到所有的窗口被计算完;
2)对滤波得分图进行均值滤波,当滤波后某点的值变小达到阈值,将它保留,反之将它去;然后再将均值滤波后的值从大到小排列,设置一个阈值t,把以当前窗口为中心的t*t区域内的其它窗口去除。
MLBP特征是对均匀模式LBP特征的改进,本方法分别提取了方形的MLBP特征(方形代表领域点在一个正方形区域)和圆形的MLBP特征(圆形代表领域点在一个圆形区域),在不增加ULBP计算的复杂度情况下,提高了LBP的性能。MLBP是通过改进ULBP的计算方法,ULBP是将每个区域的中心像素的灰度值作为一个阈值,然后再计算每个区域的邻域像素和阈值的差值,通过比较差值的大小得到一个二进制序列。这样计算的阈值没有考虑到中心像素与周围的邻域像素的突变情况,缺少平滑稳定性。而MLBP将图像分为多个块,先找到每个块中邻域像素的最大灰度值和最小灰度值,然后计算块内除去最值后的所有像素的均值,将这个均值作为每个块的阈值,然后再按照计算均匀模式LBP的方法计算块中每个点的MLBP值,再统计每个块的直方图,最后将所有块的直方图串联得到MLBP特征描述子。除去最大值和最小值减少了噪声对检测的影响。行人与背景在灰度值上是存在一些差异的,而且大部分的差异值是较大的,所以通过求取均值能增加阈值的稳定性。而中心像素对计算区域的LBP信息是比较重要的,所以通过加上中心像素的灰度能够更全面地描述局部区域的纹理信息。下面以3*3方形的小分块为例,计算MLBP值如图1所示:
表1为MLBP计算实例
所述的MLBP的阈值计算公式如式(5)所示:
其中,p为块内邻域点的个数,Max为块内邻域的最大灰度值,Min为块内邻域的最小灰度值,Lp为p点的灰度值,Lcenter为块的中心像素值;
MLBP的值为如式(6)所示:
其中,Li为i点的灰度值,Ln为式(13)得到的阈值,当i>0,t(i)=1,i≤0,t(i)=0;
所述的MLBP特征提取的流程图包括如下步骤:
1)图像分块
将一幅图像分为许多个大小相同的块,由于按照一定的步长对整幅图像进行逐步的移动,所以块与块之间定会存在重叠部分。对于一幅大小为x×y像素的图像而言,若规定块的宽高分别为width和height,则水平上滑动的块的个数为xn,垂直上滑动的块的个数为yn,stride为块移动的步长,计算的公式如式(7)所示:
2)统计块的直方图
根据上述的MLBP计算方法先计算图像每个块中的所有像素点的MLBP值,然后将MLBP模式按照ULBP的映射方法映射到59维的bin中,然后统计块内像素点对bin的加权投票,每次的投票加一;
3)直方图归一化
在得到图像中每个块的直方图之后,需要对块的直方图进行归一化;
4)直方图级联
将一幅图像划分为若干个块之后会得到每个块的直方图,再将所有块归一化后的直方图进行级联,最终得到的直方图为xn×yn×59维;若图像的大小为64×128,每个块的大小为16*16,块滑动的步长为8个像素,所以水平方向的滑动块数为7个,垂直方向的滑动的块数为15个,总共块的个数为7×15=105个块,所以最终的维数为105×59=6195维;
HOG特征描述图像的边缘信息,LBP特征描述图像的纹理信息,它们在一定程度是互补的。对LBP特征改进的MLBP特征能够更好地提高LBP特征的性能,将HOG特征和MLBP特征结合可以进一步地提高检测率。
所述的直方图归一化的方法为L2-Norm,归一化使得MLBP特征更具有鲁棒性。