[0036] 下面结合附图,以DPM(Deformable Parts Model)+LatentSVM(Latent Surpport Vector Machine)的行人检测算法,城市道路红外车载场景为例,对本发明的具体实施方案作进一步详细描述。其具体步骤流程如图1所示:
[0037] 选择N张(N与所选样本的代表性有关,一般需要200张以上)车载城市道路场景中的红外样本图片。要求这些样本包含各种热干扰以及不同距离行人,具体为:这些红外图片不仅包含10-60米等不同距离的行人,还包括各种热干扰,如空调外机箱、热光源、汽车尾部以及白天吸收阳光温度后温度升高的物体等。
[0038] 步骤1:统计出N个红外图像直方图的第一个波谷均值T0。
[0039] 以灰度级为直方图横坐标,每个灰度级出现的次数作为直方图的纵坐标,统计出每个红外图像的灰度直方图(满足双峰或多峰特性),找到灰度直方图的第一个波谷的灰度值Troughi,并对所有第一个波谷的灰度值取平均记为T0。
[0040]
[0041] 步骤2:计算自适应分割阈值θ。
[0042] 2-1通过第一个波谷均值T0计算出加权函数Fwtd=α(T1-T0),
[0043] 其中T1为灰度值高于T0的统计平均值,具体的: α为微调因子,0.9<α<1.1;
[0044] 2-2扫描所有灰度级,求出满足类间方差最大化时的分割阈值θσ;
[0045] 2-3计算出自适应分割阈值θ=θσ+Fwtd。
[0046] 所述的分割阈值θσ求解具体如下:记待分割图像(大小记为W*H)各灰度级出现的次数和概率分别记为Ni、Pi,则 灰度级θi可以将图像像素分为C0=[0,θi]和C0=[θi,255]两类,则两类的概率分别为 和ω1=1-ω0,两类的平均灰度分别为和 其中 使用准则函数Fσ(θ)=ω0ω1(μ0-μ1)2,扫描所有灰度级[0,1,2…255],找到使Fσ(θ)达到最大值的灰度级即为θσ。
[0047] 步骤3:使用适应分割阈值θ对待分割图像进行二值化处理。
[0048] 3-1扫描所有像素点,如果像素点的灰度级大于θ,则灰度级置为1,此时该像素点为前景目标疑似区域的像素点;如果像素点的灰度级小于等于θ,则灰度级置为0,此时该像素点为背景像素点,将此时的处理结果记为RSegmentation。
[0049] 此时,RSegmentation温度高的区域得到了高亮突出,方便后续的处理,且这些区域不仅包含行人还可能包含一些温度较高的热干扰。
[0050] 步骤4:对RSegmentation进行水平投影积分和垂直投影积分分析,滤除面积较小的热点干扰。
[0051] 4-1以非零像素点的累加值作为直方图纵坐标值,像素坐标为直方图横坐标求水平投影积分和垂直投影积分的直方图,具体计算如下:
[0052] 和
[0053] 其中,(i)为水平投影积分直方图纵坐标值,H(j)为垂直投影积分直方图纵坐标值,RF(i,j)是坐标为(i,j)的像素点的灰度值;
[0054] 4-2再以水平投影积分和垂直投影积分的直方图的纵坐标值进行过滤,去除面积非常小的零碎热点干扰,得到的结果记为RPrcjection,具体过滤如下:
[0055] 如果坐标为(i,j)的像素点的水平投影直方图纵坐标值H(i)<β,或者垂直投影积分直方图纵坐标值H(j)<β,则该像素点为热点干扰。其中β与提取目标的大小有关,一般取值范围是2-8。
[0056] 步骤5:根据满足的行人先验性知识滤除面积较大的热干扰,将得到的结果记为RRule。
[0057] 所述的行人先验知识包括高比宽范围、宽比高范围、面积值范围等。
[0058] 对RPrcjection中的高亮区域分别进行长宽比和面积大小的检查,滤除前方车辆尾部、空调外机箱等大热点干扰。如果某个区域的长宽比大于h或者小于w(h和w与提取目标的形状相关,目标为行人时一般h取2,w取1),则认为该区域为热干扰区域,有效滤除前方车辆尾部、空调外机箱等大热点干扰,直接将该区域移除疑似区域,将最后得到的结果记为RRule。
[0059] 步骤6:对RRule的每个区域进行扩展和融合。
[0060] 每个区域向上下左右四个方向分别扩展e个像素(e与要求检测到的最小目标的像素高有关,一般取值为2-8),然后检查任意两个区域之间的距离(如果有重叠认为距离为0),如果距离小于等于m个像素(m与应用场景有关,一般取1-3)则直接合并,否则不作处理;
将扩展和融合得到的区域记为RFinal,作为最终的行人疑似区域输出。
[0061] 步骤7:对RFinal中的每个疑似区域进行缩放。如果某个区域长或者宽小于检测窗的长宽,直接缩放至W×(H+)或者(W+)×H;如果某个区域长宽均大于检测窗的长宽,则以σ(σ为大于1的数,综合考虑检测精度与速度一般取值1.05)进行缩放构建金字塔,直至长等于H或者宽等于W停止,将得到的结果记为RPyramid。
[0062] 步骤8:将RPyramid送给主体检测算法DPM+LatentSVM进行滑窗检测。使用大小为W×H的检测窗,按照以左至右从上自下移动步长s像素(s为单元块的整数倍,一般取8或者16)的方式进行滑窗检测。如果检测窗被判断为行人,则将该检测窗左上角的坐标点和所在层的缩放因子记录到VResult;否则不作处理。
[0063] 步骤9:对VResult保存的结果进行融合输出,标定出行人准确位置。按照VResult保存的每个检测窗的位置和缩放因子将其还原到原图中,如果两个检测窗的重叠面积大于50%,保留置信度(DPM+LatentSVM返回的值)较高的检测窗,最终得到的检测窗即为行人的准确位置。