CN117132728A - 构建地图的方法、装置、电子设备及存储介质 - Google Patents
构建地图的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117132728A CN117132728A CN202311396329.XA CN202311396329A CN117132728A CN 117132728 A CN117132728 A CN 117132728A CN 202311396329 A CN202311396329 A CN 202311396329A CN 117132728 A CN117132728 A CN 117132728A
- Authority
- CN
- China
- Prior art keywords
- sub
- point cloud
- map
- pose
- maps
- 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
- 238000000034 method Methods 0.000 title claims abstract description 104
- 238000005457 optimization Methods 0.000 claims abstract description 97
- 238000012545 processing Methods 0.000 claims abstract description 69
- 238000007499 fusion processing Methods 0.000 claims abstract description 18
- 239000011159 matrix material Substances 0.000 claims description 75
- 230000008569 process Effects 0.000 claims description 38
- 238000013519 translation Methods 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 13
- 238000010276 construction Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000003993 interaction Effects 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 101150064138 MAP1 gene Proteins 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 101100400452 Caenorhabditis elegans map-2 gene Proteins 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000007526 fusion splicing Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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
- 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/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3804—Creation or updating of map data
- G01C21/3807—Creation or updating of map data characterised by the type of data
- G01C21/3811—Point data, e.g. Point of Interest [POI]
-
- 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/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3804—Creation or updating of map data
- G01C21/3833—Creation or updating of map data characterised by the source of data
- G01C21/3841—Data obtained from two or more sources, e.g. probe vehicles
-
- 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/005—Tree description, e.g. octree, quadtree
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4038—Image mosaicing, e.g. composing plane images from plane sub-images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/761—Proximity, similarity or dissimilarity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/32—Indexing scheme for image data processing or generation, in general involving image mosaicing
-
- 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/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
-
- 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/30248—Vehicle exterior or interior
- G06T2207/30252—Vehicle exterior; Vicinity of vehicle
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Geometry (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Automation & Control Theory (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种构建地图的方法、装置、电子设备及存储介质,该方法包括:获取多个子地图与多个子地图中每个子地图对应的初始位姿;对多个子地图中任意两个子地图的目标区域对应的初始位姿进行第一优化处理,得到目标位姿;根据目标位姿,对任意两个子地图中各子地图中第一区域对应的初始位姿进行第二优化处理,得到各个子地图的第一优化位姿;根据目标位姿和第一优化位姿,对多个子地图进行融合处理,得到目标地图;基于本方案,在对多个子地图进行融合处理时,能够消除多个子地图之间相邻区域的点云重影问题;确保融合处理后得到的目标地图是全局最优且局部最优的地图,提高构建的地图的精度。
Description
技术领域
本申请涉及地图构建技术领域,并且更具体地,涉及一种构建地图的方法、装置、电子设备及存储介质。
背景技术
对大规模区域构建点云地图时,需要多次采集数据;通过对多份点云地图进行融合处理,得到大规模区域对应的完整地图。
由于惯导系统存在累计误差,或者,卫星定位信号的不稳定性,使得对同一物体进行多次采集时,得到的点云的位置信息可能存在差异;此外,在对多份点云地图进行融合处理时,拼接位置处容易存在点云的重影,偏移等问题,使得构建的地图的精度较低;因此,如何提高地图的精度是当前亟需解决的问题。
发明内容
本申请提供了一种构建地图的方法、装置、电子设备及存储介质,该方法在对多个子地图进行融合处理时,能够消除多个子地图之间相邻区域的点云重影、偏移等问题;确保融合处理得到的目标地图是全局最优且局部最优的地图,提高地图的精度。
第一方面,提供了一种构建地图的方法,该方法包括:获取多个子地图与多个子地图中每个子地图对应的初始位姿,初始位姿用于表示车辆采集子地图时的车辆位姿;对多个子地图中任意两个子地图的目标区域对应的初始位姿进行第一优化处理,得到目标位姿,目标区域用于表征任意两个子地图的相邻区域;根据目标位姿,对任意两个子地图中各子地图中第一区域对应的初始位姿进行第二优化处理,得到各个子地图的第一优化位姿,第一区域用于表征各子地图中除目标区域之外的区域;根据目标位姿和第一优化位姿,对多个子地图进行融合处理,得到目标地图。
在上述技术方案中,对多个子地图中任意两个子地图的目标区域对应的初始位姿进行第一优化处理,得到目标位姿;根据目标位姿,对任意两个子地图中各子地图中第一区域对应的初始位姿进行第二优化处理,得到各个子地图的第一优化位姿;根据目标位姿和第一优化位姿,对多个子地图进行融合处理,得到目标地图。通过本申请的方案,一方面由于目标区域为多个子地图拼接时任意两个子地图的相邻区域,通过对相邻区域对应的初始位姿进行优化处理,使得相邻区域的位姿更准确;在对两个子地图进行融合处理时,能够消除相邻区域的点云重影或者偏移等问题;另一方面,根据目标区域优化后的目标位姿对各个子地图中除目标区域之外的其他区域对应的位姿进行优化处理,使得各个子地图能够实现局部最优;因此,通过上述方法对多个子地图进行融合处理时,能够消除多个子地图之间相邻区域的点云重影、偏移等问题;确保融合处理得到的目标地图是全局最优且局部最优的地图,提高地图的精度。
在一种实现方式中,上述多个子地图与目标地图为点云地图。
结合第一方面,在某些可能的实现方式中,获取多个子地图与多个子地图中每个子地图对应的初始位姿,包括:
获取多个车辆采集的多个子地图与多个子地图中每个子地图对应的初始位姿;其中,多个车辆与多个子地图一一对应。
在上述技术方案中,获取多个车辆采集的多个子地图与多个子地图中每个子地图对应的初始位姿,可以理解为有多个车辆采集和构建子地图,相较于一个车辆分多次采集各个子地图相比,构建子地图的效率更高。
在一种实现方式中,多个车辆可以同时采集多个子地图。
结合第一方面和上述实现方式,在某些可能的实现方式中,多个子地图包括目标子地图,上述方法还包括:
基于关键帧点云选取策略从车辆采集的多帧点云数据中选取关键帧点云数据,关键帧点云选取策略包括两帧点云数据对应的初始位姿之间的距离大于预设距离阈值,或者,两帧点云数据对应的初始位姿的旋转角度大于预设角度阈值;根据关键帧点云数据和关键帧点云数据对应的初始位姿,得到目标子地图。
在上述技术方案中,基于关键帧点云选取策略从车辆采集的多帧点云数据中选取关键帧点云数据,根据关键帧点云数据和关键帧点云数据对应的初始位姿,得到目标子地图;由于车辆采集的点云数据非常庞大,因此,选取关键帧点云数据,构建目标子地图,可以减少数据处理量,提高点云数据处理效率。
结合第一方面和上述实现方式,在某些可能的实现方式中,多个子地图包括第一子地图与第二子地图,第一子地图与第二子地图包括目标区域,对多个子地图中任意两个子地图的目标区域对应的初始位姿进行第一优化处理,得到目标位姿,包括:
建立第一子地图中目标区域的第一点云与第二子地图中目标区域的第二点云之间的索引矩阵,索引矩阵表征第一点云的标识和第二点云的标识之间的对应关系;将第一点云对应的初始位姿、第二点云对应的初始位姿与索引矩阵输入至因子图优化库,得到目标位姿。
在上述技术方案中,建立第一子地图中目标区域的第一点云与第二子地图中目标区域的第二点云之间的索引矩阵;将第一点云对应的初始位姿、第二点云对应的初始位姿与索引矩阵输入至因子图优化库,得到目标位姿;通过建立索引矩阵,可以快速找到具有相邻关系的点云,从而使得因子优化库可以快速计算第一点云和第二点云的相对位姿关系,从而快速得到优化后的目标位姿。
在一种实现方式中,上述因子优化库包括但不限于:GTSAM、Ceres Solver和g2o。
结合第一方面和上述实现方式,在某些可能的实现方式中,上述方法还包括:
基于索引矩阵获取第一点云的数据和第二点云的数据;对第一点云的数据和第二点云的数据进行第一配准处理,得到初始旋转平移矩阵;基于初始旋转平移矩阵对第一点云的数据和第二点云的数据进行第二配准处理,得到目标旋转平移矩阵;其中,第二配准处理的精度大于第一配准处理的精度,目标旋转平移矩阵用于表征第一点云的数据与第二点云的数据之间的偏移量。
在上述技术方案中,对第一点云的数据和第二点云的数据进行第一配准处理,得到初始旋转平移矩阵;基于初始旋转平移矩阵对第一点云的数据和第二点云的数据进行第二配准处理,得到目标旋转平移矩阵。由于第一点云和第二点云来自不同的采集设备,采集设备的位姿不同,因此对第一点云数据和第二点云数据进行配准处理,能够将第一点云数据和第二点云数据通过旋转平移矩阵转换至相同位姿的数据,使得第一点云和第二点云能够更好的对齐,从而提高点云地图的精度;此外,在第一配准处理的基础上进行第二配准处理,且第二配准处理的精度大与第一配准处理,可以使得点云配准的精度更高。
结合第一方面和上述实现方式,在某些可能的实现方式中,根据目标位姿,对任意两个子地图中各子地图中第一区域对应的初始位姿进行第二优化处理,得到各个子地图的第一优化位姿,包括:
计算目标区域对应的初始位姿与目标位姿的位姿偏移量;基于位姿偏移量对第一区域的初始位姿进行第二优化处理,得到第一优化位姿。
在上述技术方案中,计算目标区域对应的初始位姿与目标位姿的位姿偏移量;基于位姿偏移量对第一区域的初始位姿进行第二优化处理,得到第一优化位姿;由于目标位姿为优化后的位姿,第一区域和目标区域都属于一个子地图;因此,基于优化后的目标位姿对第一区域的位姿进行优化,可以提高整个子地图的位姿的准确性。
结合第一方面和上述实现方式,在某些可能的实现方式中,上述方法还包括:
根据多个子地图的图像特征相似度,确定目标区域;或者,根据多个子地图中的点云的物理位置,确定目标区域。
第二方面,提供了一种构建地图的装置,该装置包括:第一获取模块,用于获取多个子地图与多个子地图中每个子地图对应的初始位姿,初始位姿用于表示车辆采集子地图时的车辆位姿;第一优化模块,用于对多个子地图中任意两个子地图的目标区域对应的初始位姿进行第一优化处理,得到目标位姿,目标区域用于表征任意两个子地图的相邻区域;第二优化模块,用于根据目标位姿,对任意两个子地图中各子地图中第一区域对应的初始位姿进行第二优化处理,得到各个子地图的第一优化位姿,第一区域用于表征各子地图中除目标区域之外的区域;处理模块,用于根据目标位姿和第一优化位姿,对多个子地图进行融合处理,得到目标地图。
结合第二方面,在某些可能的实现方式中,第一获取模块具体用于获取多个车辆采集的多个子地图与多个子地图中每个子地图对应的初始位姿;其中,多个车辆与多个子地图一一对应。
结合第二方面和上述实现方式,在某些可能的实现方式中,多个子地图包括目标子地图,装置还包括:选取模块,用于基于关键帧点云选取策略从车辆采集的多帧点云数据中选取关键帧点云数据,关键帧点云选取策略包括两帧点云数据对应的初始位姿之间的距离大于预设距离阈值,或者,两帧点云数据对应的初始位姿的旋转角度大于预设角度阈值;构建模块,用于根据关键帧点云数据和关键帧点云数据对应的初始位姿,得到目标子地图。
结合第二方面和上述实现方式,在某些可能的实现方式中,多个子地图包括第一子地图与第二子地图,第一优化模块具体用于建立第一子地图中目标区域的第一点云与第二子地图中目标区域的第二点云之间的索引矩阵,索引矩阵表征第一点云的标识和第二点云的标识之间的对应关系;将第一点云对应的初始位姿、第二点云对应的初始位姿与索引矩阵输入至因子图优化库,得到目标位姿。
结合第二方面和上述实现方式,在某些可能的实现方式中,装置还包括:第二获取模块,用于基于索引矩阵获取第一点云的数据和第二点云的数据;第一配准处理模块,用于对第一点云的数据和第二点云的数据进行第一配准处理,得到初始旋转平移矩阵;第二配准处理模块,用于基于初始旋转平移矩阵对第一点云的数据和第二点云的数据进行第二配准处理,得到目标旋转平移矩阵;其中,第二配准处理的精度大于第一配准处理的精度,目标旋转平移矩阵用于表征第一点云的数据与第二点云的数据之间的偏移量。
结合第二方面和上述实现方式,在某些可能的实现方式中,第二优化模块具体用于计算目标区域对应的初始位姿与目标位姿的位姿偏移量;基于位姿偏移量对第一区域的初始位姿进行第二优化处理,得到第一优化位姿。
结合第二方面和上述实现方式,在某些可能的实现方式中,装置还包括确定模块,用于根据多个子地图的图像特征相似度,确定目标区域;或者,根据多个子地图中的点云的物理位置,确定目标区域。
第三方面,提供一种电子设备,包括存储器和处理器。该存储器用于存储可执行程序代码,该处理器用于从存储器中调用并运行该可执行程序代码,使得该电子设备执行上述第一方面或第一方面任意一种可能的实现方式中的方法。
第四方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行上述第一方面或第一方面任意一种可能的实现方式中的方法。
第五方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行上述第一方面或第一方面任意一种可能的实现方式中的方法。
附图说明
图1是本申请实施例提供的一种多个采集车辆和云端的交互场景示意图;
图2是本申请实施例提供的一种构建地图的方法的示意性流程图;
图3是本申请实施例提供的一种目标区域的示意图;
图4为本申请实施例提供的一种相邻区域确定方法的示意性流程图;
图5是本申请实施例提供的一种采集车辆与云端的交互示意图;
图6是本申请实施例提供的一例系统架构图;
图7是本申请实施例提供的一种构建地图的装置的结构示意图;
图8是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行清楚、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B:文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者多个该特征。
首先,对本申请实施例中涉及到的名词术语进行解释说明。
点云地图:点云地图是一种通过雷达等传感器获取的地图信息,将其以点云数据的形式储存,用来描述地面上物体和环境的三维模型。
点云数据:点云数据是由激光雷达或摄像机等设备采集得到的三维空间中的离散点集合,每一个点包含有三维坐标(X,Y,Z),有些可能含有颜色信息(RGB)或反射强度信息。
位姿:位姿代表位置和姿态;其中,位置为X,Y,Z坐标;姿态为刚体与OX轴的夹角RX、与OY轴的夹角RY、与OZ轴的夹角RZ。
实时动态(Real - time kinematic,RTK)载波相位差分技术:是一种实时处理两个测量站载波相位观测量的差分方法,将基准站采集的载波相位发给用户接收机,进行求差解算坐标。
图1是本申请实施例提供的一种多个采集车辆和云端的交互场景示意图。
示例性的,如图1所示,当需要构建大规模区域的点云地图时,由于区域过大,例如区域面积达到几百万平方米甚至几千万平方米,一台车辆很难一次性采集完整区域的数据;此时,可以通过多个采集车辆进行数据采集;例如,采集车辆1、采集车辆2、采集车辆N分多次采集,每采集一次数据就会构建一份点云地图,最终采集车辆1、采集车辆2以及采集车辆N将采集的多份点云地图上传至云端110,由云端110将多份点云地图进行拼接得到一份完整区域的点云地图。
相关技术中,主要通过以下两种方式对多份点云地图进行拼接:1、通过RTK的绝对位置,将多份点云地图叠加在一起生成整个区域的点云地图;2、将多份点云地图整体融合在一起优化。
但是,由于惯导系统存在累计误差,或者,卫星定位信号的不稳定性,使得对同一物体进行多次采集时,得到的点云的位置信息可能存在差异;此外,在对多份点云地图进行融合处理时,拼接位置处容易存在点云的重影,偏移等问题,使得构建的地图的精度较低。
基于上述技术问题,本申请实施例提供一种构建地图的方法、装置、电子设备及存储介质,该方法在对多个子地图进行融合处理时,能够消除多个子地图之间相邻区域的点云重影、偏移等问题;确保融合处理得到的目标地图是全局最优且局部最优的地图,提高地图的精度。
下面结合图2至图6对本申请提供的构建地图的方法进行详细说明。
图2是本申请实施例提供的一种构建地图的方法的示意性流程图。
应理解,该方法可以应用于如图1中所示的场景,该方法可以由图1中所示的云端110执行,或者,也可以由图1中所示的采集车辆执行。需要说明的是,当该方法在采集车辆中执行时,采集车辆需要获取其他采集车辆所采集的地图数据。
下面本申请实施例以在云端110中执行该方法为例,对本申请提供的构建地图的方法进行说明。
示例性的,如图2所示,该方法200包括:
S210,获取多个子地图与多个子地图中每个子地图对应的初始位姿。
其中,子地图是大现实场景中部分现实场景的虚拟地图,可以为根据采集设备(例如采集车辆)采集的图像信息、点云信息、热度信息和/或深度信息直接构建得到的虚拟地图。
可选地,子地图可以为点云地图,点云地图可以指的是由三维3D点构建的高精地图,可以用于自动驾驶或智能驾驶等应用场景中。
其中,初始位姿用于表示采集车辆采集子地图时的车辆位姿;应理解,一个子地图可以是通过一个采集车辆采集的多帧点云构建得到的,多帧点云中的每帧点云可以对应车辆的一个初始位姿;初始位姿可以用于表示采集该帧点云的采集车辆在三维世界坐标系的位置信息;例如,一帧点云的初始位姿可以包括车辆的经度、纬度和高度。
在一种可能的实现方式中,一片区域的地图数据可以由一个采集车辆分多次采集,每采集一次生成一份子地图。
在另一种可能的实现方式中,一片区域的地图数据可以由多个采集车辆分开采集,生成多份子地图,当采集数据的采集车辆为多个时,步骤S210的过程可以为:获取多个车辆采集的多个子地图与多个子地图的初始位姿。
其中,多个车辆与多个子地图一一对应,例如,A车采集的子地图为地图A,B车采集的子地图为地图B。
可选地,多个子地图可以为多个车辆同时采集的地图。
示例性的,在各个车辆上安装Visual LiDAR、全球导航卫星系统(GlobalNavigation Satellite System,GNSS)、全球定位系统(Global Positioning System,GPS)或惯性测量单元(Inertial Measurement Unit,IMU)等,通过车辆在目标区域内的行进过程中,采集各帧点云,同时可以采用位置定位技术对车辆进行初步定位,比如,通过GPS+IMU,采用里程计Odometry或激光雷达LiDAR同步定位与建图(Simultaneous LocalizationAnd Mapping,SLAM)等方式对车辆进行初步定位,以得到点云数据,将各个车辆采集的点云数据作为各个车辆构建子地图的基础数据,从而构建出多个子地图。
进一步地,云端获取多个车辆采集的多个子地图以及多个子地图对应的初始位姿。
在上述技术方案中,获取多个车辆采集的多个子地图与多个子地图中每个子地图对应的初始位姿,可以理解为有多个车辆采集和构建子地图,相较于一个车辆分多次采集各个子地图相比,构建子地图的效率更高。
S220,对多个子地图中任意两个子地图的目标区域对应的初始位姿进行第一优化处理,得到目标位姿。
其中,目标区域用于表征任意两个子地图的相邻区域。
可选地,目标区域可以是两个子地图的相邻区域,也可以是三个子地图的相邻区域,还可以是更多子地图的相邻区域,本申请实施例对此不做具体限定。
下面结合图3对目标区域进行详细描述。
图3是本申请实施例提供的一种目标区域的示意图。
示例性的,如图3所示,以子地图为两个为例,子地图A、子地图B相邻的区域为C,则C为目标区域,应理解,C区域中包括子地图A中的点云数据,还包括子地图B中的点云数据,以及,C区域中属于子地图A中的点云数据的位姿为子地图A对应的初始位姿;C区域中属于子地图B中的点云数据的位姿为子地图B对应的初始位姿。
应理解,在对多个子地图进行拼接时,C区域中属于子地图A中的点云数据会以子地图A对应的初始位姿转换到世界坐标系下,C区域中属于子地图B中的点云数据会以子地图B对应的初始位姿转换到世界坐标下下,由于子地图A对应的初始位姿和子地图B对应的初始位姿不同,因此,转换后的点云无法很好的重合,会出现重影问题。
在此说明,目标区域的确定方式在后文中进行了详细描述。
下面,以两个子地图为例,对目标区域对应的初始位姿进行位姿优化的过程进行说明。
其中,两个子地图可以为第一子地图(例如子地图A)和第二子地图(例如子地图B),第一子地图和第二地图均包括目标区域,进一步地,对目标区域的初始位姿进行位姿优化的过程可以为:建立第一子地图中目标区域的第一点云与第二子地图中目标区域的第二点云之间的索引矩阵;将第一点云对应的初始位姿、第二点云对应的初始位姿与索引矩阵输入至因子图优化库,得到目标位姿。
其中,第一点云为目标区域中属于第一子地图的点云集合,第二点云为目标区域中属于第二子地图的点云集合。
进一步地,将第一点云和第二点云中所有相邻的两帧点云之间建立索引矩阵,该索引矩阵表征第一点云的标识与第二点云的标识之间的对应关系。
应理解,第一点云的点云集合为一个数组,每一个点云对应的一个标识,也即数组的序号,通过该标识可以找到与之对应的唯一点云。也即,通过索引矩阵可以找到第一点云中和第二点云中所有相邻的两帧点云。
进一步地,将第一点云的初始位姿和第二点云的初始位姿以及索引矩阵输入至因子图优化库中,因子图优化库可以根据第一点云的初始位姿、第二点云的初始位姿以及索引矩阵自动对第一点云的初始位姿和第二点云的初始位姿进行位姿优化,输出最终优化后的多帧目标位姿。
可选地,因子图优化库可以为GTSAM,GTSAM是一个开源的因子图优化库,使用C++实现。它提供了一系列的因子和变量类型,包括了视觉、IMU、GNSS和路标等因子和位姿、速度、IMU偏差和路标等变量。GTSAM还提供了多种优化器,并支持基于纯图的优化和基于混合图的优化。GTSAM的优化速度快,并且支持全局优化和局部优化。
可选地,因子图优化库还可以为Ceres Solver、g2o等。
应理解,上述针对两个子地图的相邻区域的位姿优化过程进行了介绍,当涉及更多子地图相邻时,可以参照上述两个子地图之间的相邻区域的位姿优化过程,进行两两子地图之间的优化。
在上述技术方案中,建立第一子地图中目标区域的第一点云与第二子地图中目标区域的第二点云之间的索引矩阵;将第一点云对应的初始位姿、第二点云对应的初始位姿与索引矩阵输入至因子图优化库,得到目标位姿;通过建立索引矩阵,可以快速找到具有相邻关系的点云,从而使得因子优化库可以快速计算第一点云和第二点云的相对位姿关系,从而快速得到优化后的目标位姿。
S230,根据目标位姿,对任意两个子地图中各子地图中第一区域对应的初始位姿进行第二优化处理,得到各个子地图的第一优化位姿。
其中,第一区域表征各子地图中除目标区域之外的区域,参见图3中(a)图所示,即第一区域为子地图A中除C区域之外的区域,和子地图B中除C区域之外的区域。
进一步地,通过S220对目标区域的初始位姿进行优化后,将目标区域的目标位姿进行固定,以目标位姿为参考,对第一区域的初始位姿进行优化处理,该过程可以为:计算目标区域对应的初始位姿与目标位姿的位姿偏移量;基于位姿偏移量对第一区域的初始位姿进行第二优化处理,得到第一优化位姿。
应理解,由于一份点云地图中点云是连续的,因此,对相邻区域对应的初始位姿优化完成后,可以将目标位姿作为参考,对应的优化第一区域对应的初始位姿。
示例性的,子地图A由5帧点云组成,5帧点云为连续的点云,其中第一帧点云为目标区域中的点云,第一帧点云的初始位姿为(x1,y1,z1,α1,β1,γ1),因子图优化库优化后的目标位姿为(x2,y2,z2,α2,β2,γ2),根据第一帧点云的初始位姿和目标位姿可以计算出位姿之间的偏移量,例如位姿偏移量为ΔW,则根据ΔW对子地图A中的其他4帧点云按照位姿偏移量ΔW变换到第一优化位姿。
可选地,对第一区域的初始位姿进行优化处理的过程还可以为:将目标位姿和第一区域的初始位姿输入至因子图优化库,通过因子图优化库对第一区域的初始位姿进行优化处理,输出第一区域的第一优化位姿。
S240,根据目标位姿和第一优化位姿,对多个子地图进行融合处理,得到目标地图。
其中,融合处理可以是指对多个子地图进行拼接,得到一个完整的目标地图。
示例性的,通过位姿优化后,目标区域对应的位姿为目标位姿,第一区域对应的位姿为第一优化位姿,将目标区域的点云数据通过目标位姿转换到世界坐标下;同理,将第一区域的点云数据通过第一优化位姿转换到世界坐标下,由于每个子地图的点云是连续的,多个子地图的目标区域的点云也是连续的,将转换到世界坐标系下的相邻的点云进行拼接,以得到目标地图。
在上述技术方案中,对多个子地图中任意两个子地图的目标区域对应的初始位姿进行第一优化处理,得到目标位姿;根据目标位姿,对任意两个子地图中各子地图中第一区域对应的初始位姿进行第二优化处理,得到各个子地图的第一优化位姿;根据目标位姿和第一优化位姿,对多个子地图进行融合处理,得到目标地图。通过本申请的方案,一方面由于目标区域为多个子地图拼接时任意两个子地图的相邻区域,通过对相邻区域对应的初始位姿进行优化处理,使得相邻区域的位姿更准确;在对两个子地图进行融合处理时,能够消除相邻区域的点云重影或者偏移等问题;另一方面,根据目标区域优化后的目标位姿对各个子地图中除目标区域之外的其他区域对应的位姿进行优化处理,使得各个子地图能够实现局部最优;因此,通过上述方法对多个子地图进行融合处理时,能够消除多个子地图之间相邻区域的点云重影、偏移等问题;确保融合处理得到的目标地图是全局最优且局部最优的地图,提高地图的精度。
在一些实施例中,为了进一步提高点云地图的精度,还可以对第一点云和第二点云进行点云配准处理,具体过程可以为:基于索引矩阵获取第一点云的数据和第二点云的数据;对第一点云的数据和第二点云的数据进行第一配准处理,得到初始旋转平移矩阵;基于初始旋转平移矩阵对第一点云的点云数据和第二点云的点云数据进行第二配准处理,得到目标旋转平移矩阵。
点云配准的原理是激光雷达由于受到环境等各种因素的限制,在点云采集过程中单次采集到的点云只能覆盖目标物表面的一部分,为了得到完整的目标物点云信息,就需要对目标物进行多次扫描,并将得到的三维点云数据进行坐标系的刚体变换,把目标物上的局部点云数据转换到同一坐标系下。
其中,第一配准处理可以为粗配准,即点云的初始配准,可以通过第一点云的数据和第二点云的数据计算出一个旋转平移矩阵的初值,将第一点云和第二点云尽可能地对齐。可选地,粗配准的方法可以为RANSAC、4PCS等。
经过第一配准处理后,第一点云和第二点云重叠部分已经大致对齐,但精度还不够,因此,需要对第一点云数据和第二点云数据进行第二配准处理,第二配准处理可以为精配准,也即在粗配准得到的初值的基础上,进一步计算第一点云和第二点云的目标旋转平移矩阵。可选地,精配准的方法可以为ICP、NDT、深度学习等。
在上述技术方案中,对第一点云的数据和第二点云的数据进行第一配准处理,得到初始旋转平移矩阵;基于初始旋转平移矩阵对第一点云的数据和第二点云的数据进行第二配准处理,得到目标旋转平移矩阵。由于第一点云和第二点云来自不同的采集设备,采集设备的坐标系不同,因此对第一点云数据和第二点云数据进行配准处理,能够将第一点云数据和第二点云数据通过旋转平移矩阵转换到同一个坐标系下,使得第一点云和第二点云能够更好的对齐,从而提高点云地图的精度,此外,在第一配准处理的基础上进行第二配准处理,且,第二配准处理的精度大与第一配准处理,可以使得点云配准的精度更高。
可选地,多个子地图可以包括目标子地图,目标子地图可以由关键帧点云数据构建而成,该过程可以为:基于关键帧点云选取策略从车辆采集的多帧点云数据中选取关键帧点云数据;根据关键帧点云数据和关键帧点云数据对应的初始位姿,得到目标子地图。
其中,关键帧点云选取策略包括两帧点云数据对应的初始位姿之间的距离大于预设距离阈值,或者,两帧点云数据对应的初始位姿的旋转角度大于预设角度阈值。
其中,预设距离阈值可以为1米、5米;预设角度阈值可以为10度,应理,预设距离阈值和预设角度阈值可以由本领域的技术人员自行设定,本申请实施例对此不做具体限定。
可选地,车辆可以根据关键帧点云选取策略从采集的多帧点云数据中,筛选出关键帧点云数据 ,还可以根据关键帧点云采集策略,在采集多帧点云数据时,只采集关键帧点云数据。
其中,关键帧点云采集策略和关键帧选取策略可以为相同的策略,并且可以由相关人员提前将上述关键帧点云选取策略或者关键帧点云采集策略存储在车辆上。
在上述技术方案中,基于关键帧点云选取策略从车辆采集的多帧点云数据中选取关键帧点云数据,根据关键帧点云数据和关键帧点云数据对应的初始位姿,得到目标子地图;由于车辆采集的点云数据非常庞大,因此,选取关键帧点云数据,构建目标子地图,可以减少数据处理量,提高点云数据处理效率。
下面对确定目标区域的实现方式进行详细描述。
一种可能的实现方式,可以根据多个子地图的图像特征相似度,确定目标区域。
示例性的,识别多个子地图的图像特征,当至少两个子地图的部分图像特征的相似度大于预设值时,确定该部分区域为目标区域。
另一种可能的实现方式,根据多个子地图中的点云的物理位置,确定目标区域。
示例性的,可以根据RTK的位置数据,将位置数据一致或相近的点云所在的区域确定为目标区域。
图4为本申请实施例提供的一种相邻区域确定方法的示意性流程图。
示例性的,如图4所示,S410,确定第一点云地图中所有点云的物理位置和第二点云地图中所有点云的物理位置。
应理解,点云地图中点的物理位置指的是该点表示的对象在真实世界的物理位置,该物理位置可用三维物理坐标表示,通常包括x、y和z方向三个维度。
S420,以第一点云地图中所有点云为基础构建k-维树。
其中,k-维树是计算机科学中使用的一种数据结构,用来组织表示k维空间中的点集合,是一种带有约束条件的二分查找树。
S430,若通过k-维树搜索到第二点云地图中物理位置与第一点云地图中点云的物理位置的距离符合预设条件的点云,则根据符合预设条件的第二点云中的点云与第一点云地图中的点云确定目标区域。
其中,预设条件可以根据需求设置,例如,预设条件为“点云的之间的物理位置小于第一阈值,第一阈值为5米”。
下面,以在采集车辆中构建子地图,云端对多份子地图进行融合拼接为例,对采集车辆与云端的交互过程进行介绍。
图5是本申请实施例提供的一种采集车辆与云端的交互示意图。
示例性的,如图5中所示,采集车辆包括采集车辆1和采集车辆2,应理解,采集车辆还可以包括更多,本申请实施例以两个采集车辆为例进行说明。
S501,采集车辆1根据传感器采集的数据得到点云数据。
示例性的,传感器数据包括激光雷达数据、惯性测量单元数据、RTK数据、图像数据等。点云数据是指通过激光雷达(例如多线激光雷达)逐帧扫描获取的点云数据。
S502,基于关键帧点云选取策略筛选出关键帧点云数据。
示例性的,S502的实现方式可以参见上述目标子地图构建过程的相关描述,此处不再赘述。
可选地,在选取关键帧点云之前,可以先对点云数据进行预处理,预处理包括采样和滤波处理,首先获取激光雷达采集的点云数据,然后对点云数据进行降采样,减少了大量点云数据,提高点云数据的质量,再然后对降采样后的点云数据进行滤波处理,大大减少了滤波的计算,从而有效地提高了后续点云数据的处理效率。
S503,基于关键帧点云数据和对应的关键帧初始位姿构建子地图1。
示例性的,每个关键帧点云数据对应一个世界坐标系下的关键帧初始位姿,通过关键帧初始位姿将关键帧点云数据从传感器的坐标系下转换到世界坐标系,得到子地图1。
S504,上传子地图1、关键帧点云数据和关键帧初始位姿。
示例性的,采集车辆1在车端基于关键帧点云数据和关键帧初始位姿先构建完整的子地图1,然后将子地图1、和构建子地图1的关键帧点云数据和关键帧初始位姿上传至云端。
可选地,采集车辆1可以仅将构建子地图1的关键帧点云数据和关键帧初始位姿上传至云端,由云端完成子地图1的构建。
S505,采集车辆2根据传感器采集的数据得到点云数据。
S506,基于关键帧点云选取策略筛选出关键帧点云数据。
S507,基于关键帧点云数据和对应的关键帧初始位姿构建子地图2。
S508,上传子地图2、关键帧点云数据和关键帧初始位姿。
应理解,S505至S508和S501至S504可以在不同的采集车辆上执行,例如采集车辆1执行S501至S504的过程时,采集车辆2可以同步执行S505至S508,具体实现过程可以参见S501至S504的相关描述。
S509,确定子地图1和子地图2的相邻区域。
可选地,云端可以识别子地图1和子地图2的图像特征,根据图像特征相似度确定相邻区域。
可选地,还可以获取子地图1中和子地图2中点云的物理位置,根据点云的物理位置确定相邻区域,具体过程可以参见上述实施例的相关描述,此处不再赘述。
S510,建立子地图1中相邻区域中的第一点云和子地图2中相邻区域的第二点云之间的索引矩阵。
其中,第一点云为子地图1中相邻区域的点云集合,第二点云为子地图中2相邻区域的点云集合,建立第一点云和第二点云中具有相邻关系的点云之间的关联关系,例如第一点云集合中的第2帧点云与第二点云集合中第50帧点云相邻,则建立第一点云集合中的第2帧点云的标识与第二点云集合中第50帧点云的标识之间的关联关系。
S511,将第一点云的初始位姿、第二点云的初始位姿和索引矩阵输入至因子图优化库对第一点云的初始位姿、第二点云的初始位姿进行位姿优化,得到目标位姿。
示例性的,将第一点云的初始位姿和第二点云的初始位姿按照顺序依次输入至因子图优化库中,同时将第一点云与第二点云之间的索引矩阵也输入因子图优化库中,因子图优化库根据索引矩阵可以找到具有相邻关系的两帧点云,并根据具有相邻关系的两帧点云的初始位姿计算出相对位姿关系,并根据相对位姿关系进行位姿优化,最终输出目标位姿。
S512,基于目标位姿对子地图1和子地图2中除相邻区域之外的区域的点云的初始位姿进行优化处理,得到第一优化位姿。
示例性的,S512的实现方式可以参见上述示例实施例中第一区域对应的初始位姿的优化过程的相关描述,此处不再赘述。
S513,基于索引矩阵获取第一点云的数据和第二点云的数据,对第一点云的数据和第二点云的数据进行点云配准。
应理解,S513与S512的执行过程可以不分先后顺序。
点云配准指的是输入相邻两帧点云,输出一个变换T,使得对其中一帧点云进行变换T后得到的点云与另一帧点云的重合程度尽可能高,使得两帧点云中对应于空间同一位置的点一一对应起来。
可选地,可以基于正态分布变换(Normal Distribution Transform,NDT)算法对第一点云和第二点云进行点云配准,NDT可以较好的获取前后两个目标之间的姿态变动关系以及匹配度等信息,故常用于匹配定位,地图构建等,而NDT最经典的应用就是激光点云的匹配,获取位姿变换,也就是旋转平移变化参数,其核心思想在于把源点云分成若干个网格,根据设置好的参数,求解每个网格的多维正态分布并计算其概率分布模型,当处在同坐标下的目标点云进入时,根据概率密度分布函数参数计算每个转换点在对应网格中的概率,累计所有网格的概率得到p,当这个概率p达到最大时,则找到了最优的匹配关系。
示例性,可以将第一点云作为源点云,将第二点云作为目标点云,采用NDT算法计算从第一点云变换至第二点云的旋转平移矩阵,根据旋转平移矩阵将源点云转换至目标点云。
S514,将第一点云的数据和第二点云的数据通过目标位姿转换到世界坐标系下,将第一子地图和第二子地图中除相邻区域之外的区域的点云的数据通过第一优化位姿转换到世界坐标系下,形成一份完整的地图。
示例性的,由于点云地图是点云数据通过位姿变换到世界坐标系下拼接而成的,因此将相邻区域的点云数据从雷达坐标下转换到世界坐标系下时,根据优化好的目标位姿将第一点云的数据和第二点云的数据转换到世界坐标系下,同理,将第一子地图和第二子地图中除相邻区域之外的区域的点云的数据转换到世界坐标系下时,根据优化好的第一优化位姿将相邻区域之外的区域的点云的数据转换到世界坐标系下,由于点云之间是连续的,通过S513将相邻区域的点云进行配准后,其他区域的点云变换过来也是连续的,从而可以形成一份完整的地图。
下面结合系统架构图,对执行本方案的各个模块进行介绍。
图6是本申请实施例提供的一例系统架构图。
示例性的,如图6所示,采集车辆1、采集车辆2以及采集车辆N中包括地图数据采集模块610,主要用于采集地图数据并构建子地图。
例如,云端包括融合拼接模块620,融合拼接模块620包括地图数据接收模块621、相邻位置识别模块622、回环检测模块623、全局优化模块624和局部优化模块625。
例如,地图数据接收模块621用于接收各个采集车辆发送的地图数据。
例如,相邻位置识别模块622用于识别多份子地图的相邻位置的点云。
例如,回环检测模块623用于建立相邻区域中相邻点云之间的回环关系矩阵,也可以理解为索引矩阵,同时,回环检测模块还用于基于索引矩阵进行点云配准。
例如,全局优化模块624,用于对相邻区域的位姿进行全局优化。
例如,局部优化模块625,用于对每份子地图除目标区域之外的位姿进行局部优化。
例如,最终融合拼接模块620基于优化好的相邻区域的位姿和其他区域的位姿对多份子地图进行拼接融合,得到完整的地图。
下面,结合上述系统架构,对本申请方式的执行步骤进行说明。
示例性的,步骤1:采集车辆的地图数据采集模块610获取传感器数据得到多帧点云数据,从多帧点云数据中提取关键帧点云数据,基于关键帧点云数据构建子地图,并且基于关键帧点云数据进行特征点云提取(如路沿、牌子、路杆等)或描述子提取,并将特征点云或描述子以及初始位姿数据上传至云端的地图数据接收模块621,此处,可以将特征点云或描述子以及初始位姿数据理解为地图数据。
步骤2:云端的地图数据接收模块621接收地图数据采集模块610发送的地图数据,并将接收到的地图数据进行标记,可以以采集车辆的标识作为标记,以区分不同采集车辆上传的地图数据,将带有标记的地图数据发送至相邻位置识别模块622。
步骤3:相邻位置识别模块622接收地图数据接收模块621发送的地图数据,通过RTK或视觉,识别出多份地图数据中的相邻位置的点云,将相邻位置的点云信息发送至回环检测模块623。
步骤4:回环检测模块623接收相邻位置的点云信息,基于距离或全局回环描述子,建立相邻区域中点云之间的回环关系矩阵,也可以理解为索引矩阵,同时,基于回环关系矩阵进行点云配准;同时,将回环关系矩阵发送至全局优化模块624。
步骤5:全局优化模块624接收回环关系矩阵,基于相邻区域的点云的初始位姿和回环关系矩阵进行位姿优化,得到优化后的目标位姿,并将目标位姿发送给局部优化模块625。
步骤6:局部优化模块625接收目标位姿,基于目标位姿对每份子地图除目标区域之外的位姿进行局部优化。
可选地,还可以将目标位姿按照标记下发至各个采集车辆,由各个采集车辆基于目标位姿进行各个子地图的局部优化。
步骤7:融合拼接模块620基于优化好的相邻区域的位姿和其他区域的位姿对多份子地图进行拼接融合,得到完整的地图。
应理解,上述举例说明是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的上述举例说明,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。
上文结合图1至图6详细描述了本申请实施例提供的构建地图的方法;下面将结合图7和图8详细描述本申请的装置实施例。应理解,本申请实施例中的装置可以执行前述本申请实施例的各种方法,即以下各种产品的具体工作过程,可以参考前述方法实施例中的对应过程。
图7是本申请实施例提供的一种构建地图的装置的结构示意图。
示例性的,如图7所示,该装置700包括:
第一获取模块710,用于获取多个子地图与多个子地图中每个子地图对应的初始位姿,初始位姿用于表示车辆采集子地图时的车辆位姿;
第一优化模块720,用于对多个子地图中任意两个子地图的目标区域对应的初始位姿进行第一优化处理,得到目标位姿,目标区域用于表征任意两个子地图的相邻区域;
第二优化模块730,用于根据目标位姿,对任意两个子地图中各子地图中第一区域对应的初始位姿进行第二优化处理,得到各个子地图的第一优化位姿,第一区域用于表征各子地图中除目标区域之外的区域;
处理模块740,用于根据目标位姿和第一优化位姿,对多个子地图进行融合处理,得到目标地图。
在一些实施例中,第一获取模块710具体用于获取多个车辆采集的多个子地图与多个子地图中每个子地图对应的初始位姿;其中,多个车辆与多个子地图一一对应。
可选地,多个子地图包括目标子地图,装置还包括:选取模块,用于基于关键帧点云选取策略从车辆采集的多帧点云数据中选取关键帧点云数据,关键帧点云选取策略包括两帧点云数据对应的初始位姿之间的距离大于预设距离阈值,或者,两帧点云数据对应的初始位姿的旋转角度大于预设角度阈值;构建模块,用于根据关键帧点云数据和关键帧点云数据对应的初始位姿,得到目标子地图。
在一些实施例中,多个子地图包括第一子地图与第二子地图,第一优化模块720具体用于建立第一子地图中目标区域的第一点云与第二子地图中目标区域的第二点云之间的索引矩阵,索引矩阵表征第一点云的标识和第二点云的标识之间的对应关系;将第一点云对应的初始位姿、第二点云对应的初始位姿与索引矩阵输入至因子图优化库,得到目标位姿。
可选地,装置还包括:第二获取模块,用于基于索引矩阵获取第一点云的数据和第二点云的数据;第一配准处理模块,用于对第一点云的数据和第二点云的数据进行第一配准处理,得到初始旋转平移矩阵;第二配准处理模块,用于基于初始旋转平移矩阵对第一点云的数据和第二点云的数据进行第二配准处理,得到目标旋转平移矩阵;其中,第二配准处理的精度大于第一配准处理的精度,目标旋转平移矩阵用于表征第一点云的数据与第二点云的数据之间的偏移量。
在一些实施例中,第二优化模块730具体用于计算目标区域对应的初始位姿与目标位姿的位姿偏移量;基于位姿偏移量对第一区域的初始位姿进行第二优化处理,得到第一优化位姿。
可选地,装置还包括确定模块,用于根据多个子地图的图像特征相似度,确定目标区域;或者,根据多个子地图中的点云的物理位置,确定目标区域。
图8是本申请实施例提供的一种电子设备的结构示意图。
示例性的,如图8所示,该电子设备800包括:存储器810和处理器820,其中,存储器810中存储有可执行程序代码811,处理器820用于调用并执行该可执行程序代码811执行一种构建地图的方法。
本实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中,上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,该电子设备可以包括:第一获取模块、第一优化模块、第二优化模块、处理模块等。需要说明的是,上述方法实施例涉及的各个步骤的所有相关内容的可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例提供的电子设备,用于执行上述一种构建地图的方法,因此可以达到与上述实现方法相同的效果。
在采用集成的单元的情况下,电子设备可以包括处理模块、存储模块。其中,处理模块可以用于对电子设备的动作进行控制管理。存储模块可以用于支持电子设备执行相互程序代码和数据等。
其中,处理模块可以是处理器或控制器,其可以实现或执行结合本申请公开内容所藐视的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,数字信号处理(digital signal processing,DSP)和微处理器的组合等等,存储模块可以是存储器。
本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述相关方法实现上述实施例中的一种构建地图的方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的一种构建地图的方法。
另外,本申请的实施例提供的电子设备具体可以是芯片,组件或模块,该电子设备可包括相连的处理器和存储器;其中,存储器用于存储指令,当电子设备运行时,处理器可调用并执行指令,以使芯片执行上述实施例中的一种构建地图的方法。
其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种构建地图的方法,其特征在于,所述方法包括:
获取多个子地图与所述多个子地图中每个子地图对应的初始位姿,所述初始位姿用于表示车辆采集子地图时的车辆位姿;
对所述多个子地图中任意两个子地图的目标区域对应的所述初始位姿进行第一优化处理,得到目标位姿,所述目标区域用于表征所述任意两个子地图的相邻区域;
根据所述目标位姿,对所述任意两个子地图中各子地图中第一区域对应的所述初始位姿进行第二优化处理,得到所述各个子地图的第一优化位姿,所述第一区域用于表征所述各子地图中除所述目标区域之外的区域;
根据所述目标位姿和所述第一优化位姿,对所述多个子地图进行融合处理,得到目标地图。
2.根据权利要求1所述的方法,其特征在于,所述获取多个子地图与所述多个子地图中每个子地图对应的初始位姿,包括:
获取多个车辆采集的所述多个子地图与所述多个子地图中每个子地图对应的所述初始位姿;其中,所述多个车辆与所述多个子地图一一对应。
3.根据权利要求1或2所述的方法,其特征在于,所述多个子地图包括目标子地图,所述方法还包括:
基于关键帧点云选取策略从车辆采集的多帧点云数据中选取关键帧点云数据,所述关键帧点云选取策略包括两帧点云数据对应的所述初始位姿之间的距离大于预设距离阈值,或者,两帧点云数据对应的所述初始位姿的旋转角度大于预设角度阈值;
根据所述关键帧点云数据和所述关键帧点云数据对应的所述初始位姿,得到所述目标子地图。
4.根据权利要求3所述的方法,其特征在于,所述多个子地图包括第一子地图与第二子地图,所述第一子地图与所述第二子地图包括所述目标区域,所述对所述多个子地图中任意两个子地图的目标区域对应的所述初始位姿进行第一优化处理,得到目标位姿,包括:
建立所述第一子地图中所述目标区域的第一点云与所述第二子地图中所述目标区域的第二点云之间的索引矩阵,所述索引矩阵表征所述第一点云的标识和所述第二点云的标识之间的对应关系;
将所述第一点云对应的所述初始位姿、所述第二点云对应的所述初始位姿与所述索引矩阵输入至因子图优化库,得到所述目标位姿。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
基于所述索引矩阵获取所述第一点云的数据和所述第二点云的数据;
对所述第一点云的数据和所述第二点云的数据进行第一配准处理,得到初始旋转平移矩阵;
基于所述初始旋转平移矩阵对所述第一点云的数据和所述第二点云的数据进行第二配准处理,得到目标旋转平移矩阵;其中,所述第二配准处理的精度大于所述第一配准处理的精度,所述目标旋转平移矩阵用于表征所述第一点云的数据与第二点云的数据之间的偏移量。
6.根据权利要求4或5所述的方法,其特征在于,所述根据所述目标位姿,对所述任意两个子地图中各子地图中第一区域对应的所述初始位姿进行第二优化处理,得到所述各个子地图的第一优化位姿,包括:
计算所述目标区域对应的所述初始位姿与所述目标位姿的位姿偏移量;
基于所述位姿偏移量对所述第一区域的所述初始位姿进行第二优化处理,得到所述第一优化位姿。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
根据所述多个子地图的图像特征相似度,确定所述目标区域;或者,
根据所述多个子地图中的点云的物理位置,确定所述目标区域。
8.一种构建地图的装置,其特征在于,所述装置包括:
第一获取模块,用于获取多个子地图与所述多个子地图中每个子地图对应的初始位姿,所述初始位姿用于表示车辆采集子地图时的车辆位姿;
第一优化模块,用于对所述多个子地图中任意两个子地图的目标区域对应的所述初始位姿进行第一优化处理,得到目标位姿,所述目标区域用于表征所述任意两个子地图的相邻区域;
第二优化模块,用于根据所述目标位姿,对所述任意两个子地图中各子地图中第一区域对应的所述初始位姿进行第二优化处理,得到所述各个子地图的第一优化位姿,所述第一区域用于表征所述各子地图中除所述目标区域之外的区域;
处理模块,用于根据所述目标位姿和所述第一优化位姿,对所述多个子地图进行融合处理,得到目标地图。
9.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行程序代码;
处理器,用于从所述存储器中调用并运行所述可执行程序代码,使得所述电子设备执行如权利要求1至7中任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被执行时,实现如权利要求1至7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311396329.XA CN117132728B (zh) | 2023-10-26 | 2023-10-26 | 构建地图的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311396329.XA CN117132728B (zh) | 2023-10-26 | 2023-10-26 | 构建地图的方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117132728A true CN117132728A (zh) | 2023-11-28 |
CN117132728B CN117132728B (zh) | 2024-02-23 |
Family
ID=88851200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311396329.XA Active CN117132728B (zh) | 2023-10-26 | 2023-10-26 | 构建地图的方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117132728B (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107025668A (zh) * | 2017-03-30 | 2017-08-08 | 华南理工大学 | 一种基于深度相机的视觉里程计的设计方法 |
US20190056501A1 (en) * | 2017-08-15 | 2019-02-21 | Baidu Online Network Technology (Beijing) Co., Ltd | Method and apparatus for constructing reflectance map |
CN110749901A (zh) * | 2019-10-12 | 2020-02-04 | 劢微机器人科技(深圳)有限公司 | 自主移动机器人及其地图拼接方法、装置和可读存储介质 |
CN111028347A (zh) * | 2019-12-24 | 2020-04-17 | 贝壳技术有限公司 | 用于重建物理工作空间的三维模型的方法和系统 |
CN111415385A (zh) * | 2020-03-02 | 2020-07-14 | 武汉大学 | 激光雷达和多线阵相机组合系统的相对位姿参数优化方法 |
CN111623957A (zh) * | 2020-05-11 | 2020-09-04 | 中国科学院光电技术研究所 | 一种用于x射线聚焦镜拼接干涉检测的点云配准拼接方法 |
CN111912417A (zh) * | 2020-07-10 | 2020-11-10 | 上海商汤临港智能科技有限公司 | 地图构建方法、装置、设备及存储介质 |
CN112837241A (zh) * | 2021-02-09 | 2021-05-25 | 贵州京邦达供应链科技有限公司 | 建图重影去除方法、设备及存储介质 |
CN113160053A (zh) * | 2021-04-01 | 2021-07-23 | 华南理工大学 | 一种基于位姿信息的水下视频图像复原与拼接方法 |
CN114937083A (zh) * | 2022-05-27 | 2022-08-23 | 山东大学 | 一种应用于动态环境的激光slam系统及方法 |
CN115164936A (zh) * | 2022-06-30 | 2022-10-11 | 北京百度网讯科技有限公司 | 高精地图制作中用于点云拼接的全局位姿修正方法及设备 |
CN115187736A (zh) * | 2022-06-22 | 2022-10-14 | 阿里巴巴(中国)有限公司 | 目标地图生成方法以及装置、ar地图生成方法以及装置 |
CN115388878A (zh) * | 2022-08-26 | 2022-11-25 | 深圳优地科技有限公司 | 一种地图构建方法、装置及终端设备 |
CN116523748A (zh) * | 2023-04-28 | 2023-08-01 | 广州海格通信集团股份有限公司 | 图像拼接方法、设备、存储介质及无人机 |
US20230260151A1 (en) * | 2020-05-18 | 2023-08-17 | Shenzhen Intelligence Ally Technology Co., Ltd. | Simultaneous Localization and Mapping Method, Device, System and Storage Medium |
CN116737851A (zh) * | 2022-03-04 | 2023-09-12 | 广东省智能网联汽车创新中心有限公司 | 一种节点式点云地图的存储和更新方法 |
-
2023
- 2023-10-26 CN CN202311396329.XA patent/CN117132728B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107025668A (zh) * | 2017-03-30 | 2017-08-08 | 华南理工大学 | 一种基于深度相机的视觉里程计的设计方法 |
US20190056501A1 (en) * | 2017-08-15 | 2019-02-21 | Baidu Online Network Technology (Beijing) Co., Ltd | Method and apparatus for constructing reflectance map |
CN110749901A (zh) * | 2019-10-12 | 2020-02-04 | 劢微机器人科技(深圳)有限公司 | 自主移动机器人及其地图拼接方法、装置和可读存储介质 |
CN111028347A (zh) * | 2019-12-24 | 2020-04-17 | 贝壳技术有限公司 | 用于重建物理工作空间的三维模型的方法和系统 |
CN111415385A (zh) * | 2020-03-02 | 2020-07-14 | 武汉大学 | 激光雷达和多线阵相机组合系统的相对位姿参数优化方法 |
CN111623957A (zh) * | 2020-05-11 | 2020-09-04 | 中国科学院光电技术研究所 | 一种用于x射线聚焦镜拼接干涉检测的点云配准拼接方法 |
US20230260151A1 (en) * | 2020-05-18 | 2023-08-17 | Shenzhen Intelligence Ally Technology Co., Ltd. | Simultaneous Localization and Mapping Method, Device, System and Storage Medium |
CN111912417A (zh) * | 2020-07-10 | 2020-11-10 | 上海商汤临港智能科技有限公司 | 地图构建方法、装置、设备及存储介质 |
CN112837241A (zh) * | 2021-02-09 | 2021-05-25 | 贵州京邦达供应链科技有限公司 | 建图重影去除方法、设备及存储介质 |
CN113160053A (zh) * | 2021-04-01 | 2021-07-23 | 华南理工大学 | 一种基于位姿信息的水下视频图像复原与拼接方法 |
CN116737851A (zh) * | 2022-03-04 | 2023-09-12 | 广东省智能网联汽车创新中心有限公司 | 一种节点式点云地图的存储和更新方法 |
CN114937083A (zh) * | 2022-05-27 | 2022-08-23 | 山东大学 | 一种应用于动态环境的激光slam系统及方法 |
CN115187736A (zh) * | 2022-06-22 | 2022-10-14 | 阿里巴巴(中国)有限公司 | 目标地图生成方法以及装置、ar地图生成方法以及装置 |
CN115164936A (zh) * | 2022-06-30 | 2022-10-11 | 北京百度网讯科技有限公司 | 高精地图制作中用于点云拼接的全局位姿修正方法及设备 |
CN115388878A (zh) * | 2022-08-26 | 2022-11-25 | 深圳优地科技有限公司 | 一种地图构建方法、装置及终端设备 |
CN116523748A (zh) * | 2023-04-28 | 2023-08-01 | 广州海格通信集团股份有限公司 | 图像拼接方法、设备、存储介质及无人机 |
Non-Patent Citations (3)
Title |
---|
GUANGHUI XUE: "LeGO-LOAM-SC: An Improved Simultaneous Localization and Mapping Method Fusing LeGO-LOAM and Scan Context for Underground Coalmine", 《SENSORS》, vol. 22, no. 2, pages 1 - 15 * |
胡向勇;洪程智;吴世全;: "基于关键帧的点云建图方法", 热带地貌, no. 01, pages 44 - 49 * |
陈文;岳惊涛;李华;韩栋斌;齐尧;: "基于图优化方法的点云三维环境重构", 军事交通学院学报, no. 09, pages 88 - 93 * |
Also Published As
Publication number | Publication date |
---|---|
CN117132728B (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3505869B1 (en) | Method, apparatus, and computer readable storage medium for updating electronic map | |
CN108319655B (zh) | 用于生成栅格地图的方法和装置 | |
CN109059906B (zh) | 车辆定位方法、装置、电子设备、存储介质 | |
Rupnik et al. | MicMac–a free, open-source solution for photogrammetry | |
CN108694882B (zh) | 用于标注地图的方法、装置和设备 | |
CN109710724B (zh) | 一种构建点云地图的方法和设备 | |
KR20190082070A (ko) | 지도 생성 및 운동 객체 위치 결정 방법 및 장치 | |
KR102200299B1 (ko) | 3d-vr 멀티센서 시스템 기반의 도로 시설물 관리 솔루션을 구현하는 시스템 및 그 방법 | |
CN111461981B (zh) | 点云拼接算法的误差估计方法和装置 | |
CN109596121B (zh) | 一种机动站自动目标检测与空间定位方法 | |
JP7245084B2 (ja) | 自動運転システム | |
CN112308913B (zh) | 一种基于视觉的车辆定位方法、装置及车载终端 | |
US12061252B2 (en) | Environment model using cross-sensor feature point referencing | |
CN112184914B (zh) | 目标对象三维位置的确定方法、装置和路侧设备 | |
CN111143489B (zh) | 基于图像的定位方法及装置、计算机设备和可读存储介质 | |
KR20200032776A (ko) | 다중 센서 플랫폼 간 정보 융합을 위한 시스템 | |
Nilosek et al. | Assessing geoaccuracy of structure from motion point clouds from long-range image collections | |
CN110715646B (zh) | 一种地图修测测量方法及装置 | |
CN111982133A (zh) | 基于高精地图对车辆进行定位的方法、装置及电子设备 | |
CN116295457B (zh) | 一种基于二维语义地图的车辆视觉定位方法及系统 | |
CN111353453A (zh) | 用于车辆的障碍物检测方法和装置 | |
RU2571300C2 (ru) | Способ дистанционного определения абсолютного азимута целевой точки | |
Tao et al. | Automated processing of mobile mapping image sequences | |
CN113838129B (zh) | 一种获得位姿信息的方法、装置以及系统 | |
CN110223223A (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 |