基于运动信息和轨迹关联的视频行人检测和跟踪方法
技术领域
本发明属于数字图像处理技术领域,涉及视频行人检测和跟踪技术。
背景技术
随着现代计算机技术的发展和计算机视觉原理的广泛应用,利用人工智能和计算机图像处理技术对视频中行人的检测和跟踪的研究越来越热门。视频行人检测和跟踪就是在一段视频序列中找出行人的位置以及它的轨迹。是作为现代智能监控的基础技术,可运用于各种监控场景,如道路、车站以及机场等。行人检测和跟踪可以分为两个部分,即行人检测和行人跟踪。
常用的行人检测技术如下:
1)基于背景建模的行人检测方法:该方法通过对背景建模,分割出视频中的运动前景,提取运动目标,然后通过形态学的处理来检测行人。此方法优点是速度快,缺点是无法分辨运动目标是否是行人,且鲁棒性不高。
2)基于统计学习的行人检测方法:该方法通过大量的离线训练样本构建行人检测分类器,对视频中的每一帧图像采用滑窗搜索的方式,判断每一个滑窗是否存在行人。此方法的优点是鲁棒性高,缺点是计算量大,实时性不高。
常用的行人跟踪技术如下:
1)基于模板匹配的跟踪算法:基本思想是把预先给定的模板作为检测和识别的依据,用模板与待检测图像的各个子区域进行匹配,最相似的子块就是目标的当前跟踪到位置。这类方法优点是计算简单速度快,缺点是容易发生漂移,鲁棒性不高。
2)基于特征和运动预测的跟踪算法:该方法是对检测到的目标行人提取特征,并预测在视频下一帧的位置,以此为依据找出最相似的位置作为跟踪目标的当前位置。这类方法优点是鲁棒性较好,但是当发生遮挡时容易跟丢。
发明内容
本发明所要解决的问题是,提供一种能快速检测到行人,并能准确的进行跟踪的方法。
本发明为解决上述技术问题所采用的技术方案是,基于运动信息和轨迹关联的视频行人检测和跟踪方法,包括以下步骤:
步骤1:行人检测分类器训练
在带检测与跟踪的应用场景中截取包含行人的各种姿态的行人作为正样本,把场景背景当作负样本,对每一个正负样本提取积分通道特征作为样本的训练特征输入分类器进行训练得到训练好的行人检测分类器;积分通道特征为LUV颜色空间上的L、U、V三个颜色通道加上7个梯度方向通道组成的特征;
步骤2:行人检测
步骤2-1对连续三帧图片,当前帧I(k)分别与前一帧I(k-1)和后一帧I(k+1)分别相减,对2个相减结果进行与操作,再对与操作结果进行连通域填充和闭操作得到运动区域图片;
步骤2-2利用运动区域图片对当前帧进行掩模操作得到运动分割后的图像I;
步骤2-3在图像I上用矩形窗来滑动搜索提取特征输入训练好的行人检测分类器中判断是否存在行人,若存在,则记录矩形框位置,滑动搜索完毕后对记录的矩形框进行融合得到当前帧的行人检测结果;
步骤3:行人跟踪
步骤3-1对于当前帧行人检测结果中每一个行人进行判断,是否为首次跟踪行人,如是,则进行轨迹初始化后进入步骤3-2,如否,则直接进入步骤3-2;第t帧时的第i个行人表示为xi=(pi,si,vi),其中p,s,v分别表示目标的位置坐标、长宽大小、运动速度,轨迹为从第1帧到第t帧的轨迹集合,ts表示最早出现的行人的轨迹起始帧号为第s帧,te表示最晚出现的行人的轨迹起始帧号为第e帧;
步骤3-2求投影矩阵:取当前帧的置信度高的轨迹为训练样本,提取样本的HSV颜色空间的三个颜色通道的颜色直方图作为特征向量,若行人xi提取到的特征向量为轨迹Ti是包含N帧中行人xi的集合,则其特征向量提取公式为:
选取训练样本集为S={fi,yi},其中fi为第i个样本的特征向量,yi为样本i所属类别;根据训练样本计算类间离散矩阵Sb和类内离散矩阵St:
其中,C代表样本类别总数,mi为第i类特征值均值,μ为全局特征值均值,(·)T表示矩阵转置;(fi-μ)T利用类间离散矩阵Sb和类内离散矩阵St得到投影矩阵U:
步骤3-3根据投影矩阵U计算行人和轨迹的相似度:
其中Λ(Ti,xi)就是第i轨迹Ti和第i行人xi之间的相似度值,和分别为第i个轨迹的特征向量和第i个行人的特征向量,U为投影矩阵,||·||为二范数。
步骤3-4对检测到的行人进行局部关联,局部轨迹关联代价矩阵S:
S=[sij]h×n,sij=-log(Λ(Ti,xj))i∈[0..h],j∈[0..n]
其中,当前帧为第t帧时,h为第t帧的轨迹数,n为第t帧的检测的行人数,Ti代表第i条轨迹,xj表示第j个检测到行人,sij表示代价矩阵S在第i行第j列的值,即轨迹Ti和行人xj的关联代价值;
步骤3-5计算轨迹置信值conf(Ti):根据轨迹的历史信息,包括轨迹的长度、遮挡程度、相似度计算轨迹的置信值conf(Ti):
其中L为轨迹Ti的长度,w为该轨迹目标未检测到的帧数,β为调节参数,conf(Ti)得到的值越大代表置信度越高;
步骤3-6对小轨迹进行全局关联,我们定义关联代价矩阵G为:
Λ(Ti,Tj)表示两条小轨迹Ti和Tj之间的相似度值,θ为经验值;
conf(Ti)为轨迹Ti置信值;
步骤3-7返回步骤2进行下一帧的检测与跟踪。发明采用两个步骤:
1)基于运动区域图的快速行人检测:用最简单快速的帧差法检测运动,并结合数字图像处理中的形态学方法,先检测出视频中的运动区域。然后在运动区域中采取滑窗搜索的方式,提取特征,并用预先训练好的行人检测分类器,分类最终得到分类结果。
2)基于轨迹关联的行人跟踪方法:利用上一步骤得到的行人检测结果作为本步骤的输入,开始时为每一个检测到的行人初始化一个跟踪器,每个跟踪器包含目标的历史运动信息和外观信息。处理当前帧时,对输入的每一个检测结果,提取位置信息和外观信息,并以此为依据建立关联矩阵,来关联之前帧的跟踪目标,最终得到行人的跟踪轨迹。
本发明的有益效果是,能够更加快速的在视频流中检测到行人,并能准确的进行跟踪,具有良好的实时性,在较复杂的场景中也有良好的鲁棒性。
附图说明
附图1:基于运动信息的行人检测流程图
附图2:基于轨迹关联的行人跟踪流程图
附图3:跟踪轨迹置信度示意图
具体实施方式
实现平台:Matlab,C++
硬件平台:Intel i3+2G RAM
软件平台:Matlab,VS2010,OPENCV2.4.9
采用本发明的方法,首先使用Matlab进行算法验证,并在C++平台上进行开发。我们通过离线样本训练行人检测分类器,运用本文方法进行检测,并把检测结果用本文方法进行跟踪,实验效果表现鲁棒,对行人部分遮挡,人与人之间的遮挡以及多人的场景都有较好的鲁棒性,可以在现实场景运用。
实现方法如下:
基于运动信息的视频行人检测方法流程,如图1所示,包括以下步骤:
步骤1:离线训练行人检测分类器:在相应的应用场景中截取包含行人的各种姿态的行人作为正样本,把场景背景当作负样本。对每一个正负样本提取积分通道特征,即L、U、V三个颜色通道加上7个梯度方向通道,作为样本的训练特征。训练样本数据集可表示为公式T={(x1,y1),(x2,y2)…(x3,y3)},其中x为特征向量,y∈{1,-1}为样本标号,初始化时为每一个样本赋予相同的权重,每一次训练时计算误差率em,如公式(1-3)所示,其中Gm(x):x∈{-1,+1}为基本弱分类器,
根据误差率得到每个基本分类器的重要性αm,如(1-4)所示更新权重,
最终得到的分类器如下公式(1-5)所示。
步骤2:在线基于运动区域图的快速行人检测
步骤2-1三帧差法检测运动区域:对连续三帧图片,I(k-1)、I(k)、I(k+1)则检测到的运动前景图片为F=|I(k)-I(k-1)|∩|I(k+1)-I(k)|。即当前帧I(k)分别与前一帧I(k-1)和后一帧I(k+1)分别相减,并进行与操作,并对结果进行连通域填充和闭操作,最终得到运动前景图片。
步骤2-2对运动区域滑窗检测得到行人检测结果:用步骤2-1得到的运动区域图,来对原图进行掩模操作,得到运动分割后的图像I。在图像I上用宽度为W,高度为H的矩形窗来滑动搜索整个图像,把每一个矩形窗都按步骤1-2中提到的方法提取积分通道特征,并将特征输入到分类器中进行判断是否存在行人。若存在,则记录矩形框,最后根据重叠面积对矩形框融合,得到最后的检测结果。
基于轨迹关联的视频行人跟踪方法流程,如图2所示,包括以下步骤:
步骤3:基于轨迹关联的行人跟踪方法
设在第t帧时的第i个行人表示为xi=(pi,si,vi),其中p,s,v分别表示目标的位置坐标、长宽大小、运动速度。轨迹Ti={xi|1≤ts≤k≤te≤t}为第1帧到第t帧的轨迹集合,由于在视频中可能存在多个行人,每个行人在视频帧中出现的起始帧和结束帧不同,所以ts表示第i个行人的轨迹起始帧号为第s帧,te表示第i个行人的轨迹起始帧号为第e帧;
步骤3-1初始化:把步骤1得到的行人检测结果作为输入X={xi},初始化一个轨迹Ti集合。
步骤3-2求投影矩阵:取当前帧的目标为训练样本,提取每一个样本的HSV三个颜色通道的颜色直方图作为底层特征,若行人xi提取到的特征向量为fx,轨迹Ti是包含N帧行人的集合,则其特征向量提取公式为:
利用线性判别分析算法(ILDA)在线训练一个外观分类模型。设选取的训练样本集为S={fi,yi},其中fi为第i个样本的特征向量,yi为样本i所属类别。根据训练样本计算类间离散矩阵Sb和类内离散矩阵St如下公式所示(2-1),
其中C代表样本类别总数,mi为第i某类特征值均值,μ为全局特征值均值。利用类间离散矩阵Sb和类内离散矩阵St得到投影矩阵U,如公式(2-2)所示,
步骤3-3根据投影矩阵计算行人和轨迹的相似度:多个目标和多条轨迹之间的相似度值,计算相似度的公式如下(3-3)所示,
其中Λ(Ti,xi)就是计算第i轨迹Ti和第i行人xi之间的相似度值,和分别为轨迹的特征向量和行人的特征向量。矩阵U为上一个步骤计算得到的投影矩阵。
步骤3-4利用局部关联得到可靠的小轨迹:对相邻帧的检测到的行人,根据步骤3-3得到投影矩阵,计算行人和轨迹之间的相似度,得到的局部轨迹关联代价矩阵如(2-4)所示
S=[sij]h×n,sij=-log(Λ(Ti,xj))i∈[0..h],j∈[0..n] (2-4)
其中,h为第t帧的轨迹数,n为第t帧的检测的目标数。通过匈牙利算法解这个分配优化问题,从而将相邻几帧相似度高的目标进行连接,得到可靠的短轨迹。相邻帧信息存储在轨迹中,通过与轨迹的相似度计算,就是在利用相邻帧的信息得到小轨迹。
步骤3-5计算轨迹置信值conf(Ti):根据轨迹的历史信息,包括轨迹的长度、遮挡程度、相似度计算轨迹的置信值,如公式(2-5),
其中L为轨迹长度,Λ(Ti,xi)为步骤2-3得到的相似度值,为该轨迹目标未检测到的帧数,β为调节参数。计算得到的置信度效果图如图3所示,conf(Ti)得到的值越大代表置信度越高。
步骤3-6全局关联得到跟踪结果:对步骤3-4得到的长度不同的小轨迹进行全局关联得到最终的输出轨迹,我们定义关联代价矩阵G如公式(2-6)所示,
由于存在多条小轨迹,Λ(Ti,Tj)表示两条小轨迹Ti和Tj之间的相似度值,θ为预设经验值,对轨迹提取特征向量方法是对其所包含的行人提取特征向量的平均值作为轨迹的特征向量,并利用步骤2-3得到的投影矩阵进行计算,
conf(Ti)为轨迹Ti置信值。根据小轨迹之间的相似度,以及轨迹自身的置信度值,可以计算得到代价矩阵G,并依据代价矩阵进行小轨迹之间的连接,从而得到每个目标的跟踪轨迹。
步骤3-4以及3-6得到关联代价矩阵之后对轨迹的关联为现有技术,通过匈牙利算法解分配优化问题就能对轨迹进行关联。体算法参考文献Y.Li,C.Huang,andR.Nevatia.Learning to associate:Hybridboosted multi-target tracker forcrowded scene.In CVPR 2009。
步骤3-7进行下一帧的跟踪,步骤2,得到每一帧的跟踪轨迹,从而实现在线跟踪。