2.2 SVM分类器的训练和人头检测
人头检测的分类器选择高斯内核的支撑向量机(SVM)。SVM分类器的训练分两次进行,第一次是使用人头居中的正样本和从不包含人头对象的图像(源负样本)中取样得到的负样本中训练出基本分类器。第二次是采用基本分类器对所有源负样本进行密集扫面检测,将其中检测错误的子图像归为困难负样本,然后将之前的正样本和负样本与困难样本一起对基本分类器进行二次训练。在对源负样本进行密集扫描时,不仅扫描步长要小,而且还要加入尺度的变化(尺度步长可设为 1.5 或者2),尽可能地获取源负样本的局部信息和全局信息。这样得到的负样本才够健壮,对二次训练后检测器的效果也提升得更加全面。
SVM分类器的训练阶段,训练用正样本和负样本的尺寸固定,大小为32×24。在人头检测阶段,由于距离等因素,导致目标(人头)大小变化较大,本文采用训练模板大小不变而只缩放待检测图像的方法实现目标的多尺度检测,检测结果如图4(a)所示。
3 Mean-shift跟踪计数
利用HOG特征,只能实现单幅图像中人头的检测。要完成人员计数,必须利用多帧图像信息,既要检测出图像中新出现的目标,又要利用目标跟踪技术,确定连续多帧图像中的同一个目标,实现人员统计计数。
利用Mean-shift实现人员跟踪计数具体步骤如下:
(1)将人头检测的结果作为初始的搜索窗口,确定窗口大小和位置。
(2)计算搜索窗口内的灰度概率分布函数,并用该分布函数反演下一帧的待搜索图像。
(3)利用前一帧初始搜索窗口的大小和位置信息,确定当前帧的搜索起点和范围,并在计算选取搜索窗口中按照式(4)、式(5)计算零阶矩和一阶矩,并按照式(6)计算搜索窗口的质心:
4 试验结果
用图像大小为384×307、30帧/s的实拍视频流进行测试实验,测试视频中行人只能从画面的上下两端进入。为减小计算量,人头检测只在图像的上下1/4区域进行检测,根据行人运动方向,在图像的中间1/2 区域进行搜索跟踪技术,完成客流量统计。实验结果如图4(b)所示。在达芬奇系列处理器TMS320DM6437平台上实测数据处理速度为28帧/s,客流量统计精度为97.8%。试验中测试发现,HOG特征检测人头消耗了系统70%的计算量。为进一步提高计算速度,对人头检测算法进行优化:利用积分图[5]计算HOG特征,采用Cascade[5]结构组合SVM分类器。优化后,在不影响客流量统计精度的情况下实测处理速度达到了38帧/s。
本文在达芬奇系列处理器TMS320DM6437平台上,设计并实现了一个实时的嵌入式客流量统计模块,实测表明,客流量统计精度高,数据处理速度快。在不改变已有监控系统的结构,仅通过增加该模块就可实现客流量统计等智能监控功能,具有良好的市场前景。
参考文献
[1] 屈建中,张军,鲁墨武.长途客车流量监测装置[J].测控技术,1994,13(3):23-26.
[2] 毕胜,梁德群.基于主动红外成像的客流量统计系统[J]. 小型微型计算机系统,2007,28(4):697-700.
[3] DALAL N,TRIGGS D. Histograms of oriented gradients for human detection[C].Proceeding. IEEE Conference. on Computer Vision and Pattern Recognition,2005:886-893.
[4] BRADSKI G,KAEBLER A.Learning OpenCV—computer vision with the OpenCV library[M].(3rd Ed).New York:O’Reilly Media,Inc.,2008:337-341.
[5] VIOLA P,JONES M.Robust real-time face detection[J]. International Journal of Computer Vision,2004,57(2):137-154.