掌桥专利:专业的专利平台
掌桥专利
首页

无人机的视觉定位方法、装置、计算机设备和存储介质

文献发布时间:2023-06-19 11:21:00


无人机的视觉定位方法、装置、计算机设备和存储介质

技术领域

本申请涉及视觉定位技术领域,特别是涉及一种无人机的视觉定位方法、装置、计算机设备和存储介质。

背景技术

随着新基建的兴起,无人机行业发展迅速,在航拍、救灾、物流配送等领域广泛应用。其中,无人机自主定位技术对飞机安全运行发挥着重要作用。现有的无人机定位主要基于GPS、IMU等方式,用于实时计算飞机的位置。然而GPS信号容易受天气、地理等因素影响而变得不稳定,高精度的IMU往往意味着高昂的成本。尤其对于在城市内运行的物流无人机来说,位置信息的丢失将可能导致飞机不受控而引发安全事故。

为了解决上述问题,人们开始引入视觉、激光等更多感知方式。CN109211241A提出了一种基于视觉SLAM的无人机定位方法,通过特征匹配结合IMU做位姿估计。CN110455285A使用点云信息和关键帧匹配作为视觉输出来减小IMU的累积误差。然而,视觉SLAM需要建立地图进行跟踪和重定位,由于需要消耗较多的内存和计算资源,通常受限于室内场景或室外小视场情况。另一方面,由于单目SLAM缺乏尺度信息,无法直接估计飞机在现实世界中的位置。双目SLAM虽然具有尺度信息,但精度受距离限制,对于城市内部诸如跨区高空飞行的大视场情况,难以体现精度优势。同时,对于物流无人机来说,每趟飞行通常是单向的,航线中很少会有回环存在,因此建图的必要性不大。此外,还有方法基于雷达、RGBD相机的方式,它们的精度亦受距离限制,在室外高空飞行时亦难以发挥优势。

综上所述,现有的无人机的定位方式,精度和成本都难以符合无人机发展的需求。

发明内容

基于此,有必要针对上述技术问题,提供一种能够提供无人机定位精度的的无人机的视觉定位方法、装置、计算机设备和存储介质。

一种无人机的视觉定位方法,所述方法包括:

获取第一参考图像帧、第二参考图像帧和当前图像帧;所述第一参考图像帧的更新频率小于所述第二参考图像帧的更新频率,所述第二参考图像帧为所述当前图像帧的前一帧图像;

对所述第一参考图像帧、第二参考图像帧和当前图像帧进行特征提取,分别获取所述第一参考图像帧、第二参考图像帧和当前图像帧的特征点集;

将所述当前图像帧的特征点集分别与所述第一参考图像帧的特征点集、第二参考图像帧的特征点集进行特征匹配;

在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配成功时,获得所述第一参考图像帧与所述当前图像帧的特征点对信息,计算所述第一参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息;

在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配成功时,获得所述第二参考图像帧与所述当前图像帧的特征点对信息,计算所述第二参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息。

在其中一个实施例中,在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配成功时,获得所述第一参考图像帧与所述当前图像帧的特征点对信息,计算所述第一参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息之后,包括:

令第一参考图像帧的补偿量为offset_base,姿态角为(pitch

offset_base=(-h·tan(pitch

offset_now=(-h·tan(pitch

offset_now=Rotate(offset_now,γ)

其中,h为无人机飞行高度,Rotate为旋转函数,将向量offset_now逆时针旋转,γ为旋转角度,yaw1为第一参考图像帧的航向角,yaw2为当前图像帧的航向角;

根据上述公式计算得到的第一参考图像帧的补偿量offset_base、当前图像帧的补偿量offset_now计算无人机补偿后的位移offset:

offset=t+offset_now-offset_base

其中,offset为无人机补偿后的水平位移,t为无人机水平位移量。

在其中一个实施例中,在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配成功时,获得所述第二参考图像帧与所述当前图像帧的特征点对信息,计算所述第二参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息之后,包括:

令第二参考图像帧的补偿量为offset_base,姿态角为(pitch

offset_base=(-h·tan(pitch

offset_now=(-h·tan(pitch

offset_now=Rotate(offset_now,γ)

其中,h为无人机飞行高度,Rotate为旋转函数,将向量offset_now逆时针旋转,γ为旋转角度,yaw1为第二参考图像帧的航向角,yaw2为当前图像帧的航向角;

根据上述公式计算得到的第二参考图像帧的补偿量offset_base、当前图像帧的补偿量offset_now计算无人机补偿后的位移offset:

offset=t+offset_now-offset_base

其中,offset为无人机补偿后的水平位移,t为无人机水平位移量。

在其中一个实施例中,所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败包括以下至少一种情况:

根据距离阈值对所述第一参考图像帧与所述当前图像帧的特征点对信息进行过滤之后,所述特征点对的数量小于数量阈值;

所述第一参考图像帧映射到所述当前图像帧的单应矩阵为空;

相邻两次相对第一参考图像帧的无人机水平位移量之差超过第一阈值;

从第一参考图像帧到当前图像帧之间的无人机水平位移量超过第二阈值;

根据所述第一参考图像帧与所述当前图像帧的特征点对信息计算重投影误差,所述重投影误差超过第三阈值;

根据第一参考图像帧的特征点集计算像素坐标总体标准差,所述像素坐标总体标准差大于第四阈值。

在其中一个实施例中,所述方法还包括:

在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配失败时,则判断当前图像帧为无效帧,无人机的位姿信息不变。

在其中一个实施例中,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配失败包括以下至少一种情况:

根据距离阈值对所述第二参考图像帧与所述当前图像帧的特征点对信息进行过滤之后,所述特征点对的数量小于数量阈值;

所述第二参考图像帧映射到所述当前图像帧的单应矩阵为空;

从第二参考图像帧到所述当前图像帧之间的无人机水平位移量超过第一阈值;

根据所述第二参考图像帧与所述当前图像帧的特征点对信息计算重投影误差,所述重投影误差超过第三阈值;

根据第二参考图像帧的特征点集计算像素坐标总体标准差,所述像素坐标总体标准差大于第四阈值。

在其中一个实施例中,所述获取第一参考图像帧、第二参考图像帧和当前图像帧包括:在起始时刻,所述当前图像帧为无人机采集的第一帧图像时,将当前图像帧作为第一参考图像帧和第二参考图像帧;在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败时,将第二参考图像帧作为第一参考图像帧;在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配和所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配均失败,且连续失败次数达到失败阈值时,将当前图像帧作为第一参考图像帧和第二参考图像帧。

一种无人机的视觉定位装置,所述装置包括:

图像帧获取模块,用于获取第一参考图像帧、第二参考图像帧和当前图像帧;所述第一参考图像帧的更新频率小于所述第二参考图像帧的更新频率,所述第二参考图像帧为所述当前图像帧的前一帧图像;

特征提取模块,用于对所述第一参考图像帧、第二参考图像帧和当前图像帧进行特征提取,分别获取所述第一参考图像帧、第二参考图像帧和当前图像帧的特征点集;

特征匹配模块,用于将所述当前图像帧的特征点集分别与所述第一参考图像帧的特征点集、第二参考图像帧的特征点集进行特征匹配;

位姿计算模块,用于在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配成功时,获得所述第一参考图像帧与所述当前图像帧的特征点对信息,计算所述第一参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息;在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配成功时,获得所述第二参考图像帧与所述当前图像帧的特征点对信息,计算所述第二参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取第一参考图像帧、第二参考图像帧和当前图像帧;所述第一参考图像帧的更新频率小于所述第二参考图像帧的更新频率,所述第二参考图像帧为所述当前图像帧的前一帧图像;

对所述第一参考图像帧、第二参考图像帧和当前图像帧进行特征提取,分别获取所述第一参考图像帧、第二参考图像帧和当前图像帧的特征点集;

将所述当前图像帧的特征点集分别与所述第一参考图像帧的特征点集、第二参考图像帧的特征点集进行特征匹配;

在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配成功时,获得所述第一参考图像帧与所述当前图像帧的特征点对信息,计算所述第一参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息;

在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配成功时,获得所述第二参考图像帧与所述当前图像帧的特征点对信息,计算所述第二参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取第一参考图像帧、第二参考图像帧和当前图像帧;所述第一参考图像帧的更新频率小于所述第二参考图像帧的更新频率,所述第二参考图像帧为所述当前图像帧的前一帧图像;

对所述第一参考图像帧、第二参考图像帧和当前图像帧进行特征提取,分别获取所述第一参考图像帧、第二参考图像帧和当前图像帧的特征点集;

将所述当前图像帧的特征点集分别与所述第一参考图像帧的特征点集、第二参考图像帧的特征点集进行特征匹配;

在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配成功时,获得所述第一参考图像帧与所述当前图像帧的特征点对信息,计算所述第一参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息;

在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配成功时,获得所述第二参考图像帧与所述当前图像帧的特征点对信息,计算所述第二参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息。

上述无人机的视觉定位方法、装置、计算机设备和存储介质,通过选取两个参考图像帧来对当前图像帧进行匹配,计算无人机的位姿信息,优先使用更新频率更低的第一参考图像帧来与当前图像帧匹配计算无人机的位姿,能够减少每一次计算过程的误差累计,在第一参考图像帧的特征点集与所述当前图像帧的特征点集匹配失败时,采用第二参考图像帧来与当前图像帧匹配计算无人机的位姿,保证无人机的位姿计算更新的实时性。

附图说明

图1为一个实施例中无人机的视觉定位方法的应用环境图;

图2为一个实施例中无人机的视觉定位方法的流程示意图;

图3为一个实施例中无人机的视觉定位装置的结构框图;

图4为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的无人机的视觉定位方法,可以应用于如图1所示的应用环境中。其中,无人机102通过网络与服务器进行通信。无人机102获取第一参考图像帧、第二参考图像帧和当前图像帧;所述第一参考图像帧的更新频率小于所述第二参考图像帧的更新频率,所述第二参考图像帧为所述当前图像帧的前一帧图像;对所述第一参考图像帧、第二参考图像帧和当前图像帧进行特征提取,分别获取所述第一参考图像帧、第二参考图像帧和当前图像帧的特征点集;将所述当前图像帧的特征点集分别与所述第一参考图像帧的特征点集、第二参考图像帧的特征点集进行特征匹配;在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配成功时,获得所述第一参考图像帧与所述当前图像帧的特征点对信息,计算所述第一参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息;在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配成功时,获得所述第二参考图像帧与所述当前图像帧的特征点对信息,计算所述第二参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息。其中,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种无人机的视觉定位方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:

S110,获取第一参考图像帧、第二参考图像帧和当前图像帧;所述第一参考图像帧的更新频率小于所述第二参考图像帧的更新频率,所述第二参考图像帧为所述当前图像帧的前一帧图像。

其中,图像帧为无人机的机载视觉系统的获取图像,机载视觉系统获取的是图像序列,同时获取IMU的飞机姿态、航向、高度等传感器信息;周围环境图像可以是拍摄的地面图像,第一参考图像帧、第二参考图像帧作为无人机位置计算的参考图像帧,第一参考图像帧的采集时间在第二参考图像帧的采集时间之前。参考图像帧包括该帧的图像信息、特征点信息和对应时刻的飞机姿态角、航向角、高度;其中,高度可以来自气压计高度、预存地图数据高度等。

其中,第二参考图像帧的更新频率与第一参考图像帧的更新频率相同,在无人机获取当前图像帧之后,将当前图像帧的前一帧图像对第二参考图像帧进行更新,第一参考图像帧只有在第一参考图像帧的特征点集与所述当前图像帧的特征点集匹配失败时才进行更新。

S120,对所述第一参考图像帧、第二参考图像帧和当前图像帧进行特征提取,分别获取所述第一参考图像帧、第二参考图像帧和当前图像帧的特征点集。

其中,对所述第一参考图像帧、第二参考图像帧和当前图像帧进行特征提取可采用ORB算法进行提取,当然也可以采用其它算法进行特征提取。

S130,将所述当前图像帧的特征点集分别与所述第一参考图像帧的特征点集、第二参考图像帧的特征点集进行特征匹配。

其中,参考图像帧与当前图像帧的特征点集进行特征匹配,可采用BruteForce-Hamming算法进行匹配,当然,本申请不限定于此,也可以采用其它算法进行特征匹配。

S140,在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配成功时,获得所述第一参考图像帧与所述当前图像帧的特征点对信息,计算所述第一参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息。

其中,所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配成功时,表示第一参考图像帧与当前图像帧匹配的特征点的数量大于等于数量阈值,数量阈值取值可为30。所述第一参考图像帧与所述当前图像帧进行特征匹配后,获得特征点对信息,根据特征点对信息可采用8点法计算第一参考图像帧映射到所述当前图像帧的单应矩阵,然后根据单应矩阵分解得到旋转矩阵和平移向量,得到无人机的位姿信息。

S150,在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配成功时,获得所述第二参考图像帧与所述当前图像帧的特征点对信息,计算所述第二参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息。

其中,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配成功时,表示第二参考图像帧与当前图像帧匹配的特征点的数量大于等于数量阈值,数量阈值取值可为30。所述第二参考图像帧与所述当前图像帧进行特征匹配后,获得特征点对信息,根据特征点对信息可采用8点法计算第二参考图像帧映射到所述当前图像帧的单应矩阵,然后根据单应矩阵分解得到旋转矩阵和平移向量,得到无人机的位姿信息。

上述无人机的视觉定位方法中,通过选取两个参考图像帧来对当前图像帧进行匹配,计算无人机的位姿信息,优先使用更新频率更低的第一参考图像帧来与当前图像帧匹配计算无人机的位姿,能够减少每一次计算过程的误差累计,在第一参考图像帧的特征点集与所述当前图像帧的特征点集匹配失败时,采用第二参考图像帧来与当前图像帧匹配计算无人机的位姿,保证无人机的位姿计算更新的实时性。

在其中一个实施例中,在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配成功时,获得所述第一参考图像帧与所述当前图像帧的特征点对信息,计算所述第一参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息之后,包括:令第一参考图像帧的补偿量为offset_base,姿态角为(pitch

offset_base=(-h·tan(pitch

offset_now=(-h·tan(pitch

offset_now=Rotate(offset_now,γ)

其中,h为无人机飞行高度,Rotate为旋转函数,将向量offset_now逆时针旋转,γ为旋转角度,yaw1为第一参考图像帧的航向角,yaw2为当前图像帧的航向角。

根据上述公式计算得到的第一参考图像帧的补偿量offset_base、当前图像帧的补偿量offset_now计算无人机补偿后的位移offset:

offset=t+offset_now-offset_base

其中,offset为无人机补偿后的水平位移,t为无人机水平位移量。

在其中一个实施例中,在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配成功时,获得所述第二参考图像帧与所述当前图像帧的特征点对信息,计算所述第二参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息之后,包括:令第二参考图像帧的补偿量为offset_base,姿态角为(pitch

offset_base=(-h·tan(pitch

offset_now=(-h·tan(pitch

offset_now=Rotate(offset_now,γ)

其中,h为无人机飞行高度,Rotate为旋转函数,将向量offset_now逆时针旋转,γ为旋转角度,yaw1为第二参考图像帧的航向角,yaw2为当前图像帧的航向角。

根据上述公式计算得到的第二参考图像帧的补偿量offset_base、当前图像帧的补偿量offset_now计算无人机补偿后的位移offset:

offset=t+offset_now-offset_base

其中,offset为无人机补偿后的水平位移,t为无人机水平位移量。

在其中一个实施例中,在获取第一参考图像帧、第二参考图像帧和当前图像帧之后,对图像进行去畸变,有:

img

img

img

其中,img

在其中一个实施例中,对所述第一参考图像帧、第二参考图像帧和当前图像帧进行特征提取,分别获取所述第一参考图像帧、第二参考图像帧和当前图像帧的特征点集,具体为:

对第一参考图像帧ori、第二参考图像帧pre和当前图像帧curr使用ORB算法进行特征提取,有:

kps

dsp

kps

dsp

kps

dsp

其中,detectORB是特征点提取函数,computeORB是特征描述子计算函数,kps

在其中一个实施例中,将所述当前图像帧的特征点集分别与所述第一参考图像帧的特征点集、第二参考图像帧的特征点集进行特征匹配,包括:

将当前图像帧curr的特征点集分别与第一参考图像帧ori的特征点集、第二参考图像帧pre的特征点集进行特征匹配,这里使用BruteForce-Hamming算法进行匹配,匹配公式如下:

matches

matches

其中,matches

其中,匹配获得所述第一参考图像帧与所述当前图像帧的特征点对信息matches

在其中一个实施例中,在获得所述第一参考图像帧与所述当前图像帧的特征点对信息matches

计算所述第一参考图像帧与所述当前图像帧的特征点对信息matches

滤除第一参考图像帧与所述当前图像帧的特征点对信息matches

同理,采用同样的方法,对第二参考图像帧与所述当前图像帧的特征点对信息matches

在其中一个实施例中,所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败包括以下至少一种情况:根据距离阈值对所述第一参考图像帧与所述当前图像帧的特征点对信息进行过滤之后,所述特征点对的数量小于数量阈值;所述第一参考图像帧映射到所述当前图像帧的单应矩阵为空;相邻两次相对第一参考图像帧的无人机水平位移量之差超过第一阈值;从第一参考图像帧到当前图像帧之间的无人机水平位移量超过第二阈值;根据所述第一参考图像帧与所述当前图像帧的特征点对信息计算重投影误差,所述重投影误差超过第三阈值;根据第一参考图像帧的特征点集计算像素坐标总体标准差,所述像素坐标总体标准差大于第四阈值。

其中,根据距离阈值对所述第一参考图像帧与所述当前图像帧的特征点对信息进行过滤之后,得到特征点对kps_pairs

在对特征点对kps_pairs

p

p

其中,p

其中,根据第一参考图像帧ori与所述当前图像帧curr的特征点对信息,计算所述第一参考图像帧ori映射到所述当前图像帧curr的单应矩阵,具体为:

根据特征点对kps_pairs

如果单应矩阵H为空,则所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败。

否则,对H分解得到旋转矩阵R和平移向量t,旋转矩阵R=[r

r

r

r

其中,t=(x,y,z)为相机坐标系下的飞机位移量,取水平分量t=(x,y),并将其转换到机体坐标系下:

x=-y

y=-x

根据旋转矩阵,计算旋转角度分量:

α,β,γ=rodrigues(R)

其中,rodrigues为罗德里格斯函数,用于将旋转矩阵分解成旋转角度α,β,γ;α,β,γ对应为当前图像帧相对于第一参考图像帧的滚转角、俯仰角和航向角,单位为弧度。

其中,根据上述实施例中,计算得到的第一参考图像帧的补偿量offset_base、当前图像帧的补偿量offset_now计算无人机补偿后的位移offset,记通过第一参考图像帧对应的无人机补偿后的位移offset_ori,将位移offset_ori转换到NED世界坐标系下,具体过程为:

计算图像与世界坐标系的尺度系数coef=h/f

offset_ori=coef×offset_ori

再将结果转换到NED坐标系下,有:

offset_ori=Rotate(offset_ori,yaw_ori)

其中,yaw_ori为第一参考图像帧ori的航向角。

对第一参考图像帧对应的无人机补偿后的位移offset_ori进行不合理筛选过滤,在位移offset_ori不满足任意一项以下条件时,所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败:

a,运动距离约束;具体为:

若||offset_ori

若||offset_ori||

b,特征点重投影误差约束;具体为:

计算匹配特征点的重投影误差,对特征点对kps_pairs

其中,H

计算平均误差err

err

若err

c,特征点聚集度约束:具体为:

计算第一参考图像帧特征点集kps

在上述实施例中,第一阈值、第二阈值、第三阈值和第四阈值根据需要进行设定,本申请不作限定。

在其中一个实施例中,所述无人机的视觉定位方法还包括:在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配失败时,则判断当前图像帧为无效帧,无人机的位姿信息不变。本实施例中,在两个参考帧均匹配失败的情况下,不对无人机的位姿信息进行改变。

在其中一个实施例中,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配失败包括以下至少一种情况:根据距离阈值对所述第二参考图像帧与所述当前图像帧的特征点对信息进行过滤之后,所述特征点对的数量小于数量阈值;所述第二参考图像帧映射到所述当前图像帧的单应矩阵为空;从第二参考图像帧到所述当前图像帧之间的无人机水平位移量超过第一阈值;根据所述第二参考图像帧与所述当前图像帧的特征点对信息计算重投影误差,所述重投影误差超过第三阈值;根据第二参考图像帧的特征点集计算像素坐标总体标准差,所述像素坐标总体标准差大于第四阈值。

其中,根据距离阈值对所述第二参考图像帧与所述当前图像帧的特征点对信息进行过滤之后,得到特征点对kps_pairs

在对特征点对kps_pairs

p

p

其中,p

其中,根据第二参考图像帧pre与所述当前图像帧curr的特征点对信息,计算所述第二参考图像帧pre映射到所述当前图像帧curr的单应矩阵,具体为:

根据特征点对kps_pairs

如果单应矩阵H为空,则所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配失败。

否则,对H分解得到旋转矩阵R和平移向量t,旋转矩阵R=[r

r

r

r

其中,t=(x,y,z)为相机坐标系下的飞机位移量,取水平分量t=(x,y),并将其转换到机体坐标系下:

x=-y

y=-x

根据旋转矩阵,计算旋转角度分量:

α,β,γ=rodrigues(R)

其中,rodrigues为罗德里格斯函数,用于将旋转矩阵分解成旋转角度α,β,γ;α,β,γ对应为当前图像帧相对于第二参考图像帧的滚转角、俯仰角和航向角,单位为弧度。

其中,根据上述实施例中,计算得到的第二参考图像帧的补偿量offset_base、当前图像帧的补偿量offset_now计算无人机补偿后的位移offset,记通过第二参考图像帧对应的无人机补偿后的位移offset_pre,将位移offset_pre转换到NED世界坐标系下,具体过程为:

计算图像与世界坐标系的尺度系数coef=h/f

offset_pre=coef×offset_pre

再将结果转换到NED坐标系下,有:

offset_pre=Rotate(offset_pre,yaw_pre)

其中,yaw_pre为第二参考图像帧pre的航向角。

对第二参考图像帧对应的无人机补偿后的位移offset_pre进行不合理筛选过滤,在位移offset_pre不满足任意一项以下条件时,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配失败:

a,运动距离约束;具体为:

若||offset_pre||

b,特征点重投影误差约束;具体为:

计算匹配特征点的重投影误差,对特征点对kps_pairs

其中,H

计算平均误差err

err

若err

c,特征点聚集度约束:具体为:

计算第二参考图像帧特征点集kps

上述实施例中,第一阈值、第三阈值和第四阈值根据需要进行设定,本申请不作限定。

在其中一个实施例中,所述获取第一参考图像帧、第二参考图像帧和当前图像帧包括:在起始时刻,所述当前图像帧为无人机采集的第一帧图像时,将当前图像帧作为第一参考图像帧和第二参考图像帧;在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败时,将第二参考图像帧作为第一参考图像帧;在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配和所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配均失败,且连续失败次数达到失败阈值时,将当前图像帧作为第一参考图像帧和第二参考图像帧。

在其中一个实施例中,令current_ori和current_pre分别为第一参考图像帧ori和第二参考图像帧pre自身对应的飞机视觉位置,offset_ori和offset_pre为当前图像帧相对于第一参考图像帧ori和第二参考图像帧pre的位移量,current为待估计的当前图像帧的位置,则:

在所述当前图像帧curr的特征点集与所述第一参考图像帧ori的特征点集匹配成功时,待估计的当前图像帧的位置current计算公式为:

current=current_ori+offset_ori;

在所述当前图像帧curr的特征点集与所述第一参考图像帧ori的特征点集匹配失败,且所述当前图像帧curr的特征点集与所述第二参考图像帧pre的特征点集匹配成功时,待估计的当前图像帧的位置current计算公式为:

current=current_pre+offset_pre;

在所述当前图像帧curr的特征点集与所述第一参考图像帧ori的特征点集匹配失败,且所述当前图像帧curr的特征点集与所述第二参考图像帧pre的特征点集匹配失败时,结果不更新,待估计的当前图像帧的位置current保持不变。

应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图3所示,提供了一种无人机的视觉定位装置,包括:图像帧获取模块210、特征提取模块220、特征匹配模块230和位姿计算模块240,其中:

图像帧获取模块210,用于获取第一参考图像帧、第二参考图像帧和当前图像帧;所述第一参考图像帧的更新频率小于所述第二参考图像帧的更新频率,所述第二参考图像帧为所述当前图像帧的前一帧图像。

特征提取模块220,用于对所述第一参考图像帧、第二参考图像帧和当前图像帧进行特征提取,分别获取所述第一参考图像帧、第二参考图像帧和当前图像帧的特征点集。

特征匹配模块230,用于将所述当前图像帧的特征点集分别与所述第一参考图像帧的特征点集、第二参考图像帧的特征点集进行特征匹配。

位姿计算模块240,用于在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配成功时,获得所述第一参考图像帧与所述当前图像帧的特征点对信息,计算所述第一参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息;在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配成功时,获得所述第二参考图像帧与所述当前图像帧的特征点对信息,计算所述第二参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息。

在其中一个实施例中,所述无人机的视觉定位装置,还包括:位姿补偿模块,用于令第一参考图像帧的补偿量为offset_base,姿态角为(pitch

offset_base=(-h·tan(pitch

offset_now=(-h·tan(pitch

offset_now=Rotate(offset_now,γ)

其中,h为无人机飞行高度,Rotate为旋转函数,将向量offset_now逆时针旋转,γ为旋转角度,yaw1和yaw2分别为第一参考图像帧和当前图像帧的航向角;

根据上述公式计算得到的第一参考图像帧的补偿量offset_base、当前图像帧的补偿量offset_now计算无人机补偿后的位移offset:

offset=t+offset_now-offset_base

其中,offset为无人机补偿后的水平位移,t为无人机水平位移量。

在其中一个实施例中,所述无人机的视觉定位装置,还包括:位姿补充模块,用于令第二参考图像帧的补偿量为offset_base,姿态角为(pitch

offset_base=(-h·tan(pitch

offset_now=(-h·tan(pitch

offset_now=Rotate(offset_now,γ)

其中,h为无人机飞行高度,Rotate为旋转函数,将向量offset_now逆时针旋转,γ为旋转角度,yaw1和yaw2分别为第二参考图像帧和当前图像帧的航向角;

根据上述公式计算得到的第二参考图像帧的补偿量offset_base、当前图像帧的补偿量offset_now计算无人机补偿后的位移offset:

offset=t+offset_now-offset_base

其中,offset为无人机补偿后的水平位移,t为无人机水平位移量。

在其中一个实施例中,所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败包括以下至少一种情况:

根据距离阈值对所述第一参考图像帧与所述当前图像帧的特征点对信息进行过滤之后,所述特征点对的数量小于数量阈值;

所述第一参考图像帧映射到所述当前图像帧的单应矩阵为空;

相邻两次相对第一参考图像帧的无人机水平位移量之差超过第一阈值;

从第一参考图像帧到当前图像帧之间的无人机水平位移量超过第二阈值;

根据所述第一参考图像帧与所述当前图像帧的特征点对信息计算重投影误差,所述重投影误差超过第三阈值;

根据第一参考图像帧的特征点集计算像素坐标总体标准差,所述像素坐标总体标准差大于第四阈值。

在其中一个实施例中,所述位姿计算模块240,还用于在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配失败时,则判断当前图像帧为无效帧,无人机的位姿信息不变。

在其中一个实施例中,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配失败包括以下至少一种情况:

根据距离阈值对所述第二参考图像帧与所述当前图像帧的特征点对信息进行过滤之后,所述特征点对的数量小于数量阈值;

所述第二参考图像帧映射到所述当前图像帧的单应矩阵为空;

从第二参考图像帧到所述当前图像帧之间的无人机水平位移量超过第一阈值;

根据所述第二参考图像帧与所述当前图像帧的特征点对信息计算重投影误差,所述重投影误差超过第三阈值;

根据第二参考图像帧的特征点集计算像素坐标总体标准差,所述像素坐标总体标准差大于第四阈值。

在其中一个实施例中,所述图像帧获取模块210,还用于在起始时刻,所述当前图像帧为无人机采集的第一帧图像时,将当前图像帧作为第一参考图像帧和第二参考图像帧;在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败时,将第二参考图像帧作为第一参考图像帧;在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配和所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配均失败,且连续失败次数达到失败阈值时,将当前图像帧作为第一参考图像帧和第二参考图像帧。

关于无人机的视觉定位装置的具体限定可以参见上文中对于无人机的视觉定位方法的限定,在此不再赘述。上述无人机的视觉定位装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储图像帧数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种无人机的视觉定位方法。

本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 无人机的视觉定位方法、装置、计算机设备和存储介质
  • 视觉定位方法、装置、电子设备和计算机可读存储介质
技术分类

06120112898899