基于改进LK光流的四旋翼无人机悬停技术研究

2020-08-12 12:00薛渊王志胜徐滔宏
机械制造与自动化 2020年4期
关键词:光流角点金字塔

薛渊,王志胜,徐滔宏

(南京航空航天大学 自动化学院,江苏 南京 211100)

0 引言

四旋翼无人机凭借其垂直起降、机动性好、可悬停等优点,现已被用于许多行业中。四旋翼在飞行过程中利用惯性传感器(inertial measurement unit, IMU)采集姿态信息,通过反馈调节姿态使其达到预期位置。但在实际飞行中仅依靠IMU无法精确估计无人机姿态,通常采用其他传感器对IMU数据进行修正,使其估计值更接近真实值。在室外,可利用全球定位系统(global position system, GPS)进行辅助定位;在室内或者GPS受干扰的地方,则需要用其他传感器进行辅助定位。相比于GPS,目前四旋翼室内定位还没有一套成熟的解决方案[1]。

目前适用于四旋翼无人机室内定位的解决方案有UWB无线电通信、激光雷达、光学运动捕捉系统和视觉等。尤洪祥将光流与UWB技术结合,提高了定位精度[2]。美国麻省理工的ANDREW Gregory等人使用惯性传感器、激光雷达、摄像头和超声波传感器搭建了室内四旋翼自主导航平台,并在2010年无人机大赛中,利用该平台实现指定的自主飞行任务[3-4]。2010年,美国宾夕法尼亚大学的教授利用三维红外运动捕捉系统实现四旋翼定位飞行[5],由于其精度高且稳定性好,受到国内外许多研究者的广泛关注。光流法定位属于视觉定位,可用于辅助四旋翼悬停。光流指的是空间运动目标在成像面上像素运动的瞬时速度,它表示图像亮度变化与场景中目标运动的关系,根据像素亮度时域变化和相关性确定各个像素的运动信息[6],实现了光流位置估计,通过对光流值积分估计其位置信息。文献[7-8]中D. Honegger等人利用光流法对速度实现实时估计,并在FPGA硬件平台上进行实时光流计算。目前光流法被广泛应用于四旋翼定位与避障中,其中LK光流法为常用算法。LK光流法是LUCAS和KANADE在1981年论文中提出的,属于稀疏光流的经典算法[9]。虽然光流在四旋翼定位中被广泛使用,但其精度并不高,而且随着时间的积累,其误差会越来越大。

本文针对传统LK光流法在四旋翼定位中精度不高的缺点,采用了一种改进的LK光流法,利用该算法得出的速度信息来修正IMU的姿态数据,最后通过实际飞行实验验证了改进后算法的可行性和稳定性。

1 LK光流模型建立

假设第t帧图像存在点(x1,y1),且其周围n×n领域内所有点的运动状态相同,在t+1帧上存在与(x1,y1)亮度相同的点(x2,y2),根据光流约束条件和上述假设条件可建立方程组如下:

(1)

将式(1)简化成如下形式,即:

Av=b

(2)

将式(2)两边同乘以AT,得到如下形式:

ATAv=ATb

(3)

利用最小二乘法求解上述方程,假设矩阵ATA可逆,将等式(3)两边同乘以(ATA)-1,可以得到v的解为:

v=(ATA)-1ATb

(4)

式(4)即为LK光流基本模型。在四旋翼定位实际应用中,因为其存在一定局限性,造成计算精度不高,所以需要对其进行改进和优化。

2 改进的LK光流模型

2.1 Shi-Tomas角点检测算法

角点检测(corner detection)是检测图像特征的一种方法,主要用于对图像关键点的检测,角点检测主要利用图像灰度信息,比如两条线之间的交点等。Shi-Tomasi角点检测是Harris方法的改进,其选取满足条件的窗口提取图像特征点,设点(x,y)的灰度值为I(x,y),以该点为中心点建立窗口W,将该窗口平移Δx和Δy,得到如下公式:

(5)

将式(5)中I(x+Δx,y+Δy)进行一阶泰勒级数展开,然后将展开式转化为矩阵的形式,表示为如下形式:

(6)

式中:Ix、Iy表示图像在x,y方向上的偏导数;T表示一个2×2的海森矩阵;W表示窗口大小。Shi-Tomasi角点检测算法需要求解T矩阵,将行列式特征值中最小值与预先设定阈值进行比较,如果大于设定阈值,则表明该点可做为特征点。

2.2 光流金字塔模型建立

在利用LK光流法对特征点进行跟踪时需满足小位移约束条件。因为四旋翼在飞行时会产生位置偏差过大的问题,所以需建立高斯金字塔对LK光流法进行改进[9]。光流金字塔是对大位移运动缩放几倍之后,使其近似转化为小位移运动,从而满足约束条件。光流金字塔在其最上层(低分辨率图像)利用LK光流法求出图像该层光流值,由金字塔自上而下对光流进行逐步细化,在细化过程中不断对上层结果进行修正,得到更为精确的值,最后得到相应光流值。

光流金字塔通过计算图像变换矩阵以及光流值,将该值作为初始量传递到下一层。下一层图像计算得到新的变换矩阵和光流值,以此类推向下传递,直到传到最后一层,即原始图像层,最后计算得到最终的变换矩阵和光流值。具体流程如图1所示。

图1 金字塔光流计算过程

2.3 FB误差分析及补偿

1) FB误差分析

引入FB误差有利于提高特征点跟踪的精确度。如图2所示,利用LK算法对图像t时刻特征点points_prev进行跟踪,可得t+1帧该点位置points_tracked,同样也可通过t+1帧中点point_tracked反过来跟踪t帧的位置points_prev_eva。理论来说,points_prev和points_prev_eva两个位置应该重合,但是由于光流计算存在误差,得到结果会存在一定的偏差,这个偏差即为FB误差。图2中doffset_prev和doffset_back分别表示前向和反向估计的偏移量。

图2 FB误差示意图

2) FB误差补偿方法

图3 偏移量构造

(7)

(8)

3 实验结果与分析

3.1 硬件平台介绍

本文采用四旋翼硬件平台进行飞行实验,图4为实验平台。该平台为自主设计的四旋翼无人机,其具有足够的保护措施,而且结构强度高并易于维修。

图4 无人机实验平台

表1为实验平台具体性能参数。

表1 无人机实验平台重要参数

图5为光流传感器,实验时将其安装在四旋翼底部且平行于地面。传感器通过摄像头和超声波模块采集数据,然后将采集的数据传入STM32F407处理器中进行光流计算。

图5 光流传感器

3.2 实验数据分析

本小节根据实际飞行效果验证算法可行性和稳定性。实验对两组数据进行了分析,第一组为光流传感器采集的x、y方向上的光流值,第二组为运动捕捉系统采集四旋翼悬停过程中姿态和位置信息。

图6为四旋翼利用传统LK光流法进行室内定点飞行时x、y方向的光流数据,图7为改进后LK光流法进行室内飞行时x、y方向光流数据。从图中可以看出,改进的LK光流法相比于传统LK光流法,其光流值较密集,而传统LK光流法输出光流值稀疏,反映了改进的LK算法在精度上要优于传统LK光流法。

图6 传统光流法悬停光流效果图

图7 改进后算法的光流效果图

图8 无人机悬停时俯仰角信息

图8表示采用改进的LK光流法定点飞行时俯仰角变化情况,从图中可以看出飞机俯仰角误差在3°~4°之间,其定点悬停效果良好。

图9反映四旋翼悬停时位置变化。根据图9(a)中三维运动轨迹可以看出四旋翼在飞行高度达到1m时,可以稳定悬停。图9(b)反映了xy和xz的位置变化,可以看出悬停时xy方向的误差在±0.5m范围之内,高度z的误差在±0.1m之间,其悬停精度大约为半径40cm的圆形。

图9 无人机悬停时位置信息

4 结语

本文针对传统LK光流法在四旋翼悬停时存在精度不高的缺点,采用了一种改进的LK光流法。该方法采用了Shi-Tomasi角点检测算法和双线性差值法提高特征点检测的精确度。在进行光流计算时,通过建立光流金字塔解决四旋翼运动产生的大位移问题,而后对图像FB误差分析和补偿,提高光流计算的精确度。最后通过实际飞行验证了改进后的LK算法相较于传统的LK光流法精确度更高且可以实现稳定飞行。

猜你喜欢
光流角点金字塔
一种改进的Shi-Tomasi角点检测方法
利用掩膜和单应矩阵提高LK光流追踪效果
“金字塔”
多支撑区域模式化融合角点检测算法仿真
Great Vacation Places
基于FAST角点检测算法上对Y型与X型角点的检测
金字塔是用金子造的吗
一种改进的基于全局最小能量泛函光流算法
融合光流速度场与背景差分的自适应背景更新方法
利用PSO估算Lucas-Kanade光流模型的参数