CN112819860A - 视觉惯性系统初始化方法及装置、介质和电子设备 - Google Patents
视觉惯性系统初始化方法及装置、介质和电子设备 Download PDFInfo
- Publication number
- CN112819860A CN112819860A CN202110190368.9A CN202110190368A CN112819860A CN 112819860 A CN112819860 A CN 112819860A CN 202110190368 A CN202110190368 A CN 202110190368A CN 112819860 A CN112819860 A CN 112819860A
- Authority
- CN
- China
- Prior art keywords
- frame image
- current frame
- pose
- poses
- images
- 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.)
- Granted
Links
- 230000000007 visual effect Effects 0.000 title claims abstract description 51
- 238000011423 initialization method Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 80
- 230000005484 gravity Effects 0.000 claims abstract description 37
- 230000008569 process Effects 0.000 claims abstract description 36
- 238000005259 measurement Methods 0.000 claims abstract description 27
- 238000004364 calculation method Methods 0.000 claims abstract description 25
- 238000011084 recovery Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000003190 augmentative effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/248—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/269—Analysis of motion using gradient-based methods
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- 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/30241—Trajectory
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
本公开提供一种视觉惯性系统初始化方法、视觉惯性系统初始化装置、计算机可读介质和电子设备,涉及视觉定位技术领域。该方法包括:在接收图像的过程中,针对图像进行逐帧计算,直至得到第一预设数量的位姿;根据第一预设数量的位姿确定惯性测量单元对应的运动速度、重力向量和偏离率,以根据运动速度、重力向量和偏离率对视频惯性系统进行初始化。本公开不需要等待视觉惯性系统初始化完成,就可以提前输出位姿;同时充分利用了接收图像的时间间隔,缩短了获取第一预设数量的位姿的时间,因此加快了视觉惯性系统初始化的速度。
Description
技术领域
本公开涉及视觉定位技术领域,具体涉及一种视觉惯性系统初始化方法、视觉惯性系统初始化装置、计算机可读介质和电子设备。
背景技术
目前,室内定位技术是手机、AR眼镜、室内机器人等移动设备的刚性需求。在室内环境下,移动设备无法通过GPS(Global Positioning System,全球定位系统)等全局定位技术来确定自身位置,只能依赖移动设备自身的传感器实现定位。在手机端或者AR眼镜上,最直接最容易获取的就是视觉传感器(相机等)数据和惯性传感器IMU(Inertialmeasurement unit)数据,两者都可以结合算法实现定位。在2017年以前,仅使用视觉传感器的定位技术发展迅速,但也随着技术的不断突破,视觉传感器的固有缺陷也暴露出来,仅使用相机已无法突破目前定位技术面临的瓶颈。同样的,仅使用IMU进行定位的技术也出现了相同的瓶颈。
因此,近年来行业内衍生出了VIO(Visual-IMU Odometry,视觉惯导融合里程计)技术,即同时使用视觉传感器和IMU进行融合定位的技术。该项技术的发展也被广泛应用于室内导航、增强现实、机器人乃至无人驾驶等行业。
发明内容
本公开的目的在于提供一种视觉惯性系统初始化方法、视觉惯性系统初始化装置、计算机可读介质和电子设备,进而至少在一定程度上降低了视觉惯性系统初始化过程的耗时,提前了输出位姿的时间。
根据本公开的第一方面,提供一种视觉惯性系统初始化方法,包括:在接收图像的过程中,针对图像进行逐帧计算,直至得到第一预设数量的位姿;根据第一预设数量的位姿确定惯性测量单元对应的运动速度、重力向量和偏离率,以根据运动速度、重力向量和偏离率对视频惯性系统进行初始化;其中,逐帧计算包括:在接收到一帧当前帧图像时,提取当前帧图像的特征点和特征点对应的深度信息;基于当前帧图像的特征点和深度信息与上一帧图像的特征点和深度信息确定当前帧图像对应的位姿;将当前帧图像作为上一帧图像,并继续接收新的当前帧图像。
根据本公开的第二方面,提供一种视觉惯性系统初始化装置,包括:位姿确定模块,用于在接收图像的过程中,针对图像进行逐帧计算,直至得到第一预设数量的位姿;初始化模块,用于根据第一预设数量的位姿确定惯性测量单元对应的运动速度、重力向量和偏离率,以根据运动速度、重力向量和偏离率对视频惯性系统进行初始化;其中,逐帧计算包括:在接收到一帧当前帧图像时,提取当前帧图像的特征点和特征点对应的深度信息;基于当前帧图像的特征点和深度信息与上一帧图像的特征点和深度信息确定当前帧图像对应的位姿;将当前帧图像作为上一帧图像,并继续接收新的当前帧图像。
根据本公开的第三方面,提供一种计算机可读介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的方法。
根据本公开的第四方面,提供一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述的方法。
本公开的一种实施例所提供的视觉惯性系统初始化方法,在接收图像的过程中,通过在每接收到一帧当前帧图像时就针对该帧当前帧图像进行位姿计算的逐帧计算方法,进而在获取到第一预设数量的位姿后,可以根据第一预设数量的位姿确定惯性测量单元对应的运动速度、重力向量和偏离率,以根据运动速度、重力向量和偏离率对视频惯性系统进行初始化。本公开实施例的技术方案,与相关技术相比,不需要等待累积满一定数量图像才开始进行处理,而是在每接收到一帧当前帧图像就对该帧当前帧图像进行位姿计算,因此不需要等待视觉惯性系统初始化完成,就可以提前输出位姿;同时,在每接收到一帧当前帧图像就对该帧当前帧图像进行位姿计算,充分利用了接收图像的时间间隔,缩短了获取第一预设数量的位姿的时间,因此加快了视觉惯性系统初始化的速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了可以应用本公开实施例的一种示例性系统架构的示意图;
图2示出了可以应用本公开实施例的一种电子设备的示意图;
图3示意性示出本公开示例性实施例中一种视觉惯性系统初始化方法的流程图;
图4示意性示出本公开示例性实施例中逐帧计算的流程图;
图5示意性示出本公开示例性实施例中通过当前帧图像和上一帧图像确定当前帧图像对应的位姿的原理示意图;
图6示意性示出本公开示例性实施例中一种逐帧计算过程的示意图;
图7示意性示出本公开示例性实施例中另一种逐帧计算过程的示意图;
图8示意性示出本公开示例性实施例中再一种逐帧计算过程的示意图;
图9示意性示出本公开示例性实施例中地图点恢复过程的示意图;
图10示意性示出本公开示例性实施例中另一种视觉惯性系统初始化方法的流程图;
图11示意性示出本公开示例性实施例中视觉惯性系统初始化装置的组成示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了可以应用本公开实施例的一种视觉惯性系统初始化方法及装置的示例性应用环境的系统架构的示意图。
如图1所示,系统架构100可以包括终端设备101、102、103中的一个或多个,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备101、102、103可以是各种具有视觉惯性系统的终端设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。
本公开实施例所提供的视觉惯性系统初始化方法一般由终端设备101、102、103中执行,相应地,视觉惯性系统初始化装置一般设置于终端设备101、102、103中。但本领域技术人员容易理解的是,本公开实施例所提供的视觉惯性系统初始化方法也可以由服务器105执行,相应的,视觉惯性系统初始化装置也可以设置于服务器105中,本示例性实施例中对此不做特殊限定。举例而言,在一种示例性实施例中,可以是用户通过终端设备101、102、103的视觉传感器采集图像,并将图像发送至服务器105,以使服务器105进行位姿计算,并将计算结果发送至终端设备101、102、103,终端设备101、102、103通过服务器105发送的位姿确定惯性测量单元对应的运动速度、重力向量和偏离率,进而对视觉惯性系统进行初始化。
本公开的示例性实施方式提供一种用于实现视觉惯性系统初始化方法的电子设备,其可以是图1中的终端设备101、102、103或服务器105。该电子设备至少包括处理器和存储器,存储器用于存储处理器的可执行指令,处理器配置为经由执行可执行指令来执行视觉惯性系统初始化方法。
下面以图2中的移动终端200为例,对电子设备的构造进行示例性说明。本领域技术人员应当理解,除了特别用于移动目的的部件之外,图2中的构造也能够应用于固定类型的设备。在另一些实施方式中,移动终端200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或软件和硬件的组合实现。各部件间的接口连接关系只是示意性示出,并不构成对移动终端200的结构限定。在另一些实施方式中,移动终端200也可以采用与图2不同的接口连接方式,或多种接口连接方式的组合。
如图2所示,移动终端200具体可以包括:处理器210、内部存储器221、外部存储器接口222、通用串行总线(Universal Serial Bus,USB)接口230、充电管理模块240、电源管理模块241、电池242、天线1、天线2、移动通信模块250、无线通信模块260、音频模块270、扬声器271、受话器272、麦克风273、耳机接口274、传感器模块280、显示屏290、摄像模组291、指示器292、马达293、按键294以及用户标识模块(subscriber identification module,SIM)卡接口295等。其中传感器模块280可以包括深度传感器2801、惯性传感器2802、陀螺仪传感器2803等。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(Application Processor,AP)、调制解调处理器、图形处理器(Graphics ProcessingUnit,GPU)、图像信号处理器(Image Signal Processor,ISP)、控制器、视频编解码器、数字信号处理器(Digital Signal Processor,DSP)、基带处理器和/或神经网络处理器(Neural-Network Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器210中设置有存储器。存储器可以存储用于实现六个模块化功能的指令:检测指令、连接指令、信息管理指令、分析指令、数据传输指令和通知指令,并由处理器210来控制执行。
移动终端200可以通过ISP、摄像模组291、视频编解码器、GPU、显示屏290及应用处理器等实现拍摄功能。其中,ISP用于处理摄像模组291反馈的数据;摄像模组291用于捕获静态图像或视频;数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号;视频编解码器用于对数字视频压缩或解压缩,移动终端200还可以支持一种或多种视频编解码器。在一些实施例中,可以将上述摄像模组291作为视觉惯性系统中的视觉传感器,通过摄像模组291进行图像采集。
深度传感器2801用于获取景物的深度信息。在一些实施例中,深度传感器可以设置于摄像模组291,用于在采集图像的同时,采集图像对应的深度信息。
惯性传感器2802,又叫惯性测量单元,可以用于检测和测量加速度与旋转运动。
陀螺仪传感器2803可以用于确定移动终端200的运动姿态。此外,还可以根据实际需要在传感器模块280中设置其他功能的传感器,例如气压传感器、磁传感器、加速度传感器、距离传感器、接近光传感器、指纹传感器、温度传感器、触摸传感器、环境光传感器、骨传导传感器等。
在视觉定位这一领域内,相关研究人员先后做了很多尝试。例如,在技术层面上,2017年,苹果公司在WWDC2017大会上推出了增强现实开发套件ARKit,主要有位姿估计、环境理解、光估计三项功能。其中最核心的就是位姿估计功能,该功能使用了VIO技术,通过整合设备摄像头图像信息与设备运动传感器信息,为手机AR应用提供定位。再如,仍然在2017年,Google宣布推出了和ARKit对标的增强现实SDK,名为ARCore,同样包含位姿估计、环境理解、光估计三个主要功能。在进行位姿估计时,ARCore使用到了单目摄像头和IMU传感器,检测捕获的摄像头图像中的视觉差异特征点,并使用这些点来计算其位置变化。这些视觉信息再与设备IMU的惯性测量结果结合,一起用于估测摄像头随着时间推移而相对于周围世界的姿态。ARcore为安卓手机的AR、室内导航等应用提供了良好的位姿信息和环境信息。
在基于VIO系统进行定位之前,需要确定一个基准世界坐标系和初始的地图点集合,以便于基于该坐标系进行后续定位。同时,单独使用视觉定位的方式无法确定位姿的真实尺度,而在融合IMU后,由于IMU传感器本身的特性,需要确定IMU的初始速度、IMU的偏离率、重力向量以及尺度信息,以对单独使用视觉确定的位姿进行真实尺度的确认或调整。以上过程,就是SLAM或VIO系统运行的必要步骤——初始化过程。
在相关技术中,通常有以下两种初始化的方法:
一种是应用于VINS系统,具体的过程如下:积累10帧图像,并在10帧图像中选取两帧视差足够的图像L和R,利用对极几何约束来求解这两帧图像之间的位姿。然后利用该位姿三角化恢复出两帧之间共视的一些地图点。将这些地图点投影到除L帧和R帧以外的其他帧上,利用最小化重投影误差计算该帧位姿,之后在该帧与L帧、R帧之间进行三角化,再恢复出更多的地图点。反复以上过程,可求解出上述10帧的位姿,以及这10帧图像对应的地图点。最后利用旋转约束和平移约束对前面确定的10帧图像的位姿和IMU进行对齐,将前面确定的10帧图像的位姿作为准确位姿,以此来约束IMU的待求变量,最终采用SVD分解求解非齐次方程组的方式来确定所有待求量。
第二种应用于RGBD-VINS系统,具体的过程如下:等待系统中积累满10帧图像以后,在10帧图像中选取两帧视差足够的图像L和R。由于在RGBD-VINS系统中存在深度相机,因此每帧图像的深度都是已知的,不再需要使用2D点对2D点的对极几何约束来求解两帧图像的位姿,可以直接采用最小化3D点对2D点的重投影误差来求解,这样求解出的位姿直接具备了尺度确定性。在地图点的恢复过程中,也不再采取三角化的方式,而是直接利用深度相机信息,当两帧之间存在共视关系时,就可以用对应的深度值来恢复共视点的三维坐标,即各帧图像对应的地图点。最后在IMU初始化时,由于深度信息已经确定了位姿的尺度,所以不再需要再利用IMU估计尺度,尺度量设置为已知量而不再是待求量,只求解IMU的初始速度、重力向量以及偏离率即可。
然而,上述两种初始化的方法均存在技术上的局限性。
其中,第一种方法主要包括以下缺点:1、使用单目相机进行系统初始化,要求用于初始化的图像之间必须满足一定的视差,并且两帧图像之间的匹配点要足够多,才能保障初始化成功。但检测视差和更多的匹配点需要消耗更多的时间,而且如果不满足要求是还可能导致初始化失败并重启,进而导致初始化成功率低;2、需要累积10帧连续图像之后才开始进行初始化过程,无法在系统一开始运行就输出位姿;3、使用单目相机进行视觉初始化会造成位姿尺度不确定的问题,即使后面融入IMU的信息可以恢复出真实尺度,但是在终端IMU噪声较大前提下,也很难精确的计算出尺度,同时还会增加计算负担;4、在单目系统里,初始化过程中需要使用的地图点都是由三角化算法恢复出来的,当地图点较多时,需要消耗大量的时间用来计算,导致初始化过程缓慢。
第二种方法则包括以下缺点:1、需要累积10帧图像才可以进行初始化,在10帧图像累积满之前,系统不进行任何工作,浪费了大量时间。同时需要在10帧图像中检测视差,在视差小的场景,仍然会出现初始化不通过的情况;2、无法在系统一开始运行就输出位姿;3、在地图点的恢复中,完全信赖深度相机的信息。在深度相机噪声较大,或者大量地图点不在深度相机的量程范围时,可能导致计算位姿时可用的地图点数量严重减少,进而导致计算结果误差大甚至无法成功计算结果的情况。
基于上述一个或多个问题,本示例实施方式提供了一种视觉惯性系统初始化方法。该视觉惯性系统初始化方法可以应用于上述服务器105,也可以应用于上述终端设备101、102、103中的一个或多个,本示例性实施例中对此不做特殊限定。参考图3所示,该视觉惯性系统初始化方法可以包括以下步骤S310和S320:
在步骤S310中,在接收图像的过程中,针对图像进行逐帧计算,直至得到第一预设数量的位姿。
其中,上述逐帧计算参照图4所示,可以包括以下步骤S410至S430:
在步骤S410中,在接收到一帧当前帧图像时,提取当前帧图像的特征点和特征点对应的深度信息。
在一示例性实施例中,由于VIO系统的图像传入帧率为10Hz左右,每帧图像之间的时间间隔约为100ms,因此,在相关技术中,如果需要累积满10帧图像,则需要花费大约1000ms的时间进行图像累积,并在1000ms之后才可以进行初始化。为了避免图像累积时的时间浪费,可以在接收到一帧图像就对该图像进行对应的处理。具体的,在接收到一帧当前图像帧时,先提取当前图像帧中的特征点,同时提取深度传感器采集的深度信息中,该特征点对应的深度信息。
在步骤S420中,基于当前帧图像的特征点和深度信息与上一帧图像的特征点和深度信息确定当前帧图像对应的位姿。
在一示例性实施例中,在提取了当前帧图像的特征点和各个特征点的深度信息后,可以基于当前帧图像的特征点和深度信息,与接收当前帧图像之前接收的前一帧图像,即上一帧图像的特征点和各个特征点对应的深度信息确定当前帧图像对应的位姿。
在一示例性实施例中,在基于当前帧图像的特征点和深度信息与当前帧图像的上一帧图像的特征点和深度信息确定当前帧图像对应的位姿时,可以先将当前帧图像的特征点和当前帧图像对应的上一帧图像的特征点进行特征匹配,以获取匹配的匹配特征点;此时,由于上一帧图像位姿已经确定,因此可以通过上一帧图像的特征点对应的深度信息确定匹配特征点在三维坐标系中的地图点,然后将该地图点投影到当前帧图像中,进而确定当前帧图像对应的位姿。
举例而言,参照图5所示,可以将当前帧图像的特征点和当前帧图像对应的上一帧图像的特征点进行光流匹配,然后基于上一帧图像的特征点对应的深度信息确定匹配上的匹配特征点对应的地图点,并将该地图点重投影到当前帧图像上,最后通过PnP(Perspective-n-Point,多点透视)最小化重投影误差的方法计算出当前帧图像对应的位姿。
其中,上述三维坐标系指世界坐标系,该世界坐标系通常可以根据输入视觉惯性系统的第一帧图像对应的相机坐标系确定,从第二帧开始确定的所有位姿,均为相对该世界坐标系而言的相对位姿。具体的,在接到的当前帧图像为第一帧图像时,可以直接获取第一帧图的对应的相机坐标系,然后将该相机坐标系设定为世界坐标系。
需要说明的是,在接收到当前帧图像时,由于可以通过深度相机采集到的该当前帧图像的深度信息,因此不需要使用对极约束条件去求解两帧图像之间的位姿,即使两张图像之间的视差很小,也可以通过深度信息进行地图点投影,再通过最小化重投影误差的方式来求解出相对位姿,因此,不需要提前判断当前帧图像与上一帧图像之间的视差是否足够。
在步骤S430中,将当前帧图像作为上一帧图像,并继续接收新的当前帧图像。
在一示例性实施例中,由于对IMU进行初始化时,需要足够数量的位姿,因此在确定惯性测量单元IMU对应的运动速度、重力向量和偏离率之前,需要重复确定多个当前帧图像对应的位姿,直至确定的位姿数量等于IMU初始化所需的第一预设数量。具体的,在重复确定位姿的时候,可以在接收到一帧当前帧图像并确定了该当前帧图像对应的位姿后,将该当前帧图像作为上一帧图像,使得接收到的新的当前帧图像可以以上一次接收到的当前帧图像为上一帧图像进行位姿确定。
参照图6所示,在接收到的当前帧图像为第2帧图像时,可以根据第2帧图像中的特征点和特征点对应的深度信息以及上一帧图像(第1帧图像)中的特征点和特征点对应的深度信息确定第2帧图像对应的位姿;然后用第2帧图像作为上一帧图像,之后在接收到的当前帧图像为第3帧图像时,由于上一帧图像已经由第1帧图像变为第2帧图像,因此可以直接根据第3帧图像中的特征点和特征点对应的深度信息以及上一帧图像(第2帧图像)中的特征点和特征点对应的深度信息确定第3帧图像对应的位姿;之后重复上述过程,以frame-by-frame(逐帧)的形式确定连续输入的各个当前图像帧对应的位姿,直至确定第i帧对应的位姿之后,共确定出第一预设数量的位姿后停止。
此外,在接收到的当前帧图像为第一帧图像时,由于没有作为参考的上一帧图像,此时可以直接将第一帧图像对应的位姿确定为预设位姿。其中,预设位姿可以是单位矩阵。需要说明的是,将第一帧图像对应的位姿确定为预设位姿后,预设位姿也作为位姿数量的一部分进行计数。即假设第一预设数量为10时,除了预设位姿以外,还需要通过上述重复确定的位姿确定9个位姿,预设位姿与确定的9个位姿合计等于第一预设数量10,此时可以停止重复确定位姿的过程,进行其他后续处理。
在一示例性实施例中,接收到的当前帧图像可能存在噪声等干扰,在噪声等干扰的原因下,计算位姿的过程可能会出现失败的情况。例如,噪声等干扰导致PnP最小化投影误差求解失败。如果在确定的位姿数量小于第一预设数量时,出现了没有成功确定位姿的当前帧图像时,可以将当前帧图像丢弃,同时不进行步骤S430中将当前帧图像作为上一帧图像过程,即保留之前的上一帧图像,然后重新接收新的当前帧图像,并基于新的当前帧图像和保留的上一帧图像的计算新的当前帧图像对应的位姿。
例如,参照图7所示,在当前帧图像为第6帧图像a时,上一帧图像即为第5帧图像,在基于第6帧图像a和第5帧图像确定第6帧图像a对应的位姿时失败,说明第6帧图像中包含的噪声可能比较大,因此接收性的当前帧图像作为新的第6帧图像b继续进行计算,进而确定新的第6帧图像b对应的位姿。然后以新的第6帧图像b作为上一帧图像,继续进行逐帧计算的过程。
进一步地,在一示例性实施例中,由于噪声的干扰,还可能出现接收到的连续多帧图像均出现无法成功确定位姿的情况。在这种情况下,可以在没有成功确定当前帧图像对应的位姿,对未成功确定位姿的当前帧图像进行数量统计,在未成功确定位姿的当前帧图像的数量等于第二预设数量时,可以将已经确定的位姿全部清空,即位姿数量被重置为0。然后重新接收新的当前帧图像,并重新进行上述逐帧计算的过程,重新进行位姿数量的累积,直至位姿数量等于第一预设数量。
需要说明的是,在一示例性实施例中,等于上述第二预设数量的情况有两种,一种是未成功确定位姿的当前帧图像的数量累计等于第二预设数量;另一种是需要连续第二预设数量的当前帧图像没有成功确定对应的位姿。其中,在第二种方法中,为了满足连续第二预设数量的当前帧图像没有成功确定对应位姿的条件,可以在第一次出现未成功确定位姿的第一个当前帧图像后,对未成功确定位姿的当前帧图像进行数量统计;在统计的数量等于第二预设数量之前,如果出现任意一个当前帧图像成功确定了对应的位姿,可以对之前统计的未成功确定位姿的当前帧图像数量进行重置。
举例而言,参照图8所示,假设第二预设数量为3,在上一帧图像为第5帧图像时,若当前帧图像(第一个第6帧图像d)未成功确定对应的位姿时,统计未成功确定位姿的当前帧图像的数量n=1;接收到新的当前帧图像(第二个第6帧图像e)再次未成功确定对应的位姿,则n=1+1=2;再次接收到新的当前帧图像(第三个第6帧图像f),仍然未成功确定对应的位姿,则n=2+1=3,此时可以确定n等于第二预设数量,因此需要将前面5帧图像确定的位姿全部删除。之后,利用接收的第一个当前帧图像为第一帧图像重新进行上述逐帧计算的过程,重新累积确定的位姿,直到在确定第i帧图像的位姿后,累积确定位姿的数量等于第一预设数量。
此外,在上例中,在实现n=3之前,如果出现了任意一个当前帧图像成功计算出了对应的位姿时,可以将n重置为0。具体的,例如在n-2时,再次接收到新的当前帧图像(第三个第6帧图像)时,第三个第6帧图像成功确定了对应的位姿,此时将n=2重置为n=0。然后可以将第三个第6帧图像作为上一帧图像,并获取新的当前帧图像,并通过新的当前帧图像和上一帧图像(第三个第6帧图像)确定新的当前帧图像对应的位姿。
通过设置合理的位姿计算失败的处理机制,对位姿计算失败的情况机械能预防,提高了初始化的成功率,使得初始化更加鲁棒。
在步骤S320中,根据第一预设数量的位姿确定惯性测量单元对应的运动速度、重力向量和偏离率,以根据运动速度、重力向量和偏离率对视频惯性系统进行初始化。
在一示例性实施例中,在根据第一预设数量的位姿确定惯性测量单元对应的运动速度、重力向量和偏离率时,可以将第一预设数量的位姿与惯性测量单元进行对齐,利用旋转约束和平移约束计算惯性测量单元的运动速度、重力向量和偏离率。此外,在IMU初始化时,由于深度信息已经确定了位姿的尺度因此不需要确定位姿的尺度。
需要说明的是,在将第一预设数量的位姿与惯性测量单元进行对齐之前,可以对惯性测量单元进行更加精准的内外参标定,可以获取准确的惯性测量单元的加速度偏离率、角速度偏离率以及惯性测量单元与相机之间的外参变换,进而使得视觉与惯性测量单元联合初始化过程更快收敛,精度也会有进一步的提升。
在一示例性实施例中,为了能够得到更准确的运动速度、重力向量和偏离率进行初始化,需要通过更加准确的位姿确定惯性测量单元对应的运动速度、重力向量和偏离率。具体的,可以在根据第一预设数量的位姿确定惯性测量单元对应的运动速度、重力向量和偏离率之前,先对第一预设数量的位姿对应的目标图像进行地图点恢复,获取各个目标图像对应的地图点,然后根据恢复的地图点构建局部集束调整,以对第一预设数量的位姿进行优化得到优化后的位姿,最后根据优化后的位姿确定惯性测量单元对应的运动速度、重力向量和偏离率。
其中,目标图像可以包括成功确定第一预设数量位姿的当前帧图像。例如,假设为了确定第一预设数量的位姿共接收12个当前帧图像,其中有2个未成功确定位姿的当前帧图像,则其余的10个成功确定对应位姿的当前帧图像即为目标图像。
在一示例性实施例中,由于一个当前帧图像确定一个位姿,因此目标图像的数量也为第一预设数量。此时,参照图9所示,可以先在第一预设数量i个目标图像之间查找存在共视匹配关系的目标图像,以获取至少一对目标图像对。然后针对每对目标图像对,利用目标图像对中的目标图像的深度信息进行重投影,并计算重投影误差。在重投影误差较小,即小于等于预设阈值时,可以认为深度信息的误差较小,因此可以利用深度信息进行地图点恢复。此时,可以利用深度信息对特征点进行反投影,以对目标图像对进行地图点恢复;相反的,在重投影误差较大,即大于预设阈值时,可以认为深度信息的误差较大,因此不宜通过深度信息进行地图点恢复,此时可以采用三角化法对目标图像对进行地图点恢复。然后将恢复的所有地图点作为地图点集合,用于构建局部集束调整,以对位姿进行优化。
根据不同的条件选择使用深度信息或三角化法进行地图点恢复,在保证地图点精度的同时增加了地图点的数量;同时,即使VIO系统接收的深度信息质量较差,也能做到精准初始化。
在一示例性实施例中,在进行地图点恢复时,除了上述通过重投影误差确定是否使用深度信息进行地图点恢复之外,还可以利用概率模型对深度信息的不确定进行建模,然后通过深度信息的不确定性的概率大小确定是否采用深度信息进行地图点恢复。通过概率模型进行不确定性判断,可以减小深度信息带来的噪声,实现更加精准的初始化过程。
其中,预设阈值可以根据实际应用场景、应用环境等进行设定。例如,在深度信息更加可靠时,可以将该预设阈值确定为较大的值;反之在深度信息可靠性较小时,可以选择较小的值作为预设阈值。
此外,在初始化结束后,还可以根据确定的重力向量对之前确定的所有位姿进行重力方向调整,以输出调整后的位姿。
以下参照图10所示,以第一预设数量为10,第二预设数量为3,预设阈值为1/460为例,对本公开实施例的技术方案进行详细阐述。
步骤S1001,接收当前帧图像;
步骤S1003,对当前帧图像进行特征提取,提取各个特征点对应的深度信息;
步骤S1005,判断当前帧图像是否为输入系统的第一帧图像;
步骤S1007,在当前帧图像不是第一帧视频时,将当前帧图像与上一帧图像进行光流匹配和PnP最小化重投影误差的方法确定当前帧图像对应的位姿;
步骤S1009,判断当前帧图像是否成功确定对应的位姿;
步骤S1011,在当前帧图像未成功确定对应的位姿时,判断是否连续3个接收到的当前帧图像均未成功确定对应的位姿;
步骤S1013,在连续3个接收到的当前帧图像均未成功确定对应的位姿时,清空之前确定的所有位姿;
步骤S1015,在仅有1个或连续2个接收到的当前帧图像未成功确定对应的位姿时,丢弃当前帧图像;
步骤S1017,在当前帧图像成功确定对应的位姿时,将当前帧图像作为上一帧图像;
步骤S1019,判断累积确定位姿的数量m是否等于第一预设数量10;
步骤S1021,在m等于10时,在10帧成功确定位姿的目标图像中查找共视关系,并确定目标图像对;
步骤S1023,利用目标图像对中目标图像的深度信息进行重投影,并计算重投影误差;
步骤S1025,在计算的重投影误差小于等于1/460时,利用深度信息对特征点进行反投影进行地图点恢复;
步骤S1027,在在计算的重投影误差大于1/460时,利用三角化法进行地图点恢复;
步骤S1029,通过恢复的地图点对10个目标图像对应的位姿进行局部BA调整;
步骤S1031,通过优化后的10个位姿进行IMU初始化,计算IMU对应的初始速度、重力向量和偏离率;
步骤S1033,根据重力向量对所有的位姿和地图点进行重力方向调整;
步骤S1035,输出位姿。
需要说明的是,由于不同应用场景的需求不同,在步骤S1035中,可以在IMU初始化之前,直接将根据当前帧图像和上一帧图像确定的当前帧图像对应的位姿输出;此外,还可以在IMU初始化之后,对位姿进行重力调整后再输出。
根据上述实施例中的方法,利用上海科技大学(STU)发布的公开数据集A\B\C(后简称为STU数据集)进行实验验证,可以得到如表1所示的结果。基于表1可以得出以下结论:
(1)在初始化过程的耗时上,本实施例相比于VINS-MONO、VINS-RGBD方案均有大幅度的提升。相比与VINS-MONO,平均速度提升6到7倍;相比VINS-RGBD,平均速度提升3到4倍。
(2)在首次输出位姿的时间上,本实施例输出相机位姿的时间要远远提前于VINS-MONO和VINS-RGBD,至少提前30帧输出位姿,即通常情况下,本实施例可以在系统一开始运行就输出位姿。
(3)在整体轨迹精度上,由于测试使用的STU数据集拥有质量较好的深度图数据,因此本实施例最后的整体轨迹估计精度与VINS-RGBD方案基本持平,在多数情况下优于VINS-MONO;而在接收到的图像的深度信息质量较差时,本实施例采用了三角化法和深度信息结合的方式来恢复地图点,在保证准确的同时可以恢复出更多的三维地图点,相比于VINS-RGBD方案,会带来精度上的明显提升。
表1本实施例与VINS-MONO和VINS-RGBD的性能对比
为了验证本实施例的鲁棒性,我们在弗吉尼亚联邦大学公开的VCU-RVI数据集(15组数据)上进行了测试,计算VINS-MONO、VINS-RGBD和本实施例的轨迹均方根误差(RMSE),测试结果如表2所示。
从测试结果种可以看出,VINS-MONO、VINS-RGBD都未成功跟踪所有的15条轨迹;VINS-MONO有两组轨迹由于无法初始化成功而跟踪失败;而VINS-RGBD则出现三组轨迹由于无法初始化成功而跟踪失败。反观本实施例,本实施例在全部15组数据集上都做到了成功初始化和跟踪,即本实施例具有更好的鲁棒性。同时,在15组数据集的跟踪轨迹精度上,本技术方案的精度在大多数情况下也都优于其他方法,即本实施例可以更加准确的结果。
表2轨迹均方根误差
其中,X代表初始化失败。
综上,本示例性实施方式中,具有以下有益效果:
(1)不再需要像VINS-MONO和VINS-RGBD那样等待累积满10帧图像,并且IMU初始化成功之后才能输出位姿,提前了输出位姿的时间。即在系统开始运行时,接收到第一个当前帧图像便可以开始输出可利用的位姿信息。在用户体验上,用户不再需要等待视觉IMU联合初始化完成才可以开始使用相关应用,而是打开应用后立刻便可以开始.
(2)由于原来的VIO系统需要等待系统累积满10帧图像才开始进行操作,在未满10帧的时候不进行任何操作,而图像的传入帧率为10Hz左右,每帧图像之间的时间间隔约为100ms,不进行任何操作导致了这每帧100ms的时间间隔完全被浪费,而本申请则充分利用了这些时间间隔,使用frame-by-frame的方式计算出每两帧图像之间的相对位姿。相对相关技术中积累10帧图像之后再进行位姿求解,然后再进行地图点恢复的方案,本技术方案在10帧图像传入的时候,只需计算最后一帧的位姿,大幅降低了初始化过程的耗时.
(3)在出现位姿确定失败时,可以合理的对失败情况的进行不同的处理,同时在不同情况下分别采用深度信息和三角化法进行地图点恢复,提高了初始化的成功率,进而提高了最终确定位姿的精度和鲁棒性。
需要注意的是,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
进一步的,参考图11所示,本示例的实施方式中还提供一种视觉惯性系统初始化装置1100,包括位姿确定模块1110和初始化模块1120。
其中:
位姿确定模块1110可以用于在接收图像的过程中,针对图像进行逐帧计算,直至得到第一预设数量的位姿。
初始化模块1120可以用于根据第一预设数量的位姿确定惯性测量单元对应的运动速度、重力向量和偏离率,以根据运动速度、重力向量和偏离率对视频惯性系统进行初始化。
在一示例性实施例中,上述逐帧计算包括:在接收到一帧当前帧图像时,提取当前帧图像的特征点和特征点对应的深度信息;基于当前帧图像的特征点和深度信息与上一帧图像的特征点和深度信息确定当前帧图像对应的位姿;将当前帧图像作为上一帧图像,并继续接收新的当前帧图像。
在一示例性实施例中,位姿确定模块1110可以用于在未成功确定当前帧图像对应的位姿时,丢弃当前帧图像,并保留上一帧图像;在接收到新的当前帧图像时,基于新的当前帧图像和保留的上一帧图像计算新的当前帧图像对应的位姿。
在一示例性实施例中,位姿确定模块1110可以用于在未成功确定当前帧图像对应的位姿时,统计未成功确定位姿的当前帧图像的数量;在未成功确定位姿的当前帧图像的数量等于第二预设数量时,清空已经确定的位姿,并继续接收新的当前帧图像。
在一示例性实施例中,位姿确定模块1110可以用于在成功确定当前帧图像对应的位姿时,重置未成功确定位姿的当前帧图像的数量。
在一示例性实施例中,位姿确定模块1110可以用于将当前帧图像的特征点与上一帧图像的特征点进行特征匹配,以获取匹配特征点;基于上一帧图像的特征点对应的深度信息确定匹配特征点的地图点,并将地图点投影至当前帧图像,以确定当前帧图像对应的位姿。
在一示例性实施例中,视觉惯性系统初始化装置1100还可以包括位姿优化模块,用于对第一预设数量的位姿对应的目标图像进行地图点恢复,以获取恢复后的地图点;根据地图点构建局部集束调整,以对位姿进行优化得到优化后的位姿。
在一示例性实施例中,位姿优化模块可以用于在第一预设数量的位姿对应的目标图像之间查找共视匹配关系,以获取至少一对目标图像对;针对每对目标图像对,利用目标图像对中目标图像的深度信息进行重投影,并计算重投影误差;在重投影误差小于等于预设阈值时,利用深度信息对特征点进行反投影,以对目标图像进行地图点恢复。
在一示例性实施例中,位姿优化模块可以用于在重投影误差大于预设阈值时,通过三角化法对目标图像进行地图点恢复。
在一示例性实施例中,位姿确定模块1110可以用于将第一帧图像对应的位姿确定为预设位姿。
在一示例性实施例中,初始化模块1120可以用于根据重力向量对位姿进行重力方向调整。
上述装置中各模块的具体细节在方法部分实施方式中已经详细说明,未披露的细节内容可以参见方法部分的实施方式内容,因而不再赘述。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
本公开的示例性实施方式还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤,例如可以执行图3、图4和图10中任意一个或多个步骤。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
此外,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。
Claims (13)
1.一种视觉惯性系统初始化方法,其特征在于,包括:
在接收图像的过程中,针对所述图像进行逐帧计算,直至得到第一预设数量的位姿;
根据所述第一预设数量的位姿确定惯性测量单元对应的运动速度、重力向量和偏离率,以根据所述运动速度、所述重力向量和所述偏离率对视频惯性系统进行初始化;
其中,所述逐帧计算包括:
在接收到一帧当前帧图像时,提取所述当前帧图像的特征点和所述特征点对应的深度信息;
基于所述当前帧图像的所述特征点和所述深度信息与上一帧图像的所述特征点和所述深度信息确定所述当前帧图像对应的位姿;
将所述当前帧图像作为所述上一帧图像,并继续接收新的当前帧图像。
2.根据权利要求1所述的方法,其特征在于,在将所述当前帧图像作为所述上一帧图像之前,所述方法还包括:
在未成功确定所述当前帧图像对应的位姿时,丢弃所述当前帧图像,并保留所述上一帧图像;
在接收到新的当前帧图像时,基于所述新的当前帧图像和保留的所述上一帧图像计算所述新的当前帧图像对应的位姿。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在未成功确定所述当前帧图像对应的位姿时,统计未成功确定位姿的所述当前帧图像的数量;
在所述未成功确定位姿的所述当前帧图像的数量等于第二预设数量时,清空已经确定的所述位姿,并继续接收新的当前帧图像。
4.根据权利要求3所述的方法,其特征在于,在统计未成功确定位姿的所述当前帧图像的数量之后,所述方法还包括:
在成功确定所述当前帧图像对应的位姿时,重置所述未成功确定位姿的所述当前帧图像的数量。
5.根据权利要求1所述的方法,其特征在于,所述基于所述当前帧图像的所述特征点和所述深度信息与上一帧图像的所述特征点和所述深度信息确定所述当前帧图像对应的位姿,包括:
将所述当前帧图像的所述特征点与所述上一帧图像的特征点进行特征匹配,以获取匹配特征点;
基于所述上一帧图像的所述特征点对应的深度信息确定所述匹配特征点的地图点,并将所述地图点投影至所述当前帧图像,以确定所述当前帧图像对应的位姿。
6.根据权利要求1所述的方法,其特征在于,在所述根据所述第一预设数量的位姿确定惯性测量单元对应的运动速度、重力向量和偏离率之前,所述方法还包括:
对所述第一预设数量的位姿对应的目标图像进行地图点恢复,以获取恢复后的地图点;
根据所述地图点构建局部集束调整,以对所述位姿进行优化得到优化后的位姿。
7.根据权利要求6所述的方法,其特征在于,所述对所述第一预设数量的位姿对应的目标图像进行地图点恢复,包括:
在所述第一预设数量的位姿对应的目标图像之间查找共视匹配关系,以获取至少一对目标图像对;
针对每对所述目标图像对,利用所述目标图像对中所述目标图像的深度信息进行重投影,并计算重投影误差;
在所述重投影误差小于等于预设阈值时,利用所述深度信息对所述特征点进行反投影,以对所述目标图像进行地图点恢复。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在所述重投影误差大于所述预设阈值时,通过三角化法对所述目标图像进行地图点恢复。
9.根据权利要求1所述的方法,其特征在于,在接收到的所述当前帧图像为第一帧图像时,所述方法包括:
将所述第一帧图像对应的位姿确定为预设位姿。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述重力向量对所述位姿进行重力方向调整。
11.一种视觉惯性系统初始化装置,其特征在于,包括:
位姿确定模块,用于在接收图像的过程中,针对所述图像进行逐帧计算,直至得到第一预设数量的位姿;
初始化模块,用于根据所述第一预设数量的位姿确定惯性测量单元对应的运动速度、重力向量和偏离率,以根据所述运动速度、所述重力向量和所述偏离率对视频惯性系统进行初始化;
其中,所述逐帧计算包括:
在接收到一帧当前帧图像时,提取所述当前帧图像的特征点和所述特征点对应的深度信息;
基于所述当前帧图像的所述特征点和所述深度信息与上一帧图像的所述特征点和所述深度信息确定所述当前帧图像对应的位姿;
将所述当前帧图像作为所述上一帧图像,并继续接收新的当前帧图像。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10中任一项所述的方法。
13.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至10任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110190368.9A CN112819860B (zh) | 2021-02-18 | 2021-02-18 | 视觉惯性系统初始化方法及装置、介质和电子设备 |
PCT/CN2022/072711 WO2022174711A1 (zh) | 2021-02-18 | 2022-01-19 | 视觉惯性系统初始化方法及装置、介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110190368.9A CN112819860B (zh) | 2021-02-18 | 2021-02-18 | 视觉惯性系统初始化方法及装置、介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112819860A true CN112819860A (zh) | 2021-05-18 |
CN112819860B CN112819860B (zh) | 2023-12-22 |
Family
ID=75864182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110190368.9A Active CN112819860B (zh) | 2021-02-18 | 2021-02-18 | 视觉惯性系统初始化方法及装置、介质和电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112819860B (zh) |
WO (1) | WO2022174711A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113899364A (zh) * | 2021-09-29 | 2022-01-07 | 深圳市慧鲤科技有限公司 | 定位方法及装置、设备、存储介质 |
WO2022174711A1 (zh) * | 2021-02-18 | 2022-08-25 | Oppo广东移动通信有限公司 | 视觉惯性系统初始化方法及装置、介质和电子设备 |
WO2023279867A1 (zh) * | 2021-07-07 | 2023-01-12 | 北京字跳网络技术有限公司 | 同步定位与建图后端优化方法、装置及存储介质 |
WO2023005457A1 (zh) * | 2021-07-29 | 2023-02-02 | Oppo广东移动通信有限公司 | 位姿计算方法和装置、电子设备、可读存储介质 |
WO2024001849A1 (zh) * | 2022-06-28 | 2024-01-04 | 中兴通讯股份有限公司 | 视觉定位的位姿确定方法、装置以及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108489482A (zh) * | 2018-02-13 | 2018-09-04 | 视辰信息科技(上海)有限公司 | 视觉惯性里程计的实现方法及系统 |
CN110322500A (zh) * | 2019-06-28 | 2019-10-11 | Oppo广东移动通信有限公司 | 即时定位与地图构建的优化方法及装置、介质和电子设备 |
CN110335316A (zh) * | 2019-06-28 | 2019-10-15 | Oppo广东移动通信有限公司 | 基于深度信息的位姿确定方法、装置、介质与电子设备 |
US20200012335A1 (en) * | 2016-11-09 | 2020-01-09 | Stereolabs | Individual visual immersion device for a moving person with management of obstacles |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107747941B (zh) * | 2017-09-29 | 2020-05-15 | 歌尔股份有限公司 | 一种双目视觉定位方法、装置及系统 |
CN110057352B (zh) * | 2018-01-19 | 2021-07-16 | 北京图森智途科技有限公司 | 一种相机姿态角确定方法及装置 |
CN112284381B (zh) * | 2020-10-19 | 2022-09-13 | 北京华捷艾米科技有限公司 | 视觉惯性实时初始化对准方法及系统 |
CN112819860B (zh) * | 2021-02-18 | 2023-12-22 | Oppo广东移动通信有限公司 | 视觉惯性系统初始化方法及装置、介质和电子设备 |
-
2021
- 2021-02-18 CN CN202110190368.9A patent/CN112819860B/zh active Active
-
2022
- 2022-01-19 WO PCT/CN2022/072711 patent/WO2022174711A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200012335A1 (en) * | 2016-11-09 | 2020-01-09 | Stereolabs | Individual visual immersion device for a moving person with management of obstacles |
CN108489482A (zh) * | 2018-02-13 | 2018-09-04 | 视辰信息科技(上海)有限公司 | 视觉惯性里程计的实现方法及系统 |
CN110322500A (zh) * | 2019-06-28 | 2019-10-11 | Oppo广东移动通信有限公司 | 即时定位与地图构建的优化方法及装置、介质和电子设备 |
CN110335316A (zh) * | 2019-06-28 | 2019-10-15 | Oppo广东移动通信有限公司 | 基于深度信息的位姿确定方法、装置、介质与电子设备 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022174711A1 (zh) * | 2021-02-18 | 2022-08-25 | Oppo广东移动通信有限公司 | 视觉惯性系统初始化方法及装置、介质和电子设备 |
WO2023279867A1 (zh) * | 2021-07-07 | 2023-01-12 | 北京字跳网络技术有限公司 | 同步定位与建图后端优化方法、装置及存储介质 |
WO2023005457A1 (zh) * | 2021-07-29 | 2023-02-02 | Oppo广东移动通信有限公司 | 位姿计算方法和装置、电子设备、可读存储介质 |
CN113899364A (zh) * | 2021-09-29 | 2022-01-07 | 深圳市慧鲤科技有限公司 | 定位方法及装置、设备、存储介质 |
CN113899364B (zh) * | 2021-09-29 | 2022-12-27 | 深圳市慧鲤科技有限公司 | 定位方法及装置、设备、存储介质 |
WO2024001849A1 (zh) * | 2022-06-28 | 2024-01-04 | 中兴通讯股份有限公司 | 视觉定位的位姿确定方法、装置以及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2022174711A1 (zh) | 2022-08-25 |
CN112819860B (zh) | 2023-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107888828B (zh) | 空间定位方法及装置、电子设备、以及存储介质 | |
CN112819860B (zh) | 视觉惯性系统初始化方法及装置、介质和电子设备 | |
CN110322500B (zh) | 即时定位与地图构建的优化方法及装置、介质和电子设备 | |
CN108805917B (zh) | 空间定位的方法、介质、装置和计算设备 | |
CN107990899B (zh) | 一种基于slam的定位方法和系统 | |
CN110310326B (zh) | 一种视觉定位数据处理方法、装置、终端及计算机可读存储介质 | |
Tanskanen et al. | Live metric 3D reconstruction on mobile phones | |
CN109461208B (zh) | 三维地图处理方法、装置、介质和计算设备 | |
CN107748569B (zh) | 用于无人机的运动控制方法、装置及无人机系统 | |
CN108389264B (zh) | 坐标系统确定方法、装置、存储介质及电子设备 | |
CN110660098B (zh) | 基于单目视觉的定位方法和装置 | |
EP3872764B1 (en) | Method and apparatus for constructing map | |
CN110349212B (zh) | 即时定位与地图构建的优化方法及装置、介质和电子设备 | |
CN110296686B (zh) | 基于视觉的定位方法、装置及设备 | |
US11195297B2 (en) | Method and system for visual localization based on dual dome cameras | |
CN109767470B (zh) | 一种跟踪系统初始化方法及终端设备 | |
CN111609868A (zh) | 一种基于改进光流法的视觉惯性里程计方法 | |
CN111784776A (zh) | 视觉定位方法及装置、计算机可读介质和电子设备 | |
WO2023005457A1 (zh) | 位姿计算方法和装置、电子设备、可读存储介质 | |
CN112258647B (zh) | 地图重建方法及装置、计算机可读介质和电子设备 | |
CN115699096B (zh) | 跟踪增强现实设备 | |
CN112731503B (zh) | 一种基于前端紧耦合的位姿估计方法及系统 | |
CN109584289B (zh) | 用于对移动系统执行定位和地图创建的系统和方法 | |
CN114187509B (zh) | 对象定位方法、装置、电子设备以及存储介质 | |
CN116295406A (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 |