温庆福,郭向东
(1.电子科技大学光电信息学院,四川成都610051;2.安徽现代电视技术有限公司成都研发中心,四川成都610017)
记录活动目标轨迹是对运动目标监测和跟踪的一项重要内容[1]。尤其是在对飞行器的实时坐标定位及飞行轨迹的记录,在航空航天等领域起着重要应用。对这些目标的运动空间轨迹的自动记录非常复杂[2],除了必须具备一系列先进的科学仪器设备外,还要进行大量的数据处理和复杂的数学建模分析才能实现[3]。
在图像的识别与跟踪中,为了增强人的信息判断力,通常需要显示出活动目标的轨迹[4]。为了解决跟踪存在的问题,需要对目标的轨迹进行预测[5]。如果图像出现了许多个目标,可以根据预测轨迹范围剔除虚假目标;如果预测目标轨迹误差在允许的范围内,则在连续几帧失去目标仍可以跟踪,提高跟踪的可行性[6]。但是如果直接将这些点送入轨迹检测环节(包括大量的复杂运算,如乘法、除法等)进行轨迹预测、匹配,不仅运算量大、消耗硬件资源多,还对系统的实时性提出很高要求[7]。传统的基于硬件的电路,要实现目标轨迹的记录,所需存储容量与轨迹需要记录的时间,单帧图像大小和图像帧频成正比[8]。通常在硬件资源成本和体积上开销很大。而且使用的器件越多,流程越长,系统的稳定性越低。
因此,本文提出一种新型活动目标轨迹算法。该算法不再受图像频率和显示时间的限制,根据轨迹所需保留时间长短来调整传递函数,仅仅需要一个帧存器就能实现。对非计算机系统,极大地减小硬件的体积和降低成本,提高系统的稳定性。尤其是在便携式设备中,优势相当明显。同时,避免了将轨迹不作区分的显示。该方法可根据速度大小、显示时长等因素,自行设定轨迹的显示。
所谓活动目标踪迹,就是要在当前第i帧画面上,既要显示当前活动目标的位置,还要显示过去第i-1,i-2,…,i-n帧该活动目标的位置信息。过去n帧的踪迹保留记录,一般需要n个帧存储器才能实现。采用n个帧存储器,设备量大增,成本大增。本文仅用一个帧延迟器来完成n帧叠加处理的功能,即循环递归叠加法。本文设计的递归传递函数为
式中:k是变换系数;z-1表示延迟1帧。
将式(1)传递函数转换成电路,一个四端网络。已知当前第k帧带有活动目标信息的图像Ro(x,y)作为网络的输入,Ro(x,y)是经过二值化处理的值。设该网络的输出信号(经传递函数运算处理后,载有活动目标历史记录以及当前目标信息的色差信号)为输出Rch(x,y)=Ro(x,y)·H(z)。也就是说,输入Ro(x,y)乘以传递函数H(z)等于输出Rch(x,y),这就是传递函数的定义,如图1所示。
图1 H(z)传递函数的四端网络
根据四端网络的传递函数定义:“输出信号”=“输入信号”·“传递函数”,则有
将式(2)翻译成电路,如图2所示。
图2 循环递归叠加电路原理图
如图2所示,“z-1”就是1个帧延迟器。首次循环叠加前,应将系统的所有存储器清零,去掉先前时刻保持的信息。也就是第一帧时Rch(x,y)等于Ro(x,y)+0。将输出信号Rch(x,y)经 1 帧延迟后成为Rch(x,y)·z-1信号。
k为变换系数,Rch(x,y)·z-1信号乘k得到Rch(x,y)·k·z-1反馈信号。将“活动目标轨迹”作为历史记录,变换系数k的取值,对轨迹记录时间和记录效果起着十分重要的作用。本文设定当前时刻目标点的灰度值为M,该目标点消失时为m。显示的时间为T,T通常取单帧图像显示时间的整数倍。图像显示的帧频为F,k与T对应的关系为
当k=1时,轨迹始终保留着,甚至活动目标消失后,它仍存在。但如果k取值过小,灰度值迅速降低,不利于形成轨迹显示,如k取0.5时,轨迹时间过短。因此,k值范围一般为0.5≤k<1。若运动的目标过多,k的取值过于趋近1,历史记录太多将占满屏幕,显示过于繁杂,势必影响对当前目标的关注力。因此,在设计k的取值时,需要综合考虑运动物体的数目、速度,以及需要显示的轨迹时间,以便识别。从而能达到轨迹适度清晰的显示,使画面清爽。在灰度图像中,采用该算法直接改变图像的灰度值,能得到很好的显示效果。k取值不同时,将影响灰度值的变化的。亮度值的范围通常为16~235。
图3为灰度值Y(k,f)的函数图。横坐标f表示帧数,纵坐标为灰度值Y。坐标图表示了取不同变换系数k值时,各帧f对应灰度值Y的函数图。即活动目标在第0帧时出现,被赋予最大灰度值235。在以后各种帧中,运用循环递归函数得到目标显示的灰度值。图中6条函数线表示k分别取:1.00,0.95,0.90,0.80,0.70,0.50,对应0~50帧的灰度值曲线。由图3可以看出,从同一时刻开始,在相同帧,k越大对应的图像灰度值越大。最上方直线表示k=1,即灰度值恒为235,下方的虚线为灰度值恒为16的图像。因此,k取值越趋近于1,Y衰减越慢,轨迹保留的时间就越长。
图3 灰度值Y(k,f)的函数图
在这样的轨迹显示中,即使存在某帧目标的漏检测,同样能有效形成轨迹的显示,不影响效果。所以在远距离的运动小目标的检测显示中,能极大增强人对目标的识别。
实现“+”,即Ro(x,y)+Rch(x,y)·kz-1,将其值送入,继续此循环。在运用该算法进行轨迹的记录前,应先对目标图像进行检测,运用相应的目标检测算法,将提取的目标区域进行图像二值化处理,即目标区域的灰度值为“1”,其他像素灰度值为“0”。
这样可尽量减小虚假目标或噪声对轨迹显示的影响,极大提高图像轨迹的显示效果,使画面更加清晰。
使用该算法,活动目标轨迹示意图见图4。ti表示当前第i时刻的目标,ts表示固定静止目标。因为目标在第i-n帧到第i帧一直出现在相同的位置,或者运动速度十分小,几乎可视为静止。ti-n表示i之前的第n时刻的出现位置。运动目标,见图中ti-n~ti,在不同帧出现的位置不同,并且被分别记录下来。
图4 活动目标轨迹示意图
对不同k值的轨迹进行实验,在现场可编程门阵列(FPGA)中实现。其硬件结构如图5。其中的FIFO也就是上文中提到的“z-1”,1个帧延迟器。
图5 硬件结构
FPGA输入信号采用国际电联定义的ITU-R BT.656数字图像接口标准[9],帧频为25 Hz,分辨力为720×576的PAL制式视频信号[10]。图6为经过目标检测二值化后的图像。
图6 原始视频图像
图7 分别对应k=0.5,0.6,0.7,0.8,0.9,0.973 4 时的轨迹。不同的k依次对应的显示时间分别为:0.16 s,0.24 s,0.32 s,0.48 s,1 s,4 s。当然根据需要,其他情况与上文相同,若要显示60 s,则可把k设为0.998 2。
对应不同的k值,视频图像通过帧循环叠加算法处理后结果如图7所示。已经能在一定程度上识别出目标的运动轨迹。特别是对于图7f(k=0.973 4)的轨迹。可以判读出目标从右上方进入,在中间拐弯向右下方运动。对于那些被检测的亮度的目标,如图7中正右方的目标,它始终没有轨迹,因此可以判断为静止目标或者是运动速度极小的趋于静止的目标。
本文针对硬件系统中活动目标轨迹的保存和显示进行了深入研究,解决了过去硬件中需要多个帧存器才能实现轨迹显示的问题。经一系列的理论推导和实验表明,帧循环叠加算法,通过调整相应的k值就可实现不同时间长短需要的轨迹显示,操作简单,能有效解决目标轨迹问题。特别是在远距离运动小目标问题中,将极大增强人为的二次辨别的能力。
图7 不同k值对应的轨迹
[1]曾刘苏.航模飞机实时定位及飞行轨迹记录方法研究[J].计算机测量与控制,2012,20(6):1656-1661.
[2]张春华,周晓东,陈维真.基于背景抑制的星空图像目标运动轨迹提取[J].红外与激光工程,2008,37(1):143-146.
[3]李克新,张伟,丛明煜,等.一种深空背景空间小目标条痕检测算法[J].光学学报,2010,30(2):445-450.
[4] YIN H,CHAIY,YANG S,et al.Fast-moving target tracking based on mean shift and frame-difference methods[J].Journal of Systems Engineering and Electronics,2011,4(22):587-592.
[5] GUO Jichang,CHEN Minjun,WU Xiaojia.Moving target tracking system based on DSP[C]//Proc.Applied Informatics and Communication-International Conference,ICAIC 2011.,China:[s.n.],2011:20-21.
[6]张永辉,武征,高炳哲.红外图像序列中运动弱小目标轨迹预测方法研究[J].红外与激光工程,2006,35(S1):152-155.
[7]阳芬.红外序列图像目标航迹关联检测算法研究与硬件设计[D].长沙:国防科技大学,2008.
[8]王文彬,王文革,王松.海量存储技术在变电站视频监控中的应用[J].电视技术,2011,35(17):97-100.
[9] GB/T 17953—2000,4∶2∶2 数字分量图像信号的接口[S].北京:中国标准出版社,2000.
[10]向厚振,张志杰,王鹏.基于FPGA视频和图像处理系统的FIFO缓存技术[J].电视技术,2012,36(9):41-43.