林传健,章卫国,2,史静平,2,吕永玺,2
(1.西北工业大学 自动化学院,西安 710072; 2.陕西省飞行控制与仿真技术重点实验室(西北工业大学),西安 710072)
UAV在执行敌情侦查、视觉导航、目标检测和跟踪等任务时,视觉系统是不可缺少的一部分[1].在执行任务时,UAV上的视觉系统对目标地区进行图像采集,通过图像处理方法对感兴趣的目标进行分析和特征提取,实现对目标的跟踪和定位.目前大多数涉及到UAV跟踪系统的研究都停留在理论探索层面.由于UAV飞行速度快、起降难以及空域管制等问题,使得实际试飞成本高、难度大.因此如何降低成本并且有效地进行目标跟踪实验是一个急需解决的问题.
在过去的几十年中,计算机技术的迅猛发展使得视景仿真技术得到快速发展.视景仿真技术利用计算机图形技术构建具有三维模型和仿真环境的研究对象,从而实时地再现仿真场景.视景仿真不仅提供精确的环境模拟,同时能快速地对系统重新设计和测试,大大降低成本,在航路规划和飞行器姿态显示和军事仿真训练等方面[1-5]广泛应用.文献[6-7]用显示器播放视景仿真软件运行的画面,用实际的摄像机进行拍摄,但是这种方法没有考虑到软件中视场角的影响.文献[8]在Creator/Vega中利用高程及影像数据模拟环境以及摄像机效果,搭建了跟踪系统来满足侦察训练需求,但是每一帧视场范围需经过参数解算才能获得,实现起来较为复杂.
本文利用视景仿真软件(Vega Prime,VP)和MATLAB/Simulink设计和实现了一个UAV跟踪系统仿真平台,并选择汽车作为地面跟踪的目标.视景显示系统、图像跟踪算法与MATLAB/Simulink之间通过共享内存和UDP进行通信,解决不同子系统之间的通信问题.提出了一种实用可靠的标定方法,完成了视景仿真系统中虚拟摄像机内参矩阵的标定.为验证仿真平台的运行效果,本文将基于运动补偿的云台控制算法[9]和参考点制导法[10]应用到该仿真平台上.仿真结果表明,该仿真平台能较好地还原实际跟踪场景,模拟UAV跟踪汽车的过程,实现了低成本、高质量的闭环仿真验证.
仿真平台由视景显示系统、目标跟踪系统、目标定位系统和Simulink模型系统四个部分组成,如图1所示.整个跟踪系统的组成如图2所示.
图1 闭环仿真平台系统组成
图2 跟踪系统示意
视景显示系统使用VP作为开发平台[11-12].首先在软件中导入UAV和汽车的3D模型,在UAV模型底部设置一个Transform模块模拟云台,然后通过设置Transform的俯仰和旋转运动模拟云台的运动.将观察者设置为Transform模块,则VP的主窗口会显示从Transform模块视角看到的场景,模拟摄像机拍摄,视景显示系统输出如图3所示.UAV的运动及云台的俯仰和水平旋转会改变摄像机的视场,VP的主窗口就会显示不同的场景,模拟了UAV实际飞行中摄像机的拍摄情况.
目标跟踪系统采用基于相关滤波[13-14]的高效卷积算子(Efficient Convolution Operators, ECO)图像跟踪算法[15].使用ECO算法时,首先人工选定目标区域,即汽车所在的矩形区域,然后ECO算法对目标区域进行特征提取,初始化跟踪器,开始跟踪,并将目标所在的矩形区域的坐标传递给目标定位系统.
目标定位系统选择汽车所在矩形框的中心点像素坐标当作汽车的坐标,结合本图像保存时UAV和云台对应的位姿,利用目标图像模型解算出目标在世界坐标系下的坐标,并把解算结果发送到Simulink模型系统用于飞行引导指令的计算.
Simulink模型系统由飞机仿真模型、汽车仿真模型和云台仿真模型组成.飞机仿真模型负责进行六自由度方程的解算并完成UAV的控制,进而引导UAV围绕目标飞行.云台仿真模型用于解算云台的姿态,控制云台的旋转和俯仰,使目标保持在视野中央.汽车仿真模型的任务是解算汽车的位置,控制汽车的航向和速度.汽车仿真模型独立于其他模型,其他模型无法得知汽车的运动状态.
仿真平台实物如图4所示,左边屏幕有两个窗口,左边窗口为视景显示系统的输出显示,右边窗口为目标跟踪系统的输出显示.右边屏幕为Simulink的窗口,运行目标定位系统和Simulink模型系统.两个屏幕均连接在同一台工作站上.
4个子系统之间通信方式如图5所示.视景显
示系统利用Windows的设备句柄将VP主窗口的场景以图像序列的形式保存到共享内存中,并且在保存该图像帧的同时,以文本形式保存下UAV的位姿和云台的位姿.
目标跟踪系统读取共享内存中的图像序列,在第一张图片中标出感兴趣的物体,然后ECO开始进行跟踪.ECO算法将目标在图像中的位置以文本的形式保存到共享内存中.
图5 闭环视景仿真系统通信示意
目标定位系统读取内存中飞机的位姿,云台的位姿以及目标在图像中的位置,利用目标图像模型计算出目标的实际位置,把目标的位置输出到Simulink模型系统中.
Simulink模型系统与视景显示系统之间利用UDP通信.Simulink模型系统定时将UAV、汽车以及云台的位姿信息发送到视景显示系统中,驱使视景系统中UAV、汽车和云台模型的运动,使视景不断进行更新,从而实现闭环仿真.
通过图像信息获取到目标在世界坐标系下的位置是进行目标跟踪的首要条件.因此本文根据UAV、云台和目标三者的几何关系建立了目标图像模型.UAV在跟踪过程中目标、云台、摄像机和UAV的相对位置关系如图6所示.摄像机和云台的位置重合,跟随云台转动.
图6 UAV、云台和目标的相对位置关系
Pt=P1+P2+P3.
(1)
(2)
式中向量P3为摄像机到目标的距离,满足如下关系
(3)
(4)
像素坐标系与摄像机坐标系之间的关系为
(5)
由式(4)、(5)可得图像目标模型的表达式为
(6)
实际工程中,最常用的标定方法是张正友提出的基于单平面棋盘格的标定方法[16].该方法只需利用相机拍摄若干张棋盘格照片,步骤简单,实用性较强.但是在仿真系统中,摄像机是虚拟的,无法拍摄棋盘格,则张正友标定法无法应用.受到张正友标定的启发,本文提出一种精确可靠的标定方法,可直接标定视景仿真软件中的内参矩阵.
目标图像模型如式(6)所示.通过在视景软件中设置UAV、汽车和摄像机的位置姿态信息,可获得对应的图片.汽车在图像中的位置通过人工标记获得,深度信息zc的解算将在目标位置计算中详细说明.因此,式(6)中仅有内参矩阵未知.内参矩阵共有5个参数,标记一张图片获得两个方程,利用与图3类似的3张图片就可求解出内参矩阵M,但是这样计算出的结果并没有实际的物理意义,并且存在误差.为进一步增加标定结果的可靠性,将使用最大似然估计来优化上面得到的结果.
世界坐标系和像素坐标系之间的关系用一个旋转矩阵R和平移向量T表示,假设得到不同条件下的n幅图片,每幅图片上均有一个汽车的像点,目标图像模型可表示为
(7)
(8)
构造似然函数
(9)
为了能够让L取得最大值,将问题转化为
(10)
式(10)是一个非线性优化问题,将使用Levenberg-Marquardt方法进行优化.利用最开始标定得到的解作为初始值,不断进行迭代得到最优解.
(11)
则通过下式计算得到
(12)
获得深度信息zc之后,式(6)右侧的剩余变量可通过传感器量测获得,则利用下式估算出目标的地理位置
(13)
图像深度zc的计算需要已知目标的海拔高度zt,在计算的时候假设zt已知.但地形可能存在高低起伏,造成zt存在误差,给定位带来影响.假设
zt=zt,o±Δt.
(14)
式中:zt,o代表目标海拔高度的精确值,Δt代表海拔高度的误差.根据式(12)和式(13),得到目标水平位置xt和yt关于海拔高度zt的导数为:
海拔高度对定位精度的影响可用如下模型评估
(15)
式中:Pt代表由式(6)计算出的目标的位置,Pt,o代表准确的目标位置.式(15)代表地面海拔改变时引起的定位误差.
由于UAV目标跟踪主要应用于平原地区,因此可以假定Δt=±20 m.根据式(6)和式(15),固定其他变量,可得∂Pt/∂zt=0.43 m/m.而UAV跟踪目标的期望半径通常在100 m以上,所以在平原地区,该定位误差对UAV跟踪精度影响较小.
在跟踪过程中,摄像机视野会受到UAV运动的影响.实际上,受到气流变化、UAV姿态调整和目标位置变化等因素的影响,摄像机的成像画面容易出现模糊、跳动的情况,降低识别准确度甚至丢失目标.为保证摄像机的视野保持稳定,需要对云台的运动加以控制.
3.1.1 UAV姿态补偿
(16)
(17)
3.1.2 中心点补偿
(18)
式中:atan为反正切.设采样时间为Δt,则总的云台控制指令为
(19)
式中:k1和k2为补偿的比例系数,均大于0.根据式(19),本文提出如图7所示的云台控制器.
图7 云台控制器
通过云台控制算法,避免因飞机姿态变化过快而引起摄像机视场的变化,可始终保证目标在图像中心附近,有利于图像跟踪算法跟踪目标.
3.2.1 UAV控制律设计
UAV在跟踪地面目标的时候,需要围绕目标做圆周运动,因此需要给出相应的滚转角指令.本文中采用参考点制导法来获取滚转角指令.
3.2.2 参考点制导法
文献[18]利用参考点制导法[10]实现了UAV跟踪曲线航路,并证明了稳定性.在利用参考点制导法跟踪目标时,UAV和目标的位置关系如图8所示.
图8 参考点制导法
参考点制导法根据目标位置生成期望的圆形路径,半径为rd,并在圆形路径上指定一个参考点.参考点的位置在圆形路径上并与飞行器相距L1.根据L1与无人机速度的夹角,生成横向加速度指令为
(20)
式中:V为无人机的速度,ascmd为横向加速度指令,与UAV速度方向垂直,L1为连接UAV位置和期望路径参考点的线段,大小为固定值,η为V与L1的夹角,η∈[-π π].
利用式(20)得到横向加速度指令后,需要利用式φcmd=atan(ascmd/g)将横向加速度转换成滚转角指令,引导UAV围绕目标飞行,实现跟踪.
工作站的硬件环境为:处理器Inter Core i7-6800K CPU 12核,主频3.40 GHz;显卡NVIDA GeForce GTX1080;内存32 G.VP的版本为2013,MATLAB版本为2016b.
本文在仿真时采用UAV六自由度模型,UAV飞行高度hg为150 m,飞行速度Vg为25 m/s,起点坐标为(0,0)m,滚转角限制为|φ|≤30°.
VP的分辨率设置为1 280×960,纵向和横向视场角均为80°,模拟摄像机的内参矩阵为
(21)
云台控制算法中比例系数取k1=1和k2=0.06.
参考点制导法的运行周期为200 ms,期望跟踪半径rd为130 m,L1的长度为100 m.
ECO算法的部分输出如图9所示,长方形框表示ECO算法预测汽车所在的矩形区域.
图9 视景输出图像的跟踪结果
本文选取中心点误差定量衡量跟踪算法的跟踪效果.中心点误差是指跟踪算法预测的图片上目标中心点与人工标注的目标中心点之间的欧式距离,是衡量跟踪算法性能的重要指标,单位为pixel.一般将中心点误差小于20 pixel看作正确跟踪[19].由图10可知,中心点误差的平均值为9.75 pixel,只有少数帧的误差超过20 pixel,说明ECO在仿真环境也同样表现优异.
图10 中心点误差仿真结果
本节设计了多种汽车运动模式,验证云台控制算法和参考点制导算法的效果,并利用本文所搭建的仿真平台进行闭环仿真.
图11中,汽车的运动轨迹为直线,x方向速度为10 m/s,y方向的速度为10 m/s.
图12中,汽车的运动轨迹为正弦.
图11 跟踪直线运动目标
图12 跟踪变方向运动目标
图13中,汽车x方向的速度依次为4 m/s、8 m/s、10 m/s和12 m/s;y方向的速度依次为4 m/s、8 m/s、10 m/s和12 m/s;运动轨迹为四边形.
图13 跟踪变速变方向目标
由仿真结果可知,云台控制算法和参考点制导法相结合的策略能够使UAV跟踪不同运动速度和方向的地面目标.整个仿真过程均是在本文设计的仿真平台进行的闭环仿真,证明该仿真平台对UAV跟踪过程具有较高程度的还原,得到的仿真结果具有较高的工程参考价值.
1)利用3D仿真软件Vega Prime(VP)和MATLAB/Simulink设计了一个UAV跟踪系统仿真平台,实现了目标跟踪实验的闭环仿真.该仿真平台成本低,实现简单,并且各个子系统采用模块化设计,方便进行推广和替换.
2)将基于运动补偿的云台控制算法和参考点制导法应用到该仿真平台上,使UAV能够跟踪具有不同运动状态的目标,并且保证目标始终在视野范围内.
3)仿真平台对UAV跟踪过程具有较高程度的还原,得到的仿真结果具有较高的工程参考价值.下一步工作,将研究把云台控制算法和参考点制导法应用到真正的无人机平台上.