监控场景中人数评估算法的设计与实现

2015-05-30 04:23黄宁宁冯光等
科技创新与应用 2015年35期

黄宁宁 冯光等

摘 要:文章通过高斯建模得到一个很好的前景模型构架,再用blob斑点扫描确定斑点的位置,接着运用OpenCV自带的行人分类器和自定义算法判断行人的行走状态对场景中人数进行统计评估,理论分析和试验结果表明该种算法都具有较好可靠性和有效性。

关键词:智能检测;OpenCV;行人检测;高斯背景建模

引言

视频图像中的行人检测跟踪技术在智能交通系统、安防、智能小区监控、超市客流统计等领域有很广泛应用。这些领域大部分需要能统计出在某一特定区域经过的行人数目以及他们的行为。这会大大减轻日常管理的工作量提高效率。本文使用一个静态摄像机实时监控一块特定区域,其目的是为了从视频静态背景中分离出动态目标,并对其进行分类、跟踪等操作。

1 行人检测流程

这里采用高斯建模的方法提取前景,高斯建模算法的目的是将视频中运动目标(行人)与非运动目标分离开来。首先读取监控视频数据,为了增强背景模型的适应性,需要根据实际情况,对背景模型进行实时更新,因此利用混合高斯背景建模可以建立自适应实时动态背景的特点,我们用混合高斯背景建模的方法进行前景圖像的提取(运动目标),然后用连通域提取筛选掉一些多余无用的运动目标并不断更新背景,接着利用自己定义的FindWhiteBlob(FrImg)函数找出blob斑点位置(行人位置)并为其绘制矩形框,计算矩形框以得到行人的人数。

2 前景检测

Blob团块检测:Blob track 又称运动目标检测跟踪,在OpenCV的众多框架中有一个可以拓展的运动跟踪的框架,其中包含了前景检测模块、新团块检测模块、团块跟踪模块、轨迹生成模块、轨迹后处理模块、轨迹生成模块、跟踪流程模块七个模块,且该框架为每个模块都提供了一个基类,不同算法可以写成一个子类,这样可以方便嵌入到框架之中。

虽然OpenCV提供了现成的blob检测函数,但是为了进一步了解blob的工作原理,文章采用了自己的blob检测方法。高斯建模和blob提取的内容,这两个方法都是基于图像表层信息的算法,对一些复杂的场景,例如暴风雨,人海等,检测效果就不可能这么好,加上近景和远景的区别,文章采用另一种检测方法:模式识别。

3 实验结果分析

3.1 基于前景提取的行人检测结果

分析:从图1可以看出,该算法很好的检测到了人的位置,但是如图b中标号为的2物体,和图c中标号为1的物体,虽然检测出来是一个人,实际上是两个人,导致这种效果的原因是blob的连接,当两个blob块合成一个时,blob扫描算法会将这个大的blob认为是一个人,就导致了这样的效果。解决方案:可以计算整个图像的所有blob的平均值,其中某个blob加入超过了均值,根据超过的多少,相应的增加人数。

分析:近景的效果,相对于远景的来说,差不少,先不谈图a的光线影响多严重,图c中的人物被检测成了两个,造成这种原因的也是blob的关系,由于人物过大,前景提取的blob被分成了两个,所以人物也变成了两个,这也是为什么会有模式识别这种检测方法。

3.2 基于HOG+SVM的行人检测

相对于前景提取的检测方案,hog+svm检测结果,误检率低得多,因为是特征对比,所以不会因为一点光照或背景的影响而改变,但是漏检率也很高,因为远景的特征表现不明显,算法无法从图像中获得足够的信息,所以只能将之排除。近景的效果比远景好多了,说明图像信息足够丰富。基于haar+adaboost的行人检测与hog+svm效果都是差不多的,因为都是基于特征识别的检测算法,所以检测结果就不贴出来了,接下来分析一下算法的效率。针对同样的图片(432*240),不同算法呈现出不同的运算时间。

前景提取:0.04s;HOG+SVM:0.33s;HAAR+ADABOOST:0.04s。前景提取的时间和haar+adaboost的时间一样多,为什么两种完全不同的算法,原理都不一样却得到了相同的时间消耗,既然模式识别能较为精确的检测到物体,为什么还不耗费时间?原因在于,adaboost分类算法的训练过程,训练所花费的时间,是svm训练时间的上千倍,假如是10000张图片,hog训练花了3分钟,adaboost则要花费大概两天的时间(cpu处理速度越慢,训练越慢),用高昂的训练时间,换取了检测时间,虽然作为一件产品是不错,但是研发成本也要控制好才行。

4 结束语

本课题针对行人检测问题,提出三种基于OpenCV、VC的算法,高斯背景建模(前景提取)、HOG+SVM算法和haar+Adaboost级联分类器进行实时检测行人的方法。经过分析不同的视频数据,实验表明HOG特征算法在对行人目标较大且离监控摄像头较近时检测具有较好的效果,但hog+svm对远景的视频检测结果差强人意。其中haar+Adaboost级联分类器的效果与HOG特征算法的效果基本差不多,但是这两种算法都需要经过分类器样本的训练才能得到一个比较好的检测效果。而高斯背景建模则是对检测行人目标距离较远时效果明显,由于OpenCV中已经自带了行人分类器,所以这里不需要对分类器的行人样本进行训练,简化了设计流程并且检测效果良好。

参考文献

[1]朱文佳.基于机器学习的行人检测关键技术研究[D].上海,上海交通大学,2008:7-11.

[2]尹彦,耿兆丰.基于背景模型的运动目标检测与跟踪[J].微计算机信息,2008(1):2-17.

[3]杨学超,刘文萍.视频图像序列中的运动目标检测技术[J].计算机应用与软件,2008(1):1-6.

[4]杨威,张田文.复杂景物环境下运动目标检测得新方法[J].计算机研究与发展,1998,8(35):4-5.

[5]苏松志.复杂背景下的行人检测技术研究[D].厦门:厦门大学,2008:78-116.

[6]周柯.基于HOG特征的图像人体检测技术的研究与实现[D].武汉:华中科技大学,2008:50-61.