王文武,王华昌
(1.武汉科技大学 信息科学与工程学院,湖北 武汉430081;2.军事经济学院 基础部数理教研室,湖北 武汉430035)
随着传统的显示-存储-回放模式的监控系统的普及,在已有监控系统上提供增值服务的智能监控技术成为行业发展的热点。利用安装在大型建筑、娱乐休闲场所、购物设施等公共场所的监控系统,实现客流量的精确计数以及对人群密度进行估计,监控人群活动,保证人群的安全性和分析客流分布规律等功能成为当前监控应用中迫切需要的功能。
早期先后出现过光电监测[1]、红外对射、红外光幕客流量计数器,由于这些方法计数精度差、不能判断客流行进方向、易受外界干扰影响、而且维护成本高导致应用受限。近年来为克服光照等影响计数精度的干扰因素,出现了主动/被动红外成像客流量计数器[2],但由于其价格昂贵而限制了推广。本文以传统可见光摄像头获取的图像为处理对象,在达芬奇系列处理器TMS320DM6437平台上,提取HOG[3]特征实现人头检测,利用Mean-shift[4]实现人员跟踪和计数,完成了客流量统计的嵌入式模块化设计。
基于视频的客流量统计,按摄像头放置位置与客流方向的关系有倾斜放置和垂直放置两种。在进出客流量较大时,摄像头倾斜放置时图像中的人像之间不可避免会出现遮挡和重叠。为了解决遮挡和重叠问题实现精确计数,需要采用更复杂的计数算法,额外增加了较大的计算量。本文采用如图1所示的摄像头垂直放置,通过检测和跟踪人头实现客流量的计数,既避免了遮挡和重叠导致计数精度下降的问题,又能使人头检测和跟踪算法计算量适中。
图1 摄像头垂直放置示意图
TMS320DM6437是TI公司首批支持达芬奇技术的纯DSP器件,结合增强型TMS320C64X内核与最新视频处理子系统(VPSS),实现超强的视频处理能力。 TMS320C64X采用第二代高性能超长指令字(VLIW)的体系结构,2级存储器/高速缓存和EDMA引擎,非常适合高强度的数学运算;其内核主频高达600 MHz,峰值处理速度可达5 600 MIPS。内核拥有两级缓存结构,第一级缓存(L1)包括80 KB的数据缓存(L1D)和 32 KB的程序缓存(L1P),L1直接与 CPU连接,数据宽度为128 bit。第二级缓存(L2)的容量大小为128 KB,可以被映射成缓存结构也可被用作片内存储器。核内部拥有两个处理通路,每条通路包含4个功能单元,最高时可在一个时钟并行处理8条指令;视频处理子系统(VPSS),以D1解析度实现高达H.264的视频编码。TMS320DM6437芯片还拥有丰富的外部接口,片内包含4路视频数模转换芯片,可实现多种制式的模拟视频信号输出,为运行客流量统计程序提供了一个高性价比的硬件平台。
系统主要由图像采集、图像数据存储、图像数据处理和图像显示等部分组成。图像采集部分使用TI公司的TVP5150专用图像采集器。TVP5150的主要作用是把输入的模拟视频信号转换成符合ITU-R BT.656标准的4:2:2 YUV全数字视频信号。运行人头检测和跟踪计数算法的处理器采用TI公司的高性价比媒体处理器TMS320DM6437。该处理器先从视频转换芯片TVP5150读取数字视频数据,然后运行人头检测和跟踪计数程序,最后在检测的人头上加框后显示统计的客流量。由于图像数据量大,TMS320DM6437处理器运行客流量统计程序时,不可避免会将运行的中间数据存储在片外高速RAM中(片外RAM采用256 MB的DDR2 DRAM存储器)。视频显示芯片采用Philips公司的视频编码芯片SAA7126H,实现视频显示。系统基本的硬件结构如图2所示。
图2 系统的硬件结构
Dalal等人首先将HOG特征[3]用于静态图像中的行人检测,其主要思想是利用局部区域的梯度方向直方图来描述目标特征。本文用HOG特征结合支撑向量机SVM(Support Vector Machine)分类器进行头部检测,分为SVM分类器训练和人头检测两个阶段。
提取目标的 HOG特征步骤如下:首先按照式(1)和式(2)计算灰度图像的梯度幅值和梯度方向。
其中,Gx、Gy分别是(x,y)的水平和竖直梯度,梯度的方向设定为0~π。本文梯度的方向反映该像素点周围的灰度变化的方向,梯度的幅度反映灰度变化的大小。
然后进行子块单元的划分和方向直方图统计。如图 3(a)所示,将图像划分为若干个图像块(BLOCK),每个块划分为若干个正方形图像单元(CELL),图像单元的边长记为 CELLSIZE。 图 3(a)中 CELL的大小为 8×8个像素,即 CELLSIZE=8;一个 BLOCK包含 2×2个图像单元CELLNUM=4。以一个图像单元为单位,进行方向梯度直方图的统计。将梯度方向划分为BIN个区间,对于各个区间的梯度相加,形成一个BIN维的向量来描述一个图像单元。最后生成图像的Hog描述子,对于每一个BLOCK对应的BIN×CELLNUM维向量可以根据实际需要按式(3)进行标准化:
最后所有CELL对应的向量构成整个图像的Hog描述子,如图3(b)所示,图像由 16个CELL组成。
人头检测的分类器选择高斯内核的支撑向量机(SVM)。SVM分类器的训练分两次进行,第一次是使用人头居中的正样本和从不包含人头对象的图像(源负样本)中取样得到的负样本中训练出基本分类器。第二次是采用基本分类器对所有源负样本进行密集扫面检测,将其中检测错误的子图像归为困难负样本,然后将之前的正样本和负样本与困难样本一起对基本分类器进行二次训练。在对源负样本进行密集扫描时,不仅扫描步长要小,而且还要加入尺度的变化(尺度步长可设为 1.5或者2),尽可能地获取源负样本的局部信息和全局信息。这样得到的负样本才够健壮,对二次训练后检测器的效果也提升得更加全面。
SVM分类器的训练阶段,训练用正样本和负样本的尺寸固定,大小为32×24。在人头检测阶段,由于距离等因素,导致目标(人头)大小变化较大,本文采用训练模板大小不变而只缩放待检测图像的方法实现目标的多尺度检测,检测结果如图 4(a)所示。
利用HOG特征,只能实现单幅图像中人头的检测。要完成人员计数,必须利用多帧图像信息,既要检测出图像中新出现的目标,又要利用目标跟踪技术,确定连续多帧图像中的同一个目标,实现人员统计计数。
利用Mean-shift实现人员跟踪计数具体步骤如下:
(1)将人头检测的结果作为初始的搜索窗口,确定窗口大小和位置。
(2)计算搜索窗口内的灰度概率分布函数,并用该分布函数反演下一帧的待搜索图像。
(3)利用前一帧初始搜索窗口的大小和位置信息,确定当前帧的搜索起点和范围,并在计算选取搜索窗口中按照式(4)、式(5)计算零阶矩和一阶矩,并按照式(6)计算搜索窗口的质心:
用图像大小为 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平台上,设计并实现了一个实时的嵌入式客流量统计模块,实测表明,客流量统计精度高,数据处理速度快。在不改变已有监控系统的结构,仅通过增加该模块就可实现客流量统计等智能监控功能,具有良好的市场前景。
图4 人头检测和跟踪结果
[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.