发明内容
有鉴于此,本发明实施例提供一种基于激光点云的地图生产方法和装置,至少能够解决现有技术中三维高精地图生产准确性低、鲁棒性弱以及提取元素种类单一的缺点。
为实现上述目的,根据本发明实施例的一个方面,提供了一种基于激光点云的地图生产方法,包括:
采集目标区域的激光点云,对所述激光点云进行语义解析,以确定所述激光点云中每个点云点的类别属性和所属实例的编号;
对同一个实例编号下类别属性相同的点云点进行组合,得到点云簇,根据类别属性与形状的对应关系,确定所述点云簇的形状;
确定与所述形状相应的矢量化规则,以对所述点云簇进行矢量化处理,得到所述目标区域的矢量化地图。
可选的,所述采集目标区域的激光点云,包括:
在车辆行进的过程中,利用车载装置,按照预设频率对所述目标区域进行点云采集操作,得到单帧激光点云;
根据单帧激光点云在预定坐标系下的坐标,对所采集的单帧激光点云进行拼接,得到所述目标区域的所述激光点云。
可选的,在对所述激光点云进行语义解析之前,还包括:确定所述激光点云的体积,当所述体积超出预定体积阈值时,按照预定尺寸对所述激光点云进行切块处理,得到多个激光点云块。
可选的,所述语义解析包括场景解析和实例分割;
所述对所述激光点云进行语义解析,以确定所述激光点云中每个点云点的类别属性和所属实例的编号,包括:
对所述激光点云进行场景解析,以确定所述激光点云中每个点云点的类别属性;以及
对所述激光点云进行实例分割,得到每个点云点所属实例的编号,结合所确定的每个点云点的类别属性,建立实例编号与类别属性的对应关系。
可选的,在对同一个实例编号下类别属性相同的点云点进行组合,得到点云簇之前,还包括:
获取区域元素,确定类别属性不属于所述区域元素的点云点,以剔除所确定的点云点;以及
利用空洞修补方式,对剔除点云点后的激光点云进行空洞填充。
可选的,所述确定与所述形状相应的矢量化规则,以对所述点云簇进行矢量化处理,包括:将所述点云簇投影至二维图像空间中,得到二维正视图;对所述二维正视图进行二维矢量化,得到二维矢量化结果;根据二维图像像素与和三维空间点之间的对应关系,将所述二维矢量化结果投影到三维空间下,得到三维矢量化结果。
可选的,所述点云簇的形状为线型;
所述对所述二维正视图进行二维矢量化,得到二维矢量化结果,包括:利用骨架提取方式,对所述二维正视图中的点云投影点区域进行掩码区提取,得到掩码区骨架;在所述掩码区骨架中,将相邻区域图像的像素点顺序连接起来,得到骨架矢量化片段。
可选的,所述点云簇的形状为面型;
所述对所述二维正视图进行二维矢量化,得到二维矢量化结果,包括:利用轮廓追踪方式,对所述二维正视图中的点云投影点区域进行边缘像素点提取;顺序连接所提取的所述边缘像素点,得到所述点云投影点区域的二维矢量化轮廓。
可选的,所述点云簇的形状为体型;
所述确定与所述形状相应的矢量化规则,以对所述点云簇进行矢量化处理,包括:确定体型点云簇中每个各点云点在预定坐标系下的坐标,提取每个坐标轴上的最小坐标值和最大坐标值,并将所提取的最小坐标值以及最大坐标值作为所述体型点云簇在三维空间下的矢量化值。
为实现上述目的,根据本发明实施例的另一方面,提供了一种基于激光点云的地图生产装置,包括:
点云解析模块,用于采集目标区域的激光点云,对所述激光点云进行语义解析,以确定所述激光点云中每个点云点的类别属性和所属实例的编号;
点云组合模块,用于对同一个实例编号下类别属性相同的点云点进行组合,得到点云簇,根据类别属性与形状的对应关系,确定所述点云簇的形状;
地图生产模块,用于确定与所述形状相应的矢量化规则,以对所述点云簇进行矢量化处理,得到所述目标区域的矢量化地图。
可选的,所述点云解析模块,用于:
在车辆行进的过程中,利用车载装置,按照预设频率对所述目标区域进行点云采集操作,得到单帧激光点云;
根据单帧激光点云在预定坐标系下的坐标,对所采集的单帧激光点云进行拼接,得到所述目标区域的所述激光点云。
可选的,所述点云解析模块,还用于:确定所述激光点云的体积,当所述体积超出预定体积阈值时,按照预定尺寸对所述激光点云进行切块处理,得到多个激光点云块。
可选的,所述语义解析包括场景解析和实例分割;
所述点云解析模块,用于:
对所述激光点云进行场景解析,以确定所述激光点云中每个点云点的类别属性;以及
对所述激光点云进行实例分割,得到每个点云点所属实例的编号,结合所确定的每个点云点的类别属性,建立实例编号与类别属性的对应关系。
可选的,还包括点云修补模块,用于:
获取区域元素,确定类别属性不属于所述区域元素的点云点,以剔除所确定的点云点;以及
利用空洞修补方式,对剔除点云点后的激光点云进行空洞填充。
可选的,所述地图生产模块,用于:将所述点云簇投影至二维图像空间中,得到二维正视图;对所述二维正视图进行二维矢量化,得到二维矢量化结果;根据二维图像像素与和三维空间点之间的对应关系,将所述二维矢量化结果投影到三维空间下,得到三维矢量化结果。
可选的,所述点云簇的形状为线型;
所述地图生产模块,用于:利用骨架提取方式,对所述二维正视图中的点云投影点区域进行掩码区提取,得到掩码区骨架;在所述掩码区骨架中,将相邻区域图像的像素点顺序连接起来,得到骨架矢量化片段。
可选的,所述点云簇的形状为面型;
所述地图生产模块,用于:利用轮廓追踪方式,对所述二维正视图中的点云投影点区域进行边缘像素点提取;顺序连接所提取的所述边缘像素点,得到所述点云投影点区域的二维矢量化轮廓。
可选的,所述点云簇的形状为体型;
所述地图生产模块,用于:确定体型点云簇中每个各点云点在预定坐标系下的坐标,提取每个坐标轴上的最小坐标值和最大坐标值,并将所提取的最小坐标值以及最大坐标值作为所述体型点云簇在三维空间下的矢量化值。
为实现上述目的,根据本发明实施例的再一方面,提供了一种基于激光点云的地图生产电子设备。
本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一所述的基于激光点云的地图生产方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一所述的基于激光点云的地图生产方法。
根据本发明所述提供的方案,上述发明中的一个实施例具有如下优点或有益效果:所采集的激光点云具有多角度、多位置的优点,相比透视图能够较好保持物体完整性和一致性,且能够全自动地、较准确鲁邦地提取种类丰富的道路元素,同时可避免细小部分被遮挡的情况;对激光点云进行杂物去除和空洞修补,又可降低大面积车辆、树木等的遮挡,从而提高方法的鲁棒性;最后,针对线型元素、面型元素和体型元素分别进行三维矢量化,因此丰富了元素种类,从而完成三维高精地图的生成。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,本发明实施例所提供的方法,不仅适用于地图生产,还可以适用于室内场景重建,例如,大规模商城构建等。相应语义解析中的要素,对于地图生产为树木、车辆、行人等,对于室内场景重建,则为桌子、椅子等。
但本发明的贡献点之一是线型和面型元素的重构,是针对马路牙、道路线、斑马线等设计的,而在室内场景重构中此类元素过少,可能体现不出发明的贡献点,因此,本发明主要以地图生产为例进行说明。
对于本发明所涉及的词语,做解释如下:
无三维运动结构重建:在未知环境下的跟踪定位以为这无法人为的在场景中放置标志点,必须完全利用自然场景图像、或其他方位传感器来获取目标的三维结构与摄像机的运动轨迹。
点云:是在同一空间参考系下表达目标空间分布和目标表面特性的海量点集合。
主成分分析:经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。
骨架算法:图像中的“骨架”指图像中央部分,是描述图像几何及拓扑性质的重要特征之一,求图像骨架的过程,通常称为对图像“细化”的过程。
轮廓跟踪:在识别图像中的目标时,往往需要对目标边缘作跟踪处理,也叫轮廓跟踪。顾名思义,轮廓跟踪就是通过顺序找出边缘点来跟踪边界的。
抽稀:在处理矢量化数据时,记录中往往会有很多重复数据,对后续数据处理带来诸多不便。多余的数据一方面浪费了较多的存储空间,另一方面造成所要表达的图形不光滑或不符合标准。因此要通过某种规则,在保证矢量曲线形状不变的情况下,最大限度地减少数据点个数,这个过程称为抽稀。
参见图1,示出的是本发明实施例提供的一种基于激光点云的地图生产方法的主要流程图,包括如下步骤:
S101:采集目标区域的激光点云,对所述激光点云进行语义解析,以确定所述激光点云中每个点云点的类别属性和所属实例的编号;
S102:对同一个实例编号下类别属性相同的点云点进行组合,得到点云簇,根据类别属性与形状的对应关系,确定所述点云簇的形状;
S103:确定与所述形状相应的矢量化规则,以对所述点云簇进行矢量化处理,得到所述目标区域的矢量化地图。
上述实施方式中,对于步骤S101,本发明中的目标区域,可以为道路、山坡,街景等,本发明主要以街景为例进行说明。该目标区域的激光点云,是由车载装置连续采集点云并拼合而成。
对拼接好的激光点云进行语义解析,以获取道路点云中每个点云点的类别,分割出车辆、树木、行人、道路面、隔离墩、车道线等点云簇,并通过对点云簇赋值一个类别标签以实现点云语义化。
具体地:
步骤一:对所述激光点云进行场景解析,以确定所述激光点云中每个点云点的类别属性;以及
步骤二:对所述激光点云进行实例分割,得到每个点云点所属实例的编号,结合所确定的每个点云点的类别属性,建立实例编号与类别属性的对应关系。
对于步骤一,利用现有的点云场景解析算法,例如2018Arxiv PointCNN,分割出道路点云中每个点云点的类别属性,参见图2所示。
这种分割是点级的,同一类别的语义标签Label是一样的。以树木、车辆、行人为例,Label=1代表是树木、Label=2代表是车辆、Label=3代表是行人。
在场景解析算法中,有些会区分前景和背景,这是从英文object和stuff翻译过来的。前景物体object是行人、树木、隔离墩、车辆、路灯、路牌等有较小封闭包围盒的物体,背景场景stuff是道路、建筑物、天空等有较大范围和开阔区域的场景。一般而言,前景物体在背景场景前面,可能会遮挡背景场景(可以设定Label=0代表背景)。
对于步骤二,通常,对于前景物体应该分离处理,因为有些是遮挡物,后续为提高矢量化精度可能需要剔除的。
因此可再用点云实例分割算法,进一步分类同一类别下的不同前景物体,以给不同前景物体进行实例编号ID。例如,ID=1代表点云中第一个树木区域,ID=2代表点云中第二个树木区域,在场景中有多个树木,虽类别一样,但是属于不同的实例。
进一步的,也可以对背景场景中各个点云点进行实例编号,例如,ID=4代表点云中第一个建筑区域,ID=5代表点云中第二个建筑区域,这些是不可剔除的。但通常情况下,对背景场景的实例分割,存在精度不高的问题,且背景场景通常不需要剔除元素,因此,通常只是对前景物体进行元素剔除。
这个阶段主要的目的是解析出背景场景和前景物体,并对前景物体进行实例分割,这是两个不同的任务,而目前现有技术并没有提到能一起完成这两个步骤的方法。
另外,关于如何进行场景解析和实例分割,这些可以通过机器深度学习训练而得,本发明不涉及其具体训练过程,仅使用而已。将激光点云输入已训练好的模型中,就可以解析出每个点云点的类别Label和/或实例ID。
对于步骤S102,后续对于点云的矢量化,是对点云簇进行的,因为一个点云点可能识别不出其具体形状。
对于点云簇,可以将同一个实例编号下类别属性相同的点云点进行组合。例如,ID=1代表点云中第一个树木区域,Label=1代表是树木,假设一棵树由20个点云点组成,那就有20个点云点的属性类别和实例编号都是一样的,那就将这20个点云点组合起来,得到有关这颗树的点云簇。
同理,ID=4代表点云中第一个建筑区域,Label=1代表是建筑,假设一栋建筑由200个点云点组成,那就有200个点云点的属性类别和实例编号都是一样的,那就将这200个点云点组合起来,得到有关这栋建筑的点云簇。
对于步骤S103,在道路元素矢量化阶段,首先需要根据每个点云簇的类别来定义其属于哪个形状,这可以用预定义好的查找表实现,例如,查找表中罗列{类别,类别属于线、面或体,类别是否进行矢量化}。
若之前有进行遮挡物剔除和空洞修补(参见后续图2~图4描述),则这里的点云簇,就是剔除遮挡物和填补空洞后的道路点云。但若不是,则这里的点云簇,就是包含遮挡物和道路元素的点云簇。
本发明在三维空间中对点云簇进行矢量化,根据语义解析的标识将点云簇分为线型、面型和体型。其中,线型元素包括车道线、减速带等,面型元素包括斑马线、盲道、停车区等,体型元素包括马路牙、隔离墩等。针对三种不同形状的点云簇,采用三种不同策略进行矢量化。
对于线性和面型点云簇,所采取的矢量化方式类似,具体参见后续图5描述,这里仅说明体型点云簇的矢量化:
在三维空间下进行体型点云矢量化,用当前点云簇的包围盒来表示其矢量化:
构建一个三维空间,用当前点云簇的包围盒来表示其矢量化,具体为:以地标GPS经纬度为三维空间下的X,Y坐标,高度为Z坐标建立一个坐标系,用点云簇的外界包围盒来表示其矢量化,即点云簇中的点云点落在X坐标系下最左和最右位置为包围盒长度上的坐标,落在Y坐标系的最前和最后位置为包围盒宽度上的坐标,落在Z坐标系的最上和最下位置为包围盒高度上的坐标。
通常情况下,体型点云簇的形状不定,为提高矢量化准确性,通常采用前两种体型和面型方式进行矢量化处理。
以上线型、面型和体型的激光点云在独立矢量化后,矢量化结果都分布在同一个三维空间下,可以不需要进行融合。但针对不同道路元素点云簇,依据上述方式进行矢量化后,最后需将所有矢量元素融合,获取三维矢量化地图。
上述实施例所提供的方法,所采集的激光点云具有多角度、多位置的优点,相比透视图能够较好保持物体完整性和一致性,同时可避免细小部分被遮挡的情况;针对不同形状的点云分别进行三维矢量化,可以丰富元素种类,完成三维高精地图的生成。
参见图2,示出的是本发明实施例提供的一种可选的基于激光点云的地图生产方法的主要流程图,包括如下步骤:
S201:在车辆行进的过程中,利用车载装置,按照预设频率对目标区域进行点云采集操作,得到单帧激光点云;
S202:根据单帧激光点云在预定坐标系下的坐标,对所采集的单帧激光点云进行拼接,得到所述目标区域的激光点云;
S203:对所述激光点云进行语义解析,以确定所述激光点云中每个点云点的类别属性和所属实例的编号;
S204:对同一个实例编号下类别属性相同的点云点进行组合,得到点云簇,根据类别属性与形状的对应关系,确定所述点云簇的形状;
S205:确定与所述形状相应的矢量化规则,以对所述点云簇进行矢量化处理,得到所述目标区域的矢量化地图。
上述实施方式中,对于步骤S203~S205可分别参见图1所示步骤S101~S103的描述,在此不再赘述。
上述实施方式中,对于步骤S201以及S202,所采用的车载装置,可以为由一系列软硬件搭建的点云和/或图像采集***,例如Apollo的车载装置、四维图新的车载装置等。常见的硬件包括相机(采集视频、图像)、激光雷达(采集激光点云)、GPS/IMU(采集和定位行车轨迹);常见的软件功能包括触发采集、存储数据和同步硬件设备等。
车载装置在行进的过程中,会按照固定频率采集点云(例如,隔10米采集一次),得到单帧激光点云。
为了方便表达各个点云的位置关系,就要采用平面坐标、高斯平面,把道路(例如街景)点云投影在一个平面上,对于小范围(相对于地球而言)的道路,可以忽略因为球体曲面的影响。那么,这时所采用的坐标就是相对坐标,相对坐标是本坐标点指相对于前一坐标点的坐标。这里的单帧激光点云坐标,是在相对坐标系下的。
由于在每个位置都有一个绝对坐标,可以根据相对坐标将一帧帧点云投影到绝对坐标系下完成点云拼接,最终是一个大规模的激光点云。绝对坐标***的特点是,每一次定位坐标与上一次定位坐标没有关系。
最终将一帧帧点云拼接出完整点云,后续可以描述为拼接好的点云或者直接称为激光点云。
另外,通过车载装置所采集的单帧激光点云具有分辨率一样的特点,这里的分辨率是指点云间的单位距离和物理单位距离的比率。由于激光点云是激光雷达发射光线测出来的物理距离投影计算而得,具有准确性高的特点,除了极个别噪声点,其他点的分辨率也都是一样的。
所采集的单帧激光点云,还具有多角度、多位置的特点。因为激光点云是由持续行走的车辆从多个角度采集到的点云拼合而成,考虑到点云采集是360度的,如果在某个角度下背景区域被前景树木、行人等遮挡而导致未采集到点云。当车子前进到其他位置从其他角度再采集该区域,原来的被遮挡区域就可见了,最终拼合出该区域的点云,即细小物体不影响整体背景的点云效果。激光点云都是360度的,属于多角度;车载装置都是持续前进,体现为多位置。
上述实施例所提供的方法,通过行进的车载装置所采集的激光点云,具有多角度、多位置的优点,可避免细小物体的遮挡,且各处分辨率一致,相较透视图,能够较好地保持道路完整性和一致性,并可以提高所采集点云的鲁棒性。
参见图3,示出的是本发明实施例提供的另一种可选的基于激光点云的地图生产方法的主要流程图,包括如下步骤:
S301:采集目标区域的激光点云,确定所述激光点云的体积,当所述体积超出预定体积阈值时,按照预定尺寸对所述激光点云进行切块处理,得到多个激光点云块;
S302:对所述多个激光点云块进行语义解析,以确定所述多个激光点云块中每个点云点的类别属性和所属实例的编号;
S303:对同一个实例编号下类别属性相同的点云点进行组合,得到点云簇,根据类别属性与形状的对应关系,确定所述点云簇的形状;
S304:确定与所述形状相应的矢量化规则,以对所述点云簇进行矢量化处理,得到所述目标区域的矢量化地图。
上述实施方式中,步骤S302~S304可分别参见图1所示步骤S101~S103的描述,在此不再赘述。
上述实施方式中,对于步骤S301,考虑到点云数量巨大,例如,一次外业采集可能获取几十公里的点云。然而现有点云解析算法处理能力有限,因此,在对其进行语义解析之前,可以先对其进行切块处理,并对切块后的点云作独立解析,最后融合解析结果,这样可大幅降低每次所处理的点云量。
对于点云是否需要切块的判断,可以是根据其体积进行,若体积超限,则需要切块,否则,可以按照一个整体进行后续分析。
对于点云的切块方式,可以依据车载装置的形成轨迹进行,具体地:以固定行程距离截取有重叠区的一段段点云(或者一块块点云)。例如,沿着行车轨迹每隔10米截取一段长度为20米,宽和高为100米包围盒的点云,其中包围盒长度方向为行车轨迹点的切线方向,高度方向为垂直地面方向。
这里的行程轨迹可以是一系列顺序轨迹点,可弯曲。在每个轨迹点上对应于一帧点云,只要根据轨迹点数进行切块即可,切块就是提取每个轨迹点所对应的一帧点云。例如,车载装置采集到几十万个单帧点云,通过拼接、切块处理,进行语义解析的仅为几十个激光点云块。
但不同的切块方式,所得到的点云是不一样的,有些可能存有重叠区域,因此在对各个切块点云进行语义解析完毕后,需要对重叠区域中实例分割后的点云编号ID进行合并(也可理解为去重)。需要说明的是,这种重叠,可以既有横向也有纵向的重叠,是三维空间下的一撮点云的重叠。
以上只是给出了一种切块方式,并针对这种切块方式描述了点云编号是如何融合的,不是最优的。且需要说明的是,点云切块并不是必须的。主要考虑到点云规模过大的话,不进行切块机器内存和计算跟不上。但若对激光点云进行切块处理,那么后续的语义解析等,都是对每个切块进行场景解析和实例分割。
上述实施例所提供的方法,当点云量较大时,考虑到语义解析的处理能力有限,可以对激光点云做切块处理,以提高点云语义解析的处理速度。
参见图4,示出的是本发明实施例提供的又一种可选的基于激光点云的地图生产方法的主要流程图,包括如下步骤:
S401:采集目标区域的激光点云,对所述激光点云进行语义解析,以确定所述激光点云中每个点云点的类别属性和所属实例的编号;
S402:获取区域元素,确定类别属性不属于所述区域元素的点云点,以剔除所确定的点云点;
S403:利用空洞修补方式,对剔除点云点后的激光点云进行空洞填充;
S404:对于空洞填充后的激光点云,对同一个实例编号下类别属性相同的点云点进行组合,得到点云簇,根据类别属性与形状的对应关系,确定所述点云簇的形状;
S405:确定与所述形状相应的矢量化规则,以对所述点云簇进行矢量化处理,得到所述目标区域的矢量化地图。
上述实施方式中,步骤S401、S404、S405可分别参见图1~图3所示描述,在此不再赘述。
上述实施方式中,对于步骤S402,一般而言,道路元素往往被行人、树木、车辆所遮挡,因此可以定义一些待剔除的非道路元素,并在道路矢量化之前或者点云簇组合之前,将语义标注为这些非道路元素的点云簇剔除掉。
需要说明的是,这里剔除点云点的依据是标注Label而不是编号ID。即查看每个点云的Label,根据Label判定该点云点是否进行删除,如果标注Label是行人,则将该点云点剔除即可。
对于步骤S403,经过杂物剔除后的激光点云,可能在道路线、隔离桩、隔离墩等道路元素点云簇中产生一些空洞。
为后续能更加完整地实现高精地图制作,避免这些空洞造成道路断裂的情况,可以进一步对每个道路元素进行空洞剔除(也可理解为是空洞修复)。
例如,遮挡物一般是在地面上树立的,而高精地图制作过程中感兴趣的马路牙、车道线等都在地面上,剔除了遮挡物后可能在地面上留下一些空洞,对这些空洞修补可以连接点云。如果不进行修补,会出现一些断裂的矢量化道路元素。
对于空洞剔除,即针对道路元素的点云簇,用点云空洞修补方法对空洞内的点云进行填充。而点云空洞修补方法已是现有,因此本发明对其具体实施过程不再赘述。
上述实施例所提供的方法,剔除可能遮挡道路元素(可全部剔除)的行人、车辆和树木等点云簇,同时对可能被遮挡的道路面、隔离墩等点云簇进行空洞修补,可便于后续能更加完整地实现高精地图制作,避免空洞造成道路断裂的情况出现。
参见图5,示出的是本发明实施例提供的再一种可选的基于激光点云的地图生产方法的主要流程图,包括如下步骤:
S501:采集目标区域的激光点云,对所述激光点云进行语义解析,以确定所述激光点云中每个点云点的类别属性和所属实例的编号;
S502:对同一个实例编号下类别属性相同的点云点进行组合,得到点云簇,根据类别属性与形状的对应关系,确定所述点云簇的形状;
S503:将所述点云簇投影至二维图像空间中,得到二维正视图;
S504:对所述二维正视图进行二维矢量化,得到二维矢量化结果;
S505:根据二维图像像素与和三维空间点之间的对应关系,将所述二维矢量化结果投影到三维空间下,得到三维矢量化结果。
上述实施方式中,对于步骤S501以及S502可分别参见图1~图4的描述,在此不再赘述。
上述实施方式中,对于步骤S503~S505,主要适用于线性点云簇以及面型点云簇。
A)线型点云簇的矢量化
由于线性点云簇在正视图下的矢量化能减少噪声影响,首先将线型点云簇投影成二维正视图,像素值为白色,其他区域为黑色,即二维黑白正视图(也可以设定为其他颜色,但通常为黑白色,因为两者色差较大)。在黑白正视图下进行二维矢量化,然后将二维矢量化结果投影到三维空间下获取三维矢量化结果。
具体实施过程为:
1)二维黑白正视图合成
首先,利用主成分分析(Principal Component Analysis,PCA,一个空间降维算法)提取两个正交主成分,从而将三维空间点云簇投影到以这两个主成分为坐标的二维空间中。然后,将落入二维空间下的点云点离散化成图像。
例如,以0.5米/像素为粒度将点云投影到二维图像空间下,最后有点云点落入的像素标识为255,否则为0。
这里的主成分分析,主要通过三维空间下的点云进行转换,使得转换后的点云在二维空间中也能保留重要信息。
除了主成分分析方式之外,还可以有其他方式,例如,每个点云点在采集时候都通过GPS确定其坐标位置,因此,所组合生成的点云簇也是有其坐标的。假设将所有点云点的高度均设置为0(也可以是其他维度),即可实现对点云簇投影至二维图像空间的目的。
2)噪声和空洞剔除
首先,用滤波算法(例如尺寸为5像素的中值滤波),过滤小尺度的噪声点;
然后,用图像空洞修补策略(例如,将连通区域面积小于2000像素的图块颜色进行翻转),过滤大尺度的噪声区。对于连通区域面积,在图像中,可以用深度优先搜索算法按照4连通或者8连通进行相邻像素的搜索即可,这是一个简单的现有技术,在此不再赘述。
需要说明的是,这里的空洞修补区别于点云空洞修补。点云空洞修补是针对点云的、带有语义的修补;这里的空洞修补是针对图像的、不带语义的修补。即使进行了点云空洞修补,也有必要再实现下图像空洞修补,主要是在正视图合成中可能存在部分噪声,需要用噪声去除和空洞修补来平滑图像。
3)二维元素矢量化:
首先,利用骨架提取算法(例如梯度最短路径骨架提取算法),对1)中点云簇的投影点区域进行白色掩码区提取,得到白色掩码区的骨架;然后,将邻域像素点顺序相连可以将骨架局部连续化,即得到骨架矢量化片段。
骨架上的点是一些离散的像素点,骨架矢量化是将这些离散像素点连续化。
进一步的,还可以搜索出一条最长骨架线。
考虑骨架矢量化片段可能有很多分支,为了提取一条最长分支,可以从仅有一个邻域点的顶点为起点,并用穷举方法来搜索最长骨架线,即跟无相邻骨架矢量化片段的一端顺序搜索,终止点为其他无相邻骨架片段的一端。
或者每个骨架矢量化片段都有起点和终点,若两条骨架线矢量化片段首尾相接,则将这两个矢量化片段顺序连接起来。以此类推,可以得出一条最长骨架线。
更进一步的,假若一个区域中有多条道路,根据上述方式,最终可能得到多条骨架线。
4)三维元素矢量化
根据步骤1)中建立的二维图像像素和三维空间点云点的映射关系,将二维元素矢量线上的连续像素点投影到三维空间中,可以映射出一条三维空间下由连续点云点顺序相邻构建的线,即一条连续的三维点集,完成三维矢量化。
对于步骤3)所得骨架矢量化片段,此时二维元素矢量化上的连续像素点即为该骨架矢量化片段上的连续像素点。
若仅仅将骨架矢量化片段投影到三维空间中,后续可能还需要对投影所得三维点集连接起来;但若是将最长骨架线投影到三维空间中,此时可能就不需要点集连接步骤。
另外,考虑到三维矢量化后的点集过大,用顶点抽稀算法对三维空间下的点集进行抽稀处理。
B)面型点云簇的矢量化
类似于线型点云簇的矢量化,同样将面型点云簇投影到二维正视图下,在二维正视图下进行矢量化,然后将二维矢量化结果投影到三维空间下获取三维矢量结果。
其中的步骤1)、2)、和4)跟线型点云簇的矢量化一样,在此不做赘述,下面仅阐述面型点云簇的二维矢量化步骤:
3)二维元素矢量化:用轮廓追踪算法,提取白色掩码区的二维矢量化轮廓即可。
二维矢量化就是将一系列的像素点顺序相连,轮廓跟踪算法的目的包括两部分:①搜索掩码区的边缘像素点;②将这些边缘像素点顺序相连。因此轮廓跟踪算法就是完成了二维元素矢量化过程。
此外,考虑到有些面型点云簇过大,例如道路中间隔离桩,可选的对面型点云簇进行切分,例如沿着行车轨迹每隔400米切分一簇,然后对每一簇分别进行面型矢量化,并将相邻的面型矢量元素进行融合,融合策略包括而不限于下述方式,即设定一个吸附阈值,例如10厘米,将当前面型矢量元素中边缘顶点吸附到阈值范围内的邻域点云簇的面型矢量元素上。
上述实施例所提供的方法,针对线型元素和面型元素分别进行三维矢量化,可以丰富了元素种类,从而完成三维高精地图的生成。
本发明实施例所提供的方法,所采集的激光点云具有多角度、多位置的优点,相比透视图能够较好保持物体完整性和一致性,且能够全自动地、较准确鲁邦地提取种类丰富的道路元素,同时可避免细小部分被遮挡的情况;对激光点云进行杂物去除和空洞修补,又可降低大面积车辆、树木等的遮挡,从而提高方法的鲁棒性;最后,针对线型元素、面型元素和体型元素分别进行三维矢量化,因此丰富了元素种类,从而完成三维高精地图的生成。
参见图6,示出了本发明实施例提供的一种基于激光点云的地图生产装置600的主要模块示意图,包括:
点云解析模块601,用于采集目标区域的激光点云,对所述激光点云进行语义解析,以确定所述激光点云中每个点云点的类别属性和所属实例的编号;
点云组合模块602,用于对同一个实例编号下类别属性相同的点云点进行组合,得到点云簇,根据类别属性与形状的对应关系,确定所述点云簇的形状;
地图生产模块603,用于确定与所述形状相应的矢量化规则,以对所述点云簇进行矢量化处理,得到所述目标区域的矢量化地图。
本发明实施装置中,所述点云解析模块601,用于:在车辆行进的过程中,利用车载装置,按照预设频率对所述目标区域进行点云采集操作,得到单帧激光点云;根据单帧激光点云在预定坐标系下的坐标,对所采集的单帧激光点云进行拼接,得到所述目标区域的所述激光点云。
本发明实施装置中,所述点云解析模块601,还用于:确定所述激光点云的体积,当所述体积超出预定体积阈值时,按照预定尺寸对所述激光点云进行切块处理,得到多个激光点云块。
本发明实施装置中,所述语义解析包括场景解析和实例分割;
所述点云解析模块601,用于:
对所述激光点云进行场景解析,以确定所述激光点云中每个点云点的类别属性;以及
对所述激光点云进行实例分割,得到每个点云点所属实例的编号,结合所确定的每个点云点的类别属性,建立实例编号与类别属性的对应关系。
本发明实施装置还包括点云修补模块604(图中未标出),用于:
获取区域元素,确定类别属性不属于所述区域元素的点云点,以剔除所确定的点云点;以及
利用空洞修补方式,对剔除点云点后的激光点云进行空洞填充。
本发明实施装置中,所述地图生产模块603,用于:
将所述点云簇投影至二维图像空间中,得到二维正视图;对所述二维正视图进行二维矢量化,得到二维矢量化结果;根据二维图像像素与和三维空间点之间的对应关系,将所述二维矢量化结果投影到三维空间下,得到三维矢量化结果。
本发明实施装置中,所述点云簇的形状为线型;
所述地图生产模块603,用于:利用骨架提取方式,对所述二维正视图中的点云投影点区域进行掩码区提取,得到掩码区骨架;在所述掩码区骨架中,将相邻区域图像的像素点顺序连接起来,得到骨架矢量化片段。
本发明实施装置中,所述点云簇的形状为面型;
所述地图生产模块603,用于:利用轮廓追踪方式,对所述二维正视图中的点云投影点区域进行边缘像素点提取;顺序连接所提取的所述边缘像素点,得到所述点云投影点区域的二维矢量化轮廓。
本发明实施装置中,所述点云簇的形状为体型;
所述地图生产模块603,用于:
确定体型点云簇中每个各点云点在预定坐标系下的坐标,提取每个坐标轴上的最小坐标值和最大坐标值,并将所提取的最小坐标值以及最大坐标值作为所述体型点云簇在三维空间下的矢量化值。
另外,在本发明实施例中所述装置的具体实施内容,在上面所述方法中已经详细说明了,故在此重复内容不再说明。
本发明实施例所提供的装置,所采集的激光点云具有多角度、多位置的优点,相比透视图能够较好保持物体完整性和一致性,且能够全自动地、较准确鲁邦地提取种类丰富的道路元素,同时可避免细小部分被遮挡的情况;对激光点云进行杂物去除和空洞修补,又可降低大面积车辆、树木等的遮挡,从而提高方法的鲁棒性;最后,针对线型元素、面型元素和体型元素分别进行三维矢量化,因此丰富了元素种类,从而完成三维高精地图的生成。
图7示出了可以应用本发明实施例的基于激光点云的地图生产方法或基于激光点云的地图生产装置的示例性***架构700。
如图7所示,***架构700可以包括终端设备701、702、703,网络704和服务器705(仅仅是示例)。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的信息查询请求等数据进行分析等处理,并将处理结果反馈给终端设备。
需要说明的是,本发明实施例所提供的基于激光点云的地图生产方法一般由服务器705执行,相应地,基于激光点云的地图生产装置一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机***800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机***800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有***800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括点云解析模块、点云组合模块、地图生产模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,点云解析模块还可以被描述为“采集点云并解析的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
采集目标区域的激光点云,对所述激光点云进行语义解析,以确定所述激光点云中每个点云点的类别属性和所属实例的编号;
对同一个实例编号下类别属性相同的点云点进行组合,得到点云簇,根据类别属性与形状的对应关系,确定所述点云簇的形状;
确定与所述形状相应的矢量化规则,以对所述点云簇进行矢量化处理,得到所述目标区域的矢量化地图。
根据本发明实施例的技术方案,采集激光点云具有多角度、多位置的优点,相比透视图能够较好保持物体完整性和一致性,且能够全自动地、较准确鲁邦地提取种类丰富的道路元素,同时可避免细小部分被遮挡的情况;对激光点云进行杂物去除和空洞修补,又可降低大面积车辆、树木等的遮挡,从而提高方法的鲁棒性;最后,针对线型元素、面型元素和体型元素分别进行三维矢量化,因此丰富了元素种类,从而完成三维高精地图的生成。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。