掌桥专利:专业的专利平台
掌桥专利
首页

一种基于视觉语义点云的建图方法及系统

文献发布时间:2023-06-19 09:51:02


一种基于视觉语义点云的建图方法及系统

技术领域

本发明涉及深度学习、机器视觉和地图构建技术领域,尤其涉及一种基于视觉语义点云的建图方法及系统。

背景技术

点云地图大量应用于即时定位与建图(simultaneous localization andmapping,SLAM)技术中,在实时追踪机器人的位置和局部建图等具体功能上扮演着重要的作用。点云地图根据所采用的传感器方案,主要可以分为由激光雷达直接采集得到的激光点云地图,以及由摄像头采集的图像转化得到的视觉点云地图。视觉点云地图的传感器方案相比激光点云地图的传感器方案,成本优势巨大,但受限于精度,地图复用困难等原因,目前视觉点云地图并没有像激光点云地图得到大规模的应用。

因此,在点云建图时,如何在降低硬件成本的同时,提升视觉点云的建图精度,降低视觉点云的冗余程度和储存消耗,是一项亟待解决的问题。

发明内容

有鉴于此,本发明提供了一种基于视觉语义点云的建图方法,能够在降低硬件成本的同时,提升视觉点云的建图精度,降低视觉点云的冗余程度和储存消耗。

本发明提供了一种基于视觉语义点云的建图方法,包括:

采集车辆运行过程中的图像数据,其中,所述图像数据包括:车辆的四路环视图像和运动参数;

将所述四路环视图像拼接为鸟瞰图;

提取所述鸟瞰图中的语义信息;

基于所述图像数据相邻帧间的惯性约束、视觉特征点约束以及语义点云约束优化车辆位姿;

基于提取的所述语义信息、优化的所述车辆位姿和所述鸟瞰图,计算每一帧中具有语义信息的像素点的世界坐标,并在世界地图上更新对应的点和语义信息,将所有帧计算完毕后,得到一个包含所有语义信息的点云地图;

初始化八叉树地图,根据每一帧计算得到的点云更新八叉树地图中对应体素的占据概率与颜色信息,在所有帧计算完毕后,得到一个带有语义信息和占据置信度的八叉树地图;

储存所述带有语义信息和占据置信度的八叉树地图;

基于设置的置信度阈值对所述带有语义信息和占据置信度的八叉树地图进行体素滤波;

提取滤波后的八叉树地图被占据的体素的中心坐标以及体素的语义信息,重新转化为语义点云地图。

优选地,所述采集车辆运行过程中的四路图像数据,包括:

通过四路环视摄像头采集车辆的四路环视图像;

通过惯性传感器采集车辆的运动参数。

优选地,所述将所述四路环视图像拼接为鸟瞰图,包括:

利用棋盘格直接标定的方法,将所述四路环视图像拼接为鸟瞰图。

优选地,所述提取所述鸟瞰图中的语义信息,包括:

通过语义分割模型提取车位线、车道线、箭头、禁停线和鱼骨线;

通过目标检测模型提取车位线角点和箭头端点。

一种基于视觉语义点云的建图系统,包括:

采集模块,用于采集车辆运行过程中的图像数据,其中,所述图像数据包括:车辆的四路环视图像和运动参数;

拼接模块,用于将所述四路环视图像拼接为鸟瞰图;

语义特征提取模块,用于提取所述鸟瞰图中的语义信息;

优化模块,用于基于所述图像数据相邻帧间的惯性约束、视觉特征点约束以及语义点云约束优化车辆位姿;

第一建图模块,用于基于提取的所述语义信息、优化的所述车辆位姿和所述鸟瞰图,计算每一帧中具有语义信息的像素点的世界坐标,并在世界地图上更新对应的点和语义信息,将所有帧计算完毕后,得到一个包含所有语义信息的点云地图;

第二建图模块,用于初始化八叉树地图,根据每一帧计算得到的点云更新八叉树地图中对应体素的占据概率与颜色信息,在所有帧计算完毕后,得到一个带有语义信息和占据置信度的八叉树地图;

储存模块,用于储存所述带有语义信息和占据置信度的八叉树地图;

滤波模块,用于基于设置的置信度阈值对所述带有语义信息和占据置信度的八叉树地图进行体素滤波;

转化模块,用于提取滤波后的八叉树地图被占据的体素的中心坐标以及体素的语义信息,重新转化为语义点云地图。

优选地,所述采集模块包括:四路环视摄像头和惯性传感器;其中:

所述通过四路环视摄像头,用于采集车辆的四路环视图像;

所述通过惯性传感器,用于采集车辆的运动参数。

优选地,所述拼接模块具体用于:

利用棋盘格直接标定的方法,将所述四路环视图像拼接为鸟瞰图。

优选地,所述语义特征提取模块包括:语义分割模型和目标检测模型;

其中:

所述语义分割模型,用于提取车位线、车道线、箭头、禁停线和鱼骨线;

所述目标检测模型,用于提取车位线角点和箭头端点。

一种设备,包括:至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如上所述的基于视觉语义点云的建图方法。

一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述的基于视觉语义点云的建图方法。

综上所述,本发明公开了一种基于视觉语义点云的建图方法,当需要构建点云地图时,首先采集车辆运行过程中的图像数据,其中,图像数据包括:车辆的四路环视图像和运动参数;将四路环视图像拼接为鸟瞰图;提取鸟瞰图中的语义信息;基于图像数据相邻帧间的惯性约束、视觉特征点约束以及语义点云约束优化车辆位姿;基于提取的语义信息、优化的车辆位姿和鸟瞰图,计算每一帧中具有语义信息的像素点的世界坐标,并在世界地图上更新对应的点和语义信息,将所有帧计算完毕后,得到一个包含所有语义信息的点云地图;初始化八叉树地图,根据每一帧计算得到的点云更新八叉树地图中对应体素的占据概率与颜色信息,在所有帧计算完毕后,得到一个带有语义信息和占据置信度的八叉树地图;储存带有语义信息和占据置信度的八叉树地图;基于设置的置信度阈值对带有语义信息和占据置信度的八叉树地图进行体素滤波;提取滤波后的八叉树地图被占据的体素的中心坐标以及体素的语义信息,重新转化为语义点云地图。本发明能够在降低硬件成本的同时,提升视觉点云的建图精度,降低视觉点云的冗余程度和储存消耗。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明公开的一种基于视觉语义点云的建图方法实施例的方法流程图;

图2为本发明公开的一种提取的语义特征示例图;

图3为本发明公开的一种八叉树地图结构以及占据置信度更新方式示意图;

图4为本发明公开的一种由八叉树滤波及规范前后的点云地图对比示意图;

图5为本发明公开的一种基于视觉语义点云的建图系统实施例的结构示意图;

图6为本发明公开的一种设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,为本发明公开的一种基于视觉语义点云的建图方法实施例的方法流程图,所述方法可以包括以下步骤:

S101、采集车辆运行过程中的图像数据,其中,图像数据包括:车辆的四路环视图像和运动参数;

当需要构建点云地图时,首先在车辆运动过程中,采集车辆运行过程中的图像数据。

具体的,通过四路环视摄像头采集车辆周围的四路环视图像,以及通过惯性传感器采集车辆的加速度、轮速等运动参数。

S102、将四路环视图像拼接为鸟瞰图;

然后,将采集到的四路环视图像进行鸟瞰拼接,得到鸟瞰图。

具体的,鸟瞰拼接利用棋盘格直接标定的方法,建立俯视视角图像坐标系和原视角图像坐标系之间的俯视变换关系,并根据摄像头的外参将四路环视图像拼接到一起。归一化四路环视图像坐标[u,v]与归一化俯视视角图像坐标[x,y]间的关系如下所示:

[x″,y″,w″]=[u,v,1]×A

[x′,y′]=[x″,y″]/w″

其中,A为透射变换矩阵,R,t为环视相机外参。

S103、提取鸟瞰图中的语义信息;

在拼接得到鸟瞰图后,进一步提取鸟瞰图中的语义信息。

具体的,如图2所示,通过语义分割模型提取车位线、车道线、箭头、禁停线和鱼骨线;通过目标检测模型提取车位线角点和箭头端点。

S104、基于图像数据相邻帧间的惯性约束、视觉特征点约束以及语义点云约束优化车辆位姿;

然后,根据相邻帧间的惯性约束、视觉特征点约束以及语义点云约束优化车辆位姿。

具体的,鸟瞰图与原四路环视图像间建立了俯视变换关系,同时,从鸟瞰图中提取的车位线,车道线等语义信息可以视为与车辆处于同一平面内,在这样的假设下,鸟瞰图坐标[x,y]和真实尺度的车辆坐标[X,Y,Z]的转换关系如下所示:

[X,Y]=([x,y]-origin)×scale

Z=Z

其中,origin为车辆坐标系原点对应的鸟瞰图坐标,scale为鸟瞰图与真实尺度之间的标度,Z

两帧间点云建立起的约束如下所示:

其中,Q和P分别为相邻两帧待匹配的点云,q

S105、基于提取的语义信息、优化的车辆位姿和鸟瞰图,计算每一帧中具有语义信息的像素点的世界坐标,并在世界地图上更新对应的点和语义信息,将所有帧计算完毕后,得到一个包含所有语义信息的点云地图;

然后,根据提取的语义信息,优化的车辆位姿和鸟瞰图计算每一帧中,具有语义信息的像素点的世界坐标,并在世界地图上更新对应的点和语义信息,将所有帧计算完毕后,会获得一个包含行驶过程中观察到的所有语义信息的点云地图。

S106、初始化八叉树地图,根据每一帧计算得到的点云更新八叉树地图中对应体素的占据概率与颜色信息,在所有帧计算完毕后,得到一个带有语义信息和占据置信度的八叉树地图;

根据需要,初始化一个合适分辨率的八叉树地图。在执行步骤S105的同时,同时根据观察到的局部点云,更新八叉树地图对应体素的占据概率和语义信息,如图3所示。叶子节点储存了其是否被占据的概率信息x,相应地,存在一个与之对应的对数概率y,x与y间的关系如下所示:

其中,y的取值范围为-∞至+∞,x的取值范围为0-1,算法对叶子节点进行概率更新时,通常选择对数概率y作为更新的对象,需要时再转化为正常的概率x。

图3所示为建图过程中的一个基本单元。每当接受到当前帧的鸟瞰图及对应的局部点云时,会首先确定当前帧在八叉树地图中对应的空间范围。其次分别对局部点云和八叉树已有的叶子节点进行检查,若当前点对应的位置不存在叶子节点,则建立叶子节点和相应的副节点,叶子节点储存的对数概率+1;若当前点对应的位置存在叶子节点,则叶子节点储存的对数概率+1。若当前帧的对应空间范围内的叶子节点没有点落入,则其储存的对数概率-1。若当前叶子节点的对数概率大于或小于一定的阈值后,其对数概率会锁定为该阈值不再修改。

S107、储存带有语义信息和占据置信度的八叉树地图;

重复上述步骤S106和S107,直至车辆充分采集了当前环境的信息,然后将带有语义信息和占据置信度的八叉树地图进行储存。

S108、基于设置的置信度阈值对带有语义信息和占据置信度的八叉树地图进行体素滤波;

然后,根据设置的置信度阈值,对得到的带有语义信息和占据置信度的八叉树地图的叶子节点进行占据/非占据判断,得到滤波后的八叉树地图。所有节点的初始对数概率为0,即初始概率为0.5。概率越接近1,节点被占据的可能性越大,通常置信度阈值设置为(0.5,1)之间,具体数值视滤波强度而定。

S109、提取滤波后的八叉树地图被占据的体素的中心坐标以及体素的语义信息,重新转化为语义点云地图。

最后,提取滤波后的八叉树地图被占据的体素的中心坐标以及体素的语义信息,重新转化为一张新的语义点云地图,建图过程结束。

如图4所示展示了后处理前后的点云地图(局部)对比,将局部点云直接拼接得到的整体点云地图,由于语义特征提取模块和SLAM模块引入的误差,地图的准确度并不高,车位线显得相对凌乱,出现了许多错误的重叠;左下角的前进-左转箭头周围有许多错误生成的点云,基本无法判断出箭头的形状;下方的道路右侧也出现了一些错误生成的点云。

经过步骤S106~S109的处理后,最终输出的地图基本修正了初始地图中错误生成的点云,车位线错误重叠的部分被筛除,左下角的箭头的形状得以恢复。同时,点云的密度大幅下降,储存消耗和后继的计算消耗大幅降低。

综上所述,本发明利用传统摄像头并辅以惯性传感器来进行点云地图的构建与定位,相比于传统的激光雷达,本发明提供的传感器方案成本低廉,结构简单,维护方便,利好大规模量产。本发明在现有方案的SLAM位姿优化基础上,增加了点云配准约束,获得了更准确的车辆位姿,有效地提升了建图的准确度。本发明利用八叉树地图对点云地图进行了体素滤波,可以有效地消除建图噪声,进一步提升了地图的准确度。本发明在使用八叉树对原始点云进行滤波后,将八叉树地图被占据的体素的中心坐标以及体素的语义信息,重新转化为语义点云地图,该方法不仅大幅减少原始地图中的冗余点,节省储存空间及后继的计算资源消耗,同时也解决了地图转化为八叉树结构后难以利用的问题。

如图5所示,为本发明公开的一种基于视觉语义点云的建图系统实施例的结构示意图,所述系统可以包括:

采集模块501,用于采集车辆运行过程中的图像数据,其中,图像数据包括:车辆的四路环视图像和运动参数;

拼接模块502,用于将四路环视图像拼接为鸟瞰图;

语义特征提取模块503,用于提取鸟瞰图中的语义信息;

优化模块504,用于基于图像数据相邻帧间的惯性约束、视觉特征点约束以及语义点云约束优化车辆位姿;

第一建图模块505,用于基于提取的语义信息、优化的车辆位姿和鸟瞰图,计算每一帧中具有语义信息的像素点的世界坐标,并在世界地图上更新对应的点和语义信息,将所有帧计算完毕后,得到一个包含所有语义信息的点云地图;

第二建图模块506,用于初始化八叉树地图,根据每一帧计算得到的点云更新八叉树地图中对应体素的占据概率与颜色信息,在所有帧计算完毕后,得到一个带有语义信息和占据置信度的八叉树地图;

储存模块507,用于储存带有语义信息和占据置信度的八叉树地图;

滤波模块508,用于基于设置的置信度阈值对带有语义信息和占据置信度的八叉树地图进行体素滤波;

转化模块509,用于提取滤波后的八叉树地图被占据的体素的中心坐标以及体素的语义信息,重新转化为语义点云地图。

综上所述,本实施例提供的基于视觉语义点云的建图系统的工作原理与上述基于视觉语义点云的建图方法实施例的工作原理相同,在此不再赘述。

所述基于视觉语义点云的建图系统包括处理器和存储器,上述采集模块、拼接模块、语义特征提取模块、优化模块、第一建图模块、第二建图模块、储存模块、滤波模块和转化模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来进行知识图谱自动构建。

本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述基于视觉语义点云的建图方法。

本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述基于视觉语义点云的建图方法。

如图6所示,本发明实施例提供了一种设备60,设备60包括至少一个处理器601、以及与处理器601连接的至少一个存储器602、总线603;其中,处理器601、存储器602通过总线603完成相互间的通信;处理器601用于调用存储器602中的程序指令,以执行上述的基于视觉语义点云的建图方法。本文中的设备可以是服务器、PC、PAD、手机等。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:

采集车辆运行过程中的图像数据,其中,所述图像数据包括:车辆的四路环视图像和运动参数;

将所述四路环视图像拼接为鸟瞰图;

提取所述鸟瞰图中的语义信息;

基于所述图像数据相邻帧间的惯性约束、视觉特征点约束以及语义点云约束优化车辆位姿;

基于提取的所述语义信息、优化的所述车辆位姿和所述鸟瞰图,计算每一帧中具有语义信息的像素点的世界坐标,并在世界地图上更新对应的点和语义信息,将所有帧计算完毕后,得到一个包含所有语义信息的点云地图;

初始化八叉树地图,根据每一帧计算得到的点云更新八叉树地图中对应体素的占据概率与颜色信息,在所有帧计算完毕后,得到一个带有语义信息和占据置信度的八叉树地图;

储存所述带有语义信息和占据置信度的八叉树地图;

基于设置的置信度阈值对所述带有语义信息和占据置信度的八叉树地图进行体素滤波;

提取滤波后的八叉树地图被占据的体素的中心坐标以及体素的语义信息,重新转化为语义点云地图。

可选地,所述采集车辆运行过程中的四路图像数据,包括:

通过四路环视摄像头采集车辆的四路环视图像;

通过惯性传感器采集车辆的运动参数。

可选地,所述将所述四路环视图像拼接为鸟瞰图,包括:

利用棋盘格直接标定的方法,将所述四路环视图像拼接为鸟瞰图。

可选地,所述提取所述鸟瞰图中的语义信息,包括:

通过语义分割模型提取车位线、车道线、箭头、禁停线和鱼骨线;

通过目标检测模型提取车位线角点和箭头端点。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 一种基于视觉语义点云的建图方法及系统
  • 一种基于视觉环视系统点云建图方法
技术分类

06120112328970