基于无人机视觉的人体检测跟踪技术研究
2018-10-15马皇特贺永杰王春梅禹密柱王江安
马皇特,贺永杰,王春梅,禹密柱,王江安
(长安大学 信息工程学院,陕西 西安 710064)
0 引 言
视频的智能监控在现实生活中应用广泛,但是这些固定的摄像头只能拍摄进入当前场所监控的目标,不能跟踪目标以监视移动。针对上述局限性,已有文献提出了不少改进方法。
在人体检测方面,Papageorgiou等[1]将Haar小波用于人脸、人体的检测,并通过Haar特征的不同来训练不同的SVM(支持向量机)分类器;Dalal等[2]提出了基于HOG特征的人体检测方法,这种方法通过统计直方图来描述人体的轮廓信息;在人体检测领域中模板匹配算法最著名的是基于轮廓目标的分层匹配算法,该算法是由Gavrila等[3]提出的。李建福等[4]采用SVM分类器对人体HOG特征与其他特征相结合的特征进行检测,减少了单独由HOG特征检测带来的局限性;陈锐等[5]为了克服HOG特征存在冗余信息多、容易造成误检和漏检的缺点,提出利用PCA算法对人体的HOG特征进行降维处理后再与局部二值模式特征进行融合,最后使用SVM进行分类。周科嘉[6]针对人体姿势的不确定性,提出了传统的HOG特征结合模板匹配的方法进行人体检测。
在人体跟踪方面:G Jemilda等[7]提出了多种跟踪算法融合的方式来减少计算的复杂性,提高了跟踪的可靠性和准确性;Wang等[8]针对复杂的环境,提出了一种从Blob块中提取的几何参数结合CamShift算法来检测车辆。李娟等[9]提出基于Kalman滤波的人体跟踪方法,先通过改进的高斯模型提取背景,再进行人体特征的提取,最后使用Kalman滤波对人体的运动进行估计,将检测到的目标与估计结果相匹配。邹依峰等[10]针对运动人体尺寸的变化问题,提出了HOG特征和粒子滤波相结合的人体跟踪算法。郭烈等[11]为了提高城市交通的安全性,提出了使用AdaBoost算法训练分割人体的级联分类器,结合Kalman滤波原理实现人体的跟踪。张绍明等[12]针对红外视频中颜色信息缺失的问题,提出了一种基于改进的粒子滤波的红外视频的跟踪算法,使用HOG特征和粒子滤波相结合的方式对人体进行跟踪。
在上述研究的基础上,文中以四旋翼无人机作为平台,对目标人体的检测与跟踪进行研究。
1 人体检测
1.1 方向梯度直方图
Haar特征是依据目标的灰度值变化的情况提取的,对于人脸这种结构相对固定的场景检测效果一般是很好的,对于结构不固定的人体检测场景的检测效果不是很好。
HOG特征在提取的过程中是针对目标人体的局部区域进行的,所以HOG特征对目标人体的具体大小和形状以及光照变化、尺度变化等问题具有很高的鲁棒性。另外,HOG特征还允许人体有细微的肢体动作变化而不会影响人体最终的检测效果。故HOG特征多用于人体检测。但HOG特征也存在特征维数过多、计算量太大等问题,无法达到实时性检测的效果。
1.2 特征降维算法
主成分分析(principal component analysis,PCA)或者主元分析,其主要思想是使用较少的关键特征来描述样本,从而达到降低样本维数的目的[13]。经过主成分分析算法后的数据主成分能代表原来数据的大部分信息。
1.3 模板匹配
模板匹配算法就是要忽略掉无关紧要的干扰,在一幅图像中寻找是否包含与模板图像相同的图像,并确定相同的图像在待搜索的图像中的具体位置。
常用的模板匹配算法可以分为四类:基于区域的匹配算法、基于特征的匹配算法、基于变换域的匹配算法以及基于模型的匹配算法[14]。
1.4 支持向量机
SVM的优点主要是少数的支持向量能够决定最终的分类结果,可以抓住关键的样本,这种算法不仅简单而且有很好的鲁棒性,适合行人检测这种二值问题。但是支持向量机对大规模的训练样本会耗费大量的内存和计算时间。
1.5 改进算法的结果与分析
文中经过对大量的视频序列图像进行实验之后,得到传统的HOG特征结合SVM分类器的算法,经过PCA降维处理后的HOG特征结合SVM分类器的算法,经过PCA降维后的HOG特征结合头肩部模板匹配加上SVM分类器的算法。平均每帧图像上的耗时如图1所示,算法的检测正确率如表1所示。
图1 改进前后人体检测算法耗时折线图
样本数1003005008001 000HOG+SVM0.620.590.610.620.60HOG+PCA+模板匹配+SVM0.730.700.720.710.72
实验数据表明,使用传统的HOG特征加支持向量机无法满足所需要的实时性要求。对于提出的经过PCA处理的HOG特征结合头肩部模板匹配后加SVM的算法虽然在耗时上比不加头肩部模板匹配算法增加了约11 ms左右,但是在算法的检测速度上也可以达到文中对于实时性的要求。并且明显提高了算法的检测率,降低了误检率,达到了对人体检测准确率的要求。
2 人体跟踪
2.1 CamShift算法
CamShift算法是在Mean-Shift算法的基础上对目标视频序列的每一帧图像都进行Mean-Shift算法的调用。
CamShift算法的优点是能够高效地解决跟踪目标的形变和跟踪目标被遮挡的问题[15],在背景相对简单的情况下,CamShift算法能够获得较好的跟踪效果。如果背景相对复杂,或者目标的颜色和背景的颜色相差不大,CamShift算法的跟踪效果就会降低,甚至会导致跟踪失败,所以就需要结合预测算法来提高对目标的跟踪效果。
2.2 粒子滤波算法
针对目标人体全部被遮挡的情况,提出了CamShift算法结合粒子滤波算法。
粒子滤波简单来讲就是通过从后验概率中提取出来的随机粒子来近似地表达目标出现在某个位置的概率[16],其中描述目标位置的随机粒子越多,越能够准确地描述目标的位置信息。但这也正是粒子滤波算法的缺点,想要很好地逼近后验概率密度函数就需要大量的样本粒子,而样本粒子数目越多,算法的复杂度就越高。
3 实验结果与分析
3.1 人体检测跟踪系统
文中在前面分别介绍了人体检测和人体跟踪两部分内容。本节将人体检测和人体跟踪两部分结合起来组成一个人体检测跟踪系统。
人体检测跟踪的流程如图2所示。
图2 人体检测跟踪流程
首先输入图片或者视频序列,使用HOG结合PCA算法对图片或者视频序列中的人体进行检测,识别出人体目标。然后对识别出来的人体目标进行人体的头肩部模板匹配,以此提高人体检测的检测率。然后对选定的目标人体进行粒子集的初始化操作,通过对人体运动状态的预测获取描述人体运动的采样粒子集,对该采样粒子集再使用CamShift算法进行漂移运算,从而得到收敛的粒子集。最后通过对粒子集进行重新采样,动态保留最能描述人体运动的粒子以估计人体运动的状态。
3.2 不同场景下的实验
对HOG特征训练采用的是MIT数据集,这个数据集相对简单,数据集中只包含了一个正样本集,这个正样本集中包含924幅图片(为64×128的彩色图片),负样本集也包含了924幅图片(为64×128的彩色图片)。这些图片来自于网络资源,这些负样本中的图片主要是动物、风景以及其他非人的图片。为了验证人体检测跟踪系统的效果,在不同的场景下进行了测试。
场景一:行人在步行时的场景。人体检测跟踪效果如图3所示。
图3 人体检测跟踪效果(1)
场景二:行人在跑步时的场景。人体检测跟踪效果如图4所示。
图4 人体检测跟踪效果(2)
两种场景每帧算法耗时如表2所示。
表2 算法每帧耗时统计
由图3和图4的人体检测跟踪效果可知,改进算法具有良好的抗干扰性,对背景中的干扰物能够准确地排除,并且能够准确地检测出背景中的人体,对人体在运动中的尺度变化有良好的自适应性。由表2所示,人体检测跟踪算法每帧图像平均耗时在37 ms左右,满足了文中对实时性的要求。
4 结束语
在人体检测部分,提出对HOG特征进行PCA降维处理,得到降维后的HOG特征,并对降维后的HOG特征结合人体头肩部的模板匹配算法,减少了算法的计算量,提高了算法的实时性,并且提高了人体的检测率。在人体跟踪部分,采用一种基于CamShift算法和粒子滤波算法相结合的跟踪算法。CamShift算法具有计算量小、实时性好的优点,但是CamShift算法是一种基于颜色特征的算法,对人体的背景很敏感,并且当人体完全被遮挡时很容易跟丢目标。因此,将CamShift算法和粒子滤波算法相结合就可以通过少量的相关粒子提高对人体跟踪的效果和实时性。然后将人体检测和人体跟踪相结合组成一个人体检测跟踪系统。该系统可以对静态图片和视频序列中的人体进行自动检测和跟踪,能够有效解决传统的手动画框跟踪带来的跟踪画不准等人为问题。