融合YOLOV5+DSST+KCF的目标检测跟踪算法在激光通信中的应用
2023-10-28马志勇俞建杰许博玮邬佳杰
李 悦,马志勇,俞建杰,许博玮,邬佳杰
(1.湖州师范学院 工学院,浙江 湖州 313000;2.浙江大学 湖州研究院,浙江 湖州 313299;3.浙江大学 生物医学工程与仪器科学学院,杭州 310027)
0 引言
在空间激光通信领域中,两激光通信设备能够互相准确识别出对方所在位置并接收彼此发射的激光,完成通信是实现激光通信的关键所在。并且空间激光通信具有传输速率高、通信容量大、功率消耗低、保密性强、安全性能好且结构轻便等优势,使其应用领域变得越来越广泛。其中,将飞机、高纬度浮空平台、卫星等应用系统获得的海量数据实时下传到地面终端是其主要应用领域[1-2],从系统框架构成上考虑,可将空间激光通信分为有信标和无信标两种结构,本文提到的空间激光通信使用的是有信标光。空间激光通信中的APT系统(捕获、对准、跟踪)是实现高概率、快速捕获、高动态跟踪的前提与保障[3],通常使用的是复合控制系统机构,可将其工作的过程划分为4个主要阶段:分别是初始指向、快速捕获、粗精跟踪、动态通信。捕获指在不确定区域内对目标进行判断和识别,是粗略的跟踪,大约在1~20°的角度范围内发现目标,即“捕获目标”的意思。跟踪是指对发现的目标展开追踪,对准是指精准的跟踪。跟踪的精度一般与具体的使用场景有关,为了保证能够实现激光通信,通常要求捕获的概率要达到95%以上。传统的捕获、对准、跟踪这一过程往往需要人工辅助,操作起来比较麻烦,本文通过加入视觉目标检测与跟踪算法来取代捕获与粗跟踪这一过程。使用目标检测算法识别激光通信设备来取代激光通信中APT系统中的初始指向与快速捕获,正确识别到通信设备后利用步进电机辅助视觉目标跟踪算法对被跟踪目标展开跟踪,这一过程对应的是激光通信过程中的粗跟踪。接下来分别对通信设备的目标检测与目标跟踪部分展开叙述。
针对激光通信设备识别模块采用的方法是使用视觉目标检测方法,视觉目标检测是环境感知的重要内容[4],但是目标检测算法中有一个困难是目标特征的提取。目标检测算法共分为传统目标检测算法和基于深度学习的目标检测算法两大类。传统的目标识别算法都是通过手工进行特征提取,通过这种方式提取到的特征一般适用于特征较为明显、背景单一的场景下,但是在大多数场景下,背景通常较为复杂、特征多变且存在干扰,通过手工进行特征提取来实现目标检测较为困难,且传统的目标检测算法识别准确率低、计算量大、有时还会出现多个正确识别效果。随着科学技术的发展以及对深度学习理论的不断研究,直到深度神经网络的出现,目标检测算法得到了进一步的提升。基于深度学习的目标检测算法借助于卷积神经网络的特征提取以及分类性能自动提取图像中的高维信息,对目标识别有较强的泛化能力[5]。目前基于深度学习的目标检测算法可分为两大类:一类是基于分类的“两步式”目标检测算法,代表性算法有R-CNN[6]、Fast R-CNN[7],另一类是基于回归的“一步式”目标检测算法,代表性算法有YOLO[8-10]、SSD[11],基于分类的目标检测算法的发展使得检测精度越来越高,但是检测速度上的提升空间很大,与基于分类的目标检测算法相比,基于回归的目标检测算法将目标检测问题转化为回归问题,真正意义上实现了端到端的实时目标检测,通过利用CNN卷积特征获取目标类别的概率与坐标信息,有着更快的检测速度,并且随着对YOLO算法的改进,检测精度也达到了惊人的效果,适用于实时检测应用场景。因此本文采用的是第二类方法中的YOLOV5算法。
由于两激光通信设备实现激光通信情况下,需要检测时间尽可能短、能够稳定有效地对另一激光通信设备展开跟踪。上述基于回归的目标检测算法虽然精度高,且也能够实现视觉上的跟踪效果,但是它是基于每一帧进行检测且当该帧没有检测到通信设备时,则不会出现目标框,无法做到连续稳定地对通信设备展开跟踪,且YLOV5目标检测算法基于每一帧图像耗费的运算量大,容易造成资源的浪费,而基于相关滤波的目标跟踪算法如MOSSE[12]、Meanshift[13]、DSST、KCF[14]等等可以弥补这一缺陷。本文采用的是KCF跟踪算法,这种算法主要思想是将视频目标跟踪问题抽象为模板图像与候选区域的相似度匹配问题[15],即通过将目标模型作为正样本,背景区域作为负样本,利用正负样本之间的差异训练一个目标分类器,在下一帧图像中,通过利用该分类器计算图像中像素点的响应值,找出最大响应值的位置点作为当前帧图像的目标位置。但是此类算法在跟踪过程中存在一定的弊端:1)由于目标框大小不会随着目标大小的改变而改变,导致容易将背景信息引入到跟踪模型中;2)目标跟踪的初始帧需要人为进行框选,即若第一帧中没有目标则需要切换到下一帧甚至需要移动相机模块将目标移动到拍摄画面中才可以进行后续视觉上的跟踪;3)在跟踪过程中容易受到遮挡物的干扰;实施起来较为麻烦且容易出现跟踪漂移的现象。针对上述问题中提到的原KCF算法目标框大小是不随目标大小变化而发生变化的问题,本文加入DSST[16]算法中的尺度估计滤波器算法,使得在跟踪过程中目标框大小随着目标大小改变而做出相应改变,从而避免跟踪过程中目标漂移导致跟踪失败现象的发生;针对目标跟踪第一帧需人为框选这一问题,前文中提到的YOLOV5目标检测算法刚好可以弥补这一不足,使用YOLOV5检测到被跟踪目标后,作为KCF跟踪算法的初始帧展开后续的跟踪;针对若拍摄画面中没有出现被跟踪目标问题,提出在检测过程中,进行区域扫描来辅助搜索被跟踪目标。
1 融合目标检测与跟踪算法的目标跟踪
1.1 KCF目标跟踪算法
KCF目标跟踪算法是一种基于核相关滤波的跟踪算法,属于判别式跟踪[17-18]方法中的一种。它通过在跟踪的初始帧中给出的目标框进行填充,获取一个填充框,在下一帧图像中将填充框进行循环移位获取循环矩阵,来收集大量的正负样本,将有目标的区域作为正样本,其它区域作为负样本,使用收集到的这些正负样本来训练目标检测器,在下一帧图像中,使用训练好的目标检测器检测预测位置是否是目标出现位置,并使用上一帧的填充框继续进行循环移位,将得到的样本框内的图像再次进行分类,作为正负样本,并选择这些样本框中响应最强的作为当前帧目标的填充框,使用当前帧获取的样本来更新目标检测分类器,在此过程中,利用循环矩阵在傅里叶空间可对角化的性质以及快速傅里叶变换对这些样本进行计算,提升其运算速度,用公式表示该过程为:首先设一组训练样本为(xi,yi),xi为样本,yi为样本标签,则回归函数为f(xi)=wTxi,w为列向量表示权重系数,可通过最小二乘法求解,用式(1)表示:
(1)
式中,λ为正则化系数,用于控制系统的结构复杂性。
通过引入非线性映射函数φ(xi),可将低维非线性不可分问题映射到高维空间,从而转化为线性求解,如式(2)所示:
w=∑iaiφ(xi)
(2)
在核空间下将式(2)代入式(1)并进行离散傅里叶变化,如式(3)所示:
(3)
得到非线性滤波器后,对视频中的图像块进行检测,从而求出目标所在的位置,待检测图像块用z表示,则在检测过程中的输出响应方程如式(4)所示:
f(z)=(KZ)Tα
(4)
原KCF跟踪算法在对激光通信设备进行视觉上的跟踪过程的工作如图1所示,其原理是:首先,人为框选出拍摄画面中的激光通信设备,作为跟踪的初始帧,并根据初始帧框选出来的激光通信设备的特征来初始化相关滤波器的模型;其次,利用该模板在后续帧的拍摄画面中找到响应最大的位置,作为当前帧跟踪到的激光通信设备的位置;最后,利用每帧中确定的激光通信设备的位置来更新滤波器模型的参数。
图1 基于原KCF算法的通信设备跟踪框图
1.2 YOLOV5目标检测算法
YOLOV5算法是YOLO系列算法中的一种,用到的模型是深度神经网络,以整张图像作为输入,通过卷积、池化、上采样、张量拼接等操作,最后输出图像中目标的类别以及图像中的位置信息。YOLOV5在检测精度、运行效率、训练难易程度等方面相较于YOLO的其他版本具有优秀的表现,YOLOV5又包括不同的网络模型,其中,YOLOV5s网络在不同阶段使用的卷积核数量都是最小的,因此检测速度也是最快的,其它3种网络是在YOLOV5s的基础上,不断加深加宽网络,但检测速度随着神经网络的加深、加宽而下降。综合考虑本文选用的是yolov5s模型。其框架结构如图2所示,主要包括3个模块:特征提取层、特征池化层以及目标预测层[19]。
图2 YOLOV5网络框架图
1.3 DSST尺度估计滤波器
DSST跟踪算法中提出了一种三维尺度相关的滤波器[20],由两部分组成:一维尺度滤波器和二维位置滤波器。一维尺度滤波器用于评估目标的尺度变换问题,又称为尺度滤波器(scale filter),二维滤波器用于评估目标的位置变换问题,又称为位置滤波器(translation filter)。这两个滤波器是相互独立的,因此,其中的尺度滤波器具有可移植性,可与其它具有尺度不变性的跟踪算法相结合,尺度估计滤波器可分为训练与检测两个过程,在训练过程中,其滤波器的大小为M*N*S,其中M*N为目标所在区域的图像块的高和宽,S为以图像块正中心位置开始,截取不同尺度图片的数量,f为不同尺度上的图像块的特征描述子,g表示大小为1*S的高斯函数构建的三维滤波响应输出,通过将g,f代入式(5)可获取滤波器的模板h。
(5)
在检测过程中,在新一帧的图像中,已经确定目标所在位置情况下,以目标位置为中心,截取S个不同尺度的图像块,并分别求出每个图像块的特征描述子,组成一个新的特征金字塔z,与训练过程中迭代更新过的模板h,通过图3所示的方式分别获取它们的响应输出g,并根据响应输出g中最大值来确定新一帧图像中目标的尺度信息。
图3 DSST尺度估计滤波器原理图
1.4 YDK检测跟踪
KCF跟踪算法的优点是不需要事先对大量目标样本进行训练,只需要对初始帧中人为框选的目标位置以及后续跟踪过程中不断更新的目标位置进行训练,得到一个目标检测器,使用该目标检测器确定后续帧中目标的位置,进而实现实时跟踪,但当目标的大小发生变化,导致引入过多背景信息,或者出现遮挡时间过长情况下,则会最终导致跟踪失败。
YOLOV5目标检测算法的优点在于在对目标进行检测之前,通过神经网络对大量的目标样本进行训练,使用训练好的模型对目标进行检测,由于该算法是通过提取到的目标的特征信息在图像中通过滑动框的方法对多尺度的目标进行检测,一定程度上避免目标大小发生变化时或者出现过长时间遮挡后再次出现无法检测出目标状况的发生;但是YOLOV5目标检测算法对训练样本有很高的要求,如果待检测画面中的目标与背景信息与训练样本中的差异较大,则不能稳定有效的检测出目标位置,且YOLOV5检测算法的帧率要低于KCF跟踪算法。
针对两种算法的不足与优点,提出将两种算法相结合。首先,在实时拍摄画面中,使用YOLOV5算法进行视觉上的目标检测,确定被跟踪激光通信设备在当前帧的位置后,作为KCF跟踪算法的初始帧展开后续的跟踪,并在KCF跟踪算法中加入DSST算法中的尺度估计滤波器算法来对通信设备进行实时检测与追踪,具体流程如图4所示。
图4 YDK算法流程图
由图4可知,YDK算法的大致流程是:开启程序,控制步进电机进行区域扫描,即在水平方向与垂直方向各放一个步进电机,发送指令控制这两个步进电机交替运行实现矩形螺旋扫描,同时,使用YOLOV5算法在实时拍摄画面中识别出被跟踪激光通信设备所在位置信息。当检测到被跟踪激光通信设备的置信度达到设定阈值时,则说明检测成功,检测成功后,电机停止扫描,并将当前帧被跟踪激光通信设备的坐标信息传入KCF跟踪算法,作为初始帧中的被跟踪对象,从而展开后续跟踪;在后续帧的跟踪过程中,确定每帧图像中的目标位之后,使用DSST算法中的尺度估计滤波器算法确定每一帧中目标框大小,并根据每一帧的响应峰值来判断跟踪是否正确,若跟踪正确,则发送指令控制控制步进电机运行,从而对拍摄画面中目标的位置做出相应的调整,若跟踪失败则调用YOLOV5算法重新进行YOLOV5目标检测,直到跟踪结束,停止程序运行。
2 实验与分析
2.1 实验平台环境
激光通信设备图片采集主要使用海康威视的DS-2CD3T86FWDV2-I3S相机,拍摄范围为5 m内,焦距为2.8 mm;训练网络模型使用的硬件平台为Core i7-12700F@2.1 GHz处理器,软件平台为Win11,CUDA10.2,CUDNN8.0,Pycharm 2021,Pytorch1.8.0,Torchvision0.9.0,Opencv4.4.46(CUDA编译);实时拍摄测试硬件平台使用的是Jetson Xavier NX,开发板,软件平台是Jetpack5.0.2,python 3.8.10,CUDA11.4,CUDN8.4.3,Pytorch 1.12.0,Torchvision0.13.0,Opencv4.4.45(非CUDA编译)。系统硬件搭建如图5所示。
图5 系统总体设计
根据图5可知,单个激光通信设备用到的模块有三脚架、相机、步进电机、电机驱动板,电机驱动板供电电源、转台,开发板。
2.2 激光通信设备图像采集
分别在不同场景、不同距离下采集激光通信设备图片作为训练数据集,共收集数据集3 811张图片,使用Labelimg工具对数据集每张图片中的激光通信设备进行标注,标注完成后,将其中3 028张作为训练集,783张作为测试集,通过使用YOLOV5自带的网络训练模型对这些样本集进行训练,为了缩短网络的训练时间以及达到较好的检测精度,采用的是yolov5s.pt预训练权重。数据训练完成后,会在项目文件夹下产生一个best.pt和last.pt文件,前者为训练最好的权重文件,后者为最后一轮的权重文件。本文选用的是训练效果最好的权重文件,,将训练好的模型分别在拍摄完成的一段视频,以及实时拍摄视频上进行测试。数据集的部分样本如图6所示。
图6 数据集样本
2.3 激光通信设备跟踪结果分析
在视频上进行测试时,是使用手机拍摄一段视频,其中视频中要体现出激光通信设备由远及近,以及不同角度转变;将原KCF、YDK、HDK算法在这段视频上进行测试,观察它们的跟踪效果,该过程不涉及电机模块的控制,如图7所示。在进行实时测试的过程中,则是在检测过程中,控制步进电机运行从而带动相机模块进行区域扫描;在跟踪过程中,控制步进电机运行从而调整被跟踪激光通信设备在拍摄画面中的位置信息。
图7 跟踪效果图
根据图7可知,图(a)第一帧为人为框选的结果,在第136帧时,目标框偏离了被跟踪激光通信设备所在位置,在第356帧时引入了过多的背景信息,导致后续帧逐渐完全偏离激光通信设备所在位置,致使无法辅助两激光通信设备实现激光通信;图(b)第一帧为Haar级联分类检测效果,只对局部进行框选导致后续跟踪的帧中只是对通信设备的局部进行跟踪,但可以发现跟踪的效果要优于图(a)跟踪效果;图(c)第一帧为使用YOLOV5算法实现对被跟踪激光通信设备自动检测的效果,其置信度达到了0.91,且目标框与被跟踪激光通信设备所在位置重合,最大程度上减少了背景引入量,并且在图(c)后续的跟踪画面中,目标框完美的框选出了被跟踪激光通信设备所在位置,这是由于DSST算法中尺度估计滤波器算法的加入,使得每帧目标框的大小在正确框选出被跟踪激光通信设备所在位置情况下,随着目标的大小做出相应的调整;通过这三组跟踪效果对比可发现YDK算法的跟踪效果要明显优于图(a)与图(b)的跟踪效果。原KCF、HDK、YDK算法在跟踪过程中的平均响应峰值如表1所示。
表1 不同跟踪算法响应峰值与帧率
根据表1可知,在一段视频上进行测试时,原KCF算法的平均响应峰值为0.432,平均帧率为39帧;HDK算法的平均响应峰值为0.472,比原KCF算法提高了9.26%,平均帧率为12帧,比原KCF算法下降了69.2%;通过结合图7中不同算法的跟踪效果展示与表1中不同跟踪算法的响应峰值以及帧率的数据发现:HDK算法虽然有加入DSST尺度自适应算法,但是由于在跟踪的初始帧中,识别到被跟踪激光通信设备后,框选的是被跟踪激光通信设备的局部信息,导致在后续帧中一直是针对激光通信设备的局部进行的,随着被跟踪目标渐远有丢失目标的风险;YDK算法的平均响应峰值为0.620,平均帧率为12帧,平均响应峰值比原KCF算法提高了43.5%,比HDK算法提高了31.4%,平均帧率比原KCF算法下降了68.97%,比HDK算法提高了1.2%;随着帧数的增加,YDK算法比HDK算法能够更好的检测出通信设备所在位置,并且目标
框大小能够随着被跟踪激光通信设备大小的改变而改变,具有更好地适应能力;为了测试YDK算法的实时检测跟踪效果,增加了一组对比试验,发现平均响应峰值为0.710,平均帧率为13帧,平均响应峰值比原KCF算法提高了64.35%,比HDK算法提高了提高50.4%,比其在测试视频上提高了14.5%,平均帧率比原KCF算法下降了65.6%,比HDK提高了12.2%,比其在测试视频上提高了10.8%;说明YDK算法跟踪效果要优于HDK算法与原KCF算法。
3 结束语
本文通过将目标检测效果良好的YOLOV5算法与DSST算法中的尺度估计滤波器算法与KCF跟踪算法相结合,实现长时且有效的目标跟踪,并且应用到激光通信领域中,实现了对被跟踪激光通信设备的精准识别与实时跟踪效果,可代替激光通信领域中的粗瞄准的过程,很大程度上节约了人工、时间成本。本实验中用到的YDK算法与原KCF、HDK算法相比,跟踪精度与准确度有了明显的提高,但是帧率明显下降,在满足本实验中系统要求情况下,会针对提升帧率展开研究,比如使用效率更高的编程语言,开多线程等等。