CN116576866B - 导航方法和设备 - Google Patents
导航方法和设备 Download PDFInfo
- Publication number
- CN116576866B CN116576866B CN202310856145.0A CN202310856145A CN116576866B CN 116576866 B CN116576866 B CN 116576866B CN 202310856145 A CN202310856145 A CN 202310856145A CN 116576866 B CN116576866 B CN 116576866B
- Authority
- CN
- China
- Prior art keywords
- frame
- pose
- information
- electronic device
- determining
- 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 88
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 24
- 230000006870 function Effects 0.000 claims description 88
- 230000004044 response Effects 0.000 claims description 14
- 230000000007 visual effect Effects 0.000 claims description 7
- 238000003384 imaging method Methods 0.000 claims description 3
- 238000012937 correction Methods 0.000 abstract description 46
- 238000004364 calculation method Methods 0.000 abstract description 9
- 238000005516 engineering process Methods 0.000 abstract description 8
- 230000008569 process Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 17
- 239000010410 layer Substances 0.000 description 17
- 238000012545 processing Methods 0.000 description 15
- 230000001133 acceleration Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000033001 locomotion Effects 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 8
- 238000005259 measurement Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 5
- 230000003190 augmentative effect Effects 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000035772 mutation Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 229920001651 Cyanoacrylate Polymers 0.000 description 1
- 239000004830 Super Glue Substances 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Navigation (AREA)
Abstract
本申请涉及终端技术领域,尤其涉及一种导航方法和设备。其中,所述导航方法包括:基于VIO算法确定当前帧的位姿信息以及状态信息后,检测当前帧是否为关键帧。在当前帧为关键帧的情况下,确定目标帧序列。然后,利用预采集的地图信息,对目标帧序列下第一电子设备的位姿信息以及状态信息进行修正。最后,根据目标帧序列下第一电子设备修正后的位姿信息以及状态信息,生成导航数据。上述技术方案通过对关键帧及其关联帧的位姿和状态进行修正,一方面,可以消除当前位姿误差,提升当前定位精度;另一方面,可消除状态量的累积误差,有助于提升后续各帧位姿计算精度,从而改善位姿修正带来的位姿跳变。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种导航方法和设备。
背景技术
增强现实 (Augmented Reality,AR)导航是一种基于AR技术的实景导航方式,可以将真实道路场景与虚拟指引标识融合显示,使导航场景更加直观。实现AR导航需要获取导航设备的实时位姿,而实时位姿存在累计漂移,因此需要定期对其进行修正。目前的技术方案中,对实时位姿的修正会带来位姿结果的跳变,这导致用户视角下,AR导航画面中虚拟指引标识的指引方向时常突变,用户体验不佳。
发明内容
本申请提供一种导航方法和设备,用于在消除实时位姿累计误差的同时,防止位姿修正带来的位姿信息跳变。
第一方面,本技术方案提供了一种导航方法,包括:基于视觉惯性里程计VIO算法,确定当前帧第一电子设备的位姿信息以及状态信息;检测当前帧是否为关键帧;响应于检测到当前帧为关键帧,根据当前帧及其关联帧确定目标帧序列;利用预采集的地图信息,对目标帧序列下第一电子设备的位姿信息以及状态信息进行修正,地图信息包括目标场景对应的各个第一图像数据以及各个第一图像数据对应的点云;根据目标帧序列下第一电子设备修正后的位姿信息以及状态信息,生成导航数据。
上述技术方案提供的导航方法,可基于预采集的离线地图信息,对实时采集到的关键帧及其关联帧的位姿和状态信息进行联合修正。其中,通过对位姿的修正,可以消除当前位姿误差,提升当前定位精度;同时,通过对状态信息的修正,可消除状态量的累积误差,有助于提升后续各帧位姿计算精度,从而改善位姿修正带来的位姿跳变。
结合第一方面,在第一方面的某些实现方式中,根据当前帧及其关联帧确定目标帧序列,包括:确定与当前帧时序相邻的若干历史关键帧;将若干历史关键帧以及当前帧确定为目标帧序列。
结合第一方面,在第一方面的某些实现方式中,上述方法还包括:检测当前帧是否对应有回环帧;响应于检测到当前帧对应有回环帧,将回环帧添加至目标帧序列。
在本实现方式中,可将当前一帧关键帧及其局部关键帧、回环帧确定为目标帧序列,从而在后续修正过程中,对目标帧序列对应的位姿以及状态信息进行联合修正。由于各关键帧以及回环帧包含的信息量较多,因此选取该帧进行位姿以及状态信息的修正,能够在有限计算量的基础上实现较好的修正效果。
结合第一方面,在第一方面的某些实现方式中,利用预采集的地图信息,对目标帧序列下第一电子设备的位姿信息以及状态信息进行修正,包括:基于预采集的地图信息,确定与目标帧序列匹配的参考位姿信息以及参考点云;利用参考位姿信息以及参考点云,对目标帧序列下第一电子设备的位姿信息以及状态信息进行修正。
在本实现方式中,可基于离线地图信息,确定出参考位姿信息以及参考点云,并同时利用这两类信息对实时得到的位姿和状态进行修正。基于两类信息提供不同的优化方向,可同时实现对位姿和状态的修正。
结合第一方面,在第一方面的某些实现方式中,基于预采集的地图信息,确定与目标帧序列匹配的参考位姿信息以及参考点云,包括:从预采集的地图信息中,查找与第N帧匹配的参考点云;基于与第N帧匹配的参考点云,利用多点透视成像PNP算法确定与第N帧匹配的参考位姿信息;其中,第N帧为所述目标帧序列中任意一帧。
结合第一方面,在第一方面的某些实现方式中,从预采集的地图信息中,查找与第N帧匹配的参考点云,包括:将第一电子设备在第N帧采集到的第二图像数据,与地图信息中各个第一图像数据进行特征比对;根据特征比对结果,从各个第一图像数据中确定出与第N帧匹配的参考图像数据;将地图信息中参考图像数据对应的点云,确定为与第N帧匹配的参考点云。
结合第一方面,在第一方面的某些实现方式中,利用参考位姿信息以及参考点云,对目标帧序列下第一电子设备的位姿信息以及状态信息进行修正,包括:利用参考位姿信息以及参考点云,生成至少一个约束函数;通过最小化至少一个约束函数,对目标帧序列下第一电子设备的位姿信息以及状态信息进行修正。
在本实现方式中,通过至少一个约束函数进行修正,可借助不同的约束函数提供不同的约束方向,更好地提升修正结果的准确性。
结合第一方面,在第一方面的某些实现方式中,至少一个约束函数包括重投影误差函数、绝对位姿误差函数以及相对位姿误差函数。
结合第一方面,在第一方面的某些实现方式中,通过最小化至少一个约束函数,对目标帧序列下第一电子设备的位姿信息以及状态信息进行修正之前,上述方法还包括:确定至少一个约束函数的约束权重。
结合第一方面,在第一方面的某些实现方式中,确定至少一个约束函数的约束权重,包括:根据参考点云的置信度,确定重投影误差函数的约束权重;根据参考位姿信息的置信度,确定绝对位姿误差函数的约束权重。
在本实现方式中,根据对应参数的置信度分别确定不同约束函数的约束权重,有利于提升修正结果的准确性。
结合第一方面,在第一方面的某些实现方式中,通过最小化至少一个约束函数,对目标帧序列下第一电子设备的位姿信息以及状态信息进行修正,包括:根据至少一个约束函数以及对应的约束权重,生成联合约束函数;通过最小化联合约束函数,对目标帧序列下第一电子设备的位姿信息以及状态信息进行修正。
结合第一方面,在第一方面的某些实现方式中,上述方法还包括:响应于检测到当前帧不为关键帧,根据当前帧第一电子设备的位姿信息以及状态信息,生成导航数据。
第二方面,本技术方案提供了一种电子设备,包括:确定单元,用于基于视觉惯性里程计VIO算法,确定当前帧第一电子设备的位姿信息以及状态信息;检测单元,用于检测当前帧是否为关键帧;响应单元,用于响应于检测到当前帧为关键帧,根据当前帧及其关联帧确定目标帧序列;修正单元,用于利用预采集的地图信息,对目标帧序列下第一电子设备的位姿信息以及状态信息进行修正,地图信息包括目标场景对应的各个第一图像数据以及各个第一图像数据对应的点云;生成单元,用于根据目标帧序列下第一电子设备修正后的位姿信息以及状态信息,生成导航数据。
上述技术方案提供的电子设备,可基于预采集的离线地图信息,对实时采集到的关键帧及其关联帧的位姿和状态信息进行联合修正。其中,通过对位姿的修正,可以消除当前位姿误差,提升当前定位精度;同时,通过对状态信息的修正,可消除状态量的累积误差,有助于提升后续各帧位姿计算精度,从而改善位姿修正带来的位姿跳变。
第三方面,本技术方案提供了一种电子设备,包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述设备执行时,使得所述设备执行所述第一方面或者第一方面的任一可能的实现方式中的方法。
第四方面,本技术方案提供了一种电子设备,所述设备包括存储介质和中央处理器,所述存储介质可以是非易失性存储介质,所述存储介质中存储有计算机可执行程序,所述中央处理器与所述非易失性存储介质连接,并执行所述计算机可执行程序以实现所述第一方面或者第一方面的任一可能的实现方式中的方法。
第五方面,本技术方案提供了一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行第一方面或第一方面的任一可能的实现方式中的方法。
可选的,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面或第一方面的任一可能的实现方式中的方法。
第六方面,本技术方案提供了一种计算机可读存储介质,所述计算机可读介质存储用于设备执行的程序代码,所述程序代码包括用于执行第一方面或者第一方面的任一可能的实现方式中的方法的指令。
附图说明
图1是本申请实施例提供的导航界面的一个示意性场景图;
图2是本申请实施例提供的电子设备的一种结构示意图;
图3是本申请实施例提供的电子设备的一种软件结构框图;
图4是本申请实施例提供的导航方法的一个示意性流程图;
图5是本申请实施例提供的导航方法的另一个示意性流程图;
图6是本申请实施例提供的导航方法的另一个示意性流程图;
图7是本申请实施例提供的导航方法的另一个示意性流程图;
图8是本申请实施例提供的导航方法的另一个示意性流程图;
图9是本申请实施例提供的电子设备的一种结构示意图。
具体实施方式
在对本申请实施例进行说明之前,首先对相关场景和技术进行介绍。
同时定位与建图(Simultaneous Localization And Mapping,SLAM)技术可用于在电子设备运动过程中,通过传感器采集环境信息,从而逐渐构建起未知环境的地图,并获得自身在未知环境中的相对位置。SLAM技术的定位精度高于基于全球导航卫星系统(global navigation satellite system,GNSS)的定位精度,常用于对定位精度要求较高的导航场景,如室内导航、自动驾驶、自动泊车、无人机等。
视觉惯性里程计(Visual-Inertial Odometry,VIO)算法是SLAM技术的一种,VIO算法的实现依托于摄像头和惯性测量单元(Inertial Measurement Unit,IMU)。其中,摄像头可用于采集周围环境的图像数据;IMU本身由陀螺仪和加速度计组成,可分别用于测量设备自身的角速度和加速度。VIO算法可对测得的角速度和加速度进行积分,得到设备在空间中的旋转量和平移量,并与摄像头采集的图像数据进行融合,得到设备的实时位姿。
但是,受噪声因素的影响,IMU数据的积分结果存在累计漂移,尤其在长距离导航场景中,由于误差的累积,漂移现象更为明显,导致位姿计算结果存在误差,不利于精确定位和导航。
为减小误差,可预先生成该场景的高精地图,在VIO定位过程中,利用高精地图提供的位姿信息对VIO输出的实时位姿进行修正。但是,高精地图数据量庞大,且利用高精地图测算位姿信息的流程耗时较多,因此基于高精地图的修正只能是低频修正,而无法对每一帧位姿信息都进行修正。这导致位姿误差在修正周期内累积,每次对位姿进行修正后,经常出现明显的位姿跳变,尤其是在AR导航场景中,用户可明显观察到AR导航画面中虚拟指引标识的突变,用户体验不佳。
为便于理解,图1给出了AR导航场景下导航界面的示意图,如图1所示,位姿修正前,AR导航画面中虚拟指引标识所指方向的目标物为护栏;位姿修正后,AR导航画面中虚拟指引标识所指方向的目标物为护栏间的人行道。可见,位姿低频修正导致的位姿跳变一方面影响了导航精度,另一方面用户观感较差。
为解决上述问题,提出本申请。
本申请可利用预先采集的高精地图,对采集到的最新关键帧及其关联帧的位姿信息进行联合修正,并同步修正关键帧及其关联帧的速度、加速度偏移、陀螺仪偏移、VIO系统协方差等状态信息,进而基于修正后的数据实现导航。基于本申请提供的方案,同时对关键帧及其关联帧的位姿和状态进行修正,一方面能够消除当前帧位姿漂移,另一方面有助于提高下一帧位姿解算结果的精确度,从而降低甚至消除位姿跳变,提升用户体验。
下面将结合附图,对本申请中的技术方案进行描述。
本申请实施例提供的导航方法可应用于第一电子设备,第一电子设备例如可以是,手机、平板电脑、笔记本电脑、智能可穿戴设备、智能机器人、增强现实(augmentedreality,AR)/虚拟现实(virtual reality,VR)设备、车载设备、自动驾驶车辆、无人机、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等,本申请实施例对电子设备的具体类型不作任何限制。
示例性的,图2示出了本申请实施例提供的第一电子设备100的一种结构示意图。第一电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,传感器模块180,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等,可选地,上述麦克风170C的数量为多个。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对第一电子设备100的具体限定。在本申请另一些实施例中,第一电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),协处理器(coprocessor,CP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是第一电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现第一电子设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于第一电子设备100与外围设备之间传输数据。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对第一电子设备100的结构限定。在本申请另一些实施例中,第一电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
无线通信模块160可以提供应用在第一电子设备100上的包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。所述GNSS可以包括全球卫星定位系统(global positioning system ,GPS),全球导航卫星系统(global navigationsatellite system,GLONASS),北斗卫星导航系统(beidou navigation satellitesystem,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,第一电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得第一电子设备100可以通过无线通信技术与网络以及其他设备通信。
第一电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,第一电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
第一电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP 用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,第一电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如导航功能等)等。存储数据区可存储第一电子设备100使用过程中所创建的数据(比如传感器数据,状态数据等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行第一电子设备100的各种功能应用以及数据处理。
陀螺仪传感器180B可以用于确定第一电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定第一电子设备100围绕三个轴(即,x,y和z轴)的角速度。
加速度传感器180E可检测第一电子设备100在各个方向上(一般为三轴)加速度的大小。当第一电子设备100静止时可检测出重力的大小及方向。
本申请在实现导航方法的过程中,陀螺仪传感器180B以及加速度传感器180E可用于对第一电子设备100本身的姿态、运动状态、以及作用于第一电子设备100的动作等进行识别。例如,基于陀螺仪传感器180B确定第一电子设备100的姿态信息,基于加速度传感器180E确定第一电子设备100的运动信息等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。
距离传感器180F、接近光传感器180G,均可用于测量距离,具体可以通过红外或激光测量距离。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K可以是电容式触摸传感器,用于根据容值变化信息检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。在另一些实施例中,触摸传感器180K也可以设置于第一电子设备100的表面,与显示屏194所处的位置不同。
第一电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的安卓(Android)系统为例,示例性说明第一电子设备100的软件结构。
图3是本申请实施例提供的第一电子设备100的一种软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。应用程序层可以包括一系列应用程序包。
如图3所示,应用程序包可以包括相机、地图、导航等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统、资源管理器,通知管理器、电话管理器等。
窗口管理器用于管理窗口程序。例如窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
视图系统包括可视控件,例如导航界面中显示虚拟指引标识的控件,显示文字的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括导航应用的显示界面,可以包括显示文字的视图以及显示图片的视图。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如: MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
为了便于理解,本申请以下实施例将以具有图2和图3所示结构的第一电子设备为例,结合附图和应用场景,对本申请实施例提供的导航方法进行具体阐述。
图4是本申请实施例提供的导航方法的一个示意性流程图,如图4所示,本申请实施例提供的导航方法包括:
101,基于VIO算法,确定当前帧第一电子设备的位姿信息以及状态信息。
本申请实施例中,基于VIO算法的基本原理,第一电子设备可在运动过程中,通过摄像头周期性采集周围环境的图像数据,以及通过惯性测量单元周期性采集自身的惯性测量数据。其中,惯性测量单元可包含陀螺仪以及加速度传感器,采集到的惯性测量数据可以包括第一电子设备的角速度以及加速度。
响应于当前帧采集到的图像数据以及惯性测量数据,可基于VIO算法进行数据融合,得到第一电子设备在当前帧的位姿信息以及状态信息。其中,位姿信息包括第一电子设备的位置信息和姿态信息,能够表征用户当前所在位置以及运动方向。状态信息可以包括第一电子设备的速度、加速度传感器偏移、陀螺仪偏移、VIO系统协方差等。当前帧状态信息的精确程度将影响后续帧位姿信息的计算精度,当前帧状态信息累积的误差越大,则下一帧位姿计算结果的精度越低。
本申请实施例中,基于VIO算法计算第一电子设备位姿信息以及状态信息的具体方法可以是,基于优化的orb-slam方式、vins-mono方式,或基于卡尔曼滤波的open-vins方式等,具体计算过程可参考现有技术,本申请对此不做限制。
102,检测当前帧是否为关键帧。如果是关键帧,执行步骤103;否则,执行步骤106。
103,响应于检测到当前帧为关键帧,确定目标帧序列。
104,利用预采集的地图信息,对目标帧序列下第一电子设备的位姿信息以及状态信息进行修正。
105,根据目标帧序列下第一电子设备修正后的位姿信息以及状态信息,生成导航数据。
106,响应于检测到当前帧不为关键帧,根据当前帧第一电子设备的位姿信息以及状态信息,生成导航数据。
如前所述,由于IMU数据的积分结果存在累计漂移,因此,可采用预先采集的地图信息,同时对VIO算法输出的位姿信息以及状态信息进行修正。本申请实施例中,可预先采集所处场景的地图信息。地图信息可包括所处场景各个点位各个方向的多个第一图像数据,以及基于第一图像数据生成的,该场景的三维点云数据。
应当说明的是,对VIO算法输出的位姿信息以及状态信息进行修正的过程涉及大量算法,较为耗时,因此,为保证第一电子设备导航过程的流畅性,本申请实施例中,可仅对第一电子设备采集到的关键帧及其关联帧对应的位姿信息以及状态信息进行修正。其中,关键帧指的是局部若干帧中能够更好地表征局部信息的帧,相较于一般帧,关键帧之间存在较少的冗余信息。
基于上述说明,本申请实施例中,对于任意一帧,在得到该帧对应的位姿信息以及状态信息之后,可检测该帧是否为关键帧。
一种可能的实现方式中,检测当前帧是否为关键帧的方法例如可以是,检测当前帧与上一关键帧之间的帧数是否超过了帧数阈值。在确定当前帧与上一关键帧之间的帧数已超过帧数阈值的情况下,认为当前帧与上一关键帧之间间隔了足够多的帧数,此时,可确定当前帧为关键帧。
或者,另一种可能的实现方式中,检测当前帧是否为关键帧的方法还可以是,检测当前帧与上一关键帧之间第一电子设备的运动幅度是否超过了幅度阈值。运动幅度例如可以包括平移量、旋转量中任意一个或多个。在确定当前帧与上一关键帧之间第一电子设备的运动幅度已超过幅度阈值的情况下,认为相比于上一关键帧,当前帧第一电子设备采集的画面有较大概率已发生更新,此时,可确定当前帧为关键帧。
或者,检测当前帧是否为关键帧的方法还可以是,检测当前帧与上一关键帧之间的共视特征点数是否超过了点数阈值。在确定当前帧与上一关键帧之间的共视特征点数已超过点数阈值的情况下,认为当前帧与上一关键帧采集的图像对应不同的场景,此时,可确定当前帧为关键帧。
进一步的,本申请实施例中,在确定当前帧不为关键帧的情况下,可不必执行修正流程,而是直接根据当前帧第一电子设备的位姿信息以及状态信息,生成导航数据进行导航。
相反的,在确定当前帧为关键帧的情况下,本申请实施例中,可进一步确定当前帧的关联帧,并将当前帧及其关联帧选定为目标帧序列。
一种可能的实现方式中,目标帧序列可包含当前帧、与当前帧时序相邻的若干历史关键帧。另一种可能的实现方式中,在上述基础上,目标帧序列中还可包含当前帧的回环帧。此种实现方式中,确定当前帧为关键帧之后,可基于已采集的历史帧对当前帧进行回环检测,确定是否存在当前帧的回环帧。若当前帧存在回环帧,则选定当前帧及其回环帧、以及与当前帧时序相邻的若干历史关键帧为目标帧序列。
本申请实施例中,确定目标帧序列后,可启动对目标帧序列位姿信息以及状态信息的修正流程,对当前帧及其关联帧的位姿信息以及状态信息进行优化。从而,可在消除当前帧累计误差的同时,优化当前帧及其关联帧的状态信息,有助于提升后续帧对应的位姿信息以及状态信息的精确度,从而缓解位姿跳变。
下面进行具体说明。
图5是本申请实施例提供的导航方法的另一个示意性流程图。如图5所示,本申请实施例中,上述步骤104具体可以包括:
1041,基于预采集的地图信息,确定与目标帧序列匹配的参考位姿信息以及参考点云。
对于目标帧序列中的任意一帧,其对应的方法流程一致,为便于表述和理解,本申请实施例仅以其中任意一帧为例,对参考位姿信息以及参考点云的确定方法进行说明。下面将该任意一帧表述为第N帧。
首先,可从预采集的地图信息中,查找与第N帧匹配的参考点云。
具体的,可将第一电子设备在第N帧实时采集到的第二图像数据,与地图信息中预采集的各个第一图像数据进行特征比对。进而,可根据特征比对结果,从各个第一图像数据中确定出与第N帧匹配的参考图像数据。
如图6所示,本申请实施例中,上述特征比对流程具体可以包括图像检索、特征提取以及特征匹配。
其中,图像检索流程可以是,基于词袋检索、(Net Vector of Local AggregatedDescriptors,NetVLAD)等方法,从预采集的各个第一图像数据中,检索与第N帧采集的第二图像数据匹配的图像。进而,特征提取流程可以是,分别对检索到的图像以及第N帧采集到的第二图像数据进行特征提取。提取的特征类型可根据地图信息构建过程中所提取的特征类型确定,例如可以是SIFT、superpoint。最后,特征匹配流程为,将检索到的图像的图像特征与第N帧的第二图像数据的图像特征进行匹配,并确定出与第N帧匹配的参考图像数据。具体的匹配方法例如可以是superGlue等,本申请对此不做限制。
通过上述流程,可获得第N帧采集的第二图像数据与地图信息中参考图像数据的2D-2D特征点的匹配关系。地图信息中各二维图像分别还对应有三维点云数据,基于此,进一步的,可基于参考图像数据与点云数据的2D-3D匹配关系,将参考图像数据对应的点云,确定为与第N帧匹配的参考点云。
然后,可基于与第N帧匹配的参考点云,利用多点透视成像(Perspective-n-Point,PNP)算法确定与第N帧匹配的参考位姿信息。
需要说明的是,预采集的地图信息数据量庞大,且上述参考位姿信息以及参考点云确定流程的运算复杂度较高,耗时较长。因此,在第一电子设备内部存储及运算资源有限情况下,本申请实施例一种实现方式中,上述步骤1041还可执行于第二电子设备,第二电子设备可以是云端服务器。具体的,预采集的地图信息可预存在第二电子设备之中。第一电子设备可将第N帧采集到的第二图像数据发送至第二电子设备。进而,第二电子设备可读取内部预存的地图信息,并基于该地图信息,确定匹配的参考位姿信息以及参考点云。然后,第二电子设备可将确定出的参考位姿信息以及参考点云下发回第一电子设备,由第一电子设备继续执行后续修正流程。
1042,利用参考位姿信息以及参考点云,对目标帧序列下第一电子设备的位姿信息以及状态信息进行修正。
由于预先采集的地图信息具备更高精度,因此,相较于VIO输出的位姿信息以及状态信息,基于地图信息确定出的各帧对应的参考位姿信息以及参考点云具备更高的置信度。因此,本申请实施例中,可利用参考位姿信息以及参考点云,对目标帧序列下第一电子设备的位姿信息以及状态信息进行修正。
下面对具体的修正方法进行说明。
首先,可利用参考位姿信息以及参考点云,生成至少一个约束函数。
本申请实施例中,至少一个约束函数可包括重投影误差函数(ReprojectionError,RE)、绝对位姿误差函数(Absolute Trajectory Error,ATE)以及相对位姿误差函数(Relative Pose Error,RPE)。
其中,重投影误差函数用于,将基于地图信息得到的参考点云投影到当前图像数据对应的坐标系下,进而,构建投影点与当前采集的图像数据特征点之间的误差。绝对位姿误差函数用于,构建基于地图信息得到的参考位姿信息与VIO输出的位姿信息之间的误差。相对位姿误差函数用于,基于IMU数据预积分计算的各个关键帧之间的位姿差,与VIO输出的各个关键帧之间的位姿差,构建位姿误差。
在另外的实现方式中,上述至少一个约束函数还可包括更多的函数类型。
进一步的,可对上述至少一个约束函数进行最小化,实现对目标帧序列下第一电子设备的位姿信息以及状态信息的修正。
一种可能的实现方式中,可基于上述至少一个约束函数构建一个联合约束函数。然后,可通过最小化该联合约束函数,来实现对位姿信息以及状态信息的修正。
或者,另外的实现方式中,还可以分别对上述至少一个约束函数进行最小化,从而实现对位姿信息以及状态信息的修正。
本申请实施例中,当目标帧序列中包含有当前帧的回环帧时,基于回环帧的特性,其精确程度较高,因此,在对上述约束函数的最小化过程中,可将回环帧的位姿信息作为常量,并据此对其余帧的位姿信息进行修正。
为进一步提升修正精度,还可分别为上述至少一个约束函数设置约束权重,并基于约束权重生成上述联合约束函数。
具体的,可根据参考点云的置信度,确定重投影误差函数的约束权重。以及,根据参考位姿信息的置信度,确定绝对位姿误差函数的约束权重。
具体的,参考点云的置信度可根据参考点云确定流程中,当前第二图像数据与参考图像数据特征点的匹配程度确定。特征点匹配程度越高,说明参考图像与当前采集的第二图像数据的一致性越高,那么,与参考图片匹配的参考点云的置信度越高。参考点云的置信度越高,则对应的重投影误差函数的约束权重越大。
参考位姿信息的置信度可根据地图信息构建流程中,所采集的各个点云数据的精确度确定。该精确度可在建立地图信息时一并存储。精确度越高,则对应得到的参考位姿信息的置信度越高。参考位姿信息的置信度越高,则对应的绝对位姿误差函数的约束权重越大。
对于相对误差函数对应的约束权重,可在上述两种约束函数的权重确定之后灵活设置。
通过为不同的约束函数设置不同的优化权重,可进一步提升对目标帧序列位姿信息已经状态信息修正结果的准确性。
对目标帧序列的位姿信息以及状态信息修正完成之后,可基于修正后的位姿信息以及状态信息,生成导航数据进行导航。同时,可继续基于修正后的位姿信息以及状态信息,对下一帧的位姿信息以及状态信息进行估计。由于目标帧序列的状态信息得到了修正,因此,下一帧的位姿信息的精确程度能够随目标帧序列状态信息的修正得到同步提升。那么,当再次检测到关键帧并再次执行修正流程后,位姿结果的修正尺度将被降低,位姿跳变的状况将得到优化。
上述实现方式中,可基于预先生成的高精地图信息,对VIO输出的关键帧及其关联帧的位姿信息以及状态信息进行同步修正。基于对位姿信息的修正,可以优化VIO输出位姿的精确度,基于对状态信息的修正,可有助于一并提升后续各帧输出位姿的精确度,从而减小位姿偏移程度,消除位姿修正带来的位姿跳变,避免用户视角导航指引信息的突变,提升用户体验。
本申请另一实施例中,对上述地图信息中各个第一图像数据的获取流程,以及三维点云地图的创建过程进行简要说明。
图7是本申请实施例提供的导航方法的另一个示意性流程图。如图7所示,地图信息的创建流程可包括:
201,采集目标场景的多个第一图像数据。
202,基于运动恢复结构(structure from motion,SFM)算法,建立多个第一图像数据对应的三维点云地图。
本申请实施例中,目标场景可以是任意一个存在导航需求的场景,如地下停车场、大型商场等。可基于图像采集设备,如手机、全景相机等,采集目标场景各采集点不同角度的图像数据。进而,可基于SFM算法,对采集到的图像数据进行三维重建,得到目标场景对应的三维点云地图。
如图8所示,SFM算法的基本流程可包括:特征提取、特征匹配、增量重建以及光束平差法(Bundle Adjustment,BA)优化四个步骤。下面分别进行说明。
首先,特征提取指的是,分别对目标场景采集到的各个图像数据提取图像特征,具体的特征类型例如可以是SIFT、ORB、SuperPoint等。
特征匹配流程包括,对各个图像数据分别进行两两匹配。针对视频序列,可通过顺序匹配、词袋匹配等方式完成特征匹配。
增量重建流程主要包括初始化以及增量注册两部分。其中,初始化指定是从采集到的各个图像数据中挑选出两帧目标图像,并通过对极几何(Epipolar Geometry),估计两帧之间的相对位姿,基于三角化(Triangulation)确定特征点在三维空间中的坐标,得到初始点云。增量注册指的是,在初始化的基础上,从其余图像数据进一步选取包含初始点云的图像,通过点云和图像的3D-2D匹配关系,用PnP方法计算其位姿,并基于三角化确定更多的点云,重复增量注册的过程直到所有图像数据均完成注册。
BA优化指的是,对得到的点云数据构建重投影误差,并通过最小化重投影误差,优化相机位姿和三维点云坐标。
通过上述流程,可获取到所需场景的全局图像数据,并构建起所需场景对应的三维点云地图。所需场景的全局图像数据以及三维点云地图可离线存储,并用于在上述实时导航流程中,对VIO算法输出的位姿信息以及状态信息进行修正。
可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的步骤,本申请能够以硬件或者硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能。
本实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或者两个以上的功能集成在一个处理模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图9示出了上述实施例中涉及的电子设备的一种可能的组成示意图,如图9所示,该电子设备600可以包括:确定单元601、检测单元602、响应单元603、修正单元604以及生成单元605,其中:
确定单元601,用于基于视觉惯性里程计VIO算法,确定当前帧第一电子设备的位姿信息以及状态信息。
检测单元602,用于检测当前帧是否为关键帧。
响应单元603,用于响应于检测到当前帧为关键帧,根据当前帧及其关联帧确定目标帧序列。
修正单元604,用于利用预采集的地图信息,对目标帧序列下第一电子设备的位姿信息以及状态信息进行修正,地图信息包括目标场景对应的各个第一图像数据以及各个第一图像数据对应的点云。
生成单元605,用于根据目标帧序列下第一电子设备修正后的位姿信息以及状态信息,生成导航数据。
在一种可能的实现方式中,确定单元601具体用于,确定与当前帧时序相邻的若干历史关键帧;将若干历史关键帧以及当前帧确定为目标帧序列。
在一种可能的实现方式中,响应单元603还用于,检测当前帧是否对应有回环帧;响应于检测到当前帧对应有回环帧,将回环帧添加至目标帧序列。
在一种可能的实现方式中,修正单元604具体用于,基于预采集的地图信息,确定与目标帧序列匹配的参考位姿信息以及参考点云;利用参考位姿信息以及参考点云,对目标帧序列下第一电子设备的位姿信息以及状态信息进行修正。
在一种可能的实现方式中,修正单元604具体用于,从预采集的地图信息中,查找与第N帧匹配的参考点云;基于与第N帧匹配的参考点云,利用多点透视成像PNP算法确定与第N帧匹配的参考位姿信息;其中,第N帧为所述目标帧序列中任意一帧。
在一种可能的实现方式中,修正单元604具体用于,将第一电子设备在第N帧采集到的第二图像数据,与地图信息中各个第一图像数据进行特征比对;根据特征比对结果,从各个第一图像数据中确定出与第N帧匹配的参考图像数据;将地图信息中参考图像数据对应的点云,确定为与第N帧匹配的参考点云。
在一种可能的实现方式中,修正单元604具体用于,利用参考位姿信息以及参考点云,生成至少一个约束函数;通过最小化至少一个约束函数,对目标帧序列下第一电子设备的位姿信息以及状态信息进行修正。
在一种可能的实现方式中,至少一个约束函数包括重投影误差函数、绝对位姿误差函数以及相对位姿误差函数。
在一种可能的实现方式中,修正单元604还用于,确定至少一个约束函数的约束权重。
在一种可能的实现方式中,修正单元604具体用于,根据参考点云的置信度,确定重投影误差函数的约束权重;根据参考位姿信息的置信度,确定绝对位姿误差函数的约束权重。
在一种可能的实现方式中,修正单元604具体用于,根据至少一个约束函数以及对应的约束权重,生成联合约束函数;通过最小化联合约束函数,对目标帧序列下第一电子设备的位姿信息以及状态信息进行修正。
在一种可能的实现方式中,响应单元603响应于检测到当前帧不为关键帧,生成单元605还用于,根据当前帧第一电子设备的位姿信息以及状态信息,生成导航数据。
上述电子设备可基于预采集的离线地图信息,对实时采集到的关键帧及其关联帧的位姿和状态信息进行联合修正。其中,通过对位姿的修正,可以消除当前位姿误差,提升当前定位精度;同时,通过对状态信息的修正,可消除状态量的累积误差,有助于提升后续各帧位姿计算精度,从而改善位姿修正带来的位姿跳变。
应理解,这里的电子设备以功能单元的形式体现。这里的术语“单元”可以通过软件和/或硬件形式实现,对此不作具体限定。例如,“单元”可以是实现上述功能的软件程序、硬件电路或二者结合。所述硬件电路可能包括应用特有集成电路(application specificintegrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。
本申请还提供了一种电子设备,所述设备包括存储介质和中央处理器,所述存储介质可以是非易失性存储介质,所述存储介质中存储有计算机可执行程序,所述中央处理器与所述非易失性存储介质连接,并执行所述计算机可执行程序以实现上述导航方法。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行本申请导航方法的各个步骤。
本申请还提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机或任一至少一种处理器上运行时,使得计算机执行本申请导航方法的各个步骤。
本申请还提供一种芯片,包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,以执行本申请提供的导航方法执行的相应操作和/或流程。
可选地,该芯片还包括存储器,该存储器与该处理器通过电路或电线与存储器连接,处理器用于读取并执行该存储器中的计算机程序。进一步可选地,该芯片还包括通信接口,处理器与该通信接口连接。通信接口用于接收需要处理的数据和/或信息,处理器从该通信接口获取该数据和/或信息,并对该数据和/或信息进行处理。该通信接口可以是输入输出接口。
存储器可以是只读存储器(read-only memory,ROM)、可存储静态信息和指令的其它类型的静态存储设备、随机存取存储器(random access memory,RAM)或可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者还可以是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质等。
本申请实施例中,“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A、同时存在A和B、单独存在B的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a, b, c, a-b, a-c, b-c,或a-b-c,其中a, b, c可以是单个,也可以是多个。
本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。本申请的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种导航方法,其特征在于,应用于第一电子设备,所述方法包括:
基于视觉惯性里程计VIO算法,确定当前帧所述第一电子设备的位姿信息以及状态信息;
检测所述当前帧是否为关键帧;
响应于检测到所述当前帧为关键帧,根据所述当前帧以及所述当前帧的关联帧确定目标帧序列;
基于预采集的地图信息,确定与所述目标帧序列匹配的参考位姿信息以及参考点云;所述地图信息包括目标场景对应的各个第一图像数据以及所述各个第一图像数据对应的点云;
利用所述参考位姿信息以及所述参考点云,对所述目标帧序列下所述第一电子设备的位姿信息以及状态信息进行修正;
根据所述目标帧序列下所述第一电子设备修正后的位姿信息以及状态信息,生成导航数据。
2.根据权利要求1所述的方法,其特征在于,根据所述当前帧以及所述当前帧的关联帧确定目标帧序列,包括:
确定与所述当前帧时序相邻的若干历史关键帧;
将所述若干历史关键帧以及所述当前帧确定为目标帧序列。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
检测所述当前帧是否对应有回环帧;
响应于检测到所述当前帧对应有回环帧,将所述回环帧添加至所述目标帧序列。
4.根据权利要求1所述的方法,其特征在于,基于预采集的地图信息,确定与所述目标帧序列匹配的参考位姿信息以及参考点云,包括:
从预采集的地图信息中,查找与第N帧匹配的参考点云;
基于与所述第N帧匹配的参考点云,利用多点透视成像PNP算法确定与所述第N帧匹配的参考位姿信息;
其中,所述第N帧为所述目标帧序列中任意一帧。
5.根据权利要求4所述的方法,其特征在于,从预采集的地图信息中,查找与第N帧匹配的参考点云,包括:
将所述第一电子设备在第N帧采集到的第二图像数据,与所述地图信息中所述各个第一图像数据进行特征比对;
根据特征比对结果,从所述各个第一图像数据中确定出与所述第N帧匹配的参考图像数据;
将所述地图信息中所述参考图像数据对应的点云,确定为与所述第N帧匹配的参考点云。
6.根据权利要求1所述的方法,其特征在于,利用所述参考位姿信息以及所述参考点云,对所述目标帧序列下所述第一电子设备的位姿信息以及状态信息进行修正,包括:
利用所述参考位姿信息以及所述参考点云,生成至少一个约束函数;
通过最小化所述至少一个约束函数,对所述目标帧序列下所述第一电子设备的位姿信息以及状态信息进行修正。
7.根据权利要求6所述的方法,其特征在于,所述至少一个约束函数包括重投影误差函数、绝对位姿误差函数以及相对位姿误差函数。
8.根据权利要求7所述的方法,其特征在于,通过最小化所述至少一个约束函数,对所述目标帧序列下所述第一电子设备的位姿信息以及状态信息进行修正之前,所述方法还包括:
确定所述至少一个约束函数的约束权重。
9.根据权利要求8所述的方法,其特征在于,确定所述至少一个约束函数的约束权重,包括:
根据所述参考点云的置信度,确定所述重投影误差函数的约束权重;
根据所述参考位姿信息的置信度,确定所述绝对位姿误差函数的约束权重。
10.根据权利要求9所述的方法,其特征在于,通过最小化所述至少一个约束函数,对所述目标帧序列下所述第一电子设备的位姿信息以及状态信息进行修正,包括:
根据所述至少一个约束函数以及对应的约束权重,生成联合约束函数;
通过最小化所述联合约束函数,对所述目标帧序列下所述第一电子设备的位姿信息以及状态信息进行修正。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于检测到所述当前帧不为关键帧,根据当前帧所述第一电子设备的位姿信息以及状态信息,生成导航数据。
12.一种电子设备,其特征在于,所述电子设备包括用于存储程序指令的存储器和用于执行所述程序指令的处理器,其中,当所述程序指令被该处理器执行时,触发所述电子设备执行如上述权利要求1-11中任一项所述的方法。
13.一种芯片,其特征在于,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行如上述权利要求1-11中任一项所述的方法。
14.一种存储介质,其特征在于,所述存储介质中存储有程序指令,当其在电子设备上运行时,使得所述电子设备执行如权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310856145.0A CN116576866B (zh) | 2023-07-13 | 2023-07-13 | 导航方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310856145.0A CN116576866B (zh) | 2023-07-13 | 2023-07-13 | 导航方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116576866A CN116576866A (zh) | 2023-08-11 |
CN116576866B true CN116576866B (zh) | 2023-10-27 |
Family
ID=87534546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310856145.0A Active CN116576866B (zh) | 2023-07-13 | 2023-07-13 | 导航方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116576866B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108051002A (zh) * | 2017-12-04 | 2018-05-18 | 上海文什数据科技有限公司 | 基于惯性测量辅助视觉的运输车空间定位方法及系统 |
CN109405850A (zh) * | 2018-10-31 | 2019-03-01 | 张维玲 | 一种基于视觉和先验知识的惯性导航定位校准方法及其系统 |
CN110501017A (zh) * | 2019-08-12 | 2019-11-26 | 华南理工大学 | 一种基于orb_slam2的移动机器人导航地图生成方法 |
CN110689562A (zh) * | 2019-09-26 | 2020-01-14 | 深圳市唯特视科技有限公司 | 一种基于生成对抗网络的轨迹回环检测优化方法 |
WO2022110776A1 (zh) * | 2020-11-30 | 2022-06-02 | 浙江商汤科技开发有限公司 | 定位方法及装置、电子设备、存储介质、计算机程序产品、计算机程序 |
WO2023065342A1 (zh) * | 2021-10-22 | 2023-04-27 | 华为技术有限公司 | 车辆及其定位方法、装置、设备、计算机可读存储介质 |
-
2023
- 2023-07-13 CN CN202310856145.0A patent/CN116576866B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108051002A (zh) * | 2017-12-04 | 2018-05-18 | 上海文什数据科技有限公司 | 基于惯性测量辅助视觉的运输车空间定位方法及系统 |
CN109405850A (zh) * | 2018-10-31 | 2019-03-01 | 张维玲 | 一种基于视觉和先验知识的惯性导航定位校准方法及其系统 |
CN110501017A (zh) * | 2019-08-12 | 2019-11-26 | 华南理工大学 | 一种基于orb_slam2的移动机器人导航地图生成方法 |
CN110689562A (zh) * | 2019-09-26 | 2020-01-14 | 深圳市唯特视科技有限公司 | 一种基于生成对抗网络的轨迹回环检测优化方法 |
WO2022110776A1 (zh) * | 2020-11-30 | 2022-06-02 | 浙江商汤科技开发有限公司 | 定位方法及装置、电子设备、存储介质、计算机程序产品、计算机程序 |
WO2023065342A1 (zh) * | 2021-10-22 | 2023-04-27 | 华为技术有限公司 | 车辆及其定位方法、装置、设备、计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116576866A (zh) | 2023-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109084746B (zh) | 用于具有辅助传感器的自主平台引导系统的单目模式 | |
US10937214B2 (en) | System and method for merging maps | |
CN109298629B (zh) | 在未绘制地图区域中引导移动平台的系统及方法 | |
US20200334836A1 (en) | Relocalization method and apparatus in camera pose tracking process, device, and storage medium | |
CN109084732A (zh) | 定位与导航方法、装置及处理设备 | |
CN109255749B (zh) | 自主和非自主平台中的地图构建优化 | |
US11610373B2 (en) | Method of generating three-dimensional model data of object | |
CN108389264B (zh) | 坐标系统确定方法、装置、存储介质及电子设备 | |
US20220051031A1 (en) | Moving object tracking method and apparatus | |
CN112348886B (zh) | 视觉定位方法、终端和服务器 | |
US11854231B2 (en) | Localizing an augmented reality device | |
Menozzi et al. | Development of vision-aided navigation for a wearable outdoor augmented reality system | |
US20160210761A1 (en) | 3d reconstruction | |
US11113894B1 (en) | Systems and methods for GPS-based and sensor-based relocalization | |
CN113439275A (zh) | 一种平面语义类别的识别方法以及图像数据处理装置 | |
CN112907658A (zh) | 视觉定位评估方法和电子设备 | |
CN113610702B (zh) | 一种建图方法、装置、电子设备及存储介质 | |
TW202314593A (zh) | 定位方法及設備、電腦可讀儲存媒體 | |
WO2022016909A1 (zh) | 获取Wi-Fi指纹空间分布的方法、装置和电子设备 | |
CN116576866B (zh) | 导航方法和设备 | |
Calloway et al. | Three tiered visual-inertial tracking and mapping for augmented reality in urban settings | |
CN111489376B (zh) | 跟踪交互设备的方法、装置、终端设备及存储介质 | |
CN110660134B (zh) | 三维地图构建方法、三维地图构建装置及终端设备 | |
CN115294234B (zh) | 图像的生成方法、装置、电子设备和存储介质 | |
US20230377182A1 (en) | Augmented reality device for obtaining depth information and method of operating the same |
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 |