Camshift与目标轨迹跟踪相结合的多目标跟踪算法

2015-03-27 05:57
玉溪师范学院学报 2015年4期
关键词:轨迹目标算法

(玉溪师范学院 信息技术工程学院,云南 玉溪 653100)

目前,多目标跟踪是智能视频监控领域一个极具挑战的研究课题,很多跟踪算法被广泛的应用,如卡尔曼滤波算法[1,4],Camshift[2,4],粒子滤波器[1,3]等.这些算法在特定的简单场景下都能够取得很好的跟踪效果,但是,粒子滤波器会由于粒子退化现象导致后验概率的估计错误;卡尔曼滤波算法有很高的计算复杂性,不适合对运动目标进行实时的跟踪;Camshift算法通常应用在单目标跟踪中,在多目标跟踪中,鲁棒性很差.由此可见,在复杂多目标场景下,这些算法都不能取得理想、有效的跟踪效果,针对具体的跟踪环境,这些算法都有待改进.文献[5]中的方法能够对单个运动目标进行鲁棒跟踪,在多目标存在的复杂场景下,该法行不通.文献[6]中的算法,在复杂场景下能够取得很好的跟踪效果,但是该法对跟踪场景中的静态目标和重新进入场景的目标会跟踪失败.文献[7]中的算法,可以很好的跟踪到场景中的静态目标和重新进入场景的目标,但是在复杂场景下,其不能取得满意的效果.为了进一步改善多目标跟踪效果,本文提出了一种改进的基于Camshift与目标轨迹跟踪相结合的多目标跟踪方法.

1 运动目标轨迹和Camshift相结合的多目标跟踪算法

基于图像序列的多目标跟踪,就是通过对视频图像序列进行分析,从图像中检测出运动目标,然后对感兴趣的目标,比如车、人等,在后续的帧图像中进行跟踪,直至其消失在视频场景中.在实际应用中,视频场景中的运动目标的运动状态多种多样,例如,对于进入场景后停止运动的目标,要求保持其跟踪焦点,以实现对其进行持续的跟踪;对于场景中从静止状态改变为运动状态的目标,要求识别出该目标并继续进行跟踪;对于已经退出视频场景,但稍后又重新进入场景的目标,要求能够在其重新进入场景中时,对其进行准确的识别,将该目标与之前其自身的运动参数及状态对应起来,并在后续的视频图像中对其进行持续的跟踪.同时,在视频场景中存在多个目标的时候,对这些多个目标进行有效的跟踪也是一个亟待解决的挑战性问题.为了满足这些实际应用中的跟踪要求,单纯的依靠目前某一种跟踪算法是行不通的.只有针对这些具体的跟踪要求,从当前的主流跟踪算法中选择合理的跟踪算法,并将其结合,互补利弊,才能真正有效的解决这些跟踪难题,达到跟踪目的.

运动目标轨迹跟踪算法在多目标存在的复杂场景下能够取得令人满意的跟踪效果,实时性好,但该算法不能对静止目标、再进入场景和退出场景目标进行持续有效的跟踪.Camshift在单目标或者目标很少等简单场景中,能够得到准确、鲁棒的跟踪效果,但在多目标复杂场景下,其跟踪效果不理想.本文将二者结合,正好可以很好地发挥各自的优势,从而实现多目标复杂场景中,对运动目标进行持续、有效的跟踪.

1.1 运动目标轨迹跟踪方法的基本原理

运动目标轨迹跟踪算法的基本原理是将运动目标从背景中检测并分离出来之后,与已有的轨迹进行匹配和关联,从而实现对目标的跟踪[6].对于单目标场景,如果这一目标不是新出现的目标,那么把该目标直接赋予已有轨迹就可以了.但是,多目标场景下,需要通过距离矩阵和关联矩阵来建立前景目标和运动轨迹之间的对应关系来对目标进行持续的跟踪.运动目标轨迹跟踪算法的基本原理和具体步骤如下:

M(k)={M1(k),M2(k),…,Mn(k)}

(1)

T(k)={T1(k),T2(k),…,Tn(k)}

(2)

(3)

(4)

在上述4个影响因素中,前3个指标均为数值指标,很容易量化。而对于第4个因素,可以通过查询生产设备的订货纪录结合工作人员的经验,将这一指标转化为0~1的数值指标,即极易容易采购则赋值为1,否则为0。

(5)

①一个运动轨迹和多个前景目标相关联(此行有多个非0元素);

②一个前景目标和多条运动轨迹相关联(此列有多个非0元素);

③一条运动轨迹和一个运动目标相关联(矩阵元素中为2).

1.2 改进算法的基本框架

在运动目标轨迹和Camshift相结合的多目标跟踪机制中,运动轨迹跟踪法主要对场景中处于运动状态的目标进行跟踪,而对于在场景中处于静止状态的目标或者运动到视频场景之外的目标,以及已经失去跟踪焦点的再进入场景目标,基于运动轨迹跟踪的算法会丢失掉该目标的跟踪焦点,此时则基于Camshift及丢失焦点前的跟踪信息进行分析和处理,在限定范围内搜索到目标,并对该目标进行继续跟踪.如果Camshift在限定范围内仍无法获取到目标,那么视为已经运动到场景之外的运动目标.此外,当场景中处于静止状态并基于Camshift进行跟踪的目标的焦点发生明显的变化的时候,算法将停止Camshift,取回目标编号,并重新对该目标进行基于运动轨迹跟踪的方法对其进行跟踪并记录其运动轨迹.

为了分析的方便,我们定义运动目标的存储结构为Area{rect,object,trace,old},其中,Areai(k)代表第k帧中的第i个目标的出现区域,rect代表运动目标的矩形框,object代表运动目标的编号,trace表示运动目标的轨迹,old代表衰老计数值.则运动轨迹和Camshift相结合的融合跟踪算法的具体步骤阐述如下:

②对于检测出的所有运动目标,将其运动区域和前一帧中所记录的运动轨迹进行匹配,匹配成功的标上正确的目标编号,并根据此目标在当前帧的质心位置,更新对应此目标编号的运动轨迹,同时存储好新进入场景的运动目标和退出场景中的目标.

③对于新加入场景中的目标,将其目标区域和基于Camshift跟踪的各个目标区域进行比较和匹配,判断其是否为重新进入场景中的原有目标,如果是则中止Camshift跟踪,并用取回的该原有目标的编号为其编上号,并更新此目标的原有结构记录,并转到步骤5,否则继续步骤4.

④为新进入场景中的目标建立新的运动目标记录,并按式6将其对应的运动区域参数添加到运动目标结构记录中.

(6)

其中,n代表当前帧中的运动目标的总个数.如果还有目标尚未被处理,则转步骤3进行继续处理.如果目标已经全部处理完毕,则继续步骤5.

⑤对于上一帧中仍未匹配的运动目标,为了避免个别运动目标的暂时消失,对该目标采取暂留措施,将该区域添加到运动目标区域列表中,并将其的衰老计数值Areai(n)→old增1,若该值未超过预先设立衰老阈值则视为在当前场景中暂时失去跟踪焦点的运动目标,并转下一步骤.如果Areai(n)→old已经超出了衰老上限,那么认为该目标已经彻底离开场景,清除该目标记录.

⑥对于在当前场景中暂时失去跟踪焦点的运动目标,将其运动区域参数传递给Camshift,计算该运动目标的颜色概率分布,获取其目标特征模板,并在附近区域进行匹配搜索,若搜索到匹配目标,则认为该目标在当前帧中处于静止状态,此时,将其运动区域模板信息传递给Camshift并进行存储,在后续帧中用Camshift对其进行锁定跟踪,直到其重新开始运动.如果未搜索到匹配目标,那么认为该目标已经离开视频场景,将其运动参数暂时存储起来,以防其在之后的帧中重新进入场景.

⑦若还有上一帧中未匹配运动目标未被处理,则转到步骤5.

⑧对所有运动目标的运动轨迹进行更新.

2 实验结果及分析

在VC++和OpenCV编程环境下,对本文中的改进算法进行了验证,实验视频为户外拍摄,在视频场景中,场景复杂,存在多目标,视频的分辨率为320×480.实验结果显示在整个视频跟踪阶段,场景中的多个目标(包括场景中的运动目标、静止目标、再运动目标、再进入场景目标、离开场景目标等)都得到了鲁棒和准确的跟踪,取得了比较满意的跟踪效果.

表1 多目标跟踪过程中的运动轨迹跟踪数据 表2 距离矩阵和关联矩阵数据

图1显示了利用Camshift进行跟踪的跟踪效果图,我们不难发现,不仅存在许多不准确的跟踪结果,同时,该算法只能对单目标进行跟踪.

图1 Camshift跟踪算法的跟踪效果 图2 运动目标轨迹跟踪算法的跟踪效果[6]

图2显示了应用运动轨迹跟踪方法的跟踪效果.我们发现,在场景中,静止的运动目标会跟踪丢失.同时,对重新进入场景中的目标,该方法会将其定义成新的目标进行跟踪,这是不合理的.

图3显示了本文中基于运动轨迹和Camshift相结合的融合跟踪算法的跟踪效果.可以看出,相对于Camshift算法,在多目标场景下,该法取得了更加满意的跟踪效果.

由以上实验结果可以看出,本文中的改进算法取得了比文献[6]更准确、更理想的跟踪效果,不但实现了Camshift对多目标的准确跟踪,而且能够有效的对场景中的静止目标、再进入目标、再运动目标和退出场景目标等进行有效的跟踪,满足了实际应用中的跟踪要求.

图3 Camshift和运动目标轨迹相结合的跟踪算法的跟踪效果[6]

[1]Ristic B,Arulampalam S,and Gordon N.Beyond the Kalman Filter:Particle Filters for Tracking Applications[M].Boston,London:Artech House,2004.

[2]张宏志,张金换,岳卉,黄世霖.基于CamShift的目标跟踪算法[J].计算机工程与设计,2006,27(11):108-110.

[3]Nummiaro Katja,Koller-meier Esther,Van Gool Luc.Object Tracking with an Adaptive Color-Based Particle Filter[C].Proceedings of the 24th DAGM Symposium on Pattern Recognition.London,UK Springer-Verlag,2003,:591-599.

[4]孙凯,刘士荣;.多目标跟踪的改进Camshift/卡尔曼滤波组合算法[J].信息与控制,2009,38(1):11-16.

[5]YUE Ying-ying,GAO Yun,ZHANG Xue-jie.An Improved Camshift Algorithm Based on Dynamic Background[R].1st International Conference on Information Science and Engineering,2009.

[6]黄绿娥,李平康,杜秀霞.室内人体运动目标的自动跟踪方法[J].计算机工程,2009,35(9):201-204.

[7]苏兴俊,陈景波,胥法伟.交通图像序列中的多目标跟踪[J].常熟理工学院学报,2009,23(4):82-86.

猜你喜欢
轨迹目标算法
轨迹
轨迹
Travellng thg World Full—time for Rree
进位加法的两种算法
轨迹
进化的轨迹(一)——进化,无尽的适应
一种改进的整周模糊度去相关算法
一种基于L-M算法的RANSAC图像拼接算法
新目标七年级(下)Unit 3练习(一)
新目标七年级(下)Unit 4练习(一)