无人机目标实时自适应跟踪系统

2022-05-19 13:28刘银萍夏金锋
计算机工程与应用 2022年10期
关键词:实时性像素点灰度

严 飞,马 可,刘 佳,刘银萍,夏金锋

1.南京信息工程大学 自动化学院,南京 210044 2.江苏省大气环境与装备技术协同创新中心,南京 210044 3.南京信息工程大学 大气物理学院,南京 210044

近年来,视觉目标跟踪和物联网技术在增强现实、智能视频监控、目标识别、医学诊断、视觉导航和空间监控等领域得到了广泛应用[1]。在跟踪目标性能评估中,跟踪效果一般通过准确性和实时性进行评估[2]。视频中的目标在运动过程中可能会受到光照、飞行姿态、背景等各种不可预知的复杂变化的影响[3]。因此,在实际环境中建立一种通用、准确、稳定的鲁棒视觉目标跟踪算法仍然是一个巨大的挑战[4]。在跟踪无人机方面,一个好的跟踪算法可以使无人机在背景复杂、光线改变、尺寸较小等场景表现更好的鲁棒性[5]。

精确稳定的鲁棒视觉目标跟踪算法能够更好地适应各种情景。针对这一问题,许多学者也给出了自己的观点和研究成果。Fukunaga等人[6]提出Mean-Shift(均值漂移)算法,该算法有较好的实时性和有效性,但是当目标的大小逐渐增大甚至超过核带宽范围时,固定边界盒往往会导致跟踪的丢失;文献[7]提出了一种利用SIFT算法提取目标特征尺度、特征点主方向等参数,然后用均值漂移进行目标定位的方法,但该方法存在计算量大、实时性差等缺点;Wang等人[8]提出了一种精确、鲁棒的增强跟踪方法,该算法采用了一种灵活的三维物体外观模型,结合了局部和全局视觉表示的优点,克服了跟踪失败的缺点;在跟踪方面也有一些经典算法,如卡尔曼滤波[9]、贝叶斯算法[10-12]等;Li等人[13]提出了改进的视觉目标跟踪算法ENS-CSK,该算法能够更好地匹配物联网技术下的视觉目标跟踪,但是当目标外观发生显著变化时,跟踪失败,难以恢复和重新启动跟踪;Somayyeh等人[14]提出了一种基于简化粒子滤波遗传算法(reduced particle filter based upon genetic algorithm,RPFGA)的图像序列多目标并行跟踪方法,利用状态空间模型中的加速度和速度,可以实现对匀速和加速度目标的跟踪,但是在标记方法中,由观测器对跟踪目标的一部分进行标记,如果观测器没有准确地标记目标,则会降低跟踪功率;董蓉等人[15]提出一种基于局部不变特征点数据集的目标跟踪算法,该算法能准确地定位目标,跟踪其方向变化和目标大小,而且对遮挡下的目标状态也可以正确估计,但是如果目标纹理非常稀少,会导致提取的局部不变特征也较少,目标状态估计结果可能不稳定。

在跟踪目标过程中,为了解决跟踪速度问题,吕清松等人[16]提出基于一种基于FPGA(field programmable gate array)的颜色特征的目标识别与追踪系统,该系统有良好的实时性,可以实时跟踪640×480@60 Hz的视频流,但是该方法识别颜色单一,不能准确识别复杂背景下的目标。夏浩伟[17]针对目标与背景颜色相近的情况提出一种基于FPGA的彩色轮廓加强算法,结合均值漂移算法实现了目标跟踪的鲁棒性。彩色轮廓增强和均值漂移相结合的跟踪算法比均值漂移跟踪算法具有更好的鲁棒性。而且能够在1080P@60 Hz的情况下实现实时的目标跟踪,虽然该算法实时性高,但如果目标移动过快,会出现跟丢的情况,因此不擅长跟踪机动性较强的无人机。Henriques等人[18]提出核相关滤波算法(kernel correlation filter,KCF),该方法首先需要手动框选一个窗口作为跟踪目标,并通过训练样本建立一个滤波器,然后通过相关性计算找到目标。该方法在跟踪方面有较高的准确性,同时在实时性方面表现也十分理想,但是该方法对快速移动的物体,跟踪性能比较差。李艳荻等人[19]提出了一种基于动态特征块匹配的自适应背景更新算法。在采用帧与背景差融合算法检测目标的基础上,利用目标的时刻信息跟踪目标,避免了全景视觉中缺少颜色和轮廓特征的缺点。该算法减少了更新单个像素点的冗余计算,充分利用了像素点的空间分布信息,满足了运动目标检测的准确性和完整性,但是该算法只能针对背景不变的情况下进行跟踪,不适应跟踪无人机背景实时变化的场景。针对帧差法容易受到图像处理效果和外界干扰问题,伍济钢等人[20]提出了光流点匹配跟踪方法,避免了逐帧进行特征分割、提取等复杂的图像处理,同时在准确度和抗干扰方面有不错的表现。唐瑞等人[21]提出了一种完整有效的建立数据模板库的目标匹配识别算法,利用相似度匹配原理识别目标,获取目标姿态信息。然而,在检测过程中,目标检测结果往往伴随着较大的干扰阴影,这可能会造成运动目标本身的形状变形以及邻近目标的合并,从而导致误检测和漏检。

针对跟踪过程中出现的对背景复杂、光照变化、目标较小、移动速度快等情景的目标跟踪准确度和实时性问题,本文提出一种基于FPGA的自适应跟踪算法。将目标模板与搜索区域数据进行储存,然后通过遍历的方式在搜索区域找到相关度最高的区域,同时当背景发生变化时,会自适应更新模板数据,提高跟踪准确度。本文算法可以在跟踪准确度方面有理想的跟踪效果,同时本文算法基于FPGA平台设计,利用FPGA对数据并行处理,节省处理时间,满足实时性的要求。

1 系统实现

为了满足追踪过程中对于准确度与实时性的需求,本文提出一种基于FPGA平台的无人机跟踪系统。首先构建一个测试系统,该系统包括视频的输入和输出设备,还有FPGA芯片和串口等。因此,该实验系统主要分为硬件和算法设计两部分,该系统的流程如图1所示。

图1 该系统的流程总体框图Fig.1 Overall flow diagram of system

1.1 视频采集与显示模块

系统通过上位机采集视频,上位机将已经拍摄好的视频通过HDMI传输给解码芯片ADV7611,解码之后得到有效像素数据流和行场同步信号,然后将数据流发送给FPGA,方便FPGA对数据流进行后续处理。

图像数据经过FPGA处理模块处理之后,得到带有目标框选的有效像素数据流和行场同步信号,然后将数据流输出给编码芯片ADV7513,最后编码芯片将数字视频信号转换成模拟视频信号,通过HDMI将模拟视频信号传输给显示屏进行显示,方便通过显示屏直接观察跟踪效果。

1.2 串口通信模块

系统在上位机发送给FPGA视频流之前,首先将视频第一帧跟踪目标左上角的坐标和无人机尺寸通过串口发送给FPGA,使FPGA在接收到视频流后,根据接收到的目标坐标和尺寸确定第一帧的框选目标,并将目标区域数据进行保存和后续处理。

FPGA对每一帧进行跟踪处理,跟踪之后得到目标位置,通过串口实时将目标位置发送给上位机,然后上位机进行重叠率计算,可以直观看到跟踪的实时重叠率波形图及平均重叠率数据。

1.3 图像灰度处理

为了更好地反映图像的形态特征,同时为了降低数据处理量,选择对接收到24位(RGB888)图像数据进行灰度处理得到范围为0~255的8位数据,就得到了灰度图像数据。这样在数据方面只需要对8位灰度数据进行处理,相比较原彩色图像24位图像数据,灰度图像数据计算量降低,同时考虑显示效果,在目标跟踪模块采用灰度数据进行计算,显示屏选择彩色图像,其中灰度计算方法如式(1)所示。

式中,R、G、B分别表示RGB888的红色、绿色、蓝色通道数据,Y1表示得到的灰度数据。

实际上,由于FPGA不能对浮点型进行计算,需要先对式(1)进行放大256倍处理,如式(2)所示,得到Y2后再进行除以256处理得到灰度值。

根据FPGA并行运算特点,将R、G、B通道数据同时乘以对应的权值,并将得到的值相加,取高8位数据得到最后的灰度值,这样完成灰度处理只需一步,即一个时钟周期。该系统输入时钟为50 MHz,通过PLL产生200 MHz时钟作为灰度处理的时钟,则每一个时钟周期即5 ns,每个像素点的灰度处理只需5 ns就可以完成。

首先选用一张数据格式为RGB888,图像分辨率为320×240的图像,采用FPGA对图像提取其中的R、G、B数据,并将RGB数据带入式(2)中,计算得到Y2。然后对Y2除以256,将计算得到的数据Y2分别赋值给R、G、B数据,使R、G、B数据相同,并将计算之后得到的RGB数据通过ADV7513编码芯片进行编码,通过HDMI传输给显示屏进行显示。灰度转换前后图片对比如图2(a)所示,灰度转换前后R、G、B数据的modelsim仿真图如图2(b)所示。

图2 灰度转换前后结果对比Fig.2 Comparison of results before and after gray scale conversion

1.4 目标模板及搜索范围的存储

1.4.1 目标模板的存储

在无人机跟踪过程中,需要将目标模板进行保存,用于后续跟踪过程中的相关度计算等。首先上位机将第一帧无人机目标左上角坐标和尺寸通过串口发给FPGA,对一帧图像灰度化之后的像素点个数进行计数,便于确定目标区域的像素点;进而FPGA根据得到的目标位置将灰度化之后的目标区域图像数据进行保存,考虑后期需要将储存之后的模板图像数据反复调用,用于后期的相关度计算;最后选择将灰度化之后的目标模板灰度数据保存至双端口RAM中。

采用解码芯片输出的视频时钟作为RAM的输入时钟,将目标区域灰度8位数据存储到RAM中,容量选用10 240×8 bit,采用PLL产生的200 MHz时钟作为输出时钟,使后期数据计算时间更少。

1.4.2 搜索范围的存储

在无人机跟踪过程中,需要在一帧图像找到目标,考虑到一帧图像数据过多,不易保存且算法运行时间较长,本文采取一种小范围搜索方式,搜索范围过大会使运算时间变长,不利于实时性跟踪;搜索范围过小,会导致当无人机飞行速度过快时,下一帧无人机不在搜索范围内,容易丢失目标,因此采用以目标为中心,用无人机尺寸与搜索区域尺寸按照1∶1.5确定搜索区域尺寸。首先以上次目标坐标为中心,进而找到上次目标附近的范围区域,最后将范围内灰度化后的数据保存至另一个双端口RAM中,方便后续相关度计算。

同样,采用解码芯片输出的视频时钟作为RAM的输入时钟,将目标区域灰度8位数据存储到RAM中,容量选用20 480×8 bit,采用PLL产生的200 MHz时钟作为输出时钟,使后期数据计算时间更少。

搜索区域与目标模板区域对比图如图3所示。

图3 搜索区域与目标模板对比图Fig.3 Comparison of search area with target template

1.5 检测跟踪模块

检测跟踪模块是从每帧搜索区域内找到与目标模板相关度最高的区域。首先在搜索范围内找寻与目标模板同样大小的区域,进而与目标模板像素数据进行相关度计算,采用的方法是将模板中每个像素点的灰度值与同样大小的搜索区域内对应点的像素灰度值差的绝对值进行求和;然后在搜索范围进行遍历,遍历完成之后,找到差的绝对值和是最小的值,将最小值的搜索区域表示为目标,则判断该区域为目标区域;最后返回目标坐标左上角坐标用作确定下一帧的搜索范围。同时将目标左上角坐标通过串口发送给上位机进行准确度计算。假设模板和对应同样大小搜索区域像素的灰度值分别记为I(P i)和I′(Pi),像素灰度差值表示为e i,则像素灰度差绝对值可表示为式(3)。

假设目标模板有n个像素点,通过计算得到对应n个像素灰度值差的绝对值之和记为e,计算方法如式(4)所示。

根据FPGA的并行运算特点,FPGA同时进行灰度处理,存储目标模板数据及其搜索区域数据,也可以同时进行相关度计算,大大减少了数据处理的总时间,有较好的实时性。

本文采取的遍历方式是从搜索区域左上角开始,从左向右、从上至下的遍历方式。为了减少遍历带来的时间过长问题,遍历方式从左向右,采用每次遍历向右移动2个像素点,一行遍历结束后,遍历向下移动2个像素点,这样在保证准确度的情况下,数据处理时间仅为之前的1/4,使目标像素点个数在10 000以内,在一帧图像跟踪处理时间保证在16 ms之内,在实时性方面有比较理想的跟踪效果。

1.6 目标模型自适应更新

在无人机跟踪过程中,考虑到其背景复杂干扰多,光线、姿态变化和背景也处于不断变化之中,导致准确度降低的问题,本文采取一种自适应目标模板更新方式。

考虑到在各种复杂环境下导致的跟踪准确度降低的问题,及时地更新目标模板中的数据可以使其在后续的跟踪中更加准确。当遍历之后得到的最小e值(差的绝对值之和)大于一定阈值时,即跟踪得到的目标区域与模板数据相差较大,表明该模板可能不再适用,需要及时更新模板。

该系统将每一帧跟踪得到的目标区域的左上角坐标进行保存,连续保存5帧目标坐标数据,当需要更新模板时,产生更新模板请求信号,即将保存的5次目标坐标进行加权处理得到一个目标坐标的值,即为最接近真实目标的坐标;然后在搜索区域内找到对应计算得到的目标区域,读取该区域的像素灰度数据,并写入目标区域的双端口RAM中,实现自适应目标模板更新,模板数据的及时更新可以提高后面的跟踪准确度。其中更新目标模板的坐标计算方法如式(5)所示。

式中,P1(x1,y1)、P2(x2,y2)、P3(x3,y3)、P4(x4,y4)、P5(x5,y5)分别表示过去第1~5帧的目标左上角坐标,P(x,y)表示通过计算得到目标左上角坐标。从式(5)可以看出,过去连续5帧的目标坐标乘对应的权值之后,将得到的值相加,再除以所有的权值之和得到的就是预测目标左上角坐标。其中越靠近第一帧的目标坐标乘的权值越大,反之,权值越小,这样可以减少多帧前目标坐标带来的影响,这样计算得到的预测目标坐标也更加准确。通过ILA(在线逻辑仪)采集到跟踪过程中自适应模板更新次数的波形图如图4所示。

图4 自适应模板更新ILA波形图Fig.4 ILA waveform diagram updated by adaptive template

2 实验结果与分析

2.1 测试仪器及评估标准

为了验证本文方法的准确性和有效性,本文采用Vivado 2019.1进行程序编写,选择中科芯杯FPGA跟踪器测试软件作为上位机,采用Xilinx Artix-7 XC7A35T作为控制器,测试仪器如图5所示。用于测试的是4个不同场景的1 280×720@50 Hz视频。

图5 测试仪器Fig.5 Test instrument

选用跟踪重叠率作为算法性能评估标准,跟踪重叠率定义为实际目标区域与跟踪结果区域的重叠区域与实际目标区域的比值乘以100%。

2.2 测试结果及分析

为了更好体现跟踪算法的性能,选择4个不同场景作为测试视频,分别是视频1无人机在飞行过程中发生姿态变化,视频2无人机背景复杂多变,视频3光线变化明显且无人机移动较快,视频4无人机距离较远导致像素很少,跟踪效果如图6所示。跟踪重叠率实时波形图如图7所示,可以看出视频1、视频2、视频4没有出现跟丢的情况,视频3出现跟丢几帧,但后来又重新捕捉目标,从4个测试视频实时重叠率可以看出该算法跟踪重叠率基本达到90%。表1所示是各测试视频的平均重叠率及目标所占像素个数,可以看出该算法对视频1跟踪平均重叠率可以达到98.696%,说明该算法对姿态变化跟踪效果较好;对视频2跟踪平均重叠率可以达到95.053%,在经过吊塔时,重叠率受到影响降到70%左右;视频3跟踪平均重叠率是97.049%;视频4跟踪平均重叠率是96.852%,满足准确度要求。视频1和视频3目标像素较多,因此在跟踪重叠率计算时,重叠率要高一点,而视频2和视频4目标像素较少,导致计算重叠率时分母较小,进而重叠率曲线波动较明显。

图6 不同视频的跟踪效果Fig.6 Tracking effects of different videos

表1 不同视频的跟踪重叠率Table 1 Tracking overlap rates of different videos

结合图6和图7对跟踪效果进行分析如下。

(1)目标姿态变化:图6(a)中第529帧无人机改变姿态飞行,自适用更新模板发送请求信号,使模板更新为姿态变化后的数据,在第631帧无人机以改变的姿态经过干扰背景,从图7(a)可以看到,跟踪重叠率曲线没有出现大的波动,跟踪效果很好。

(2)背景复杂多变:图6(b)中在第172帧和251帧无人机经过较为复杂的塔吊,从图7(b)重叠率波形图可以看出,在172帧和251帧出现了波动,但重叠率一直在60%以上,没有出现跟丢的情况,说明在复杂情况下,通过自适用更新模板方式使目标跟踪效果较理想。

(3)光线变化明显,无人机移动较快:图6(c)中在第121帧无人机发生快速移动,在第121~122帧移动了32个像素点,从图7(c)中可以看出跟踪重叠率没有出现较大改变,稳定在95%以上,在第541帧从图6(c)可以看到光线发生了明显改变,但从图7(c)中重叠率得到光线对重叠率会造成影响,但会快速重新捕捉目标,本文算法在跟踪此类情况依然有较好效果。

(4)目标较远:图6(d)中无人机距拍摄距离较远,导致无人机目标在视频中的像素数很少,表1所示视频4无人机在画面尺寸是40×20像素点,图7(d)中第275帧小目标经过背景复杂的场景时,图7(d)显示重叠率仍在90%以上,本文算法对此类情况的跟踪效果很理想。

图7 不同视频的跟踪重叠率波形图Fig.7 Tracking overlap rate waveform of different videos

评判FPGA算法的好与坏,其中一个关键指标就是逻辑资源耗费情况,本系统选用Xilinx Artix-7 XC7A35T作为控制器,其主要资源使用情况如表2所示。将该计算方法代码综合成电路,该系统输入时钟为50 MHz,通过PLL产生200 MHz时钟提供给图像数据处理,目标模板分配10 240字节储存模板数据到双口RAM中,每个数据8 bit。搜索范围分配20 480字节储存到双端口RAM中,每个数据宽度为8 bit。从表2中可以看出查找表(LUT)资源消耗率很少,消耗总资源的11.12%,而嵌入式块(BRAM)消耗率在16%,该方法在双端口RAM消耗方面也使用很少,总体来说,该方法占用FPGA内部资源较少。

表2 FPGA资源利用情况Table 2 FPGA resource utilization

各项场景测试中,本文算法跟踪一帧耗时在20 ms以内,满足跟踪实时性要求,消耗FPGA内部资源较少,同时通过自适用目标更新方式在跟踪飞行姿态变化、背景复杂、飞行速度快、目标小、光线明显变化情况下,跟踪平均重叠率均可达到95%以上,满足绝大多数的跟踪要求。

3 总结

本文目标跟踪算法基于FPGA平台开发,提出一种有效的目标跟踪算法。本文首先将RGB数据流进行灰度转换并保存搜索区域与模板数据,然后在搜索范围进行遍历,找寻与目标模型相似度最高的图像,算法的计算量较小,加上FPGA的并行处理,使识别速度更快;提出一种自适应更新模板方法,在跟踪背景复杂、光线变化等情况下,有较理想的跟踪效果。算法分别在飞行姿态变化、背景复杂、飞行速度快、目标小、光线明显变化情况下进行测试,测试结果显示跟踪速度均在50 frame/s以上,具有较好的实时性;在跟踪重叠率上也都在95%以上,有较好的跟踪准确度。但本文方法对有物体遮挡情况不能胜任,且跟踪之前先要获取第一帧的目标位置,才能将目标模板保存用于后续跟踪。

猜你喜欢
实时性像素点灰度
采用改进导重法的拓扑结构灰度单元过滤技术
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
基于局部相似性的特征匹配筛选算法
基于像素点筛选的舰船湍流尾迹检测算法
基于canvas的前端数据加密
基于最大加权投影求解的彩色图像灰度化对比度保留算法
航空电子AFDX与AVB传输实时性抗干扰对比
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
计算机控制系统实时性的提高策略
可编程控制器的实时处理器的研究