利用邻域象素合成实现对目标的快速自动标记
2010-01-13
作者:王明佳1,2,王延杰1,张旭光1,2
摘 要:为了提高多目标跟踪中的处理速度,提出一种快速标记多目标的方法,并给出了算法流程和实验结果分析。通过图像坐标变换,将9点象素融合到新图像中的1点,逐行反复搜索邻域连通点以实现目标自动标记。
关键词:多目标跟踪目标标记目标识别
现代技术的发展,对电视跟踪性能的要求也越来越高,跟踪技术所解决的问题也越来越复杂。在许多场合,例如空中交通管制(民航飞机)和海洋监测等都需要同时跟踪多个目标。多目标跟踪中一个重要的问题是目标的自动标记。自动标记要求准确识别每个目标,既不能把1个目标识别为2个目标,也不能把2个目标当成1个目标处理。准确性和快速性是对目标标记的2个要求,然而这2方面也相互制约。近年来,多目标快速标记成为解决目标跟踪问题的制约因素,因此也受到越来越多的关注。
目标标记的方法有很多,传统的目标标记方法是以象素为基本单位,该方法比较耗费内存和时间。20世纪90年代提出利用目标起终点坐标对目标进行标记[1]。该方法计算速度有一定程度提高,同时也降低了内存需求,缺点是只包含每行各个分段的起终点位置信息,目标信息不连贯,且该算法实现复杂。本文提出一种方法,它减小了标记过程处理象素的个数,在标识目标的可靠性和速度方面都得到了提高。
1 目标标记方法
目标标记是在当前帧图像二值化之后对各个目标进行自动识别。识别的方法是在图像中寻找连通区,彼此相连的目标点属于同一个目标,各个不同的连通区域对应不同的目标。通过自动标记过程可以得到目标的个数、各目标的位置、轮廓等目标特征信息,从而在后序处理过程利用这些信息来保证跟踪性能的可靠性。目标标记的错报率对跟踪结果会造成直接影响,所以目标标记是多目标跟踪过程中的一个关键环节。
目标标记是一个较耗费内存和计算量的环节。标记的速度与目标数量以及目标复杂程度成正比。传统的目标标记方法直接对二值化之后的目标进行处理,寻找图像中的各个目标连通区。由于目标形状复杂多样,因此寻找连通区的算法也较复杂,从而导致计算量非常大。此外由于噪声干扰的存在,增加了寻找连通区域的计算量和出错概率。本文通过对二值图像进行图像坐标系变换,大量减少了标识目标运算中象素点的个数,从而提高了标识目标的速度。二值图像的坐标变换过程如图1所示,利用一个3×3的模板将图像image1中的9个象素点转变成图像image2中的1个象素点。转换的准则是:当区域中9个象素点中的目标点(黑色)个数大于5时,则变换后的象素点是目标,将该点赋值为1;否则为背景,将该点赋值为0。变换后image2的图像信息量只有image1图像的1/9。
目标标记逐行搜索过程如图2所示。在图2(a)中图像image2有2个目标,分别是目标1和目标2,图2(b)是对图2(a)中目标1的放大图。在图2(b)中,各个方格表示目标点,方格之外的区域表示背景。对图像image2中的目标标记具体过程如下。
(1)在图像image2中逐行寻找第1个象素值为1的点,其坐标为(k,l),之后将状态标记nextL置为false,沿着第k行向右依次查询象素值为1的目标点,直到象素点Pixel(k,m)=0,停止向右查询。将(k,l)至(k,m-1)之间点加入到目标数组中,并且把这些点的象素值置为2。检测第k+1行中(k+1,l-1)至(k+1,m)点,如果存在象素值为1的点,则nextL=true,并且将该点象素值修改为3。
(2)依次检测以下各行(各行处理方式相同),当检测到图2中最为复杂的第s行时,如果nextL=true,则处理该行,否则终止。接着设置nextL=fasle,从第s行第1个象素值为3的目标点A开始,从A点开始在左右二侧找到象素为1或3的连通区,左侧连通到(s,p),右侧连通到(s,q)。将该行(s,p)至(s,q)的象素点加入到目标数组,并且将这些象素值置为2,同时检测上一行(s-1,p-1)至(s-1,q+1)之间的象素和下一行(s+1,p-1)至(s+1,q+1)之间的象素。如果在这些点之间存在象素值为1的象素点,则将标志位next置为true,并且把这些点的象素值修改为3,如图2(b)中E、F、G、H、I、J、K点置为3。
(3)同步骤2,依次检索每一行,直到该行的状态标记nextL=0,停止向下一行搜索目标点。
(4)在整幅图像上重新搜索,如果检测到某一点象素值为3,则重复步骤2,将所有象素点加入到目标当中。重复搜索整幅图像直到图像中没有象素值为3的点为止,第1个目标的象素点搜索完毕。
(5)搜索第2个目标,接着在图像中逐行搜索第一个为1的象素点,重复步骤(1)。这样依次将图像中所有目标加入到目标数组中。
(6)按照图1所示方法进行反变换,将图1(b)中的1个象素点扩展到图1(a)中的9个象素点。为了精确地得到各个目标,将求取的各个目标在各个方向外扩3个象素点。在该区域中每行第1个象素值为1的点为目标的该行起始点,每行最后一个象素值为1的点为该行的终止点,在该区域内按重心法计算各个目标的重心。
目标标记的程序流程图如图3所示。
2 目标标号维持
经过以上步骤各目标标记完毕,且目标标号按照该目标出现的位置进行编号,此时目标的编号不能和图像序列中先前的目标建立对应统一的关系。多目标跟踪就是要保持各个目标在其生存周期间,对该目标的编号保持不变。当前帧与前一帧目标的几种位置关系如图4所示。当前帧图像中虚线目标表示前一帧目标在当前帧图像上的位置映射,实线表示在当前帧中出现的目标。当目标做无交叉运动时,当前帧目标只与前一帧图像上一个目标映射发生重叠,如图4(a)所示,此时当前帧该目标编号为在前一帧中与其对应目标的编号。当目标发生交叉运动时,会出现如图4(b)所示的场景,前一帧2个目标都与当前帧的1个目标有重叠,表示有目标发生交叉运动,此时目标的相交标志置为true。在目标1、2相交时刻无法将二者辨别出来,此时需要按照各个目标在相交前的运动方式进行位置预测,直到相交目标分离后,按照预测位置和目标观测位置的匹配程度确定目标编号。图4(c)表示相交目标分离,该情况发生在相交标志为true的目标上,当前帧2个目标都与前一帧1个目标映射发生重叠。
3 实验结果与分析
根据本文提出的目标标记算法及目标跟踪算法,利用VC编程实现5个目标的跟踪过程,采用塞扬1.7GHz处理器和corona2采集卡。此时目标标记时间为3.24ms,图像中所有目标都被有效识别出来。当目标做交叉和无交叉运动时,都对目标进行稳定可靠的跟踪,并且能够满足实时性要求。由于采用9个象素合为1点的图像坐标变换,参与目标标记运算的象素个数大幅减少,目标识别速度得到提高。此外,图像坐标变换过程属于低通滤波,降低了噪声对目标标记的干扰,所以本文提出的目标标记方法速度快,受噪声干扰程度小。由于目标标记采用的是逐个目标分行搜索的方法,因此误识别目标概率低。
4 结 论
实验结果表明,本文提出的多目标快速标记方法具有速度快、可靠性强的特点,能够准确标识目标。利用该方法对目标跟踪,无论目标做交叉运动还是无交叉运动都能保证跟踪的性能要求。该方法能够满足跟踪目标的实时性要求,切实可行。
参考文献
1 张桂林,曹伟 .实时标记的多目标图像跟踪器.华中理工大学学报,1994;22(5)
2 王延杰,宋建中.一种实时自适应图像二值化方法.光学精密工程,1994;2(5)
3 朱进.交叉运动多目标电视跟踪算法.光学精密工程,1994;2(5)
4 朱自谦,王淑兰.多目标跟踪(MTT)技术的发展.航空电子技术,1995;(3)
5 徐涛,曾涛.基于贝叶斯推理的目标跟踪.计算机仿真,2004;21(5)