CN111105695B - 地图制作方法、装置、电子设备及计算机可读存储介质 - Google Patents
地图制作方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111105695B CN111105695B CN201911419325.2A CN201911419325A CN111105695B CN 111105695 B CN111105695 B CN 111105695B CN 201911419325 A CN201911419325 A CN 201911419325A CN 111105695 B CN111105695 B CN 111105695B
- Authority
- CN
- China
- Prior art keywords
- point
- control key
- determining
- key points
- map
- 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
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B29/00—Maps; Plans; Charts; Diagrams, e.g. route diagram
- G09B29/003—Maps
- G09B29/005—Map projections or methods associated specifically therewith
-
- 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/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/28—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
- G01C21/30—Map- or contour-matching
- G01C21/32—Structuring or formatting of map data
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Automation & Control Theory (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开的实施例公开了一种地图制作方法、装置、电子设备及计算机可读存储介质。该方法包括:基于摄像头,获取基础地图;其中,基础地图中包括摄像头采集的关键帧,以及重建的三维点云;检测关键帧中的语义目标,并确定用于构成语义目标的关键点中的N个控制关键点;其中,N为大于或等于2的整数;确定N个控制关键点对应的N个平面方程;其中,每个平面方程用于表征相应控制关键点所在的平面;基于N个平面方程,确定三维点云中语义目标对应的第一点云;针对第一点云标注语义目标的语义信息,并基于标注有语义信息的基础地图,获得目标地图。与现有技术中依赖激光雷达设备实现地图制作的情况相比,本公开的实施例中的地图制作方式的成本更低。
Description
技术领域
本公开涉及驾驶技术领域,尤其涉及一种地图制作方法、装置、电子设备及计算机可读存储介质。
背景技术
在自动驾驶系统中,需要地图(例如高清地图)为车辆定位,目前常用的制作高清地图的方式是:采用激光雷达扫描街道环境,基于扫描结果生成高清地图。这种地图制作方式需要利用激光雷达设备,而激光雷达设备非常昂贵,因此,这种地图制作方式的成本非常高。
发明内容
为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种地图制作方法、装置、电子设备及计算机可读存储介质。
根据本公开实施例的一个方面,提供了一种地图制作方法,包括:
基于摄像头,获取基础地图;其中,所述基础地图中包括所述摄像头采集的关键帧,以及重建的三维点云;
检测所述关键帧中的语义目标,并确定用于构成所述语义目标的关键点中的N个控制关键点;其中,N为大于或等于2的整数;
确定所述N个控制关键点对应的N个平面方程;其中,每个平面方程用于表征相应控制关键点所在的平面;
基于所述N个平面方程,确定所述三维点云中所述语义目标对应的第一点云;
针对所述第一点云标注所述语义目标的语义信息,并基于标注有所述语义信息的所述基础地图,获得目标地图。
根据本公开实施例的另一个方面,提供了一种地图制作装置,包括:
第一获取模块,用于基于摄像头,获取基础地图;其中,所述基础地图中包括所述摄像头采集的关键帧,以及重建的三维点云;
第一处理模块,用于检测所述关键帧中的语义目标,并确定用于构成所述语义目标的关键点中的N个控制关键点;其中,N为大于或等于2的整数;
第一确定模块,用于确定所述N个控制关键点对应的N个平面方程;其中,每个平面方程用于表征相应控制关键点所在的平面;
第二确定模块,用于基于所述N个平面方程,确定所述三维点云中所述语义目标对应的第一点云;
第二处理模块,用于针对所述第一点云标注所述语义目标的语义信息,并基于标注有所述语义信息的所述基础地图,获得目标地图。
根据本公开实施例的再一个方面,提供了一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述地图制作方法。
根据本公开实施例的又一个方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述地图制作方法。
本公开的实施例中,可以先基于摄像头,获取包括关键帧和三维点云的基础地图;接下来,对于检测出的关键帧中的语义目标,可以确定用于构成其的关键点中的N个控制关键点,并确定N个控制关键点对应的N个平面方程;之后,可以基于N个平面方程,确定三维点云中语义目标对应的第一点云,针对第一点云标注语义目标的语义信息,并基于标注有语义信息的基础地图,获得目标地图。可见,本公开的实施例中,在基于摄像头获取基础地图之后,通过平面方程的确定,可以对三维点云进行相应标注,以便于得到作为地图制作结果的目标地图,也即,本公开的实施例中是依赖摄像头实现地图制作的,与激光雷达设备相比,摄像头的价格非常低廉,因此,与现有技术中依赖激光雷达设备实现地图制作的情况相比,本公开的实施例中的地图制作方式的成本更低。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1为本公开一示例性实施例提供的地图制作方法的流程示意图;
图2为本公开一示例性实施例中的地图制作原理示意图;
图3为本公开一示例性实施例中的逆透视投影原理示意图;
图4为本公开一示例性实施例提供的地图制作装置的结构框图;
图5为本公开另一示例性实施例提供的地图制作装置的结构框图;
图6为本公开再一示例性实施例提供的地图制作装置的结构框图;
图7为本公开又一示例性实施例提供的地图制作装置的结构框图;
图8为本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,不代表任何特定技术含义和必然逻辑顺序;“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本公开中字符“/”表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
示例性方法
图1是本公开一示例性实施例提供的地图制作方法的流程示意图。图1所示的方法包括步骤101、步骤102、步骤103、步骤104和步骤105,下面对各步骤分别进行说明。
步骤101,基于摄像头,获取基础地图;其中,基础地图中包括摄像头采集的关键帧,以及重建的三维点云。
如图2所示,本公开的实施例中可以设置一个视觉同步定位与地图构建(Simultaneous Localization and Mapping,SLAM)系统,视觉SLAM系统可以为基于单目摄像头的系统。
需要说明的是,步骤101中涉及的摄像头可以为设置在车辆上的单目摄像头,该摄像头采集的数据可以提供给视觉SLAM系统,视觉SLAM系统可以据此进行摄像头姿态估计和跟踪、关键帧提取、回环检测和集束调整(Bundle Adjustment,BA)等,以得到基础地图;其中,基础地图中可以包括摄像头采集的数据中的关键帧,以及重建的三维点云,三维点云可以是依据关键帧中的关键点做视觉计算后重建的。
可选地,基础地图中的关键帧的数量可以为多个,多个关键帧可以组成关键帧池;基础地图中除了包括关键帧和三维点云之外,还可以包括摄像头姿态和视觉关键点集合(即key point)等。
可选地,基于摄像头,获取基础地图,可以包括:
基于惯性测量单元(Inertialmeasurementunit,IMU)和全球定位系统(GlobalPositioning System,GPS)中的至少一者,以及摄像头,获取基础地图。
这里,在车辆上设置有IMU这种惯导器件的情况下,视觉SLAM系统可以被构建为IMU和视觉的融合系统,即构建为VIM(即visual-inertialmapping),VIM中可以包括VI(即visual-inertial)优化模块。摄像头和IMU采集的数据可以均提供给视觉SLAM系统,VI优化模块可以专门处理摄像头姿态估计和跟踪。需要指出的是,针对高楼林立的街道、地下停车场、隧道等没有信号的位置,摄像头+IMU的配置是适宜的。
另外,在车辆上设置有GPS的情况下,GPS可以协助VI优化模块完成摄像头跟踪任务,例如完成初始化或者部分回环的初始化。
步骤102,检测关键帧中的语义目标,并确定用于构成语义目标的关键点中的N个控制关键点;其中,N为大于或等于2的整数。
这里,语义目标可以为车道线、车道标记、路牌、红绿灯等,那么,如图2所示,在步骤102中,可以进行车道线检测、车道标记检测、路牌检测、红绿灯检测等。
需要说明的是,车道线检测是像素级的分割任务,车道线检测可以采用空间卷积神经网络(Spatial Convolutional Neural Networks,SCNN)等深度学习模型实现。车道标记检测也是分割任务,车道标记检测可以采用MaskRCNN模型实现;其中,MaskRCNN是一种实例分割算法。路牌可以是菱形、长方形、圆形、三角形等,路牌和红绿灯的检测可以采用YOLOv3等常用的二维(即2D)目标检测算法实现;其中,YOLOv3是目前流行的目标检测算法YOLO的变种算法。
在检测出关键帧中的语义目标之后,可以确定用于构成语义目标的关键点中的N个控制关键点。
需要说明的是,N个控制关键点为能够控制语义目标的形状的关键点。在语义目标为圆形的情况下,N个控制关键点可以包括作为圆心的关键点;在语义目标为长方形或箭头的情况下,N个控制关键点可以包括作为角点的关键点;在语义目标为直线段或曲线段的情况下,N个控制关键点可以包括作为端点的关键点。
具体地,在语义目标为笔直的车道线的情况下,N个控制关键点中可以仅包括作为端点的两个关键点;在语义目标为长方形的路牌的情况下,N个控制关键点中可以仅包括作为角点的四个关键点。
步骤103,确定N个控制关键点对应的N个平面方程;其中,每个平面方程用于表征相应控制关键点所在的平面。
这里,N个控制关键点与N个平面方程之间可以为一一对应的关系。假设第一控制关键点为N个控制关键点中的任意控制关键点,第一控制关键点对应的平面方程可以用下述形式表征:ax+by+cz+d=0。
步骤104,基于N个平面方程,确定三维点云中语义目标对应的第一点云。
这里,依据N个平面方程,可以通过逆透视投影,确定三维点云中语义目标对应的第一点云。
步骤105,针对第一点云标注语义目标的语义信息,并基于标注有语义信息的基础地图,获得目标地图。
这里,在语义目标为车道线的情况下,可以对应于第一点云标注“车道线”这几个字,或者,可以对应于第一点云标注表征车道线的符号,从而实现第一点云的语义信息的标注。需要说明的是,语义目标的数量可能为多个,那么,在步骤105中,可以分别针对每个语义目标对应的第一点云,标注相应的语义信息。
接下来,可以直接将标注有语义信息的基础地图作为目标地图;或者,可以对标注有语义信息的基础地图做进一步处理,以得到目标地图。具体地,目标地图可以为高清地图。
在得到目标地图之后,目标地图即可作为最终的地图制作结果。再之后,可以存储目标地图,存储目标地图的格式包括但不限于公开地图(Open Street Map,OSM)、导航数据标准(Navigation Data Standard,NDS)、OpenDrive等。
本公开的实施例中,可以先基于摄像头,获取包括关键帧和三维点云的基础地图;接下来,对于检测出的关键帧中的语义目标,可以确定用于构成其的关键点中的N个控制关键点,并确定N个控制关键点对应的N个平面方程;之后,可以基于N个平面方程,确定三维点云中语义目标对应的第一点云,针对第一点云标注语义目标的语义信息,并基于标注有语义信息的基础地图,获得目标地图。可见,本公开的实施例中,在基于摄像头获取基础地图之后,通过平面方程的确定,可以对三维点云进行相应标注,以便于得到作为地图制作结果的目标地图,也即,本公开的实施例中是依赖摄像头实现地图制作的,与激光雷达设备相比,摄像头的价格非常低廉,因此,与现有技术中依赖激光雷达设备实现地图制作的情况相比,本公开的实施例中的地图制作方式的成本更低。
在一个可选示例中,基于N个平面方程,确定三维点云中语义目标对应的第一点云,包括:
确定摄像头的内参矩阵,以及采集关键帧时,摄像头的中心点和姿态矩阵;
确定N个控制关键点对应的N个连线方向;其中,每个连线方向为相应控制关键点与中心点的连线的方向;
根据内参矩阵、姿态矩阵、N个连线方向,以及N个平面方程,确定三维点云中N个控制关键点对应的N个三维点;
根据N个三维点,确定三维点云中语义目标对应的第一点云。
这里,内参矩阵可以为预先获取并存储的;中心点可以为视觉SLAM系统通过运算确定的;姿态矩阵也可以为视觉SLAM系统通过运算确定的,姿态矩阵具体可以为摄像头在视觉SLAM系统使用的SLAM坐标系的姿态矩阵。
本公开的实施例中,可以确定N个控制关键点对应的N个连线方向,N个控制关键点与N个连线方向之间可以为一一对应的关系。可以理解的是,两点即可确定一条直线,那么,只需要知道控制关键点的坐标和中心点的坐标,即可便捷地确定出该控制关键点与中心点的连线的方向,该方向即为该控制关键点对应的连线方向。
接下来,可以根据内参矩阵、姿态矩阵、N个连线方向,以及N个平面方程,确定三维点云中N个控制关键点对应的N个三维点。在一种具体实施方式中,根据内参矩阵、姿态矩阵、N个连线方向,以及N个平面方程,确定三维点云中N个控制关键点对应的N个三维点,包括:
根据第一控制关键点对应的平面方程、中心点,以及第一控制关键点对应的连线方向,确定第一控制关键点对应的透视投影参数;其中,第一控制关键点为N个控制关键点中的任意控制关键点;
根据第一控制关键点对应的透视投影参数、内参矩阵、姿态矩阵和中心点,确定三维点云中第一控制关键点对应的三维点。
如图3所示,第一控制关键点对应的平面方程用ax+by+cz+d=0表征;
确定第一控制关键点对应的透视投影参数使用的公式可以为:
确定三维点云中第一控制关键点对应的三维点使用的公式可以为:
λx=KR(X-C) (G2)
其中,λ表征透视投影参数,C表征中心点,lx表征第一控制关键点对应的连线方向,x表征第一控制关键点,K表征内参矩阵,R表征姿态矩阵,X表征第一控制关键点对应的三维点。
假设x=[u,v,1]T,C和X均定义为3x1向量,则:
根据图3,可以重建光线方向,那么可以有:
lx=C+(KR)-1x
在ax+by+cz+d=0,n=[abc]T的情况下,根据平面假设可以有下面的推导过程:
n·(CλlX)+d=0
n·Cλn·lX+d=0
具体实施时,可以先将a、b、c、C、d、lx均代入上述的公式(G1),以得到λ,接下来,可以将λ、x、K、R、C均代入上述的公式(G2),以得到表征第一控制关键点对应的三维点X。容易看出,通过这种实施方式,可以非常便捷地计算出第一控制关键点对应的三维点,该三维点可以认为是对第一控制关键点进行逆透视投影得到的。按照类似的方式,还可以计算出其他控制关键点对应的三维点,从而得到N个三维点。
需要指出的是,确定第一控制关键点对应的透视投影参数使用的公式并不局限于上述的公式(G1),确定三维点云中第一控制关键点对应的三维点使用的公式并不局限于上述的公式(G2),具体可以根据实际情况来确定,本公开的实施例对此不做任何限定。
在确定出N个三维点之后,可以根据N个三维点,确定三维点云中语义目标对应的第一点云。具体地,在语义目标为笔直的车道线,N个控制关键点仅包括作为端点的两个关键点的情况下,三维点云中语义目标对应的第一点云可以包括两个关键点对应的两个三维点之间的各三维点(包括两个关键点对应的两个三维点本身)。
一般而言,单目的2D图像点是无法恢复其3D位置的,有鉴于此,本公开的实施例中,可以假设控制关键点位于已知的平面(即该控制关键点对应的平面方程所表征的平面)上,并据此求解该控制关键点对应的三维点(这相当于图2中的基于平面假设,2D图像点3D重建),从而能够通过逆透视投影,便捷可靠地确定出三维点云中语义目标对应的第一点云。
在一个可选示例中,确定N个控制关键点对应的N个平面方程,包括:
确定关键帧中的,与第二控制关键点共面的M个关键点;其中,第二控制关键点为N个控制关键点中的任意控制关键点,M为大于或等于3的整数,M个关键点中的任意三个关键点不共线;
根据M个关键点,确定第二控制关键点对应的平面方程。
在获取基础地图之后,基础地图可以被输入至一地图编辑平台,操作人员可以在地图编辑平台的界面上进行操作,以指定关键帧中的,与第二控制关键点共面的M个关键点。这里,M的取值可以为3、4、5、6或者大于6的整数,在此不再一一列举。
接下来,可以根据M个关键点,确定第二控制关键点对应的平面方程。在一种具体实施方式中,M为大于3的整数,根据M个关键点,确定第二控制关键点对应的平面方程,包括:
确定至少两个点集合;其中,至少两个点集合中的每个点集合中包括M个关键点中的三个关键点;
分别利用每个点集合,建立平面方程;
选取所建立的平面方程中,与M个关键点的拟合误差最小的平面方程;
将所选取的平面方程确定为第二控制关键点对应的平面方程。
假设M为4,则确定出的点集合的数量可以为两个、三个或者四个。这里,假设确定出的点集合的数量具体为四个,接下来,可以分别利用每个点集合,建立平面方程,以得到四个平面方程。可以理解的是,利用不共线的三个点,可以确定出一个平面,由于M个关键点中的任意三个关键点不共线,且每个点集合中存在三个关键点,针对每个点集合,依据其中的三个关键点,能够非常便捷地确定出平面方程。
在得到四个平面方程之后,可以分别计算每个平面方程与M个关键点的拟合误差,以得到四个平面方程对应的四个拟合误差,每个拟合误差能够用于表征相应平面方程的可信度。接下来,可以比较四个拟合误差,并选取四个平面方程中,与M个关键点的拟合误差最小的平面方程,之后直接将所选取的平面方程确定为第二控制关键点对应的平面方程即可。
容易看出,这种实施方式能够非常便捷地确定出第二控制关键点对应的平面方程,由于平面方程的确定过程引入了拟合误差的比较,这样能够较好地保证确定结果的可靠性。
当然,根据M个关键点,确定第二控制关键点对应的平面方程的具体实施方式并不局限于此。例如,M可以为3,可以直接利用与第二控制关键点共面的三个关键点,建立平面方程,并将所建立的平面方程作为第二控制关键点对应的平面方程,这也是可行的。
可见,本公开的实施例中,根据与第二控制关键点共面的M个关键点,能够非常便捷地确定出第二控制关键点对应的平面方程,从而能够得到N个控制关键点对应的N个平面方程。
在一个可选示例中,
获取基础地图之后,该方法还包括:
检测关键帧中的运动目标,并确定三维点云中的,与用于构成运动目标的关键点对应的第二点云;
删除关键帧中用于构成运动目标的关键点,以及删除三维点云中的第二点云;
根据标注有语义信息的基础地图,获得目标地图,包括:
根据标注有语义信息的,删除了用于构成运动目标的关键点的,以及删除了第二点云的基础地图,获得目标地图。
这里,在获取基础地图之后,如图2所示,可以利用Mask-RCNN等深度学习模型,对关键帧进行实例分割(即Instance Segmentation),以检测得到关键帧中的运动目标,运动目标具体为运动的障碍物,例如汽车、行人等。
需要说明的是,视觉SLAM系统在运算过程中可以得到关键帧中的运动目标与三维点云中的相应点云之间的对应关系。这样,在检测出关键帧中的运动目标之后,依据该对应关系,能够非常便捷地确定出三维点云中,与用于构成检测出的运动目标的关键点对应的第二点云。之后,可以删除关键帧中用于构成运动目标的关键点,以及删除三维点云中的第二点云,也即,同时在二维和三维抹去运动目标(对应图2中的活动障碍目标抹除)。之后,可以根据抹去了运动目标的基础地图,获得目标地图,从而避免运动目标可能造成的干扰。
在一个可选示例中,根据标注有语义信息的基础地图,获得目标地图,包括:
接收用户输入的地图修正指令;
响应地图修正指令,对标注有语义信息的基础地图进行修正,并根据修正结果,获得目标地图。
这里,地图修正指令可以为用于向基础地图中添加信息的指令,或者为用于从基础地图中删除信息的指令。
如图2所示,地图编辑平台可以包括地图编辑器,用户可以在地图编辑器上输入地图修正指令,在接收到地图修正指令之后,地图编辑器可以响应于地图修正指令,抹除或者添加相应的信息。这样,用户可以手工介入添加错过的语义目标的语义信息,修改恢复错误分割了的运动目标,以得到修正结果,修正结果可以为标注有语义信息,且根据地图修正指令进行了修正的基础地图。之后,可以直接将修正结果作为目标地图,或者,可以对修正结果进行进一步优化处理(例如抹去运动目标),以得到目标地图。
可见,本公开的实施例中,用户能够手动进行地图的编辑和修正,这样能够较好地保证最终获得的目标地图的准确性和可靠性。
综上,本公开的实施例提出一个低成本的高清地图制作方法,该方法采用单目摄像头视觉,且可以使用IMU、GPS进行辅助,该方法可以加入车道线/斑马线/车道标记/交通牌/红绿灯等语义信息,并在重建的三维点云中清除了汽车、行人等运动目标的干扰。另外,地图的编辑可以在一个地图编辑平台中进行,地图编辑平台中支持基于平面假设,进行2D图像点3D重建的功能、视觉运动目标的消除功能,以及地图存储功能等。需要指出的是,最终获得并存储的高清地图可以包括SLAM的视觉层,即关键点与其3-D世界系坐标,还可以包括语义层,即车道线/标记、红绿灯、路牌等。
示例性装置
图4是本公开一示例性实施例提供的地图制作装置的结构框图。图4所示的装置包括第一获取模块401、第一处理模块402、第一确定模块403、第二确定模块404和第二处理模块405。
第一获取模块401,用于基于摄像头,获取基础地图;其中,基础地图中包括摄像头采集的关键帧,以及重建的三维点云;
第一处理模块402,用于检测关键帧中的语义目标,并确定用于构成语义目标的关键点中的N个控制关键点;其中,N为大于或等于2的整数;
第一确定模块403,用于确定N个控制关键点对应的N个平面方程;其中,每个平面方程用于表征相应控制关键点所在的平面;
第二确定模块404,用于基于N个平面方程,确定三维点云中语义目标对应的第一点云;
第二处理模块405,用于针对第一点云标注语义目标的语义信息,并基于标注有语义信息的基础地图,获得目标地图。
在一个可选示例中,如图5所示,第二确定模块404,包括:
第一确定子模块4041,用于确定所述摄像头的内参矩阵,以及采集所述关键帧时,所述摄像头的中心点和姿态矩阵;
第二确定子模块4042,用于确定N个控制关键点对应的N个连线方向;其中,每个连线方向为相应控制关键点与中心点的连线的方向;
第三确定子模块4043,用于根据内参矩阵、姿态矩阵、N个连线方向,以及N个平面方程,确定三维点云中N个控制关键点对应的N个三维点;
第四确定子模块4044,用于根据N个三维点,确定三维点云中语义目标对应的第一点云。
在一个可选示例中,第三确定子模块,包括:
第一确定单元,用于根据第一控制关键点对应的平面方程、中心点,以及第一控制关键点对应的连线方向,确定第一控制关键点对应的透视投影参数;其中,第一控制关键点为N个控制关键点中的任意控制关键点;
第二确定单元,用于根据第一控制关键点对应的透视投影参数、内参矩阵、姿态矩阵和中心点,确定三维点云中第一控制关键点对应的三维点。
在一个可选示例中,第一控制关键点对应的平面方程用ax+by+cz+d=0表征;
确定第一控制关键点对应的透视投影参数使用的公式为:
确定三维点云中第一控制关键点对应的三维点使用的公式为:
λx=KR(X-C)
其中,λ表征透视投影参数,C表征中心点,lx表征第一控制关键点对应的连线方向,x表征第一控制关键点,K表征内参矩阵,R表征姿态矩阵,X表征第一控制关键点对应的三维点。
在一个可选示例中,如图6所示,第一确定模块403,包括:
第五确定子模块4031,用于确定关键帧中的,与第二控制关键点共面的M个关键点;其中,第二控制关键点为N个控制关键点中的任意控制关键点,M为大于或等于3的整数,M个关键点中的任意三个关键点不共线;
第六确定子模块4032,用于根据M个关键点,确定第二控制关键点对应的平面方程。
在一个可选示例中,M为大于3的整数,第六确定子模块,包括:
第三确定单元,用于确定至少两个点集合;其中,至少两个点集合中的每个点集合中包括M个关键点中的三个关键点;
建立单元,用于分别利用每个点集合,建立平面方程;
选取单元,用于选取所建立的平面方程中,与M个关键点的拟合误差最小的平面方程;
第四确定单元,用于将所选取的平面方程确定为第二控制关键点对应的平面方程。
在一个可选示例中,
该装置还包括:
第三处理模块,用于在获取基础地图之后,检测关键帧中的运动目标,并确定三维点云中的,与用于构成运动目标的关键点对应的第二点云;
删除模块,用于删除关键帧中用于构成运动目标的关键点,以及删除三维点云中的第二点云;
第二处理模块405,具体用于:
根据标注有语义信息的,删除了用于构成运动目标的关键点的,以及删除了第二点云的基础地图,获得目标地图。
在一个可选示例中,如图7所示,第二处理模块405,包括:
接收子模块4051,用于接收用户输入的地图修正指令;
处理子模块4052,用于响应地图修正指令,对标注有语义信息的基础地图进行修正,并根据修正结果,获得目标地图。
示例性电子设备
下面,参考图8来描述根据本公开实施例的电子设备80。电子设备80可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
如图8所示,电子设备80包括一个或多个处理器81和存储器82。
处理器81可以是中央处理器(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,其控制电子设备80中的其他组件执行期望的功能。
存储器82可以包括一个或多个计算机程序产品,计算机程序产品可包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器81可以运行程序指令,以实现上文本公开的各个实施例的地图制作方法以及/或者其他期望的功能。
在一个示例中,电子设备80还可以包括:输入装置83和输出装置84,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。输入装置83可以包括键盘、鼠标等。输出装置84可以包括显示器、扬声器、远程输出装置等。
当然,为了简化,图8中仅示出了电子设备80中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备80还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,该指令在被处理器运行时使得处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的地图制作方法中的步骤。
计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的地图制作方法中的步骤。
计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质可以包括电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,需要指出的是,本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为该优点、优势、效果等是本公开的各个实施例必须具备的。上述公开的具体细节仅是为了示例和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各实施例采用递进方式描述,每个实施例重点说明与其它实施例的差异,各实施例间相同或相似的部分相互参见即可。由于系统实施例与方法实施例基本对应,描述的比较简单,相关之处参见方法实施例的说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为示例性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。提供所公开的方面的以上描述以使本领域任何技术人员能够做出或者使用本公开。对这些方面的各种修改对本领域技术人员而言是显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (18)
1.一种地图制作方法,其特征在于,包括:
基于摄像头,获取基础地图;其中,所述基础地图中包括所述摄像头采集的关键帧,以及重建的三维点云;
检测所述关键帧中的语义目标,并确定用于构成所述语义目标的关键点中的N个控制关键点;其中,所述N个控制关键点为能够控制所述语义目标的形状的关键点,N为大于或等于2的整数;
确定所述N个控制关键点对应的N个平面方程;其中所述N个控制关键点与所述N个平面方程一一对应,每个平面方程用于表征相应控制关键点所在的平面;
基于所述N个平面方程,确定所述三维点云中所述语义目标对应的第一点云;
针对所述第一点云标注所述语义目标的语义信息,并基于标注有所述语义信息的所述基础地图,获得目标地图。
2.根据权利要求1所述的方法,其特征在于,所述基于所述N个平面方程,确定所述三维点云中所述语义目标对应的第一点云,包括:
确定所述摄像头的内参矩阵,以及采集所述关键帧时,所述摄像头的中心点和姿态矩阵;
确定所述N个控制关键点对应的N个连线方向;其中,每个连线方向为相应控制关键点与所述中心点的连线的方向;
根据所述内参矩阵、所述姿态矩阵、所述N个连线方向,以及所述N个平面方程,确定所述三维点云中所述N个控制关键点对应的N个三维点;
根据所述N个三维点,确定所述三维点云中所述语义目标对应的第一点云。
3.根据权利要求2所述的方法,其特征在于,所述根据所述内参矩阵、所述姿态矩阵、所述N个连线方向,以及所述N个平面方程,确定所述三维点云中所述N个控制关键点对应的N个三维点,包括:
根据第一控制关键点对应的平面方程、所述中心点,以及所述第一控制关键点对应的连线方向,确定所述第一控制关键点对应的透视投影参数;其中,所述第一控制关键点为所述N个控制关键点中的任意控制关键点;
根据所述第一控制关键点对应的透视投影参数、所述内参矩阵、所述姿态矩阵和所述中心点,确定所述三维点云中所述第一控制关键点对应的三维点。
5.根据权利要求1所述的方法,其特征在于,所述确定所述N个控制关键点对应的N个平面方程,包括:
确定所述关键帧中的,与第二控制关键点共面的M个关键点;其中,所述第二控制关键点为所述N个控制关键点中的任意控制关键点,M为大于或等于3的整数,所述M个关键点中的任意三个关键点不共线;
根据所述M个关键点,确定所述第二控制关键点对应的平面方程。
6.根据权利要求5所述的方法,其特征在于,M为大于3的整数,所述根据所述M个关键点,确定所述第二控制关键点对应的平面方程,包括:
确定至少两个点集合;其中,所述至少两个点集合中的每个点集合中包括所述M个关键点中的三个关键点;
分别利用每个点集合,建立平面方程;
选取所建立的平面方程中,与所述M个关键点的拟合误差最小的平面方程;
将所选取的平面方程确定为所述第二控制关键点对应的平面方程。
7.根据权利要求1所述的方法,其特征在于,所述获取基础地图之后,所述方法还包括:
检测所述关键帧中的运动目标,并确定所述三维点云中的,与用于构成所述运动目标的关键点对应的第二点云;
删除所述关键帧中用于构成所述运动目标的关键点,以及删除所述三维点云中的所述第二点云;
所述根据标注有所述语义信息的所述基础地图,获得目标地图,包括:
根据标注有所述语义信息的,删除了用于构成所述运动目标的关键点的,以及删除了所述第二点云的所述基础地图,获得目标地图。
8.根据权利要求1所述的方法,其特征在于,所述根据标注有所述语义信息的所述基础地图,获得目标地图,包括:
接收用户输入的地图修正指令;
响应所述地图修正指令,对标注有所述语义信息的所述基础地图进行修正,并根据修正结果,获得目标地图。
9.一种地图制作装置,其特征在于,包括:
第一获取模块,用于基于摄像头,获取基础地图;其中,所述基础地图中包括所述摄像头采集的关键帧,以及重建的三维点云;
第一处理模块,用于检测所述关键帧中的语义目标,并确定用于构成所述语义目标的关键点中的N个控制关键点;其中,所述N个控制关键点为能够控制所述语义目标的形状的关键点,N为大于或等于2的整数;
第一确定模块,用于确定所述N个控制关键点对应的N个平面方程;其中所述N个控制关键点与所述N个平面方程一一对应,每个平面方程用于表征相应控制关键点所在的平面;
第二确定模块,用于基于所述N个平面方程,确定所述三维点云中所述语义目标对应的第一点云;
第二处理模块,用于针对所述第一点云标注所述语义目标的语义信息,并基于标注有所述语义信息的所述基础地图,获得目标地图。
10.根据权利要求9所述的装置,其特征在于,所述第二确定模块,包括:
第一确定子模块,用于确定所述摄像头的内参矩阵,以及采集所述关键帧时,所述摄像头的中心点和姿态矩阵;
第二确定子模块,用于确定所述N个控制关键点对应的N个连线方向;其中,每个连线方向为相应控制关键点与所述中心点的连线的方向;
第三确定子模块,用于根据所述内参矩阵、所述姿态矩阵、所述N个连线方向,以及所述N个平面方程,确定所述三维点云中所述N个控制关键点对应的N个三维点;
第四确定子模块,用于根据所述N个三维点,确定所述三维点云中所述语义目标对应的第一点云。
11.根据权利要求10所述的装置,其特征在于,所述第三确定子模块,包括:
第一确定单元,用于根据第一控制关键点对应的平面方程、所述中心点,以及所述第一控制关键点对应的连线方向,确定所述第一控制关键点对应的透视投影参数;其中,所述第一控制关键点为所述N个控制关键点中的任意控制关键点;
第二确定单元,用于根据所述第一控制关键点对应的透视投影参数、所述内参矩阵、所述姿态矩阵和所述中心点,确定所述三维点云中所述第一控制关键点对应的三维点。
13.根据权利要求9所述的装置,其特征在于,所述第一确定模块,包括:
第五确定子模块,用于确定所述关键帧中的,与第二控制关键点共面的M个关键点;其中,所述第二控制关键点为所述N个控制关键点中的任意控制关键点,M为大于或等于3的整数,所述M个关键点中的任意三个关键点不共线;
第六确定子模块,用于根据所述M个关键点,确定所述第二控制关键点对应的平面方程。
14.根据权利要求13所述的装置,其特征在于,M为大于3的整数,所述第六确定子模块,包括:
第三确定单元,用于确定至少两个点集合;其中,所述至少两个点集合中的每个点集合中包括所述M个关键点中的三个关键点;
建立单元,用于分别利用每个点集合,建立平面方程;
选取单元,用于选取所建立的平面方程中,与所述M个关键点的拟合误差最小的平面方程;
第四确定单元,用于将所选取的平面方程确定为所述第二控制关键点对应的平面方程。
15.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第三处理模块,用于在获取基础地图之后,检测所述关键帧中的运动目标,并确定所述三维点云中的,与用于构成所述运动目标的关键点对应的第二点云;
删除模块,用于删除所述关键帧中用于构成所述运动目标的关键点,以及删除所述三维点云中的所述第二点云;
所述第二处理模块,具体用于:
根据标注有所述语义信息的,删除了用于构成所述运动目标的关键点的,以及删除了所述第二点云的所述基础地图,获得目标地图。
16.根据权利要求9所述的装置,其特征在于,所述第二处理模块,包括:
接收子模块,用于接收用户输入的地图修正指令;
处理子模块,用于响应所述地图修正指令,对标注有所述语义信息的所述基础地图进行修正,并根据修正结果,获得目标地图。
17.一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1至8中任一项所述的地图制作方法。
18.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1至8中任一项所述的地图制作方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911419325.2A CN111105695B (zh) | 2019-12-31 | 2019-12-31 | 地图制作方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911419325.2A CN111105695B (zh) | 2019-12-31 | 2019-12-31 | 地图制作方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111105695A CN111105695A (zh) | 2020-05-05 |
CN111105695B true CN111105695B (zh) | 2022-11-25 |
Family
ID=70426009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911419325.2A Active CN111105695B (zh) | 2019-12-31 | 2019-12-31 | 地图制作方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111105695B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112258646B (zh) * | 2020-10-26 | 2024-03-12 | 上海汽车集团股份有限公司 | 一种三维线地标构建方法及装置 |
CN112700464B (zh) * | 2021-01-15 | 2022-03-29 | 腾讯科技(深圳)有限公司 | 地图信息的处理方法、装置、电子设备以及存储介质 |
CN114217555A (zh) * | 2021-12-09 | 2022-03-22 | 浙江大学 | 基于数字孪生场景的低延时远程遥控方法和系统 |
CN114440856A (zh) * | 2022-01-21 | 2022-05-06 | 北京地平线信息技术有限公司 | 一种构建语义地图的方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9710730B2 (en) * | 2011-02-11 | 2017-07-18 | Microsoft Technology Licensing, Llc | Image registration |
CN107833236B (zh) * | 2017-10-31 | 2020-06-26 | 中国科学院电子学研究所 | 一种动态环境下结合语义的视觉定位系统和方法 |
CN109117718B (zh) * | 2018-07-02 | 2021-11-26 | 东南大学 | 一种面向道路场景的三维语义地图构建和存储方法 |
CN109816686A (zh) * | 2019-01-15 | 2019-05-28 | 山东大学 | 基于物体实例匹配的机器人语义slam方法、处理器及机器人 |
CN110047142A (zh) * | 2019-03-19 | 2019-07-23 | 中国科学院深圳先进技术研究院 | 无人机三维地图构建方法、装置、计算机设备及存储介质 |
CN110243370A (zh) * | 2019-05-16 | 2019-09-17 | 西安理工大学 | 一种基于深度学习的室内环境三维语义地图构建方法 |
CN110415342B (zh) * | 2019-08-02 | 2023-04-18 | 深圳市唯特视科技有限公司 | 一种基于多融合传感器的三维点云重建装置与方法 |
-
2019
- 2019-12-31 CN CN201911419325.2A patent/CN111105695B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111105695A (zh) | 2020-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109461211B (zh) | 基于视觉点云的语义矢量地图构建方法、装置和电子设备 | |
CN111105695B (zh) | 地图制作方法、装置、电子设备及计算机可读存储介质 | |
CN110174093B (zh) | 定位方法、装置、设备和计算机可读存储介质 | |
US10437252B1 (en) | High-precision multi-layer visual and semantic map for autonomous driving | |
CN111108342B (zh) | 用于高清地图创建的视觉测程法和成对对准 | |
US9846043B2 (en) | Map creation apparatus, map creation method, and computer-readable recording medium | |
JP6677521B2 (ja) | 乗り物のドライバ支援システムにおける予測のためのシステムおよび方法 | |
US11417017B2 (en) | Camera-only-localization in sparse 3D mapped environments | |
US11670087B2 (en) | Training data generating method for image processing, image processing method, and devices thereof | |
US20190005667A1 (en) | Ground Surface Estimation | |
CN107167826B (zh) | 一种自动驾驶中基于可变网格的图像特征检测的车辆纵向定位系统及方法 | |
US11227395B2 (en) | Method and apparatus for determining motion vector field, device, storage medium and vehicle | |
US11282164B2 (en) | Depth-guided video inpainting for autonomous driving | |
JP7422105B2 (ja) | 路側計算装置に用いる障害物3次元位置の取得方法、装置、電子デバイス、コンピュータ可読記憶媒体、及びコンピュータプログラム | |
JP2016157197A (ja) | 自己位置推定装置、自己位置推定方法およびプログラム | |
KR102006291B1 (ko) | 전자 장치의 이동체 포즈 추정 방법 | |
KR101880185B1 (ko) | 이동체 포즈 추정을 위한 전자 장치 및 그의 이동체 포즈 추정 방법 | |
CN112700486B (zh) | 对图像中路面车道线的深度进行估计的方法及装置 | |
JP2023504028A (ja) | マップデータの更新 | |
WO2020156923A2 (en) | Map and method for creating a map | |
KR20190115501A (ko) | 차량 인식 시스템 | |
KR101549165B1 (ko) | 차량 자세 추정 장치 및 차량 자세 추정 방법 | |
WO2018002932A1 (en) | Lane level accuracy using vision of roadway lights and particle filter | |
CN110827340A (zh) | 地图的更新方法、装置及存储介质 | |
CN116642511A (zh) | Ar导航图像渲染方法、装置、电子设备及存储介质 |
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 |