基于YOLOv4-tiny的无人机全自动跟踪方法
2023-10-10陆宇峰王丹翔谢芳芳季廷炜
张 硕,陆宇峰,王丹翔,谢芳芳,季廷炜
(浙江大学 航空航天学院,杭州 310000)
0 引言
随着人工智能迅速发展,无人机作为一种新型的运载平台和应用工具被广泛应用于多个领域并具有巨大发展潜力。计算机视觉赋予无人机视觉能力,在航空摄影[1]、基础设施检查、灾后救援等多个方面扮演着重要的角色。同时,结合视觉技术的无人机在军事领域因其良好的机动性和可视化条件成为了新兴的战场利器。例如,在没有GNSS(全球导航卫星系统)覆盖的区域,无人机可以通过相机连续帧的图像探测来跟踪其他飞行器,并利用其高机动性接近一些难以抵达的区域。
目前,大多数传统的图像后处理技术都难以实现无人机实时目标检测。其中,Mean Shift[2]算法在目标初始区域已知的情况下可以实时跟踪目标,但不能在运动对象的大小发生变化时自适应地跟踪对象,同时无法跟踪快速移动的物体。Dalal等[3]采用不同的HOG(方向梯度直方图)特征描述子来提取不同的特征,并与不同的SVM(支持向量机)分类器进行组合。还有其他离散目标检测算法,如Sift检测和广义轮廓搜索算法。传统算法的性能虽然在不断提升,但仍存在面对具体的实际环境时泛化性较差、计算量大、实时性不好等缺陷。目前,随着深度学习(deep learning,DP)进程的加快,目标检测领域的发展迎来一个高速发展的时代。CNN[4]和“YOLO”都被认为是嵌入在基于视觉的无人机导航系统中的强大主流目标探测算法。其中基于卷积神经网络 (convolutional neural networks,CNN)的目标检测算法一般分为2个阶段,包括候选区域的提取以及对候选区域的分类,在此基础上还开发了R-CNN[5]、Fast-RCNN[6]、Faster-RCNN[7]等算法,并在很大程度上提升了目标检测效果。但是这种分为2个阶段的算法在速度上还是不能满足目标检测任务对于实时性的要求。2016年Redmon等[8]提出YOLO(you only look once)算法,通过将单幅图像输入到卷积网络中,在一次评估中生成边界框坐标、置信水平、类概率,进一步加快目标检测算法的速度。但部署在无人机上的计算资源有限,依旧无法满足“YOLO”目标检测系统的计算要求。在“YOLO”算法的基础上,陆续出现了许多改进算法。例如,Shafiee等[9]提出的“fast-YOLO”框架,Huang等[10]提出的“YOLO-lite”、YOLOv2-tiny”和“YOLOv3-tiny”框架,以及Bochkovskiy[11]提出的“YOLOv4-tiny”框架,均能显著降低原本“YOLO”框架中网络的复杂性,从而大大提高目标的检测速度。
综上所述,经过改进后的“YOLO”算法基本可以满足无人机的实时目标检测要求。由于实际情况中不能保证目标物体总是被捕获,同时在机载计算资源、无人机载重、尺寸、功率等条件的限制下,提出一种实时的目标检测算法与无人机嵌入式系统集成的框架。同时,结合卡尔曼滤波器作为辅助技术处理短时间遮挡下位置的更新和轨迹的预测。特别是不只强调对目标的感知,还融合无人机跟踪控制策略模块。在低成本无人机系统中实现三维姿态跟踪算法,并通过飞行实验对该系统进行验证。本研究中使用的大部分训练数据集都是由无人机捕获视频提取的图像,使所选的模型获得足够的精度。
1 自主无人机的系统方案和跟踪控制策略
整个系统的目标是将深度方法集成到一个全自动跟踪监视无人机中,如图1所示。视觉系统的主要组件为Intel RealSense D435i双目相机,其结合宽视场和全局快门传感器。嵌入式设备采用NVIDIA Jetson Xaiver NX,其能提供高达14~21TOPS的算力,内置的CUDA-X AI软件可以为深度学习架构进行优化推理。此外部署RTK定位系统用于室外视觉定位,相较于传统GPS定位具有厘米级定位精度,能实时地提供测站点在指定坐标系中的三维定位结果。飞行控制器选用Pixhawk4硬件,预装最新的PX4原生固件。
图1 自主无人机跟踪方案框架图
所设计的自主无人机系统的主要软件架构为:① 感知模块;② 目标跟踪算法和姿态估计;③ 无人机机动。此架构由机器人操作系统(ROS)支持,使用MAVROS实现机载电脑和Pixhawk4的通信,Mavlink实现地面站与Pixhawk4的通信。无人机感知RGB图像和深度数据,并通过YOLOv4-tiny算法识别视场中的目标物体,然后将生成的二维边界框与深度数据进行融合,获得物体的三维姿态估计。最后Pixhawk4根据跟踪控制策略模块给出的数据指令控制飞行器至期望姿态和期望位置。
用于实施飞行测试的无人机技术规格和嵌入式系统分别如表1、表2所示。
表1 无人机技术规格
表2 嵌入式系统
根据方案要求,提出的整套跟踪控制逻辑策略如下:首先系统初始化,操作人员通过地面端PC远程连接机载电脑切换至Offboard模式。无人机起飞到一个初始设定的高度,并开始以一个设定的旋转角速度来360°搜索目标。双目相机获取视频流,机载处理器通过输入帧检测目标物体。当定位并锁定目标后,机载电脑计算二者的相对位姿,当前帧的位姿信息输入得到无人机控制指令,判断无人机是否进入“跟踪”模式。为防止目标在短时间内离开相机视野,“跟踪”模式的设定为无人机的中心轴应该与目标对齐,使目标检测的预测框位于画面的中心。而当目标被观察为“水平动态”即水平方向存在偏移量时,无人机将尝试摇摆,保持目标物体停留在中心附近,旋转角速度控制在wmax内;当目标为“垂直动态”时,无人机尝试爬升或下降。值得注意的是,为使无人机保持平稳,垂直速度控制在vmax以内。若当前模式为“跟踪”模式,无人机根据深度数据得到无人机与目标物体的相对距离来判断下一步的机动行为。同时设定一个安全距离Dsafe来避免跟踪无人机与目标物体的碰撞。当相对距离小于安全距离,无人机则根据控制系统生成的一系列离散的航路点远离目标物体,并保持无人机速度小于vmax;如果相对距离大于安全距离,目标物体动态远离时,无人机作出机动反应跟随目标物体运动。同时目标丢失时间大于2 min,则会触发无人机的着陆指令。具体流程如图2所示。系统可以同时处于多种状态中,比如爬升和前进、后退和下降。
图2 视觉跟踪控制逻辑系统
2 目标姿态估计
2.1 YOLOv4-tiny目标检测
YOLO系列算法属于端到端的目标检测方法。YOLO将目标检测视为一个回归问题,通过对整个图像应用一个CNN和边界框,进行目标的分类和定位。作为无人机跟踪目标的重要前提,视觉检测算法的体积和实时性尤为重要。YOLOv4-tiny算法作为YOLO系列的第4代改进算法的轻量化算法,具有网络结构简单、参数少、计算量小的特点。它使用CSPDarknet53-tiny主干网络代替YOLOv4的CSPDarknet53主干网络,整体网络结构仅有38层,使用3个残差单元,激活函数使用LeakyReLU。相较于YOLOv4,不仅大幅度优化了网络结构,而且保持了可接受的检测精度与检测速度。在实时目标检测中,YOLO在视频输入的每一帧上生成二维边界框来预测被检测目标的二维位置。
2.2 数据集训练
无人机数据集包含3类对象:人类、四旋翼、鸟类。四旋翼是无人机空中侦察的主要目标物体,鸟类通常会作为空中目标的干扰类别,人类目标在低空环境中较为常见且利于飞行试验的开展。为提高模型的准确性,在数据集中增加没有目标对象的背景图像作为负样本。该数据集共包含6 000张图像,具有不同光照条件、尺度、角度视图、长宽比、分辨率和背景。每个类包含1 250张训练图片和250张验证图片,如图3所示。
图3 训练集和验证集
首先使用ImageLab[12]图像标注软件对数据集进行手动标注,然后对所有经过标注的数据集的Anchor(多尺度滑动窗口)进行K-means聚类。将样本点划分成K个聚类,再计算每个类的聚类中心,重复此过程尽可能使相似样本为同一聚类,其衡量相似度的指标为每一个对象与聚类中心的欧氏距离。将聚类得到的结果作为预设后续训练的Anchor box,从而提高每个网格单元的平均重叠度(intersection over union,IoU)和目标定位的整体精度。实验所得锚框的尺度分别为(7,10);(9.7,13);(12.5,15.3);(14.3,20.4);(19,22.4);(25,30);(33,39);(46,49.2);(84,78)。聚类精度提升5.28%,图4为K-means聚类的结果。
模型在搭载A100的高性能服务器上训练,训练的目的是最大化平均精度均值 (mean average precision,mAP),最小化Loss(损失函数)。其训练参数设置为:初始迭代次数为2 000,输入分辨率为416pixel*416pixel,批量处理大小为8,置信度阈值为0.5,权重衰减系数为0.000 5,学习率为 0.002 5。在训练的过程中,每间隔指定的迭代次数,采用验证数据集对模型进行评估。如图5所示,对于有负样本和无负样本的数据集,结果表明:有负样本的数据集训练模型mAP更高且Loss曲线下降更快。在实验过程中,模型训练约400次迭代后,检测结果趋于稳定。
图5 有无负样本下mAP和Loss迭代变化曲线
为了验证模型的实验效果,在Nvidia Jetson Xaiver NX板载计算机上们评估训练模型的性能,图6为随机选取的图片进行测试的结果,无人机对于中小目标的检测精度高达92%,检测速率为25 FPS,满足实时跟踪的需求。
图6 鸟类和旋翼的检测结果
2.3 目标位置估计
通过上述目标检测,可以实时获得相机中每帧目标物体的预测边界框,包含4个参数bx、by、bw、bh(bx和by为中心坐标,bw和bh分别为宽度和高度),记作感兴趣区域S。对目标物体的预测边界框进行缩放,记作Sr,缩放因子为θ。表示为:
S=[bxbybwbh]
Sr=[bxbyθbwθbh]
结合双目相机给出的深度信息,过滤掉Sr以外的像素信息,取Sr中深度信息的平均值作为目标相对位姿。图7的中心部位为示例缩放区域。
图7 YOLOv4-tiny生成的图像平面上的边界框坐标和深度数据示意图
2.4 基于滤波器的跟踪
YOLOv4-tiny算法虽然具有较好的速度和准确度,但由于空中目标物体和无人机的状态都是动态变化的,存在相机的抖动和目标物体不在视野中的情况。相机的抖动可能会导致目标物体无法被持续性跟踪,并且在复杂环境中也不能保证目标物体总是被捕获。本文中采用卡尔曼滤波器[13]作为应对短时间闭塞的辅助技术从而提高系统跟踪性能。
卡尔曼滤波器是一个递归的算法。首先用相机的相对位置和速度建立物体的状态矢量xk,即相机协调坐标系中的x、y和z坐标。假定目标状态随恒定的速度变化,所有的测量值和噪声都遵循高斯分布。离散条件下估计系统的递归方程为
xk=Fxk-1+Bμk+wk
(1)
观测方程为
zk=Hxk+vk
(2)
式(1)、式(2)中:F为状态转移矩阵;B为输入控制矩阵;wk为噪声矩阵;zk为观测值;H为测量矩阵;vk为测量噪声。该系统可以进一步分为2个步骤:预测和更新。图8为卡尔曼滤波预测和更新的状态过程。
图8 卡尔曼滤波预测和更新过程
预测方程为
(3)
式(3)中:P为计算预测状态值和预测值与真实值之间的预测误差协方差矩阵;Q为系统预测噪声协方差矩阵,代表整个系统的可靠程度,一般初始化为很小的值。当无人机没有捕获到目标对象时,启动卡尔曼滤波器利用上一帧数据预测目标的当前位置。更新方程为
(4)
式(4)中:K为最优卡尔曼增益;zk为测量矩阵;H为转移矩阵;R为观测噪声协方差矩阵。卡尔曼滤波器的运动状态之间具有递推关系,可以通过每次迭代来更新状态信息。
综上所述,整个视觉算法实现过程如下:
输入:实时视频流。
步骤1:YOLO进行目标检测;
步骤2:如果检测到目标,触发并初始化卡尔曼滤波器参数;
步骤3:卡尔曼滤波器进行预测,得出预测状态xk和预测误差协方差矩阵P;
步骤4:持续检测到目标,置信度大于等于0.7:目标状态即为观测值zk,卡尔曼滤波器利用观测值输入更新方程得到卡尔曼增益K,更新状态xk,更新估计协方差矩阵P;置信度<0.7:卡尔曼滤波启动预测过程,目标状态为预测值;
步骤5:若未检测到目标,将步骤3所得预测参数输入卡尔曼滤波更新过程;
步骤6:输出后验估计和目标状态xk;
步骤7:融合目标状态和深度信息得出Sr;
步骤8:进入跟踪控制逻辑模块,程序结束。
3 飞行试验
飞行试验在户外空旷的草地上进行。分别进行目标为四旋翼和目标为人类的实验。目标将以直线往复式进行移动。初始化系统之前,准备工作如下:首先将无人机上的机载电脑客户端和地面的PC机服务器端建立连接,然后无人机将画面实时传回。无人机的位置变化取决于控制系统生成的一系列离散的航路点,通过确定目标物体在3个轴上的移动趋势来作出机动反应。由于户外环境的复杂性,光照条件和背景的变化都会影响无人机检测目标物体的精度。试验选择在阴天且开阔的地方进行,确保双目相机深度数据的准确性和RTK的定位精准性。在跟踪过程中,尽可能保持无人机与目标物体的相对距离不超过8 m,防止无人机脱离跟踪模式。图9为多次飞行试验中观察者视角、无人机的视角。绿色边框为生成的检测框,右上角数据分别为:类别、类预测概率、目标距离。
图9 飞行试验图
图10为直线往复式跟踪实验过程示意图,x轴是无人机与跟踪目标的欧式距离在地平面的投影。考虑到相机精度和RTK的漂移误差对跟踪性能的影响,设定无人机和目标的z轴高度为固定2 m,初始相对距离为4 m左右,目标线速度不超过0.4 m/s。无人机在跟踪起始点A悬停,令目标从B点出发,沿x轴方向移动。当目标被视觉系统捕获,跟踪系统开始工作,无人机作出机动反应。因为整个试验过程无人机和目标在z轴方向上没有明显的变化,故对无人机和目标的中心的x、y轴坐标进行数据分析。
图11、图12为无人机和目标在x、y轴方向的位置关系图。从图11、图12中可以看出,在x轴方向,位置偏差在0.4 m范围内,无人机在大部分时间内都能够跟随目标无人机且保持一定的安全距离。此外,在目标第2个反向运动时,无人机没有作出实时机动反应,且在实验后期存在跟踪滞后的现象。在y轴方向,基本在与目标同一位置附近波动,存在小扰动和传感器的误差,波动偏差在0.2 m范围内,在某些时刻存在一定的超调现象,这是由于目标的运动的和RTK等传感器的漂移。与关注静态目标而非动态目标的跟踪系统相比,反映出较高的误差,但对总体性能没有产生显著影响。由于动态目标的实时位置精度对系统的跟踪鲁棒性有关键影响,需要对估计的无人机距离动态目标的真实值和跟踪过程中通过视觉系统捕捉的目标相对距离值展开进一步分析。分别统计4 m内和4~8 m的平均误差,如表3所示。当目标相对距离在4 m内时,视觉系统具有更高的精度,随着目标距离的增加,光照、噪声等因素将对相机造成更大的干扰。
表3 不同距离下相对距离的误差比较
图12 跟踪无人机和目标无人机y轴方向地面真实值
4 结论
1) 基于YOLOv4-tiny和嵌入式设备的无人机全自动跟踪方法可以用于侦察和跟踪空中物体,且不需要关于外部环境或目标对象的先验知识,以完全无监督的方式执行空中任务作出机动反应。
2) 在感知算法基础上,结合卡尔曼滤波避免假阳性或假阴性等情况,通过提出的跟踪控制逻辑模块确保无人机能自主平稳跟踪目标。
3) 飞行实验对所采用的深度学习技术的优越性进行评估。研究结果表明,即使在目标范围、照明条件和局部背景的显著变化时,此种方法对简单跟踪任务已具备可行性和鲁棒性。在下一步的工作中,将对目标复杂运动和远距离跟踪展开研究,进一步验证面对复杂任务时的鲁棒性。