APP下载

融合运动检测与目标跟踪的目标检测方法

2018-07-19邬厚民吴卫祖

计算机工程与设计 2018年7期
关键词:跟踪器检测器行人

邬厚民,吴卫祖

(1.广州科技贸易职业学院 信息工程学院,广东 广州 511442;2.广东海洋大学 信息学院,广东 湛江 524088)

0 引 言

由于智能交通领域处理的对象主要是行人和车辆,因此行人与车辆两类目标的检测在智能交通领域应用需求更为旺盛[1-3]。在行人和车辆检测方面,目前已经涌现出了许多有意义的方法,如采用Haar-like、方向梯度直方图(HOG)特征,以及Adaboost、支持向量机(SVM)、深度网络检测行人和车辆[4-9]。就现有技术而言,行人和车辆检测方法在背景比较简单、目标遮挡不严重的条件下已经取得了较好的检测效果。然而,对于实际的交通视频而言,背景非常复杂,而且目标在行进过程中通常存在较为严重的遮挡,这样情况下,现有方法的目标检测性能不高,而且处理速度较慢。针对这一问题,本文提出一种思路,将运动检测和目标跟踪融合到目标检测过程中,通过运动检测来剔除复杂背景干扰,并降低在背景区域进行目标检测所消耗的时间;通过目标跟踪来预测真实目标的位置,修正目标检测器的检测得分,降低目标的虚检或漏检现象,进而提高目标检测性能。

1 相关基础

1.1 运动检测

运动检测是利用场景中的前景变化而背景不变的特性,将前景和背景进行分离。目前运动检测方法主要分为3类:帧间差分法、背景减除法和光流法[10]。其中,背景减除法能够适应背景的一些变化,抗干扰能力较强,是目前应用最广的一类运动检测方法。该方法通常需要先对背景进行建模,然后再通过当前帧图像与背景模型之间的差异来检测变化区域,提取前景目标。

1.2 目标检测

目标检测的基本原理是先通过训练数据集学习一个目标检测器,然后对于测试图像,采用不同尺度的窗口滑动扫描整幅图像,对每一个滑动窗口的图像块提取特征,并输入目标检测器进行分类,判断是否为待检测的目标。目标检测的关键环节有两个,一是特征提取,二是特征分类。常用的特征有Haar-like和HOG特征,常用的分类器有Adaboost和SVM。也可以直接将图像输入到深度网络(如卷积神经网络)中提取特征和进行分类。

1.3 目标跟踪

目标跟踪依据目标的颜色信息或者运动信息预测目标位置,常用的目标跟踪方法有CamShift、光流跟踪法和粒子滤波法[11]。其中,粒子滤波法是目前应用广泛的目标跟踪方法,其核心思想是随机采样和重采样。在初始条件下通过随机采样分布粒子,后续依据特征相似度计算每个粒子的重要性,对重要区域分布更多的粒子,而对不重要区域降低粒子数量,从而在粒子数量有限的条件下更关注重要区域,提高跟踪效率和精度。

2 融合运动检测与目标跟踪的目标检测方法

在智能交通领域,从监视视频中智能检测行人和车辆是一项基础性且极具挑战性的工作。目前行人检测研究比较成熟,相关方法也比较多,在一些背景较为简单的数据集上测试也取得了较好的结果。但是,在真实的交通监视视频中,行人遮挡和被遮挡的现象比较严重,行人的视角也经常变化,再加上实际场景中背景可能非常复杂,导致行人检测的虚警率和漏警率都偏高。而车辆检测目标效果更差,因为车辆的视角变化更大,且不同车辆的特征稳健性不强。这都给行人和车辆的可靠检测带来了很大挑战。为了解决实际监控视频中行人和车辆检测虚警率和漏警率偏高的问题,本文在现有行人和车辆检测思路的基础上,引入了运动检测和目标跟踪预测策略,通过运动检测过滤复杂背景并降低虚警现象,通过将目标跟踪与预测结果反馈给行人和车辆检测器,修正行人与车辆的检测得分,降低虚警和漏警。同时,在行人和车辆位置的多尺度计算结果滤波方面,采用非极大值抑制方法过滤冗余结果,提高行人和车辆位置检测的精确度。基于这一思路,本文设计的行人与车辆检测方法的实现流程如图1所示。

图1 实现流程

由图1可见,本文方法主要包括5个部分:运动检测、目标检测、目标筛选、目标跟踪和检测得分修正。其中,目标跟踪结果反馈给目标检测环节,通过修正目标检测得分来为最终的目标检测结果提供依据,这是本文的核心。具体描述如下。

2.1 运动检测

考虑到智能交通应用中车辆和行人目标总会存在运动特性,因此本文先对视频或图像序列进行运动检测,剔除复杂背景干扰,并降低在背景区域进行目标检测所消耗的时间。运动检测方法很多,本文在前一节已经综述了目前运动检测的常用方法。考虑到视频处理对时效性的较高要求,同时为了避免造成目标漏检或者不完整,本文选取目前运算效率较高、运动目标漏检少而且运动目标提取较为完整的EVibe算法,该算法是一种基于背景模型的运动检测算法,其背景模型构建过程引入了随机理论,可以仅依据单帧图像构建背景模型,非常简便快捷。该方法的实现过程详见文献[12],本文不再赘述。

2.2 目标检测

目标检测方法在前一节也有综述。本文主要考虑行人和车辆两类目标,选用文献[5]所述的目标检测器。该目标检测器所用的特征为HOG特征,所用的分类器为SVM分类器,详细实现过程可以参考文献[5]。其中,分类所需的训练样本在实验部分详述。在目标检测过程,针对运动检测所得到的运动区域图像块,采用多尺度的检测窗口来遍历该图像块,提取检测窗口内的图像HOG特征,然后输入已训练好的SVM分类器,得到输出结果。对于每一个运动区域图像块,目标检测器的输出结果记为{Di|i=1,2,…,N}。 其中,N表示该运动图像块检测到的目标总数。Di表示检测到的第i个目标,该结果可以用一个三元组来表示,记为Di={CDi,WDi,SDi}。 其中,CDi表示第i个目标的质心,WDi表示第i个目标的外接矩形,SDi表示第i个目标的检测得分。这里需要说明的是,第一,设定一个得分阈值To,仅保留超过阈值的目标检测结果,也即在保留的目标集合 {Di|i=1,2,…,N} 中,有SDi>Ts,i=1,2,…,N。 在本文中,To取经验值0.3。第二,为了在后续的过程中依据检测得分来输出最终的检测结果,这里目标检测器的输出结果集合 {Di|i=1,2,…,N} 是有序的,具体是按照检测得分SDi的大小降序排列,也即,SD1≥SD2≥…≥SDN。

2.3 目标筛选

对于图像中的某一目标,目标检测的检测器通常会在该目标附近的不同位置和尺度上得到许多检测结果,如图2(a)所示。对于同一目标而言,这些检测结果是存在冗余的,只需要筛选出一个结果作为该目标的最终检测结果,如图2(b)所示。本文采用非极大值抑制方法进行目标筛选,对冗余检测结果进行清理。

图2 目标筛选

对于每一个运动图像块的检测结果集合,其目标筛选过程的实现伪代码描述如下:

输入: {Di|i=1,2,…,N};

过程: (1) For(i=1;i≤N;i++)

(2) For(j=i+1;j≤N;j++){

(3) 计算两个外接矩形的重合度o(SDi,SDj);

(4) if(o(Di,Dj)>To)

(5) 删除Dj;

(6) }

重合度o(SDi,SDj) 的计算公式为

(1)

式中:Area(SDi∩SDj) 表示两个外接矩形SDi和SDj相交区域的面积,Area(SDi∪SDj) 表示两个外接矩形SDi和SDj所围成的整个区域的面积。

2.4 目标跟踪

粒子滤波跟踪是目前目标跟踪领域的一种性能优异且高效的跟踪算法。该算法的基本原理是依据重要程度对粒子进行重采样,越重要的区域散布的粒子数量越多,从而提高跟踪的精度。本文选择粒子滤波算法进行目标跟踪。在本文中,粒子滤波器由一定数量随时间变化的跟踪器表示,记为Tk,其中,k是跟踪器的序号,是一个不小于零的整数。对于第t帧视频图像,跟踪器的总数随时间t变化,记为K(t),因此k小于等于K(t)。每个跟踪器Tk包含n个粒子。记第t帧第k个跟踪器的第j个粒子为pt,k,j, 该粒子可以由目标的质心坐标、检测尺度和速度所组成的三元组来表示,记为pt,k,j={Ct,k,j,σt,k,j,vt,k,j}。 其中,Ct,k,j表示质心坐标,σt,k,j表示检测尺度,vt,k,j表示速度。每个粒子对应一个权重值,记为wt,k,j。 每一个跟踪器维护一个跟踪状态,记为Xt,k, 跟踪状态包含了该跟踪器的质心坐标Ct,k、 检测尺度σt,k和速度vt,k。 跟踪器的参数主要包括:出生概率Pb、死亡概率Pd、概率增加步长P+、概率减小步长P-、位置重采样参数σ1、尺度重采样参数σ2、速度重采样参数σ3。在本文的跟踪过程中,将粒子滤波分为预测、关联、观测和重采样4个阶段。详细说明如下。

(1)预测阶段

考虑到帧与帧之间时间间隔很短,假设两帧之间的目标运动是线性匀速运动。这样,粒子在当前帧的状态可以通过前一帧的状态预测得到,有

σt|t-1,k,j=σt-1,k,j

(2)

vt|t-1,k,j=vt-1,k,j

(3)

Ct|t-1,k,j=Ct-1,k,j+vt|t-1,k,j

(4)

(2)关联阶段

目标Di与跟踪器Tk的相似度计算公式为

(5)

式中:G(μ,σ) 表示均值为μ、方差为σ的高斯函数。跟踪器的速度计算公式为

(6)

对于分配了目标的跟踪器,其概率增加一个步长,表示为

Pt,k=Pt-1,k+P+

(7)

而对于未分配目标的跟踪器,其概率减小一个步长,表示为

Pt,k=Pt-1,k-P-

(8)

需要说明的是,在增加或者减小跟踪器概率时,要保证概率值在0~1之间。

对于为目标新分配的跟踪器,其初始概率与出生概率相同,表示为

Pt,k=Pb

(9)

本文依据跟踪器的概率来计算跟踪器中每一个粒子的权重,公式为

(10)

式中:Nt,k表示跟踪器Tk所包含的粒子数量。

(3)观测阶段

当新的观测值分配给跟踪器之后,对于该跟踪器的每一个新观测值和新的粒子,计算粒子与观测值之间的相似度,然后对跟踪器的权重进行更新,权重更新公式为

wt,k,i=wt,k,i+simDi,Tk

(11)

(4)重采样阶段

如果跟踪器的概率值Pt,k低于死亡概率Pd,则删除该跟踪器。否则,采用随机高斯波动对其粒子进行重采样。如果一个跟踪器的概率Pt,k小于1,则增加重采样的参数值,记为

(12)

(13)

(14)

另外,新跟踪器的状态可以内部所有粒子的状态的平均值来校正,表示为

(15)

在本文中,相关参数取值为经验值,具体为:Pb=0.5,Pd=0.5,P+=0.05,P-=0.05,σ1、σ2和σ3的初始值都设置为2。

2.5 检测得分修正

跟踪器通过粒子滤波方法跟踪目标,计算每一个粒子的权重,该权重反映了预测目标与真实目标的关联程度。然后将该结果反馈给目标检测器,修正目标检测器的检测得分,公式为

(16)

(17)

(18)

最后,依据修正后的检测得分筛选目标,得到最终的目标检测结果。

3 对比实验

本文主要面向智能交通应用,针对行人和车辆两类目标进行检测。下面采用本文方法以及行人和车辆检测领域的优秀方法分别进行对比实验,其中,行人检测实验选择文献[4]~文献[6]所述方法进行对比实验,车辆检测实验选择文献[7]~文献[9]所述方法进行对比实验。所有方法都在相同的实验平台上进行。其中,计算机平台性能参数为:3.2 GHZ 4核CPU、8 G内存、Windows 7操作系统、Visual Studio 2012软件环境。实验数据分为行人数据集和车辆数据集两个部分,具体构建方法在下面的实验中分别介绍。实验时统计各种方法检测到的目标窗口,通过与标记的目标窗口进行比较,来确定检测到的目标是否正确。具体地,判断目标是否被正确检出的依据是,检测到的目标外接矩形与数据集中标记的目标外接矩形的重合度超过50%,重合度的计算公式如式(1)。根据这些统计结果,计如下3个评价指标:

(1)真正率:正确检出的目标数量与需要检出的目标数量的比值,该值越大越好。

(2)假正率:错误检出的目标数量与检出的目标总数的比值,该值越小越好。

(3)处理帧率:平均每秒能处理的视频帧数量,该值越大越好。

依据这些指标来评价不同方法的性能。下面分别介绍行人检测实验和车辆检测实验及对比结果。

3.1 行人检测实验

在进行行人检测实验前,本文方法和文献[4]~文献[6]所述方法都需要训练一个行人目标检测器。因此,需要一个训练数据集。本文选择国际上常用的INRIA数据集进行训练,该数据集包含行人图像3548幅、非行人图像1716幅。4种方法按照各自所选的特征及分类器来构建目标检测器。之后,进行行人检测实验。考虑到智能交通应用场景,本文选择Caltech数据集作为行人检测实验的测试数据集。该数据集是将真实的街景视频存储为图像序列形式,视频帧率为30 fps,图像尺寸为640×480。本文方法利用图像序列之间的帧间信息进行运动检测和跟踪,而其它3种方法都是只针对单幅图像进行行人检测的。需要说明的是,4种方法在采用多尺度窗口扫描图像时,检测窗口最大和最小尺寸一致,分别为80×160和24×48,窗口步长为1.2像素。表1给出了4种方法的实验结果统计。

表1 行人检测实验结果统计

由表1可见,本文方法的假正率和处理帧率指标相对于其它3种方法而言优势非常明显,这是因为本文方法充分利用了图像序列帧间的相关信息。具体地,本文方法先采用运动检测方法,剔除了大量背景区域。于是,进行行人检测的图像区域面积大幅降低,尽管本文方法与其它方法相比在目标检测步骤上还多了运动检测和目标跟踪两个步骤,但这些步骤的运算复杂度远低于目标检测的运算复杂度,因此这些步骤的计算量相对于在整幅图像上进行目标检测而言是很小的,尤其是像文献[6]那样采用深度学习方法进行行人检测时,在整幅图像上进行检测的效率非常低。同时,运动检测剔除了大量复杂背景区域,可以有效降低这些区域上可能存在的行人目标误检现象,从而大幅降低了假正率指标。另外,本文方法还通过目标筛选和目标跟踪两个策略,进一步对目标进行确认,对于降低假正率指标也起到了很大作用。从真正率指标来看,本文方法也是4种方法中最高的,这得益于本文方法依据跟踪结果修正检测器的检测得分,从而使得行人目标在运动过程中能够持续被检出,避免行人目标在运动过程中由于遮挡或视角变化等因素影响而降低了检测得分,从而间接提高了目标的正确检出率。本文方法所用的特征和分类器与文献[5]方法相同,但是从真正率指标来看,本文方法相对于文献[5]方法提高了17.2%,这说明融合运动检测和目标跟踪之后,漏检的目标数量得以有效控制,正确检测的目标数量明显增多。

3.2 车辆检测实验

车辆检测与行人检测类似,只是目标由行人改变为车辆。同样,需要先训练目标检测器。由于目前公开的车辆数据集很少,本文使用的车辆训练样本集是通过互联网收集建立的,训练集包括2000幅车辆图像和6000幅非车辆图像,为了标记方便,每一幅车辆图像中都只包含一台车辆,而且车辆图像经过人工裁剪,尺寸为100×100,车辆周围大约留有10个像素的背景区域。同样地,4种方法按照各自所选的特征及分类器来构建车辆目标检测器,之后进行车辆检测实验。考虑到智能交通应用场景,测试用的车辆数据集选用的是Changedetect.net上的baseline子集中的highway测试图像序列,该序列的图像尺寸为320×240。4种方法在采用多尺度窗口扫描图像时,检测窗口最大和最小尺寸一致,分别为100×100和30×30,窗口步长仍为1.2像素。表2给出了4种方法的实验结果统计。

表2 车辆检测实验结果统计

由表2可见,尽管与表1相比,本文方法在3项指标方面的优势有所下降,但本文方法所得到的3项指标仍然是4种方法中最优的,尤其是假正率和处理帧率两个指标。这说明,不论是行人目标还是车辆目标,本文方法都能够大幅降低目标的虚检现象,并大幅提高目标的检测效率。与表1相比,这里所对比的3种方法的处理帧率明显高于表1中3种方法,而本文方法的处理帧率与表1相差不大,原因主要是车辆检测处理的图像尺寸小于行人检测处理的图像尺寸,这样情况下,对整幅图像进行目标检测时,由于搜索范围减少很多,导致算法的处理帧率都有较大提升。而本文方法只在运动区域图像块上进行目标检测,与整幅图像的尺寸关系不大,因此本文方法在检测车辆目标和行人目标时处理帧率的差异不大。

4 结束语

行人和车辆检测是智能交通系统的基础研究课题之一,通过检测行人和车辆的位置有助于对交通行为进行分析和预测,对于提高交通系统的智能化水平有着重要意义。目前,基于计算机视觉的行人和车辆检测方法较多,但多数是针对背景简单的视频或者图像进行的,在复杂的交通场景中往往会由于复杂背景或者目标遮挡的影响而降低目标检测性能。本文针对这一问题,将运动检测和目标跟踪技术引入到目标检测过程中,通过运动检测技术来降低复杂背景的干扰,通过目标跟踪技术来修正目标检测器的检测得分,降低目标遮挡等引起的检测得分下降问题,提高目标的检出率。本文在Caltech数据集上进行行人检测实验,在highway测试图像序列上进行车辆实验,通过与现有的行人和车辆检测方法进行对比分析,验证了本文方法可以取得更高的真正率、更低的假正率和更高的处理帧率,尤其是在假正率和处理帧率两个指标方面,本文方法具有显著的优势。目前,本文在目标跟踪时对慢速移动的行人目标和快速移动的车辆目标采用相同的参数,理论上这不是最佳的解决方案,后续我们将针对这一问题进行深入研究,提出更好的解决思路。

猜你喜欢

跟踪器检测器行人
光伏跟踪器阵列跟踪精度的测算方法研究
毒舌出没,行人避让
浅析一种风光储一体化跟踪器
超长待机的自行车位置跟踪器
路不为寻找者而设
双向多轨迹判定方法在目标跟踪中的应用研究
我是行人
车道微波车辆检测器的应用
一种雾霾检测器的研究与设计
一体化火焰检测器常见故障分析