CN112270709B - 地图构建方法及装置、计算机可读存储介质和电子设备 - Google Patents
地图构建方法及装置、计算机可读存储介质和电子设备 Download PDFInfo
- Publication number
- CN112270709B CN112270709B CN202011261402.9A CN202011261402A CN112270709B CN 112270709 B CN112270709 B CN 112270709B CN 202011261402 A CN202011261402 A CN 202011261402A CN 112270709 B CN112270709 B CN 112270709B
- Authority
- CN
- China
- Prior art keywords
- current
- plane
- data
- image
- 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.)
- Active
Links
- 238000010276 construction Methods 0.000 title claims abstract description 45
- 238000000034 method Methods 0.000 claims abstract description 42
- 239000013598 vector Substances 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 238000000605 extraction Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 238000001514 detection method Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000005259 measurement Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000006978 adaptation Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 229910000831 Steel Inorganic materials 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material 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
- 230000000452 restraining effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000010959 steel Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- 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/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Databases & Information Systems (AREA)
- Remote Sensing (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Graphics (AREA)
- Evolutionary Computation (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
Abstract
本公开提供了一种地图构建方法、地图构建装置、计算机可读存储介质和电子设备,涉及计算机视觉技术领域。该地图构建方法包括:获取当前RGB图像,提取当前RGB图像的特征点,结合当前RGB图像的特征点和已有图像特征点,确定当前点云数据;计算深度相机在世界坐标系下的当前位姿,获取深度相机采集的当前深度图像,并利用当前深度图像和深度相机在世界坐标系下的位姿,确定与当前深度图像对应的空间平面数据;结合当前深度图像对应的空间平面数据和已有平面数据,生成当前平面数据;将当前点云数据与当前平面数据匹配,得到局部地图,以便构建环境地图。本公开可以提高地图构建的准确度。
Description
技术领域
本公开涉及计算机视觉技术领域,具体而言,涉及一种地图构建方法、地图构建装置、计算机可读存储介质和电子设备。
背景技术
随着计算机视觉技术的发展,计算机可以实现对周围环境的观察和理解,这在游戏、军事、教育、医疗、制造业等领域均有广阔的应用前景,尤其为增强现实(AugmentedReality,AR)应用的落地提供了基础。
目前,在恢复三维环境的空间结构方面,通常采用彩色图像之间的几何约束关系来得到空间点云。然而,所获取到的点云无法与真实空间尺度一致,精确度不高。
发明内容
本公开提供一种地图构建方法、地图构建装置、计算机可读存储介质和电子设备,进而至少在一定程度上克服在构建三维地图时精确度低的问题。
根据本公开的第一方面,提供了一种地图构建方法,包括:获取当前RGB图像,提取当前RGB图像的特征点,结合当前RGB图像的特征点和已有图像特征点,确定当前点云数据;计算深度相机在世界坐标系下的当前位姿,获取深度相机采集的当前深度图像,并利用当前深度图像和深度相机在世界坐标系下的位姿,确定与当前深度图像对应的空间平面数据;结合当前深度图像对应的空间平面数据和已有平面数据,生成当前平面数据;将当前点云数据与当前平面数据匹配,得到局部地图,以便构建环境地图。
根据本公开的第二方面,提供了一种地图构建装置,包括:点云数据确定模块,用于获取当前RGB图像,提取当前RGB图像的特征点,结合当前RGB图像的特征点和已有图像特征点,确定当前点云数据;空间平面确定模块,用于计算深度相机在世界坐标系下的当前位姿,获取深度相机采集的当前深度图像,并利用当前深度图像和深度相机在世界坐标系下的位姿,确定与当前深度图像对应的空间平面数据;平面结合模块,用于结合当前深度图像对应的空间平面数据和已有平面数据,生成当前平面数据;地图构建模块,用于将当前点云数据与当前平面数据匹配,得到局部地图,以便构建环境地图。
根据本公开的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的地图构建方法。
根据本公开的第四方面,提供了一种电子设备,包括处理器;存储器,用于存储一个或多个程序,当一个或多个程序被处理器执行时,使得所述处理器实现上述的地图构建方法。
在本公开的一些实施例所提供的技术方案中,结合当前RGB图像的特征点和已有图像特征点,确定当前点云数据,并基于深度信息生成当前平面数据,将当前点云数据与当前平面数据匹配,得到局部地图,以便构建环境地图。本公开方案利用RGB图像的信息以及由深度图像得到的平面信息,构建约束,形成局部地图,随着时间推进,通过不断获取当前的信息,由局部地图扩展为整个环境地图,所构建的地图与真实空间尺度一致,结合有深度信息以及平面与点的约束关系,提高了构建出的地图的准确度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了应用本公开实施例的地图构建方案的场景示意图;
图2示出了本公开示例性实施方式的电子设备的结构示意图;
图3示意性示出了根据本公开的示例性实施方式的地图构建方法的流程图;
图4示出了本公开的深度相机的深度测量点与RGB相机的RGB图像测量区域相比较的示意图;
图5示出了根据本公开实施例的当前平面的示意图;
图6示意性示出了根据本公开的示例性实施方式的地图构建装置的方框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。另外,下面所有的术语“第一”、“第二”仅是为了区分的目的,不应作为本公开内容的限制。
图1示出了应用本公开实施例的地图构建方案的场景示意图。
如图1所示,在室内环境中,用户可以点击移动终端界面上AR应用程序的图标,启动AR应用程序后,移动终端可以检测当前环境是否为已构建地图的环境。具体的,可以通过GPS(Global Positioning System,全球定位系统)的定位结果确定当前所处环境是否已构建地图。例如,预先将构建的地图与现实实际地理位置绑定,如果确定出当前环境的位置与已构建地图的地址位置一致,则可以确定当前环境为已构建地图的环境,在这种情况下,移动终端可以利用已构建的地图执行定位操作,以便实现跟踪、导航等过程。
在确定出当前环境未构建有地图的情况下,如图1所示,可以例如弹出“是否开启相机来执行AR建图过程”的判断弹窗,在用户选择“是”的情况下,终端设备可以开启相机(包括RGB相机和深度相机),以执行本公开所述的地图构建过程。
应当理解的是,本公开所述的地图构建过程可以在建图初始化操作之后,本公开对此不做限制。
针对移动终端执行的地图构建过程,首先,移动终端可以获取由RGB相机拍摄的当前RGB图像,提取当前RGB图像的特征点,并结合当前RGB图像的特征点和已有图像特征点,确定当前点云数据。另外,移动终端可以计算深度相机在世界坐标系下的当前位姿,获取深度相机采集的当前深度图像,利用当前深度图像和深度相机在世界坐标系下的位姿,确定与当前深度图像对应的空间平面数据,并结合当前深度图像对应的空间平面数据和已有平面数据,生成当前平面数据。
接下来,移动终端可以将当前点云数据与当前平面数据匹配,通过将点云上的特征点与基于深度信息确定出的当前平面进行约束,得到局部地图。
需要说明的是,上述仅是一次处理过程,通过不断确定出的RGB图像和深度图像,并结合上述过程,使局部地图不断更新扩展,最终可以构建出环境的地图。
在移动终端构建出地图后,可以将地图发送至云端保存,以便后续处于该环境下的设备可以利用云端的地图进行定位,进而可以实现跟踪、导航等过程。
应当说明的是,本公开示例性实施方式的地图构建方法一般由移动终端执行,相应地,下面描述的地图构建装置一般配置在移动终端中。
本公开所述的移动终端可以是手机、平板电脑、AR眼镜、AR头盔等设备,本公开对此不做限制。
图2示出了适于用来实现本公开示例性实施方式的电子设备的示意图。本公开示例性实施方式所述的移动终端可以被配置为如图2所示的形式。需要说明的是,图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 IdentificationModule,SIM)卡接口295等。其中传感器模块280可以包括深度传感器、压力传感器、陀螺仪传感器、气压传感器、磁传感器、加速度传感器、距离传感器、接近光传感器、指纹传感器、温度传感器、触摸传感器、环境光传感器及骨传导传感器等。
可以理解的是,本公开实施例示意的结构并不构成对电子设备200的具体限定。在本公开另一些实施例中,电子设备200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或软件和硬件的组合实现。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(Application Processor,AP)、调制解调处理器、图形处理器(Graphics ProcessingUnit,GPU)、图像信号处理器(Image Signal Processor,ISP)、控制器、视频编解码器、数字信号处理器(Digital Signal Processor,DSP)、基带处理器和/或神经网络处理器(Neural-etwork Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。另外,处理器210中还可以设置存储器,用于存储指令和数据。
电子设备200可以通过ISP、摄像模组291、视频编解码器、GPU、显示屏290及应用处理器等实现拍摄功能。在一些实施例中,电子设备200可以包括至少两个摄像模组291,分别为拍摄RGB图像的摄像模组和拍摄深度图像的摄像模组,即RGB相机和深度相机。
内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器221可以包括存储程序区和存储数据区。外部存储器接口222可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备200的存储能力。
就本公开所述的地图构建方案而言,移动终端可以利用RGB相机获取当前RGB图像,处理器210可以对当前RGB图像进行特征提取,得到当前RGB图像的特征点,并结合当前RGB图像和已有图像特征点,确定当前点云数据。另外,处理器210可以计算深度相机在世界坐标系下的位姿,在获取深度相机采集的当前深度图像的情况下,处理器210利用当前深度图像和深度相机在世界坐标系下的位姿,确定当前深度图像对应的空间平面数据,并结合当前深度图像对应的空间平面数据和已有平面数据,生成当前平面数据。接下来,处理器210可以将当前点云数据与当前平面数据匹配,得到局部地图,以便结合此局部地图构建整个环境地图。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
图3示意性示出了本公开的示例性实施方式的地图构建方法的流程图。参考图3,所述地图构建方法可以包括以下步骤:
S32.获取当前RGB图像,提取当前RGB图像的特征点,结合当前RGB图像的特征点和已有图像特征点,确定当前点云数据。
在本公开的示例性实施方式中,当前RGB图像为当前时刻通过RGB相机获取到的图像,例如,为通过单目相机获取到的当前时刻的RGB图像。另外,当前RGB图像可以是移动终端执行初始化操作后获取的任意RGB图像,可以理解的是,本公开所述的地图构建方法以执行一次处理过程为例进行描述,随着时间的推进以及扫描环境操作的执行,不断对不同时刻下的图像进行分析处理,以构建环境地图。
获取到当前RGB图像后,可以对当前RGB图像进行特征提取,以确定出当前RGB图像的特征点。
本公开示例性实施方式的特征提取算法可以包括但不限于FAST特征点检测算法、DOG特征点检测算法、Harris特征点检测算法、SIFT特征点检测算法、SURF特征点检测算法等。对应的特征描述子可以包括但不限于BRIEF特征点描述子、BRISK特征点描述子、FREAK特征点描述子等。本公开对此不做限制。
通过上述特征提取算法与特征描述子进行组合,可以确定一组特征提取模式,并采用此特征提取模式对场景图像进行特征提取。
另外,可以将不同特征提取算法与特征描述子进行组合,以确定出多组特征提取模式。例如,一组特征提取模式可以为FAST特征点检测算法和BRIEF特征点描述子,另一组特征提取模式可以为DOG特征点检测算法和FREAK特征点描述子。基于上面的描述,本领域技术人员可以理解的是,针对一张图像,不同的特征提取模式提取出的特征点的类型存在差异,例如,一组特征提取模式适合对强纹理场景进行特征提取,而另一种特征提取模式适合对弱纹理场景进行特征提取。
接下来,可以结合当前RGB图像的特征点和已有图像特征点,确定当前点云数据。其中,已有图像特征点可以是在当前RGB图像之前获取到的RGB图像的特征点,例如,当前RGB图像是执行地图构建操作后第100张图像,那么已有图像特征点可以是前99张图像所确定出的图像特征点。又例如,当前RGB图像为第三张图像,而前两张图像用于执行初始化过程,则已有图像特征点可以是执行初始化操作所采用的特征点。
具体的,可以将当前RGB图像的特征点与已有图像特征点进行组合(或称为合并),确定出当前点云数据。其中,组合的过程可以包括剔除相同特征点的操作。可以理解的是,确定出的当前点云包括当前已确定出的所有特征点的信息。
S34.计算深度相机在世界坐标系下的当前位姿,获取深度相机采集的当前深度图像,并利用当前深度图像和深度相机在世界坐标系下的位姿,确定与当前深度图像对应的空间平面数据。
在本公开的示例性实施方式中,深度相机可以是dToF(direct Time of Flight,直接飞行时间)相机,所采集的深度图像为稀疏深度图像,也就是说,对应的RGB图像中仅有个别位置存在深度测量值。图4示出了本公开的深度相机的深度测量点与RGB相机的RGB图像测量区域相比较的示意图,如图4所示,深度测量点41相比于RGB测量区域42,可以被配置为行列排布的方式,然而,图示的排布方式仅是示例,本公开对此不做限制。
利用稀疏深度图像来执行本公开的地图构建过程,算法简单,消耗资源少,适用于例如手机的移动终端。
另外,本公开涉及的深度相机还可以是iToF(indirect Time of Flight,间接飞行时间)相机,本公开对此也不做限制。
针对计算深度相机在世界坐标系下的当前位姿的过程:
首先,终端设备可以利用步骤S32中得到的当前RGB图像,确定出RGB相机在世界坐标系下的当前位姿。
具体的,可以获取中间RGB图像的特征点,该中间RGB图像可以是在获取当前RGB图像之前获取的图像。以当前RGB图像为第三帧图像为例,中间RGB图像可以是第二帧图像。
利用中间RGB图像的特征点和当前RGB图像的特征点,可以确定中间RGB图像与当前RGB图像的二维匹配点信息。也就是说,确定出既属于中间RGB图像又属于当前RGB图像的特征点。
鉴于在处理中间RGB图像的过程中,已得到中间RGB图像对应的三维点信息,由此,可以确定出中间RGB图像的与上述二维匹配点信息对应的三维点信息。再结合三维点信息和当前RGB图像的特征点,可以确定RGB相机在世界坐标系下的当前位姿。具体的,可以通过求解透视n点(Perspective-n-Point,PnP)问题的方式,确定出RGB相机在世界坐标系下的当前位姿,本公开对此不做限制。
接下来,移动终端可以根据RGB相机在世界坐标系下的当前位姿以及预先确定的RGB相机空间与深度相机空间的转换关系,计算出深度相机在世界坐标系下的当前位姿。
具体的,可以预先通过标定的方式对RGB相机与深度相机进行标定,得到外参标定参数,即得到RGB相机空间与深度相机空间的转换关系。若将该外参标定参数记为将RGB相机在世界坐标系下的当前位姿记为Tcamera,则深度相机在世界坐标系下的当前位姿Tdepth可以表示为公式1:
移动终端可以获取深度相机采集的当前深度图像,并利用当前深度图像和深度相机在世界坐标系下的位姿,确定与当前深度图像对应的空间平面数据。应当注意的是,本公开示例性实施方式确定出的空间平面仅依赖于深度信息。
首先,移动终端可以对当前深度图像进行三角剖分,具体的,进行Delaunay三角剖分,得到二维三角拓扑关系。由此,可以得到一系列有稀疏深度点构成的二维三角形。
接下来,可以利用二维三角拓扑关系以及深度相机在世界坐标系下的位姿,确定与当前深度图像对应的三维空间网格。也就是说,利用深度相机在世界坐标系下的位姿,将二维三角形转换为三维空间网格。本领域技术人员可以知晓,这种将二维信息转换为三维信息的过程可以基于小孔原理来实现,本公开对此过程不做限制。
例如,假设二维坐标点p=(u,v),深度相机内参矩阵为K,深度相机在世界坐标系下的位姿为Tdepth(包括旋转和平移),则可以采用公式2和公式3实现转换的过程:
然后,可以根据三维空间网格,确定出与当前深度图像对应的空间平面数据。具体的,可以对是三维空间网格中各网格进行聚类,以确定出该空间平面数据。在借助于Delaunay三角剖分算法形成网格的实例中,可以理解的是,对形成的三维空间三角形进行聚类,以得到与当前深度图像对应的空间平面。
一方面,可以确定各网格的法向量,以网格为三角形为例,对应三个顶点分别为P1、P2、P3,则该网格的法向量可以通过公式4得到:
在确定各网格的法向量后,可以基于各网格的法向量进行聚类,得到中间平面数据。具体的,可以将法向量距离在一阈值范围内的法向量所属的网格聚为同一平面。其中,法向量距离可以通过公式5得到:
其中,N1和N2为三维空间网格中任意两个网格的法向量。
另一方面,在实现基于法向量的聚类操作后,还可以在中间平面数据所针对的每一个平面中,按网格的中心点距离进行聚类,以确定出与当前深度图像对应的空间平面数据。
网格的中心点可以表示为Po,如果仍将网格的三个顶点记为P1、P2、P3,则可以利用公式6得到中心点:
Po=(P1+P2+P3)=3 (公式6)
可以理解的是,在对中心点进行聚类后,可以确定出网格所属平面的编号。
S36.结合当前深度图像对应的空间平面数据和已有平面数据,生成当前平面数据。
在本公开的示例性实施方式中,已有平面数据可以是基于在当前深度图像之前获取到的深度图像而得到的平面数据,具体过程与步骤S34中确定当前深度图像对应空间平面数据的过程类似,不再赘述。
可以将当前深度图像对应的空间平面数据与已有平面数据进行组合(或称为合并),确定出当前平面数据。
具体的,参考图5,确定出的当前平面可以包括未更新平面、更新平面和新增平面。其中,未更新平面指的是已有平面中不受当前深度图像对应的空间平面数据影响的平面;更新平面指的是已有平面中受当前深度图像对应的空间平面数据影响的平面,即,基于当前深度图像对应的空间平面数据使已有平面数据对应的已有平面中出现更新的平面;新增平面指的是由当前深度图像对应的空间平面产生的新的平面。
然而,在另一实施例中,确定出的当前平面也可以仅包括更新平面和新增平面,而可能不包括未更新平面。
S38.将当前点云数据与当前平面数据匹配,得到局部地图,以便构建环境地图。
针对当前平面数据对应的未更新平面,维持当前点云数据与未钢芯平面的数据的匹配关系。也就是说,针对未更新平面,没有新的特征点与其进行匹配,原本已匹配的特征点仍与其匹配。
针对当前平面数据对应的更新平面,移动终端可以从当前点云数据中确定与更新平面对应的待匹配点数据,记为第一待匹配点数据,并构建第一待匹配点云数据与更新平面的距离约束项,即优化这些特征点与更新平面的距离,使距离为0,以将第一待匹配点云数据与更新平面的数据匹配。
容易理解的是,针对更新平面,即使之前已有特征点与其匹配,在步骤S38中,也需要重新构建特征点与平面的匹配关系。
针对当前平面数据对应的新增平面,移动终端可以从当前点云数据中的当前RGB图像的特征点中,确定与新增平面对应的待匹配点数据,记为第二待匹配点数据,并构建第二待匹配点云数据与新增平面的距离约束项,即优化这些特征点与新增平面的距离,使距离为0,以将第二待匹配点云数据与新增平面的数据匹配。
另外,移动终端可以确定出当前平面数据所对应平面间的边界,如果一特征点对应到边界上,则可以例如随机确定出该特征点所属的平面。
在将当前点云数据与当前平面数据匹配后,也就是说,在将当前总计得到的RGB特征点与当前总计基于深度信息得到的平面进行匹配后,优化了特征点与平面的距离,得到局部地图。
应当注意的是,上述仅是一次处理过程,通过不断确定出的RGB图像和深度图像,并结合上述过程,使局部地图不断更新扩展,再结合回环检测过程,最终可以构建出环境的地图。
在移动终端构建出地图后,可以将地图发送至云端保存,以便后续处于该环境下的设备可以利用云端的地图进行定位,进而可以实现跟踪、AR导航等过程。
应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
进一步的,本示例实施方式中还提供了一种地图构建装置。
图6示意性示出了本公开的示例性实施方式的地图构建装置的方框图。参考图6,根据本公开的示例性实施方式的地图构建装置6可以包括点云数据确定模块61、空间平面确定模块63、平面结合模块65和地图构建模块67。
具体的,点云数据确定模块61可以用于获取当前RGB图像,提取当前RGB图像的特征点,结合当前RGB图像的特征点和已有图像特征点,确定当前点云数据;空间平面确定模块63可以用于计算深度相机在世界坐标系下的当前位姿,获取深度相机采集的当前深度图像,并利用当前深度图像和深度相机在世界坐标系下的位姿,确定与当前深度图像对应的空间平面数据;平面结合模块65可以用于结合当前深度图像对应的空间平面数据和已有平面数据,生成当前平面数据;地图构建模块67可以用于将当前点云数据与当前平面数据匹配,得到局部地图,以便构建环境地图。
根据本公开的示例性实施例,空间平面确定模块63计算深度相机在世界坐标系下的当前位姿的过程可以被配置为执行:利用当前RGB图像确定RGB相机在世界坐标系下的当前位姿;根据RGB相机在世界坐标系下的当前位姿以及预先确定的RGB相机空间与深度相机空间之间的转换关系,计算深度相机在世界坐标系下的当前位姿。
根据本公开的示例性实施例,空间平面确定模块63利用当前RGB图像确定RGB相机在世界坐标系下的当前位姿的过程可以被配置为执行:获取中间RGB图像的特征点,中间RGB图像为在获取当前RGB图像之前获取的图像;利用中间RGB图像的特征点和当前RGB图像的特征点,确定中间RGB图像与当前RGB图像的二维匹配点信息;确定中间RGB图像的与二维匹配点信息对应的三维点信息;结合三维点信息确定RGB相机在世界坐标系下的当前位姿。
根据本公开的示例性实施例,空间平面确定模块63利用当前深度图像和深度相机在世界坐标系下的位姿确定与当前深度图像对应的空间平面数据的过程可以被配置为执行:对当前深度图像进行三角剖分,得到二维三角拓扑关系;利用二维三角拓扑关系以及深度相机在世界坐标系下的位姿,确定与当前深度图像对应的三维空间网格;根据三维空间网格,确定出空间平面数据。
根据本公开的示例性实施例,空间平面确定模块63根据三维空间网格确定出空间平面数据的过程可以被配置为执行:对三维空间网格中各网格进行聚类,确定出空间平面数据。
根据本公开的示例性实施例,空间平面确定模块63对三维空间网格中各网格进行聚类以确定出空间平面数据的过程可以被配置为执行:确定各网格的法向量,基于各网格的法向量进行聚类,得到中间平面数据;在中间平面数据所针对的每一个平面中,按网格的中心点距离进行聚类,以确定出空间平面数据。
根据本公开的示例性实施例,当前平面数据包括更新平面的数据,更新平面为基于当前深度图像对应的空间平面数据使已有平面数据对应的已有平面中出现更新的平面。在这种情况下,地图构建模块67可以被配置为执行:从当前点云数据中确定与更新平面对应的第一待匹配点云数据;构建第一待匹配点云数据与更新平面的距离约束项,以将第一待匹配点云数据与更新平面的数据匹配。
根据本公开的示例性实施例,当前平面数据还包括未更新平面的数据以及新增平面的数据。在这种情况下,地图构建模块67还可以被配置为执行:从当前点云数据中的当前RGB图像的特征点中,确定与新增平面对应的第二待匹配点云数据;构建第二待匹配点云数据与新增平面的距离约束项,以将第二待匹配点云数据与新增平面的数据匹配;其中,针对未更新平面,维持当前点云数据与未更新平面的数据的匹配关系。
根据本公开的示例性实施例,当前深度图像为稀疏深度图像。
由于本公开实施方式的地图构建装置的各个功能模块与上述方法实施方式中相同,因此在此不再赘述。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。
Claims (9)
1.一种地图构建方法,其特征在于,包括:
获取当前RGB图像,提取所述当前RGB图像的特征点,结合所述当前RGB图像的特征点和已有图像特征点,确定当前点云数据;
利用所述当前RGB图像确定RGB相机在世界坐标系下的当前位姿,根据所述RGB相机在所述世界坐标系下的当前位姿以及预先确定的RGB相机空间与深度相机空间之间的转换关系,计算深度相机在所述世界坐标系下的当前位姿,获取所述深度相机采集的当前深度图像,并对所述当前深度图像进行三角剖分,得到二维三角拓扑关系,利用所述二维三角拓扑关系以及所述深度相机在所述世界坐标系下的位姿,确定与所述当前深度图像对应的三维空间网格,根据所述三维空间网格,确定出与所述当前深度图像对应的空间平面数据;
结合所述当前深度图像对应的空间平面数据和已有平面数据,生成当前平面数据;
将所述当前点云数据与所述当前平面数据匹配,得到局部地图,以便构建环境地图;
其中,所述当前平面数据包括更新平面的数据,所述更新平面为基于所述当前深度图像对应的空间平面数据使所述已有平面数据对应的已有平面中出现更新的平面;将所述当前点云数据与所述当前平面数据匹配包括:
从所述当前点云数据中确定与所述更新平面对应的第一待匹配点云数据;
构建所述第一待匹配点云数据与所述更新平面的距离约束项,以将所述第一待匹配点云数据与所述更新平面的数据匹配。
2.根据权利要求1所述的地图构建方法,其特征在于,利用所述当前RGB图像确定RGB相机在所述世界坐标系下的当前位姿包括:
获取中间RGB图像的特征点,所述中间RGB图像为在获取所述当前RGB图像之前获取的图像;
利用所述中间RGB图像的特征点和所述当前RGB图像的特征点,确定所述中间RGB图像与所述当前RGB图像的二维匹配点信息;
确定所述中间RGB图像的与所述二维匹配点信息对应的三维点信息;
结合所述三维点信息和所述当前RGB图像的特征点,确定所述RGB相机在所述世界坐标系下的当前位姿。
3.根据权利要求1所述的地图构建方法,其特征在于,根据所述三维空间网格,确定出所述空间平面数据,包括:
对所述三维空间网格中各网格进行聚类,确定出所述空间平面数据。
4.根据权利要求3所述的地图构建方法,其特征在于,对所述三维空间网格中各网格进行聚类,确定出所述空间平面数据,包括:
确定各所述网格的法向量,基于各所述网格的法向量进行聚类,得到中间平面数据;
在所述中间平面数据所针对的每一个平面中,按网格的中心点距离进行聚类,以确定出所述空间平面数据。
5.根据权利要求1所述的地图构建方法,其特征在于,所述当前平面数据还包括未更新平面的数据以及新增平面的数据;其中,将所述当前点云数据与所述新增平面的数据匹配包括:
从所述当前点云数据中的所述当前RGB图像的特征点中,确定与所述新增平面对应的第二待匹配点云数据;
构建所述第二待匹配点云数据与所述新增平面的距离约束项,以将所述第二待匹配点云数据与所述新增平面的数据匹配;
其中,针对所述未更新平面,维持所述当前点云数据与所述未更新平面的数据的匹配关系。
6.根据权利要求1至5中任一项所述的地图构建方法,其特征在于,所述当前深度图像为稀疏深度图像。
7.一种地图构建装置,其特征在于,包括:
点云数据确定模块,用于获取当前RGB图像,提取所述当前RGB图像的特征点,结合所述当前RGB图像的特征点和已有图像特征点,确定当前点云数据;
空间平面确定模块,用于利用所述当前RGB图像确定RGB相机在世界坐标系下的当前位姿,根据所述RGB相机在所述世界坐标系下的当前位姿以及预先确定的RGB相机空间与深度相机空间之间的转换关系,计算深度相机在所述世界坐标系下的当前位姿,获取所述深度相机采集的当前深度图像,并对所述当前深度图像进行三角剖分,得到二维三角拓扑关系,利用所述二维三角拓扑关系以及所述深度相机在所述世界坐标系下的位姿,确定与所述当前深度图像对应的三维空间网格,根据所述三维空间网格,确定出与所述当前深度图像对应的空间平面数据;
平面结合模块,用于结合所述当前深度图像对应的空间平面数据和已有平面数据,生成当前平面数据;
地图构建模块,用于将所述当前点云数据与所述当前平面数据匹配,得到局部地图,以便构建环境地图;
其中,所述当前平面数据包括更新平面的数据,所述更新平面为基于所述当前深度图像对应的空间平面数据使所述已有平面数据对应的已有平面中出现更新的平面;所述地图构建模块被配置为执行:
从所述当前点云数据中确定与所述更新平面对应的第一待匹配点云数据;
构建所述第一待匹配点云数据与所述更新平面的距离约束项,以将所述第一待匹配点云数据与所述更新平面的数据匹配。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至6中任一项所述的地图构建方法。
9.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述处理器执行时,使得所述处理器实现如权利要求1至6中任一项所述的地图构建方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011261402.9A CN112270709B (zh) | 2020-11-12 | 2020-11-12 | 地图构建方法及装置、计算机可读存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011261402.9A CN112270709B (zh) | 2020-11-12 | 2020-11-12 | 地图构建方法及装置、计算机可读存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112270709A CN112270709A (zh) | 2021-01-26 |
CN112270709B true CN112270709B (zh) | 2024-05-14 |
Family
ID=74339074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011261402.9A Active CN112270709B (zh) | 2020-11-12 | 2020-11-12 | 地图构建方法及装置、计算机可读存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112270709B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113256718B (zh) * | 2021-05-27 | 2023-04-07 | 浙江商汤科技开发有限公司 | 定位方法和装置、设备及存储介质 |
CN113724332B (zh) * | 2021-11-04 | 2022-01-18 | 贝壳技术有限公司 | 相机相对位姿的确定方法、电子设备和存储介质 |
CN117315176A (zh) * | 2023-10-07 | 2023-12-29 | 北京速度时空信息有限公司 | 一种高精度地图生成方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110221690A (zh) * | 2019-05-13 | 2019-09-10 | Oppo广东移动通信有限公司 | 基于ar场景的手势交互方法及装置、存储介质、通信终端 |
CN110738200A (zh) * | 2019-12-23 | 2020-01-31 | 广州赛特智能科技有限公司 | 车道线3d点云地图构建方法、电子设备及存储介质 |
CN111442722A (zh) * | 2020-03-26 | 2020-07-24 | 达闼科技成都有限公司 | 定位方法、装置、存储介质及电子设备 |
CN111476894A (zh) * | 2020-05-14 | 2020-07-31 | 小狗电器互联网科技(北京)股份有限公司 | 三维语义地图构建方法、装置、存储介质及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102647351B1 (ko) * | 2017-01-26 | 2024-03-13 | 삼성전자주식회사 | 3차원의 포인트 클라우드를 이용한 모델링 방법 및 모델링 장치 |
-
2020
- 2020-11-12 CN CN202011261402.9A patent/CN112270709B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110221690A (zh) * | 2019-05-13 | 2019-09-10 | Oppo广东移动通信有限公司 | 基于ar场景的手势交互方法及装置、存储介质、通信终端 |
CN110738200A (zh) * | 2019-12-23 | 2020-01-31 | 广州赛特智能科技有限公司 | 车道线3d点云地图构建方法、电子设备及存储介质 |
CN111442722A (zh) * | 2020-03-26 | 2020-07-24 | 达闼科技成都有限公司 | 定位方法、装置、存储介质及电子设备 |
CN111476894A (zh) * | 2020-05-14 | 2020-07-31 | 小狗电器互联网科技(北京)股份有限公司 | 三维语义地图构建方法、装置、存储介质及电子设备 |
Non-Patent Citations (2)
Title |
---|
基于RGB-D摄像机的室内三维彩色点云地图构建;赵矿军;;哈尔滨商业大学学报(自然科学版)(01);全文 * |
基于RGB-D深度相机的室内场景重建;梅峰;刘京;李淳;王兆其;;中国图象图形学报(10);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112270709A (zh) | 2021-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112270709B (zh) | 地图构建方法及装置、计算机可读存储介质和电子设备 | |
CN109947886B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN111325842B (zh) | 地图构建方法、重定位方法及装置、存储介质和电子设备 | |
Liang et al. | Image based localization in indoor environments | |
CN110807361B (zh) | 人体识别方法、装置、计算机设备及存储介质 | |
CN112927363B (zh) | 体素地图构建方法及装置、计算机可读介质和电子设备 | |
US20210274358A1 (en) | Method, apparatus and computer program for performing three dimensional radio model construction | |
CN109151442B (zh) | 一种图像拍摄方法及终端 | |
CN110570460B (zh) | 目标跟踪方法、装置、计算机设备及计算机可读存储介质 | |
CN111833447A (zh) | 三维地图构建方法、三维地图构建装置及终端设备 | |
CN111784776B (zh) | 视觉定位方法及装置、计算机可读介质和电子设备 | |
CN112598780B (zh) | 实例对象模型构建方法及装置、可读介质和电子设备 | |
CN110361005B (zh) | 定位方法、定位装置、可读存储介质及电子设备 | |
JP2022550948A (ja) | 3次元顔モデル生成方法、装置、コンピュータデバイス及びコンピュータプログラム | |
CN113936085B (zh) | 三维重建方法和装置 | |
JP2014032623A (ja) | 画像処理装置 | |
CN110956571B (zh) | 基于slam进行虚实融合的方法及电子设备 | |
CN113570649B (zh) | 基于三维模型的重力方向确定方法、装置、计算机设备 | |
CN111814811B (zh) | 图像信息提取方法、训练方法及装置、介质和电子设备 | |
CN114677350A (zh) | 连接点提取方法、装置、计算机设备及存储介质 | |
CN116109769A (zh) | 三维模型建立方法、装置、电子设备及存储介质 | |
CN112598732B (zh) | 目标设备定位方法、地图构建方法及装置、介质、设备 | |
CN112233146B (zh) | 位置推荐方法及装置、计算机可读存储介质和电子设备 | |
CN114419189A (zh) | 地图构建方法及装置、电子设备、存储介质 | |
CN114119405A (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 |