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

地图的更新方法、装置、可移动平台及存储介质

文献发布时间:2023-06-19 10:55:46


地图的更新方法、装置、可移动平台及存储介质

技术领域

本发明实施例涉及数据处理技术领域,尤其涉及一种地图的更新方法、装置、可移动平台及存储介质。

背景技术

地图更新是指按现实情况对地图内容进行更正的过程,以保证地图显示的实时性、准确性和可靠性。一般情况下,地图更新的步骤包括:获得深度图,生成与深度图相对应的点云数据,基于点云数据对历史地图进行更新操作,获得更新后地图。

其中,由于点云数据的个数一般为多个,且点云数据的位置是不固定的,因此,在基于多个点云数据对历史地图进行更新操作时,需要频繁和零散的操作内存,从而导致带宽较大,地图更新的效率较慢。

发明内容

本发明实施例提供了一种地图的更新方法、装置、可移动平台及存储介质。

本发明的第一方面是为了提供一种地图的更新方法,包括:

获取当前时刻所对应的第一地图和历史时刻所对应的第二地图;

确定用于对所述第二地图进行更新的有效区域,所述有效区域与所述第一地图所对应的视场角有关;

根据所述有效区域和所述第一地图对所述第二地图进行更新,获得目标地图。

本发明的第二方面是为了提供了一种地图的更新装置,包括:

存储器,用于存储计算机程序;

处理器,用于运行所述存储器中存储的计算机程序以实现:

获取当前时刻所对应的第一地图和历史时刻所对应的第二地图;

确定用于对所述第二地图进行更新的有效区域,所述有效区域与所述第一地图所对应的视场角有关;

根据所述有效区域和所述第一地图对所述第二地图进行更新,获得目标地图。

本发明的第三方面是为了提供了一种可移动平台,包括:

机身;

上述的地图的更新装置,设置于所述机身上。

本发明的第四方面是为了提供一种计算机可读存储介质,所述存储介质为计算机可读存储介质,该计算机可读存储介质中存储有程序指令,所述程序指令用于第一方面所述的地图的更新方法。

本发明实施例提供的地图的更新方法、装置、可移动平台及存储介质,可以有效地降低地图更新操作过程中的数据处理量,减少数据所需要占用的内存带宽,从而有效地提高了对地图进行更新操作的质量和效率,进而便于基于所构建的地图进行相应地图导航操作。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为栅格地图的示意图;

图2为点云数据按照栅格地图的内存存储方式进行分块存放的示意图;

图3为地图中存在物体或者障碍物的示意图;

图4为地图更新处理所对应的内存操作示意图;

图5为本发明实施例提供的一种地图的更新方法的流程示意图;

图6为图5中的获取当前时刻所对应的第一地图的流程示意图;

图7为图5中的确定用于对所述第二地图进行更新的有效区域的流程示意图一;

图8为图7中的确定用于对所述第二地图进行更新的有效区域的示意图;

图9为图5中的确定用于对所述第二地图进行更新的有效区域的流程示意图二;

图10为图9中的确定用于对所述第二地图进行更新的有效区域的示意图;

图11为本发明实施例提供的确定用于对所述第二地图进行更新的有效区域的示意图;

图12为图11中的获取用于标识所述有效区域的区域边界的流程示意图;

图13为本发明实施例提供的基于所述无穷远点位置,确定与所述栅格地图相对应的最大边界位置的示意图;

图14为图12中的基于所述原点位置、所述最大边界位置和所述点云位置,确定所述有效区域的区域边界的流程示意图;

图15为本发明实施例提供的另一种地图的更新方法的流程示意图;

图16为图15中的识别所述点云数据是否有效的流程示意图;

图17为本发明应用实施例提供的可移动平台上设置有多组双目设备的示意图;

图18为本发明应用实施例提供的栅格地图的俯视图;

图19为本发明实施例提供的一种地图的更新装置的结构示意图;

图20为本发明实施例提供的一种可移动平台的结构示意图。

具体实施方式

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

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

为了便于理解本申请的技术方案,下面对相关技术进行简要说明:

同步定位与地图构建(Simultaneous localization and mapping,简称SLAM)是希望可移动平台(例如:无人机、移动机器人等等)从未知环境的未知地点出发,在运动过程中,通过重复观测到的地图特征来定位自身位置和姿态,而后根据自身位置增量式的构建地图,从而达到同步定位和地图构建的目的。

基于深度图的局部地图构建是人工智能(Artificial Intelligence,简称AI)领域的关键技术。在建立局部地图之后,则可以基于所构建的局部地图进行导航操作,一般情况下,自主导航可以包括如下步骤:获取通过图像传感器所采集的图像数据,对图像数据进行分析处理,获得视差图,而后利用视差图输出世界坐标系下的3D点云,利用3D点云对历史地图信息进行更新处理,生成局部地图,以利用更新后地图进行路径规划和自主导航操作。

对于所构建的局部地图而言,局部地图可以为栅格地图,如图1所示,栅格地图中的一个栅格代表空间中一个正方体区域(一个栅格)内是否有物体(障碍物)的概率,比如:对于一栅格所对应的符号数可以标识为16bit数据,具体的,在符号数为32767时,则标识该栅格内存在障碍物的概率最大为1,在符号数为-32768时,则标识该栅格内存在障碍物的概率为0。

在具体应用时,可以利用Mwid表示为栅格地图的位宽,栅格地图的大小可以标识为Lx*Ly*Lz,分辨率设置为Res,则一个栅格所标识的实际空间大小为Res*Res*Res。其中,Lx,Ly,和Lz分别代表栅格地图的长,宽,高。Res的大小可以根据实际应用场景的不同而进行不同设定,比如:无人车可以设定为1m、0.5m或者0.3m等等。

另外,在构建局部地图的过程中,深度图是在相机坐标系下的坐标,为了能够准确地构建局部地图,在获取到深度图之后,则可以将深度图转换在世界坐标系下,具体的,可以通过以下公式来实现:

P

其中,P

在获取深度图在世界坐标系下的坐标之后,则可以确定与深度图在栅格地图中的位置,具体的,可以通过以下公式来确定与点云数据在栅格地图中的位置:

其中,P

通过上述公式,可以获取到位于栅格地图中的3D点云数据,在获取到栅格地图或者对栅格地图进行更新操作的过程中,栅格地图需要放入内存中,其中,对于某一单个地图而言,地图存储的数据量为Lx*Ly*Lz*Mwid bit,上述的数据量是巨大的。假设,Wd为深度图的宽度,Hd为深度图的高度,则点云数据中的点云数量为Wd*Hd。如果点云数据在栅格地图的内部,则可以基于点云数据对栅格地图进行更新操作,以实现对栅格地图中用于标识是否有物体的概率进行更新。

对于栅格地图中的点云数据而言,由于障碍物和/或图像拍摄装置是可移动的,因此,点云数据在栅格地图中的位置是不固定的,这样,在利用点云数据生成局部地图时,需要频繁和零散的操作内存(读取地图数据),从而导致带宽较大。为了解决上述问题,可以先把点云数据按照栅格地图的内存存储方式进行分块存放,如图2所示,z可以对应xy一个平面,则可以将z平面分成N个块,每个块大小为(Lz/N)*Lx*Ly。

在利用点云数据对历史地图进行更新操作时,需要对历史地图和与点云数据所对应的当前地图进行融合操作,即识别当前地图和历史地图的重合区域,而后基于当前地图对历史地图中的重合区域进行更新操作。其中,上述的重合区域可以根据栅格地图中原点的位置来进行识别,具体的,可以基于以下公式来确定栅格地图的原点的变化程度:

其中,P

在构建生成新地图之后,可以通过新地图中包括的栅格来标识存在障碍物的概率信息。实际应用中,位于地图中的物体或者障碍物可以是动态变化的,并且,环境中可能存在动态障碍物,因此,在构建生成新地图时,需要将移动的动态障碍物在历史地图中清除掉。

举例来说,如图3所示,图中圆形区域用于标识动态障碍物,在之前某个时刻观测到该圆形障碍物并留在栅格地图中,在当前时刻,动态障碍物移动到其它位置,则需要在地图中将该动态障碍物清除。

具体的,根据投影和反投影原理,图像(即,深度图)上的一个3D像素点坐标经过反投影之后,对应相机到3D像素点之间的射线,同理,相机到3D点之间的射线投影到图像上对应一个像素点坐标。具体的,遍历地图中包括的栅格,在相机坐标系下,将每个栅格的中心点p投影到图像平面内,得到2D像素点坐标(u,v),而后确定与2D像素点坐标相对应的像素点(u,v,depth),并对像素点进行分析识别。

在对像素点进行分析识别的结果为:若像素点不在深度图内,则对像素点进行删除,即此时无需对像素点进行更新操作。若像素点位于深度图内,则可以通过反投影操作得到深度测量值Z

举例来说,在对点云数据之后,可以基于点云数据确定当前视场角范围内存在障碍物A。此时,若在历史地图中,当前视角范围内存在障碍物B,且障碍物B到栅格地图原点之间的距离要小于障碍物A到栅格地图原点之间的距离时,即在视场角范围内,障碍物B会遮挡至少部分的障碍物A。此时,在历史地图中,可以显示障碍物B以及部分的障碍物A。然而,在当前地图中,可以清楚地看到障碍物A,则反向说明,位于历史地图中的障碍物B已发生了移动。基于此,可以按照预设策略减少历史地图中的栅格所对应的障碍物的概率,从而有效地实现了对历史地图进行实时地更新操作。

基于上述陈述内容可知,在进行地图更新的过程中,运算量包括了对地图数据的多次内存操作和计算,参考附图4所示,在地图数据存储在内存时,一个地图数据的存储量可以为Lx*Ly*Lz*Mwid bit,假设Lx=Ly=Lz=128,Mwid=8,此时,一个完整地图数据的存储量为2MB。那么,在基于新地图对历史地图进行更新操作时,如果历史地图和新地图几乎完全重合(即,历史地图和新地图具有一样的尺寸),则地图更新操作需要在内存中读取4MB的数据量,而后需要向内存中写入4MB的数据量,这样极大地增加了内存的带宽,降低数据的处理能力,进一步限制了局部地图构建的使用。此外,在利用上述方式对地图进行更新操作时,需要进行Lx*Ly*Lz次加法,这样不仅增大了数据处理的运算量,降低了数据处理的质量和效率,并且,不利于基于所构建的地图进行相应的导航操作。

为了能够保证数据处理的质量和效率,降低数据处理的运算量,本实施例提供了一种地图的更新方法、装置、可移动平台及存储介质。具体的,该方法可以获取当前时刻所对应的第一地图和历史时刻所对应的第二地图,而后确定用于对第二地图进行更新的有效区域,由于有效区域与第一地图所对应的视场角有关,即有效区域对应于第二地图中的一部分,因此,在根据有效区域和第一地图对第二地图进行更新操作时,有效地降低了地图更新操作过程中的数据处理量,减少了数据操作过程中所需要占用的内存带宽,从而有效地提高了对目标地图进行获取的质量和效率,并且有利于基于所构建的地图进行相应的导航操作,进一步提高了该方法的实用性。

下面结合附图,对本发明的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

图5为本发明实施例提供的一种地图的更新方法的流程示意图;参考附图5所示,本实施例提供了一种地图的更新方法,该方法的执行主体可以为地图的更新装置,可以理解的是,该地图的更新装置可以实现为软件、或者软件和硬件的组合。具体的,该地图的更新方法可以包括:

步骤S501:获取当前时刻所对应的第一地图和历史时刻所对应的第二地图。

步骤S502:确定用于对第二地图进行更新的有效区域,有效区域与第一地图所对应的视场角有关。

步骤S503:根据有效区域和第一地图对第二地图进行更新,获得目标地图。

下面针对上述各个步骤进行详细阐述:

步骤S501:获取当前时刻所对应的第一地图和历史时刻所对应的第二地图。

其中,第二地图是指在历史时刻获取到的、需要进行地图更新操作的历史地图数据,第一地图是指在当前时刻获取的、用于对第二地图进行地图更新操作的当前地图数据。具体的,本实施例对于获取第一地图的具体实现方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,例如:第一地图可以存储在预设区域中,通过访问预设区域可以获得第一地图。或者,第一地图可以通过图像采集装置所获得的图像数据进行分析处理来获得,具体的,通过图像采集装置获取深度图像,在地图的更新装置获取到深度图像之后,通过对深度图像进行分析处理,可以获得与深度图像相对应的第一地图。

在一些实例中,参考附图6所示,本实施例中的获取当前时刻所对应的第一地图可以包括:

步骤S5011:获取当前时刻所对应的深度图。

步骤S5012:生成与深度图相对应的点云数据。

步骤S5013:基于点云数据构建第一地图,第一地图为栅格地图。

为了能够获取到与当前时刻所对应的第一地图,可以先获取当前时刻所对应的深度图,具体的,本实施例对于深度图的具体获取方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,例如:通过图像采集装置获取到深度图像,其中,上述的图像采集装置可以是双目摄像头,此时,通过双目摄像头获取到针对同一场景的两幅图像,而后利用立体匹配算法对两幅图像进行匹配处理,并根据三角原理计算出两幅图像之间的视差信息,而后可以基于视差信息确定用于表征在应用场景中的物体的深度图。或者,图像采集装置还可以包括可见光传感器和相位传感器,通过可见光传感器获取到可见光图像,通过相位传感器获取到相位图像,基于相位图像获取到深度信息,而后将深度信息叠加在可见光图像中,从而可以获得深度图像。当然的,本领域技术人员也可以采用其他的方式获取当前时刻所对应的深度图,只要能够保证对深度图进行获取的准确可靠性即可,在此不再赘述。

在获取到深度图之后,可以对深度图进行分析处理,以生成与深度图相对应的点云数据,具体的,可以对深度图进行坐标转换处理,以将深度图在相机坐标系下的坐标转换至世界坐标系,从而可以获得与深度图相对应的多个点云数据。在获取到多个点云数据之后,可以基于多个点云数据来生成第一地图,此时,所生成的第一地图可以为栅格地图。

当然的,本领域技术人员也可以采用其他的方式获取到第一地图,只要能够保证对第一地图进行获取的准确可靠性即可,在此不再赘述。

相类似的,本实施例对于获取第二地图的具体实现方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,例如:第二地图可以存储在预设区域中,通过访问预设区域可以获得第二地图。或者,第二地图可以存储在预设设备中,地图的更新装置可以与预设设备通讯连接,进而数据处理装置可以通过预设设备获得第二地图,具体的,地图的更新装置可以主动获取预设设备内存储的第二地图,或者,预设设备可以主动将第二地图发送至地图的更新装置,从而使得地图的更新装置可以获得第二地图。当然的,本领域技术人员也可以采用其他的方式获取到第二地图,只要能够保证对第二地图进行获取的准确可靠性即可,在此不再赘述。

步骤S502:确定用于对第二地图进行更新的有效区域,有效区域与第一地图所对应的视场角有关。

在获取到第一地图和第二地图之后,可以对第一地图和/或第二地图进行分析处理,以确定用于对第二地图进行更新操作的有效区域,该有效区域与第一地图所对应的视场角有关。

在一些实例中,有效区域可以为覆盖视场角所对应范围的规则形状区域,规则形状区域的边缘与第一地图的边缘相平行或者垂直。例如:规则形状区域包括以下任意之一:正方体区域、长方体区域,较为优选的,规则形状区域可以为长方体区域。

在一些实例中,参考附图7所示,本实施例中的确定用于对第二地图进行更新的有效区域可以包括:

步骤S5021:获取与第一地图相对应的地图有效区域。

步骤S5022:将地图有效区域确定为用于对第二地图进行更新的有效区域。

其中,在获取到第一地图之后,可以对第一地图进行分析处理,以获得与第一地图相对应的地图有效区域,具体的,可以基于与第一地图相对应的视场角来确定地图有效区域。在一些实例中,在获取到地图有效区域之后,可以将地图有效区域确定为用于对第二地图进行更新操作的有效区域,从而有效地保证了对有效区域进行获取的准确可靠性。

举例来说,参考附图8所示,在获取到第一地图之后,可以基于视场角来确定与第一地图相对应的地图有效区域,该地图有效区域即为图中倾斜线所覆盖的区域。在获取到地图有效区域之后,可以将地图有效区域确定为用于对第二地图进行更新操作的有效区域,需要注意的是,此时的有效区域中包括位于第二地图中的部分区域和位于第二地图之外的部分区域。

在另一些实例中,参考附图9所示,本实施例中的确定用于对第二地图进行更新的有效区域可以包括:

步骤S5023:获取第一地图与第二地图相对应的重合区域。

步骤S5024:在重合区域中,确定用于对第二地图进行更新的有效区域。

其中,在获取到第一地图和第二地图之后,可以将第一地图和第二地图进行匹配处理,从而可以获得第一地图与第二地图相对应的重合区域。在获取到重合区域之后,则可以在重合区域中确定用于对第二地图进行更新操作的有效区域,具体的,可以基于与第一地图相对应的视场角,在重合区域中确定用于对第二地图进行更新操作的有效区域,从而有效地保证了对有效区域进行获取的准确可靠性。

举例来说,参考附图10所示,在获取到第一地图和第二地图之后,可以对第一地图和第二地图进行匹配处理,从而可以获得第一地图与第二地图相对应的重合区域。在获取到重合区域之后,可以基于视场角在重合区域中确定为用于对第二地图进行更新操作的有效区域,该有效区域即为图中倾斜线所覆盖的区域,需要注意的是,此时的有效区域为第二地图中的至少一部分区域。

可以理解的是,确定用于对第二地图进行更新的有效区域的具体实现方式并不限于上述所限定的技术方案,本领域技术人员也可以采用其他的方式来确定用于对第二地图进行更新的有效区域,只要能够保证对有效区域进行确定的准确可靠性即可,在此不再赘述。

步骤S503:根据有效区域和第一地图对第二地图进行更新,获得目标地图。

在获取到有效区域和第一地图之后,可以对有效区域和第一地图进行分析处理,以实现对第二地图进行更新操作。具体的,第二地图可以包括有效区域和非视场角区域,针对有效区域,可以利用第一地图对第二地图进行更新操作,从而获得更新后有效区域。而后,基于更新后有效区域和非视场角区域可以获得目标地图,这样有效地保证了对目标地图进行更新操作的稳定可靠性。

本实施例提供的地图的更新方法,通过获取当前时刻所对应的第一地图和历史时刻所对应的第二地图,并确定用于对第二地图进行更新的有效区域,而后根据有效区域和第一地图对第二地图进行更新,获得目标地图,由于有效区域与第一地图所对应的视场角有关,即有效区域对应于第二地图中的一部分,因此,在根据有效区域和第一地图对第二地图进行更新操作时,有效地降低了地图更新操作过程中的数据处理量,减少了数据操作过程中所需要占用的内存带宽,从而有效地提高了对目标地图进行获取的质量和效率,并且有利于基于所构建的地图进行相应的导航操作,进一步提高了该方法的实用性。

图11为本发明实施例提供的确定用于对第二地图进行更新的有效区域的示意图;在上述实施例的基础上,继续参考附图11所示,本实施例中的确定用于对第二地图进行更新的有效区域可以包括:

步骤S1101:在重合区域或者栅格地图中,获取用于标识有效区域的区域边界。

步骤S1102:基于区域边界确定用于对第二地图进行更新的有效区域。

其中,在获取到栅格地图或者位于栅格地图中的重合区域之后,可以在重合区域或者栅格地图中,获取用于标识有效区域的区域边界,该区域边界可以与相机坐标系的原点以及栅格地图有关。

可以理解的是,在获取用于标识有效区域的区域边界时,一种实现的方式为,在获取重合区域之后,可以在重合区域中获取用于标识有效区域的区域边界。另一种可实现的方式为,在获取到栅格地图之后,可以在栅格地图中获取用于标识有效区域的区域边界。

在获取到区域边界之后,可以对区域边界进行分析处理,以确定用于对第二地图进行更新操作的有效区域,具体的,可以将区域边界所覆盖的区域确定为用于对第二地图进行更新操作的有效区域,这样有效地保证了对有效区域进行确定的准确可靠性,进一步提高了对地图进行更新操作的质量和效率。

图12为图11中的获取用于标识有效区域的区域边界的流程示意图;在上述实施例的基础上,继续参考附图12所示,无论是在重合区域中还是在栅格地图中,本实施例提供了一种获取用于标识有效区域的区域边界的具体实现方式,具体的,获取用于标识有效区域的区域边界可以包括:

步骤S1201:获取相机坐标系的原点在栅格地图中所对应的原点位置。

其中,在获取到深度图之后,可以基于所获取到的深度图确定相机坐标系的原点,在一些实例中,可以将深度图的中心点确定为相机坐标系的原点。在获取到相机坐标系的原点之后,可以确定相机坐标系的原点在栅格地图中所对应的原点位置,具体的,本实施例中的获取相机坐标系的原点在栅格地图的原点位置可以包括:获取相机坐标系的原点所对应的第一位置,确定栅格地图所对应的分辨率以及栅格地图的原点在世界坐标系中的第二位置,并且基于第一位置、分辨率和第二位置,确定相机坐标系的原点在栅格地图的原点位置。可以理解的是,相机坐标系的原点在栅格地图中所对应的原点位置即为有效区域所对应的最小边界信息。

具体实现时,在获取到相机坐标系的原点之后,可以确定相机坐标系的原点在栅格地图中所对应的第一位置t

上述公式中,P

步骤S1202:确定与栅格地图相对应的最大边界位置。

为了能够准确地获取到用于标识有效区域的区域边界,可以确定与栅格地图相对应的最大边界位置,可以理解的是,最大边界位置用于限定并确定有效区域所覆盖的区域;在一些实例中,确定与栅格地图相对应的最大边界位置可以包括:获取深度图的原点与栅格地图中心之间的第一距离;将第一距离与点云位置的和值确定为无穷远点位置;基于无穷远点位置,确定与栅格地图相对应的最大边界位置。

在获取到深度图和栅格地图之后,可以获取深度图的原点与栅格地图中心之间的第一距离,假设第一距离d

此外,在获取到与深度图相对应的点云数据之后,可以确定点云数据在栅格地图中所在的点云位置,具体的,可以通过以下公式来获取点云数据在栅格地图中所在的点云位置

在获取到第一距离和点云数据在栅格地图中所在的点云位置之后,可以将第一距离与点云位置的和值确定为无穷远点位置,而后可以基于无穷远点位置确定与栅格地图相对应的最大边界位置。

在一些实例中,本实施例中的基于无穷远点位置,确定与栅格地图相对应的最大边界位置可以包括:直接将无穷远点位置确定为与栅格地图相对应的最大边界位置。

其中,由于无穷远点位置与相机坐标系的原点之间的距离大于栅格地图中所包括的所有位置与相机坐标系的原点之间的距离,因此,将无穷远点位置确定为与栅格地图相对应的最大边界位置,这样有效地保证了对栅格地图进行更新操作的准确可靠性。

在另一些实例中,本实施例中的基于无穷远点位置,确定与栅格地图相对应的最大边界位置可以包括:连接相机坐标系的原点与无穷远点位置,生成一连接直线;获取连接直线与栅格地图所形成的至少一个交点;基于至少一个交点,确定与栅格地图相对应的最大边界位置。

具体的,在获取到相机坐标系的原点和无穷远点位置之后,可以连接相机坐标系的原点与无穷远点位置,生成一连接直线,该连接直线与栅格地图可以形成至少一个交点,在获取到至少一个交点之后,可以基于至少一个交点确定与栅格地图相对应的最大边界位置。具体的,可以在至少一个交点中,将与相机坐标系的原点之间的距离较大的交点确定为与栅格地图相对应的最大边界位置。

如图13所示,连接无穷远点位置与相机坐标系的原点,生成一连接直线,该连接直线与栅格地图形成交点1和交点2,交点1与相机坐标系的原点之间的距离为d11,交点2与相机坐标系的原点之间的距离为d12,由于d12>d11,那么,则可以将d12所对应的交点2确定为与栅格地图相对应的最大边界位置,从而有效地保证了对最大边界位置进行确定的准确可靠性,进一步提高了对有效区域进行确定的质量和效率。

步骤S1203:计算点云数据在栅格地图中的点云位置。

在获取到与深度图相对应的点云数据之后,可以计算点云数据在栅格地图中的点云位置,具体的,可以通过以下公式来获取点云数据在栅格地图中所在的点云位置

步骤S1204:基于原点位置、最大边界位置和点云位置,确定有效区域的区域边界。

在获取到原点位置、最大边界位置和点云位置之后,可以基于原点位置、最大边界位置和点云位置来确定有效区域的边界区域,其中,上述的原点位置为有效区域所对应的初始最小边界位置,最大边界位置为有效区域所对应的初始最大边界位置,而后,可以基于点云位置对上述的初始区域边界(初始最小边界位置和初始最大边界位置)进行不断更新,从而可以准确有效地获取到有效区域,进而便于利用有效区域对第二地图进行更新处理操作。

图14为图12中的基于原点位置、最大边界位置和点云位置,确定有效区域的区域边界的流程示意图;在上述实施例的基础上,继续参考附图14所示,本实施例对于基于原点位置、最大边界位置和点云位置,确定有效区域的区域边界的具体实现方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,较为优选的,本实施例中的基于原点位置、最大边界位置和点云位置,确定有效区域的区域边界可以包括:

步骤S1401:将原点位置和最大边界位置确定为与有效区域的初始区域边界。

步骤S1402:基于点云位置对初始区域边界进行更新,确定有效区域的区域边界。

在获取到原点位置和最大边界位置之后,可以将原点位置和最大边界位置确定为与有效区域的初始区域边界,而后可以基于点云位置对初始区域边界进行更新,以确定的该有效区域的区域边界。

在一些实例中,基于点云位置对初始区域边界进行更新,确定有效区域的区域边界可以包括:将点云位置与初始区域边界中的原点位置进行分析比较,在点云位置小于原点位置时,则将小于原点位置的点云位置确定为更新后原点位置;将点云位置与初始区域边界中的最大边界位置进行分析比较,在点云位置大于最大边界位置时,则将大于最大边界位置的点云位置确定为更新后最大边界位置;基于更新后原点位置和更新后最大边界位置,确定有效区域的区域边界。

举例来说,有效区域的初始区域边界包括:原点位置(X0,Y0,Z0)以及最大边界位置(Xm,Ym,Zm),点云位置包括点云位置a(Xa,Ya,Za)、点云位置b(Xb,Yb,Zb)和点云位置c(Xc,Yc,Zc)。

在确定有效区域的初始区域边界之后,则可以将点云位置a与初始区域边界进行分析比较,在点云位置a与原点位置之间的位置比较关系满足以下至少之一:Xa

相类似的,在确定有效区域的初始区域边界之后,则可以将点云位置b与初始区域边界进行分析比较,在点云位置b与原点位置之间的位置比较关系满足以下关系:Xm>Xb>X0、Ym>Yb>Y0、Zm>Zb>Z0时,则说明此时的点云位置b所对应的坐标位置位于有效区域的初始边界位置的内部,进而可以无需对有效区域点的初始边界位置进行更新。

相类似的,在确定有效区域的初始区域边界之后,则可以将点云位置c与初始区域边界进行分析比较,在点云位置c与原点位置之间的位置比较关系满足以下至少之一:Xz>X0、Yz>Y0、Zz>Z0时,则说明此时的点云位置z所对应的坐标位置大于有效区域的初始边界位置(最大边界位置),进而可以将大于最大边界位置的点云位置确定为更新后最大边界位置。

本实施例中,通过将原点位置和最大边界位置确定为与有效区域的初始区域边界,而后将点云数据与初始区域边界进行分析比较,有效地实现基于点云位置对初始区域边界进行更新处理,并且保证了对有效区域的区域边界进行确定的准确可靠性,进一步提高了对地图进行更新操作的稳定可靠性。

图15为本发明实施例提供的另一种地图的更新方法的流程示意图;在上述实施例的基础上,参考附图15所示,在生成与深度图相对应的点云数据之后,本实施例中的方法还可以包括:

步骤S1501:识别点云数据是否有效。

步骤S1502:在点云数据为无效数据时,则删除点云数据。

其中,在生成与深度图相对应的点云数据时,所获取的点云数据可以包括有效的点云数据和无效的点云数据,此时,为了能够保证基于点云数据进行分析处理的质量和效率,在生成与深度图相对应的点云数据之后,可以识别点云数据是否有效,具体的,参考附图16所示,识别点云数据是否有效可以包括:

步骤S1601:获取与点云数据相对应的数据标定值。

步骤S1602:在数据标定值与用于标识无效数据的预设值相匹配时,则确定与数据标定值相对应的点云数据为无效数据;或者,在数据标定值与用于标识无效数据的预设值不匹配时,则确定与数据标定值相对应的点云数据为有效数据。

具体的,在获取到点云数据之后,可以获取与点云数据相对应的数据标定值,该数据标定值用于标识点云数据是否为有效数据的特征值。在获取到数据标定值之后,可以将数据标定值与预先配置的用于标识无效数据的预设值进行分析比较,在数据标定值与预设值相匹配时,则可以确定与数据标定值相对应的点云数据为无效数据。在数据标定值与预设值不匹配时,则可以确定与数据标定值相对应的点云数据为有效数据。

可以想到的是,在识别出点云数据是否有效之后,可以基于不同的识别结果来对点云数据进行相应的处理操作,例如,在点云数据为无效数据时,则可以删除该点云数据,以避免基于该点云数据进行不必要的数据处理操作。在点云数据为有效数据时,则可以基于该点云数据进行地图更新操作,这样不仅保证了对地图进行更新操作的质量和效率,并且也有效地降低了数据处理操作对应的数据处理量,进一步提高了该方法的实用性。

具体应用时,本应用实施例提供了一种地图更新方法,该地图更新方法可以应用于可移动平台,该可移动平台可以为手持电话、手持云台、无人机、无人车、无人船、机器人或自动驾驶汽车等,具体的,该方法可以包括以下步骤:

步骤1:获取深度图。

具体的,可移动平台上可以设置有用于获取深度图的多组双目设备,如图17所示,多组双目设备可以配置在不同的方向,以通过多组双目设备获取前方向、后方向、左方向、右方向、上方向和下方向等不同方向上的深度图。

步骤2:获取与深度图相对应的点云数据。

步骤3:基于点云数据生成与深度图相对应的当前地图。

步骤4:确定用于对历史地图进行更新的有效区域,有效区域与当前地图所对应的视场角有关。

其中,参考附图18所示,以栅格地图的俯视图(前视)为例进行说明,由于视场角(Field of view,简称FOV)所覆盖的区域是栅格地图中的一部分,而点云数据在栅格地图中的分布是不规则的,因此,为了能够准确地获取到视场角所对应的有效区域,可以在栅格地图中获取用于标识有效区域的区域边界,而后基于区域边界确定用于对第二地图进行更新的有效区域。具体的,确定用于对历史地图进行更新的有效区域可以包括如下步骤:

步骤41:获取深度图的中心点(u0,v0),基于深度图的中心点(u0,v0)确定相机坐标系的原点t

步骤42:确定相机坐标系的原点在栅格地图中的第一位置。

具体的,根据公式

步骤43:确定与栅格地图相对应的最大边界位置。

获取深度图的原点相对于栅格地图的中心点之间的第一距离d

而后,获取点云数据在栅格地图中所在的点云位置,具体的,通过以下公式来实现:

在获取到第一距离和点云位置之后,可以将第一距离和点云位置的和值确定为无穷远点位置,即无穷远点位置为d

步骤44:将原点位置和最大边界位置确定为与有效区域的初始区域边界(x

步骤45:获取点云数据在栅格地图中的点云位置,基于点云位置对初始区域边界进行更新,确定有效区域的区域边界。

举例来说,x

在获取到点云位置之后,可以基于点云位置对初始区域边界进行更新操作,具体的,以点云位置包括p

判断p

判断p

判断p

判断p

判断p

判断p

需要注意的是,深度图所对应的点云数据的个数可以为多个,在针对一个点云数据所对应的位置进行分析判断完毕之后,则可以继续对深度图中的下一个点云数据继续进行分析匹配,直至遍历深度图中的所有3D点云数据所对应的点云位置,并基于点云位置对初始区域边界进行更新操作为止。

通过上述过程可知,只需要通过对点云位置与初始区域边界之间进行大小比较,即可实现基于点云位置对初始区域边界进行更新操作,进而保证了对有效区域的区域边界进行获取的准确可靠性。

步骤5:基于有效区域的区域边界来确定有效区域,并基于有效区域对历史地图进行更新操作,生成更新后地图。

在获取到有效区域之后,则可以只针对有效区域中的点云数据对历史地图进行去除障碍物的操作,此时,地图更新操作所需要计算的点云数据的个数如下公式:p_total=(x

基于上述公式可知,由于上述所确定的有效区域是整个栅格地图的子集,进一步的,基于多个方向传感器来构建地图,可以大量减少在每个方向上进行地图更新操作的数据处理量,这样达到了降低读写DDR带宽、提高处理速度、降低单帧处理带宽的综合效果。

具体的,参考下述表格1所示,将本应用实施例提供的技术方案与相关技术中的技术方案进行分析对比:

表1

由于相关技术中提供的地图更新方法可以包括以下步骤:计算与深度图相对应的点云数据,利用点云数据获得与深度图相对应的当前地图,对当前地图和历史地图进行地图融合操作和投影操作,以去除历史地图中所存在的障碍物。其中,相关技术是指没有采用利用视场角相关的有效区域对地图进行更新的其他技术。

如上述表1所示,通过对比本应用实施例提供的地图更新方法和相关技术中提供的地图更新方法可知,本应用实施例提供的技术方案所对应的带宽信息、计算量和相关技术中的技术方案所对应的带宽信息和计算量的比例为

假设,(x

总的来说,本应用实施例提供的地图更新方法,通过有效区域和第一地图对第二地图进行更新操作,由于有效区域与第一地图所对应的视场角有关,即有效区域对应于第二地图中的一部分,因此,在根据有效区域和第一地图对第二地图进行更新操作时,有效地降低了地图更新操作过程中的数据处理量,减少了数据操作过程中所需要占用的内存带宽,提高了数据处理速度,降低了单帧处理带宽,进一步提高了该方法的实用性。

图19为本发明实施例提供的一种地图的更新装置的结构示意图;参考附图19所示,本实施例提供了一种地图的更新装置,该地图的更新装置可以执行上述图1实施例所对应的地图的更新方法。具体的,地图的更新装置可以包括:

存储器12,用于存储计算机程序;

处理器11,用于运行存储器12中存储的计算机程序以实现:

获取当前时刻所对应的第一地图和历史时刻所对应的第二地图;

确定用于对第二地图进行更新的有效区域,有效区域与第一地图所对应的视场角有关;

根据有效区域和第一地图对第二地图进行更新,获得目标地图。

其中,地图的更新装置的结构中还可以包括通信接口13,用于电子设备与其他设备或通信网络通信。

在一些实例中,在处理器11获取当前时刻所对应的第一地图时,处理器11用于:获取当前时刻所对应的深度图;生成与深度图相对应的点云数据;基于点云数据构建第一地图,第一地图为栅格地图。

在一些实例中,有效区域为覆盖视场角所对应范围的规则形状区域,规则形状区域的边缘与第一地图的边缘相平行或者垂直。

在一些实例中,规则形状区域包括以下任意之一:正方体区域、长方体区域。

在一些实例中,在处理器11确定用于对第二地图进行更新的有效区域时,处理器11用于:获取与第一地图相对应的地图有效区域;将地图有效区域确定为用于对第二地图进行更新的有效区域。

在一些实例中,在处理器11确定用于对第二地图进行更新的有效区域时,处理器11用于:获取第一地图与第二地图相对应的重合区域;在重合区域中,确定用于对第二地图进行更新的有效区域。

在一些实例中,在处理器11确定用于对第二地图进行更新的有效区域时,处理器11用于:在重合区域或者栅格地图中,获取用于标识有效区域的区域边界;基于区域边界确定用于对第二地图进行更新的有效区域。

在一些实例中,在处理器11获取用于标识有效区域的区域边界时,处理器11用于:获取相机坐标系的原点在栅格地图中所对应的原点位置;确定与栅格地图相对应的最大边界位置;计算点云数据在栅格地图中的点云位置;基于原点位置、最大边界位置和点云位置,确定有效区域的区域边界。

在一些实例中,在处理器11获取相机坐标系的原点在栅格地图的原点位置时,处理器11用于:获取相机坐标系的原点所对应的第一位置;确定栅格地图所对应的分辨率以及栅格地图的原点在世界坐标系中的第二位置;基于第一位置、分辨率和第二位置,确定相机坐标系的原点在栅格地图的原点位置。

在一些实例中,在处理器11确定与栅格地图相对应的最大边界位置时,处理器11用于:获取深度图的原点与栅格地图中心之间的第一距离;将第一距离与点云位置的和值确定为无穷远点位置;基于无穷远点位置,确定与栅格地图相对应的最大边界位置。

在一些实例中,在处理器11基于无穷远点位置,确定与栅格地图相对应的最大边界位置时,处理器11用于:将无穷远点位置,确定为与栅格地图相对应的最大边界位置。

在一些实例中,在处理器11基于无穷远点位置,确定与栅格地图相对应的最大边界位置时,处理器11用于:连接相机坐标系的原点与无穷远点位置,生成一连接直线;获取连接直线与栅格地图所形成的至少一个交点;基于至少一个交点,确定与栅格地图相对应的最大边界位置。

在一些实例中,在处理器11基于原点位置、最大边界位置和点云位置,确定有效区域的区域边界时,处理器11用于:将原点位置和最大边界位置确定为与有效区域的初始区域边界;基于点云位置对初始区域边界进行更新,确定有效区域的区域边界。

在一些实例中,在处理器11基于点云位置对初始区域边界进行更新,确定有效区域的区域边界时,处理器11用于:将点云位置与初始区域边界中的原点位置进行分析比较,在点云位置小于原点位置时,则将小于原点位置的点云位置确定为更新后原点位置;将点云位置与初始区域边界中的最大边界位置进行分析比较,在点云位置大于最大边界位置时,则将大于最大边界位置的点云位置确定为更新后最大边界位置;基于更新后原点位置和更新后最大边界位置,确定有效区域的区域边界。

在一些实例中,在生成与深度图相对应的点云数据之后,处理器11用于:识别点云数据是否有效;在点云数据为无效数据时,则删除点云数据。

在一些实例中,在处理器11识别点云数据是否有效时,处理器11用于:获取与点云数据相对应的数据标定值;在数据标定值与用于标识无效数据的预设值相匹配时,则确定与数据标定值相对应的点云数据为无效数据;或者,在数据标定值与用于标识无效数据的预设值不匹配时,则确定与数据标定值相对应的点云数据为有效数据。

图19所示装置可以执行图1-图18所示实施例的方法,本实施例未详细描述的部分,可参考对图1-图18所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1-图18所示实施例中的描述,在此不再赘述。

图20为本发明实施例提供的一种可移动平台的结构示意图;参考附图20所示,本实施例提供了一种可移动平台,具体应用时,该可移动平台可以为手持电话、手持云台、无人机、无人车、无人船、机器人或自动驾驶汽车等,具体的,该可移动平台可以包括:

机身21;

上述图19实施例中的地图的更新装置22,设置于机身21上。

图20所示可移动平台的具体实现过程和实现原理与上述图19中可移动平台的实现过程和实现原理相类似,具体可参见上述图20所示实施例中的描述,在此不再赘述。

本实施例的另一方面提供了一种计算机可读存储介质,存储介质为计算机可读存储介质,该计算机可读存储介质中存储有程序指令,程序指令用于实现上述图1-图18所对应实施例中的地图的更新方法。

以上各个实施例中的技术方案、技术特征在与本相冲突的情况下均可以单独,或者进行组合,只要未超出本领域技术人员的认知范围,均属于本申请保护范围内的等同实施例。

在本发明所提供的几个实施例中,应该理解到,所揭露的相关遥控装置和方法,可以通过其它的方式实现。例如,以上所描述的遥控装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,遥控装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得计算机处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

相关技术
  • 地图的更新方法、装置、可移动平台及存储介质
  • 地图数据存储装置、地图数据更新方法及计算机可读存储介质
技术分类

06120112734970