微小型无人机以其体积小、灵活性强、经济性好等优势,目前已在敌情侦察、通信中继、反恐训练、航空拍摄等多个领域得到了广泛的运用[1-2]。近年来,微小型无人机目标跟踪已经越来越广泛的运用于移动监控、高速执法等多个领域。然而,目前微小型无人机移动目标跟踪的主要方式,仍依赖于操作手的手动操控。这种方式需要操作手实时监测无人机相对于目标物体的位置,并根据目标物体的移动速度实时调整无人机的航向和前进速率。这种方式耗费人力,无法使无人机长时间自动跟踪移动物体。近年来,虽然国内外学者对无人机自动跟踪移动物体进行过一定的研究[3-5],但由于其算法复杂度高、不具备实时性、无法对无人机跟踪目标时飞行线路上的障碍物进行躲避等原因,一直无法真正在实际生产生活中得到应用。
基于计算机视觉的无人机目标跟踪方式有着工作方式被动、抗干扰能力强、跟踪精度高等特点[6-7]。在工作原理上,基于计算机视觉的无人机目标跟踪可以模仿人类操控手的操控方式,利用实时图像信息对无人机与目标物体之间的相对位置进行修正,目前已被广泛运用于各类移动机器人目标跟踪领域。
基于此,本文设计一种新颖的无人机视觉导航和目标跟踪方法。采用该方法的无人机同时装备有单目和双目摄像头。其中,单目摄像头安装在无人机底部,实时将无人机相对于目标物体的图像传输给嵌入式图像处理模块。嵌入式图像处理计算机对实时图像进行分析并计算出无人机相对目标物体的偏差,机载飞行控制计算机通过收到的图像处理模块所计算的偏差生成相应的修正控制律控制无人机的姿态,从而进一步修正无人机相对于目标物体的位置偏差。双目摄像机安装在无人机顶部并朝向无人机机头方向,负责实时采集无人机前进方向上的图像信息并实时传输给嵌入式图像处理模块。嵌入式图像处理模块采用经GPU加速的SGM算法计算出无人机前进方向上的深度图,并获取障碍物的距离和几何轮廓信息。机载飞行控制计算机通过收到障碍物信息生成相应的修正控制律,控制无人机的姿态以对跟踪过程中的障碍物进行躲避。
1 无人机视觉导航系统架构基于视觉的无人机自动跟踪与避障系统架构如图1所示。
![]() |
Download:
|
图 1 无人机视觉导航系统架构 |
系统主要由飞行控制模块和图像处理模块构成。其中图像处理模块主要包括带有GPU的嵌入式图像处理计算机、双目摄像机和单目摄像机;飞行控制模块主要包括飞行控制计算机、气压计、惯性测量单元(inertial measurement unit,IMU)、超声波传感器和GPS。为了实时计算无人机前进方向上的深度信息,本文选用拥有192核心开普勒架构GPU的Nvidia Jeston Tegra K1作为嵌入式图像处理平台。双目及单目摄像头采用高速USB3.0接口与图像处理计算机连接,保证所获取的图像可以实时传送至图像计算机进行处理;图像处理计算机通过串口与飞行控制计算机连接,其他传感器通过CAN总线与飞行控制计算机相连接。同时,该系统还包括一套可以实时监测无人机飞行状态并规划其航路的地面站系统(ground control station,GCS),可对自主跟踪中的无人机进行远程监测和控制。
2 无人机移动目标跟踪算法本文采用经Kalman预测器优化的连续自适应均值漂移算法(continuously adaptive mean-shift , Camshift)[8-9]对地面移动目标进行跟踪。Camshift是一种有效的迭代跟踪算法,具有对照明变化和图像噪声不敏感、实时性好、鲁棒性强等优点。Camshift算法通过颜色直方图的形式表示跟踪物体与模板之间的关系,并可以自动调整搜索框大小。这一特点可以保证无人机在受到噪声干扰时仍可以持续跟踪目标物体。Camshift算法具体实施步骤如下。
1)将输入的图像由RGB空间转化为HSV空间。
2)手动选择需要跟踪的移动目标区域,并计算该区域Hue通道的颜色概率分布图。
$I(x,y) = {w_i} = \sum\limits_{u = 1}^m {{Q_u}} \delta [b({x_i}) - u]$ |
式中
3)通过计算概率分布图的0阶矩(
$\begin{aligned}& {M_{00}} = \sum\limits_x {\sum\limits_y I } (x,y)\\& {M_{10}} = \sum\limits_x {\sum\limits_y {xI} } (x,y)\\& {M_{01}} = \sum\limits_x {\sum\limits_y {yI} } (x,y)\\& {x_c} = \frac{{{M_{10}}}}{{{M_{00}}}}\\& {y_c} = \frac{{{M_{01}}}}{{{M_{00}}}}\end{aligned}$ |
4)计算移动物体的跟踪矩形框长轴
$\left\{ \begin{aligned}& {l_1} = \sqrt {\frac{{(a + c) + \sqrt {{b^2} + {{(a - c)}^2}} }}{2}} \\& {l_2} = \sqrt {\frac{{(a + c) - \sqrt {{b^2} + {{(a - c)}^2}} }}{2}} \\& \theta = \frac{1}{2}\arctan (\frac{b}{{a - c}})\end{aligned} \right.$ | (1) |
式(1)中的a、b、c可通过计算颜色概率分布图的二阶矩M11、M02、M20获得:
$a = \frac{{{M_{20}}}}{{{M_{00}}}} - x_c^2,b = 2(\frac{{{M_{11}}}}{{{M_{00}}}} - {x_c}{y_c}),c = \frac{{{M_{02}}}}{{{M_{00}}}} - y_c^2$ |
${M_{11}} = \sum\limits_{i = 1}^n {xy{w_i}} ,{M_{20}} = \sum\limits_{i = 1}^n {{x^2}{w_i}} ,{M_{02}} = \sum\limits_{i = 1}^n {{y^2}{w_i}} $ |
Camshift算法虽有诸多优点,但其返回的目标物体跟踪框的质心坐标容易受噪声影响。再有,当目标物体暂时被遮挡或丢失而后重新出现时,Camshift算法无法再次搜寻到目标物体,造成跟踪失败的情况。基于以上问题,本文采用Kalman预测器对连续自适应均值漂移算法进行优化[10-11],具体步骤如下。
首先建立状态量
${{{X}}_k} = {\left[ {\begin{array}{*{20}{c}} {{x_k}}&{{y_k}}&{\begin{array}{*{20}{c}} {{\theta _k}}&{{v_{x,k}}}&{{v_{y,k}}} \end{array}}&{{v_{\theta ,k}}} \end{array}} \right]^{{T}}}$ |
${{{Z}}_k} = {\left[ {\begin{array}{*{20}{c}} {{x_k}}&{{y_k}}&{{\theta _k}} \end{array}} \right]^{{T}}}$ |
式中:xk、yk是被跟踪目标物体的质心坐标,
接着建立Kalman预测器的状态方程:
${{{X}}_{_k}} = {{{\varPhi}} _{k,k - 1}}{{{X}}_{k - 1}} + {{{N}}_{k - 1}}$ | (8) |
式中
${ \varPhi _{k,k - 1}} = \left[ {\begin{array}{*{20}{c}}1 & 0 & 0 & {\Delta t} & 0 & 0\\0 & 1 & 0 & 0 & {\Delta t} & 0\\0 & 0 & 1 & 0 & 0 & {\Delta t}\\0 & 0 & 0 & 1 & 0 & 0\\0 & 0 & 0 & 0 & 1 & 0\\0 & 0 & 0 & 0 & 0 & 1\end{array}} \right]$ |
式中
${{{Z}}_{_k}} = {{{H}}_k}{{{X}}_k} + {{{V}}_k}$ | (10) |
式中
${{{H}}_k} = \left[ \begin{array}{l}\begin{array}{*{20}{c}}{\begin{array}{*{20}{c}}1 & 0 & 0\end{array}} & 0 & 0 & 0\end{array}\\\begin{array}{*{20}{c}}{\begin{array}{*{20}{c}}0 & 1 & 0\end{array}} & 0 & 0 & 0\end{array}\\\begin{array}{*{20}{c}}{\begin{array}{*{20}{c}}0 & 0 & 1\end{array}} & 0 & 0 & 0\end{array}\end{array} \right]$ |
式(2)、(3)中的
最后,建立Kalman预测器的更新方程为
${{\mathord{\buildrel{\hbox{$\scriptscriptstyle\frown$}} \over X} }}(k|k) = {{\mathord{\buildrel{\hbox{$\scriptscriptstyle\frown$}} \over X} }}(k|k - 1) + {{{K}}_k}[{{{Z}}_k} - {{{H}}_k}{{\mathord{\buildrel{\hbox{$\scriptscriptstyle\frown$}} \over X} }}(k|k - 1)]$ |
Kalman预测器的预测方程为
${{\mathord{\buildrel{\hbox{$\scriptscriptstyle\frown$}} \over X} }}(k + 1|k) = {{\varPhi \mathord{\buildrel{\hbox{$\scriptscriptstyle\frown$}} \over X} }}(k|k - 1) + {{\varPhi }}{{{K}}_k}[{{{Z}}_k} - {{{H}}_k}{{\mathord{\buildrel{\hbox{$\scriptscriptstyle\frown$}} \over X} }}(k|k - 1)]$ | (13) |
该算法可根据式(4)对下一帧图像中目标物体的位置进行预测,并通过式(4)实时更新Kalman预测器。经过Kalman预测器优化的Camshift算法不仅可以有效减少无人机震动对跟踪移动目标物体的影响,还可以在目标暂时被遮挡或丢失时预测其运动轨迹,并实时移动搜索框。当目标重新出现时,预测结果可有效帮助Camshift算法重新搜索并锁定目标,实现移动目标的持续跟踪。
3 基于立体视觉的无人机避障算法基于立体视觉的无人机避障算法流程如图2所示。
![]() |
Download:
|
图 2 基于立体视觉的无人机避障算法流程 |
首先,双目摄像机将无人机前进方向上的左右两幅图像同步实时获取并通过高速接口发送至机载图像处理计算机;图像处理计算机通过经GPU优化的SGM算法进行立体匹配得到深度图像信息;算法根据深度图像计算无人机视野中物体的轮廓并判断障碍物是否存在,若存在则将障碍物的距离及几何轮廓信息发送至飞行控制计算机控制无人机的姿态以对跟踪过程中的障碍物进行躲避。
在该算法中,通过立体匹配获得深度图是算法复杂度最高的部分。SGM是一种半全局匹配算法,其可以通过计算每一像素点上、下、左、右,左上、左下、右上、右下8个方向的能量函数将其累加,并通过计算每一像素点使得能量函数最小化的视差值确定每一个像素点的深度信息[12]。基于此种特性,SGM算法的GPU优化很容易实现,非常适合在例如无人机这类对实时性要求较高的平台上使用。因此,本文采用经过GPU加速的SGM算法实时获取无人机前向深度信息,具体步骤如下。
首先,计算在左摄像机平面中的像素p相对于右摄像机平面的像素q的视差值为
$C(p,{D_p}) = \min (d(p,p - d,{I_{{L}}},{I_{{R}}}),d(p - d,p,{I_{{L}}},{I_{{R}}}))$ |
$d(p,p - d,{I_{{L}}},{I_{{R}}}) = \mathop {\min }\limits_{p - 0.5 \leqslant p + 0.5} |{I_{{L}}}(p) - {I_{{R}}}(q)|$ |
式中
$S(p,d) = \sum\limits_r {{L_r}(p,d)} $ |
式中
$\begin{array}{l}{L_r}(p,d) = C(p,d) + \min ({L_r}(p - r,d),{L_r}(p - r,d - 1) + {P_1},\\{L_r}(p - r,d + 1) + {P_1},\mathop {\min }\limits_i {L_r}(p - r,i) + {P_2})\; - \min {L_r}(p - r,k)\end{array}$ |
最后,P点相对相机坐标系的距离Z便可通过三角原理计算得到:
$Z = \frac{{fT}}{d}$ |
式中:d为该像素点的视差值,T为左右相机的基线距离,f为摄像机的焦距。
4 实验验证为了验证本文所提方法的正确性和有效性,分别进行了无人机避障实验和无人机移动目标跟踪实验。实验所使用的无人机如图3所示。
![]() |
Download:
|
图 3 实验用四旋翼无人机 |
双目摄像头和超声波模块安装在无人机顶部并加高,这一操作可以有效防止无人机4个螺旋桨对双目摄像头和超声波模块的气流干扰。单目摄像机安装在无人机底部,安装时需保证起落架不出现在单目摄像机的视场中。
4.1 基于双目视觉的无人机避障实验在本实验中,我们使用设计的算法对3个连续的障碍物进行识别和规避。首先,无人机被手动操控起飞并向前飞行,在检测到前方有障碍物时,无人机向左右飞行使障碍物移出无人机的视场。实验中,前两个障碍物为静止障碍物,最后一个障碍物为向无人机走近的一位实验人员。
无人机避障实验结果如图4所示,图4的左列为双目摄像机左相机拍摄的彩色图像,右列为经SGM计算出的深度图。实验结果表明,本文设计的算法可有效对无人机前进方向上的障碍物进行识别,并控制无人机避开。实验中,无论是静止还是移动的障碍物,本文设计的算法都可以进行有效的识别,并在障碍物移出摄像机视场后自动寻找新的障碍物。
![]() |
Download:
|
图 4 无人机避障实验 |
在此实验中,我们利用所设计的算法使无人机可以跟踪一辆正在行驶的汽车。首先,无人机被手动操控起飞并悬停在静止的车辆上空,高度为10 m。接着,车辆开始移动,无人机根据目标物体与相机之间的偏差对移动车辆开始跟踪。无人机跟踪移动目标的第34,63,133,187,370和497帧图像如图5所示。实验结果表明,在跟踪过程中,本文所设计的算法可以持续锁定地面移动物体,并将其保持在无人机机载单目摄像头的视野中。值得注意的是,当无人机受到扰动,或遇到障碍物需要爬升或下降时,其飞行高度将会发生变化。如第133帧所示,本文设计的算法在此种变化下仍可以持续锁定并跟踪移动目标物体,体现了本算法良好的鲁棒性。
![]() |
Download:
|
图 5 移动目标跟踪实验 |
本文基于连续自适应均值漂移算法和立体视觉对无人机的视觉目标跟踪进行了研究,通过理论分析和实验结果得出以下结论。
1)提出了一种将连续自适应均值漂移和Kalman预测器相结合的无人机视觉目标跟踪算法,并通过实验验证了该方法的正确性和有效性,这对基于视觉的无人机导航方法,特别是对于移动目标跟踪领域,具有重要的参考价值。
2)提出了一种基于双目视觉的无人机避障方法,该方法具有良好的实时性和鲁棒性。如何将两种算法所得的数据进行进一步融合并用于具体工程任务(如高速公路违章车辆跟踪抓拍),将是下一步需要继续研究的方向。
[1] |
杨成顺, 杨忠, 葛乐, 等. 基于多旋翼无人机的输电线路智能巡检系统[J]. 济南大学学报: 自然科学版, 2013, 27(4): 358-362. (![]() |
[2] |
曾庆化, 潘鹏举, 刘建业, 等. 惯性信息辅助的大视角目标快速精确定位[J]. 航空学报, 2017, 38(8): 321171. (![]() |
[3] |
周帅, 秦明伟, 侯宝临. 结合局部差分的CamShift动目标跟踪算法[J]. 自动化仪表, 2017, 38(2): 1-4. (![]() |
[4] |
ZHANG Tianyi, YANG Zhong, ZHANG Xiang, et al. A vision system for multi-rotor aircraft to track moving object[C]//IEEE Chinese Guidance, Navigation and Control Conference (CGNCC). Nanjing, China: IEEE, 2016: 401−406.
(![]() |
[5] |
LEISHMAN R C. A vision-based relative navigation approach for autonomous multirotor aircraft[D]. Prowo, Utah: Brigham Young University, 2013. http://adsabs.harvard.edu/abs/2013PhDT.......130L
(![]() |
[6] |
吴显亮, 石宗英, 钟宜生. 无人机视觉导航研究综述[J]. 系统仿真学报, 2010, 22(S1): 62-65. (![]() |
[7] |
COURBON J, MEZOUAR Y, GUÉNARD N, et al. Vision-based navigation of unmanned aerial vehicles[J]. Control engineering practice, 2010, 18(7): 789-799. DOI:10.1016/j.conengprac.2010.03.004 (![]() |
[8] |
ALLEN J G, XU R Y D, JIN J S. Object tracking using CamShift algorithm and multiple quantized feature spaces[C]//Pan-Sydney Area Workshop on Visual Information Processing. Australia: Australian Computer Society, 2004: 3−7.
(![]() |
[9] |
王晋疆, 刘阳, 吴明云. 基于快速鲁棒特征的CamShift跟踪算法[J]. 计算机应用, 2013, 33(2): 499-502. (![]() |
[10] |
李明锁, 井亮, 邹杰, 等. 结合扩展卡尔曼滤波的CamShift移动目标跟踪算法[J]. 电光与控制, 2011, 18(4): 1-5. (![]() |
[11] |
何俊, 樊卫华, 王冲, 等. 基于CamShift和Kalman组合的改进目标跟踪算法[J]. 计算机测量与控制, 2017, 25(3): 209-212. (![]() |
[12] |
HERMANN S, KLETTE R. Iterative semi-global matching for robust driver assistance systems[M]//LEE K M, MATSUSHITA Y, REHG J M, et al. Computer Vision-ACCV 2012. Berlin Heidelberg: Springer, 2013: 465−478.
(![]() |