用于获得地图的方法、装置、设备和计算机可读存储介质与流程

文档序号:16505543发布日期:2019-01-05 09:00阅读:157来源:国知局
用于获得地图的方法、装置、设备和计算机可读存储介质与流程

本公开的实施例总体涉及地图领域,并且更具体地,涉及用于获得地图的方法、装置、设备和计算机可读存储介质。



背景技术:

高精地图在自动驾驶系统中具有举足轻重的作用。在整个自动驾驶系统中,无论是感知、路径规划还是定位系统,都不同程度地依赖高精地图来工作。高精地图赋予自动驾驶系统上帝视角和准确理解世界的能力,从而能够释放系统性能,扩展传感器检测边界。高精地图的准确性更是直接影响无人驾驶的成败。因此,高精地图是自动驾驶系统的核心技术之一。

通常,大规模的高精地图制作需要利用多个采集设备在多个采集路径上进行多次数据采集来完成。由于采集区域的环境可能随时改变,例如修路或者随着季节的变化而改变等等,因此所制作的地图通常具有一定的有效期。为了使制作的地图和真实环境保持一致,往往需要不断地采集新数据来对地图进行更新。随着自动驾驶的应用场景越来越大,如何在低成本情况下制作厘米级精度的大规模高精度地图成为亟待解决的挑战。



技术实现要素:

根据本公开的示例实施例,提供了用于获得地图的方案。

在本公开的第一方面中,提供了一种用于获得地图的方法。该方法包括在服务器处获取关于采集区域的基准地图。该方法还包括基于该基准地图将采集区域划分为多个子区域。该方法还包括生成与多个子区域相对应的多个采集任务,多个采集任务中的一个采集任务用于采集关于多个子区域中的相应子区域的地图。此外,该方法还包括将该采集任务分配给相应采集实体,以使得相应采集实体采集关于相应子区域的地图。

在本公开的第二方面中,提供了一种获得地图的方法。该方法包括在采集实体处,从服务器获取分配给该采集实体的采集任务,该采集任务指示采集实体采集关于采集区域被划分成的多个子区域中的相应子区域的地图。该方法还包括确定采集实体是否在相应子区域内。该方法还包括响应于确定该采集实体在相应子区域内,采集关于该相应子区域的地图。此外,该方法还包括将关于该相应子区域的地图发送给服务器。

在本公开的第三方面中,提供了一种用于获得地图的装置。该装置包括:基准地图获取模块,被配置为获取关于采集区域的基准地图;区域划分模块,被配置为基于该基准地图来将采集区域划分为多个子区域;任务生成模块,被配置为生成与多个子区域相对应的多个采集任务,多个采集任务中的一个采集任务用于采集关于多个子区域中的相应子区域的地图;以及任务分配模块,被配置为将该采集任务分配给相应采集实体,以使得相应采集实体采集关于该相应子区域的地图。

在本公开的第四方面中,提供了一种用于获得地图的装置。该装置包括:任务获取模块,被配置为从服务器获取分配给采集实体的采集任务,该采集任务指示采集实体采集关于采集区域被划分成的多个子区域中的相应子区域的地图;确定模块,被配置为确定该采集实体是否在相应子区域内;地图采集模块,被配置为响应于确定该采集实体在相应子区域内,采集关于该相应子区域的地图;以及地图发送模块,被配置为将关于该相应子区域的地图发送给服务器。

在本公开的第五方面中,提供了一种电子设备,包括一个或多个处理器和存储装置。存储装置用于存储一个或多个程序。当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行根据本公开的第一方面的方法。

在本公开的第六方面中,提供了一种电子设备,包括一个或多个处理器和存储装置。存储装置用于存储一个或多个程序。当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行根据本公开的第二方面的方法。

在本公开的第七方面中,提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序在被处理器执行时实现根据本公开的第一方面的方法。

在本公开的第八方面中,提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序在被处理器执行时实现根据本公开的第二方面的方法。

应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。

附图说明

结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:

图1示出了本公开的实施例能够在其中实现的示例环境的示意图;

图2示出了根据本公开的实施例的用于获得地图的示例方法的流程图;

图3示出了根据本公开的实施例的基于特定道路元素而生成的隔断的示意图;

图4示出了根据本公开的实施例的将采集区域划分成的多个子区域的示意图;

图5示出了根据本公开的实施例的用于获得地图的示例方法的流程图;

图6示出了根据本公开的实施例的确定采集实体是否在采集区域中的相应子区域内的示例;

图7示出了根据本公开的实施例的用于采集关于相应子区域的地图的示例方法的流程图;

图8示出了根据本公开的实施例的用于验证地图精度的示例方法的流程图;

图9示出了根据本公开实施例的用于获得地图的装置的示意性框图;

图10示出了根据本公开实施例的用于获得地图的装置的示意性框图;以及

图11示出了能够实施本公开的多个实施例的计算设备的框图。

具体实施方式

下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。

在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。

如以上提及的,随着自动驾驶的应用场景越来越大,如何在低成本情况下制作厘米(cm)级精度的大规模的高精度地图成为对精度、效率、计算能力、资源成本的巨大挑战。

目前已有的制图方法,主要是依赖基于全球导航卫星系统/惯导系统(gnss/sins)的组合导航系统提供的高精度定位结果来构建地图。然而,这种模式一般仅适用于针对特定的小范围的制图,而无法适应大规模制图场景。例如,针对城市而言,其中通常包含各种复杂场景,诸如具有林荫路的公园、隧道、高楼区域等等。在这样的场景下,传统的定位技术由于全球定位系统(gps)信号弱以及多径效应,无法满足稳定的高精度定位和制图精度要求。此外,针对基于传统gnss/sins组合导航系统的制图方案,所采集的地图数据通常包括大量的低精度噪声,因此这些数据无法用于制作满足无人驾驶要求的厘米级精度地图。

根据本公开的实施例,提出了一种用于获得地图的方案。该方案通过利用众包模式来实现低成本高精度地图制作。发明人认识到,即使利用众包模式来针对大规模的城市道路进行数据采集仍然可能由于采集任务的划分困难而难以控制采集到的数据质量。此外,发明人还认识到,采集实体(例如,采集车辆)通常仅具有有限的存储空间和有限的传输带宽,因而不允许将在采集过程期间采集到的所有数据进行存储,也不允许直接将采集到的原始数据传输到服务器端来进行地图制作。根据本公开的实施例的方案能够从海量采集数据中去除冗余数据而仅仅存储必要的数据。此外,该方案能够利用采集实体处的有限资源进行地图制作,从而在提高制图效率的同时降低对采集实体和服务器之间的传输带宽的占用。

以下将参照附图来具体描述本公开的实施例。

图1示出了本公开的实施例能够在其中实现的示例环境100的示意图。环境100总体上可以包括一个或多个采集实体110和服务器120。应当理解,在图1中仅出于示例性的目的描述环境100的结构和功能,而不暗示对于本公开的范围的任何限制。本公开的实施例还可以被应用到具有不同的结构和/或功能的环境中。出于简化的目的,在图1中仅示出一个采集实体110,然而应当理解本公开的实施例也适用于多个采集实体的情况。

在此所述的“采集实体”指代能够采集数据的设备。采集实体的示例例如可以包括但不限于采集车或者其他用于采集数据的设备。例如,在采集实体110上可以安装一个或多个传感器(未示出)以用于采集数据,传感器的示例包括但不限于激光雷达、相机、gps定位模块及其他传感器设备等。在此所述的“服务器”例如可以被部署在单个设备上或者以云计算架构的形式被部署。例如,当服务器120以云计算架构的形式被部署时,其中的各个部件中的部分或全部可以被远程部署,并且可以一起工作以实现服务器120的功能。

如图1所示,服务器120例如可以包括管理模块121、基准地图获取模块122和地图更新模块123。

在一些实施例中,基准地图获取模块122可以被配置为获取关于采集区域的基准地图130。在此所述的“采集区域”指代要针对其制作地图的区域,例如某个城市。在初始情况下,基准地图可以基于由特定采集实体(例如,多个采集实体110中的一个)在采集区域内采集到的数据来被生成。例如,特定采集实体可以利用在其上安装的传感器(例如,激光雷达)在采集区域中采集用于制图的数据(例如,点云数据),并且将采集到的原始数据上传至服务器120中的管理模块121(其用于管理向各采集实体110下发的采集任务和从采集实体接收到的执行采集任务的结果)。基准地图获取模块122可以从管理模块121处获取这些数据,并且基于这些数据来生成关于采集区域的基准地图130。例如,基准地图130可以作为后续众包地图制作的基础。尽管在图1中将基准地图130示出为由服务器120生成,然而应当理解,在一些实施例中,也可以从其它来源直接获取基准地图130。

在一些实施例中,管理模块121可以被配置为管理向采集实体110下发的采集任务和从采集实体接收到的执行采集任务的结果。在一些实施例中,管理模块121可以例如基于基准地图130将采集区域划分为多个子区域,并且生成与多个子区域相对应的多个采集任务。例如,多个采集任务中的一个采集任务用于采集关于所述多个子区域中的相应子区域的地图。管理模块121可以将多个采集任务分配给多个采集实体来完成。例如,管理模块121可以经由下发通道112向采集实体110下发采集任务,以使得采集实体110采集关于多个子区域中的相应子区域的地图。

在一些实施例中,采集实体110可以经由下发通道112从服务器接收采集任务。例如,采集任务可以指示采集实体110在多个子区域中的相应子区域内采集关于相应子区域的地图。响应于接收到采集任务,采集实体110可以确定其自身是否在采集任务所指定的相应子区域内。响应于确定其自身在采集任务所指定的相应子区域内,采集实体110可以在采集时段期间(例如,白天)在相应子区域内采集用于制作地图的数据(例如,利用激光雷达捕获的点云数据等),并且对采集到的数据进行存储。然后,采集实体110可以在适当的时间(例如,晚上)基于存储的数据来生成关于特定采集区域的地图。采集实体110可以进一步验证所生成的地图的精度,并且将符合精度要求的地图经由上传通道111发送给服务器120,以便服务器120基于来自不同采集实体110的地图数据进行地图合成和更新。

在一些实施例中,服务器120中的管理模块121可以经由上传通道111从采集实体110接收通过完成该采集任务而得到的关于相应子区域的地图140。管理模块121可以进一步将从各个采集实体接收到的地图140传递给地图更新模块123,以进行地图合成和更新。

在一些实施例中,地图更新模块123可以以预定义的周期(诸如,每周一次)来执行地图合成和更新。例如,地图更新模块123可以基于由采集实体110所采集的地图140来更新关于采集区域的基准地图130,从而获得关于采集区域的经更新的地图150。经更新的地图150可以作为将由地图更新模块123执行的下一次地图更新的基础。

以下将进一步结合附图来详细描述如图1所示的采集实体110和服务器120的工作原理。

图2示出了根据本公开的实施例的用于获得地图的示例方法200的流程图。例如,方法200可以由如图1所示的服务器120来执行。以下将结合图1来详细描述方法200的各个动作。应当理解,方法200还可以包括未示出的附加动作和/或可以省略所示出的动作。本公开的范围在此方面不受限制。

在框210,服务器120(例如,基准地图获取模块122)获取关于采集区域的基准地图130。在此所述的“采集区域”指代要针对其制作地图的区域,例如某个城市。在初始情况下,基准地图可以基于由特定采集实体(例如,多个采集实体110中的一个)在采集区域内采集到的数据来被生成。例如,特定采集实体可以利用在其上安装的传感器(例如,激光雷达)在采集区域中采集用于制图的数据(例如,点云数据),并且将采集到的原始数据上传至服务器120中的管理模块121(其用于管理向各采集实体110下发的采集任务和从采集实体接收到的执行采集任务的结果)。基准地图获取模块122可以从管理模块121处获取这些数据,并且基于这些数据来生成关于采集区域的基准地图130。例如,基准地图130可以作为后续众包地图制作的基础。尽管在图1中将基准地图130示出为由服务器120生成,然而应当理解,在一些实施例中,也可以从其它来源直接获取基准地图130。

在框220,服务器120(例如,管理模块121)基于基准地图来将采集区域划分为多个子区域。

在一些实施例中,服务器120可以识别基准地图中的特定道路元素。例如,特定道路元素的示例可以包括但不限于车道线、分岔路口等等。服务器120可以基于识别的特定道路元素来将采集区域划分为多个子区域。

在一些实施例中,例如,当服务器120识别到基准地图中的路口或多个方向的岔路或者向主路汇入的小路时,服务器120可以在这些道路元素处生成隔断。备选地,在一些实施例中,例如当服务器120识别到道路的长度超过预定阈值时,服务器120也可以在道路中间生成隔断。图3示出了基于基准地图中的特定道路元素来生成隔断的示例。在图3中,隔断利用符号“x”来表示。进一步地,服务器120可以基于所生成的隔断以及道路边界来将采集区域划分成多个多边形区域。图4示出了根据本公开的实施例的将采集区域划分成的多个子区域的示意图。如图4所示,采集区域400被划分成多个多边形区域410-1~410-16。

在一些实施例中,由服务器120将采集区域划分而成的多个子区域中的每个子区域中可以仅包含一条驾驶路径,也即,每个子区域仅具有一个入口和一个出口。这样做的益处在于,当采集实体通过某个多边形区域时(即,从入口进入并从出口驶出),能够确定该采集实体已经经过该多边形区域内的全部道路。也即,当采集实体落入该多边形区域时,能够确定针对该多边形区域的地图采集已经完成。相反,如果一个多边形区域内包含多条道路,则可能存在多种驾驶路径。在此情况下,即使采集实体落入该多边形区域内,其可能仅经过其中一条驾驶路径,因此无法确定其是否覆盖该多边形区域内的所有路径。

在框230,服务器120(例如,管理模块121)生成与多个子区域相对应的多个采集任务。在一些实施例中,多个采集任务中的一个采集任务用于采集关于多个子区域中的相应子区域的地图。然后,在框240,服务器120(例如,管理模块121)将采集任务分配给相应采集实体(例如,采集实体110),以使得相应采集实体采集关于多个子区域中的相应子区域的地图。

在一些实施例中,例如,服务器120可以将多个采集任务中的每个采集任务分发给与该采集任务相对应的至少一个采集实体。例如,该采集任务可以指定其所对应的子区域的范围(例如,多边形区域的各个顶点的坐标)。备选地,在另一些实施例中,例如,服务器120可以不指定采集任务与采集实体之间的对应关系,而将多个采集任务广播给所有的采集实体。在此情况下,由每个采集实体可以根据其自身的位置来决定所要执行的采集任务。

图5示出了根据本公开的实施例的用于获得地图的示例方法500的流程图。例如,方法500可以由如图1所示的采集实体110来执行。以下将结合图1来详细描述方法500的各个动作。应当理解,方法500还可以包括未示出的附加动作和/或可以省略所示出的动作。本公开的范围在此方面不受限制。

在框510,采集实体110从服务器120获取向其分配的采集任务。在一些实施例中,采集任务可以指示采集实体110采集关于多个子区域中的与该采集任务相对应的子区域的地图。例如,采集任务可以指定其所对应的子区域的范围(例如,多边形区域的各个顶点的坐标)。

在框520,响应于接收到采集任务,采集实体110确定其自身是否在采集任务所指定的相应子区域内。

在一些实施例中,例如,采集实体110可以基于在其上安装的gps定位模块来确定其自身的位置(本文中也被称为“第一位置”)。由于采集任务可以指定其所对应的子区域的范围,因此采集实体110可以确定从该子区域之外的另一位置(本文中也被称为“第二位置”)到第一位置的连线与该子区域的边缘相交的次数。如果该次数为偶数,则采集实体110可以确定其自身在该子区域范围之外;否则,采集实体110可以确定其自身在该子区域范围内。

图6示出了根据本公开的实施例的确定采集实体是否在采集区域中的相应子区域内的示例。如图6所示,例如采集区域中的一个子区域由顶点分别为a、b、c和d的四边形600来表示。当采集实体的当前位置在点x1处时,由于x1与四边形600之外的另一位置y1的连线610与四边形600相交的次数为奇数(即,1次),因此可以确定该采集实体在子区域600的范围内。当采集实体的当前位置在点x2处时,由于x2与四边形600之外的另一位置y2的连线620与四边形600相交的次数为偶数(即,2次),因此可以确定该采集实体在子区域600的范围之外。

返回图5,方法500进行至框530,其中采集实体110响应于确定其在相应子区域内,采集关于该相应子区域的地图。例如,图7示出了根据本公开的实施例的用于采集关于相应子区域的地图的方法700的流程图。方法700可以作为如图5所示的框530的一种示例实现,并且由采集实体110来执行。

在框710,采集实体110在采集时段期间采集关于相应子区域的一组点云数据。在一些实施例中,采集实体110可以利用在其上安装的激光雷达在相应子区域中采集多帧点云数据。在一些实施例中,能够采集数据的采集时段可以被预先配置。例如,采集时段可以是白天,而晚上则为非采集时段。在另一些实施例中,采集时段可以基于采集实体的操作模式来确定。例如,当采集实体处于行驶模式时为采集时段,而当采集实体处于停止行驶或充电模式时为非采集时段。

在框720,采集实体110可以将采集到的一组点云数据存储在采集实体处。例如,采集实体110可以将采集到的点云数据存储在其存储设备中。在一些实施例中,针对每个子区域的点云数据可以仅被存储一次。也即,当采集实体110离开该相应子区域之后再次进入该子区域时,所采集的数据将不再被存储,从而节省采集实体处的存储空间。备选地,在另一些实施例中,针对每个子区域的点云数据可以在采集实体处被存储多次。例如,采集实体110可以被配置有指示一天内针对同一子区域的数据被存储的次数的预定参数(例如,针对同一子区域一天采集并存储3次数据)。采集实体110可以基于该预定参数来控制所采集的数据被存盘的次数。

在框730,在非采集时段内,采集实体基于所存储的一组点云数据来生成关于相应子区域的地图。在一些实施例中,非采集时段可以被预先配置。例如,采集时段可以是白天,而晚上则为非采集时段。在另一些实施例中,采集时段可以基于采集实体的操作模式来确定。例如,当采集实体处于行驶模式时为采集时段,而当采集实体处于停止行驶或充电模式时为非采集时段。

在一些实施例中,采集实体110可以在非采集时段期间基于所存储的点云数据来生成关于相应子区域的点云地图。例如,采集实体110可以利用点云同步定位和地图构建(slam)技术来从所存储的多帧点云数据生成局部平滑的点云地图。具体地,可以通过确定在采集多帧点云中的每一帧点云时采集实体110(例如,其上的激光雷达)的相应位姿(本文中也被称为“第一组位姿”)来实现这样的点云拼接。

在此所述的“位姿”可以指代物体在特定坐标系中的位置和姿势。例如,在二维坐标系中,物体的位姿可以利用二维坐标和航向角来表示。在三维坐标系中,物体的位姿可以利用三维坐标、俯仰角、航向角和旋转角来表示。

在一些实施例中,由采集实体110采集的相邻的两帧点云所对应的区域可能存在重叠。在此情况下,可以通过对相邻的两帧点云进行匹配来确定与两帧点云相对应的激光雷达的两个位姿之间的位姿变换。

假设要进行匹配的两帧点云被称为一个点云对,其可以包括源点云和目标点云。xi1和xi2分别代表与第i个点云对中的目标点云相对应的目标位姿(例如,采集实体上的激光雷达在捕获目标点云时的位姿)和与第i个点云对中的源点云相对应的源位姿(例如,采集实体上的激光雷达在捕获源点云时的位姿)。点云匹配的目标是把与源点云相对应的源位姿进行平移和旋转从而得到与目标点云相对应的目标位姿,使得源点云和目标点云能够完美地匹配。假设第i个点云对的源位姿和目标位姿之间的调整量被表示为δpi。

在一些实施例中,例如可以确定源点云通过激光雷达的位姿变换而得到的目标点云与实际采集到的目标点云之间的残差,通过不断优化激光雷达的位姿使得该残差最小化可以确定激光雷达的位姿调整量δpi。以此方式,能够确定与每个点云对相对应的位姿调整量。此外,这些位姿调整量转而可以被用作全局优化的约束条件,以用于确定与每帧点云相对应的采集实体110的相应位姿。

在一些实施例中,可以利用如下目标函数来确定与每帧点云相对应的激光雷达的相应位姿:

其中,表示由采集实体110上的gps模块和惯性测量单元提供的先验位姿调整量,xi1和xi2分别表示待求解的第i个点云对中的与目标点云相对应的目标位姿和与源点云相对应的源位姿。通过最小化公式(1)中的目标函数,能够求解与每帧点云相对应的激光雷达的相应位姿的集合{x}。

以此方式,采集实体110能够在非采集时段期间基于所存储的点云数据来生成关于相应子区域的点云地图。

在一些实施例中,采集实体110可以进一步通过将点云地图投影到特定坐标系(例如,utm坐标系)中来将三维点云地图转换为二维反射值地图。在一些实施例中,反射值地图可以被用作后续地图精度验证、地图回传和/或地图合成与更新的基础。

在一些实施例中,例如可以将特定坐标系(例如,utm坐标系)划分为固定大小的多个地图节点,每个地图节点覆盖一定的范围。这样,在已知地图节点大小的情况下可以根据一个点在该特定坐标系下的坐标来确定该点所在的地图节点。

由于点云地图包括一系列的点,若将其全部映射到上述地图节点中,将导致生成的反射值地图的数据量过大。因此,在一些实施例中,可以将每个地图节点再划分成特定数量(例如,1024×1024)的单元格。然后,可以对落入同一单元格的点云数据进行聚合,使得针对每个单元格仅存储聚合后的数据。这样,无论点云地图中的点有多少,针对每个地图节点所存储的数据量都是固定的。

假设采集实体110发射的激光照射到物体后反射的激光点的坐标是p=(x,y,z)t,根据x和y可以确定激光点在特定坐标系(例如,utm坐标系)中的位置,z表示激光点的高度值。对于每个激光点,可以根据x和y来确定其落入哪个地图节点的哪个单元格。针对每个单元格可以存储落入其中的激光点的反射值的均值和方差、高度值的均值和方差和/或激光点的个数等。以此方式,能够将由采集实体110所采集到的点云地图转换成反射值地图。

返回到图5,在框540,采集实体110将关于相应子区域的地图发送给服务器120。在一些实施例中,采集实体110可以确定关于相应子区域的地图的精度,并且响应于该精度在预定范围内,将关于该相应子区域的地图发送给服务器120。

在一些实施例中,可以基于以上所生成的反射值地图来验证地图的精度。例如,可以通过在模拟自动驾驶过程中基于所生成的反射值地图进行模拟实时定位,并且将模拟实时定位的结果(例如,一组位姿)与上述第一组位姿进行匹配来确定所生成的地图的精度。

图8示出了根据本公开的实施例的用于验证地图精度的方法800的流程图。例如,方法800可以作为如图5所示的框540的一种示例实现,并且由采集实体110来执行。

在框810,利用虚拟对象来模拟采集实体110在采集一组点云数据期间的运动。例如,可以在软件中利用虚拟车辆来模拟采集实体110在相应子区域中执行采集任务期间的运动。

在框820,可以基于关于相应子区域的地图来确定该虚拟对象在模拟采集实体110的运动期间的第二组位姿。

在一些实施例中,可以基于虚拟车辆的初始预测位置来确定虚拟车辆当前所在的大概位置,从而加载以上所生成的反射值地图。然后,根据虚拟车辆在线扫描到点云的激光反射值和高度值特征与以上所生成的反射值地图中的反射值和高度值特征进行匹配。例如,在匹配时可以以初始预测位置为中心,计算在初始预测位置附近的一定范围内各个可能位置的匹配概率。可以利用直方图滤波器来更新定位结果的概率分布,从而根据该概率分布来确定虚拟车辆的精确位置。其中,虚拟车辆的初始预测位置可以通过上一次的定位结果和由惯性导航设备给出的车辆运动信息来确定。在初始情况下(例如,尚未确定任何定位结果的情况),初始预测位置基于采集实体的gps信号而得到,这可能存在2-5米的误差。在进行初始位置预测之后,可以通过如上所述的地图匹配来进行精确定位,从而得到虚拟车辆的最终定位结果。

在框830,通过将采集实体的第一组位姿和虚拟车辆的第二组位姿进行匹配,来确定所生成的关于相应子区域的地图的精度。例如,第一组位姿与第二组位姿之间的位置差异越大,则表明所生成的地图精度越低。第一组位姿与第二组位姿之间的位置差异越小,则表明所生成的地图精度越高。也即,可以通过模拟定位的结果的精度来确定所生成的地图的精度。

在一些实施例中,采集实体110可以响应于关于相应子区域的地图的精度在预定范围内,将关于该相应子区域的地图发送给服务器120。在一些实施例中,预定范围可以基于一些经验值来被确定。例如,预定范围的示例包括但不限于:第一组位姿与第二组位姿之间的位置差异的均值小于5cm;第一组位姿与第二组位姿之间的位置差异的最大值不超过30cm;和/或第一组位姿与第二组位姿之间的位置差异中的99.9%的位置差异都小于10cm等等。

在一些实施例中,采集实体110可以响应于关于相应子区域的地图的精度在预定范围内,将关于该相应子区域的反射值地图发送给服务器120,以使得服务器120基于关于该相应子区域的反射值地图来更新关于采集区域的基准地图。

返回参考图2,方法200进行至框250,其中响应于从采集实体110接收到关于相应子区域的地图,服务器120(例如,地图更新模块123)基于关于相应子区域的地图来更新基准地图(本文中也称为“地图融合”)。

在一些实施例中,关于相应子区域的地图与基准地图的融合可以基于反射值地图来进行。例如,可以针对反射值地图中的每个地图节点来进行地图融合,每个地图节点可以包括特定数量(例如,1024×1024)的单元格。在一些实施例中,可以利用从采集实体110接收到关于相应子区域的反射值地图中的每个单元格的数据来更新基准地图中的对应单元格的数据,诸如反射值的均值和方差、高度值的均值和方差和/或激光点的个数等。

附加地或者备选地,在一些实施例中,服务器120可以进一步验证经更新的基准地图的精度。例如,服务器120可以通过在模拟各采集实体的驾驶过程中基于经更新的基准地图进行模拟实时定位来确定经更新的基准地图的精度。这与以上结合图8所描述的方法800类似,在此不再作进一步的详细描述。

基于以上描述能够看出,根据本公开的实施例的方案通过利用众包模式来实现低成本高精度地图制作。根据本公开的实施例的方案能够从海量采集数据中去除冗余数据而仅仅存储必要的数据。此外,该方案能够利用采集实体处的有限资源进行地图制作和精度验证,从而在提高制图效率的同时降低对采集实体和服务器之间的传输带宽的占用。

图9示出了根据本公开实施例的用于获得地图的装置900的示意性框图。装置900例如可以被实现为如图1所示的服务器120。如图9所示,装置900包括基准地图获取模块910,其被配置为获取关于采集区域的基准地图。装置900还包括区域划分模块920,其被配置为基于基准地图来将采集区域划分为多个子区域。装置900还包括任务生成模块930,其被配置为生成与多个子区域相对应的多个采集任务,多个采集任务中的一个采集任务用于采集关于多个子区域中的相应子区域的地图。此外,装置900还包括任务分配模块940,其被配置为将采集任务分配给相应采集实体,以使得相应采集实体采集关于相应子区域的地图。

在一些实施例中,装置900还包括地图更新模块,其被配置为响应于从采集实体接收到关于相应子区域的地图,基于关于该相应子区域的地图来更新基准地图。

在一些实施例中,相应子区域可以为多边形区域。

在一些实施例中,相应子区域可以包括一条驾驶路径,并且该驾驶路径包括一个入口和一个出口。

在一些实施例中,区域划分模块920包括:元素识别单元,被配置为识别基准地图中的特定道路元素;以及区域划分单元,被配置为基于识别的特定道路元素来将采集区域划分为多个子区域。

在一些实施例中,特定道路元素包括车道线和路口中的至少一项。

图10示出了根据本公开实施例的用于获得地图的装置1000的示意性框图。装置1000例如可以被实现为如图1所示的采集实体110。如图10所示,装置1000包括任务获取模块1010,其被配置为从服务器获取分配给采集实体的采集任务,该采集任务指示采集实体采集关于采集区域被划分成的多个子区域中的相应子区域的地图。装置1000还包括确定模块1020,其被配置为确定采集实体是否在相应子区域内。装置1000还包括地图采集模块1030,其被配置为响应于确定采集实体在相应子区域内,采集关于该相应子区域的地图。此外,装置1000还包括地图发送模块1040,其被配置为将关于相应子区域的地图发送给服务器。

在一些实施例中,确定模块1020包括:第一确定单元,被配置为确定采集实体所在的第一位置;第二确定单元,被配置为确定从相应子区域之外的第二位置到第一位置的连线与相应子区域的边缘相交的次数;以及第三确定单元。第三确定单元被配置为:响应于该次数为偶数,确定采集实体在相应子区域之外;并且响应于该次数为奇数,确定采集实体在相应子区域内。

在一些实施例中,地图采集模块1030包括:数据采集单元,被配置为响应于确定采集实体在相应子区域内,在采集时段期间采集关于该相应子区域的一组点云数据;数据存储单元,被配置为将采集到的一组点云数据存储在采集实体处;以及地图生成单元,被配置为在非采集时段期间,基于存储的一组点云数据来生成关于该相应子区域的地图。

在一些实施例中,地图生成单元还被配置为:通过确定采集实体在采集一组点云数据时的第一组位姿,来生成关于相应子区域的点云地图。

在一些实施例中,地图生成单元还被配置为:通过将点云地图投影到特定坐标系中,来将该点云地图转换为反射值地图。

在一些实施例中,地图发送模块1040包括:精度确定单元,被配置为确定关于相应子区域的地图的精度;以及地图发送单元,被配置为响应于该精度在预定范围内,将关于相应子区域的地图发送给服务器。

在一些实施例中,精度确定单元还被配置为:利用虚拟对象来模拟采集实体在采集一组点云数据期间的运动;基于关于该相应子区域的地图,来确定虚拟对象在模拟该运动期间的第二组位姿;以及通过将第一组位姿和第二组位姿进行匹配,来确定关于该相应子区域的地图的精度。

图11示出了可以用来实施本公开的实施例的示例设备1100的示意性框图。设备1100可以用于实现如图1所示的采集实体110或者服务器120。如图所示,设备1100包括中央处理单元(cpu)1101,其可以根据存储在只读存储器(rom)1102中的计算机程序指令或者从存储单元1108加载到随机访问存储器(ram)1103中的计算机程序指令,来执行各种适当的动作和处理。在ram1103中,还可存储设备1100操作所需的各种程序和数据。cpu1101、rom1102以及ram1103通过总线1104彼此相连。输入/输出(i/o)接口1105也连接至总线1104。

设备1100中的多个部件连接至i/o接口1105,包括:输入单元1106,例如键盘、鼠标等;输出单元1107,例如各种类型的显示器、扬声器等;存储单元1108,例如磁盘、光盘等;以及通信单元1109,例如网卡、调制解调器、无线通信收发机等。通信单元1109允许设备1100通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

处理单元1101执行上文所描述的各个方法和处理,例如方法200、500、700和/或800。例如,在一些实施例中,方法200、500、700和/或800可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1108。在一些实施例中,计算机程序的部分或者全部可以经由rom1102和/或通信单元1109而被载入和/或安装到设备1100上。当计算机程序加载到ram1103并由cpu1101执行时,可以执行上文描述的方法200、500、700和/或800的一个或多个步骤。备选地,在其他实施例中,cpu1101可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法200、500、700和/或800。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)等。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。

尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1