范玲瑜,王世明,张 超,丁 玲,胡冠华
(北方自动控制技术研究所,太原 030006)
未来信息化条件下作战,确保武器系统的快速决策和精确打击能力尤为关键。光电跟踪系统的全天候、动态获取目标信息、高精度、抗干扰等特点,能够实现多目标系统的识别与跟踪,从而为作战指挥、武器控制与火力打击分配提供依据[1]。视频跟踪技术是实现高精度光电跟踪的先决条件,视频跟踪器也是光电跟踪系统的关键部件之一。而现代作战过程中,复杂的场景与高精度、智能化的需求使得图像目标的检测与跟踪成为难题,复杂场景下的视频跟踪技术亟需研究[2]。
目标跟踪的主要任务是在视频图像中目标被识别的基础上,将不同帧中的同一目标进行连续追踪的过程。传统跟踪系统采用时域模板匹配的算法,通过与目标模板匹配的过程实现目标跟踪。但是在面对战场环境复杂、目标隐蔽性高的环境下,该算法极易丢失跟踪目标。为了提高复杂背景下运动目标的跟踪能力,本文采用了基于在线学习的相关滤波器(KCF)视频目标跟踪技术。
基于相关滤波器的跟踪器而言,可以通过快速傅里叶变换在频域中计算相关操作;并且可以通过快速傅里叶逆变换将相关响应转换到空域上。该算法引入循环结构并给出了一种密集采样的策略,首先,通过单个图像块学习目标的RLS分类器,然后利用循环矩阵以及核函数对其进行求解,从而得到核相关滤波器,最后,通过计算核相关滤波器响应的最大值来确定目标位置[3]。下面对基于核相关滤波器目标跟踪的相关理论知识的简要介绍。
在本文应用的KCF跟踪算法中,选取目标大小为m*n的图像作为跟踪目标,将此目标作为跟踪样本进行训练,并采用密集采样的方式遍历搜索范围内的图像并且进行SVM分类。由于采用密集采样的方式,采样的数据量大,采样样本多,计算量相较于随机采样有很大的增加。为了解决计算量的问题,引入循环矩阵,并使用FFT进行计算。假设一个图像目标为x,通过利用循环移位来获得样本xi,其中i∈{0,…,m-1}*{0,…,n-1},那么样本 x 可以表示成一个d*1的向量,特征样本就可以表示为:
其中:P 为式(2)所示的 d*d 循环矩阵,i=0,1,…,d-1。
线性分类器的表达式为f(x)=
其中:yi为样本xi期望的输出为一个固定的正则化参数[4]。
利用循环矩阵可以将原本低维空间的样本映射到高维,这样可以丰富样本的特征信息,提高分类性能。在本算法中,利用核函数为将样本x映射到高维特征空间φ(x),那么式(3)的解就可以表示为输入的线性组合,见式(4):
其中:bi为变换系数。
采用核方法的RLS有简单的闭合的解,由此得到b:
核矩阵K为循环矩阵,将其变换到频域可得解为:
其中:F-1表示离散傅立叶反变换[6]。
因此,对于新采样的训练样本zi,分类器的输出相应,其中为上一帧学习的跟踪样本模型,则在频域上有:
由于战场地理环境复杂,目标在运动的时候经常会被遮挡。由于遮挡的存在,目标在遮挡一定程度下容易丢失,由于采用核相关滤波器跟踪算法无法解决丢失之后目标继续重检的问题,因此,需要设计额外的算法来完成目标重新出现之后的检测。
本文提出了基于粒子滤波及灰度直方图的目标重检算法。该算法通过计算当前粒子与丢失前样本粒子的灰度直方图匹配程度来有效找出丢失的目标。
粒子滤波算法是一种基于全局随机的搜索方法,适用于随机的非线性的查找、检测、跟踪目标,在学术研究以及工程实践中有着广泛的应用[9]。
粒子滤波的简要过程如下:
1)初始化粒子。K-0时刻,在一定的搜索区域内初始化粒子,且每一个粒子权值相等每一个粒子可以表示为
4)估计有效样本的个数,当有效样本数量小于一定门限,进行重采样,否则不予理会。
5)跳入2)步,进行持续检测,直到满足条件后跳出[10-12]。
灰度直方图是对一副图片中灰度的分布情况进行的统计,将图像像素点的大小按照一定的统计规则,对每一个像素按照像素值的大小进行统计分布,找出每一个灰度区域像素值出现频率的分布特征。
概率密度函数为:
概率分布函数为:
如果一幅图片中含有n个像素,在某一个灰度范围内包含的像素个数为nk,则概率密度函数为,概率分布函数为
当目标被完全遮挡,跟踪器无法跟踪的情况下,系统开始进入重检阶段。首先,系统会记录丢失前目标的具体位置以及图像特征。接下来在丢失地点附近,按照粒子的权重进行粒子的随机撒子。最后计算每一个粒子和丢失前目标的匹配程度(0.0~1.0)。当匹配值超过0.95的经验值时,认定系统重新检测到目标,则跳出重检过程继续开始跟踪。如果匹配值未超过0.95门限时,则将各个匹配值归一化,将归一化的权值赋给每一个粒子的权值,用于下一步粒子的更新预测,直到检测到有粒子和丢失前目标的匹配程度大于门限时为止。
图1 系统硬件设计图
此平台为FPGA+DSP架构,从视觉传感器输出信号通过PAL制式标准接口进入FPGA中,FPGA将待处理数据通过高速接口传输给DSP(TMS320C6455)处理器进行图像处理,同时输出视频信号给监视器便于人眼观察。外部通信接口为RS422与火控计算机或指挥控制中心实现信息交互。在系统内部,DSP和 FPGA通过 SPI、GPIO、EMIF三者相连,用于输出图像数据,工作指令等信号。DSP外扩DDR存储器,FPGA外扩SDRAM存储器用于存放图像。
目标跟踪算法需要对每一幅图像进行处理并实时输出结果,当系统检测到运动目标并接到外来指令进入跟踪状态之后,系统会初始化跟踪算法并开始跟踪指定目标。如果跟踪算法能够正常跟踪目标,则标志位flag就保持为1,如果目标丢失则置为0。如果flag为0,在下一幅图像到来时,跟踪算法就会利用保存的目标模板对此图像中目标丢失时的附近区域进行搜索,寻找目标。如果重新捕获目标,跟踪算法继续进行跟踪,如果未找到,则等待下一幅图像到来时继续搜索,而且如果累计搜索的图像数量num大于150(3 s),系统就会退出跟踪状态,转为等待状态。如图2所示为目标跟踪系统软件流程图。
图2 系统软件设计流程图
为了验证算法的正确性以及实用性,对系统进行了如下的测试。
图3为模拟复杂环境下的系统测试图片。坦克由右向左前进。前两张图片中,坦克在前进的路上没有遮挡,系统进行稳定的跟踪,如图3(a)、图3(b)所示。当前方有障碍物完全遮挡住坦克时,系统丢失目标,并且在丢失目标的附近开始进行寻找,如图3(c)所示。当坦克重新出现在视场范围内时,系统重新捕获到坦克目标,进行跟踪,如图3(d)所示。
下页图4为本系统的真实场景测试图片。在复杂的战场环境条件下,装甲车从图片的右边开始向左边行驶,图 4(a)、图 4(b)表示系统处于稳定的跟踪状态。当有障碍物(手)遮挡时,目标完全丢失,此时无法进行下一步的跟踪。当手拿开时,目标装甲车继续出现在视野中,本系统利用上文提出的算法重新检测出目标。
图3 仿真复杂环境下的测试
图4 真实环境下的系统测试
本文针对复杂战场环境下装甲目标的跟踪问题,提出了在线学习的相关滤波器视频跟踪算法,实现了复杂场景下目标的实时、准确跟踪;提出了一种基于粒子滤波和灰度直方图的目标丢失重检算法,实现了在目标完全遮挡之后对于丢失目标的重检;设计了基于DSP和FPGA的视频跟踪器系统,通过实验验证,该系统能够很好地满足战场环境对视频跟踪器的需求。