基于人流量检测的改进CN算法
2020-03-07张开生郭碧筱刘泽新
张开生,郭碧筱,刘泽新,杨 帆
(陕西科技大学 电气与控制工程学院,陕西 西安 710021)
0 引 言
近年来,人流量检测已成为机器视觉领域研究的热点问题之一,也是视频监控领域实现的核心技术。实时采集人流量信息,实现人流量的精确统计对机场、商场及旅游景点等公共场合都有着重要意义。目前,国内外已有众多学者研究人流量的检测,如:龚露鸣等[1]基于混合高斯和HOG+SVM的行人检测模型,能识别前景图像中所包含的信息类别,降低误检率,但背景建模较复杂;陈丽枫等[2]采用HOG特征和机器学习的行人检测方法,利用边缘检测技术快速检测出行人候选区域,提高检测率,但实时性较差;高飞等[3]基于热点区域定义的人数统计方法采用KCF跟踪算法进行目标跟踪,满足复杂环境下行人检测的准确性和实时性,但在行人并肩时易产生漏检问题;李振宇等[4]基于运动目标分类的双向人流量统计算法在行人稀疏时检测精度较高,但在行人密集且出现严重遮挡时检测效果较差。
针对现有检测算法存在的实时性、漏检、误检、以及KCF跟踪的特征单一性等问题,本文在此基础上通过改进CN跟踪算法来提高人流量的检测精度,基于CN特征对目标形变和HOG特征对目标颜色、背景光照的强鲁棒性,结合CN与HOG特征实现更好地识别跟踪效果,另外,结合背景差分与三帧差分算法进行运动目标前景提取,增加检测区域的准确性,有效解决目标漏检、误检问题。
1 目标识别
1.1 目标前景提取
在运动目标检测算法中,常用的差分算法有:背景差分法、帧间差分法以及三帧差分法。其中,背景差分法能获得较完整的景象,但提取出的景象存在很大的稳定性差异,敏感度降低,同时伴有噪音的出现;帧间差分法能很好地抑制噪音、适应外界场景的变化、稳定性得以保障,在运动目标缓慢移动造成前后帧重叠时,会错提取或漏提取运动目标,并伴有严重的双影现象;三帧差分法能改善帧间差分法严重的双影现象,提高稳定性,却不能获得较完整的景象。所以本文采取背景差分法与三帧差分相结合的方法来实现运动目标的提取,使得到的检测图像中包含更多的目标信息,从而将运动目标从背景图像中分离出来。
预先选取一帧作为背景帧,再运用三帧差分法对图像进行差分处理,区分出背景点和目标区域,即目标在前一帧和当前帧中所覆盖的区域,将目标区域与背景帧的对应区域通过模型拟合进行前一帧和当前帧的区域点,并去除当前帧阴影分割出当前帧目标区域。背景更新时以不同的更新率确定背景点和前一帧中的目标区域。其算法流程如图1所示。
图1 目标前景提取算法流程
1.2 目标检测
文中选用Dalal等提出的HOG(方向梯度直方图)特征与SVM(支持向量机)分类器[5]进行行人头肩的检测,得到图像中的行人头肩目标区域。
(1)颜色空间归一化
将彩色图像转化为灰度图像,并使用Gamma校正,在一定程度上降低噪声的干扰,提高特征描述器对光照等干扰因素的鲁棒性
I(x,y)=I(x,y)gamma
(1)
(2)图像像素梯度计算
图像中像素点 (x,y) 的梯度为
Gx(x,y)=H(x+1,y)-H(x-1,y)
(2)
Gy(x,y)=H(x,y+1)-H(x,y-1)
(3)
式中:Gx(x,y) 为像素点 (x,y) 的水平方向梯度,Gy(x,y) 为像素点 (x,y) 的垂直方向梯度,H(x,y) 为像素点 (x,y) 处的像素值。而像素点 (x,y) 处的梯度幅值和梯度方向分别为
(4)
(5)
一般采用梯度算子对图像进行卷积运算求取图像梯度,文中用[-1,0,1]梯度算子对图像进行卷积操作得到水平方向的梯度分量,用[-1,0,1]T梯度算子进行卷积操作得到竖直方向的梯度分量,然后求取图像的梯度幅值和方向。
(3)在cell中计算梯度方向直方图
参考文献[1]中的计算方法,对于一个64×64的图像窗口,首先将其划分为若干个8×8像素的连通区域(cell),相邻cell之间不重叠,每一个归一化的块(block)由2×2个cell组成,则共有 (8-1)×(8-1)=49个block,将梯度方向量化为9个表示9个直方图通道,将某个方向的直方图通道采用加权投票的方式计算cell中的每一个像素点,像素点的梯度幅值决定了权值的大小,然后在每个cell内统计梯度方向直方图,得到的HOG特征向量的维数为49×2×2×9=1764。
(4)在block中归一化梯度方向直方图
将2×2的cell组合成一个连通块(block),而该block的HOG特征描述子为串联block内所有cell的特征向量,不同block之间相互重叠,局部邻域信息得以有效利用。统计大范围内的梯度直方图,并做归一化处理,能够更好地适应光照和对比度的变化。常用的归一化方法有4种,文中采用L2-norm进行归一化操作
(6)
2 目标跟踪计数
通过上节分析的HOG特征,得到图像中的行人头肩目标区域,接着对目标区域进行跟踪得到行人运动轨迹,通过设置感兴趣区域计数线实现行人的人流量统计[6]。
本文通过自适应权值的方式融合HOG与CN特征[7],利用特征融合的相关滤波响应图求出目标位置,同时采用Kalman滤波与CN结合的算法来实现目标的跟踪。Kalman滤波器在预测下一帧图像中目标位置的周围选取合适的检测窗口,可以预防前一帧图像中目标被完全遮挡时跟丢目标的情况,提高跟踪效率[8]。
2.1 CN跟踪算法原理
CN跟踪算法是在前一帧目标坐标位置的周围选取合适的检测窗口,利用循环偏移矩阵来构建分类器的训练样本,其中用到的循环矩阵在傅里叶空间的可对角化性质将矩阵的运算简化成向量的点乘,从而降低了算法的复杂度。其算法实现的主要步骤为:
(1)假设训练的样本集为 (xi,yi), 目标图像的输入为z, 权重为ω, 输出为f(ω)=ωTx, 分类器模型的输出为f(xi), 期望回归值yi, 寻找满足f(xi) 和yi的最小均方差的解ω
(7)
其中,λ是防过拟合的正则化参数。通过最小二乘法求解,令导数为0,可得
ω=(XHX+λI)-1XHy
(8)
其中,XH=(X*)T为复共轭转置矩阵,X为样本矩阵,由一个样本的特征向量作为行向量表示,y为列向量,由对应样本的回归值yi所组成,I为单位矩阵。
(2)利用循环矩阵X求解式(8)。循环矩阵X的每一行由基样本x的循环偏移量组成,如式(9)所示
(9)
(10)
(3)引入核函数,在高维核空间中特征线性可分。则回归系数ω可用x和对偶空间α线性表示为
(11)
回归问题则转化为
(12)
其中,k(z,xi)=ψ(z)ψ(xi) 为核函数,文中使用高斯核函数。
(4)快速训练过程中,根据式(12)可将ω的求解转换为α的求解,由此解出ω的值,即非线性的解为
(13)
其中,取核矩阵K=C(kxx) 的首行作为向量kxx。
(5)在快速检测过程中,由训练样本和测试样本构建核函数矩阵,取循环矩阵首行作为向量kxz, 即可得出由测试样本z的循环偏移而构成的测试样本,回归问题被转化为
(14)
在高斯核函数中,kxx′的求解为
(15)
利用训练好的分类器对当前帧的目标搜索区域z进行检测,得到相关滤波响应图,相关滤波相应图的峰值位置即当前帧的目标位置。
2.2 特征融合
文中采用文献[9-11]的一种自适应权值的方式将具有互补特性的HOG特征和CN特征进行融合。由于跟踪系统中峰值旁瓣比(PSR)能量化相关峰值的锐度,PSR值越大跟踪置信度越高,当前帧与前一帧目标越匹配。另外,相关滤波响应图的峰值越大目标位置越精确。因此,根据两种特征的峰值旁瓣比和相关滤波响应图的峰值计算特征融合权值。
峰值旁瓣比的定义为
(16)
其中, max(ft(z)) 是相关滤波响应图第t帧的峰值,μt和σt分别是除峰值区域以外旁瓣的均值与标准差。
特征融合自适应权值的计算方式为
(17)
其中,gCN代表第t帧时CN特征的融合权值比例,PSRHOG,t和PSRCN,t分别是HOG特征和CN特征第t帧的PSR值。为了防止权值漂移采用线性插值的方式更新权值
gCN,t=(1-θ)×gCN,t-1+θ×gCN
(18)
其中,θ是融合权值的学习系数,gCN,t是第t帧中CN特征的融合权值。
利用两种特征的融合权值计算融合特征的相关滤波响应图
ft(z)=(1-gCN,t)×fHOG,t(z)+gCN,t×fCN,t(z)
(19)
其中,fHOG,t和fCN,t分别是HOG和CN特征第t帧时相关滤波响应图,进而根据ft(z) 的峰值位置得到目标位置。
2.3 目标计数
通过目标的实时跟踪得到目标的运动轨迹,文中通过设置感兴趣区域计数线来统计人数,摄像头拍摄中的行人存在任意的活动行为,文中只需统计通过感兴趣区域计数线的行人人数。首先定义目标进入场景的正向量方向;当目标离开场景后,记录该目标的结束位置和开始位置,形成坐标向量,若该向量与定义的正向量之间的夹角小于90°,则计数count加1;若该向量与定义的正向量之间的夹角大于90°,则计数count减1。
3 实验结果及分析
本文算法是在Intel Core i5-4210M CPU,主频为2.6 GHz,以及4 GB内存配置的Win7计算机上进行测试,使用MATLAB R2016a作为算法开发环境。以INRIA数据库为基础制作训练样本,同时采用拍摄的视频资料以及网上数据资源,制作了615个行人头肩正样本和1000个非行人头肩负样本,同时负样本中还增加了一次训练时被误检的识别区域,其中正样本集如图2所示,负样本集如图3所示。测试视频为iphone6拍摄视频和网上的视频资源。
3.1 目标前景提取
文中选用背景差分与三帧差分相结合的方式来提取运动目标前景,图4(a)为背景差分提取的运动目标前景,图4(b)为三帧差分提取的运动目标前景,图4(c)为背景差分与三帧差分相结合提取的运动目标前景。
图2 正样本集
图3 负样本集
图4 目标前景提取效果
选取合适的阈值进行图像二值化处理,由上图可以明显看出采用背景差分与三帧差分相结合的方式提取的运动目标前景轮廓清晰,目标位置更准确。
3.2 行人头肩检测
文中采用HOG+SVM算法进行行人头肩特征提取与检测,所需训练样本包括610张头肩正样本和1000张非头肩负样本,测试样本为iphone拍摄的不同场景下的行人视频帧图像。实验中分别选取64×64和64×128像素的样本进行行人头肩特征分类器的训练;同时,分别采用8×8和16×16像素的细胞单元、8像素的滑动步长以及块大小为 2×2 个细胞单元,在本文提出的行人头肩目标前景提取算法得到的检测区域中进行检测算法测试,测试图片数量为50个,检测结果见表1。
表1 不同参数下的检测结果对比
由不同参数下的检测结果对比得出,在综合考量算法准确率和检测速度因素后,本文将选用64×64的测试样本与8×8的胞元大小来进行行人头肩目标检测,以达到最优检测效果。
3.3 跟踪计数
CN跟踪算法是CSK的改进算法,增加了颜色特征使得检测精度和系统性能都有所提高,但在目标被完全遮挡的情况下CN跟踪算法会造成跟踪目标丢失,通过增加Kalman滤波提前预测下一帧图像中的目标位置,有效解决目标被完全遮挡时跟踪丢失的问题。而本文在此基础上融合HOG特征与CN特征,作为目标跟踪的检测机制,更加准确地锁定目标的位置。其中,CN跟踪算法效果如图5所示,Kalman滤波与CN结合跟踪算法效果如图6所示,而本文跟踪算法效果如图7所示。
实验结果可以看出,增加Kalman滤波器与特征融合的CN跟踪算法能有效解决行人遮挡问题,提高系统可靠性。
采用文中行人检测跟踪算法进行人流量的统计结果见表2。
其中,实际目标为实际进入视频画面的所有目标,实际计数目标为实际进入感兴趣区域计数的目标,检测目标大大减少了目标误检和漏检数量,同时准确率显著提高。
图5 CN跟踪算法效果
图6 Kalman滤波与CN结合跟踪算法效果
为系统检测到的目标(包括漏检目标和误检目标),检测计数目标为检测到进入感兴趣区域的目标。准确率=检测计数目标/实际计数目标×100%,实验结果表明,文中算法
图7 本文跟踪算法效果
4 结束语
本文通过改进CN算法来提高行人检测跟踪计数的精度。在背景差分与三帧差分相结合提取的运动目标前景中利用HOG特征与SVM分类器判断行人目标;之后通过Kalman滤波器进行下一帧图像中目标位置的预测,采用改进CN算法对目标进行跟踪;最后,在感兴趣计数区域内实时统计目标人数。经实验测试,本系统具有较好的稳定性和实时性,其中,目标漏检率降低10%,误检率降低13%,检测精度提高8%。但文中算法在适应目标尺度变化时效果较差,这将是本文算法后续应该改进的方向。
表2 人流量统计结果