具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
需要说明的是:在本文中提及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
图1是根据本申请一实施例示出的本方案的应用场景的示意图,如图1所示,该应用场景包括车辆110、服务端120和终端130,其中,车辆110与服务端120可以通过有线或者无线网络建立通信连接,终端130和服务端120通过有线或者无线网络建立通信连接。
基于车辆110与服务端120之间的通信连接,车辆110可以将自身的轨迹数据上报到服务端120,从而,服务端120可以基于车辆的轨迹数据,按照本申请的方法来生成地图。服务端120可以是独立的物理服务器,也可以是云服务器,在此不进行具体限定。
服务端120还可以将所点云底图和/或地图发送到终端130,由用户在终端130对点云底图和/或地图进行审核和编辑修改。其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑等,在此不进行具体限定。
在一些实施例中,服务端120还可以将所生成的地图发送到各个车辆,以车辆的车载显示设备上进行显示,或者发送到用户所在的用户终端。
图2是根据本申请的一个实施例示出的地图的生成方法的流程图,该方法可以由具备处理能力的计算机设备执行,例如服务器、云服务器等,在此不进行具体限定。参照图2所示,该方法至少包括步骤210至250,详细介绍如下:
步骤210,获取多个轨迹数据,轨迹数据包括车辆的位姿信息和与车辆位姿信息相关联的鸟瞰视角拼接图像。
轨迹数据是车辆在行驶过程中采集到的,其中,多个轨迹数据可以由来源于多个车辆,该多个轨迹数据可以是车辆在多次行驶过程中采集到的。
车辆的位姿信息可以是根据车辆中的GNSS(Global Navigation SatelliteSystem,全球导航卫星***)模块、GPS模块、IMU(Inertial Measurement Unit,惯性测量单元)模块、轮速计中所采集到的信息确定的。其中,IMU是由三轴加速计、三轴陀螺仪、三轴磁力计等多种传感器组成的模块。轮速计用于检测车轮在一定时间内移动的距离,从而推算出车辆的相对位姿(位置和航向)的变化。
车辆的位姿信息可以指示车辆的位置信息和车辆的姿态信息,车辆的姿态可以包括车辆的俯仰角、偏航角和翻滚角。
车辆的位置信息可以由GNSS模块根据所采集到的GNSS信号确定,或者由根据GPS模块根据所采集到的GPS信号确定。当车辆驶入GNSS信号较弱、或者GPS信号较弱的地方(例如驶入地下停车场等室内区域),车辆可以根据GNSS信号或者GPS信号低于设定阈值的位置点的位置信息和轮速计、IMU模块所采集到的信息进行航位推算,得到行驶过程中各个位置点的位置信息。
鸟瞰视角拼接图像是将车辆在至少两个视角下采集的图像沿鸟瞰视角进行拼接得到的。车辆中可以安装多个图像采集装置,以采集在多个视角下采集车辆在行驶过程中周围环境的图像。其中,所采集的图像可以是车辆的正前方环境的图像、左侧面的图像、右侧面的图像、左后方的图像、右后方的图像等。在一具体实施例中,车辆中设有三个图像采集装置,分别采集车辆的正前方、左侧面、右侧面这三个视角下的图像。当然,在其他实施例中,还可以采集其他视角下的图像。
在一些实施例中,可以由车辆将在各个位置点所采集在多个视角下的图像沿鸟瞰视角(Birds Eye View,BEV)进行拼接,得到鸟瞰视角拼接图像。在其他实施例中,车辆还可以将所采集的多个视角下的图像上传到服务端,由服务端来沿鸟瞰视角进行拼接,得到鸟瞰视角拼接图像。
图3示出了沿鸟瞰视角进行拼接得到鸟瞰视角拼接图像的示意图。图3A-3C是车辆在同一位置点由车辆上不同的摄像头采集到的,图3A的图像是所采集到车辆正前方环境的图像,图3B是所采集到车辆左侧前方环境的图像,图3C是所采集到车辆右前方环境的图像,将图3A-图3C沿鸟瞰视角进行拼接,可以得到图3D所示的鸟瞰视角拼接图像。
在车辆行驶过程中,车辆实时在多个位置点进行图像采集,因此,可以将车辆所采集的多张图像沿鸟瞰视角进行连续拼接,可以得到反映车辆行驶轨迹周围环境的连续的鸟瞰视角拼接图像。
在本申请中,轨迹数据中的鸟瞰视角拼接图像是将多个位置点的鸟瞰视角拼接图像沿行驶轨迹进行连续拼接得到的,为便于区分,将在各位置点所采集到多个视角下的图像沿鸟瞰视角进行拼接所得到的图像称为鸟瞰视角拼接子图像。
图4是将车辆行驶轨迹中所采集的图像沿鸟瞰视角进行连续所得到的鸟瞰视角拼接图像的示意图。在拼接过程中,将不同位置点对应的鸟瞰视角拼接子图像进行拼接过程中,特别是对应于拐弯处的鸟瞰视角拼接子图像进行拼接过程中,可以进行朝向优化减少黑边,其中,黑边是因相邻两鸟瞰视角拼接子图像拼接处未完全贴合所导致的。在拼接过程中,对于直线轨迹上的多个位置点对应的鸟瞰视角拼接子图像进行自由拼接减少拐弯扭曲。
步骤220,对各鸟瞰视角拼接图像进行道路元素识别,确定各鸟瞰视角拼接图像中的道路元素。
道路元素可以包括车道线(车道实线、车道虚线)、路面箭头、停止线、减速带、停车场中的车位边线、车位入口线等,在此不进行具体限定。
进行道路元素识别是指确定道路元素在鸟瞰视角拼接图像中所在的像素区域。可以理解的是,进行道路元素识别所得到的识别结果一方面指示了该鸟瞰视角拼接图像具体包括哪些道路元素,另一方面指示了各道路元素在鸟瞰视角拼接图像中的位置。
具体的,可以通过神经网络模型来对鸟瞰视角拼接图像进行道路元素识别。在一些实施例中,可以通过Mask R-CNN(Mask Recycle Convolutional Neural Network,掩膜循环卷积神经网络)、PANet(Path Aggregation Network,路径聚合网络)、FCIS(FullyConvolutional Instance-aware Semantic Segmentation,全卷积的实例感知语义分割)网络来将鸟瞰视角拼接图像的各道路元素分割,从而,确定各道路元素在鸟瞰视角拼接图像中的位置。
在一些实施例中,步骤220,包括:将各鸟瞰视角拼接图像输入道路元素识别模型中;由道路元素识别模型进行道路元素识别,输出各鸟瞰视角拼接图像对应的道路元素信息,道路元素信息用于指示所对应鸟瞰视角拼接图像中的道路元素。
在一些实施例中,道路元素识别模型可以是通过卷积神经网络、全连接神经网络、前馈神经网络、长短时记忆网络、循环神经网络等中的一种或者多个神经网络构建的。在另一些实施例中,道路元素识别模型可以是如上所列举的Mask R-CNN、PANet、FCIS。
为了保证道路元素识别的准确度,在进行道路元素识别之前,需要通过训练数据对道路元素识别模型进行训练。其中,训练数据包括多个样本鸟瞰视角拼接图像和样本鸟瞰视角拼接图像的标注信息。标注信息用于指示所对应样本鸟瞰视角拼接图像中的道路元素。在本申请中,将用于训练道路元素识别模型的鸟瞰视角拼接图像称为样本鸟瞰视角拼接图像。在训练过程中,将样本鸟瞰视角拼接图像输入到道路元素识别模型中,由道路元素识别模型对样本鸟瞰视角拼接图像进行道路元素识别,输出预测道路元素信息,该预测道路元素信息用于指示样本鸟瞰视角拼接图像中的道路元素,可以理解的是,该预测道路元素信息不仅指示了所识别出道路元素在样本鸟瞰视角拼接图像中的位置信息,还具体指示了是道路元素的语义(即指示了是何种道路元素,例如是车道线、或者减速带、或者停止线)。之后,基于该样本鸟瞰视角拼接图像的标注信息和预测道路元素信息,计算损失函数的损失值,并根据该损失值反向调整道路元素识别模型的参数。可以理解的是,该样本鸟瞰视角拼接图像的标注信息同样指示各道路元素在样本鸟瞰视角拼接图像中的位置信息。
其中,损失函数可以根据实际需要设定,例如损失函数可以是交叉熵损失函数、对数损失函数等,在此不进行具体限定。
当完成道路元素识别模型的训练之后,可将道路元素识别模型进行线上应用,来准确地识别道路元素。
步骤230,根据各鸟瞰视角拼接图像中的道路元素和各鸟瞰视角拼接图像所关联的车辆位姿信息,生成各轨迹数据对应的第一点云轨迹数据。
在本申请中,为了便于区分,将用于构建点云底图,且是基于鸟瞰视角拼接图像和所关联的位姿信息过构建的点云轨迹数据称为第一点云轨迹数据。第一点云轨迹数据包括轨迹路径中各个位置点的位置信息、以及轨迹路径上的道路元素的点云模型。可以理解的是,第一点云轨迹中不同道路元素的点云模型之间的相对位置关系与鸟瞰视角拼接图像所呈现出的相对位置关系是基本相同的。
道路元素的点云模型是在同一空间参考系下表达道路元素的空间分布和目标表面特性的海量点集合,在获取道路元素的每个采样点的空间坐标后,按照对应的坐标将道路元素上的全部采样点进行排布,得到该道路元素的点云模型。
在一些实施例中,步骤230,包括:根据各鸟瞰视角拼接图像所关联的车辆位姿信息,将各鸟瞰视角拼接图像中的每个道路元素进行三维重构,得到各鸟瞰视角拼接图像对应的第一点云轨迹数据。
通过对鸟瞰视角拼接图像中的道路元素进行三维重构,可以得到对应道路元素的三维点云模型,在此基础上,结合鸟瞰视角拼接图像所关联的位姿信息和所得到道路元素在鸟瞰视角拼接图像中的位置信息,可以确定道路元素在地理空间中的位置信息,从而按照道路元素在地理空间中的位置信息,将鸟瞰视角拼接图像中的各道路元素的三维点云模型进进行排布,对应得到鸟瞰视角拼接图像对应的第一点云轨迹数据。
在一些实施例中,可以采用深度学习的方式来对鸟瞰视角拼接图像中的道路元素进行三维重构。具体的,可以训练用于生成三维点云模型的神经网络模型(为便于区分,将该用于生成三维点云模型的神经网络模型称为三维重构模型),之后通过三维重构模型来对鸟瞰视角拼接图像中的各道路元素进行三维重构。
在一些实施例中,三维重构模型可以是通过卷积神经网络、全连接神经网络等构建的模型。在具体实施例中,该三维重构模型可以是Im2Avatar模型、对抗网络、生成网络等,在此不进行具体限定。
图5是根据一具体实施例示出的鸟瞰视角拼接图像对应的第一点云轨迹数据的示意图,在图5中,各个道路元素的边缘虽然看起来是线,但是实际上是点序列,由于点比较密集,视觉效果所以感觉是线。在具体实施例中,在第一点云轨迹数据中,可以通过不同的点云来表示不同的道路元素,例如通过蓝色的点云表示车道线,通过绿色的点云表示车位线,通过该红色的电源表示箭头等。
当车辆在高度差异较大的平面中行驶过程中,还需要关注车辆在竖直方向上的高度。具体的,可以通过车辆的俯仰角感知高度差异,进而确定车辆在竖直方向上的高度,例如当车辆在地下停车场的地下1层和地下2层,其在竖直方向上的高度是不同的。进一步的,当车辆在斜面上行驶过程中,也可以通过车辆的俯仰角来计算车辆所在斜面的坡度。
图6是根据本申请一实施例示出的在竖直投影面上点云轨迹数据中各道路元素的点云模型的投影示意图,如图6所示,可以明显看出第一平面610和第二平面620、第三平面630在竖直方向上的高度差异,因此,第一平面610、第二平面620、第三平面630对应为不同的楼层,图6中的白色阴影部分表示的是对应楼层中的道路元素。在图6中,第一平面610和第二平面620之间的第一斜线621、第二斜线622和第三斜线623可以表示在不同位置处连接第一楼层610和第二楼层620的倾斜路面;同理,第二平面620和第三平面630之间的第四斜线631表示连接第二平面620和第三平面630的倾斜路面。
图7是根据本申请一实施例示出的生成第一点云轨迹数据的流程图,如图7所示,包括:步骤710,沿鸟瞰视角进行图像拼接;其中,车辆上用于采集图像图像的摄像头可以是环视摄像头,该环视摄像头可以基于鱼眼成像采集到车辆行驶过程中周围环境中的图像,通过设置多个环视摄像头,可以采集到多个视角下的图像。在具体实施例中,在将不同视角下的图像进行拼接的过程中,可能存在发生畸变的情况,在该种情况下,将发生畸变的区域视为ROI(Region of Interest,感兴趣区域),并进行畸变校正,从而避免因拼接过程所产生的畸变导致后续所生成地图不准确。进一步的,在拼接的过程中,还涉及到将多个视角下所采集的图像进行逆透视变换,以便于将图像投影到鸟瞰视角下,进而拼接得到鸟瞰视角拼接图像。
步骤720,道路元素识别;通过步骤720确定鸟瞰视角拼接图像中的各个道路元素。步骤730,三维重构;通过三维重构,得到鸟瞰视角拼接图像中各个道路元素的点云模型,进而各个点云模型进行组合,得到第一点云轨迹数据。步骤710-730的具体实现过程参见上文描述,在此不再赘述。
请继续参阅图2,步骤240,将多个轨迹数据所对应的第一点云轨迹数据进行拼接,得到点云底图。
不同的第一点云轨迹数据覆盖了不同的环境区域,因此,多个第一点云轨迹数据进行拼接,可以得到反映基本全局区域情况的点云底图。
具体的,步骤240,包括:确定多个第一点云轨迹数据中任意两个中表示相同地理位置的第一目标道路元素;基于第一目标道路元素,将多个第一点云轨迹数据进行拼接,得到点云底图。
第一目标道路元素是指多个第一点云轨迹数据中任意两个中表示相同地理位置的道路元素。
不同的行驶轨迹之间可能存在轨迹相重叠的部分。从而,基于不同的轨迹数据所构建的第一点云轨迹数据中可能存在表示相同地理位置的道路元素(即第一目标道路元素)。
由于第一点云轨迹数据不仅示出了各道路元素的点云模型,而且,还对应关联了道路元素的元素语义(该元素语义即表示具体是何种道路元素)、以及道路元素的位置信息,因此,可以基于点云轨迹数据中各道路元素的元素语义、位置信息和道路元素附近的其他道路元素之间的相对位置关系,将任意两第一点云轨迹数据中的各道路元素进行比较,从而确定表示相同地理位置的第一目标道路元素。
在此基础上,可以通过移动第一点云轨迹数据,以使不同的第一点云轨迹数据中的第一目标道路元素相重合。可以理解的是,进行移动后,相重叠的第一目标道路元素所在位置即为不同的第一点云轨迹数据的拼接结合处。
通过将多个第一点云轨迹数据进行拼接,使得拼接后的多个第一点云轨迹数据中的道路元素可以反映更多地理环境区域中的道路元素,进而得到反映地理环境区域全局情况的点云底图。图8是根据本申请一实施例示出的点云底图的示意图。
步骤250,以点云底图作为对齐介质,将第二点云轨迹数据与点云底图进行对齐融合,得到地图。
在本申请中,点云底图可以反映地理环境区域(特别是GNSS信号、GPS信号较弱的室内区域)的全场地图骨架,该种构建点云底图的方式较快速。但是,由于点云底图是通过第一点云轨迹数据来构建的,而第一点云轨迹数据是通过鸟瞰视角拼接图像和所关联的车辆的位姿信息生成的,在实际中,由于车辆上的图像采集装置所能感知的视角受限,仅通过鸟瞰视角拼接图像和对应的位姿信息所生成的点云轨迹数据可能不能全局体现出地理环境中的全部道路元素,因此,在本申请中,通过能够表达更多道路元素的第二点云轨迹数据与点云底图进行融合,来生成地图。
第二点云轨迹数据相较于点云底图中可能包括更多的道路元素的点云模型,通过融合,可以将第二点云轨迹数据中存在而点云底图中不存在的道路元素(例如一些路标、柱子、超声波障碍物、墙面、闸机、栏杆、斑马线等)的点云模型添加到点云底图中,从而对点云底图进行融合更新,进而得到地图。
在一些实施例中,步骤250,包括:以点云底图作为对齐介质,将第二点云轨迹数据与点云底图进行对齐,确定第二点云轨迹数据相较于点云底图中的新增道路元素;将新增道路元素的点云模型添加到点云底图中,得到地图。
其中,第二点云轨迹数据相较于点云底图中的新增道路元素,是指在第二点云轨迹数据中存在,而在点云底图中不存在的道路元素。
如上所描述,由于点云底图可以基本反映地理环境区域的全局骨架,因此,第二点云轨迹数据和点云底图中存在表示相同地理位置的道路元素的概率较高,从而,基于该表示相同地理位置的道路元素,可以将第二点云轨迹数据与点云底图进行语义对齐,实现第二点云轨迹数据在点云底图上的定位。在对齐后,将第二点云轨迹数据与点云底图进行比较,从而确定相较于点云底图中的新增道路元素,并基于该新增道路元素在第二点云轨迹数据中的位置信息确定该新增道路元素在点云底图中的位置信息,并按照所确定的位置信息,将新增道路元素的点云模型添加到点云底图中,进而可以得到地图。
在本申请的方案中,先结合根据车辆的鸟瞰视角拼接图像和车辆的位姿信息来构建第一点云轨迹数据,并根据第一点云轨迹数据来生成点云底图,并将点云底图作为对齐介质,将第二点云轨迹数据与点云底图进行对齐融合,生成地图。本申请的方案可以应用于生成GNSS信号较弱、或者GPS信号较弱的区域的地图。
而且,在本申请的方案中,由于是先生成作为对齐介质的点云底图,点云底图基本反映了地理环境区域的全局情况,从而可以保证第二点云轨迹数据与点云底图的对齐成功率,降低出现无法对齐的概率。
在一些实施例中,由于不同车辆上的一硬件配置存在差异,例如,某些车辆上设有激光雷达,和/或,智能感知模块(也称为感知芯片,其中,智能感知模块可以实时根据采集的图像和车辆上的其他传感器所采集到的信息(例如轮速计、IMU等采集到的信息)来识别车辆周围环境的事物,例如道路元素等),而一些车辆没有安装激光雷达和智能感知模块。可以理解的是,由于鸟瞰视角拼接图像是经过一系列图像逆透视变换和拼接得到的,在逆透视变换和拼接过程中可能损失一些原图像中的信息,因此,相较于基于鸟瞰视角拼接图像来识别道路元素,基于车辆实时采集的图像结合车辆上其他传感器的信息来识别道路元素的准确度更高。从而,来源于不同硬件配置的车辆的点云轨迹数据的精度和准确度存在差异。
在本申请中,为便于区分,将设有激光雷达,和/或,智能感知模块的车辆,称为类型为第一类型的车辆;将未设有激光雷达和智能感知模块的车辆称为类型为第二类型的车辆。
激光雷达可以探测车辆周围环境中的物体尺寸和位置,可以理解的是,对于设有激光雷达的车辆而言,可以结合车辆所采集的图像、激光雷达探测到信号以及其他的轮速计、IMU、GNSS模块(或者GPS模块)来对应于车辆行驶轨迹的点云轨迹数据,其参考的信息更多,而且,激光雷达的探测精度和感测范围更广,因此,相较而言,来源于设有激光雷达的车辆的点云轨迹数据的精度和准确度更高。
感知芯片可以实时结合车辆中设置的传感器(例如图像采集装置、轮速计息、IMU、GNSS模块(或者GPS模块))采集到的信息实时进行环境的场景感知理解,例如障碍物的类型、道路标志及标线、行人车辆的检测、交通信号等数据的语义分类,然后基于对感知理解结果进行定位,从而帮助车辆更准确了解其相对于所处环境的位置。
一般而言,来源于第一类型的车辆的点云轨迹数据的精度和准确度相较于来源于第二类型的车辆的点云轨迹数据的精度更高,但是市场上,拥有第一类型的车辆的用户数量远远低于第二类型的车辆的用户数量,因此,如果仅依靠来源于第一类型的车辆的点云轨迹数据来构建地图,将导致地图的构建周期长。因此,在该种情况下,可以采用本申请的方法来构建地图。
具体在该种应用场景下,第一点云轨迹数据可以是根据第二类型的车辆的鸟瞰视角拼接图像和所关联的车辆为位姿信息所构建的点云轨迹,此时,在该种情况下,可以基于第一类型的车辆中对应于多个视角的图像采集装置所采集的图像来得到鸟瞰视角拼接图像,以及通过GNSS模块(或GPS模块)、IMU、和轮速计来采集得到车辆的位姿信息。
第二点云轨迹数据可以是指对应于第一类型的车辆的点云轨迹数据。在具体实施例中,第二点云轨迹数据可以是结合激光雷电所采集到的信息和/或智能感知模块的环境感知结果和定位结果、图像采集装置所采集到的视觉信息、IMU、轮速计、GNSS(或者GPS)模块等多种信息来构建的。可以理解的是,第二点云轨迹数据也对应指示了车辆的行驶轨迹,以及行驶环境中的各个道路元素和道路元素的位置信息。
在该种情况下,通过精度较低的第一点云轨迹数据构建点云底图,然后将精度较高和所感知到的道路元素更全面的第二点云轨迹数据与点云底图进行融合,生成地图,可以提高地图的生成效率和保证地图的准确度和精度。
而且,如果没有底图,直接将不同的点云轨迹数据进行拼接生成地图的方案,当两点云轨迹数据之间没有轨迹交叉位置点、或者轨迹交叉位置点较少的情况下,容易导致点云轨迹数据拼接失败,或者说语义对齐失败,而如果采用本申请的方案,由于预先构建了可以反映环境区域中基本全局情况的点云底图,从而,可以有效解决该问题,保证第二点云轨迹数据均能够与点云底图进行融合。
基于第二类型的车辆的轨迹数据来构建点云底图,并利用第一类型的车辆的第二点云轨迹数据来对点云底图进行优化和更新。如上所描述,相关技术中,归属于第二类型的车辆较多,而如果仅采用归属于第二类型的车辆对应的点云轨迹数据来生成地图,地图生成的周期长。而采用本申请的方法,由于数量高更多的归属于第二类型的车辆对应的点云轨迹数据数据量更多,地理环境区域的覆盖度更大,从而保证点云底图的覆盖面;在此基础上,通过归属于第一类型的车辆对应的点云轨迹数据对点云底图进行优化更新,得到地图,从而可以在缩短地图的生成周期和地图的准确度之间折中。而且,可以使不同硬件配置的车辆对应的轨迹数据均用于生成地图。
此外,当地图中需要新增语义元素时,只需要跟点云底图对齐后就能快速融合生成,不需要基于新版本数据重新拼接来生成地图。
本申请的方案可以应用于构建GNSS信号(或者GPS信号)较弱区域的地图,例如室内停车场的地图等。
在实际中,若两第一点云轨迹数据对应的轨迹不存在交叉轨迹点,则该两第一点云轨迹数据可能无法进行拼接,或者拼接后仍然点云底图中的某些区域不连续,例如道路可能是断开的。图9是根据一实施例示出的将两第一点云轨迹数据进行拼接的示意图,如图9所示,第一点云轨迹数据I和第一点云轨迹数据II拼接后,存在断开区域910,而按照常规判断,该断开区域910可能与实际的地理环境区域可能是不相符的。
因此,在该种情况下,可以人工参与到点云底图的构建过程中。在该种情况下,步骤240之后,该方法还包括:将点云底图发送到客户端,以使用户在客户端对点云底图进行拼接编辑。由此,用户通过对点云底图进行编辑,从而将点云底图中存在断开区域的部分进行人工编辑。
在一些实施例中,如图10所示,步骤250之前,该方法还包括:
步骤1010,从候选点云轨迹数据集合中获取一候选点云轨迹数据。
在一些实施例中,候选点云轨迹数据集合中的候选点云轨迹数据可以是来源于第一类型的车辆的点云轨迹数据。在另一些实施例中,候选点云轨迹数据集合也可以包括来自第一类型的车辆和第二类型的车辆的点云轨迹数据。
在一些实施例中,可以随机、或者按照设定的顺序从候选点云轨迹数据中获取候选点云轨迹数据。
在另一些实施例中,步骤1010,包括:根据候选点云轨迹数据集合中各候选点云轨迹数据对应的优先级,按照优先级由高到低的顺序,从候选点云轨迹数据集合获取一候选点云轨迹数据。
具体的,各候选点云轨迹数据对应的优先级可以是按照候选点云轨迹数据所来源车辆的车辆信息来设定的,其中,根据车辆信息可以确定车辆中设置的硬件模块。
在一些实施例中,可以设定,来源于设有激光雷达和智能感知模块的车辆的候选点云轨迹数据对应的优先级为第一优先级,来源于设有激光雷达或者智能感知模块的车辆的候选点云轨迹数据对应的优先级为第二优先级,来源于未设激光雷达和未设智能感知模块的车辆的候选点云轨迹数据对应的优先级为第三优先级,其中,第一优先级高于第二优先级,第二优先级高于第三优先级。
步骤1020,确定候选点云轨迹数据相对于点云底图的覆盖度。
具体的,可以根据候选点云轨迹数据所指示各道路元素的位置信息,确定候选点云轨迹数据所指示的行驶轨迹中位于点云底图中的目标部分轨迹的长度,然后将目标部分轨迹的长度与候选点云轨迹数据所指示的行驶轨迹的总长度相除,将所得到的比值作为候选点云轨迹数据相对于点云底图的覆盖度。
步骤1030,若覆盖度大于设定阈值,则将候选点云轨迹数据作为第二点云轨迹数据。
当覆盖度大于设定阈值,表明候选点云轨迹数据相对于点云底图的覆盖度较高,从而也表明候选点云轨迹数据对于提高点云底图的覆盖区域的覆盖度贡献较低,因此,此时可以将候选点云轨迹数据作为第二点云轨迹数据,以将候选点云轨迹数据与点云底图进行对齐融合。
在一些实施例中,步骤1020之后,该方法还包括:若覆盖度不大于设定阈值,则将候选点云轨迹数据与点云底图进行拼接,以对点云底图进行更新。
若覆盖度不大于设定阈值,则表明候选点云轨迹数据对于提高点云底图的覆盖区域的覆盖度贡献较高,因此,此时将候选点云轨迹数据作为第一点云轨迹数据,用于对点云底图进行更新。
在一些实施例中,如图11所示,将候选点云轨迹数据与点云底图进行拼接,以对点云底图进行更新的步骤进一步包括:
步骤1110,确定候选点云轨迹数据所对应车辆的目标车辆类型。
目标车辆类型是指候选点云轨迹数据所来源车辆所属的车辆类型。
在本实施例中,车辆可以是按照车辆上所配置的硬件来进行类型分类。在一具体实施例中,基于车辆上的硬件所设定的车辆类型包括第一类型和第二类型,其中,归属于第一类型的车辆上设有激光雷达和/或智能感知模块;归属于第二类型的车辆上未设有激光雷达和智能感知模块。
步骤1120,基于车辆类型与权重之间的对应关系,确定目标车辆类型对应的目标权重。
步骤1130,若目标权重大于权重阈值,则将点云底图中的第二目标道路元素进行移动,以使点云底图中的第二目标道路元素与候选点云轨迹数据中的第二目标道路元素重叠;其中,第二目标道路元素是指点云底图和候选点云轨迹数据中表示相同地理位置的道路元素。
步骤1140,若目标权重不大于权重阈值,则将候选点云轨迹数据中的第二目标道路进行移动,以使点云底图中的第二目标道路元素与候选点云轨迹数据中的第二目标道路元素重叠。
步骤1150,组合进行移动后的点云底图和候选点云轨迹数据,作为更新后的点云底图。
目标权重是指目标车辆类型对应的权重。其中,车辆类型与权重之间的对应关系可以根据实际需要进行设定。
在一些实施例中,可以将所对应点云轨迹数据精度更高的车辆配置较高的权重,将所对应点云轨迹数据精度较低的车辆设置较低的权重。例如,相较于归属于第二类型的车辆,归属于第一类型的车辆对应的权重更高。从而,在拼接过程中,则可以保证精度更高的点云轨迹数据在拼接过程中移动较少,相反,精度更低的点云轨迹数据在拼接过程中移动较多,从而避免在拼接过程中移动原本精度较高的点云轨迹数据导致降低该点云轨迹数据的准确度和精度。
在本实施例中,根据候选点云轨迹数据所对应车辆的目标车辆类型来确定对应的目标权重,进而根据目标权重来确定拼接过程所要进行移动的对象,从而,可以避免在在拼接过程中移动原本精度较高的点云轨迹数据,进而保证点云底图中各道路元素的位置准确度。
图12是根据本申请一具体实施例示出的地图的生成方法的流程图。在图12中灰色填充的步骤为人工参与的步骤。如图12所示,包括:将轨迹数据上传到服务端,由服务端根据轨迹数据进行道路元素识别并生成对应的点云轨迹数据;然后,进行数据筛选,具体数据筛选的过程可以参见图10所示的过程,即确定点云轨迹数据相对于点云底图的覆盖度,若覆盖度不大于设定阈值,则表明该点云轨迹数据的覆盖度贡献较高,则将该点云轨迹数据用于拼接生成点云底图,在拼接生成点云底图的过程中,可以将该点云底图发送到客户端,由用户对该点云底图进行拼接编辑。
反之,若覆盖度大于设定阈值,则表明该点云轨迹数据的覆盖度贡献较低,则可以将该点云轨迹数据用于与点云底图进行对齐融合,进而生成地图。
地图中的图层包括定位图层和逻辑图层。进一步的,在生成地图之后,可以将该地图发送到客户端,从而,由用于基于客户端所显示的地图进行定位图层编辑和/或逻辑图层编辑,在进行地图编辑后,可以进一步通过技术人员对地图进行质检,进而得到高精度和高准确度的地图。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的方法。对于本申请装置实施例中未披露的细节,请参照本申请上述方法实施例。
图13是根据本申请一实施例示出的地图的生成装置的框图,如图13所示,该地图的生成装置包括:获取模块1310,用于获取多个轨迹数据,轨迹数据包括车辆的位姿信息和与车辆位姿信息相关联的鸟瞰视角拼接图像;识别模块1320,用于对各鸟瞰视角拼接图像进行道路元素识别,确定各鸟瞰视角拼接图像中的道路元素;生成模块1330,用于根据各鸟瞰视角拼接图像中的道路元素和各鸟瞰视角拼接图像所关联的车辆位姿信息,生成各轨迹数据对应的第一点云轨迹数据;拼接模块1340,用于将多个轨迹数据所对应的第一点云轨迹数据进行拼接,得到点云底图;融合模块1350,用于以点云底图作为对齐介质,将第二点云轨迹数据与点云底图进行对齐融合,得到地图。
在一些实施例中,识别模块1320,包括:输入单元,用于将各鸟瞰视角拼接图像输入道路元素识别模型中;输出单元,用于由道路元素识别模型进行道路元素识别,输出各鸟瞰视角拼接图像对应的道路元素信息,道路元素信息用于指示所对应鸟瞰视角拼接图像中的道路元素。
在一些实施例中,生成模块1330进一步被配置为:根据各鸟瞰视角拼接图像所关联的车辆位姿信息,将各鸟瞰视角拼接图像中的每个道路元素进行三维重构,得到各鸟瞰视角拼接图像对应的第一点云轨迹数据。
在一些实施例中,拼接模块1340,包括:第一目标道路元素确定单元,用于确定多个第一点云轨迹数据中任意两个中表示相同地理位置的第一目标道路元素;拼接单元,用于基于第一目标道路元素,将多个第一点云轨迹数据进行拼接,得到点云底图。
在一些实施例中,地图的生成装置还包括:发送模块,用于将点云底图发送到客户端,以使用户在客户端对点云底图进行拼接编辑。
在一些实施例中,地图的生成装置还包括:候选点云轨迹数据获取模块,用于从候选点云轨迹数据集合中获取一候选点云轨迹数据;覆盖度确定模块,用于确定候选点云轨迹数据相对于点云底图的覆盖度;第二点云轨迹数据确定模块,用于若覆盖度大于设定阈值,则将候选点云轨迹数据作为第二点云轨迹数据。
在一些实施例中,地图的生成装置还包括:更新模块,用于若覆盖度不大于设定阈值,则将候选点云轨迹数据与点云底图进行拼接,以对点云底图进行更新。
在一些实施例中,更新模块,包括:目标车辆类型确定单元,用于确定候选点云轨迹数据所对应车辆的目标车辆类型;目标权重确定单元,用于基于车辆类型与权重之间的对应关系,确定目标车辆类型对应的目标权重;第一移动单元,用于若目标权重大于权重阈值,则将点云底图中的第二目标道路元素进行移动,以使点云底图中的第二目标道路元素与候选点云轨迹数据中的第二目标道路元素重叠;其中,第二目标道路元素是指点云底图和候选点云轨迹数据中表示相同地理位置的道路元素;第二移动单元,用于若目标权重不大于权重阈值,则将候选点云轨迹数据中的第二目标道路进行移动,以使点云底图中的第二目标道路元素与候选点云轨迹数据中的第二目标道路元素重叠;组合单元,用于组合进行移动后的点云底图和候选点云轨迹数据,作为更新后的点云底图。
在一些实施例中,候选点云轨迹数据获取模块进一步被配置为:根据候选点云轨迹数据集合中各候选点云轨迹数据对应的优先级,按照优先级由高到低的顺序,从候选点云轨迹数据集合获取一候选点云轨迹数据。
在一些实施例中,融合模块,包括:新增道路元素确定单元,用于以点云底图作为对齐介质,将第二点云轨迹数据与点云底图进行对齐,确定第二点云轨迹数据相较于点云底图中的新增道路元素;添加单元,用于将新增道路元素的点云模型添加到点云底图中,得到地图。
图14是根据本申请一实施例示出的电子设备的结构框图。该电子设备可以是物理服务器、云服务器等,在此不进行具体限定。如图14所示,本申请中的电子设备可以包括:处理器1410和存储器1420,存储器1420上存储有计算机可读指令,计算机可读指令被处理器1410执行时,实现上述任一方法实施例中的方法。
处理器1410可以包括一个或者多个处理核。处理器1410利用各种接口和线路连接整个电子设备内的各个部分,通过运行或执行存储在存储器1420内的指令、程序、代码集或指令集,以及调用存储在存储器1420内的数据,执行电子设备的各种功能和处理数据。可选地,处理器1410可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器1410可集成中央处理器(CentralProcessing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作***、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1410中,单独通过一块通信芯片进行实现。
存储器1420可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器1420可用于存储指令、程序、代码、代码集或指令集。存储器1420可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作***的指令、用于实现至少一个功能的指令(比如触控功能、报警功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备在使用中所创建的数据(比如伪装的响应命令、获取的进程状态)等。
本申请还提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被处理器执行时,实现上述任一方法实施例中的方法。
计算机可读存储介质可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质具有执行上述方法中的任何方法步骤的计算机可读指令的存储空间。这些计算机可读指令可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。计算机可读指令可以例如以适当形式进行压缩。
根据本申请实施例的一个方面,提供了计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一实施例中的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。