CN112950715B - 无人机的视觉定位方法、装置、计算机设备和存储介质 - Google Patents
无人机的视觉定位方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112950715B CN112950715B CN202110241637.XA CN202110241637A CN112950715B CN 112950715 B CN112950715 B CN 112950715B CN 202110241637 A CN202110241637 A CN 202110241637A CN 112950715 B CN112950715 B CN 112950715B
- Authority
- CN
- China
- Prior art keywords
- image frame
- reference image
- current image
- offset
- characteristic point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000000007 visual effect Effects 0.000 title claims abstract description 29
- 238000004364 calculation method Methods 0.000 claims abstract description 16
- 239000011159 matrix material Substances 0.000 claims description 62
- 238000006073 displacement reaction Methods 0.000 claims description 35
- 239000013598 vector Substances 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 14
- 238000000605 extraction Methods 0.000 claims description 10
- 230000004807 localization Effects 0.000 claims description 4
- 230000003287 optical effect Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000001914 filtration Methods 0.000 description 6
- 238000013519 translation Methods 0.000 description 6
- 102000008115 Signaling Lymphocytic Activation Molecule Family Member 1 Human genes 0.000 description 4
- 108010074687 Signaling Lymphocytic Activation Molecule Family Member 1 Proteins 0.000 description 4
- 238000000354 decomposition reaction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012216 screening Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
- G06V20/13—Satellite images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Astronomy & Astrophysics (AREA)
- Remote Sensing (AREA)
- Life Sciences & Earth Sciences (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本申请涉及一种无人机的视觉定位方法、装置、计算机设备和存储介质。所述方法包括:获取第一参考图像帧、第二参考图像帧和当前图像帧;所述第一参考图像帧的更新频率小于所述第二参考图像帧;对所述第一参考图像帧、第二参考图像帧和当前图像帧进行特征提取,分别获取所述第一参考图像帧、第二参考图像帧和当前图像帧的特征点集;将所述当前图像帧的特征点集分别与所述第一参考图像帧的特征点集、第二参考图像帧的特征点集进行特征匹配;在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配成功时,获得所述第一参考图像帧与所述当前图像帧的特征点对信息,计算无人机的位姿信息。采用本方法能够减少无人机的位姿计算累计误差。
Description
技术领域
本申请涉及视觉定位技术领域,特别是涉及一种无人机的视觉定位方法、装置、计算机设备和存储介质。
背景技术
随着新基建的兴起,无人机行业发展迅速,在航拍、救灾、物流配送等领域广泛应用。其中,无人机自主定位技术对飞机安全运行发挥着重要作用。现有的无人机定位主要基于GPS、IMU等方式,用于实时计算飞机的位置。然而GPS信号容易受天气、地理等因素影响而变得不稳定,高精度的IMU往往意味着高昂的成本。尤其对于在城市内运行的物流无人机来说,位置信息的丢失将可能导致飞机不受控而引发安全事故。
为了解决上述问题,人们开始引入视觉、激光等更多感知方式。CN109211241A提出了一种基于视觉SLAM的无人机定位方法,通过特征匹配结合IMU做位姿估计。CN110455285A使用点云信息和关键帧匹配作为视觉输出来减小IMU的累积误差。然而,视觉SLAM需要建立地图进行跟踪和重定位,由于需要消耗较多的内存和计算资源,通常受限于室内场景或室外小视场情况。另一方面,由于单目SLAM缺乏尺度信息,无法直接估计飞机在现实世界中的位置。双目SLAM虽然具有尺度信息,但精度受距离限制,对于城市内部诸如跨区高空飞行的大视场情况,难以体现精度优势。同时,对于物流无人机来说,每趟飞行通常是单向的,航线中很少会有回环存在,因此建图的必要性不大。此外,还有方法基于雷达、RGBD相机的方式,它们的精度亦受距离限制,在室外高空飞行时亦难以发挥优势。
综上所述,现有的无人机的定位方式,精度和成本都难以符合无人机发展的需求。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提供无人机定位精度的无人机的视觉定位方法、装置、计算机设备和存储介质。
一种无人机的视觉定位方法,所述方法包括:
获取第一参考图像帧、第二参考图像帧和当前图像帧;所述第一参考图像帧的更新频率小于所述第二参考图像帧的更新频率,所述第二参考图像帧为所述当前图像帧的前一帧图像;
对所述第一参考图像帧、第二参考图像帧和当前图像帧进行特征提取,分别获取所述第一参考图像帧、第二参考图像帧和当前图像帧的特征点集;
将所述当前图像帧的特征点集分别与所述第一参考图像帧的特征点集、第二参考图像帧的特征点集进行特征匹配;
在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配成功时,获得所述第一参考图像帧与所述当前图像帧的特征点对信息,计算所述第一参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息;
在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配成功时,获得所述第二参考图像帧与所述当前图像帧的特征点对信息,计算所述第二参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息。
在其中一个实施例中,在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配成功时,获得所述第一参考图像帧与所述当前图像帧的特征点对信息,计算所述第一参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息之后,包括:
令第一参考图像帧的补偿量为offset_base,姿态角为(pitch1,roll1,yaw1),当前图像帧的补偿量为offset_now,姿态角为(pitch2,roll2,yaw2),有:
offset_base=(-h·tan(pitch1),h·tan(roll1))
offset_now=(-h·tan(pitch2),h·tan(roll2))
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,姿态角为(pitch1,roll1,yaw1),当前图像帧的补偿量为offset_now,姿态角为(pitch2,roll2,yaw2),有:
offset_base=(-h·tan(pitch1),h·tan(roll1))
offset_now=(-h·tan(pitch2),h·tan(roll2))
offset_now=Rotate(oftset_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,姿态角为(pitch1,roll1,yaw1),当前图像帧的补偿量为offset_now,姿态角为(pitch2,roll2,yaw2),有:
offset_base=(-h·tan(pitch1),h·tan(roll1))
offset_now=(-h·tan(pitch2),h·tan(roll2))
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,姿态角为(pitch1,roll1,yaw1),当前图像帧的补偿量为offset_now,姿态角为(pitch2,roll2,yaw2),有:
offset_base=(-h·tan(pitch1),h·tan(roll1))
offset_now=(-h·tan(pitch2),h·tan(roll2))
offset_now=Rotate(offset_now,γ)
其中,h为无人机飞行高度,Rotate为旋转函数,将向量offset_now逆时针旋转,γ为旋转角度,yaw1为第二参考图像帧的航向角,yaw2为当前图像帧的航向角。
根据上述公式计算得到的第二参考图像帧的补偿量offset_base、当前图像帧的补偿量offset_now计算无人机补偿后的位移offset:
offset=t+offset_now-offset_base
其中,offset为无人机补偿后的水平位移,t为无人机水平位移量。
在其中一个实施例中,在获取第一参考图像帧、第二参考图像帧和当前图像帧之后,对图像进行去畸变,有:
imgori=undistort(imgori,cameraMatrix,distortCoeff)
imgpre=undistort(imgpre,cameraMatrix,distortCoeff)
imgcurr=undistort(imgcurr,cameraMatrix,distortCoeff)
其中,imgori、imgpre和imgcurr分别是第一参考图像帧ori、第二参考图像帧pre和当前图像帧curr的图像信息,imgori、imgpre和imgcurr各自为一个矩阵,其每个位置上的值为0到255之间的整数,undistort为去畸变函数,cameraMatrix为相机参数,distortCoeff为畸变参数。本实施例中,通过对第一参考图像帧、第二参考图像帧和当前图像帧进行去畸变,能够保证后续特征提取数据的准确性。
在其中一个实施例中,对所述第一参考图像帧、第二参考图像帧和当前图像帧进行特征提取,分别获取所述第一参考图像帧、第二参考图像帧和当前图像帧的特征点集,具体为:
对第一参考图像帧ori、第二参考图像帧pre和当前图像帧curr使用ORB算法进行特征提取,有:
kpsori=detectORB(imgori)
dspori=computeORB(imgori,kpsori)
kpspre=detectORB(imgpre)
dsppre=computeORB(imgpre,kpspre)
kpscurr=detectORB(imgcurr)
dspcurr=computeORB(imgcurr,kpscurr)
其中,detectORB是特征点提取函数,computeORB是特征描述子计算函数,kpsori={p1,p2,…,pm}是第一参考图像帧特征点集,pj=(xj,yj)表示第j个特征点,xj和yj分别为pj在图像中的列坐标和行坐标,j∈[1,m],m为ori帧图像的特征点总数。dspori={d1,d2,……,dm}是第一参考图像帧的特征描述子向量集,dj=(c1,c2,…,cl)是长为l的特征描述子向量。同理,第二参考图像帧pre的特征点集为kpspre、特征描述子向量集为dsppre,当前图像帧curr的特征点集为kpscurr、特征描述子向量集为dspcurr。
在其中一个实施例中,将所述当前图像帧的特征点集分别与所述第一参考图像帧的特征点集、第二参考图像帧的特征点集进行特征匹配,包括:
将当前图像帧curr的特征点集分别与第一参考图像帧ori的特征点集、第二参考图像帧pre的特征点集进行特征匹配,这里使用BruteForce-Hamming算法进行匹配,匹配公式如下:
matchesori=BF(dspcurr,dspori)
matchespre=BF(dspcurr,dsppre)
其中,matchesori={match1,match2,…,matchk},matchk=(idk ori,idk curr,dk)表示第一参考图像帧ori与当前图像帧curr匹配的第k个特征点信息,idk curr、idk ori分别为第k对特征点在第一参考图像帧特征点集kpsori和当前图像帧curr的特征点集kpscurr中的位置索引,dk表示两个特征点之间的描述子汉明距离。同理,matchespre={match1,match2,…,matchk},matchk=(idk pre,idk curr,dk)表示第二参考图像帧pre与当前图像帧curr匹配的第k个特征点信息,idk curr、idk pre分别为第k对特征点在第二参考图像帧特征点集kpspre和当前图像帧curr的特征点集kpscurr中的位置索引,dk表示两个特征点之间的描述子汉明距离。
其中,匹配获得所述第一参考图像帧与所述当前图像帧的特征点对信息matchesori,获得所述第二参考图像帧与所述当前图像帧的特征点对信息matchespre。
在其中一个实施例中,在获得所述第一参考图像帧与所述当前图像帧的特征点对信息matchesori,获得所述第二参考图像帧与所述当前图像帧的特征点对信息matchespre之后,对特征点进行筛选,具体为:
计算所述第一参考图像帧与所述当前图像帧的特征点对信息matchesori中所有特征点对之间的最小距离dmin=min(d1,d2,…,dk),令dthresh=max(dmin×2,threshmin)为距离阈值,threshmin为经验阈值,取threshmin=30;
滤除第一参考图像帧与所述当前图像帧的特征点对信息matchesori中所有特征点对之间的最小距离大于等于dthresh的特征点对,得到特征点对kps_pairsori=((p11,p21),(p12,p22),…,(p1k,p2k)),p1k、p2k分别表示第一参考图像帧与当前图像帧的第k对匹配的特征点。
同理,采用同样的方法,对第二参考图像帧与所述当前图像帧的特征点对信息matchesori进行筛选过滤,得到特征点对kps_pairspre。
在其中一个实施例中,所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败包括以下至少一种情况:根据距离阈值对所述第一参考图像帧与所述当前图像帧的特征点对信息进行过滤之后,所述特征点对的数量小于数量阈值;所述第一参考图像帧映射到所述当前图像帧的单应矩阵为空;相邻两次相对第一参考图像帧的无人机水平位移量之差超过第一阈值;从第一参考图像帧到当前图像帧之间的无人机水平位移量超过第二阈值;根据所述第一参考图像帧与所述当前图像帧的特征点对信息计算重投影误差,所述重投影误差超过第三阈值;根据第一参考图像帧的特征点集计算像素坐标总体标准差,所述像素坐标总体标准差大于第四阈值。
其中,根据距离阈值对所述第一参考图像帧与所述当前图像帧的特征点对信息进行过滤之后,得到特征点对kps_pairsori,判断特征点对kps_pairsori中特征点对的数量,判断特征点对的数量k是否满足数量阈值num_thresh,取num_thresh=30;若k<num_thresh,则认为不满足匹配数量阈值,所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败。
在对特征点对kps_pairsori进行数量阈值判断之后,如果特征点对kps_pairsori的数量满足数量阈值num_thresh,对kps_pairsori中每个点对(p1k,p2k),减去相机光心坐标,即:
p1k=p1k-pcenter
p2k=p2k-pcenter
其中,pcenter=(xc,yc)为相机光心坐标。本实施例中,将数据转换成以相机光心为中心点,能够提高结果的稳定性。
其中,根据第一参考图像帧ori与所述当前图像帧curr的特征点对信息,计算所述第一参考图像帧ori映射到所述当前图像帧curr的单应矩阵,具体为:
根据特征点对kps_pairsori,使用8点法计算从第一参考图像帧ori映射到当前图像帧curr的单应矩阵H∈R3×3,H=[h1,h2,h3]为一个3×3矩阵,h1、h2、h3为3×1向量。
如果单应矩阵H为空,则所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败。
否则,对H分解得到旋转矩阵R和平移向量t,旋转矩阵R=[r1,r2,r3],r1、r2、r3均为3×1向量,平移向量t为3×1向量,分解计算过程如下:
r1=h1/||h1||2
r2=h2/||h2||2
r3=r1×r2
其中,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/fx,h为飞机高度,fx=f/dx为相机参数,f为焦距,dx为单位像素的长度,则无人机在机体坐标系下当前图像帧curr相对于第一参考图像帧ori的位移为:
offset_ori=coef×offset_ori
再将结果转换到NED坐标系下,有:
offset_ori=Rotate(offset_ori,yaw_ori)
其中,yaw_ori为第一参考图像帧ori的航向角。
对第一参考图像帧对应的无人机补偿后的位移offset_ori进行不合理筛选过滤,在位移offset_ori不满足任意一项以下条件时,所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败:
a,运动距离约束;具体为:
若||offset_orii-offset_orii-1||2>thresh_single_step,i和i-1表示当前帧是从初始化时刻到当前的第i帧和i-1帧,thresh_single_step表示第一阈值,即相当于相邻两次相对于第一参考图像帧ori的运动距离之差过大,则判断所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败;
若||offset_ori||2>thresh_from_ori,thresh_from_step表示第二阈值,即无人机在当前图像帧的位置与第一参考图像帧ori的位置相对距离超出第二阈值,此时匹配的结果容易不稳定,则判断所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败;
b,特征点重投影误差约束;具体为:
计算匹配特征点的重投影误差,对特征点对kps_pairsori中的第k个点对,计算重投影误差:
其中,H11-H33分别表示单应矩阵中的9个元素,errk为重投影误差,(p1k,p2k)为特征点对kps_pairsori中的点对;
计算平均误差errave,具体公式为:
errave=mean([err1,err2,…,errk])
若errave>thresh_err,thresh_err为第三阈值,则认为重投影误差过大,则判断所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败;
c,特征点聚集度约束:具体为:
计算第一参考图像帧特征点集kpsori的像素坐标总体标准差std,若std>thresh_std,thresh_std为第四阈值,则认为特征点过于聚集,判断所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败。
在上述实施例中,第一阈值、第二阈值、第三阈值和第四阈值根据需要进行设定,本申请不作限定。
在其中一个实施例中,所述无人机的视觉定位方法还包括:在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配失败时,则判断当前图像帧为无效帧,无人机的位姿信息不变。本实施例中,在两个参考帧均匹配失败的情况下,不对无人机的位姿信息进行改变。
在其中一个实施例中,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配失败包括以下至少一种情况:根据距离阈值对所述第二参考图像帧与所述当前图像帧的特征点对信息进行过滤之后,所述特征点对的数量小于数量阈值;所述第二参考图像帧映射到所述当前图像帧的单应矩阵为空;从第二参考图像帧到所述当前图像帧之间的无人机水平位移量超过第一阈值;根据所述第二参考图像帧与所述当前图像帧的特征点对信息计算重投影误差,所述重投影误差超过第三阈值;根据第二参考图像帧的特征点集计算像素坐标总体标准差,所述像素坐标总体标准差大于第四阈值。
其中,根据距离阈值对所述第二参考图像帧与所述当前图像帧的特征点对信息进行过滤之后,得到特征点对kps_pairspre,判断特征点对kps_pairspre中特征点对的数量,判断特征点对的数量k是否满足数量阈值num_thresh,取num_thresh=30;若k<num_thresh,则认为不满足匹配数量阈值,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配失败。
在对特征点对kps_pairspre进行数量阈值判断之后,如果特征点对kps_pairspre的数量满足数量阈值num_thresh,对kps_pairspre中每个点对(p1k,p2k),减去相机光心坐标,即:
p1k=p1k-pcenter
p2k=p2k-pcenter
其中,pcenter=(xc,yc)为相机光心坐标。本实施例中,将数据转换成以相机光心为中心点,能够提高结果的稳定性。
其中,根据第二参考图像帧pre与所述当前图像帧curr的特征点对信息,计算所述第二参考图像帧pre映射到所述当前图像帧curr的单应矩阵,具体为:
根据特征点对kps_pairspre,使用8点法计算从第二参考图像帧pre映射到当前图像帧curr的单应矩阵H∈R3×3,H=[h1,h2,h3]为一个3×3矩阵,h1、h2、h3为3×1向量。
如果单应矩阵H为空,则所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配失败。
否则,对H分解得到旋转矩阵R和平移向量t,旋转矩阵R=[r1,r2,r3],r1、r2、r3均为3×1向量,平移向量t为3×1向量,分解计算过程如下:
r1=h1/||h1||2
r2=h2/||h2||2
r3=r1×r2
/>
其中,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/fx,h为飞机高度,fx=f/dx为相机参数,f为焦距,dx为单位像素的长度,则无人机在机体坐标系下当前图像帧curr相对于第二参考图像帧pre的位移为:
offset_pre=coef×offset_pre
再将结果转换到NED坐标系下,有:
offset_pre=Rotate(offset_pre,yaw_pre)
其中,yaw_pre为第二参考图像帧pre的航向角。
对第二参考图像帧对应的无人机补偿后的位移offset_pre进行不合理筛选过滤,在位移offset_pre不满足任意一项以下条件时,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配失败:
a,运动距离约束;具体为:
若||offset_pre||2>thresh_single_step,thresh_single_step表示第一阈值,即本次第二参考图像帧与当前图像帧之间的运动距离过大,则判断所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配失败;
b,特征点重投影误差约束;具体为:
计算匹配特征点的重投影误差,对特征点对kps_pairspre中的第k个点对,计算重投影误差:
其中,H11-H33分别表示单应矩阵中的9个元素,errk为重投影误差,(p1k,p2k)为特征点对kps_pairsori中的点对;
计算平均误差errave,具体公式为:
errave=mean([err1,err2,…,errk])
若errave>thresh_err,thresh_err为第三阈值,则认为重投影误差过大,则判断所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配失败;
c,特征点聚集度约束:具体为:
计算第二参考图像帧特征点集kpspre的像素坐标总体标准差std,若std>thresh_std,thresh_std为第四阈值,则认为特征点过于聚集,判断所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败。
上述实施例中,第一阈值、第三阈值和第四阈值根据需要进行设定,本申请不作限定。
在其中一个实施例中,所述获取第一参考图像帧、第二参考图像帧和当前图像帧包括:在起始时刻,所述当前图像帧为无人机采集的第一帧图像时,将当前图像帧作为第一参考图像帧和第二参考图像帧;在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败时,将第二参考图像帧作为第一参考图像帧;在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配和所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配均失败,且连续失败次数达到失败阈值时,将当前图像帧作为第一参考图像帧和第二参考图像帧。
在其中一个实施例中,令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,姿态角为(pitch1,roll1,yaw1),当前图像帧的补偿量为offset_now,姿态角为(pitch2,roll2,yaw2),有:
offset_base=(-h·tan(pitch1),h·tan(roll1))
offset_now=(-h·tan(pitch2),h·tan(roll2))
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,姿态角为(pitch1,roll1,yaw1),当前图像帧的补偿量为offset_now,姿态角为(pitch2,roll2,yaw2),有:
offset_base=(-h·tan(pitch1),h·tan(roll1))
offset_now=(-h·tan(pitch2),h·tan(rofl2))
offset_now=Rotate(offset_now,γ)
其中,h为无人机飞行高度,Rotate为旋转函数,将向量offset_now逆时针旋转,γ为旋转角度,yaw1和yaw2分别为第二参考图像帧和当前图像帧的航向角;
根据上述公式计算得到的第二参考图像帧的补偿量offset_base、当前图像帧的补偿量offset_now计算无人机补偿后的位移offset:
offset=t+offset_now-oftset_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)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种无人机的视觉定位方法,其特征在于,所述方法包括:
获取第一参考图像帧、第二参考图像帧和当前图像帧;所述第一参考图像帧的更新频率小于所述第二参考图像帧的更新频率,所述第二参考图像帧为所述当前图像帧的前一帧图像;
对所述第一参考图像帧、第二参考图像帧和当前图像帧进行特征提取,分别获取所述第一参考图像帧、第二参考图像帧和当前图像帧的特征点集;
将所述当前图像帧的特征点集分别与所述第一参考图像帧的特征点集、第二参考图像帧的特征点集进行特征匹配;
在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配成功时,获得所述第一参考图像帧与所述当前图像帧的特征点对信息,计算所述第一参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息;
在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配成功时,获得所述第一参考图像帧与所述当前图像帧的特征点对信息,计算所述第一参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息之后,包括:
令第一参考图像帧的补偿量为offset_base,姿态角为(pitch1,roll1,yaw1),当前图像帧的补偿量为offset_now,姿态角为(pitch2,roll2,yaw2),有:
offset_base=(-h·tan(pitch1),h·tan(roll1))
offset_now=(-h·tan(pitch2),h·tan(roll2))
offset_now=Rotate(offset_now,γ)
其中,h为无人机飞行高度,Rotate为旋转函数,将向量offset_now逆时针旋转,γ为旋转角度,yaw1为第一参考图像帧的航向角,yaw2为当前图像帧的航向角;
根据上述公式计算得到的第一参考图像帧的补偿量offset_base、当前图像帧的补偿量offset_now计算无人机补偿后的位移offset:
offset=t+offset_now-offset_base
其中,offset为无人机补偿后的水平位移,t为无人机水平位移量;
在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配成功时,获得所述第二参考图像帧与所述当前图像帧的特征点对信息,计算所述第二参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息。
2.根据权利要求1所述的方法,其特征在于,在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配成功时,获得所述第二参考图像帧与所述当前图像帧的特征点对信息,计算所述第二参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息之后,包括:
令第二参考图像帧的补偿量为offset_base,姿态角为(pitch1,roll1,yaw1),当前图像帧的补偿量为offset_now,姿态角为(pitch2,roll2,yaw2),有:
offset_base=(-h·tan(pitch1),h·tan(roll1))
offset_now=(-h·tan(pitch2),h·tan(roll2))
offset_now=Rotate(offset_now,γ)
其中,h为无人机飞行高度,Rotate为旋转函数,将向量offsetnow逆时针
旋转,γ为旋转角度,yaw1为第二参考图像帧的航向角,yaw2为当前图像帧的航向角;
根据上述公式计算得到的第二参考图像帧的补偿量offset_base、当前图像帧的补偿量offset_now计算无人机补偿后的位移offset:
offset=t+offset_now-offset_base
其中,offset为无人机补偿后的水平位移,t为无人机水平位移量。
3.根据权利要求1所述的方法,其特征在于,所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败包括以下至少一种情况:
根据距离阈值对所述第一参考图像帧与所述当前图像帧的特征点对信息进行过滤之后,所述特征点对的数量小于数量阈值;
所述第一参考图像帧映射到所述当前图像帧的单应矩阵为空;
相邻两次相对第一参考图像帧的无人机水平位移量之差超过第一阈值;
从第一参考图像帧到当前图像帧之间的无人机水平位移量超过第二阈值;
根据所述第一参考图像帧与所述当前图像帧的特征点对信息计算重投影误差,所述重投影误差超过第三阈值;
根据第一参考图像帧的特征点集计算像素坐标总体标准差,所述像素坐标总体标准差大于第四阈值。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配失败时,则判断当前图像帧为无效帧,无人机的位姿信息不变。
5.根据权利要求4所述的方法,其特征在于,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配失败包括以下至少一种情况:
根据距离阈值对所述第二参考图像帧与所述当前图像帧的特征点对信息进行过滤之后,所述特征点对的数量小于数量阈值;
所述第二参考图像帧映射到所述当前图像帧的单应矩阵为空;
从第二参考图像帧到所述当前图像帧之间的无人机水平位移量超过第一阈值;
根据所述第二参考图像帧与所述当前图像帧的特征点对信息计算重投影误差,所述重投影误差超过第三阈值;
根据第二参考图像帧的特征点集计算像素坐标总体标准差,所述像素坐标总体标准差大于第四阈值。
6.根据权利要求1所述的方法,其特征在于,所述获取第一参考图像帧、第二参考图像帧和当前图像帧包括:
在起始时刻,所述当前图像帧为无人机采集的第一帧图像时,将当前图像帧作为第一参考图像帧和第二参考图像帧;
在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败时,将第二参考图像帧作为第一参考图像帧;
在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配和所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配均失败,且连续失败次数达到失败阈值时,将当前图像帧作为第一参考图像帧和第二参考图像帧。
7.一种无人机的视觉定位装置,其特征在于,所述装置包括:
图像帧获取模块,用于获取第一参考图像帧、第二参考图像帧和当前图像帧;所述第一参考图像帧的更新频率小于所述第二参考图像帧的更新频率,所述第二参考图像帧为所述当前图像帧的前一帧图像;
特征提取模块,用于对所述第一参考图像帧、第二参考图像帧和当前图像帧进行特征提取,分别获取所述第一参考图像帧、第二参考图像帧和当前图像帧的特征点集;
特征匹配模块,用于将所述当前图像帧的特征点集分别与所述第一参考图像帧的特征点集、第二参考图像帧的特征点集进行特征匹配;
位姿计算模块,用于在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配成功时,获得所述第一参考图像帧与所述当前图像帧的特征点对信息,计算所述第一参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息;在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配失败,所述当前图像帧的特征点集与所述第二参考图像帧的特征点集匹配成功时,获得所述第二参考图像帧与所述当前图像帧的特征点对信息,计算所述第二参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息;
在所述当前图像帧的特征点集与所述第一参考图像帧的特征点集匹配成功时,获得所述第一参考图像帧与所述当前图像帧的特征点对信息,计算所述第一参考图像帧映射到所述当前图像帧的单应矩阵,并计算无人机的位姿信息之后,包括:
令第一参考图像帧的补偿量为offset_base,姿态角为(pitch1,roll1,yaw1),当前图像帧的补偿量为offset_now,姿态角为(pitch2,roll2,yaw2),有:
offset_base=(-h·tan(pitch1),h·tan(roll1))
offset_now=(-h·tan(pitch2),h·tan(roll2))
offset_now=Rotate(offset_now,γ)
其中,h为无人机飞行高度,Rotate为旋转函数,将向量offset_now逆时针旋转,γ为旋转角度,yaw1为第一参考图像帧的航向角,yaw2为当前图像帧的航向角;
根据上述公式计算得到的第一参考图像帧的补偿量offset_base、当前图像帧的补偿量offset_now计算无人机补偿后的位移offset:
offset=t+offset_now-offset_base
其中,offset为无人机补偿后的水平位移,t为无人机水平位移量。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110241637.XA CN112950715B (zh) | 2021-03-04 | 2021-03-04 | 无人机的视觉定位方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110241637.XA CN112950715B (zh) | 2021-03-04 | 2021-03-04 | 无人机的视觉定位方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112950715A CN112950715A (zh) | 2021-06-11 |
CN112950715B true CN112950715B (zh) | 2024-04-30 |
Family
ID=76247676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110241637.XA Active CN112950715B (zh) | 2021-03-04 | 2021-03-04 | 无人机的视觉定位方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112950715B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116758157B (zh) * | 2023-06-14 | 2024-01-30 | 深圳市华赛睿飞智能科技有限公司 | 一种无人机室内三维空间测绘方法、系统及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108492316A (zh) * | 2018-02-13 | 2018-09-04 | 视辰信息科技(上海)有限公司 | 一种终端的定位方法和装置 |
CN109887029A (zh) * | 2019-01-17 | 2019-06-14 | 江苏大学 | 一种基于图像颜色特征的单目视觉里程测量方法 |
CN110047142A (zh) * | 2019-03-19 | 2019-07-23 | 中国科学院深圳先进技术研究院 | 无人机三维地图构建方法、装置、计算机设备及存储介质 |
CN110335317A (zh) * | 2019-07-02 | 2019-10-15 | 百度在线网络技术(北京)有限公司 | 基于终端设备定位的图像处理方法、装置、设备和介质 |
WO2020014864A1 (zh) * | 2018-07-17 | 2020-01-23 | 深圳市大疆创新科技有限公司 | 位姿确定方法、设备、计算机可读存储介质 |
CN111780763A (zh) * | 2020-06-30 | 2020-10-16 | 杭州海康机器人技术有限公司 | 一种基于视觉地图的视觉定位方法、装置 |
CN112136137A (zh) * | 2019-10-29 | 2020-12-25 | 深圳市大疆创新科技有限公司 | 一种参数优化方法、装置及控制设备、飞行器 |
CN112204946A (zh) * | 2019-10-28 | 2021-01-08 | 深圳市大疆创新科技有限公司 | 数据处理方法、装置、可移动平台及计算机可读存储介质 |
-
2021
- 2021-03-04 CN CN202110241637.XA patent/CN112950715B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108492316A (zh) * | 2018-02-13 | 2018-09-04 | 视辰信息科技(上海)有限公司 | 一种终端的定位方法和装置 |
WO2020014864A1 (zh) * | 2018-07-17 | 2020-01-23 | 深圳市大疆创新科技有限公司 | 位姿确定方法、设备、计算机可读存储介质 |
CN110914867A (zh) * | 2018-07-17 | 2020-03-24 | 深圳市大疆创新科技有限公司 | 位姿确定方法、设备、计算机可读存储介质 |
CN109887029A (zh) * | 2019-01-17 | 2019-06-14 | 江苏大学 | 一种基于图像颜色特征的单目视觉里程测量方法 |
CN110047142A (zh) * | 2019-03-19 | 2019-07-23 | 中国科学院深圳先进技术研究院 | 无人机三维地图构建方法、装置、计算机设备及存储介质 |
CN110335317A (zh) * | 2019-07-02 | 2019-10-15 | 百度在线网络技术(北京)有限公司 | 基于终端设备定位的图像处理方法、装置、设备和介质 |
CN112204946A (zh) * | 2019-10-28 | 2021-01-08 | 深圳市大疆创新科技有限公司 | 数据处理方法、装置、可移动平台及计算机可读存储介质 |
CN112136137A (zh) * | 2019-10-29 | 2020-12-25 | 深圳市大疆创新科技有限公司 | 一种参数优化方法、装置及控制设备、飞行器 |
CN111780763A (zh) * | 2020-06-30 | 2020-10-16 | 杭州海康机器人技术有限公司 | 一种基于视觉地图的视觉定位方法、装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112950715A (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110163930B (zh) | 车道线生成方法、装置、设备、系统及可读存储介质 | |
CN106873619B (zh) | 一种无人机飞行路径的处理方法 | |
CN110930428B (zh) | 目标跟踪方法、装置、电子设备及存储介质 | |
CN110969145B (zh) | 一种遥感图像匹配优化方法、装置、电子设备及存储介质 | |
US20220270323A1 (en) | Computer Vision Systems and Methods for Supplying Missing Point Data in Point Clouds Derived from Stereoscopic Image Pairs | |
CN112950715B (zh) | 无人机的视觉定位方法、装置、计算机设备和存储介质 | |
WO2020198963A1 (zh) | 关于拍摄设备的数据处理方法、装置及图像处理设备 | |
CN113807435A (zh) | 一种基于多传感器的遥感图像特征点高程获取方法 | |
CN110910432A (zh) | 一种遥感图像匹配方法、装置、电子设备及可读存储介质 | |
CN112686149A (zh) | 一种基于视觉的固定翼无人机近地段自主着陆方法 | |
CN111582296B (zh) | 一种遥感图像综合匹配方法、装置、电子设备及存储介质 | |
CN111862150A (zh) | 图像跟踪的方法、装置、ar设备和计算机设备 | |
CN111639662A (zh) | 一种遥感图像双向匹配方法、装置、电子设备及存储介质 | |
CN112102412B (zh) | 一种无人机降落过程中视觉锚点的检测方法及系统 | |
CN112132960B (zh) | 一种三维重建方法、装置和电子设备 | |
CN114740885A (zh) | 一种无人机返航方法、装置、设备及存储介质 | |
CN113610952A (zh) | 一种三维场景重建方法、装置、电子设备和存储介质 | |
CN113011212A (zh) | 图像识别方法、装置及车辆 | |
KR102211769B1 (ko) | 멀티 카메라 촬영 영상의 기하보정 방법 및 장치 | |
CN117611762B (zh) | 一种多层级地图构建方法、系统及电子设备 | |
CN111505692B (zh) | 一种基于北斗/视觉的组合定位导航方法 | |
US20240104880A1 (en) | Information processing apparatus and method | |
US20240135685A1 (en) | Information processing apparatus and method | |
CN114359474A (zh) | 三维重建方法和装置、计算机设备、存储介质 | |
CN113449668A (zh) | 一种飞行装置的靶标角度识别方法、装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |