齐咏生 孟学斌 高学金 张丽杰
(1.内蒙古工业大学电力学院, 呼和浩特 010080; 2.北京工业大学信息学部, 北京 100124)
四旋翼无人机涉及到导航、计算机视觉、控制理论、嵌入式电子等多方面的技术,具有体积小、成本低、机动性好、可垂直起降等特点[1],不仅被应用于医疗救援、环境监控、灾情监测、远程遥感等领域,而且也越来越多地应用于农业感知和电力检修等特殊领域[2-3]。这些应用中,无人机自主着陆是重要技术之一,要实现无人机的自主着陆,就要实现对无人机姿态的精确估计。
随着计算机视觉技术的发展,利用机载摄像头捕获的图像信息估计无人机的姿态受到国内外学者的广泛关注。LEE等[4]提出了一种识别国际标准直升机停机坪的视觉算法,通过外部圆环和内部H形标志的边缘分布函数,可实现着陆标志的识别,但并未进行无人机的姿态估计。OLIVEIRA等[5]提出两种依靠机器学习的方法来自动检测由传统的圆环和H、X形字符组成的两类着陆标志。PRAKASH等[6]采用加速鲁棒特征(Speeded up robust features, SURF)算法提取H形着陆标志的特征,并根据这些特征,将预装载的着陆标志模板和无人机拍摄的图像进行匹配,该方法同样只进行了标志检测与匹配。SARIPALLI等[7-9]提出了一种基于几何特征的形状识别方法来检测H形视觉标志,并实现了无人机姿态的估计。该方法只给出了无人机相对于标志的x、y坐标和方向,并未得到6自由度的姿态。SANCHEZ-LOPEZ等[10-11]也提出了类似的方法,将主成分分析法(Principal component analysis, PCA)应用于图像中每一个连通域的前7个Hu不变矩,并将PCA处理获得的信息作为人工神经网络的输入,利用得到的H形标志角点计算无人机的姿态,然而神经网络的应用增加了算法的复杂度和计算量,不利于嵌入式系统移植。SILVA等[12]提出了一种全局搜索方法,能够在视野中找出可能包含着陆标志的最佳地点,无人机对每一个观测点进行基于视觉的局部标志搜索。LIN等[13]提出基于单目视觉的实时目标识别与跟踪方法,对直升机停机坪的轮廓进行特征点匹配和聚类,能够在杂乱的环境中识别出着陆标志,并得到4自由度的姿态信息。PREMACHANDRA等[14]提出了另一种检测无人机着陆标志的方法,通过树莓派处理由摄像头捕获的图像数据和由超声波传感器获得的无人机飞行高度数据,并利用Hough变换识别H形标志。SUDEVAN等[15]采用SURF算法提取H形标志的特征点,并采用基于快速近似最邻近(Fast library for approximate nearest neighbors, FLANN)的描述符匹配方法将捕获的图像与模板图像进行匹配,从而计算出无人机与H形标志中心的位置偏差。
基于视觉的无人机姿态估计仍然是当前的研究热点问题,文献[10-11]虽可以较精确地估计出无人机的6自由度姿态数据,但算法中应用了计算量较大的多层感知器(Multi-layer perceptron, MLP),对控制器的实时处理能力要求较高;文献[12,14]需要GPS、惯性测量单元(Inertial measurement unit, IMU)、超声波等辅助传感器,增大了算法的复杂性和成本。
为此,本文提出一种仅由单目视觉实现无人机姿态估计的方法,旨在保证准确性的前提下满足无人机控制器的快速性和实时性要求。充分利用图像几何特征易于快速提取的优势,采用五步标志提取方法获取视觉标志,提出一种基于距离三点法的角点检测算法得到视觉标志的角点,实现视觉标志的快速提取。并对算法的有效性和时间性能进行验证。
本文提出的基于视觉标志检测的旋翼无人机姿态估计算法的总体框图如图1所示。首先对由机载摄像头捕获到的包含视觉标志在内的图像进行预处理,消除图像噪声并突出视觉标志;然后根据视觉标志的几何特征,通过五步法提取出H形标志和圆环组成的视觉标志;采用距离三点法检测H形标志的12个角点并与预设参考图像中的对应角点进行匹配;最后,根据匹配的角点对计算单应矩阵,采用直接线性变换(DLT)方法分解单应矩阵,解算出无人机相对视觉标志的姿态角,并根据相机成像构成的相似三角形原理计算出无人机相对视觉标志的位置数据。
无人机姿态估计算法的目的是通过无人机采集到包含视觉标志的图像,快速获得无人机相对于视觉标志的姿态。考虑到算法的可比较性和通用性,本文算法仍采用由圆环和H形标志组成的标准直升机停机坪作为视觉标志,如图2所示。
图1 基于视觉的旋翼无人机姿态估计算法总体框图Fig.1 Overall framework of pose estimation algorithm of rotor UAV based on vision
图2 视觉识别标志Fig.2 Visual identification mark
将机载摄像头采集到的彩色图像转换为灰度图像,以消除算法对图像色彩的依赖[16],减少计算量并消除色调和饱和度信息而只保留亮度信息,提高标志提取的准确度,转换过程为
Y=0.299r+0.596g+0.211b
(1)
式中Y——转换后的灰度图像
r、g、b——彩色图像中的红色、绿色和蓝色分量值
转换结果如图3a所示。
考虑到无人机的振动或外界天气条件的影响,由机载摄像头采集到的图像可能会变模糊[6],因此,采用维纳滤波器[17]对灰度图进行去模糊处理,消除图像模糊的对比结果如图3b所示,维纳滤波器表达式为
(2)
其中
|H(u,v)|2=H*(u,v)H(u,v)
H(u,v)——退化函数
H*(u,v)——退化函数的复数共轭
Sη(u,v)——噪声功率谱
Sf(u,v)——信号功率谱
G(u,v)——噪声图像的傅里叶变换函数
图3 图像预处理结果Fig.3 Image preprocessing results
由于视觉标志中背景和标志具有较大的亮度差,为了明显区分高亮度的视觉标志和低亮度的背景,对维纳滤波后的图像进行自适应阈值化处理[18],得到黑色背景和白色标志,如图3c所示。从图3c中可看到,在对图像进行阈值化处理的过程中,会引入脉冲噪声和椒盐噪声。考虑到标准中值滤波对所有像素采用统一的处理方法,在滤除噪声的同时,也可能改变真正信号点的值,造成图像失真。因此,利用极值中值滤波器(EM)[19]对阈值化结果做进一步的处理,由于EM滤波器只对噪声点进行中值处理而对信号点保留原像素值,可以有效消除图像的脉冲噪声和椒盐噪声,同时保留图像的边缘信息,滤波结果如图3d所示,EM原理式为
(3)
式中yij——输出图像(i、j表示各像素点的位置)
med(W[xij])——对窗口W[xij]内的所有点取中值函数
min(W[xij])——对窗口W[xij]内的所有点取最小值函数
max(W[xij])——对窗口W[xij]内的所有点取最大值函数
xij——输入图像
经图像预处理得到二值图像后,就可以对图像中的视觉标志进行提取。本文提出的标志提取方法分为5个步骤,包括连通域检测、连通域剔除、连通域分类、连通域匹配与视觉标志判定,称之为五步法。其核心思想就是利用视觉标志中圆环和H形标志固有的几何特征,对得到的二值图像进行快速标志提取。
通过检测图像中的所有连通域,得到每一个连通域的质心坐标、面积以及周长等特征。由于标志所处环境的光照、阴影等因素的影响,得到的连通域中包含一些小面积区域,因此,为了减少候选连通域的数量,首先删除候选连通域中的小面积区域。然后,分别根据圆环和H形标志自身的几何特征对剩余连通域进行筛选和分类,得到圆环和H形候选连通域。
图4 标志提取结果Fig.4 Mark extraction results
最后,根据H形连通域位于圆环连通域内部并且其质心位置重合的条件,通过判断圆环连通域与H形连通域的质心间的欧氏距离,分别对两类候选连通域进行筛选。进一步,根据H形与圆环连通域的面积比和周长比,对剩余连通域进行判定,完成视觉标志提取。具体提取步骤如下:
(1)连通域检测
对二值图像进行连通域检测,得到包含视觉标志的所有连通域B[i](i=1,2,…,n,n为连通域数量)及其几何特征,如图4a所示。可以看到,共检测到9个候选连通域,分别以不同颜色表示,黑色表示背景,候选连通域中有许多错误的连通域,其中包含一些面积很小的区域,即像素很少的连通域。
(2)连通域剔除
此步骤主要删除上述连通域检测过程中得到的一些小面积区域。
如果第i个连通域的面积B[i]Area小于阈值TArea,那么从候选连通域删除该连通域,更新候选连通域,如图4b所示。可以看到,经连通域剔除后,面积较小的连通域5、6、8被删除,减少了候选连通域的数量。
(3)连通域分类
根据H形标志和圆环的几何特征对更新后的候选连通域进行分类,分为H形连通域和圆环连通域。根据H形标志和圆环自身面积-周长比的尺度不变性和旋转不变性,对候选连通域进行分类。如果第i个连通域的面积-周长比与H形连通域的面积-周长比的期望值相差很小,即满足
(4)
式中B[i]Perimeter——第i个连通域的周长
εA-P——连通域面积-周长比阈值
则将该连通域标记为H形候选连通域BH[j](j=1,2,…,m1,m1为H形候选连通域的数量)。
如果第i个连通域的面积-周长比与圆环连通域的面积-周长比的期望值相差很小,即满足
(5)
则将该连通域标记为圆环候选连通域BCir[k](k=1,2,…,m2,m2为圆环候选连通域的数量);否则,直接从候选连通域中删除。
连通域分类结果如图4c所示,可以看出,H形候选连通域有2个,对应连通域3、9,圆环候选连通域有1个,对应连通域2。
(4)连通域匹配
根据H形连通域与圆环连通域质心位置重合的关系,通过计算两类连通域质心间的欧氏距离,对H形候选连通域BH[j]和圆环候选连通域BCir[k]进行匹配,进而得到候选视觉标志VMarks[i](i=1,2, …,N,N为候选视觉标志的数量),即H形连通域与圆环连通域的对应表。
如果第i个H形连通域与第j个圆环连通域质心间的欧氏距离小于设定阈值εDis,则将对应的H形连通域和圆环连通域标记为候选视觉标志VMarks[i],即更新对应表,判定条件式为
EucliDist(BH[i]Centroid,BCir[j]Centroid)≤εDis
(6)
式中BH[i]Centroid——第i个H形连通域的质心坐标
BCir[j]Centroid——第j个圆环连通域的质心坐标
EucliDist(·)——计算两点间欧氏距离函数
连通域匹配结果如图4d所示,可以看出,实验图像中只得到一个匹配的视觉标志,即期望的H形标志和圆环。但是,如果采集到的图像中存在干扰信息,将得到不止一个视觉标志,因此,需对得到的视觉标志做进一步的判定。
(5)视觉标志判定
利用H形连通域和圆环连通域的面积比和周长比,对连通域匹配得到的候选视觉标志做进一步的判定和确认。
如果第i个视觉标志中对应的H形连通域与圆环连通域的面积比和周长比与期望的面积比和周长比相差很小,则标记为最终的视觉标志;否则,将该视觉标志从候选视觉标志中删除,判定条件式为
(7)
式中VMarks[i]HArea——第i个视觉标志中H形连通域的面积
VMarks[i]CirArea——第i个视觉标志中圆环连通域的面积
VMarks[i]HPerimeter——第i个视觉标志中H形连通域的周长
VMarks[i]CirPerimeter——第i个视觉标志中圆环连通域的周长
εArea——面积比阈值
εPerimeter——周长比阈值
经过上述连通域检测和筛选,可以提取出唯一期望的视觉标志,即标准直升机停机坪所包含的圆环及其内部的H形标志,进而可以得到视觉标志的边缘轮廓,如图4e所示。
在角点检测、角点匹配及无人机姿态估计过程中,只需要H形标志的12个角点信息,而不需要圆环的相关信息。因此,将主要提取H形连通域的轮廓,如图4f所示。将H形连通域的轮廓坐标顺序排列在一个列向量中,作为角点检测的输入。
此外,图5给出了标志提取过程可能存在的两种干扰情况。图5a给出由于标志表面杂质或光线反射的影响,在H形和圆环连通域之间出现面积较大的白色斑点,本文提出方法仍可准确地完成两类标志的分类;图5b给出在连通域匹配过程中得到两个候选视觉标志,通过视觉标志判定最终得到了期望的视觉标志。可见本文算法具有一定的鲁棒性。
图5 干扰情况下的标志提取结果Fig.5 Mark extraction results under disturbed condition
角点检测的目标是找到H形标志的12个角点位置,目前存在许多角点检测算法,主要分为基于灰度图像的角点检测、基于二值图像的角点检测和基于轮廓曲线的角点检测[20-21]。但上述方法都会出现错检或漏检的情况,并且计算量较大,很难满足无人机姿态估计的实时性要求。因此,本文提出一种基于距离三点法的几何方法来检测角点,可有效提升运算速度。
基于距离三点法的角点检测方法根据上述标志提取得到的H形连通域轮廓,对目标轮廓的每一个像素点进行检测。假设点S是一个待检测的像素种子点,根据一定的步长Lstep沿H形轮廓在种子点S的左右两侧分别取P1、P2两个相邻点,并得到通过点P1、P2的直线方程,从而可以计算种子点S到直线的距离dS,如图6所示。从图中可以看到,一个理想的角点对应一个较大的距离,而距离越小表示种子点与相邻点越接近一条直线,当距离为0时,三点共线。利用这一关系,通过判断种子点S对应的距离dS,就可以检测到所有可能的候选角点,计算如下
(8)
式中f(S)——种子点的检测结果
TDis——根据步长Lstep得到的距离阈值
f(S)=1表示S为可能的候选角点,f(S)=0表示S为非角点。
图6 角点检测原理Fig.6 Corner detection principle
在角点检测过程中,种子点S沿H形轮廓遍历每一个像素点,步长Lstep根据H形轮廓的边长值确定,边长越长,步长越大,边长越小,步长越小,关系式为
Lstep=αl
(9)
式中α——小于1的步长因子
l——H形轮廓最短边的长度
这样,由于无人机高度不同而引起的H形轮廓边长的变化不会影响角点检测的准确性,使得角点检测算法的鲁棒性更好。
为了排除上述步骤得到的H形轮廓所有候选角点中的离群点,即假角点,利用H形标志的尺寸关系对所有候选角点进行筛选。具体步骤如下:
(2)计算所有候选角点到H形标志质心的欧氏距离,并与3个期望的距离进行比较,如果与3个期望距离的任意一个的差值小于阈值δCornerDet,则标记为候选角点,否则认为是离群点,从候选角点中删除,其中δCornerDet根据H形轮廓的最短边计算得到,公式为
δCornerDet=βl
(10)
式中β——小于1的比例因子
筛选判定条件式为
(11)
图7 H形标志的尺寸关系Fig.7 Dimension of H shaped mark
图8 角点检测结果Fig.8 Corner detection results
经过上述角点检测,可以得到12个角点群,如图8a所示。通过计算一个小邻域内角点群的质心,可以得到12个角点群的质心,将其作为最终检测到的H形标志角点位置,如图8b所示。
角点匹配是无人机姿态估计的另一个关键环节,本文算法将当前图像中的角点与参考图像中的角点进行匹配,从而准确估计出无人机的姿态信息。角点匹配步骤如下:
(1) 根据2.3节角点检测得到的H形标志12个角点,首先确定H形标志的主方向。由于H形标志的轮廓坐标按顺序排列进行存储,因此,由角点检测方法得到的12个角点同样沿H形轮廓顺序存储。通过顺序计算相邻两个角点的距离,可以得到角点间的12个距离,即H形标志的12条边长,如图9a所示。
(2)比较得到的12个距离,取最大的距离所对应的两个角点所在的直线斜率作为H形标志的主方向,即H形标志的垂直方向,如图9b、9c中红色线段所示。与主方向垂直的方向定义为H形标志的水平方向,如图9c中绿色线段所示。这样,H形标志被划分为4个象限,分别为第Ⅰ象限、第Ⅱ象限、第Ⅲ象限和第Ⅳ象限。
(3)根据角点到质心欧氏距离的3种情况,将每个象限中的3个角点分类并进行编号,分为外点、中点和内点,如图9c所示。这样,就可以与参考图像中定义的角点完成匹配,如图10所示,从而得到12个匹配的角点对,将其作为无人机姿态估计的输入参数。
图9 角点匹配Fig.9 Corner matching
图10 当前图像与参考图像角点匹配结果(左边为 参考图像,右边为当前图像)Fig.10 Corner matching results between current image and reference image (Left picture was reference, and right one was current image)
根据上述角点匹配算法,分别对不同位移和旋转情况下所得到的图像与参考图像进行角点匹配测试,匹配结果如图11所示。从图中可以看出,该算法对无人机的平移(图11a)、旋转(图11b)甚至无人机产生剧烈倾斜的极端情况(图11c)都能实现精确的匹配。
无人机的姿态估计,即根据上述得到的12个匹配的角点对,估计出无人机相对于视觉标志的三维姿态。为了消除摄像头畸变对无人机姿态估计精度的影响,首先对摄像头进行标定,获得摄像头的内参矩阵。
图11 角点匹配测试Fig.11 Corner matching test
二维像素坐标与三维世界坐标的对应关系式为
(12)
其中
式中s——尺度因子
[uv1]T——像素坐标系中的齐次坐标
K——相机内部参数矩阵
[R|t]——相机外部参数矩阵
R——相机旋转矩阵t——相机平移向量
P——世界坐标系中的齐次坐标
其次,利用匹配的12个角点对,根据直接线性变换(DLT)可以计算出相应的单应矩阵[22],利用非奇异值分解(Singular value decomposition, SVD)对单应矩阵进行分解[23],可以得到旋转矩阵R和平移向量t,从而根据旋转矩阵解算出无人机的姿态角
(13)
式中θx——无人机绕x轴旋转角,即横滚角
θy——无人机绕y轴旋转角,即俯仰角
θz——无人机绕z轴旋转角,即偏航角
在位置估计中,由于单目相机在三维重建过程中存在尺度不确定的问题,本文利用针孔相机成像原理,通过三角形相似关系对当前图像中H形标志质心的深度进行估计。相机成像原理如图12所示,空间中任意一点在相机坐标系下的坐标M(X,Y,Z)与成像后图像中对应坐标m(x,y)的关系可根据三角形相似性得出,即
(14)
式中f——相机焦距
图12 针孔相机成像原理Fig.12 Imaging principle of pinhole camera
本文分别通过面积和周长对标志质心深度进行估计,取其平均值作为最终的标志质心深度值,并由此计算出H形标志质心相对于相机光心的x坐标和y坐标,实验表明,该方法可以较精确地估计出标志质心的深度。
(15)
式中Spixel——H形标志的像素面积
dpixel——相机的像元尺寸
Sactual——H形标志的真实面积
DArea——由面积相似求得的标志质心深度
(16)
式中Ppixel——H形标志的像素周长
Pactual——H形标志的真实周长
DPerimeter——由周长相似求得的标志质心深度
最终得到H形标志质心相对于相机光心的坐标(xH,yH,zH)为
(17)
式中xerror、yerror——图像中H形标志质心与图像中心在x方向和y方向的像素偏差
为验证本文所提算法的有效性和准确性,并考虑到直接通过无人机采集图像难以准确获得图像对应的无人机姿态信息,不利于算法的验证,因此,在实验室搭建了视觉实验平台来模拟无人机的运动并获取图像数据,将图像输入本文算法,通过比较算法输出的估计值和测量真实值之间的误差,对算法有效性和准确性进行验证,并测算所提出算法的时间性能。
搭建的视觉实验平台如图13所示,分别由沿x、y、z方向移动的平移单元和绕x、y、z轴旋转的旋转单元组成,以模拟无人机飞行过程中的6个自由度。
图13 视觉实验平台Fig.13 Visual experiment platform1.视觉标志 2.控制和驱动单元 3.摄像头
通过3组电动丝杠模拟无人机沿x、y、z方向的平移运动,其中y方向移动单元安装在x方向移动单元上,如图13a所示。3个旋转台用于模拟无人机绕x、y、z轴的旋转运动,如图13b所示。其中横滚和俯仰旋转台安装在y方向移动单元上,在俯仰旋转台上方固定有视觉标志,偏航旋转台通过一个连杆安装在z方向移动单元上,偏航旋转台下方安装垂直向下的摄像头,用于获取包含视觉标志的图像。通过控制和驱动单元调节平移运动单元和旋转运动单元,就可以模拟无人机相对于视觉标志的位置和姿态角,并通过计算机采集摄像头捕获的图像数据。
本文所使用的摄像头是一台分辨率为640像素×480像素的USB接口单目相机,视觉标志检测及姿态估计算法运行在计算机上。本文所提出算法中的具体参数选择如表1所示。
表1 算法参数Tab.1 Algorithm parameters
为了验证本文标志提取及角点检测算法的有效性,分别采用视觉实验平台和四旋翼无人机共拍摄800幅包含视觉标志的测试图像,并对其进行标志提取和角点检测,通过评价检测结果的准确率,对标志提取和角点检测算法的准确性和有效性进行验证,其中,视觉平台所拍摄的图像包含了摄像头与标志间0.5~1.5 m的距离范围,并且加入了其余5个自由度的运动,无人机所拍摄的图像包含了1.5~7.5 m的距离范围。实验中所用的四旋翼无人机如图14所示,在无人机下方中心位置垂直向下安装单目相机,并搭载了图像处理单元、飞控模块、惯性测量单元IMU和GPS模块。其中,单目相机用于采集图像,图像处理单元搭载本文视觉姿态估计算法用于进行图像处理并给出无人机的控制命令,飞控模块、惯性测量单元和GPS模块用于根据控制命令调节无人机的位置。
图14 四旋翼无人机Fig.14 Quadrotor UAV platform1.飞控模块和IMU 2.GPS 3.图像处理单元 4.单目相机
图15 视觉实验平台上标志提取与角点检测效果Fig.15 Results of mark extraction and corner detection in visual experiment platform
在测试过程中,视觉实验平台所拍图像的预处理过程将维纳滤波器关闭,而无人机所拍图像的预处理过程将维纳滤波器打开,因为无人机在飞行过程中可能会发生抖动。
视觉实验平台拍摄的部分图像及其检测结果如图15所示,四旋翼无人机拍摄的部分图像及其检测结果如图16所示,图中从左到右分别为原始图像、图像预处理结果、标志提取结果和角点检测结果。
从图15中可以看到,当摄像头与标志间的距离在0.5~1.5 m范围内时,本文算法可以准确提取出图像中的视觉标志并得到H形标志的12个角点。
图16 室外环境下标志提取与角点检测效果Fig.16 Results of mark extraction and corner detection in outdoor
从图16中可以看到,当无人机高度不大于5.0 m时,可以准确提取出视觉标志并完成角点检测,但随着无人机飞行高度的继续上升,图像中的视觉标志变小,标志提取和角点检测会出现错误。当高度大于5.0 m时,角点检测出现漏检现象,如图16b所示,当高度大于7.0 m时,已经无法完整、准确地提取出视觉标志,如图16a所示。无人机飞行高度在0~5.0 m时,本文算法可以精确地提取出视觉标志并得到12个角点位置,可以满足无人机自主降落的要求。
此外,由于天气原因,无人机会发生小幅度的抖动,所拍摄的图像受到一定的影响,如图16e所示。如果关闭维纳滤波器,会出现标志提取错误的情况,实际上,丢失了重要标志H形字符,如图16e第3个图像中左下角红色方框内的图像;而经过维纳滤波、极值中值滤波等图像预处理后,可以得到较好的二值图像,并可以提取出正确的视觉标志,完成角点检测。
由于目前的研究还没有完全实现视觉算法与飞控的结合,并正在进一步研究,以上实验过程只通过单目相机和图像处理单元采集无人机航拍图像,然后由计算机进行仿真实验。
为了进一步验证本文所提算法的有效性和可行性,将部分视觉算法移植到树莓派,并在脱机状态下对采集的图像进行处理,树莓派处理单元运行效果如图17所示。
图17 树莓派运行效果Fig.17 Raspberry Pi running effect1.液晶显示屏 2.树莓派处理单元
未来进一步的研究将重点完成视觉算法的移植及其与飞控的结合,并在四旋翼无人机上对算法进行更进一步的实验验证。视觉算法与飞控的结合框图如图18所示。
从图18中可以看出,视觉算法与飞控模块独立运行。视觉算法对采集到的图像进行标志提取、角点检测以及姿态估计等处理,从而计算出无人机与标志的相对姿态并给出无人机姿态调整指令;飞控模块接收到视觉算法的控制指令并进行解析,得到无人机姿态调整的具体参数,控制无人机完成姿态调整并下降一定高度,之后进入旋停状态,等待下一次控制指令的输入,经过多次图像处理与姿态调整,最终完成无人机的自主着陆。
图18 视觉算法与飞控结合框图Fig.18 Block diagram of combination of visual algorithms and flight control
为验证本文提出的无人机姿态估计算法的有效性,分别对无人机相对于标志的姿态角估计和位置估计进行了实验验证。
首先,对每一个旋转单元以4°的步长进行旋转,锁定其他平移运动单元和旋转单元以获得不同姿态角下的图像数据,将其输入提出的算法,分别对视觉标志的横滚角、俯仰角和偏航角进行估计,并计算估计值与真实值之间的绝对误差和相对误差,实验结果如表2所示。
从表2可以看出,横滚角和俯仰角的最大绝对误差在0.5°左右,分别为0.504 7°和0.588 5°,最大相对误差为2.76%和2.50%,而偏航角的最大绝对误差为0.207 7°,最大相对误差为1.44%,小于横滚角和俯仰角的误差。分析可能是由于在角点检测过程中,将角点群的质心作为H形标志的最终角点位置会引入一定的误差,在视觉标志发生倾斜时这一误差大于视觉标志旋转时的误差,因此,造成了横滚角和俯仰角估计的误差大于偏航角估计的误差。
实验中得到较小的均方根误差可以表明本文算法对姿态角估计的准确性和有效性。从表2中可以得出,本文算法对姿态角估计的平均均方根误差为0.223°,明显优于LIN等[13]提出的方法,其平均均方根误差为1.786°。
表2 姿态角估计结果Tab.2 Attitude angle estimation result
其次,用相同的实验方法对算法的位置估计进行验证。分别将x、y、z平移单元以0.05 m的步长移动,对视觉标志与摄像头的相对位置进行估计,实验结果如表3所示。
表3 位置估计结果Tab.3 Position estimation result
从表3可以看出,在视觉标志与摄像头成像平面平行的情况下,位置估计的精度较高,x、y、z方向的最大绝对误差分别为0.003 3、0.003 7、0.015 9 m,最大相对误差分别为1.40%、1.40%、1.06%。可以看到,x、y方向的最大相对误差和均方根误差基本相同,因为z方向(即视觉标志与摄像头之间的距离)估计的误差会由位置估计算法等量地引入x方向和y方向。LIN等[13]提出的方法中,x、y、z方向位置估计的平均均方根误差分别为0.032、0.025、0.030 m,而本文算法在x、y、z方向的最大均方根误差为0.006 2 m,因此,本文算法具有更精确的位置估计。
对本文提出算法的时间性能进行测试。为了与其他文献中的方法进行比较,分别在2种不同测试平台上运行本文所提算法,测试平台1是台式计算机(PC1),硬件配置为Intel Core i3处理器,主频2.40 GHz,4.0 GB内存,安装64位Windows 7操作系统,软件环境为Matlab R2015b(配置与文献[5]算法的运行环境相同);测试平台2是一台便携式计算机(PC2),硬件配置为Intel Core i7处理器,主频2.40 GHz,4.0 GB内存,安装64位Ubuntu 16.04 LTS操作系统,软件环境为Matlab R2016b(配置与文献[6]算法的运行环境基本相同)。
从表4中可以看出,本文算法在PC2上的时间性能更好,平均标志检测时间为89.7 ms,平均姿态估计时间为217.5 ms,整个基于视觉的无人机姿态估计算法运行时间为307.2 ms,优于PC1上的性能。这是由于PC2拥有更好的配置,因此,算法在PC1上的时间性能低于PC2。
此外,本文算法在视觉标志检测过程中所需的时间略高于LEE等[4]提出的方法,但LEE等算法的运行环境为专用的板载处理器,并且其所有算法均进行了优化,可以得到较好的运行效果。相反,本文算法的运行时间明显小于文献[5-6]提出的方法。
可以看出,在相同运行环境的情况下,本文算法分别比文献[5-6]的算法节省了117.1 ms和194.6 ms,因此,本文算法具有更好的时间性能,可以满足无人机自主降落的实时性要求。
表4 算法时间性能Tab.4 Time performance of algorithm ms
提出了一种基于单目视觉的无人机姿态估计及自主着陆算法。利用视觉标志的几何特征,采用标志五步提取法实现H形标志提取;提出一种基于距离三点法的角点检测方法,得到H形标志的12个角点,并与参考图像对应角点匹配;由单应矩阵实现姿态角的估计,根据视觉标志质心与图像中心的位置关系及相机成像原理,实现视觉标志的位置估计。搭建验证算法有效性和准确性的视觉实验平台,对本文算法进行了实验验证。实验结果显示,本文算法对视觉标志姿态角和位置估计具有较高的精度,其相对误差分别低于3%和2%。本文算法对视觉标志的平均检测时间为89.7 ms,姿态估计平均用时为217.5 ms。虽然标志检测时间略高于文献[4]方法,但相比其他文献明显缩短,综合性能指标更优,具有较好的实用性。