CN116164746A - 基于vo的位姿解算方法、装置、设备及产品 - Google Patents
基于vo的位姿解算方法、装置、设备及产品 Download PDFInfo
- Publication number
- CN116164746A CN116164746A CN202211597101.2A CN202211597101A CN116164746A CN 116164746 A CN116164746 A CN 116164746A CN 202211597101 A CN202211597101 A CN 202211597101A CN 116164746 A CN116164746 A CN 116164746A
- Authority
- CN
- China
- Prior art keywords
- feature point
- dynamic
- points
- target
- feature points
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/10—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
- G01C21/12—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
- G01C21/16—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
- G01C21/165—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/10—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
- G01C21/12—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
- G01C21/16—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
- G01C21/165—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
- G01C21/1656—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with passive imaging devices, e.g. cameras
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
-
- 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
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本公开实施例涉及一种基于VO的位姿解算方法、装置、设备及产品,通过对采集到的图像帧进行目标检测处理和特征点提取处理,能够准确的从图像帧中筛选出具有运动属性的目标物体,以及目标物体上包含的特征点;通过基于目标物体上的特征点的重投影残差,和/或基于IMU确定出的该特征点的第一位置与光流追踪得到的该特征点的第二位置之间的距离,能够进一步的对特征点进行判断,从而准确的判断出该特征点所在的物体的真实状态是否在运动,以及该特征点是否是真实运动的特征点,从而准确的区分了动态的特征点和非动态的特征点;进而通过从图像帧中提取非动态的特征点即可排除掉动态的特征点对VO解算的干扰,提高VO解算的准确性。
Description
技术领域
本公开实施例涉及导航技术领域,尤其涉及一种基于VO的位姿解算方法、装置、设备及产品。
背景技术
增强现实(Augmented Reality,简称AR)导航技术是一种将真实世界的视觉信息融入导航界面的导航技术。AR导航技术能够给用户带来沉浸式的导航感受,并且提高导航的定位精度。然而,在存在运动物体,尤其是运动物体数量较多的场景下,AR导航的准确性会降低。比如,在室内AR步行导航场景中,如果行人数量过多,则会导致视觉里程计(VisualOdometry,简称VO)算法解算出的位姿数据不准确,进而导致AR导航的准确性降低。再比如,在室外AR驾车导航场景中,如果运动的车辆过多,也会导致VO算法解算出的位姿数据不准确,进而导致AR导航的准确性降低。因此,如何排除运动物体的干扰,提高VO算法解算结果的准确性是本领域技术人员需要解决的技术问题。
发明内容
为了解决上述技术问题,本公开实施例提供了一种基于VO的位姿解算方法、装置、设备及产品。
本公开实施例的第一方面提供了一种基于VO的位姿解算方法,该方法包括:对采集到的图像帧进行目标检测处理和特征点提取处理,得到图像帧中具有运动属性的目标物体,以及目标物体上包含的特征点;基于目标物体上包含的特征点的重投影残差,和/或基于惯性测量单元(Inertial measurement unit,简称IMU)确定出的该特征点的第一位置与光流追踪得到的该特征点的第二位置之间的距离,确定该特征点是否为动态的特征点;进而从图像帧中提取非动态的特征点进行VO解算,得到位姿数据。
本公开实施例的第二方面提供了一种基于VO的位姿解算装置,该装置包括:
处理模块,用于对采集到的图像帧进行目标检测处理和特征点提取处理,得到图像帧中具有运动属性的目标物体,以及目标物体上包含的特征点;
确定模块,用于基于特征点的重投影残差,和/或基于IMU确定出的该特征点的第一位置与光流追踪得到的该特征点的第二位置之间的距离,确定该特征点是否为动态的特征点;
VO解算模块,用于从图像帧中提取非动态的特征点进行VO解算,得到位姿数据。
本公开实施例的第三方面提供了一种终端设备,其中,包括存储器和处理器,其中,该存储器中存储有计算机程序,当计算机程序被处理器执行时,可以实现如上述第一方面所述的方法。
本公开实施例的第四方面提供了一种计算机程序产品,该程序产品存储在存储介质中,当该程序产品被运行时,可以实现上述第一方面的方法。
本公开实施例的第五方面提供了一种计算机可读存储介质,该存储介质种存储有计算机程序,当该计算机程序被执行时,可以实现上述第一方面所述的方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例,通过对采集到的图像帧进行目标检测处理和特征点提取处理,能够准确的从图像帧中筛选出具有运动属性的目标物体,以及目标物体上包含的特征点;通过基于目标物体上的特征点的重投影残差,和/或基于IMU确定出的该特征点的第一位置与光流追踪得到的该特征点的第二位置之间的距离,能够进一步的对特征点进行判断,从而准确的判断出该特征点所在的物体的真实状态是否在运动,以及该特征点是否是真实运动的特征点,从而准确的区分了动态的特征点和非动态的特征点;进而通过从图像帧中提取非动态的特征点即可排除掉动态的特征点对VO解算的干扰,提高VO解算的准确性。尤其是在图像帧中存在的动态物体较多的情况下,能够准确的区分动态的特征点和非动态的特征点(即静态的特征点),从而解决了动态物体较多时导致的VO解算准确度较低的问题,提高了用户体验。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的一种应用场景的示意图;
图2是本公开实施例提供的一种基于VO的位姿解算方法的流程示意图;
图3是本公开实施例提供的一种从图像帧中提取非动态的特征点进行VO解算的方法的流程图;
图4是本公开实施例提供的另一种从图像帧中提取非动态的特征点进行VO解算的方法的流程图;
图5是本公开实施例提供的一种基于VO的位姿解算装置的结构示意图;
图6是本公开实施例中的一种终端设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
为了更好理解本公开实施例的技术方案,首先对本公开实施例中涉及的部分技术名词进行解释。
目标检测,是指一种检测出图像中包含目标物体的位置和语义类别的技术。在本公开实施例中基于目标检测技术检测图像中具有运动属性的物体(比如,车辆、行人等可移动的物体)和静止属性的物体(比如树木,建筑等不可移动的物体)。需要说明的是,具有运动属性的物体,其真实状态可能是移动的也可能是静止的,比如静止停放的车辆。
VO算法,一种根据拍摄的图像估计拍摄设备的位姿的算法。
特征点,图像中灰度值发生剧烈变化的像素点或者图像边缘上曲率较大的像素点。
IMU,测量物体在三个坐标轴上的姿态角(或角速度)以及加速度的装置。
针对相关技术存在的VO算法解算结果的准确性容易受到运动物体影响的问题,本公开实施例提供了一种基于VO的位姿解算方案。示例的,图1是本公开实施例提供的一种应用场景的示意图。参见图1,在本公开实施例的一种实施场景中可以包括图像采集设备11和终端设备12,其中,图像采集设备11可以安装在终端设备12上,也可以独立于终端设备12之外。
其中,图像采集设备11可以理解为诸如单目相机、双目相机等具有图像采集能力的设备。在本公开实施例中图像采集设备按照预设的图像采集频率进行连续图像采集,并将采集到的图像帧发送给终端设备12。
终端设备12可以理解为诸如手机、车机、可穿戴设备、平板电脑等具有计算和处理能力的设备。终端设备12用于在接收到图像采集设备的图像帧后对图像帧进行目标检测处理和特征点提取处理,得到图像帧中具有运动属性的目标物体(即实际场景中可以移动的物体,比如车辆,行人等)以及目标物体上包含的特征点,然后基于目标物体上的特征点的重投影残差,和/或所述特征点的第一位置(基于IMU确定出的位置)与所述特征点的第二位置(通过光溜追踪得到的位置)之间的距离,确定出目标物体上的特征点是否为动态的特征点,其中,动态的特征点是指位置和姿态随着时间的推移不断发生变化的特征点;从而通过从图像帧中提取非动态的特征点(即随着时间的推移位置和姿态不发生变化的特征点)进行VO解算来得到图像采集设备11的位姿数据。
本公开实施例,通过对采集到的图像帧进行目标检测处理和特征点提取处理,能够准确的从图像帧中筛选出具有运动属性的目标物体,以及目标物体上包含的特征点;通过基于目标物体上的特征点的重投影残差,和/或基于IMU确定出的该特征点的第一位置与光流追踪得到的该特征点的第二位置之间的距离,能够进一步的对特征点进行判断,从而准确的判断出该特征点所在的物体的真实状态是否在运动,以及该特征点是否是真实运动的特征点,从而准确的区分了动态的特征点和非动态的特征点;进而通过从图像帧中提取非动态的特征点即可排除掉动态的特征点对VO解算的干扰,提高VO解算的准确性。尤其是在图像帧中存在的动态物体较多的情况下,能够准确的区分动态的特征点和非动态的特征点(即静态的特征点),从而解决了动态物体较多时导致的VO解算准确度较低的问题,提高了用户体验。
为了更好的理解本公开实施例的技术方案,下面以示例性的实施例对本公开实施例的技术方案进行说明。
示例的,图2是本公开实施例提供的一种基于VO的位姿解算方法的流程示意图。该方法可以示例性的由图1中的终端设备来执行。如图2所示,该方法可以包括步骤201-步骤203。
步骤201、对采集到的图像帧进行目标检测处理和特征点提取处理,得到图像帧中具有运动属性的目标物体,以及目标物体上包含的特征点。
在本公开实施例中,可以基于预先训练的模型对图像采集设备(比如,单目相机、双目相机等具有图像采集能力的设备)采集到的图像帧进行目标检测和特征点提取处理。其中用于目标检测的模型和特征点提取的模型可以是不同的模型。模型的种类可以根据需要选择,模型的训练方法可以参见相关技术,在这里不做具体限定。
通过模型对图像帧进行目标检测,检测结果包括物体的检测框和物体的属性信息,其中,物体的属性包括运动属性和静止属性。其中运动属性可以理解为物体具有可移动的能力,但是实际中具有运动属性的物体其真实状态也可能是静止的,比如静止的汽车等。静止属性可以理解为物体不具有可移动的能力,比如树木和建筑等。
实际中,图像采集设备按照预设的采集频率连续的采集图像。终端设备在对图像帧进行目标检测处理和特征点提取处理时,可以针对图像采集设备采集到的每个图像帧都进行目标检测处理和特征点提取处理。也可以只针对图像采集设备采集到的部分图像帧进行目标检测处理和特征点提取处理。比如在一种示例性的实施方式中,可以只针对采集到的图像帧中的关键帧进行目标检测处理和特征点提取处理,得到关键帧中具有运动属性的目标物体以及目标物体上包含的特征点。其中,关键帧可以理解为按照预设策略(可根据需要进行设定)从连续的图像帧中提取出的,前后两帧图像的视差大于预设视差、匹配的特征点的数量大于预设数量的图像帧。再比如,在另一种示例性的实施方式中,还可以先按照预设策略从图像采集设备采集到的图像帧中提取关键帧,然后,再针对关键帧中的目标关键帧进行目标检测处理和特征点提取处理。其中,目标关键帧可以根据预设策略进行确定,比如,在一种预设策略中可以将间隔预设时间间隔得到的关键帧作为目标关键帧,进而对目标关键帧进行目标检测处理和特征点提取处理,得到目标关键帧中包含的物体的语义(比如,具有运动属性的物体、静止属性的物体等)、以及目标关键帧中包含的关键点;然后将目标物体的语义赋值给目标物体上包含的特征点;对于关键帧中除目标关键帧以外的其他关键帧(以下称为非目标关键帧),通过将非目标关键帧上的特征点与目标关键帧上的特征点进行匹配,并将目标关键帧上的特征点的语义赋值给非目标关键帧上相匹配的关键点,即可确定出非目标关键帧上哪些特征点是动态的特征点,哪些是静态的特征点,进而将动态的特征点所在物体确定为运动的物体,静态的特征点所在物体确定为静态的物体。其中,预设时间间隔可以根据需要进行设定,比如,当终端设备的性能较高、VO算法的算力较强时,可以将预设时间间隔设置的小一些,当终端设备的性能较差,VO算法的算力较低时,可以将预设时间间隔设置的大一些。当然这里仅为示例说明而不是唯一限定。
通过对图像采集设备采集到的部分图像帧进行目标检测处理和特征点提取处理,能够有效的降低计算量,节约计算资源,提高处理速度。
步骤202、基于特征点的重投影残差,和/或基于IMU确定出的所述特征点的第一位置与光流追踪得到的所述特征点的第二位置之间的距离,确定所述特征点是否为动态的特征点。
在本公开实施例中,特征点的重投影残差的计算方法、基于IMU确定特征点的第一位置的方法以及通过光流追踪的方法确定特征点第二位置的方法与相关技术类似,在这里不做详述。
在本公开实施例中,确定特征点是否为动态特征点的方法有多种:
示例的,在一种示例性的方法中,可以将目标物体上的特征点的重投影残差与第一预设阈值进行比较,如果重投影残差大于第一预设阈值,则确定特征点为动态的特征点,该特征点所在的目标物体的真实状态为运动的物体。如果重投影残差小于或等于第一预设阈值,则确定特征点为非动态的特征点。其中,第一预设阈值可以通过启发式滤波的方法进行更新,比如在一种实施方式中可以将第一预设阈值与第一预设数值进行乘法运算,得到第一乘积,并计算图像帧上多个特征点的重投影残差的平均值,得到第一平均值,然后将第一乘积与第一平均值进行比较,将第一预设阈值更新为第一乘积和第一平均值中较大的一个。
示例的,在另一种示例性的方法中,还可以将目标物体上的特征点的第一位置(即根据IMU确定出的位置)与第二位置(即通过光流追踪确定出的该特征点的位置)之间的距离与第二预设阈值进行比较,当距离大于第二预设阈值时,则确定特征点为动态的特征点,当距离小于或等于第二预设距离时,则确定特征点为静态的特征点。其中,对于目标物体上的某个特征点来说,该特征点的上述距离可以理解为通过最近一帧图像帧计算得到的所述距离,也可以是通过若干帧计算的所述距离的平均值。
与第一预设阈值类似的,在一些实施方式中,第二预设阈值也可
以通过启发式滤波的方法进行更新,比如在一种实施方式中可以将第5二预设阈值与第二预设数值进行乘法运算,得到第二乘积,并计算图像帧上的多个特征点所对应的多个所述距离的平均值,得到第二平均值。然后将第二乘积与第二平均值进行比较,将第二预设阈值更新为第二乘积和第二平均值中较大的一个。
示例的,在又一种示例性的方法中,也可以将上述两个示例中的0方法结合起来实施,当特征点的重投影残差大于第一预设阈值或者特征点对应的第一位置与第二位置之间的距离大于第二预设阈值时,则确定特征点是动态的特征点,当特征点的重投影残差小于或等于第一预设阈值,并且特征点对应的第一位置与第二位置之间的距离小于或等于第二预设阈值时,则确定特征点为静态的特征点。
5示例的,在又一种示例性的方法中,对于图像帧中语义未知的特征点,即通过目标检测处理未检测出语义的物体上的特征点,则可以根据预先设定,为该特征点赋值一个预设的数值,根据设定该数值可以表示该特征点是动态的特征点或者非动态的特征点。或者,在另外
一些实施方式中,对于语义未知的特征点,也可以根据IMU推算得到0第一位置与光流追踪得到的第二位置之间的距离,和/或重投影残差,
确定特征点是动态的特征点还是非动态的特征点。比如,当距离大于第三预设阈值或者重投影残差大于第四预设阈值时,则可以确定特征点为动态的特征点,当距离小于或等于第三预设距离,且重投影残差小于或等于第四预设阈值时,则确定特征点为静态的特征点。
5需要说明的是,在阈值的设置上第三预设阈值可以大于第二预设
阈值,第四预设阈值可以大于第一预设阈值,以便于确定出移动距离过大的特征点。
步骤203、从图像帧中提取非动态的特征点进行VO解算,得到位姿数据。
0在本公开实施例中,在基于步骤201和步骤202的方法确定出图像帧上的动态的特征点后,图像帧上其余的特征点即可以被认为是非动态的特征点,通过从图像帧中提取非动态的特征点进行VO解算即可得到结算结果,即图像采集设备的位置数据。其中,VO解算的方法可以参见相关技术,在这里不再赘述。
5本公开实施例,通过对采集到的图像帧进行目标检测处理和特征点提取处理,能够准确的从图像帧中筛选出具有运动属性的目标物体,以及目标物体上包含的特征点;通过基于目标物体上的特征点的重投影残差,和/或基于I MU确定出的该特征点的第一位置与光流追踪得到的该特征点的第二位置之间的距离,能够进一步的对特征点进行判断,从而准确的判断出该特征点所在的物体的真实状态是否在运动,以及该特征点是否是真实运动的特征点,从而准确的区分了动态的特征点和非动态的特征点;进而通过从图像帧中提取非动态的特征点即可排除掉动态的特征点对VO解算的干扰,提高VO解算的准确性。尤其是在图像帧中存在的动态物体较多的情况下,能够准确的区分动态的特征点和非动态的特征点(即静态的特征点),从而解决了动态物体较多时导致的VO解算准确度较低的问题,提高了用户体验。并且,本公开实施例提供的方法通过筛选后只需要对具有运动属性的目标物体上的特征点进行运动状态的判断即可,不涉及复杂优化,计算量低,算力友好,对设备性能的要求较低,普适性较高。
图3是本公开实施例提供的一种从图像帧中提取非动态的特征点进行VO解算的方法的流程图,如图3所示,在本公开实施例的一种实施方式中,可以通过步骤301-步骤302的方法提取非动态的特征点,并进行VO解算。
步骤301、从动态的特征点周围预设范围以外的区域提取特征点,得到非动态的特征点。
步骤302、基于非动态的特征点进行VO解算,得到位姿数据。
在本公开实施例的一种实施方式中,为了能够尽量排除运动物体的干扰,提高VO解算的准确性。在确定出图像帧上的动态特征点后,可以根据预先的设定,从动态特征点周围预设范围以外的区域上提取特征点,作为非动态的特征点。在这种情况下,即使某个动态的特征点的预设范围内包含了非动态的特征点,此时参与VO解算时,也不会提取该非动态的特征点,而是从该预设范围以外的区域提取非动态的特征点参与VO解算。这样是因为距离较近的特征点大概率是同一物体上的特征点,如果其中一个特征点被判定为动态的特征点,那么动态的特征点所在的物体就是运动的,而在运动的物体上的特征点都是运动的,此时如果某个运动的物体上的特征点被判定为非动态的特征点,那么这个判断就可能是算法误差造成的,通过从动态的特征点周围预设范围以外的区域提取特征点参与VO解算能够排除这种算法误差所造成的干扰,提高VO解算的准确性。
本公开实施例,通过从动态的特征点周围预设范围以外的区域中提取特征点作为非动态的特征点,能够提高非动态特征点的提取的准确性,进而提高VO解算的准确性。
图4是本公开实施例提供的另一种从图像帧中提取非动态的特征点进行VO解算的方法的流程图,如图4所示,在本公开实施例的一种实施方式中,可以通过步骤401-步骤402的方法提取非动态的特征点,并进行VO解算。
步骤401、从图像帧中删除动态的特征点,将图像帧中剩余的至少部分特征点作为非动态的特征点。
步骤402、基于非动态的特征点进行VO解算,得到位姿数据。
示例的,在一些实施方式中,在基于步骤201-步骤202的方法确定出图像帧上动态的特征点之后,可以先从图像帧上删除动态的特征点,以排除动态的特征点的干扰,防止动态的特征点被作为非动态的特征点被误提取。然后,再从图像帧剩余的特征点中提取至少部分特征点作为非动态的特征点,参与VO解算。
其中,在从剩余的特征点中提取非动态的特征点的方法可以有多种,比如,在一种可行的实施方式中,可以将剩余的特征点全部作为非动态的特征点进行提取。在另一种可行的实施方式中,可以对剩余特征点的动态概率进行计算,按照动态概率由低到高的顺序,提取预设数量的特征点作为非动态的特征点,从而进一步排除状态可能为动态的特征点,提高非动态的特征点提取的准确性。其中,特征点动态概率的计算方法可以根据需要进行设定,而不必局限于某一种特定的方法,为了方便理解,本公开实施例中可以理解为将携带有剩余特征点的图片帧输入预设训练好的模型中,通过模型计算每个特征点的动态概率,然后提取动态概率最低的预设数量的特征点作为非动态的特征点。
本公开实施例,通过从图像帧中删除动态的特征点,从图像帧剩余的特征点中提取至少部分特征点参与VO解算,能够提高非动态的特征点的提取的准确性,进而提高VO解算的准确度。
图5是本公开实施例提供的一种基于VO的位姿解算装置的结构示意图,该装置可以被理解为上述实施例中的终端设备或者终端设备中的部分功能模块。如图5所示,本公开实施例提供的位姿解算装置50包括:
处理模块51,用于对采集到的图像帧进行目标检测处理和特征点提取处理,得到所述图像帧中具有运动属性的目标物体,以及所述目标物体上包含的特征点;
第一确定模块52,用于基于所述特征点的重投影残差,和/或基于IMU确定出的所述特征点的第一位置与光流追踪得到的所述特征点的第二位置之间的距离,确定所述特征点是否为动态的特征点;
VO解算模块53,用于从所述图像帧中提取非动态的特征点进行VO解算,得到位姿数据。
在一种实施方式中,处理模块51,用于对采集到的图像帧中的关键帧进行目标检测处理和特征点提取处理,得到关键帧中具有运动属性的目标物体,以及所述目标物体上包含的特征点。
在一种实施方式中,处理模块51,用于:
对关键帧中的目标关键帧进行目标检测处理和特征点提取处理,得到所述目标关键帧中包含的物体的语义,以及所述目标关键帧中包含的关键点;
基于所述目标关键帧中包含的物体的语义,确定具有运动属性的目标物体,以及所述目标物体上包含的特征点;
将所述目标物体的语义赋值给所述目标物体上包含的特征点;
将关键帧中的非目标关键帧上的特征点与所述目标物体上包含的特征点进行匹配;
将所述目标物体上包含的特征点的语义赋值给所述非目标关键帧中相匹配的特征点,得到所述目标物体在所述非目标关键帧中的特征点。
在一种实施方式中,第一确定模块52,用于:
将所述目标物体上的特征点的重投影残差与第一预设阈值进行比较,和/或将所述目标物体上的特征点对应的所述距离与第二预设阈值进行比较;
响应于所述重投影残差大于所述第一预设阈值,或者所述距离大于所述第二预设阈值,确定所述目标物体上的所述特征点为动态的特征点。
在一种实施方式中,位姿解算装置50,还可以包括:
第一计算模块,用于计算第一预设阈值与第一预设数值之间的第一乘积,以及多个所述特征点的重投影残差的第一平均值;
第一更新模块,用于将所述第一预设阈值更新为所述第一乘积和所述第一平均值中数值较大的数值;
和/或
第二计算模块,用于计算第二预设阈值与第二预设数值的第二乘积,以及多个所述特征点对应的多个所述距离的第二平均值;
第二更新模块,用于将所述第二预设阈值更新为所述第二乘积和所述第二平均值中数值较大的数值。
在一种实施方式中,位姿解算装置50,还可以包括:
第二确定模块,用于将所述图像帧中语义未知的特征点确定为动态的特征点或者非动态的特征点;其中所述语义未知的特征点是指通过目标检测处理未检测出语义的物体上的特征点。
在一种实施方式中,VO解算模块53,用于:
从动态的特征点周围预设范围以外的区域提取特征点,得到非动态的特征点;
基于所述非动态的特征点进行VO解算,得到位姿数据。
在一种实施方式中,VO解算模块53,用于:
从所述图像帧中删除所述动态的特征点,将所述图像帧中剩余的至少部分特征点作为非动态的特征点;
基于所述非动态的特征点进行VO解算,得到位姿数据。
本公开实施例提供的位姿解算装置能够执行上述图2-图4中任一实施例的方法,其执行方式和有益效果类似,在这里不再赘述。
本公开实施例还提供一种终端设备,该终端设备包括存储器和处理器,其中,该存储器中存储有计算机程序,当计算机程序被处理器执行时,可以实现如上述任一方法实施例中的方法。
示例的,图6是本公开实施例中的一种终端设备的结构示意图。下面具体参考图6,其示出了适于用来实现本公开实施例中的终端设备1400的结构示意图。本公开实施例中的终端设备1400可以包括但不限于诸如手机、车机、平板电脑、可穿戴设备等具有数据处理能力和计算能力的设备。图6示出的终端设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,终端设备1400可以包括处理装置(例如中央处理器、图形处理器等)1401,其可以根据存储在只读存储器(ROM)1402中的程序或者从存储装置1408加载到随机访问存储器(RAM)1403中的程序而执行各种适当的动作和处理。在RAM 1403中,还存储有终端设备1400操作所需的各种程序和数据。处理装置1401、ROM 1402以及RAM1403通过总线1404彼此相连。输入/输出(I/O)接口1405也连接至总线1404。
通常,以下装置可以连接至I/O接口1405:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1406;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1407;包括例如磁带、硬盘等的存储装置1408;以及通信装置1409。通信装置1409可以允许终端设备1400与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的终端设备1400,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1409从网络上被下载和安装,或者从存储装置1408被安装,或者从ROM 1402被安装。在该计算机程序被处理装置1401执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述终端设备中所包含的;也可以是单独存在,而未装配入该终端设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被处理装置执行时,使得处理装置:对采集到的图像帧进行目标检测处理和特征点提取处理,得到图像帧中具有运动属性的目标物体,以及目标物体上包含的特征点;基于目标物体上包含的特征点的重投影残差,和/或基于惯性测量单元(Inertial measurement unit,简称IMU)确定出的该特征点的第一位置与光流追踪得到的该特征点的第二位置之间的距离,确定该特征点是否为动态的特征点;进而从图像帧中提取非动态的特征点进行VO解算,得到位姿数据。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
本公开实施例还提供一种计算机可读存储介质,所述存储介质中存储有计算机程序,当所述计算机程序被处理器执行时可以实现上述图2-图4中任一实施例的方法,其执行方式和有益效果类似,在这里不再赘述。
本公开实施例还提供一种计算机程序产品,所述程序产品存储在存储介质中,当所述程序产品运行时,可以实现图2-图4中任一实施例的方法,其执行方式和有益效果类似,在这里不再赘述。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (11)
1.一种基于VO的位姿解算方法,其中,包括:
对采集到的图像帧进行目标检测处理和特征点提取处理,得到所述图像帧中具有运动属性的目标物体,以及所述目标物体上包含的特征点;
基于所述特征点的重投影残差,和/或基于IMU确定出的所述特征点的第一位置与光流追踪得到的所述特征点的第二位置之间的距离,确定所述特征点是否为动态的特征点;
从所述图像帧中提取非动态的特征点进行VO解算,得到位姿数据。
2.根据权利要求1所述的方法,其中,所述对采集到的图像帧进行目标检测处理和特征点提取处理,得到所述图像帧中具有运动属性的目标物体,以及所述目标物体上包含的特征点,包括:
对采集到的图像帧中的关键帧进行目标检测处理和特征点提取处理,得到关键帧中具有运动属性的目标物体,以及所述目标物体上包含的特征点。
3.根据权利要求2所述的方法,其中,所述对采集到的图像帧中的关键帧进行目标检测处理和特征点提取处理,得到关键帧中具有运动属性的目标物体,以及所述目标物体上包含的特征点,包括:
对关键帧中的目标关键帧进行目标检测处理和特征点提取处理,得到所述目标关键帧中包含的物体的语义,以及所述目标关键帧中包含的关键点;
基于所述目标关键帧中包含的物体的语义,确定具有运动属性的目标物体,以及所述目标物体上包含的特征点;
将所述目标物体的语义赋值给所述目标物体上包含的特征点;
将关键帧中的非目标关键帧上的特征点与所述目标物体上包含的特征点进行匹配;
将所述目标物体上包含的特征点的语义赋值给所述非目标关键帧中相匹配的特征点,得到所述目标物体在所述非目标关键帧中的特征点。
4.根据权利要求1所述的方法,其中,所述基于所述特征点的重投影残差,和/或基于IMU确定出的所述特征点的第一位置与光流追踪得到的所述特征点的第二位置之间的距离,确定所述特征点是否为动态的特征点,包括:
将所述目标物体上的特征点的重投影残差与第一预设阈值进行比较,和/或将所述目标物体上的特征点对应的所述距离与第二预设阈值进行比较;
响应于所述重投影残差大于所述第一预设阈值,或者所述距离大于所述第二预设阈值,确定所述目标物体上的所述特征点为动态的特征点。
5.根据权利要求4所述的方法,其中,所述方法还包括:
计算第一预设阈值与第一预设数值之间的第一乘积,以及多个所述特征点的重投影残差的第一平均值;
将所述第一预设阈值更新为所述第一乘积和所述第一平均值中数值较大的数值;
和/或
计算第二预设阈值与第二预设数值的第二乘积,以及多个所述特征点对应的多个所述距离的第二平均值;
将所述第二预设阈值更新为所述第二乘积和所述第二平均值中数值较大的数值。
6.根据权利要求4或5所述的方法,其中,所述从所述图像帧中提取非动态的特征点进行VO解算,得到位姿数据之前,所述方法还包括:
将所述图像帧中语义未知的特征点确定为动态的特征点或者非动态的特征点;其中所述语义未知的特征点是指通过目标检测处理未检测出语义的物体上的特征点。
7.根据权利要求1所述的方法,其中,所述从所述图像帧中提取非动态的特征点进行VO解算,得到位姿数据,包括:
从动态的特征点周围预设范围以外的区域提取特征点,得到非动态的特征点;
基于所述非动态的特征点进行VO解算,得到位姿数据。
8.根据权利要求1所述的方法,其中,所述从所述图像帧中提取非动态的特征点进行VO解算,得到位姿数据,包括:
从所述图像帧中删除所述动态的特征点,将所述图像帧中剩余的至少部分特征点作为非动态的特征点;
基于所述非动态的特征点进行VO解算,得到位姿数据。
9.一种基于VO的位姿解算装置,其中,包括:
处理模块,用于对采集到的图像帧进行目标检测处理和特征点提取处理,得到所述图像帧中具有运动属性的目标物体,以及所述目标物体上包含的特征点;
第一确定模块,用于基于所述特征点的重投影残差,和/或基于IMU确定出的所述特征点的第一位置与光流追踪得到的所述特征点的第二位置之间的距离,确定所述特征点是否为动态的特征点;
VO解算模块,用于从所述图像帧中提取非动态的特征点进行VO5解算,得到位姿数据。
10.一种终端设备,其中,包括存储器和处理器,其中,所述存储器中存储有计算机程序,当所述计算机程序被所述处理器执行时,
实现如权利要求1-8中任一项所述的方法。
11.一种计算机程序产品,其中,所述程序产品存储在存储介质0中,当所述程序产品被运行时,实现如权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211597101.2A CN116164746A (zh) | 2022-12-12 | 2022-12-12 | 基于vo的位姿解算方法、装置、设备及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211597101.2A CN116164746A (zh) | 2022-12-12 | 2022-12-12 | 基于vo的位姿解算方法、装置、设备及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116164746A true CN116164746A (zh) | 2023-05-26 |
Family
ID=86420988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211597101.2A Pending CN116164746A (zh) | 2022-12-12 | 2022-12-12 | 基于vo的位姿解算方法、装置、设备及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116164746A (zh) |
-
2022
- 2022-12-12 CN CN202211597101.2A patent/CN116164746A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110322500B (zh) | 即时定位与地图构建的优化方法及装置、介质和电子设备 | |
CN110246147B (zh) | 视觉惯性里程计方法、视觉惯性里程计装置及移动设备 | |
CN109584276B (zh) | 关键点检测方法、装置、设备及可读介质 | |
CN110246182B (zh) | 基于视觉的全局地图定位方法、装置、存储介质和设备 | |
CN111127563A (zh) | 联合标定方法、装置、电子设备及存储介质 | |
CN110349212B (zh) | 即时定位与地图构建的优化方法及装置、介质和电子设备 | |
CN111833447A (zh) | 三维地图构建方法、三维地图构建装置及终端设备 | |
CN115578433B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN113483774B (zh) | 导航方法、装置、电子设备及可读存储介质 | |
CN113610702B (zh) | 一种建图方法、装置、电子设备及存储介质 | |
CN111928861B (zh) | 地图构建方法及装置 | |
CN111626990B (zh) | 目标检测框处理方法、装置及电子设备 | |
CN115578432B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN111310595A (zh) | 用于生成信息的方法和装置 | |
CN114187509B (zh) | 对象定位方法、装置、电子设备以及存储介质 | |
CN113703704B (zh) | 界面显示方法、头戴式显示设备和计算机可读介质 | |
CN115830065A (zh) | 基于图像的速度确定方法、装置、设备及存储介质 | |
CN113642493B (zh) | 一种手势识别方法、装置、设备及介质 | |
CN115393423A (zh) | 目标检测方法和装置 | |
CN116164746A (zh) | 基于vo的位姿解算方法、装置、设备及产品 | |
CN111383337A (zh) | 用于识别对象的方法和装置 | |
CN112037280A (zh) | 物体距离测量方法及装置 | |
CN111586295A (zh) | 图像生成方法、装置和电子设备 | |
CN115294234B (zh) | 图像的生成方法、装置、电子设备和存储介质 | |
CN110660134B (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 |