CN111476907A - 基于虚拟现实技术的定位及三维场景重建装置、方法 - Google Patents

基于虚拟现实技术的定位及三维场景重建装置、方法 Download PDF

Info

Publication number
CN111476907A
CN111476907A CN202010292190.4A CN202010292190A CN111476907A CN 111476907 A CN111476907 A CN 111476907A CN 202010292190 A CN202010292190 A CN 202010292190A CN 111476907 A CN111476907 A CN 111476907A
Authority
CN
China
Prior art keywords
data
pose
image
6dof
point cloud
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
Application number
CN202010292190.4A
Other languages
English (en)
Inventor
舒玉龙
郑光璞
宋田
吴涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qingdao Xiaoniao Kankan Technology Co Ltd
Original Assignee
Qingdao Xiaoniao Kankan Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qingdao Xiaoniao Kankan Technology Co Ltd filed Critical Qingdao Xiaoniao Kankan Technology Co Ltd
Priority to CN202010292190.4A priority Critical patent/CN111476907A/zh
Publication of CN111476907A publication Critical patent/CN111476907A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本说明书公开了一种基于VR技术的定位及三维场景重建装置、方法、电子设备及计算机可读存储介质。该装置设置在头盔上,包括:第一图像传感器,用于采集现实场景对应帧图像的第一图像数据,所述第一图像数据包括深度数据和灰度数据;现场可编程逻辑门阵列,所述现场可编程逻辑门阵列与所述第一图像传感器通信,用于将所述深度数据和所述灰度数据进行处理及传输给所述微电路模块;微电路模块,用于根据所述深度数据生成点云,根据所述深度数据和所述灰度数据生成6DOF数据,并根据所述点云与所述6DOF数据执行对应所述现实场景的基于虚拟现实技术的定位及三维场景重建。

Description

基于虚拟现实技术的定位及三维场景重建装置、方法
技术领域
本发明涉及计算机视觉技术领域,尤其涉及一种基于虚拟现实技术的定位及三维场景重建装置、方法、电子设备及计算机可读存储介质。
背景技术
用户佩戴VR(Virtual Reality,虚拟现实技术)头盔体验过程中,如果在现实场景中发生走动,同时想在VR虚拟场景中获得体验一致的位移,则需要对头盔进行导航定位。现在比较流行的定位方式有SLAM(Simultaneous Localization and Mapping,同时定位和建图)技术定位。如果用户还想能与外界环境发生进一步交互,比如可以感知障碍物进行安全提示,或者可以将面前的人的三维模型实时渲染到虚拟空间中,就需要视觉传感器进行三维信息感知,并通过算法建模。
现有的一种SLAM定位方案是利用RGB传感器捕捉并跟踪特征点,并通过视差计算特征点三维坐标,然后通过BA(Bundle Adjustment,光束平差法)算法得到当前VR头盔的6DOF(degree of freedom,六自由度),并通过局部和全局优化算法进行误差抑制。同时,利用SLAM的MapPoint(地图点)生成点云,利用SLAM生成的6DOF和点云进行外界环境三维建模。
然而,现有的SLAM定位方案的利用SLAM的MapPoint生成点云是在计算设备的CPU(central processing unit,中央处理器)上执行,例如高通8系处理器。由于利用SLAM的MapPoint生成点云处理的计算复杂度较大,提高了CPU的计算负担,造成CPU的处理成本较高,功耗较大。并且,MapPoint构建的点云较稀疏,用以做建模开发精度较差,用户体验不好。
发明内容
本发明的目的在于提供一种基于虚拟现实技术的定位及三维场景重建装置、方法、电子设备及计算机可读存储介质,以实现降低运行SLAM算法的处理器CPU成本及功耗,并提升用户使用体验。
根据本发明的第一方面,提供了一种基于虚拟现实技术的定位及三维场景重建装置,设置在头盔上,所述装置包括:
第一图像传感器,用于采集现实场景对应帧图像的第一图像数据,所述第一图像数据包括深度数据和灰度数据;
现场可编程逻辑门阵列,所述现场可编程逻辑门阵列与所述第一图像传感器通信,用于将所述深度数据和所述灰度数据进行处理及传输给所述微电路模块;
微电路模块,用于根据所述深度数据生成点云,根据所述深度数据和所述灰度数据生成6DOF数据,并根据所述点云与所述6DOF数据执行对应所述现实场景的基于虚拟现实技术的定位及三维场景重建。
可选的,所述装置还包括:
位姿测量传感器,用于获取佩戴所述头盔的用户在所述现实场景移动时对应的位姿数据,所述位姿数据包括角速率以及加速度;
其中,所述现场可编程逻辑门阵列还与所述位姿测量传感器通信,所述现场可编程逻辑门阵列包括软核中央处理器,用于对所述角速率和所述加速度进行解算得到四元数的位姿数据,并将四元数的所述位姿数据传输给所述微电路模块。
可选的,所述微电路模块还用于:在根据所述点云与所述6DOF数据执行所述定位及三维场景重建之前,利用所述四元数的所述位姿数据对所述6DOF数据进行融合处理。
可选的,所述现场可编程逻辑门阵列通过移动产业处理器接口与所述第一图像传感器通信,并通过所述移动产业处理器接口将所述第一图像数据传输给所述微处理器。
可选的,所述现场可编程逻辑门阵列通过串行外设接口与所述位姿测量传感器通信,并通过所述串行外设接口将四元数的所述位姿数据传输给所述微电路模块。
可选的,所述装置还包括第二图像传感器,用于采集现实场景对应帧图像的第二图像数据,所述第二图像数据包括RGB色彩数据,
其中,所述现场可编程逻辑门阵列还与所述第二图像传感器通信,并将所述RGB色彩数据传输给所述微电路模块。
可选的,所述现场可编程逻辑门阵列还用于:对接收的第一图像数据和位姿数据进行同步处理后传输给所述微电路模块,
其中,所述同步处理包括:
当前接收到第一图像数据和位姿数据时,将当前时刻减去预定曝光周期作为所述第一图像数据的时间戳,以及将所述当前时刻作为所述位姿数据的时间戳。
可选的,所述现场可编程逻辑门阵列还包括逻辑单元,所述逻辑单元用于对所述第一图像数据的深度数据进行并行滤波处理;
其中,所述现场可编程逻辑门阵列将经过滤波处理后的所述第一图像数据传输给所述微电路模块。
可选的,所述基于虚拟现实技术的定位步骤对应拆分为四个步骤,所述微电路模块包括硬核中央处理器,所述硬核中央处理器配置四个线程来分别处理所述基于虚拟现实技术的定位步骤拆分的四个步骤,
其中,所述四个步骤包括:
第一处理步骤,用于根据所述灰度数据检测和跟踪所述场景对应帧图像的特征点,以及根据所述深度数据和所述灰度数据生成所述6DOF数据;
第二处理步骤,用于对特征点对应地图点中的关键点形成的局部地图进行优化;
第三处理步骤,用于对所有特征点对应地图点形成的全局地图进行优化;
第四处理步骤,用于在发生路径回环的情况下调整所述关键点的位置,并对关键点位置调整后的局部地图进行优化。
可选的,所述微电路模块还用于:根据所述四个步骤的实时性要求从高到低的顺序分配所述四个线程的优先级,
其中,所述四个步骤的实时性要求顺序为:所述第一处理步骤>所述第二处理步骤>所述第三处理步骤>所述第四处理步骤。
可选的,所述微电路模块还包括并行处理单元,用于使用单指令-多数据的方式对所述地图点对应的位姿向量运算进行并行加速处理。
可选的,所述微电路模块根据所述点云与所述6DOF数据执行所述三维场景重建包括:
根据所述深度数据生成点云;
获取线程处理所述第一处理步骤生成的所述6DOF数据;
根据所述点云和所述6DOF数据生成世界系稠密点云;
利用所述稠密点云对所述现实场景进行所述三维场景重建。
可选的,所述微电路模块还包括图形处理器,所述图形处理器用于通过所述第一图像传感器和所述第二图形传感器对应的外参及内参建立对应帧图像的单应矩阵,以通过所述RGB色彩数据给所述点云绘制颜色。
根据本发明的第二方面,提供了一种基于虚拟现实技术的定位及三维场景重建方法,包括:
获取通过第一图像传感器采集的现实场景对应帧图像的第一图像数据,所述第一图像数据包括深度数据和灰度数据;
根据所述深度数据生成点云;
根据所述深度图像和所述灰度图像生成6DOF数据;
根据所述点云与所述6DOF数据执行对应所述现实场景的基于虚拟现实技术的定位及三维场景重建。
可选的,所述方法还包括:
获取位姿测量传感器获取的佩戴所述头盔的用户在所述现实场景移动时对应的位姿数据,所述位姿数据包括角速率以及加速度;
其中,在获取所述位姿数据之前,所述方法还包括:
通过所述位姿测量传感器将所述位姿数据传输到现场可编程逻辑门阵列的软核中央处理器,以对所述角速率和所述加速度进行解算得到四元数的位姿数据。
可选的,所述方法还包括:
在根据所述点云与所述6DOF数据执行所述定位及三维场景重建之前,利用所述四元数的所述位姿数据对所述6DOF数据进行融合处理。
可选的,在获取所述第一图像数据和所述位姿数据之前,所述方法还包括:
通过所述第一图像传感器和所述位姿测量传感器分别对应将所述第一图像数据和所述位姿数据传输到所述现场可编程逻辑门阵列,以通过所述现场可编程逻辑门阵列对所述第一图像数据和所述位姿数据进行同步处理,
其中,所述同步处理包括:
在所述现场可编程逻辑门阵列当前接收到第一图像数据和位姿数据时,将当前时刻减去预定曝光周期作为所述第一图像数据的时间戳,以及将所述当前时刻作为所述位姿数据的时间戳。
可选的,在获取所述第一图像数据之前,所述方法还包括:
通过所述第一图像传感器将所述第一图像数据传输到所述现场可编程逻辑门阵列,以通过所述现场可编程逻辑门阵列对所述第一图像数据的深度数据进行并行滤波处理。
可选的,所述方法还包括:
获取通过第二图像传感器采集的现实场景对应帧图像的第二图像数据,所述第二图像数据包括RGB色彩数据;
使用所述RGB色彩数据给所述点云绘制颜色。
可选的,所述方法还包括:
将基于虚拟现实技术的定位步骤对应拆分为四个步骤;
配置四个线程来分别处理所述基于虚拟现实技术的定位步骤拆分的四个步骤,
其中,所述四个步骤包括:
第一处理步骤,用于根据所述灰度数据检测和跟踪所述场景对应帧图像的特征点,以及根据所述深度数据和所述灰度数据生成所述6DOF数据;
第二处理步骤,用于对特征点对应地图点中的关键点形成的局部地图进行优化;
第三处理步骤,用于对所有特征点对应地图点形成的全局地图进行优化;
第四处理步骤,用于在发生路径回环的情况下调整所述关键点的位置,并对关键点位置调整后的局部地图进行优化。
可选的,所述方法还包括:
根据所述四个步骤的实时性要求从高到低的顺序分配所述四个线程的优先级,
其中,所述四个步骤的实时性要求顺序为:所述第一处理步骤>所述第二处理步骤>所述第三处理步骤>所述第四处理步骤。
可选的,所述方法还包括:
使用单指令-多数据的方式对所述地图点对应的位姿向量运算进行并行加速处理。
可选的,所述根据所述点云与所述6DOF数据执行所述三维场景重建包括:
根据所述深度数据生成点云;
获取线程处理所述第一处理步骤生成的所述6DOF数据;
根据所述点云和所述6DOF数据生成世界系稠密点云;
利用所述稠密点云对所述现实场景进行所述三维场景重建。
根据本发明的第三方面,提供了一种电子设备,包括:
存储器,用于存储可执行命令;
处理器,用于在所述可执行命令的控制下,执行根据本发明第二方面所述的任一项所述的方法。
根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现根据本发明第二方面所述的任一项所述的方法。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1为本发明实施例的基于VR技术的定位及三维场景重建装置的结构方框图。
图2为本发明实施例的基于VR技术的定位及三维场景重建装置的示例硬件结构图。
图3为本发明实施例的基于VR技术的定位及三维场景重建方法步骤流程图。
图4为本发明实施例的基于VR技术的定位及三维场景重建方法示例图。
图5为本发明实施例的电子设备的结构方框图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人物已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<装置实施例>
根据本发明的一个实施例,提供了一种基于VR技术的定位及三维场景重建装置,其中图1示出了本发明实施例的基于VR技术的定位及三维场景重建装置的结构方框图。
该装置设置在VR头盔上,用户佩戴VR头盔体验过程中,通过该装置可以实现对VR头盔进行导航定位。并且在用户与外界环境发生进一步交互时,可以通过该装置进行三维场景重建,将用户面前现实场景的三维物体实时渲染到虚拟空间中。
如图1所示,该实施例的装置包括第一图像传感器1、FPGA(现场可编程逻辑门阵列)2及微电路模块3,第一图像传感器1可以设置在VR头盔的前方显示面板上,FPGA 2和微电路模块3可以设置在VR头盔内部。
第一图像传感器1用于采集现实场景对应帧图像的第一图像数据,第一图像数据包括深度数据和灰度数据。FPGA 2与第一图像传感器2通信,用于将深度数据和灰度数据传输给微电路模块3。微电路模块3用于根据深度数据生成点云,根据深度数据和灰度数据生成6DOF数据,并根据所述点云与6DOF数据执行对应现实场景的基于虚拟现实技术的定位及三维场景重建。
在一个实施例中,第一图像传感器1可以是TOF(飞行时间测距,Timeof flight)传感器,用于通过拍摄现实场景的对应画面,计算光线发射和反射时间差或相位差,来换算所拍摄场景内物体的距离,以产生深度数据,并通过拍摄画面的红外(IR)数据得到对应的灰度数据。
在一个实施例中,该装置还包括位姿测量传感器(图中未示出),用于获取佩戴头盔的用户在现实场景移动时对应的位姿数据,所述位姿数据包括角速率以及加速度。位姿测量传感器例如为惯性测量单元(Inertialmeasurement unit,IMU),从而可以测量VR头盔移动时对应的三轴姿态角(或角速率)以及加速度。
FPGA 2与位姿测量传感器通信,在一个实施例中,FPGA 2包括软核中央处理器(软核CPU),用于对姿测量传感器传输的角速率和加速度进行解算得到四元数(占用4个浮点数(float))的位姿数据,并将四元数的所述位姿数据传输给微电路模块3。
本发明实施例中,将通过加速度的acc数据和对应的三轴姿态角或角速率的gyro(陀螺仪)数据,进行互补滤波及龙泽库塔积分算法解算四元数的算法移植到FPGA 2中的软核CPU中实现,在FPGA 2中解算得到四元数的位姿数据后传输给微电路模块3执行相应处理。由于通常acc和gyro数据传输需各占用3个浮点数,这样处理后向微电路模块2传输数据时只需要传输四元数(4*float),比起传输acc和gyro节省了2*float,对应节省了8字节的带宽。因此,在位姿测量传感器频率为200Hz以上时,如此可以一定程度上降低了数据的传输功耗。
在一个实施例中,该装置还可以包括第二图像传感器(图中未示出),用于采集现实场景对应帧图像的第二图像数据,所述第二图像数据包括RGB色彩数据,第二图像传感器例如为RGB传感器。FPGA 2与第二图像传感器通信,并将所述RGB色彩数据传输给微电路模块3,以在后续用于通过RGB色彩数据给点云绘制颜色(下文中会进行说明)。
在一个实施例中,微电路模块3还用于:在根据点云与6DOF数据执行定位及三维场景重建之前,利用四元数的位姿数据对所述6DOF数据进行融合处理(关于数据融合下文中将展开说明)。
由于后端微电路模块3的数据融合对于传感器数据同步的要求很高,所以本发明利用FPGA对传感器对应的数据进行采集。
在一个实施例中,FPGA 2还用于对接收的第一图像数据和位姿数据进行同步处理后传输给微电路模块,其中,所述同步处理包括:当前接收到第一图像数据和位姿数据时,将当前时刻减去预定曝光周期作为所述第一图像数据的时间戳,以及将所述当前时刻作为所述位姿数据的时间戳。
在一个实施例中,FPGA 2还用于对接收的第一图像数据、第二图像数据和位姿数据进行同步处理后传输给微电路模块,其中,所述同步处理包括:当前接收到第一图像数据、第二图像数据和位姿数据时,将当前时刻减去预定曝光周期作为所述第一、第二图像数据的时间戳,以及将所述当前时刻作为所述位姿数据的时间戳。
由于图像传感器芯片内部逻辑等延迟较大,本发明实施例中可以将图像传感器延迟为3/4个曝光周期,位姿测量传感器的帧率较高,延迟忽略不计。当FPGA 2收到第一、第二图像数据时,将此时的当前时刻减去3/4个曝光周期作为该图像数据的时间戳。收到位姿数据时,将此时的当前时刻作为其时间戳。因此,各个传感器的时间戳都由FPGA 2设置,并且FPGA2内部延迟很小,达到非常好的数据同步效果。因此,微电路模块3根据接收FPGA 2传输的同步后的位姿数据和第一、第二图像数据,可以实现数据的实时性,达到更好的6DOF数据融合处理。
在一个实施例中,FPGA 2还包括逻辑单元(图中未示出),所述逻辑单元用于对第一图像传感器1采集的深度数据进行并行滤波处理。其中,FPGA 2将经过滤波处理后的第一图像数据传输给微电路模块3。
由于第一图像传感器1生成的深度数据可能存在一定噪声,因此在本发明实施例中,可采用联合双边滤波算法对深度数据进行滤波。联合双边滤波算法在生成每个卷积核元素权重时,既考虑其与需要滤波的像素的位置关系,也考虑到其IR像素值的相似程度,所以对于物体边缘的深度值有较好的滤波效果。但由于图像卷积运算计算量较大,因此在本发明实施例中,根据已仿真得到的卷积权重设计卷积IP核,利用FPGA 2的逻辑资源,例如逻辑单元(LE)实现640个IP实例,这样可以一次性处理640个像素。所以利用FPGA 2的逻辑单元进行深度数据的并行滤波的图像数据预处理,可以极大地提高算力,降低了延迟,相比在微电路模块3上使用CPU的运算方式进行滤波而言降低了CPU的功耗。
微电路模块3在接收到FPGA 2传输的深度数据、灰度数据,则可以执行对应现实场景的基于VR技术的定位及三维场景重建。在一个实施例中,基于VR技术的定位利用SLAM算法。例如,微电路模块3可以是中央处理器CPU、微处理器MCU等,用于执行计算机程序。该计算机程序可以采用比如x86、Arm、RISC、MIPS、SSE等架构的指令集编写。微电路模块3例如为RK3288芯片。
为了充分发挥微电路模块3的运算能力,同时保证SLAM算法的性能和实时性,在本发明一个实施例中,将SLAM算法拆分成四个步骤。微电路模块3包括硬核CPU,硬核CPU配置四个线程来分别处理所述SLAM定位算法的四个步骤。将SLAM算法中运算复杂度较大的四个步骤分别配置一个线程,可以有效的发挥微电路模块3中硬核CPU的处理器运算性能。
其中,所述四个步骤包括:
第一处理步骤,用于根据所述灰度数据检测和跟踪所述场景对应帧图像的特征点,以及根据所述深度数据和所述灰度数据生成所述6DOF数据。
特征点为根据灰度数据得到二维数据。6DOF数据为根据深度数据对二维灰度数据的特征点计算得到的三维坐标点,这些三维坐标点为形成的地图点。如上文所述,可以利用四元数的位姿数据对6DOF数据进行融合处理。
由于利用SLAM算法在第一处理步骤生成的6DOF帧率一般较低,本发明实施例可以采用UKF(Unscented Kalman Filter,无损卡尔曼滤波)算法将位姿测量单元获取的位姿数据与6DOF融合后得到更高频率(例如从30Hz增加到200Hz)和更平滑的6DOF数据。其中将6DOF数据作为观测量,位姿数据作为控制量,上一帧的6DOF数据作为先验估计,在微电路模块3上执行UKF滤波算法后得到融合后的6DOF。
在该处理步骤中,通过第一图像传感器生成的IR图像(对应灰度数据)进行特征点检测,并通过相应的深度值由相机内参直接解算相机坐标系对应特征点的坐标。由于深度值是由第一图像传感器获得,所以与传统双目定位的方法,节省了双目特征点匹配和时差解算深度的过程,降低了微电路模块3中CPU运算的复杂度。
第二处理步骤,用于对特征点对应地图点(MapPoints)中的关键点(KeyPoints)形成的局部地图进行优化。关键点是从特征点中选取的一些质量比较高的特征点,并和深度数据进行计算后得到的三维坐标点。
在该步骤中,可以维护由关键点和关键帧形成的局部地图,并通过BA(BundleAdjustment,光束平差法)算法进行局部地图优化。
第三处理步骤,用于对所有特征点对应地图点形成的全局地图进行优化。在该步骤中,维护全局地图,并通过BA算法进行全局地图优化。
第四处理步骤,用于在发生路径回环(Loop closing)的情况下调整所述关键点的位置,并对关键点位置调整后的局部地图进行优化。
在该步骤中,根据当前位置和局部关键点特征与全局地图比对,若路径发生回环则调整关键点位置,通过调整后的局部地图进行BA算法优化,降低误差影响。
在一个实施例中,微电路模块3还用于:根据上述四个步骤的实时性要求从高到低的顺序分配所述四个线程的优先级,其中,所述四个步骤的实时性要求顺序为:第一处理步骤>第二处理步骤>第三处理步骤>第四处理步骤。即,按照上述优先级分配线程执行对应的处理步骤,其中第一步骤的特征点跟踪对实时性要求最高,微电路模块3会优先分配线程处理该第一步骤,其他步骤在线程堵塞时可以按照优先级等待后续处理。
在一个实施例中,微电路模块3还可以包括并行处理单元,用于使用单指令-多数据的方式对所述地图点对应的位姿向量运算进行并行加速处理。
在SLAM算法中存在大量的位姿运算,位姿运算存在于上述第二、第三及第四处理步骤中,例如地图点需要对位置求雅克比和海森矩阵,由于地图中地图点较多,运算规模较大,所以本发明实施例中例如使用RK3288中的Neon(Neon是适用于ARM Cortex-A系列处理器的一种128位SIMD(Single Instruction,Multiple Data,单指令、多数据)扩展结构)资源对位置向量运算进行并行加速处理,实现一条指令就可以对(x,y,z)进行算术运算,对于大规模地图点运算性能提升非常可观。
在本发明实施例中,微电路模块3可以对VR头盔移动时的现实场景进行三维场景重建,具体包括:根据第一图像传感器的深度数据生成点云;获取线程处理第一处理步骤生成的6DOF数据;根据所述点云和所述6DOF数据生成世界系稠密点云;利用所述稠密点云对所述现实场景进行三维场景重建。
为了实现重建的三维模型精细纹理,必须使用稠密点云进行重建。如果使用SLAM算法生成稠密点云,则在其优化阶段海森矩阵的稀疏性就会变差,并且雅克比和海森矩阵的规模是会随地图点的增多而增大。所以,本发明实施例中,微电路模块3采用每帧第一图像传感器生成的本地点云(即,拍摄每帧图像时的当前坐标系对应生成的点云),通过SLAM算法的第一处理步骤中生成的6DOF信息,对VR体验所在空间中的体素标注TSDF(TruncatedSigned Distance Function,截断符号距离函数)值,然后在体素中遍历寻找TSDF值正负过度的坐标位置,作为重建点云的位置。
三维场景重建算法流程如下:
将VR体验所在空间划分为i*j*k个体素,中心点作为体素坐标。
每帧深度数据产生时,将第一图像传感器视场内的体素通过传感器内参和6DOF投影到相平面,则每个体素会得到与之对应的深度值。每个体素坐标与第一图像传感器的相机6DOF的坐标的欧氏距离,减去对应深度值,得到体素的TSDF值。若TSDF值绝对值大于1,则将其绝对值置为1。
以第一图像传感器的相机光心与各像素点形成射线方向遍历有TSDF值的体素,若其存在于正负交接处,则说明此处为物体表面,即重建点云所在位置。
在一个实施例中,微电路模块3还包括图形处理器(图中未示出),所述图形处理器用于通过第一图像传感器1和第二图形传感器对应的外参及内参建立对应帧图像的单应矩阵,以通过RGB色彩数据给重建点云绘制颜色。
由于解算体素TSDF值时,体素数量非常多,为了不影响SLAM运算的实时性,本发明实施例中可以使用微电路模块3的图形处理器,例如RK3288中的Mali-T764 GPU实现体素投影和遍历等运算,并且这些运算算法一致,所以通过OpenCL(全称Open ComputingLanguage,开放运算语言)进行内核构建的可行性有充分保证。
在本发明实施例中,采用第一图像传感器的深度数据快速生成稠密点云,可降低CPU计算负担。并且,相比现有SLAM算法利用地图点构建的稀疏点云,本发明可以提供精度更高的建模开发,提高用户体验。
此外,现有的SLAM定位方案的6DOF和点云生成处理是在计算设备的CPU(centralprocessing unit,中央处理器)上执行,例如高通8系处理器。由于处理的计算复杂度较大,提高了CPU的计算负担,造成CPU的处理成本较高,功耗较大。
反观本发明实施例的定位及三维场景重建装置,根据SLAM算法和点云处理算法复杂度,设计“协处理器(FPGA中的软核CPU及/或逻辑单元处理)+主处理器(微电路模块中的硬核CPU及/或GPU处理)”的特殊运算单元,实现低延迟和低功耗,以及多传感器数据高效融合。比传统方案更适合VR导航定位和三维重建的应用场景,并且成本较低,体验效果优良。
本实施例通过第一图像传感器(TOF传感器)产生的深度和IR灰度数据直接生成SLAM定位需要的关键点,使用6DOF数据和TOF传感器生成的本地点云生成世界系稠密点云,实现稠密建模,模型纹理精细。使用RGB传感器捕获色彩信息,为点云贴色彩纹理。使用FPGA为多传感器采集的数据标注同步时间戳,并实现计算密集的数据预处理。此外,使用低成本移动处理器,例如RK3288,支持SLAM算法前后端线程并行运算,支持Neon加速矢量运算,支持GPU加速点云遍历等密集型运算。
综上,本实施例针对VR头盔应用场景“低功耗”、“低成本”的限制,保证用户体验“低延迟”的效果,同时将导航和三维重建功能实现以提升VR产品的附加值。本实施例针对以上要求提出了一种基于异构运算和多传感器的硬件方案,并在其基础上设计算法软件架构以充分发挥硬件性能。最终实现了低功耗和高性能的软硬件***,保证了用户在体验6DOF导航定位的同时,可以感受现实物体在虚拟场景中建模或者安全区保护等附加功能。
<例子>
下面将结合图2的示例,对本发明实施例的基于VR技术的定位及三维场景重建装置的硬件及信号连接关系进行举例说明。
图2为本发明实施例的基于VR技术的定位及三维场景重建装置的示例硬件结构图,该装置设置在VR头盔上。
如图2所示,在该实施例中,定位及重建装置包括TOF传感器10、RGB传感器12、IMU14三个传感器。定位及重建装置还包括FPGA 20和处理器RK3288,其中FPGA 20包括软核CPU22和逻辑单元(LE)24,处理器RK3288包括硬核CPU 32和GPU 34。
FPGA 20通过MIPI接口与TOF传感器10以及RGB传感器12通信,通过SPI接口与IMU14通信。TOF传感器10采集深度、灰度数据,RGB传感器12获取RGB色彩数据,IMU 14采集VR头盔移动时对应的位姿数据。上述传感器的数据采集由FPGA 20执行,FPGA 20将采集的TOF传感器10和RGB传感器12的图像数据和MU 14的位姿数据进行同步处理。由于三个传感器的时间戳都由FPGA 20设置,并且FPGA 20内部延迟很小,因此可以达到好的数据同步效果。
FPGA 20将采集的TOF传感器10的深度数据由LE 24执行并行的联合双边滤波处理,不仅提高算力,提高处理速度,还相比使用RK3288 30的硬核CPU 30进行运算的方式降低了RK3288 30的CPU功耗。
此外,FPGA 20在将IMU 14获取的位姿数据传输给RK3288 30进行处理之前,先由软核CPU 22对位姿数据的acc数据和gyro数据进行四元数解算。将四元数解算算法移植到FPGA 20中的软核CPU 22中实现,因此在给硬核CPU 30传输数据时只需要传输四元数(4*float),比起传输6浮点数的acc和gyro数据节省了带宽。在IMU频率200Hz以上时,可一定程度上降低了功耗。
FPGA 20与RK3288 30的通信方式为:FPGA 20通过SPI接口将四元数的位姿数据传输至RK3288 30,通过MIPI接口将TOF传感器10和RGB传感器12的图像数据传输至RK328830。传输至RK3288 30的四元数和图像数据事先在FPGA 20中进行了时钟同步处理。
后端的RK3288 30在接收到FPGA 20传输的四元数和图像数据后,执行相应的导航定位及/或三维场景重建。
具体地,将SLAM算法的定位处理拆分成四个线程执行,即特征点检测及追踪、局部地图优化、全局地图优化和回环路径的局部地图调整。由于RK3288有4*[email protected],所以将SLAM算法定位中运算复杂度较大的上述四个模块分别配置一个线程,可以有效的发挥处理器运算性能。关于四个线程对应执行的步骤可以参考上文,这里不再赘述。
在特征点追踪线程处理得到6DOF数据之后,该线程首先将6DOF数据传输到RK328830的其他线程,根据接收的四元数位姿数据对6DOF数据进行融合处理,得到更高频率和更平滑的6DOF数据,以执行后续的导航定位及三维场景重建。
此外,RK3288 30利用其内部的Neon资源可以对SLAM算法中涉及的大量位姿运算进行并行加速处理,提高地图点的运算性能。
RK3288 30的GPU 34根据RGB色彩数据对点云绘制颜色,并使用例如Mali-T764GPU实现体素投影和遍历等运算。
<方法实施例>
在本发明一个实施例中,又提供一种基于VR技术的定位及三维场景重建方法,请参考图3,该图为本发明实施例的基于VR技术的定位及三维场景重建方法步骤流程图。
如图3所示,本发明实施例的定位及三维场景重建方法包括以下步骤:
步骤202,获取通过第一图像传感器采集的现实场景对应帧图像的第一图像数据,所述第一图像数据包括深度数据和灰度数据;
步骤204,根据所述深度数据生成点云;
步骤206,根据所述深度图像和所述灰度图像生成6DOF数据;
步骤208,根据所述点云与所述6DOF数据执行对应所述现实场景的基于虚拟现实技术的定位及三维场景重建。
在一个实施例中,所述方法还包括:获取位姿测量传感器获取的佩戴所述头盔的用户在所述现实场景移动时对应的位姿数据,所述位姿数据包括角速率以及加速度;其中,在获取所述位姿数据之前,所述方法还包括:通过所述位姿测量传感器将所述位姿数据传输到现场可编程逻辑门阵列的软核中央处理器,以对所述角速率和所述加速度进行解算得到四元数的位姿数据。
在一个实施例中,所述方法还包括:在根据所述点云与所述6DOF数据执行所述定位及三维场景重建之前,利用所述四元数的所述位姿数据对所述6DOF数据进行融合处理。
在一个实施例中,在获取所述第一图像数据和所述位姿数据之前,所述方法还包括:通过所述第一图像传感器和所述位姿测量传感器分别对应将所述第一图像数据和所述位姿数据传输到所述现场可编程逻辑门阵列,以通过所述现场可编程逻辑门阵列对所述第一图像数据和所述位姿数据进行同步处理,其中,所述同步处理包括:在所述现场可编程逻辑门阵列当前接收到第一图像数据和位姿数据时,将当前时刻减去预定曝光周期作为所述第一图像数据的时间戳,以及将所述当前时刻作为所述位姿数据的时间戳。
在一个实施例中,在获取所述第一图像数据之前,所述方法还包括:通过所述第一图像传感器将所述第一图像数据传输到所述现场可编程逻辑门阵列,以通过所述现场可编程逻辑门阵列对所述第一图像数据的深度数据进行并行滤波处理。
在一个实施例中,所述方法还包括:获取通过第二图像传感器采集的现实场景对应帧图像的第二图像数据,所述第二图像数据包括RGB色彩数据;使用所述RGB色彩数据给所述点云绘制颜色。
在一个实施例中,所述方法还包括:将基于虚拟现实技术的定位步骤对应拆分为四个步骤;配置四个线程来分别处理所述基于虚拟现实技术的定位步骤拆分的四个步骤,其中,所述四个步骤包括:
第一处理步骤,用于根据所述灰度数据检测和跟踪所述场景对应帧图像的特征点,以及根据所述深度数据和所述灰度数据生成所述6DOF数据;
第二处理步骤,用于对特征点对应地图点中的关键点形成的局部地图进行优化;
第三处理步骤,用于对所有特征点对应地图点形成的全局地图进行优化;
第四处理步骤,用于在发生路径回环的情况下调整所述关键点的位置,并对关键点位置调整后的局部地图进行优化。
在一个实施例中,所述方法还包括:根据所述四个步骤的实时性要求从高到低的顺序分配所述四个线程的优先级,其中,所述四个步骤的实时性要求顺序为:所述第一处理步骤>所述第二处理步骤>所述第三处理步骤>所述第四处理步骤。
在一个实施例中,所述方法还包括:使用单指令-多数据的方式对所述地图点对应的位姿向量运算进行并行加速处理。
在一个实施例中,所述根据所述点云与所述6DOF数据执行所述三维场景重建包括:根据所述深度数据生成点云;获取线程处理所述第一处理步骤生成的所述6DOF数据;根据所述点云和所述6DOF数据生成世界系稠密点云;利用所述稠密点云对所述现实场景进行所述三维场景重建。
<例子>
下面将结合图4对本发明实施例的定位及三维场景重建方法进行说明,图4为本发明实施例的基于VR技术的定位及三维场景重建方法示例图。
步骤402,图像数据预处理:包括上文所述的对第一图像传感器的深度数据进行并行滤波处理。例如,利用FPGA的逻辑单元(LE)实现640个IP实例,可以一次性处理640个像素。
步骤404,IMU姿态解算:包括上文所述的对位姿测量传感器的位姿数据角速率和加速度进行四元数解算。例如,利用FPGA的软核CPU,处理互补滤波及龙泽库塔积分算法解算四元数。
步骤406,同步处理:包括上文所述的对第一、第二图像传感器的图像数据和位姿测量传感器的位姿数据进行时钟同步处理。
步骤408,特征点跟踪:如上文所述,根据灰度数据得到二维特征点,并根据预处理后的深度数据和二维特征点生成6DOF数据;
步骤410,数据融合:如上文所述,利用步骤404得到的四元数位姿数据对步骤408生成的6DOF数据进行融合处理,得到融合后的6DOF数据。
步骤412,局部地图优化:如上文所述,根据深度数据和灰度数据得到的关键点维护局部地图,并利用BA算法进行局部地图优化。
步骤414,全局地图优化:如上文所述,根据所有特征点和深度数据对应得到的全局地图,维护全局地图并通过BA算法进行全局地图优化。
步骤416,回环关键点调整:如上文所述,根据当前位置和局部关键点特征与全局地图比对,若路径发生回环则调整关键点位置,通过调整后的局部地图进行BA优化,降低误差影响。
步骤418,三维场景重建:如上文所述,采用每帧图像对应的第一图像数据生成本地点云,并通过步骤410生成的6DOF数据,给VR体验所在空间中的体素标注TSDF值,然后在体素中遍历寻找TSDF值正负过度的坐标位置,作为重建点云的位置。进一步地,还通过第一、第二图像传感器的外参以及它们各自的内参建立图像的单应矩阵,从而图形处理器可以通过RGB色彩数据给点云绘制颜色。
<设备实施例>
本实施例中,还提供一种电子设备,该电子设备包括本说明书装置实施例中描述的微电路模块3、30。
在另外的实施例中,如图5所示,该电子设备2000可以包括存储器2200和处理器2400。该存储器2200用于存储可执行命令。该处理器2400用于在存储器2200存储的可执行命令的控制下,执行本说明书任意方法实施例中描述的方法。
该电子设备2000根据所执行的方法实施例的实施主体,可以是服务器,也可以是终端设备,在此不做限定。
<计算机可读存储介质实施例>
最后,根据本发明的又一个实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被处理器执行时实现根据本发明任意实施例所述的基于虚拟现实技术的定位及三维场景重建方法。
本发明可以是***、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人物来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人物来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人物能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

Claims (14)

1.一种基于虚拟现实技术的定位及三维场景重建装置,设置在头盔上,其特征在于,所述装置包括:
第一图像传感器,用于采集现实场景对应帧图像的第一图像数据,所述第一图像数据包括深度数据和灰度数据;
现场可编程逻辑门阵列,所述现场可编程逻辑门阵列与所述第一图像传感器通信,用于将所述深度数据和所述灰度数据进行处理及传输给所述微电路模块;
微电路模块,用于根据所述深度数据生成点云,根据所述深度数据和所述灰度数据生成6DOF数据,并根据所述点云与所述6DOF数据执行对应所述现实场景的基于虚拟现实技术的定位及三维场景重建。
2.根据权利要求1所述的装置,其中,所述装置还包括:
位姿测量传感器,用于获取佩戴所述头盔的用户在所述现实场景移动时对应的位姿数据,所述位姿数据包括角速率以及加速度;
其中,所述现场可编程逻辑门阵列还与所述位姿测量传感器通信,所述现场可编程逻辑门阵列包括软核中央处理器,用于对所述角速率和所述加速度进行解算得到四元数的位姿数据,并将四元数的所述位姿数据传输给所述微电路模块;
其中,所述微电路模块还用于:在根据所述点云与所述6DOF数据执行所述定位及三维场景重建之前,利用所述四元数的所述位姿数据对所述6DOF数据进行融合处理。
3.根据权利要求1所述的装置,其中,所述装置还包括:
第二图像传感器,用于采集现实场景对应帧图像的第二图像数据,所述第二图像数据包括RGB色彩数据,
其中,所述现场可编程逻辑门阵列还与所述第二图像传感器通信,并将所述RGB色彩数据传输给所述微电路模块;
其中,所述微电路模块还包括图形处理器,所述图形处理器用于通过所述第一图像传感器和所述第二图形传感器对应的外参及内参建立对应帧图像的单应矩阵,以通过所述RGB色彩数据给所述点云绘制颜色。
4.根据权利要求2所述的装置,其中,所述现场可编程逻辑门阵列还用于:对接收的第一图像数据和位姿数据进行同步处理后传输给所述微电路模块,
其中,所述同步处理包括:
当前接收到第一图像数据和位姿数据时,将当前时刻减去预定曝光周期作为所述第一图像数据的时间戳,以及将所述当前时刻作为所述位姿数据的时间戳。
5.根据权利要求1所述的装置,其中,所述基于虚拟现实技术的定位步骤对应拆分为四个步骤,所述微电路模块包括硬核中央处理器,所述硬核中央处理器配置四个线程来分别处理所述基于虚拟现实技术的定位步骤拆分的四个步骤,
其中,所述四个步骤包括:
第一处理步骤,用于根据所述灰度数据检测和跟踪所述场景对应帧图像的特征点,以及根据所述深度数据和所述灰度数据生成所述6DOF数据;
第二处理步骤,用于对特征点对应地图点中的关键点形成的局部地图进行优化;
第三处理步骤,用于对所有特征点对应地图点形成的全局地图进行优化;
第四处理步骤,用于在发生路径回环的情况下调整所述关键点的位置,并对关键点位置调整后的局部地图进行优化。
6.根据权利要求5所述的装置,其中,所述微电路模块还包括并行处理单元,用于使用单指令-多数据的方式对所述地图点对应的位姿向量运算进行并行加速处理。
7.一种基于虚拟现实技术的定位及三维场景重建方法,其特征在于,包括:
获取通过第一图像传感器采集的现实场景对应帧图像的第一图像数据,所述第一图像数据包括深度数据和灰度数据;
根据所述深度数据生成点云;
根据所述深度图像和所述灰度图像生成6DOF数据;
根据所述点云与所述6DOF数据执行对应所述现实场景的基于虚拟现实技术的定位及三维场景重建。
8.根据权利要求7所述的方法,其中,所述方法还包括:
获取位姿测量传感器获取的佩戴所述头盔的用户在所述现实场景移动时对应的位姿数据,所述位姿数据包括角速率以及加速度;
其中,在获取所述位姿数据之前,所述方法还包括:
通过所述位姿测量传感器将所述位姿数据传输到现场可编程逻辑门阵列的软核中央处理器,以对所述角速率和所述加速度进行解算得到四元数的位姿数据;以及
在根据所述点云与所述6DOF数据执行所述定位及三维场景重建之前,利用所述四元数的所述位姿数据对所述6DOF数据进行融合处理。
9.根据权利要求8所述的方法,其中,在获取所述第一图像数据和所述位姿数据之前,所述方法还包括:
通过所述第一图像传感器和所述位姿测量传感器分别对应将所述第一图像数据和所述位姿数据传输到所述现场可编程逻辑门阵列,以通过所述现场可编程逻辑门阵列对所述第一图像数据和所述位姿数据进行同步处理,
其中,所述同步处理包括:
在所述现场可编程逻辑门阵列当前接收到第一图像数据和位姿数据时,将当前时刻减去预定曝光周期作为所述第一图像数据的时间戳,以及将所述当前时刻作为所述位姿数据的时间戳。
10.根据权利要求7所述的方法,其中,所述方法还包括:
获取通过第二图像传感器采集的现实场景对应帧图像的第二图像数据,所述第二图像数据包括RGB色彩数据;
使用所述RGB色彩数据给所述点云绘制颜色。
11.根据权利要求7所述的方法,其中,所述方法还包括:
将基于虚拟现实技术的定位步骤对应拆分为四个步骤;
配置四个线程来分别处理所述基于虚拟现实技术的定位步骤拆分的四个步骤,
其中,所述四个步骤包括:
第一处理步骤,用于根据所述灰度数据检测和跟踪所述场景对应帧图像的特征点,以及根据所述深度数据和所述灰度数据生成所述6DOF数据;
第二处理步骤,用于对特征点对应地图点中的关键点形成的局部地图进行优化;
第三处理步骤,用于对所有特征点对应地图点形成的全局地图进行优化;
第四处理步骤,用于在发生路径回环的情况下调整所述关键点的位置,并对关键点位置调整后的局部地图进行优化。
12.根据权利要求11所述的方法,其中,所述根据所述点云与所述6DOF数据执行所述三维场景重建包括:
根据所述深度数据生成点云;
获取线程处理所述第一处理步骤生成的所述6DOF数据;
根据所述点云和所述6DOF数据生成世界系稠密点云;
利用所述稠密点云对所述现实场景进行所述三维场景重建。
13.一种电子设备,包括:
存储器,用于存储可执行命令;
处理器,用于在所述可执行命令的控制下,执行根据权利要求7至12中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序在被处理器执行时实现根据权利要求7至12中任一项所述的方法。
CN202010292190.4A 2020-04-14 2020-04-14 基于虚拟现实技术的定位及三维场景重建装置、方法 Pending CN111476907A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010292190.4A CN111476907A (zh) 2020-04-14 2020-04-14 基于虚拟现实技术的定位及三维场景重建装置、方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010292190.4A CN111476907A (zh) 2020-04-14 2020-04-14 基于虚拟现实技术的定位及三维场景重建装置、方法

Publications (1)

Publication Number Publication Date
CN111476907A true CN111476907A (zh) 2020-07-31

Family

ID=71752112

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010292190.4A Pending CN111476907A (zh) 2020-04-14 2020-04-14 基于虚拟现实技术的定位及三维场景重建装置、方法

Country Status (1)

Country Link
CN (1) CN111476907A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112203076A (zh) * 2020-09-16 2021-01-08 青岛小鸟看看科技有限公司 Vr***中多摄像头曝光中心点的对齐方法、***
CN112837372A (zh) * 2021-03-02 2021-05-25 浙江商汤科技开发有限公司 数据生成方法及装置、电子设备和存储介质
CN114399597A (zh) * 2022-01-12 2022-04-26 贝壳找房(北京)科技有限公司 场景空间模型的构建方法、装置以及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170200317A1 (en) * 2016-01-12 2017-07-13 Siemens Healthcare Gmbh Perspective representation of a virtual scene component
US20180205941A1 (en) * 2017-01-17 2018-07-19 Facebook, Inc. Three-dimensional scene reconstruction from set of two dimensional images for consumption in virtual reality
CN108492316A (zh) * 2018-02-13 2018-09-04 视辰信息科技(上海)有限公司 一种终端的定位方法和装置
CN108765548A (zh) * 2018-04-25 2018-11-06 安徽大学 基于深度相机的三维场景实时重建方法
CN109961506A (zh) * 2019-03-13 2019-07-02 东南大学 一种融合改进Census图的局部场景三维重建方法
CN110221690A (zh) * 2019-05-13 2019-09-10 Oppo广东移动通信有限公司 基于ar场景的手势交互方法及装置、存储介质、通信终端
CN110310362A (zh) * 2019-06-24 2019-10-08 中国科学院自动化研究所 基于深度图及imu的高动态场景三维重建方法、***

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170200317A1 (en) * 2016-01-12 2017-07-13 Siemens Healthcare Gmbh Perspective representation of a virtual scene component
US20180205941A1 (en) * 2017-01-17 2018-07-19 Facebook, Inc. Three-dimensional scene reconstruction from set of two dimensional images for consumption in virtual reality
CN108492316A (zh) * 2018-02-13 2018-09-04 视辰信息科技(上海)有限公司 一种终端的定位方法和装置
CN108765548A (zh) * 2018-04-25 2018-11-06 安徽大学 基于深度相机的三维场景实时重建方法
CN109961506A (zh) * 2019-03-13 2019-07-02 东南大学 一种融合改进Census图的局部场景三维重建方法
CN110221690A (zh) * 2019-05-13 2019-09-10 Oppo广东移动通信有限公司 基于ar场景的手势交互方法及装置、存储介质、通信终端
CN110310362A (zh) * 2019-06-24 2019-10-08 中国科学院自动化研究所 基于深度图及imu的高动态场景三维重建方法、***

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112203076A (zh) * 2020-09-16 2021-01-08 青岛小鸟看看科技有限公司 Vr***中多摄像头曝光中心点的对齐方法、***
WO2022057834A1 (zh) * 2020-09-16 2022-03-24 青岛小鸟看看科技有限公司 Vr***中多摄像头曝光中心点的对齐方法、***
CN112203076B (zh) * 2020-09-16 2022-07-29 青岛小鸟看看科技有限公司 Vr***中多摄像头曝光中心点的对齐方法、***
US11962749B2 (en) 2020-09-16 2024-04-16 Qingdao Pico Technology Co., Ltd. Virtual reality interaction method, device and system
CN112837372A (zh) * 2021-03-02 2021-05-25 浙江商汤科技开发有限公司 数据生成方法及装置、电子设备和存储介质
CN114399597A (zh) * 2022-01-12 2022-04-26 贝壳找房(北京)科技有限公司 场景空间模型的构建方法、装置以及存储介质
CN114399597B (zh) * 2022-01-12 2022-10-28 贝壳找房(北京)科技有限公司 场景空间模型的构建方法、装置以及存储介质

Similar Documents

Publication Publication Date Title
CN111156998B (zh) 一种基于rgb-d相机与imu信息融合的移动机器人定位方法
JP6860488B2 (ja) 複合現実システム
CN110073313B (zh) 使用母设备和至少一个伴随设备与环境交互
KR101687017B1 (ko) 머리 착용형 컬러 깊이 카메라를 활용한 손 위치 추정 장치 및 방법, 이를 이용한 맨 손 상호작용 시스템
JP7304934B2 (ja) 仮想コンテンツワーピングを伴う複合現実システムおよびそれを使用して仮想コンテンツを生成する方法
CN111476907A (zh) 基于虚拟现实技术的定位及三维场景重建装置、方法
CN106980368A (zh) 一种基于视觉计算及惯性测量单元的虚拟现实交互设备
CN114897754B (zh) 使用来自先前视角的渲染内容和非渲染内容生成新帧
US11494987B2 (en) Providing augmented reality in a web browser
US11158108B2 (en) Systems and methods for providing a mixed-reality pass-through experience
US11436790B2 (en) Passthrough visualization
CN110062916A (zh) 用于模拟可移动平台的操作的视觉模拟***
CN111721281B (zh) 位置识别方法、装置和电子设备
JP2015114905A (ja) 情報処理装置、情報処理方法およびプログラム
CN110555869A (zh) 提取增强现实***中主要和次级运动的方法和***
CN109040525B (zh) 图像处理方法、装置、计算机可读介质及电子设备
US11504608B2 (en) 6DoF inside-out tracking game controller
CN110969706B (zh) 增强现实设备及其图像处理方法、***以及存储介质
CN111161398A (zh) 一种图像生成方法、装置、设备及存储介质
CN113238556A (zh) 一种基于虚拟现实的水面无人船控制***及方法
US11275434B2 (en) Information processing apparatus, information processing method, and storage medium
WO2023240999A1 (zh) 虚拟现实场景确定方法、装置及***
CN114972514B (zh) Slam定位方法、装置、电子设备和可读存储介质
CN116205980A (zh) 一种移动空间内虚拟现实定位追踪方法及装置
CN113822936A (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