APP下载

结合Kalman 滤波的改进MOSSE 跟踪算法设计

2023-04-20张清亮丁祝顺

导航与控制 2023年1期
关键词:成功率滤波阈值

罗 鹏, 张清亮, 王 轲, 丁祝顺

(北京航天控制仪器研究所, 北京 100039)

0 引言

目标跟踪系统一直是机器视觉领域研究的热点, 在安防监控[1]、 搜索救援[2-3]等领域都有着广泛的应用。 随着技术的发展, 目标跟踪系统在运行速度、 体积等方面的要求也逐渐提高, 因此设计一种体积小、 功耗低、 实时性强的目标跟踪系统具有很大的实用价值。

FPGA 具备功耗低、 体积小、 成本低等诸多优点, 能够满足目标跟踪系统的需求, 适合用于目标跟踪系统。 近些年来, 基于FPGA 的目标跟踪系统发展迅速。 其中, Yang 等[4]在FPGA 中实现了核相关滤波(Kernel Correlation Filter, KCF) 算法, 运行速度为30fps。 Yan 等[5]在FPGA 中实现了一种背景差分和Sobel 的融合算法, 能够处理640 ×480 分辨率的图像, 处理速度可达60fps。 张格森等[6]在FPGA 中实现了平均绝对差(Mean Absolute Differences, MAD)算法, 运行速度为60fps。 在算法方面, 为了提高系统的运行速度, 本文采用运行速度快、 算法复杂度低、 具备较强鲁棒性的MOSSE[7]跟踪算法。

本文在FPGA 中实现了MOSSE 跟踪算法, 针对机载跟踪目标在运动过程中运动轨迹相对平稳的特点, 对MOSSE 跟踪算法加以改进。 通过之前的目标位置预测下一帧目标位置, 在下一帧图像中对上一帧目标位置及预测目标位置区域进行搜索。 当两个区域计算得到的目标位置至少有一个不小于设置的峰值旁瓣比(Peak to Sidelobe Ratio,PSR)阈值时, 得到目标位置。 当计算得到的目标位置均小于PSR 阈值时, 利用Kalman 滤波算法[8]对目标最终位置进行约束。 采用HLS 将改进前后的MOSSE 跟踪算法封装成IP 核, 在FPGA 中搭建目标跟踪系统对IP 核进行测试并对测试结果进行分析。

1 MOSSE 跟踪算法原理

2010 年, Bolme 等[7]首次将相关滤波用在了目标跟踪领域, 提出了MOSSE 跟踪算法, MOSSE 跟踪算法是一种从少量训练图片来产生类似于合成平均滤波器(Average of Synthetic Exact Filters,ASEF)的算法。 开始的时候, 它需要初始训练图片f1和期望输出g:f1为根据目标位置P1在初始帧图像中取出的目标区域,g为一个与f1同等大小的标准Gauss 模板。 将f1和g通过Fourier 变换转换成F1和G, 通过点除计算得到相关滤波器

式(1)中, *表示矩阵的复共轭。 输入第i帧图像, 根据i帧图像中目标所在位置取出第i帧图像中的目标区域fi, 进行Fourier 变换后得到Fi与相关滤波器进行相关运算得到响应结果Gi,对Gi进行Fourier 逆变换得到gi,gi中的最大值为目标当前位置Pi

式(2)中, IFFT 为Fourier 逆变换, ⊙为点乘运算。 在得到响应图gi和响应图峰值gmax后, 计算当前响应图gi的PSR 并与提前设置的PSR 阈值进行比较, 用于判断响应图的可靠性。 PSR 的计算公式如下

式(3)中,μi为响应图gi中除峰值周围11 ×11区域像素值外其余像素值的均值,σi为其余像素值的标准差。 为了找到一个将训练输入映射到所需训练输出的滤波器, 这个滤波器最小化了实际输出和期望输出G之间的误差平方和。这个最小化问题可以通过下式表达

2 MOSSE 跟踪算法改进

MOSSE 跟踪算法在后续图像帧中根据当前目标位置Pi所在区域计算后续目标位置, 在未跟踪到目标的情况下, 一般的搜索策略是对Pi周围八个方向的区域进行搜索, 这种搜索方式需要处理大量的数据, 极大增加了系统的延迟。 本文针对机载跟踪目标的特点对MOSSE 跟踪算法进行改进,机载跟踪目标如车辆、 船只、 行人、 建筑物等,这些目标的运动轨迹相对而言更加具有稳定性和规律性。 因此, 可以采用预测的方式计算目标位置对目标进行跟踪, 在未跟踪到目标的情况下,利用Kalman 滤波约束目标位置。 Kalman 滤波算法能够降低目标位置的误差, 目标运动轨迹越稳定,预测得到的目标位置误差越小, Kalman 滤波算法效果越好。 改进前后的算法流程如图1 所示。

图1 MOSSE 跟踪算法改进前后流程图Fig.1 Flowchart of MOSSE tracking algorithm before and after improvement

改进后的算法原理如下: 在实时跟踪的情况下, 两帧图像间的时间间隔通常为1/60s, 因此可以近似地认为目标在两帧间的运动状态没有改变。通过目标之前位置Pi-2、Pi-1、Pi, 预测后续目标位置Pi+1

式(6)中,a为目标的加速度,V为当前目标的速度。 在当前帧图像中取出Pi及Pi+1位置所在区域图像fi和fi+1, 将两副图像进行处理及FFT 变换得到频域图Fi和Fi+1

根据式(7) 计算得到两幅框图中的目标位置P_ki和P_ki+1, 根据式(3) 同时计算两幅图中的PSR, 用于判断当前位置的可靠性, 本文将PSR 阈值设置为7。 当两幅图中至少一个PSR 达到阈值时, 将该位置设为目标所在位置。 当两位置结果均不达标时, 表明目标处于形变或遮挡状态, 通过Kalman 滤波计算目标所在位置, 在计算位置取出目标区域, 更新相关滤波器。

Kalman 滤波算法需要输入目标位置的误差,为了降低数据干扰, 目标预测位置Pi+1的误差设置为目标的加速度a, 将目标位置P_ki+1加入式(6)中计算加速度a_k, 以计算得到后的加速度为测试目标位置的误差, 计算过程如下

式(8)中,Q=a2,R=a_k2,XKal为目标最终位置,Kk为Kalman 增量,Pk_1初始值设为0.01。

3 MOSSE 跟踪算法性能评估

3.1 性能评估标准

为了判断目标跟踪算法的跟踪效果, 本文采用跟踪精度和跟踪成功率对目标跟踪算法的性能进行量化, 采用的测试方法包括第一帧测试(One Pass Evaluation, OPE)、 空间鲁棒性测试(Spatially Evaluation, SRE) 和时间鲁棒性测试(Temporally Evaluation,TRE)。

OPE 测试方法给出起始帧图像中的目标位置,跟踪算法根据起始帧目标位置计算后续目标位置,得到跟踪算法的精度和成功率; SRE 测试方法通过在起始帧采用不同大小、 位置的跟踪框对目标进行跟踪, 以此测试算法在空间变化时的鲁棒性; TRE测试方法在同一个视频中选择不同的起始帧对算法进行测试, 得到算法在时间变化时的鲁棒性。

其中, 中心误差距离为每一帧中算法跟踪结果与人工标注位置的欧式距离。 设定一个阈值,当中心误差距离小于此阈值时代表这一帧图像跟踪成功, 所有跟踪成功的帧数与视频总帧数的比例即为当前阈值的精度。 选用不同的阈值能够计算出不同的精度结果, 得到精度曲线。

成功率通过边界框覆盖率进行衡量, 算法跟踪结果的边界框面积为rt, 人工标注的边界框面积为ra, 边界框覆盖率的计算公式如下

设置一个成功率阈值S0, 当S大于S0时代表这一帧跟踪成功, 所有跟踪成功的帧数与视频总帧数的比例即为当前阈值的成功率。

3.2 评估结果对比

本文采用OTB2013 数据集对改进前后的算法进行测试, OTB2013 中包含51 个视频序列, 包含了跟踪算法在跟踪过程中可能面临的挑战, OPE、SRE、 TRE 的测试结果如图2 所示。

图2 跟踪算法测试结果对比Fig.2 Comparison of tracking algorithm test results

图2 绘制了三种算法在OPE、 SRE 及TRE 测试方法下的精度和成功率曲线, 并给出了每种算法的平均精度及平均成功率。 其中, MOSSE 为最初的算法; MOSSE_F 为添加了范围搜索的算法,范围搜索的位移距离为固定的14 个像素;MOSSE_Kal 为添加了Kalman 滤波后的算法。 算法的跟踪曲线及平均精度、 成功率表明, 在三种测试方法中, 添加了Kalman 滤波后的算法相比于原算法和范围搜索的算法在各个方面的性能都有所提升。

在OTB2013 视频集中, 每个视频都对属性进行了注释, 这些属性描述了跟踪算法在每个视频中将面临的挑战。 例如照明变化、 遮挡、 形变,这些属性可以用于判断不同挑战中跟踪算法的跟踪效果。 本文在图3 中介绍了四个属性的跟踪结果对比, 分别是光照变化、 形变、 遮挡、 背景杂斑。

图3 不同挑战下算法跟踪结果对比Fig.3 Comparison of algorithm tracking results under different challenges

四个属性的跟踪结果表明, 加入了Kalman 滤波后的跟踪算法在面对光照变化、 形变、 遮挡、背景杂斑等不影响目标运动轨迹的情况时都能够提高算法的跟踪精度, 得到更好的跟踪效果。

4 目标跟踪系统搭建

4.1 系统的搭建

为了验证在FPGA 中两个IP 核的实际情况,本文搭建了一个完整的目标跟踪测试系统对生成的MOSSE 跟踪算法IP 核进行测试, 系统主要包括用于控制模块的软核、 图像数据输入模块、MOSSE 跟踪算法IP 核以及用于图像显示的HDMI模块, 系统的整体结构如图4 所示。

图4 目标跟踪测试系统结构Fig.4 Structure of target tracking test system

4.2 系统测试结果

将IP 核移植到FPGA 中进行测试, 通过IP 核在FPGA 中的资源消耗和运行速度来判断之前的仿真结果是否正确。 整个目标跟踪系统平台如图5 所示, 跟踪过程图像如图6 所示。

图5 目标跟踪系统平台Fig.5 Diagram of target tracking system platform

图6 跟踪过程图像Fig.6 Images of tracking process

本文图像的发送方式为通过IP 核进行控制,以此测试IP 核的实际运行速度, 结果如表1 所示。

表1 IP 核实际运行速度Table 1 Actual speed of IP core

实际运行速度测试结果显示, 改进前后的算法均能够实时处理视频图像。 在前10s 的时间里,原算法IP 核实际运行速度在200fps 左右, 与仿真结果的4.9ms 相符。 后10s 的时间里, 原算法IP核由于范围搜索的原因导致运行速度下降, 而改进后算法的运行速度能够始终维持在200fps 左右。FPGA 中IP 核资源消耗对比如表2 所示。

表2 算法在FPGA 中资源的实际消耗情况Table 2 Actual resource consumption of the algorithm in FPGA

由表2 可知, 改进后的算法资源消耗大大降低。 其 中, BRAM_18K 消 耗 降 低 了 20.33%,DSP48E 消耗降低了8.09%, FF 消耗降低了3.49%, LUT 消耗降低了8.97%。

5 结论

本文利用Kalman 滤波算法的特点对MOSSE 跟踪算法进行改进, 提高了算法的性能和运行速度。利用FPGA 的高速并行处理能力实现了基于FPGA的目标跟踪系统, 降低了系统的资源消耗及功耗,对工程的实际应用具有一定的参考价值。 但本文设计对目标遮挡问题的考虑仍显不足, 后续将针对该问题进行深入的研究。

猜你喜欢

成功率滤波阈值
成功率超70%!一张冬棚赚40万~50万元,罗氏沼虾今年将有多火?
如何提高试管婴儿成功率
小波阈值去噪在深小孔钻削声发射信号处理中的应用
基于自适应阈值和连通域的隧道裂缝提取
如何提高试管婴儿成功率
比值遥感蚀变信息提取及阈值确定(插图)
室内表面平均氡析出率阈值探讨
RTS平滑滤波在事后姿态确定中的应用
基于线性正则变换的 LMS 自适应滤波
研究发现:面试排第四,成功率最高等4则