一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于车辆导航的系统和方法与流程

2022-07-10 17:09:08 来源:中国专利 TAG:

用于车辆导航的系统和方法
1.相关申请的交叉引用
2.本技术要求于2020年1月3日提交的美国临时专利申请号62/956,987;于2020年1月3日提交的美国临时专利申请号62/956,993;于2020年1月3日提交的美国临时专利申请号62/956,997;于2020年1月3日提交的美国临时专利申请号62/957,017;于2020年1月3日提交的美国临时专利申请号62/957,019;于2020年1月3日提交的美国临时专利申请号62/957,028;于2020年11月30日提交的美国临时专利申请号63/119,293;于2020年12月2日提交的美国临时专利申请号63/120,553;以及于2020年12月2日提交的美国临时专利申请号63/120,536的优先权权益。上述申请通过引用整体并入本文。
技术领域
3.本公开总体上涉及自主车辆导航。


背景技术:

4.随着技术的不断进步,能够在道路上导航的完全自主车辆的目标即将出现。自主车辆可能需要考虑各种各样的因素,并且基于那些因素做出适当的决定,以安全和准确地到达意图的目的地。例如,自主车辆可能需要处理和解释可视信息(例如,从相机捕获的信息)、来自雷达或激光雷达的信息,并且也可能使用从其他源(例如,从gps装置、速度传感器、加速度计、悬架传感器等)获得的信息。同时,为了导航到目的地,自主车辆可能还需要识别其在特定道路(例如,多车道道路中的特定车道)内的定位,与其他车辆并排导航,避开障碍物和行人,观察交通信号和标志,并在适当的交叉路口或交汇处从一条道路行驶到另一条道路。当自主车辆行驶到其目的地时利用(harness)和解释由该车辆收集的大量信息造成了许多设计挑战。自主车辆可能需要分析、访问和/或存储的海量数据(例如,捕获的图像数据、地图数据、gps数据、传感器数据等)造成了实际上可能限制甚至不利地影响自主导航的挑战。此外,如果自主车辆依靠传统的映射(mapping)技术来导航,那么存储和更新地图所需的海量数据将造成巨大的挑战。


技术实现要素:

5.与本公开一致的实施例提供了用于自主车辆导航的系统和方法。所公开的实施例可以使用相机来提供自主车辆导航特征。例如,与所公开的实施例一致,所公开的系统可以包含一个、两个或更多个监控车辆的环境的相机。所公开的系统可以例如基于对由一个或多个相机捕获的图像的分析来提供导航响应。
6.在一个实施例中,基于主车辆的稀疏地图特征采集器系统可以包含至少一个处理器。该处理器可以被编程为:接收当主车辆在第一方向上沿着道路路段行驶时,由主车辆车载的相机捕获的多个图像,其中多个图像表示主车辆的环境;检测被表示在多个图像中的一个或多个图像中的一个或多个语义特征,一个或多个语义特征各自与预定对象类型分类相关联;识别与检测到的一个或多个语义特征中的每一个语义特征相关联的至少一个位置
描述符;以及识别与被表示在多个图像中的至少一个图像中的一个或多个检测到的对象相关联的三维特征点。该处理器还可以被编程为接收针对多个图像中的每一个图像的位置信息,其中位置信息指示多个图像中的每一个图像被捕获时相机的位置;以及引起向相对于主车辆远程定位的实体传输道路路段的驾驶信息,其中驾驶信息包含所识别的与检测到的一个或多个语义特征中的每一个语义特征相关联的至少一个位置描述符、所识别的三维特征点以及位置信息。
7.在一个实施例中,用于由主车辆采集稀疏地图特征的方法可以包含:接收当主车辆在第一方向上沿着道路路段行驶时,由主车辆车载的相机捕获的多个图像,其中多个图像表示主车辆的环境;检测被表示在多个图像中的一个或多个图像中的一个或多个语义特征,一个或多个语义特征各自与预定对象类型分类相关联;识别与检测到的一个或多个语义特征中的每一个语义特征相关联的至少一个位置描述符;以及识别与被表示在多个图像中的至少一个图像中的一个或多个检测到的对象相关联的三维特征点。该方法还可以包含:接收针对多个图像中的每一个图像的位置信息,其中位置信息指示多个图像中的每一个图像被捕获时相机的位置;以及引起向相对于主车辆远程定位的实体传输道路路段的驾驶信息,其中驾驶信息包含所识别的与检测到的一个或多个语义特征中的每一个语义特征相关联的至少一个位置描述符、所识别的三维特征点以及位置信息。
8.在一个实施例中,用于创建用于导航自主或部分自主车辆的地图的稀疏地图生成器系统可以包含至少一个处理器。该处理器可以被编程为:接收由在第一方向上行驶过道路路段的第一多个车辆传输的道路路段的第一驾驶信息,其中第一驾驶信息包含与由第一多个车辆的导航系统检测到的对象相关联的第一多个三维特征点;以及接收由在与第一方向相反的第二方向上行驶过道路路段的第二多个车辆传输的道路路段的第二驾驶信息,其中第二驾驶信息包含与由第二多个车辆的导航系统检测到的对象相关联的第二多个三维特征点。该处理器还被编程为:将第一多个三维特征点中的一个或多个与第二多个三维特征点中的一个或多个进行关联;以及基于第一多个三维特征点和第二多个三维特征点的关联来生成稀疏地图,稀疏地图包含在第一方向上沿着道路路段的行驶车道的至少第一目标轨迹;以及在第二方向上沿着道路路段的行驶车道的至少第二目标轨迹。
9.在一个实施例中,用于创建用于导航自主车辆或部分自主车辆的地图的方法包含:接收由在第一方向上行驶过道路路段的第一多个车辆传输的道路路段的第一驾驶信息,其中第一驾驶信息包含与由第一多个车辆的导航系统检测到的对象相关联的第一多个三维特征点;接收由在与第一方向相反的第二方向上行驶过道路路段的第二多个车辆传输的道路路段的第二驾驶信息,其中第二驾驶信息包含与由第二多个车辆的导航系统检测到的对象相关联的第二多个三维特征点;将第一多个三维特征点中的一个或多个与第二多个三维特征点中的一个或多个进行关联;以及基于第一多个三维特征点和第二多个三维特征点的关联来生成稀疏地图,稀疏地图包含在第一方向上沿着道路路段的行驶车道的至少第一目标轨迹;以及在第二方向上沿着道路路段的行驶车道的至少第二目标轨迹。
10.在一个实施例中,用于自主或部分自主主车辆的导航系统可以包含至少一个处理器,该处理器被编程为从相对于主车辆远程定位的实体接收与至少一个道路路段相关联的稀疏地图。稀疏地图可以包含:第一多个映射的导航特征,第一多个映射的导航特征是基于先前从在第一方向上沿着至少一个道路路段行驶的第一多个车辆收集的驾驶信息而生成
的;以及第二多个映射的导航特征,第二多个映射的导航特征是基于先前从在第二方向上沿着至少一个道路路段行驶的第二多个车辆收集的驾驶信息而生成的,其中第二方向与第一方向相反,并且其中第一多个映射的导航特征与第二多个映射的导航特征在公共坐标系内被关联。该处理器还可以被编程为:当主车辆在第一方向上沿着至少一个道路路段行驶时,从与主车辆相关联的相机接收表示主车辆的环境的第一多个图像和第二多个图像;基于对第一多个图像中的至少一个图像的分析并基于第一多个映射的导航特征,来确定主车辆的第一导航动作;以及使与主车辆相关联的一个或多个致动器实施第一导航动作。该处理器还可以被编程为基于对第二多个图像的分析并基于第二多个映射的导航特征,来确定主车辆的第二导航动作;以及使与主车辆相关联的一个或多个致动器实施第二导航动作。
11.在一个实施例中,用于导航自主或部分自主主车辆的方法包含:从相对于主车辆远程定位的实体接收与至少一个道路路段相关联的稀疏地图。该稀疏地图可以包含:第一多个映射的导航特征,第一多个映射的导航特征是基于先前从在第一方向上沿着至少一个道路路段行驶的第一多个车辆收集的驾驶信息而生成的;以及第二多个映射的导航特征,第二多个映射的导航特征是基于先前从在第二方向上沿着至少一个道路路段行驶的第二多个车辆收集的驾驶信息而生成的,其中第二方向与第一方向相反,并且其中第一多个映射的导航特征与第二多个映射的导航特征在公共坐标系内被关联。该方法还包含:当主车辆在第一方向上沿着至少一个道路路段行驶时,从与主车辆相关联的相机接收表示主车辆的环境的第一多个图像和第二多个图像;基于对第一多个图像中的至少一个图像的分析并基于第一多个映射的导航特征,来确定主车辆的第一导航动作;以及使与主车辆相关联的一个或多个致动器实施第一导航动作。该方法还包含:基于对第二多个图像的分析并基于第二多个映射的导航特征,来确定主车辆的第二导航动作;以及使与主车辆相关联的一个或多个致动器实施第二导航动作。
12.在一个实施例中,用于创建用于导航自主或部分自主车辆的地图的导航系统可以包含至少一个处理器。该处理器可以被编程为:从跨多个车辆组分布的、穿过道路交叉口的多个车辆中的每一个车辆接收驾驶信息,道路交叉口包含多个入口和与多个入口中的每一个入口相关联的多个出口。每个车辆组可以包含穿过与道路交叉口相关联的不同入口-出口组合的一个或多个车辆。来自多个车辆中的每一个车辆的驾驶信息可以包含与通过对当特定车辆穿过道路交叉口的特定入口-出口组合时捕获的图像进行分析而检测到的对象相关联的三维特征点。该处理器还可以被编程为:对于入口-出口组合中的每一个入口-出口组合,对准从穿过该入口-出口组合的一个或多个车辆收集的驾驶信息中接收到的三维特征点,以生成多个对准的三维特征点组,对于道路交叉口的每个入口-出口组合存在一个对准的三维特征点组;将多个对准的三维特征点组中的每一个对准的三维特征点组中的一个或多个三维特征点与多个对准的三维特征点组当中的每个其他对准的三维特征点组中所包含的一个或多个三维特征点进行关联;以及基于多个对准的三维特征点组中的每一个对准的三维特征点组中的一个或多个三维特征点与每个其他对准的三维特征点组中所包含的一个或多个三维特征点的关联来生成稀疏地图,稀疏地图包含与道路交叉口的入口-出口组合中的每一个入口-出口组合相关联的至少一个目标轨迹。
13.在一个实施例中,用于创建用于导航自主或部分自主车辆的地图的方法可以包含:从跨多个车辆组分布的、穿过道路交叉口的多个车辆中的每一个车辆接收驾驶信息,道
路交叉口包含多个入口和与多个入口中的每一个入口相关联的多个出口。每个车辆组包含穿过与道路交叉口相关联的不同入口-出口组合的一个或多个车辆。来自多个车辆中的每一个车辆的驾驶信息包含与通过对当特定车辆穿过道路交叉口的特定入口-出口组合时捕获的图像进行分析而检测到的对象相关联的三维特征点。该方法还可以包含:对于入口-出口组合中的每一个入口-出口组合,对准从穿过该入口-出口组合的一个或多个车辆收集的驾驶信息中接收到的三维特征点,以生成多个对准的三维特征点组,对于道路交叉口的每个入口-出口组合存在一个对准的三维特征点组;将多个对准的三维特征点组中的每一个对准的三维特征点组中的一个或多个三维特征点与多个对准的三维特征点组当中的每个其他对准的三维特征点组中所包含的一个或多个三维特征点进行关联;以及基于多个对准的三维特征点组中的每一个对准的三维特征点组中的一个或多个三维特征点与每个其他对准的三维特征点组中所包含的一个或多个三维特征点的关联来生成稀疏地图,稀疏地图包含与道路交叉口的入口-出口组合中的每一个入口-出口组合相关联的至少一个目标轨迹。
14.在一个实施例中,基于主车辆的稀疏地图特征采集器系统可以包含至少一个处理器。该处理器可以被编程为:接收当主车辆在第一方向上沿着道路路段行驶时,由主车辆车载的前向相机捕获的第一图像,其中第一图像表示主车辆前方的环境;以及接收当主车辆在第一方向上沿着道路路段行驶时,由主车辆车载的后向相机捕获的第二图像,其中第二图像表示主车辆后方的环境。该处理器可以检测被表示在第一图像中的第一语义特征,其中第一语义特征与预定对象类型分类相关联;识别与被表示在前向相机捕获的第一图像中的第一语义特征相关联的至少一个位置描述符;检测被表示在第二图像中的第二语义特征,其中第二语义特征与预定对象类型分类相关联;以及识别与被表示在后向相机捕获的第二图像中的第二语义特征相关联的至少一个位置描述符。该处理器然后可以接收位置信息,位置信息指示第一图像被捕获时前向相机的位置并且指示第二图像被捕获时后向相机的位置;以及引起向相对于主车辆远程定位的实体传输道路路段的驾驶信息,其中驾驶信息包含:与第一语义特征相关联的至少一个位置描述符、与第二语义特征相关联的至少一个位置描述符以及位置信息。
15.在一个实施例中,用于由主车辆采集稀疏地图特征的方法可以包含:接收当主车辆在第一方向上沿着道路路段行驶时,由主车辆车载的前向相机捕获的第一图像,其中第一图像表示主车辆前方的环境;以及接收当主车辆在第一方向上沿着道路路段行驶时,由主车辆车载的后向相机捕获的第二图像,其中第二图像表示主车辆后方的环境。该方法还可以包含:检测被表示在第一图像中的第一语义特征,其中第一语义特征与预定对象类型分类相关联;识别与被表示在前向相机捕获的第一图像中的第一语义特征相关联的至少一个位置描述符;检测被表示在第二图像中的第二语义特征,其中第二语义特征与预定对象类型分类相关联;以及识别与被表示在后向相机捕获的第二图像中的第二语义特征相关联的至少一个位置描述符。该方法还可以包含:接收位置信息,位置信息指示第一图像被捕获时前向相机的位置并且指示第二图像被捕获时后向相机的位置;以及引起向相对于主车辆远程定位的实体传输道路路段的驾驶信息,其中驾驶信息包含:与第一语义特征相关联的至少一个位置描述符、与第二语义特征相关联的至少一个位置描述符以及位置信息。
16.在一个实施例中,用于创建用于导航自主或部分自主车辆的地图的稀疏地图生成
器系统可以包含至少一个处理器。该至少一个处理器可以被编程为:接收由在第一方向上行驶过道路路段的第一多个车辆传输的道路路段的第一驾驶信息;接收由在与第一方向相反的第二方向上行驶过道路路段的第二多个车辆传输的道路路段的第二驾驶信息;以及从配备有前向相机和后向相机的至少一个车辆接收道路路段的第三驾驶信息,其中第三驾驶信息包含:与基于对前向相机捕获的前向图像的分析而检测到的第一语义特征相关联的位置描述符;以及与基于对后向相机捕获的后向图像的分析而检测到的第二语义特征相关联的位置描述符。该处理器可以被编程为:至少部分地基于与基于对前向图像的分析而检测到的第一语义特征相关联的位置描述符,并且基于与基于对后向相机捕获的后向图像的分析而检测到的第二语义特征相关联的位置描述符,将第一驾驶信息和第二驾驶信息的一个或多个方面进行关联;以及至少部分地基于第一驾驶信息和第二驾驶信息的关联来生成稀疏地图,稀疏地图包含在第一方向上沿着道路路段的行驶车道的至少第一目标轨迹和在第二方向上沿着道路路段的行驶车道的至少第二目标轨迹。
17.在一个实施例中,用于创建用于导航自主或部分自主车辆的地图的方法可以包含:接收由在第一方向上行驶过道路路段的第一多个车辆传输的道路路段的第一驾驶信息;接收由在与第一方向相反的第二方向上行驶过道路路段的第二多个车辆传输的道路路段的第二驾驶信息;以及从配备有前向相机和后向相机的至少一个车辆接收道路路段的第三驾驶信息,其中第三驾驶信息包含:与基于对前向相机捕获的前向图像的分析而检测到的第一语义特征相关联的位置描述符;以及与基于对后向相机捕获的后向图像的分析而检测到的第二语义特征相关联的位置描述符。该方法还可以包含:至少部分地基于与基于对前向图像的分析而检测到的第一语义特征相关联的位置描述符,并且基于与基于对后向相机捕获的后向图像的分析而检测到的第二语义特征相关联的位置描述符,将第一驾驶信息和第二驾驶信息的一个或多个方面进行关联;以及至少部分地基于第一驾驶信息和第二驾驶信息的关联来生成稀疏地图,稀疏地图包含在第一方向上沿着道路路段的行驶车道的至少第一目标轨迹和在第二方向上沿着道路路段的行驶车道的至少第二目标轨迹。
18.在一个实施例中,基于主车辆的稀疏地图特征采集器系统可以包含至少一个处理器。该处理器可以被编程为:接收当主车辆在第一方向上沿着道路路段行驶时,由主车辆车载的前向相机捕获的第一图像,其中第一图像表示主车辆前方的环境;以及接收当主车辆在第一方向上沿着道路路段行驶时,由主车辆车载的后向相机捕获的第二图像,其中第二图像表示主车辆后方的环境。该处理器还可以被编程为:检测被表示在第一图像中的至少一个对象;识别至少一个前侧二维特征点,至少一个前侧二维特征点与被表示在第一图像中的至少一个对象相关联;检测至少一个对象在第二图像中的表示;以及识别至少一个后侧二维特征点,至少一个后侧二维特征点与被表示在第二图像中的至少一个对象相关联。该处理器还可以被编程为:接收位置信息,位置信息指示第一图像被捕获时前向相机的位置并且指示第二图像被捕获时后向相机的位置;以及引起向相对于主车辆远程定位的实体传输道路路段的驾驶信息,其中驾驶信息包含至少一个前侧二维特征点、至少一个后侧二维特征点以及位置信息。
19.在一个实施例中,用于由主车辆采集稀疏地图特征的方法可以包含:接收当主车辆在第一方向上沿着道路路段行驶时,由主车辆车载的前向相机捕获的第一图像,其中第一图像表示主车辆前方的环境;以及接收当主车辆在第一方向上沿着道路路段行驶时,由
主车辆车载的后向相机捕获的第二图像,其中第二图像表示主车辆后方的环境。该方法还可以包含:检测被表示在第一图像中的至少一个对象;识别至少一个前侧二维特征点,至少一个前侧二维特征点与被表示在第一图像中的至少一个对象相关联;检测至少一个对象在第二图像中的表示;以及识别至少一个后侧二维特征点,至少一个后侧二维特征点与被表示在第二图像中的至少一个对象相关联。该方法然后可以包含:接收位置信息,位置信息指示第一图像被捕获时前向相机的位置并且指示第二图像被捕获时后向相机的位置;以及引起向相对于主车辆远程定位的实体传输道路路段的驾驶信息,其中驾驶信息包含至少一个前侧二维特征点、至少一个后侧二维特征点以及位置信息。
20.在一个实施例中,用于创建用于导航自主或部分自主车辆的地图的稀疏地图生成器系统可以包含至少一个处理器。该处理器可以被编程为:接收由在第一方向上行驶过道路路段的第一多个车辆传输的道路路段的第一驾驶信息;接收由在与第一方向相反的第二方向上行驶过道路路段的第二多个车辆传输的道路路段的第二驾驶信息;以及从配备有前向相机和后向相机的至少一个车辆接收道路路段的第三驾驶信息,其中第三驾驶信息包含:基于对一对象在前向相机捕获的前向图像中的表示的分析而生成的至少一个前侧二维特征点;基于对对象在后向相机捕获的后向图像中的表示的分析而生成的至少一个后侧二维特征点。该处理器还可以被编程为:至少部分地基于包含在第三驾驶信息中的至少一个前侧二维特征点和至少一个后侧二维特征点,将第一驾驶信息和第二驾驶信息的一个或多个方面进行关联;以及至少部分地基于第一驾驶信息和第二驾驶信息的关联来生成稀疏地图,稀疏地图包含在第一方向上沿着道路路段的行驶车道的至少第一目标轨迹和在第二方向上沿着道路路段的行驶车道的至少第二目标轨迹。
21.在一个实施例中,用于创建用于导航自主或部分自主车辆的地图的方法可以包含:接收由在第一方向上行驶过道路路段的第一多个车辆传输的道路路段的第一驾驶信息;接收由在与第一方向相反的第二方向上行驶过道路路段的第二多个车辆传输的道路路段的第二驾驶信息;以及从配备有前向相机和后向相机的至少一个车辆接收道路路段的第三驾驶信息,其中第三驾驶信息包含:基于对一对象在前向相机捕获的前向图像中的表示的分析而生成的至少一个前侧二维特征点;基于对对象在后向相机捕获的后向图像中的表示的分析而生成的至少一个后侧二维特征点。该方法还可以包含:至少部分地基于包含在第三驾驶信息中的至少一个前侧二维特征点和至少一个后侧二维特征点,将第一驾驶信息和第二驾驶信息的一个或多个方面进行关联;以及至少部分地基于第一驾驶信息和第二驾驶信息的关联来生成稀疏地图,稀疏地图包含在第一方向上沿着道路路段的行驶车道的至少第一目标轨迹和在第二方向上沿着道路路段的行驶车道的至少第二目标轨迹。
22.与其他公开的实施例一致,非暂时性计算机可读存储介质可以存储由至少一个处理装置执行的程序指令,并且可以进行本文中所描述的任何方法。
23.前述的总体描述和下面的详细描述仅仅是示例性和说明性的,并不是对权利要求的限制。
附图说明
24.并入本公开中并构成本公开的一部分的附图图示了各种所公开的实施例。在附图中:
25.图1是与所公开的实施例一致的示例性系统的图示性表示。
26.图2a是包含与所公开的实施例一致的系统的示例性车辆的图示性侧视图表示。
27.图2b是图2a中所示的与所公开的实施例一致的车辆和系统的图示性顶视图表示。
28.图2c是包含与所公开的实施例一致的系统的车辆的另一实施例的图示性顶视图表示。
29.图2d是包含与所公开的实施例一致的系统的车辆的又一实施例的图示性顶视图表示。
30.图2e是包含与所公开的实施例一致的系统的车辆的又一实施例的图示性顶视图表示。
31.图2f是与所公开的实施例一致的示例性车辆控制系统的图示性表示。
32.图3a是与所公开的实施例一致的包含后视镜和用于车辆成像系统的用户界面的车辆的内部的图示性表示。
33.图3b是与所公开的实施例一致的被配置为定位在后视镜后面并抵靠车辆风挡的相机安装的示例的图示。
34.图3c是图3b中所示的与所公开的实施例一致的相机安装从不同的视角的图示。
35.图3d是与所公开的实施例一致的被配置为定位在后视镜后面并抵靠车辆风挡的相机安装的示例的图示。
36.图4是与所公开的实施例一致的被配置为存储用于进行一个或多个操作的指令的存储器的示例性框图。
37.图5a是示出与所公开的实施例一致的用于基于单目图像分析来引起一个或多个导航响应的示例性过程的流程图。
38.图5b是示出与所公开的实施例一致的用于在一组图像中检测一个或多个车辆和/或行人的示例性过程的流程图。
39.图5c是示出与所公开的实施例一致的用于在一组图像中检测道路标志和/或车道几何结构信息的示例性过程的流程图。
40.图5d是示出与所公开的实施例一致的用于在一组图像中检测交通灯的示例性过程的流程图。
41.图5e是示出与所公开的实施例一致的用于基于车辆路径来引起一个或多个导航响应的示例性过程的流程图。
42.图5f是示出与所公开的实施例一致的用于确定前方车辆是否正在改变车道的示例性过程的流程图。
43.图6是示出与所公开的实施例一致的用于基于立体图像分析来引起一个或多个导航响应的示例性过程的流程图。
44.图7是示出与所公开的实施例一致的用于基于三组图像的分析来引起一个或多个导航响应的示例性过程的流程图。
45.图8示出了与所公开的实施例一致的用于提供自主车辆导航的稀疏地图。
46.图9a示出了与所公开的实施例一致的道路路段的部分的多项式表示。
47.图9b示出了与所公开的实施例一致的稀疏地图中包含的在三维空间中表示特定道路路段的车辆的目标轨迹的曲线。
48.图10示出了可以包含在与所公开的实施例一致的稀疏地图中的示例地标。
49.图11a示出了与所公开的实施例一致的轨迹的多项式表示。
50.图11b和图11c示出了与所公开的实施例一致的沿着多车道道路的目标轨迹。
51.图11d示出了与所公开的实施例一致的示例道路签名(signature)轮廓(profile)。
52.图12是与所公开的实施例一致的使用从多个车辆接收的众包(crowdsourcing)数据进行自主车辆导航的系统的示意图示。
53.图13示出了与所公开的实施例一致的由多个三维样条(spline)表示的示例自主车辆道路导航模型。
54.图14示出了与所公开的实施例一致的根据组合来自多个驾驶的定位信息而生成的地图骨架(skeleton)。
55.图15示出了与所公开的实施例一致的具有作为地标的示例标志的两个驾驶的纵向对齐的示例。
56.图16示出了与所公开的实施例一致的具有作为地标的示例标志的多个驾驶的纵向对齐的示例。
57.图17是与所公开的实施例一致的用于使用相机、车辆和服务器生成驾驶数据的系统的示意图示。
58.图18是与所公开的实施例一致的用于众包稀疏地图的系统的示意图示。
59.图19是示出与所公开的实施例一致的用于生成用于沿着道路路段的自主车辆导航的稀疏地图的示例性过程的流程图。
60.图20示出了与所公开的实施例一致的服务器的框图。
61.图21示出了与所公开的实施例一致的存储器的框图。
62.图22示出了与所公开的实施例一致的对与车辆相关联的车辆轨迹进行聚类的过程。
63.图23示出了与所公开的实施例一致的可以用于自主导航的车辆导航系统。
64.图24a、图24b、图24c和图24d示出了与所公开的实施例一致的可以检测到的示例性车道标志。
65.图24e示出了与所公开的实施例一致的示例性的映射车道标志。
66.图24f示出了与所公开的实施例一致的与检测车道标志相关联的示例性异常。
67.图25a示出了与所公开的实施例一致的用于基于映射车道标志进行导航的车辆周围环境的示例性图像。
68.图25b示出了与所公开的实施例一致的基于道路导航模型中的映射车道标志的车辆横向定位校正。
69.图25c和图25d提供了使用稀疏地图中包含的映射特征沿着目标轨迹定位主车辆的定位技术的概念表示。
70.图26a是示出与所公开的实施例一致的用于映射车道标志以用于自主车辆导航的示例性过程的流程图。
71.图26b是示出与所公开的实施例一致的使用映射车道标志沿着道路路段自主导航主车辆的示例性过程的流程图。
72.图27示出了与所公开的实施例一致的可以由主车辆捕获的用于对准驾驶信息的示例图像。
73.图28示出了与所公开的实施例一致的可以由主车辆获得的示例3d点。
74.图29示出了与所公开的实施例一致的用于基于3d点云生成稀疏地图的示例系统。
75.图30示出了与所公开的实施例一致的可以针对从不同驾驶方向捕获的点执行的示例对准过程。
76.图31是示出与所公开的实施例一致的用于采集用于稀疏地图的数据的示例过程的流程图。
77.图32是示出与所公开的实施例一致的用于创建用于导航自主或部分自主车辆的地图的示例过程的流程图。
78.图33是与所公开的实施例一致的主车辆可以沿着其导航的示例道路路段的图示。
79.图34示出了与所公开的实施例一致的具有双向对准轨迹的示例稀疏地图。
80.图35是示出与所公开的实施例一致的用于导航自主或部分自主主车辆的示例过程的流程图。
81.图36a示出了与所公开的实施例一致的可以由一个或多个车辆穿过的示例交叉口。
82.图36b示出了与所公开的实施例一致的可以由主车辆行驶的交叉口的各种入口和出口组合。
83.图37示出了与所公开的实施例一致的示例性三维点,该些示例性三维点可以由主车辆在穿过交叉口时收集。
84.图38示出了与所公开的实施例一致的沿着公共目标轨迹收集的三维点的示例对准。
85.图39示出了与所公开的实施例一致的基于来自多个入口-出口组合的经过关联的3d点来生成稀疏地图的示例过程。
86.图40示出了与所公开的实施例一致的两组对准的3d点的示例对准。
87.图41是示出与所公开的实施例一致的用于创建用于导航自主或部分自主车辆的地图的示例过程的流程图。
88.图42a示出了与所公开的实施例一致的示例道路路段,其中沿着该道路路段,可以使用后向相机来对准来自多个方向的驾驶信息。
89.图42b示出了与所公开的实施例一致的可以由主车辆的前向相机捕获的示例图像。
90.图43a示出了与所公开的实施例一致的主车辆沿着道路路段捕获后向图像的示例场景。
91.图43b示出了与所公开的实施例一致的可以由主车辆拍摄的示例后向图像。
92.图44示出了与所公开的实施例一致的由在相反方向上沿着道路路段行驶的车辆捕获的驾驶信息的示例集合。
93.图45是示出与所公开的实施例一致的用于采集用于稀疏地图的数据的示例过程的流程图。
94.图46是示出与所公开的实施例一致的用于创建用于导航自主或部分自主车辆的
地图的示例过程的流程图。
95.图47是示出与所公开的实施例一致的用于采集用于稀疏地图的数据的示例过程的流程图。
96.图48是示出与所公开的实施例一致的用于创建用于导航自主或部分自主车辆的地图的示例过程的流程图。
97.图49示出了与所公开的实施例一致的用于自动生成相对于一个或多个道路路段的导航地图的示例性系统。
98.图50a、图50b和图50c示出了与公开的实施例一致的用于收集导航信息的示例性过程。
99.图51是示出与所公开的实施例一致的用于自动生成相对于一个或多个道路路段的导航地图的示例性过程的流程图。
具体实施方式
100.以下的详细描述参考附图。只要可能,在附图和以下的描述中使用相同的参考标号来指代相同或相似的部分。虽然本文描述了数个说明性实施例,但是修改、改编和其他实施方式是可能的。例如,可以对附图中示出的组件做出替换、添加或修改,并且可以通过对所公开的方法进行步骤的替换、重新排序、移除或添加,来对本文所描述的说明性方法进行修改。相应地,以下的详细描述并不限于所公开的实施例和示例。代替地,适当的范围由所附权利要求限定。
101.自主车辆概述
102.如贯穿本公开所使用的,术语“自主车辆”指代在没有驾驶员输入的情况下能够实现至少一个导航改变的车辆。“导航改变”指代车辆的转向、制动、或加速中的一个或多个改变。为了实现自主,车辆不需要是完全自动的(例如,在没有驾驶员或没有驾驶员输入的情况下完全可操作的)。相反,自主车辆包含能够在某些时间段期间在驾驶员的控制下操作并且在其他时间段期间无需驾驶员控制而操作那些车辆。自主车辆还可以包含仅控制车辆导航的一些方面的车辆,诸如转向(例如,在车辆车道限制之间维持车辆路线),但是可以将其他方面留给驾驶员(例如,制动)。在一些情况下,自主车辆可以处理车辆的制动、速度控制和/或转向中的一些或全部方面。
103.由于人类驾驶员通常依赖于可视线索和观察以便控制车辆,因此相应地建造了交通基础设施,其中车道标志、交通标志和交通灯所有都被设计为向驾驶员提供可视信息。鉴于交通基础设施的这些设计特性,自主车辆可以包含相机以及分析从车辆的环境捕获的可视信息的处理单元。可视信息可以包含,例如,可由驾驶员观察到的交通基础设施(例如,车道标志、交通标志、交通灯等)的组件以及其他障碍物(例如,其他车辆、行人、碎屑等)。此外,自主车辆还可以使用存储的信息,诸如在导航时提供车辆的环境的模型的信息。例如,车辆可以使用gps数据、传感器数据(例如,来自加速度计、速度传感器、悬架传感器等)和/或其他地图数据,以在车辆正在行驶时提供与其环境相关的信息,并且该车辆(以及其他车辆)可以使用该信息在模型上对其自身定位。
104.在本公开的一些实施例中,自主车辆可以使用在导航时(从相机、gps装置、加速度计、速度传感器、悬架传感器等)获得的信息。在其他实施例中,自主车辆可以在导航时使用
从该车辆(或其他车辆)过去的导航中获得的信息。在其他实施例中,自主车辆可以使用在导航时获得的信息和从过去的导航中获得的信息的组合。以下章节提供了与所公开的实施例一致的系统的概述,随后是与该系统一致的前向成像系统和方法的概述。以下章节公开了用于构建、使用和更新用于自主车辆导航的稀疏地图的系统和方法。
105.系统概述
106.图1是与所公开的示例性实施例一致的表示系统100的框图。系统100可以取决于特定实施方式的要求而包含各种组件。在一些实施例中,系统100可以包含处理单元110,图像获取单元120,位置传感器130,一个或多个存储器单元140、150,地图数据库160,用户界面170和无线收发器172。处理单元110可以包含一个或多个处理装置。在一些实施例中,处理单元110可以包含应用处理器180、图像处理器190或任何其他合适的处理装置。类似地,图像获取单元120可以取决于特定应用的要求而包含任何数目的图像获取装置和组件。在一些实施例中,图像获取单元120可以包含一个或多个图像捕获装置(例如,相机),诸如图像捕获装置122、图像捕获装置124和图像捕获装置126。系统100还可以将处理装置110通信地连接到图像获取装置120的数据接口128。例如,数据接口128可以包含用于将由图像获取装置120获取的图像数据传输到处理单元110的任何有线和/或无线的一个或多个链路。
107.无线收发器172可以包含一个或多个装置,其被配置为通过使用射频、红外频率、磁场或电场通过空中接口将传输交换到一个或多个网络(例如,蜂窝、互联网等)。无线收发器172可以使用任何已知的标准来传输和/或接收数据(例如,wi-fi、蓝牙智能、802.15.4、zigbee等)。这样的传输可以包含从主车辆到一个或多个远程定位的服务器的通信。这样的传输还可以包含主车辆与主车辆的环境中的一个或多个目标车辆之间(单向或双向)的通信(例如,以便于鉴于或连同在主车辆的环境中的目标车辆来协调主车辆的导航),或者甚至包含在传输车辆附近的向未指定的接收者的广播传输。
108.应用处理器180和图像处理器190两者都可以包含各种类型的基于硬件的处理装置。例如,应用处理器180和图像处理器190中的任一者或两者可以包含微处理器、预处理器(诸如图像预处理器)、图形处理器、中央处理单元(cpu)、支持电路、数字信号处理器、集成电路、存储器或者适用于运行应用和适用于图像处理和分析的任何其他类型的装置。在一些实施例中,应用处理器180和/或图像处理器190可以包含任何类型的单核或多核处理器、移动装置微控制器、中央处理单元等。可以使用各种处理装置,包含,例如,可以从诸如等制造商获得的处理器或者可以从诸如等制造商获得的处理器或者可以从诸如等制造商获得的gpu,并且可以包含各种架构(例如,x86处理器、等)。
109.在一些实施例中,应用处理器180和/或图像处理器190可以包含可从获得的任何eyeq系列处理器芯片。这些处理器设计各自包含具有本地存储体和指令集的多个处理单元。这样的处理器可以包含用于从多个图像传感器接收图像数据的视频输入,并且还可以包含视频输出能力。在一个示例中,使用在332mhz下操作的90纳米-微米技术。架构由两个浮点式超线程32位risc cpu(核)、五个视觉计算引擎(vce)、三个矢量微代码处理器丹那利(denali)64位移动ddr控制器、128位内部超音速互连(sonics interconnect)、双16位视频输入和18位视频输出控制器、16通道dma和数个外围设备组成。mips34kcpu管理这五个vce、三个vmp
tm
和dma、第二
mips34k cpu和多通道dma以及其他外围设备。这五个vce、三个和mips34k cpu可以进行多功能捆绑应用所需要的密集视觉计算。在另一个实例中,可以在所公开的实施例中使用作为第三代处理器并且比强六倍的在其他示例中,可以在所公开的实施例中使用和/或当然,任何更新后的或未来的eyeq处理装置也可以与所公开的实施例一起使用。
110.任何本文所公开的处理装置可以被配置为进行某些功能。配置处理装置(诸如任何所描述的eyeq处理器或其他控制器或微处理器)以进行某些功能可以包含计算机可执行指令的编程并使这些指令可用于处理装置以在处理装置的操作期间执行。在一些实施例中,配置处理装置可以包含直接利用架构指令对处理装置进行编程。例如,可以使用例如一个或多个硬件描述语言(hdl)来配置诸如现场可编程门阵列(fpga)、专用集成电路(asic)等的处理装置。
111.在其他实施例中,配置处理装置可以包含将可执行指令存储在操作期间处理装置可访问的存储器上。例如,处理装置在操作期间可以访问该存储器以获得并执行所存储的指令。在任一种情况下,被配置为进行本文公开的感测、图像分析和/或导航功能的处理装置表示基于硬件的专用系统,其控制主车辆的多个基于硬件的组件。
112.虽然图1描绘了包含在处理单元110中的两个分离的处理装置,但是可以使用更多或更少的处理装置。例如,在一些实施例中,可以使用单个处理装置完成应用处理器180和图像处理器190的任务。在其他实施例中,可以由两个以上的处理装置来进行这些任务。此外,在一些实施例中,系统100可以在不包含其他组件(诸如图像获取单元120)的情况下包含处理单元110中的一个或多个。
113.处理单元110可以包括各种类型的装置。例如,处理单元110可以包含各种装置,诸如控制器、图像预处理器、中央处理单元(cpu)、图形处理单元(gpu)、支持电路、数字信号处理器、集成电路、存储器或用于图像处理和分析的任何其他类型的装置。图像预处理器可以包含用于捕获、数字化和处理来自图像传感器的影像的视频处理器。cpu可以包括任何数目的微控制器或微处理器。gpu还可以包括任何数目的微控制器或微处理器。支持电路可以是本领域公知的任何数目的电路,包含高速缓存、电源,时钟和输入输出电路。存储器可以存储软件,该软件在由处理器执行时控制系统的操作。存储器可以包含数据库和图像处理软件。存储器可以包括任何数目的随机存取存储器、只读存储器、闪速存储器、磁盘驱动器、光存储装置、磁带存储装置、可移动存储装置和其他类型的存储装置。在一个实例中,存储器可以与处理单元110分离。在另一实例中,存储器可以被集成到处理单元110中。
114.每个存储器140、150可以包含软件指令,该软件指令在由处理器(例如,应用处理器180和/或图像处理器190)执行时可以控制系统100的各个方面的操作。这些存储器单元可以包含各种数据库和图像处理软件,以及经训练的系统,诸如神经网络或例如深度神经网络。存储器单元可以包含随机存取存储器(ram)、只读存储器(rom)、闪速存储器、磁盘驱动器、光存储装置、磁带存储装置、可移动存储装置和/或任何其他类型的存储装置。在一些实施例中,存储器单元140、150可以是与应用处理器180和/或图像处理器190分离的。在其他实施例中,这些存储器单元可以被集成到应用处理器180和/或图像处理器190中。
115.位置传感器130可以包含适用于确定与系统100的至少一个组件相关联的定位的
任何类型的装置。在一些实施例中,位置传感器130可以包含gps接收器。这样的接收器可以通过处理由全球定位系统卫星广播的信号来确定用户位置和速度。可以使得来自位置传感器130的位置信息对于应用处理器180和/或图像处理器190可用。
116.在一些实施例中,系统100可以包含诸如用于测量车辆200的速度的速度传感器(例如,转速表、速度计)和/或用于测量车辆200的加速度的加速度计(单轴或多轴)的组件。
117.用户界面170可以包含适用于向系统100的一个或多个用户提供信息或从系统100的一个或多个用户接收输入的任何装置。在一些实施例中,用户界面170可以包含用户输入装置,包含例如触摸屏、麦克风、键盘、指针装置、跟踪转轮、相机、旋钮、按钮等。使用这样的输入装置,用户能够通过键入指令或信息,提供语音命令,使用按钮、指针或眼跟踪能力在屏幕上选择菜单选项,或通过任何其他适用于向系统100通信信息的技术来向系统100提供信息输入或命令。
118.用户界面170可以配备有一个或多个处理装置,其被配置为向用户提供和从用户接收信息,并处理该信息以由例如应用处理器180使用。在一些实施例中,这样的处理装置可以执行指令以用于辨识和跟踪眼睛运动、接收和解释语音命令、辨识和解释在触摸屏上做出的触摸和/或手势、响应键盘输入或菜单选择等。在一些实施例中,用户界面170可以包含显示器、扬声器、触觉装置和/或用于向用户提供输出信息的任何其他装置。
119.地图数据库160可以包含用于存储对系统100有用的地图数据的任何类型的数据库。在一些实施例中,地图数据库160可以包含与各种项目在参考坐标系统中的位置相关的数据,各种项目包含道路、水特征、地理特征、商业区、感兴趣的点、餐馆、加油站等。地图数据库160不仅可以存储这样的项目的定位,还可以存储与这样的项目相关的描述符,包含例如与任何所存储的特征相关联的名称。在一些实施例中,地图数据库160可以与系统100的其他组件物理上位于一起。替代地或附加地,地图数据库160或其一部分可以相对于系统100的其他组件(例如,处理单元110)位于远处。在这样的实施例中,来自地图数据库160的信息可以通过与网络的有线或无线数据连接(例如,通过蜂窝网络和/或互联网等)而下载。在一些情况下,地图数据库160可以存储稀疏数据模型,该稀疏数据模型包含某些道路特征(例如,车道标志)或主车辆的目标轨迹的多项式表示。下面参考图8至图19讨论生成这种地图的系统和方法。
120.图像捕获装置122、124和126可以各自包含适用于从环境捕获至少一个图像的任何类型的装置。此外,可以使用任何数目的图像捕获装置来获取用于输入到图像处理器的图像。一些实施例可以仅包含单个图像捕获装置,而其他实施例可以包含两个、三个、或者甚至四个或更多个图像捕获装置。以下将参考图2b至图2e进一步描述图像捕获装置122、124和126。
121.系统100或其各种组件可以合并到各种不同的平台中。在一些实施例中,系统100可以被包含在车辆200上,如图2a所示。例如,车辆200可以配备有如上关于图1所述的系统100的处理单元110和任何其他组件。虽然在一些实施例中,车辆200可以仅配备有单个图像捕获装置(例如,相机),但是在其他实施例中,诸如结合图2b-图2e讨论的那些,可以使用多个图像捕获装置。例如,如图2a所示,车辆200的图像捕获装置122和124中的任一个可以是adas(advanced driver assistance system,高级驾驶员辅助系统)成像集的一部分。
122.作为图像获取单元120的一部分的被包含在车辆200上的图像捕获装置,可以被定
位在任何合适的定位。在一些实施例中,如图2a-图2e以及图3a-图3c所示,图像捕获装置122可以位于后视镜的附近。此位置可以提供与车辆200的驾驶员相似的视线,这可以帮助确定对驾驶员而言什么是可见和不可见的。图像捕获装置122可以被定位在靠近后视镜的任何定位,而将图像捕获装置122放置在镜子的驾驶员侧可以进一步帮助获得表示驾驶员的视场和/或视线的图像。
123.对于图像获取单元120的图像捕获装置还可以使用其他定位。例如,图像捕获装置124可以位于车辆200的保险杠上或保险杠中。这样的定位可以尤其适用于具有宽视场的图像捕获装置。位于保险杠的图像捕获装置的视线可以与驾驶员的视线不同,并且因此,保险杠图像捕获装置和驾驶员可能不总是看到相同的对象。图像捕获装置(例如,图像捕获装置122、124和126)还可以位于其他定位。例如,图像捕获装置可以位于车辆200的侧视镜中的一者或两者之上或之中、车辆200的车顶上、车辆200的引擎盖上、车辆200的后备箱上、车辆200的侧面上,安装在车辆200的任何车窗上、定位在车辆200的任何车窗的后面、或定位在车辆200的任何车窗的前面,以及安装在车辆200的前部和/或后部上的灯具中或附近等。
124.除了图像捕获装置之外,车辆200还可以包含系统100的各种其他组件。例如,处理单元110可以被包含在车辆200上,与车辆的引擎控制单元(engine control lunit,ecu)集成或分离。车辆200还可以配备有诸如gps接收器的位置传感器130,并且还可以包含地图数据库160以及存储器单元140和150。
125.如早先讨论的,无线收发器172可以通过一个或多个网络(例如,蜂窝网络、互联网等)和/或接收数据。例如,无线收发器172可以将由系统100收集的数据上传到一个或多个服务器,并且从一个或多个服务器下载数据。例如,经由无线收发器172,系统100可以接收对存储在地图数据库160、存储器140和/或存储器150中的数据的周期性或按需的更新。类似地,无线收发器172可以将来自系统100的任何数据(例如,由图像获取单元120捕获的图像、由位置传感器130或其他传感器、车辆控制系统接收的数据等)和/或由处理单元110处理的任何数据上传到一个或多个服务器。
126.系统100可以基于隐私等级设定将数据上传到服务器(例如,上传到云)。例如,系统100可以实现隐私等级设定,以规定或限制传送到服务器的、可以唯一地识别车辆和/或车辆的驾驶员/所有者的数据(包含元数据)的类型。这样的设定可以由用户经由例如无线收发器172来设置,可以由出厂默认设定、或由无线收发器172接收的数据来初始化。
127.在一些实施例中,系统100可以根据“高”隐私等级上传数据,并且在设置设定的情况下,系统100可以传输数据(例如,与路途相关的定位信息、捕获的图像等),而不带有任何关于特定车辆和/或驾驶员/所有者的细节。例如,当根据“高”隐私设定来上传数据时,系统100可以不包含车辆标识编号(vehicle identification number,vin)或者车辆的驾驶员或所有者的名字,并且可以代替地传输数据,诸如,捕获的图像和/或与路途相关的受限的定位信息。
128.可以预期其他隐私等级。例如,系统100可以根据“中间”隐私等级向服务器传输数据,并且可以包含在“高”隐私等级下不包含的附加信息,诸如车辆的品牌和/或型号和/或车辆类型(例如,乘用车、运动型多用途车、卡车等)。在一些实施例中,系统100可以根据“低”隐私等级上传数据。在“低”隐私等级设定的情况下,系统100可以上传数据,并且包含足以唯一地识别具体车辆、所有者/驾驶员和/或车辆行驶过的部分或整个路途的信息。这
样的“低”隐私等级数据可以包含以下中的一个或多个:例如vin、驾驶员/所有者名字、出发之前车辆的始发点、车辆的意图目的地、车辆的品牌和/或型号、车辆类型等。
129.图2a是与所公开的实施例一致的示例性车辆成像系统的图示性侧视图表示。图2b是图2a中所示的实施例的图示性顶视图图示。如图2b所示,所公开的实施例可以包含车辆200,该车辆200在其车体中包含系统100,该系统100具有定位在车辆200的后视镜附近和/或靠近驾驶员的第一图像捕获装置122、定位在车辆200的保险杠区域(例如,保险杠区域210中的一个)之上或之中的第二图像捕获装置124、以及处理单元110。
130.如图2c所示,图像捕获装置122和124两者可以都定位在车辆200的后视镜附近和/或靠近驾驶员。此外,虽然图2b和图2c示出了两个图像捕获装置122和124,应理解的是,其他实施例可以包含两个以上的图像捕获装置。例如,在图2d和2e所示的实施例中,第一图像捕获装置122、第二图像捕获装置124和第三图像捕获装置126被包含在车辆200的系统100中。
131.如图2d所示,图像捕获装置122可以定位在车辆200的后视镜附近和/或靠近驾驶员,并且图像捕获装置124和126可以定位在车辆200的保险杠区域(例如,保险杠区域210中的一个)之上或之中。并且如图2e所示,图像捕获装置122、124和126可以定位在车辆200的后视镜附近和/或靠近驾驶员座。所公开的实施例不限于任何特定数目和配置的图像捕获装置,并且图像捕获装置可以定位在车辆200内或车辆200上的任何适当的定位中。
132.应理解的是,所公开的实施例不限于车辆,并且可以被应用在其他情景中。还应理解,所公开的实施例不限于特定类型的车辆200,并且可以适用于所有类型的车辆,包含汽车、卡车、拖车和其他类型的车辆。
133.第一图像捕获装置122可以包含任何合适类型的图像捕获装置。图像捕获装置122可以包含光轴。在一个实例中,图像捕获装置122可以包含具有全局快门的aptina m9v024 wvga传感器。在其他实施例中,图像捕获装置122可以提供1280
×
960像素的分辨率,并且可以包含滚动快门(rolling shutter)。图像捕获装置122可以包含各种光学元件。在一些实施例中,可以包含一个或多个镜头,例如用于为图像捕获装置提供期望的焦距和视场。在一些实施例中,图像捕获装置122可以与6毫米镜头或12毫米镜头相关联。在一些实施例中,如图2d所示,图像捕获装置122可以被配置为捕获具有期望的视场(fov)202的图像。例如,图像捕获装置122可以被配置为具有常规fov,诸如在40度至56度的范围内,包含46度fov、50度fov、52度fov,或更大的fov。替代地,图像捕获装置122可以被配置为具有在23度至40度的范围内的窄fov,诸如28度fov或36度fov。另外,图像捕获装置122可以被配置为具有在100度至180度的范围内的宽fov。在一些实施例中,图像捕获装置122可以包含广角保险杠相机或者具有高达180度fov的相机。在一些实施例中,图像捕获装置122可以是7。2m像素图像捕获装置,其纵横比为约2:1(例如,hxv=3800
×
1900像素),具有约100度的水平fov。这样的图像捕获装置可以被用来代替三个图像捕获装置配置。由于显著的镜头失真,在图像捕获装置使用径向对称镜头的实施方式中,这样的图像捕获装置的垂直fov可显著地小于50度。例如,这样的镜头可以不是径向对称的,这将允许在100度水平fov情况下垂直fov大于50度。
134.第一图像捕获装置122可以获取关于与车辆200相关联的场景的多个第一图像。可以获取多个第一图像中的每个作为一系列图像扫描线,其可以使用滚动快门来捕获。每个
扫描线可以包含多个像素。
135.第一图像捕获装置122可以具有与第一系列图像扫描线中的每个的获取相关联的扫描速率。扫描速率可以指图像传感器可以获取与包含在特定扫描线中的每个像素相关联的图像数据的速率。
136.图像捕获装置122、124和126可以含有任何合适的类型和数目的图像传感器,例如,包含ccd传感器或cmos传感器等。在一个实施例中,cmos图像传感器可以与滚动快门一起采用,使得一次一个地读取一行中的每个像素,并且行的扫描在逐行的基础上进行,直到已捕获整个图像帧。在一些实施例中,可以相对于帧从顶部到底部顺序地捕获行。
137.在一些实施例中,本文公开的图像捕获装置中的一个或多个(例如,图像捕获装置122、124和126)可以构成高分辨率成像器,并且可以具有大于5m像素、7m像素、10m像素或更大像素的分辨率。
138.滚动快门的使用可能导致不同行中的像素在不同的时间被曝光和捕获,这可能引起捕获的图像帧中的歪斜和其他图像伪影。另一方面,当图像捕获装置122被配置为利用全局或同步快门操作时,所有像素可以以相同量的时间并且在共同曝光时段期间被曝光。结果,从采用全局快门的系统收集的帧中的图像数据表示在特定时间的整个fov(诸如fov 202)的快照。相比之下,在滚动快门应用中,在不同的时间,帧中的每行被曝光并且数据被捕获。因此,在具有滚动快门的图像捕获装置中,移动对象可能出现失真。这种现象将在下面更详细地描述。
139.第二图像捕获装置124和第三图像捕获装置126可以是任何类型的图像捕获装置。类似于第一图像捕获装置122,图像捕获装置124和126中的每个可以包含光轴。在一个实施例中,图像捕获装置124和126中的每个可以包含具有全局快门的aptina m9v024 wvga传感器。替代地,图像捕获装置124和126中的每个可以包含滚动快门。类似于图像捕获装置122,图像捕获装置124和126可以被配置为包含各种镜头和光学元件。在一些实施例中,与图像捕获装置124和126相关联的镜头可以提供fov(诸如fov 204和206),其等于或窄于与图像捕获装置122相关联的fov(诸如fov 202)。例如,图像捕获装置124和126可以具有40度、30度、26度、23度、20度或更小的fov。
140.图像捕获装置124和126可以获取关于与车辆200相关联的场景的多个第二图像和第三图像。可以获取多个第二和第三图像中的每个作为第二和第三系列图像扫描线,其可以使用滚动快门来捕获。每个扫描线或行可以具有多个像素。图像捕获装置124和126可以具有与包含在第二和第三系列中的每个图像扫描线的获取相关联的第二和第三扫描速率。
141.每个图像捕获装置122、124和126可以定位在相对于车辆200的任何合适的位置和朝向处。可以选择图像捕获装置122、124和126的相对位置以帮助将从图像捕获装置获取的信息融合在一起。例如,在一些实施例中,与图像捕获装置124相关联的fov(诸如fov 204)可能部分地或完全地和与图像捕获装置122相关联的fov(例如fov 202)以及与图像捕获装置126相关联的fov(例如fov 206)重叠。
142.图像捕获装置122、124和126可以位于车辆200上的任何合适的相对高度处。在一个实例中,在图像捕获装置122、124和126之间可以存在高度差,其可以提供足够的视差信息以使能立体分析。例如,如图2a所示,两个图像捕获装置122和124在不同的高度处。例如,在图像捕获装置122、124和126之间还可以存在横向位移差,以为处理单元110的立体分析
给出附加的视差信息。横向位移的差异可以用dx表示,如图2c和图2d所示。在一些实施例中,图像捕获装置122、124和126之间可以存在前向或后向位移(例如,范围位移)。例如,图像捕获装置122可以位于图像捕获装置124和/或图像捕获装置126后面0.5到2米或更远处。这样的类型的位移可以使得图像捕获装置中的一个能够覆盖其他(一个或多个)图像捕获装置的潜在盲点。
143.图像捕获装置122可以具有任何合适的分辨率能力(例如,与图像传感器相关联的像素的数目),并且与图像捕获装置122相关联的(一个或多个)图像传感器的分辨率可以比与图像捕获装置124和126相关联的(一个或多个)图像传感器的分辨率更高、更低、或者与之相同。在一些实施例中,与图像捕获装置122和/或图像捕获装置124和126相关联的(一个或多个)图像传感器可以具有640
×
480、1024
×
768、1280
×
960的分辨率,或任何其他合适的分辨率。
144.帧速率(例如,图像捕获装置在继续捕获与下一图像帧相关联的像素数据之前获取一个图像帧的一组像素数据的速率)可以是可控的。与图像捕获装置122相关联的帧速率可以比与图像捕获装置124和126相关联的帧速率更高、更低或与之相同。与图像捕获装置122、124和126相关联的帧速率可以取决于可能影响帧速率的定时的各种因素。例如,图像捕获装置122、124和126中的一个或多个可以包含可选择的像素延迟时段,其在获取与图像捕获装置122、124和/或126中的图像传感器的一个或多个像素相关联的图像数据之前或之后施加。通常,可以根据用于该装置的时钟速率来获取对应于每个像素的图像数据(例如,每个时钟循环一个像素)。此外,在包含滚动快门的实施例中,图像捕获装置122、124和126中的一个或多个可以包含可选择的水平消隐时段,其在获取与图像捕获装置122、124和/或126中的图像传感器的一行像素相关联的图像数据之前或之后施加。此外,图像捕获装置122、124和/或126中的一个或多个可以包含可选择的垂直消隐时段,其在获取与图像捕获装置122、124和126的图像帧相关联的图像数据之前或之后施加。
145.这些定时控制可以使能与图像捕获装置122、124和126相关联的帧速率的同步,即便每个的线扫描速率不同。此外,如将在下面更详细地讨论的,这些可选择的定时控制以及其他因素(例如,图像传感器分辨率、最大线扫描速率等)可以使能从图像捕获装置122的fov与图像捕获装置124和126的一个或多个fov重叠的区域的图像捕获的同步,即便图像捕获装置122的视场不同于图像捕获装置124和126的fov。
146.图像捕获装置122、124和126中的帧速率定时可以取决于相关联的图像传感器的分辨率。例如,假定对于两个装置,线扫描速率类似,如果一个装置包含具有640
×
480的分辨率的图像传感器,并且另一个装置包含具有1280
×
960的分辨率的图像传感器,则需要更多的时间来从具有更高分辨率的传感器获取一帧图像数据。
147.可以影响图像捕获装置122、124和126中的图像数据获取的定时的另一个因素是最大线扫描速率。例如,从被包含在图像捕获装置122、124和126中的图像传感器获取一行图像数据将需要某个最低时间量。假定没有添加像素延迟时段,则用于获取一行图像数据的此最低时间量将与用于特定装置的最大线扫描速率相关。提供较高的最大线扫描速率的装置比具有较低的最大线扫描速率的装置具有提供更高的帧速率的潜在性。在一些实施例中,图像捕获装置124和126中的一个或多个可以具有高于与图像捕获装置122相关联的最大线扫描速率的最大线扫描速率。在一些实施例中,图像捕获装置124和/或126的最大线扫
描速率可以是图像捕获装置122的最大线扫描速率的1.25、1.5、1.75或2倍或更多倍。
148.在另一个实施例中,图像捕获装置122、124和126可以具有相同的最大线扫描速率,但图像捕获装置122可以以小于或等于其最大扫描扫描速率的扫描速率而操作。系统可以被配置为使得图像捕获装置124和126中的一个或多个以等于图像捕获装置122的线扫描速率的线扫描速率进行操作。在其他实例中,系统可以被配置为使得图像捕获装置124和/或图像捕获装置126的线扫描速率可以是图像捕获装置122的线扫描速率的1.25、1.5、1.75、或2倍或更多倍。
149.在一些实施例中,图像捕获装置122、124和126可以是不对称的。换言之,它们可包含具有不同视场(fov)和焦距的相机。例如,图像捕获装置122、124和126的视场可以包含关于车辆200的环境的任何期望的区域。在一些实施例中,图像捕获装置122、124和126中的一个或多个可以被配置为从在车辆200前面、车辆200后面、车辆200的侧面、或它们的组合的环境获取图像数据。
150.此外,与每个图像捕获装置122、124和/或126相关联的焦距可以是可选择的(例如,通过包含适当的镜头等),使得每个装置在相对于车辆200的期望的距离范围处获取对象的图像。例如,在一些实施例中,图像捕获装置122、124和126可以获取离车辆几米之内的接近对象的图像。图像捕获装置122、124和126还可以被配置为获取离车辆更远的范围处(例如,25米、50米、100米、150米或更远)的对象的图像。此外,图像捕获装置122、124和126的焦距可以被选择以使得一个图像捕获装置(例如,图像捕获装置122)可以获取相对靠近车辆(例如,在10米内或20米内的)对象的图像,而其他图像捕获装置(例如,图像捕获装置124和126)可以获取离车辆200较远的(例如,大于20米、50米、100米、150米等的)对象的图像。
151.根据一些实施例,一个或多个图像捕获装置122、124和126的fov可以具有广角。例如,具有140度的fov可能是有利的,尤其是对于可以被用于捕获车辆200附近的区域的图像的图像捕获装置122、124和126。例如,图像捕获装置122可以被用于捕获车辆200的右侧或左侧的区域的图像,并且在这样的实施例中,可能期望图像捕获装置122具有宽fov(例如,至少140度)。
152.与图像捕获装置122、124和126中的每个相关联的视场可以取决于相应的焦距。例如,随着焦距增加,对应的视场减小。
153.图像捕获装置122、124和126可以被配置为具有任何合适的视场。在一个特定示例中,图像捕获装置122可以具有46度的水平fov,图像捕获装置124可以具有23度的水平fov,并且图像捕获装置126可以具有在23度和46度之间的水平fov。在一个特定示例中,图像捕获装置122可以具有52度的水平fov,图像捕获装置124可以具有26度的水平fov,并且图像捕获装置126可以具有在26度和52度之间的水平fov。在一些实施例中,图像捕获装置122的fov与图像捕获装置124和/或图像捕获装置126的fov的比率可以从1.5到2.0变化。在其他实施例中,该比率可以在1.25与2.25之间变化。
154.系统100可以被配置为使得图像捕获装置122的视场至少部分地或完全地与图像捕获装置124和/或图像捕获装置126的视场重叠。在一些实施例中,系统100可以被配置为使得图像捕获装置124和126的视场例如落入(例如,窄于)图像捕获装置122的视场并且与图像捕获装置122的视场共享共同的中心。在其他实施例中,图像捕获装置122、124和126可
以捕获相邻的fov,或者可以在它们fov中具有部分重叠。在一些实施例中,图像捕获装置122、124和126的视场可以对齐,以使得较窄fov图像捕获装置124和/或126的中心可以位于较宽fov装置122的视场的下半部分中。
155.图2f是与所公开的实施例一致的示例性车辆控制系统的图示性表示。如图2f所指示的,车辆200可以包含油门调节系统220、制动系统230和转向系统240。系统100可以经过一个或多个数据链路(例如,用于传输数据的任何有线和/或无线链路)向油门调节系统220、制动系统230和转向系统240中的一个或多个提供输入(例如,控制信号)。例如,基于对由图像捕获装置122、124和/或126获取的图像的分析,系统100可以向油门调节系统220、制动系统230和转向系统240中的一个或多个提供控制信号以导航车辆200(例如,通过引起加速、转向、变道(lane shift)等)。此外,系统100可以从油门调节系统220、制动系统230和转向系统240中的一个或多个接收输入,该输入指示车辆200的运行条件(例如,速度、车辆200是否正在制动和/或转向等)。以下结合图4至图7提供进一步的细节。
156.如图3a所示,车辆200还可以包含用于与车辆200的驾驶员或乘客进行交互的用户界面170。例如,车辆应用中的用户界面170可以包含触摸屏320、旋钮330、按钮340和麦克风350。车辆200的驾驶员或乘客还可以使用手柄(例如,位于车辆200的转向杆上或附近,包含例如转向信号手柄)、按钮(例如,位于车辆200的方向盘上)等与系统100交互。在一些实施例中,麦克风350可以定位为与后视镜310相邻。类似地,在一些实施例中,图像捕获装置122可以位于靠近后视镜310。在一些实施例中,用户界面170还可以包含一个或多个扬声器360(例如,车辆音频系统的扬声器)。例如,系统100可以经由扬声器360提供各种通知(例如,警报)。
157.图3b至图3d是与所公开的实施例一致的被配置为定位在后视镜(例如,后视镜310)后面并抵靠车辆风挡的示例性相机安装370的图示。如图3b所示,相机安装370可以包含图像捕获装置122、124和126。图像捕获装置124和126可以定位在遮光板380的后面,遮光板380可以与车辆风挡齐平(flush)并且包含薄膜和/或防反射材料的合成物。例如,遮光板380可以被定位为使得遮挡相对于具有匹配斜面的车辆风挡对齐。在一些实施例中,图像捕获装置122、124和126中的每个可以定位在遮光板380的后面,例如在图3d中所描绘的。所公开的实施例不限于图像捕获装置122、124和126、相机安装370和遮光板380的任何特定配置。图3c是图3b所示的相机安装370从前面视角的图示。
158.如受益于本公开的本领域技术人员将理解的,可以对前述所公开的实施例做出许多变化和/或修改。例如,并非所有组件对于系统100的操作是必要的。此外,在提供所公开的实施例的功能时,任何组件可以位于系统100的任何适当的部分中并且组件可以被重新布置成各种配置。因此,前述配置是示例性的,并且不管上述讨论的配置如何,系统100都可以提供广阔范围的功能以分析车辆200的周围并响应于该分析而导航车辆200。
159.如在下面更详细讨论的并且根据各种所公开的实施例,系统100可以提供各种关于自主驾驶和/或驾驶员辅助技术的特征。例如,系统100可以分析图像数据、位置数据(例如,gps定位信息)、地图数据、速度数据和/或来自包含在车辆200中的传感器的数据。系统100可以从例如图像获取单元120、位置传感器130以及其他传感器收集数据用于分析。此外,系统100可以分析所收集的数据以确定车辆200是否应当采取某个动作,并且然后在没有人工干预的情况下自动采取所确定的动作。例如,当车辆200在没有人工干预的情况下导
航时,系统100可以自动地控制车辆200的制动、加速、和/或转向(例如,通过向油门调节系统220、制动系统230和转向系统240中的一个或多个传送控制信号)。此外,系统100可以分析所收集的数据,并且基于对所收集的数据的分析向车辆乘员发出警告和/或警报。下面提供关于系统100提供的各种实施例的附加的细节。
160.前向多成像系统
161.如上所讨论的,系统100可以提供使用多相机系统的驾驶辅助功能。多相机系统可以使用面向车辆前方的一个或多个相机。在其他实施例中,多相机系统可以包含面向车辆的侧方或面向车辆的后方的一个或多个相机。在一个实施例中,例如系统100可以使用双相机成像系统,其中,第一相机和第二相机(例如,图像捕获装置122和124)可以被定位在车辆(例如,车辆200)的前面和/或侧面处。第一相机可以具有大于、小于、或部分重叠于第二相机的视场的视场。此外,第一相机可以连接到第一图像处理器以进行对由第一相机提供的图像的单目图像分析,并且第二相机可以连接到第二图像处理器以进行对由第二相机提供的图像的单目图像分析。第一和第二图像处理器的输出(例如,处理后的信息)可以被组合。在一些实施例中,第二图像处理器可以从第一相机和第二相机两者接收图像以执行立体分析。在另一个实施例中,系统100可以使用三相机成像系统,其中每个相机具有不同的视场。因此,这样的系统可以基于从位于车辆前方和侧方的不同距离处的对象导出的信息来做出决定。对单目图像分析的参考可以参考基于从单个视点(例如,从单个相机)捕获的图像进行图像分析的实例。立体图像分析可以参考基于使用图像捕获参数的一个或多个变化而捕获的两个或更多个图像而进行图像分析的实例。例如,适合于进行立体图像分析的捕获的图像可以包含从两个或更多个不同位置、从不同视野、使用不同焦距以及与视差信息一起等捕获的图像。
162.例如,在一个实施例中,系统100可以使用图像捕获装置122、124和126来实现三相机配置。在这样的配置中,图像捕获装置122可以提供窄视场(例如,34度或从大约20度至45度的范围选择的其他值等),图像捕获装置124可以提供宽视场(例如,150度或从大约100度至大约180度的范围选择的其他值),并且图像捕获装置126可以提供中间的视场(例如,46度或从大约35度至大约60度的范围选择的其他值)。在一些实施例中,图像捕获装置126可以作为主相机或基本相机。图像捕获装置122、124和126可以被定位在后视镜310的后面并且基本上并排定位(例如,相距6厘米)。此外,在一些实施例中,如以上所讨论的,图像捕获装置122、124和126中的一个或多个可以被安装在与车辆200的风挡齐平的遮光板380的后面。这样的遮挡可以用于最小化来自汽车内部的任何反射对图像捕获装置122、124和126的影响。
163.在另一个实施例中,如以上结合图3b和图3c所讨论的,宽视场相机(例如,上述示例中的图像捕获装置124)可以被安装得低于窄视场相机和主视场相机(例如,上述示例中的图像捕获装置122和126)。这样的配置可以提供来自宽视场相机的自由视线。为减少反射,相机可以被安装得靠近车辆200的风挡,并且在相机上可以包含偏振器以衰减(damp)反射光。
164.三相机系统可以提供某些性能特性。例如,一些实施例可以包含由一个相机基于来自另一个相机的检测结果来验证对象的检测的能力。在上面讨论的三相机配置中,处理单元110可以包含例如三个处理装置(例如,三个如以上所讨论的eyeq系列处理器芯片),其
中每个处理装置专用于处理由图像捕获装置122、124和126中的一个或多个捕获的图像。
165.在三相机系统中,第一处理装置可以从主相机和窄视场相机两者接收图像,并且进行对窄fov相机的视觉处理,例如以检测其他车辆、行人、车道标志、交通标志、交通灯以及其他道路对象。此外,第一处理装置可以计算来自主相机和窄相机的图像之间的像素的视差,并且创建车辆200的环境的3d重建。然后第一处理装置可以组合3d重建与3d地图数据、或组合3d重建与基于来自另一个相机的信息计算出的3d信息。
166.第二处理装置可以从主相机接收图像并进行视觉处理以检测其他车辆、行人、车道标志、交通标志、交通灯和其他道路对象。此外,第二处理装置可以计算相机位移,并且基于该位移计算连续图像之间的像素的视差,并创建场景的3d重建(例如,运动恢复结构(structure from motion))。第二处理装置可以将基于3d重建的运动恢复结构传送到第一处理装置以与立体3d图像进行组合。
167.第三处理装置可以从宽fov相机接收图像,并处理该图像以检测车辆、行人、车道标志、交通标志、交通灯和其他道路对象。第三处理装置可以进一步执行附加的处理指令来分析图像,以识别图像中移动的对象,诸如正改变车道的车辆、行人等。
168.在一些实施例中,使得基于图像的信息的流被独立地捕获和处理可以提供用于在系统中提供冗余的机会。这样的冗余可以包含例如使用第一图像捕获装置和从该装置处理的图像来验证和/或补充通过从至少第二图像捕获装置捕获和处理图像信息而获得的信息。
169.在一些实施例中,系统100可以使用两个图像捕获装置(例如,图像捕获装置122和124)来为车辆200提供导航辅助,并使用第三图像捕获装置(例如,图像捕获装置126)来提供冗余和验证从其他两个图像捕获装置接收的数据的分析。例如,在这样的配置中,图像捕获装置122和124可以提供用于由系统100进行立体分析的图像以用于导航车辆200,而图像捕获装置126可以提供用于由系统100进行单目分析的图像,以提供冗余和基于从图像捕获装置122和/或图像捕获装置124捕获的图像而获得的信息的验证。换言之,可以认为图像捕获装置126(和对应的处理装置)提供冗余子系统,以用于提供对从图像捕获装置122和124导出的分析的检查(例如,以提供自动紧急制动(aeb)系统)。此外,在一些实施例中,可基于从一个或多个传感器接收的信息(例如,雷达、激光雷达、声学传感器、从车辆外部的一个或多个收发器接收的信息等)来补充冗余和接收到的数据的验证。
170.本领域的技术人员将认识到,上述相机配置、相机放置、相机数目、相机定位等仅为示例。在不脱离所公开的实施例的范围下,这些组件和关于整个系统描述的其他组件可以在各种不同的配置中被组装和使用。关于使用多相机系统以提供驾驶员辅助和/或自主车辆功能的进一步的细节如下。
171.图4是存储器140和/或存储器150的示例性功能性框图,该存储器140和/或存储器150可以被存储/被编程指令以用于进行与本公开实施例一致的一个或多个操作。尽管以下指代存储器140,但是本领域技术人员将认识到指令可以存储在存储器140和/或150中。
172.如图4所示,存储器140可以存储单目图像分析模块402、立体图像分析模块404、速度和加速度模块406以及导航响应模块408。所公开的实施例不限于存储器140的任何特定配置。此外,应用处理器180和/或图像处理器190可以执行包含在存储器140中的任何模块402、404、406和408所存储的指令。本领域技术人员将理解,在以下讨论中对处理单元110的
参考可以分离地或共同地指代应用处理器180和图像处理器190。相应地,可以由一个或多个处理装置来进行任何以下过程的步骤。
173.在一个实施例中,单目图像分析模块402可以存储指令(诸如计算机视觉软件),当由处理单元110执行该指令时,对由图像捕获装置122、124和126中的一个获取的一组图像进行单目图像分析。在一些实施例中,处理单元110可以将来自一组图像的信息与附加的感觉信息(例如,来自雷达、激光雷达等的信息)组合以进行单目图像分析。如以下结合图5a至图5d所描述的,单目图像分析模块402可以包含用于在一组图像内检测该组特征的指令,所述特征诸如车道标志、车辆、行人、道路标志、高速公路出口匝道、交通灯、危险对象以及与车辆的环境相关联的任何其他特征。基于该分析,系统100(例如,经由处理单元110)可以引起车辆200中的一个或多个导航响应,诸如转向、变道、加速度的改变等,如以下结合导航响应模块408所讨论的。
174.在一个实施例中,立体图像分析模块404可以存储指令(诸如,计算机视觉软件),当由处理单元110执行该指令时,对由从任何图像捕获装置122、124和126中选择的图像捕获装置的组合而获取的第一组和第二组图像进行立体图像分析。在一些实施例中,处理单元110可以将来自第一组和第二组图像的信息与附加的感觉信息(例如,来自雷达的信息)组合以进行立体图像分析。例如,立体图像分析模块404可以包含指令,该指令用于基于由图像捕获装置124获取的第一组图像和由图像捕获装置126获取的第二组图像而进行立体图像分析。如下面结合图6所描述的,立体图像分析模块404可以包含指令,该指令用于检测第一组和第二组图像内的一组特征,诸如车道标志、车辆、行人、道路标志、高速公路出口匝道、交通灯、危险对象等。基于该分析,处理单元110可以引起车辆200中的一个或多个导航响应,诸如转向、变道、加速度的改变等,如以下结合导航响应模块408所讨论的。此外,在一些实施例中,立体图像分析模块404可以实现与经训练的系统(诸如神经网络或深度神经网络)或未经训练的系统相关联的技术,诸如系统可以被配置为使用计算机视觉算法来检测和/或标记在从中捕获和处理感觉信息的环境中的对象。在一个实施例中,立体图像分析模块404和/或其他图像处理模块可以被配置为使用经训练和未经训练系统的组合。
175.在一个实施例中,速度和加速度模块406可以存储软件,该软件被配置为分析从车辆200中的一个或多个计算和机电装置接收的数据,该一个或多个计算和机电装置被配置为引起车辆200的速度和/或加速度的改变。例如,处理单元110可以执行与速度和加速度模块406相关联的指令,以基于从执行单目图像分析模块402和/或立体图像分析模块404导出的数据来计算车辆200的目标速度。这样的数据可以包含,例如目标位置,速度和/或加速度,车辆200相对于附近车辆、行人或道路对象的位置和/或速度,车辆200相对于道路的车道标志的位置信息等。另外,处理单元110可以基于感觉输入(例如,来自雷达的信息)和来自车辆200的其他系统(诸如油门调节系统220、制动系统230和/或转向系统240)的输入来计算车辆200的目标速度。基于计算出的目标速度,处理单元110可以向车辆200的油门调节系统220、制动系统230和/或转向系统的240传输电信号,以通过例如物理地压下制动器或松开车辆200的加速器来触发速度和/或加速度的改变。
176.在一个实施例中,导航响应模块408可以存储软件,该软件可由处理单元110执行以基于从执行单目图像分析模块402和/或立体图像分析模块404导出的数据来确定期望的导航响应。这样的数据可以包含与附近的车辆、行人和道路对象相关联的位置和速度信息,
车辆200的目标位置信息等。此外,在一些实施例中,导航响应可以(部分地或完全地)基于地图数据、车辆200的预定位置、和/或车辆200与从单目图像分析模块402和/或立体图像分析模块404的执行检测到的一个或多个对象之间的相对速度或相对加速度。导航响应模块408还可以基于感觉输入(例如,来自雷达的信息)和来自车辆200的其他系统(诸如车辆200的油门调节系统220、制动系统230和转向系统240)的输入确定期望的导航响应。基于期望的导航响应,处理单元110可以向车辆200的油门调节系统220、制动系统230和转向系统240传输电信号,以通过例如转动车辆200的方向盘来实现预定角度的旋转,从而触发期望的导航响应。在一些实施例中,处理单元110可以使用导航响应模块408的输出(例如,期望的导航响应)作为执行速度和加速度模块406的输入,以用于计算车辆200的速度的改变。
177.此外,本文公开的任何模块(例如,模块402、404和406)可以实现与经训练的系统(诸如神经网络或深度神经网络)或未经训练的系统相关联的技术。
178.图5a是示出与所公开的实施例一致的用于基于单目图像分析来引起一个或多个导航响应的示例性过程500a的流程图。在步骤510处,处理单元110可以经由在处理单元110和图像获取单元120之间的数据接口128接收多个图像。例如,包含在图像获取单元120中的相机(诸如具有视场202的图像捕获装置122)可以捕获车辆200的前方(例如,或者车辆的侧方或后方)区域的多个图像并通过数据连接(例如,数字、有线、usb、无线、蓝牙等)将它们传输到处理单元110。在步骤520处,处理单元110可以执行单目图像分析模块402来分析该多个图像,如以下结合图5b至图5d所进一步详细描述的。通过进行该分析,处理单元110可以检测在该组图像内的一组特征,诸如车道标志、车辆、行人、道路标志、高速公路出口匝道、交通灯等。
179.在步骤520处,处理单元110还可以执行单目图像分析模块402来检测各种道路危险,诸如例如卡车轮胎的部件、倒下的道路标志、松散货物、小动物等。道路危险可能在结构、形状、大小和颜色上变化,这可能使这样的危险的检测更加困难。在一些实施例中,处理单元110可以执行单目图像分析模块402来对多个图像进行多帧分析以检测道路危险。例如,处理单元110可以估计连续图像帧之间的相机运动,并计算帧之间的像素中的视差来构建道路的3d地图。然后,处理单元110可以使用该3d地图来检测道路表面、以及存在于道路表面上的危险。
180.在步骤530处,处理单元110可以执行导航响应模块408以基于在步骤520处执行的分析和如以上结合图4所描述的技术来引起一个或多个导航响应。导航响应可以包含例如转向、变道、制动、加速度的改变等。在一些实施例中,处理单元110可以使用从执行速度和加速度模块406导出的数据来引起该一个或多个导航响应。此外,多个导航响应可以同时地、按照顺序地、或以其任何组合而发生。例如,处理单元110可以通过例如按照顺序地向车辆200的转向系统240和油门调节系统220传输控制信号,使得车辆200转变一个车道然后加速。替代地,处理单元110可以通过例如同时向车辆200的制动系统230和转向系统240传输控制信号,使得车辆200在变道的同时制动。
181.图5b是示出与所公开的实施例一致的用于在一组图像中检测一个或多个车辆和/或行人的示例性过程500b的流程图。处理单元110可以执行单目图像分析模块402来实现过程500b。在步骤540处,处理单元110可以确定表示可能的车辆和/或行人的一组候选对象。例如,处理单元110可以扫描一个或多个图像,将该图像与一个或多个预定图案比较,并且
在每个图像内识别可能含有感兴趣的对象(例如,车辆、行人或其部分)的可能的定位。预定图案可以以实现高“伪命中”率和低“漏掉”率的这样的方式来设计。例如,处理单元110可以将低的相似性阈值用在预定图案以将候选对象识别为可能的车辆或行人。这样做可以允许处理单元110减少漏掉(例如,未识别出)表示车辆或行人的候选对象的可能性。
182.在步骤542处,处理单元110可以基于分类标准过滤该组候选对象以排除某些候选(例如,不相关或较不相关的对象)。可以从与存储在数据库(例如,存储在存储器140中的数据库)中的对象类型类别相关联的各种属性导出这样的标准。属性可以包含对象形状、尺寸、纹理、位置(例如,相对于车辆200)等。因此,处理单元110可以使用一组或多组标准来从该组候选对象中拒绝伪候选。
183.在步骤544处,处理单元110可以分析多帧图像,以确定在该组候选对象中的对象是否表示车辆和/或行人。例如,处理单元110可以跨连续帧来跟踪检测到的候选对象并累积与检测到的对象相关联的逐帧数据(例如,大小、相对于车辆200的位置等)。此外,处理单元110可以估计检测到的对象的参数并将该对象的逐帧位置数据与预测的位置比较。
184.在步骤546处,处理单元110可以为检测到的对象构建一组测量。这样的测量可以包含例如与检测到的对象相关联的位置、速度和加速度值(相对于车辆200)。在一些实施例中,处理单元110可以基于使用一系列基于时间的观察的诸如卡尔曼滤波器或线性二次估计(lqe)的估计技术和/或基于对于不同对象类别(例如,汽车、卡车、行人、自行车、道路标志等)可用的建模数据,来构建该测量。卡尔曼滤波器可以基于对象的比例的测量,其中该比例测量与要碰撞的时间(例如,车辆200到达对象的时间量)成比例。因此,通过进行步骤540至546,处理单元110可以识别在该组捕获图像内出现的车辆和行人,并导出与该车辆和行人相关联的信息(例如,位置、速度、大小)。基于该识别和所导出的信息,处理单元110可以引起车辆200中的一个或多个导航响应,如以上结合图5a所描述的。
185.在步骤548处,处理单元110可以进行对一个或多个图像的光流分析,以减少检测到“伪命中”和漏掉表示车辆或行人的候选对象的可能性。光流分析可以指代,例如在一个或多个图像中分析相对于车辆200的、与其他车辆和行人相关联的并且区别于道路表面运动的运动图案。处理单元110可以通过跨越在不同时间捕获到的多个图像帧观察对象的不同位置,来计算候选对象的运动。处理单元110可以使用该位置和时间值作为用于计算候选对象的运动的数学模型的输入。因此,光流分析可以提供检测车辆200附近的车辆和行人的另一种方法。处理单元110可以结合步骤540至546进行光流分析,以提供用于检测车辆和行人的冗余,并提高系统100的可靠性。
186.图5c是示出与所公开的实施例一致的用于在一组图像中检测道路标志和/或车道几何结构信息的示例性过程500c的流程图。处理单元110可以执行单目图像分析模块402来实现过程500c。在步骤550处,处理单元110可以通过扫描一个或多个图像来检测一组对象。为了检测车道标志、车道几何结构信息以及其他相关的道路标志的路段,处理单元110可以过滤该组对象以排除被确定为不相关的对象(例如,小坑洼、小石块等)。在步骤552处,处理单元110可以将在步骤550中检测到的属于相同的道路标志或车道标志的路段分组在一起。基于该分组,处理单元110可以产生表示检测到的路段的模型,诸如数学模型。
187.在步骤554处,处理单元110可以构建与检测到的路段相关联的一组测量。在一些实施例中,处理单元110可以创建检测到的路段从图像平面到现实世界平面上的投影。可以
使用具有与诸如检测到的道路的位置、斜率、曲率和曲率导数的物理属性对应的系数的三次多项式来表征该投影。在生成投影时,处理单元110可以考虑道路表面的改变,以及与车辆200相关的俯仰(pitch)和滚转速率(roll rate)。此外,处理单元110可以通过分析道路表面上存在的位置和运动线索来对道路标高进行建模。此外,处理单元110可以通过跟踪一个或多个图像中的一组特征点来估计与车辆200相关联的俯仰和滚转速率。
188.在步骤556处,处理单元110可以通过例如跨连续图像帧跟踪检测到的路段并累积与检测到的路段相关联的逐帧数据来进行多帧分析。由于处理单元110进行多帧分析,在步骤554构建的该组测量可以变得更可靠并且与越来越高的置信度水平相关联。因此,通过进行步骤550、552、554和556,处理单元110可以识别在该组捕获图像中出现的道路标志并导出车道几何结构信息。基于该识别和所导出的信息,处理单元110可以引起车辆200中的一个或多个导航响应,如以上结合图5a所描述的。
189.在步骤558处,处理单元110可以考虑附加的信息源,以进一步产生车辆200的在其周围的环境中的安全模型。处理单元110可以使用安全模型来限定系统100可以以安全方式执行车辆200的自主控制的上下文。为产生该安全模型,在一些实施例中,处理单元110可以考虑其他车辆的位置和运动、检测到的路缘和护栏、和/或从地图数据(诸如来自地图数据库160的数据)提取的一般道路形状描述。通过考虑附加的信息源,处理单元110可以提供用于检测道路标志和车道几何结构的冗余,并增加系统100的可靠性。
190.图5d是示出与所公开的实施例一致的用于在一组图像中检测交通灯的示例性过程500d的流程图。处理单元110可以执行单目图像分析模块402来实现过程500d。在步骤560处,处理单元110可以扫描该组图像,并识别出现在图像中的可能含有交通灯的定位处的对象。例如,处理单元110可以过滤所识别的对象以构建一组候选对象,而排除不可能对应于交通灯的那些对象。可以基于与交通灯相关联的各种属性来完成过滤,诸如形状、尺寸、纹理、位置(例如,相对于车辆200)等。这样的属性可以基于交通灯和交通控制信号的多个示例,并存储在数据库中。在一些实施例中,处理单元110可以对反映可能的交通灯的该组候选对象进行多帧分析。例如,处理单元110可以跨连续图像帧跟踪候选对象,估计候选对象的现实世界位置,并过滤掉那些移动的对象(其不可能是交通灯)。在一些实施例中,处理单元110可以对候选对象进行颜色分析,并识别出现在可能的交通灯内的检测到的颜色的相对位置。
191.在步骤562处,处理单元110可以分析交叉口的几何结构。分析可以基于以下各项的任意组合:(i)在车辆200的任一侧检测到的车道数,(ii)在道路上检测到的标志(例如箭头标志),以及(iii)从地图数据(例如来自地图数据库160的数据)中提取的交叉口的描述。处理单元110可以使用从执行单目分析模块402导出的信息来进行分析。此外,处理单元110可以确定在步骤560检测到的交通灯和在车辆200附近出现的车道之间的对应性。
192.在步骤564处,随着车辆200接近交叉口,处理单元110可以更新与所分析的交叉口几何结构和检测到的交通灯相关联的置信度水平。例如,被估计为出现在交叉口处的交通灯的数目与实际出现在交叉口处的交通灯的数目比较可以影响置信度水平。因此,基于该置信度水平,处理单元110可以将控制委托给车辆200的驾驶员以便改善安全条件。通过进行步骤560、562和564,处理单元110可以识别出现在该组捕获图像内的交通灯,并分析交叉口几何结构信息。基于该识别和分析,处理单元110可以引起车辆200中的一个或多个导航
响应,如以上结合图5a所描述的。
193.图5e是示出与所公开的实施例一致的用于基于车辆路径来引起车辆200中的一个或多个导航响应的示例性过程500e的流程图。在步骤570处,处理单元110可以构建与车辆200相关联的初始车辆路径。车辆路径可以使用以坐标(x,z)表达的一组点来表示,并且该组点中两个点之间的距离di可以落入1至5米的范围中。在一个实施例中,处理单元110可以使用诸如左道路多项式和右道路多项式的两个多项式来构建初始车辆路径。处理单元110可以计算该两个多项式之间的几何中点,并且将被包含在得到的车辆路径中的每个点偏移预定的偏移(例如,智能车道偏移),如果有的话(零偏移可以对应于在车道的中间行驶)。该偏移可以在垂直于在车辆路径中的任何两点之间的路段的方向上。在另一个实施例中,处理单元110可以使用一个多项式和估计的车道宽度,来将车辆路径的每个点偏移估计的车道宽度的一半加上预定偏移(例如,智能车道偏移)。
194.在步骤572处,处理单元110可以更新在步骤570构建的车辆路径。处理单元110可以使用更高的分辨率来重建在步骤570构建的车辆路径,以使得表示车辆路径的该组点中两个点之间的dk小于如上所述的距离di。例如,该距离dk可以落入0.1至0.3米的范围中。处理单元110可以使用抛物线样条算法(parabolic spline algorithm)重建车辆路径,这可以产生对应于车辆路径的总长度的累积距离矢量s(即,基于表示车辆路径的该组点)。
195.在步骤574处,处理单元110可以基于在步骤572处构建的更新后的车辆路径来确定前视点(look-ahead point)(以坐标表达为(x
l
,z
l
))。处理单元110可以从累积距离矢量s提取前视点,并且该前视点可以与前视距离和前视时间相关联。前视距离可以具有范围为从10米至20米的下限,可以被计算为车辆200的速度和前视时间的乘积。例如,随着车辆200的速度下降,前视距离也可以减小(例如,直到它到达下限)。前视时间的范围可以从0.5到1.5秒,可以与关联于引起车辆200中的导航响应的诸如航向误差(heading error)跟踪控制环路的一个或多个控制环路的增益成反比。例如,该航向误差跟踪控制环路的增益可以取决于偏航率(yaw rate)环路、转向致动器环路、汽车横向动力学等的带宽。因此,航向误差跟踪控制环路的增益越高,前视时间越短。
196.在步骤576处,处理单元110可以基于在步骤574确定的前视点来确定航向误差和偏航率命令。处理单元110可以通过计算前视点的反正切,例如arctan(x
l
/z
l
)来确定航向误差。处理单元110可以将横摆角速率命令确定为航向误差和高水平控制增益的乘积。如果前视距离不在下限处,则高水平控制增益可以等于:(2/前视时间)。否则,高水平控制增益可以等于:(2
×
车辆200的速度/前视距离)。
197.图5f是示出与所公开的实施例一致的用于确定前方车辆是否正在改变车道的示例性过程500f的流程图。在步骤580处,处理单元110可以确定与前方车辆(例如,在车辆200前方行驶的车辆)相关联的导航信息。例如,处理单元110可以使用以上结合图5a和图5b所描述的技术来确定前方车辆的位置、速度(例如,方向和速度)和/或加速度。处理单元110还可以使用以上结合图5e所描述的技术来确定一个或多个道路多项式、前视点(与车辆200相关联)和/或追踪轨迹(例如,描述由前方车辆所采取的路径的一组点)。
198.在步骤582处,处理单元110可以分析在步骤580确定的导航信息。在一个实施例中,处理单元110可以计算追踪轨迹和道路多项式之间的距离(例如,沿着该轨迹)。如果沿着该轨迹的这个距离的变化超过预定的阈值(例如,在直路上0.1至0.2米,在适度弯曲道路
上0.3至0.4米,以及在急转弯道路上0.5至0.6米),则处理单元110可以确定前方车辆很可能正在改变车道。在检测到多个车辆在车辆200前方行驶的情形中,处理单元110可以比较与每个车辆相关联的追踪轨迹。基于该比较,处理单元110可以确定追踪轨迹与其他车辆的追踪轨迹不匹配的车辆很可能正在改变车道。处理单元110可以附加地将(与前方车辆相关联的)追踪轨迹的曲率与前方车辆正在其中行驶的道路路段的期望曲率相比较。该期望曲率可以从地图数据(例如,来自地图数据库160的数据)、从道路多项式、从其他车辆的追踪轨迹、从关于道路现有知识等提取。如果追踪轨迹的曲率和道路路段的期望曲率的差异超过预定的阈值,则处理单元110可以确定前方车辆很可能正在改变车道。
199.在另一个实施例中,处理单元110可以在具体时间段(例如,0.5至1.5秒)将前方车辆的瞬时位置与前视点(与车辆200相关联)相比较。如果前方车辆的瞬时位置与前视点之间的距离在该具体时间段期间变化,并且变化的累积总和超过预定阈值(例如,在直路上0.3至0.4米,在适度弯曲道路上0.7至0.8米,以及在急转弯道路上1.3至1.7米),则处理单元110可以确定前方车辆很可能正在改变车道。在另一个实施例中,处理单元110可以通过将沿着追踪轨迹行驶的横向距离与该追踪路径的期望曲率相比较,来分析该追踪轨迹的几何结构。可以根据计算确定预期的曲率半径:(δ
z2
δ
x2
)/2/(δ
x
),其中δ
x
表示横向行驶的距离和δz表示的纵向行驶的距离。如果行驶的横向距离和期望曲率之间的差异超过预定阈值(例如,500至700米),则处理单元110可以确定前方车辆很可能正在改变车道。在另一个实施例中,处理单元110可以分析前方车辆的位置。如果前方车辆的位置遮挡了道路多项式(例如,前车覆盖在道路多项式的上方),则处理单元110可以确定前方车辆很可能正在改变车道。在前方车辆的位置是使得在前方车辆的前方检测到另一车辆并且这两个车辆的追踪轨迹不平行的情况下,处理单元110可以确定(较近的)前方车辆很可能正在改变车道。
200.在步骤584,处理单元110可以基于在步骤582进行的分析来确定前方车辆200是否正在改变车道。例如,处理单元110可以基于在步骤582进行的各个分析的加权平均来做出该确定。在这样的方案下,例如,由处理单元110基于特定类型的分析做出的前方车辆很可能正在改变车道的决定可以被分配值“1”(以及“0”用来表示前方车辆不太可能正在改变车道的确定)。在步骤582处进行的不同分析可以被分配不同的权重,并且所公开的实施例不限于分析和权重的任何特定组合。
201.图6是示出与所公开的实施例一致的用于基于立体图像分析来引起一个或多个导航响应的示例性过程600的流程图。在步骤610处,处理单元110可以经由数据接口128接收第一和第二多个图像。例如,被包含在图像获取单元120的相机(诸如具有视场202和204的图像捕获装置122和124)可以捕获在车辆200前方的区域的第一和第二多个图像,并经过数字连接(例如,usb、无线、蓝牙等)将它们传输到处理单元110。在一些实施例中,处理单元110可以经由两个或更多个数据接口接收该第一和第二多个图像。所公开的实施例不限于任何特定的数据接口配置或协议。
202.在步骤620处,处理单元110可以执行立体图像分析模块404来进行对第一和第二多个图像的立体图像分析,以创建在车辆前方的道路的3d地图并检测图像内的特征,诸如车道标志、车辆、行人、道路标志、高速公路出口匝道、交通灯、道路危险等。可以以与上面结合图5a至5d描述的步骤类似的方式进行立体图像分析。例如,处理单元110可以执行立体图像分析模块404以在第一和第二多个图像内检测候选对象(例如,车辆、行人、道路标志、交
通灯、道路危险等),基于各种标准过滤掉候选对象的子集,并进行多帧分析、构建测量,以及为剩余的候选对象确定置信度水平。在进行上述步骤时,处理单元110可以考虑来自第一和第二多个图像两者的信息,而不是仅考虑来自一组图像的信息。例如,处理单元110可以分析出现在第一和第二多个图像两者中的候选对象的像素级数据(或来自捕获图像的两个流中的其他数据子集)的差异。作为另一个示例,处理单元110可以通过观察对象在多个图像中的一个出现而未在另一个图像中出现,或相对于出现在两个图像流中的对象可能存在的其他差异,来估计候选对象(例如,相对于车辆200)的位置和/或速度。例如,可以基于与出现在图像流的一个或两者中的对象相关联的轨迹、位置、移动特性等特征,来确定相对于车辆200的位置、速度和/或加速度。
203.在步骤630处,处理单元110可以执行导航响应模块408,以基于在步骤620进行的分析和如以上结合图4所描述的技术而引起车辆200中的一个或多个导航响应。导航响应可以包含例如转向、变道、加速度的改变、速度的改变、制动等。在一些实施例中,处理单元110可以使用从执行速度和加速度模块406导出的数据来引起该一个或多个导航响应。此外,多个导航响应可以同时地、按照顺序地、或以其任何组合而发生。
204.图7是示出与所公开的实施例一致的用于基于三组图像的分析来引起一个或多个导航响应的示例性过程700的流程图。在步骤710处,处理单元110可以经由数据接口128接收第一、第二和第三多个图像。例如,被包含在图像获取单元120的相机(诸如具有视场202、204和206的图像捕获装置122、124和126)可以捕获在车辆200前方和/或侧方的区域的第一、第二和第三多个图像,并且经过数字连接(例如,usb、无线、蓝牙等)将它们传输到处理单元110。在一些实施例中,处理单元110可以经由三个或更多个数据接口接收第一、第二和第三多个图像。例如,图像捕获装置122、124、126中的每个可以具有用于向处理单元110通信数据的相关联的数据接口。所公开的实施例不限于任何特定的数据接口配置或协议。
205.在步骤720处,处理单元110可以分析该第一、第二和第三多个图像以检测图像内的特征,诸如车道标志、车辆、行人、道路标志、高速公路出口匝道、交通灯、道路危险等。该分析可以以类似于以上结合图5a-图5d和图6所描述的步骤的方式来进行。例如,处理单元110可以对第一、第二和第三多个图像中的每个进行单目图像分析(例如,经由单目图像分析模块402的执行以及基于以上结合图5a至图5d所描述的步骤)。替代地,处理单元110可对第一和第二多个图像、第二和第三多个图像、和/或第一和第三多个图像进行立体图像分析(例如,经由立体图像分析模块404的执行以及基于以上结合图6所描述的步骤)。可以组合对应于第一、第二和/或第三多个图像的分析的处理后的信息。在一些实施例中,处理单元110可以进行单目和立体图像分析的组合。例如,处理单元110可以对第一多个图像进行单目图像分析(例如,经由单目图像分析模块402的执行)并且对第二和第三多个图像进行立体图像分析(例如,经由立体图像分析模块404的执行)。图像捕获装置122、124和126——包含它们各自的定位和视场202、204和206——的配置可以影响对第一、第二和第三多个图像进行的分析的类型。所公开的实施例不限于图像捕获装置122、124和126的特定配置或对第一、第二和第三多个图像进行的分析的类型。
206.在一些实施例中,处理单元110可以基于在步骤710和720所获取和分析的图像对系统100进行测试。这样的测试可以提供对于图像获取装置122、124和126的某些配置的系统100的整体性能的指示符。例如,处理单元110可以确定“伪命中”(例如,系统100不正确地
确定车辆或行人的存在的情况)和“漏掉”的比例。
207.在步骤730处,处理单元110可以基于从第一、第二和第三多个图像中的两个导出的信息来引起车辆200中的一个或多个导航响应。对第一、第二和第三多个图像中的两个的选择可以取决于各种因素,诸如例如在多个图像的每个中检测到的对象的数目、类型和大小。处理单元110还可以基于图像质量和分辨率、在图像中反映的有效视场、捕获的帧的数目、一个或多个感兴趣的对象实际出现在帧中的程度(例如,对象出现的帧的百分比、每个这样的帧中出现的对象的比例)等来进行选择。
208.在一些实施例中,处理单元110可以通过确定从一个图像源导出的信息与从其他图像源导出的信息的相一致的程度,选择从第一、第二和第三多个图像中的两个导出的信息。例如,处理单元110可以将从图像捕获装置122、124和126中的每个导出的处理后的信息组合(无论通过单目分析、立体分析、还是两者的任何组合),并确定在从图像捕获装置122、124和126的每个捕获到的图像之间相一致的视觉指示符(例如,车道标志、检测到的车辆及其定位和/或路径、检测到的交通灯等)。处理单元110还可以排除在捕获到的图像之间不一致的信息(例如,正改变车道的车辆、指示车辆太靠近车辆200的车道模型等)。因此,处理单元110可以基于确定相一致和不一致的信息,来选择从第一、第二和第三多个图像中的两个导出的信息。
209.导航响应可以包含例如转向、变道、制动、加速度的改变等。处理单元110可以基于在步骤720所进行的分析和如以上结合图4所描述的技术来引起一个或多个导航响应。处理单元110还可以使用从执行速度和加速度模块406导出的数据来引起一个或多个导航响应。在一些实施例中,处理单元110可以基于在车辆200与在第一、第二和第三多个图像的任一者内检测到的对象之间的相对位置、相对速度和/或相对加速度来引起一个或多个导航响应。多个导航响应可以同时地、按顺序地或以其任何组合而发生。
210.用于自主车辆导航的稀疏道路模型
211.在一些实施例中,所公开的系统和方法可以使用用于自主车辆导航的稀疏地图。具体地,稀疏地图可以用于沿着道路路段的自主车辆导航。例如,稀疏地图可以在不存储和/或更新大量数据的情况下为导航自主车辆提供足够的信息。如下文更详细讨论的,自主车辆可以基于一个或多个存储的轨迹使用稀疏地图来导航一条或多条道路。
212.用于自主车辆导航的稀疏地图
213.在一些实施例中,所公开的系统和方法可以生成用于自主车辆导航的稀疏地图。例如,稀疏地图可以在不需要过多的数据存储或数据传输速率的情况下为导航提供足够的信息。如下文更详细讨论的,车辆(其可以是自主车辆)可以使用稀疏地图来导航一条或多条道路。例如,在一些实施例中,稀疏地图可以包含与道路和沿着道路的潜在地标相关的数据,这些数据对于车辆导航来说可能是足够的,但是也表现出小的数据足迹(footprint)。例如,下面详细描述的稀疏数据地图与包含详细地图信息(诸如沿着道路收集的图像数据)的数字地图相比,可能需要显著更少的存储空间和数据传输带宽。
214.例如,稀疏数据地图可以存储沿着道路的优选车辆路径的三维多项式表示,而不是存储道路路段的详细表示。这些路径可能需要非常少的数据存储空间。此外,在所描述的稀疏数据地图中,地标可以被识别并被包含在稀疏地图道路模型中以帮助导航。这些地标可以以适合于使能车辆导航的任何间距被定位,但是在一些情况下,这些地标不需要以高
密度和短间距被识别并被包含在模型中。相反,在一些情况下,基于间距开至少50米、至少100米、至少500米、至少1千米或至少2千米的地标的导航是可能的。如将在其他章节中更详细讨论的,稀疏地图可以基于由配备有各种传感器和装置(诸如图像捕获装置、全球定位系统传感器、运动传感器等)的车辆在该车辆沿着道路行驶时收集或测量的数据来生成。在一些情况下,稀疏地图可以基于在一个或多个车辆沿着特定道路多次驾驶期间收集的数据来生成。使用一个或多个车辆的多次驾驶生成稀疏地图可以被称为“众包”稀疏地图。
215.与所公开的实施例一致,自主车辆系统可以使用用于导航的稀疏地图。例如,所公开的系统和方法可以分配稀疏地图用于为自主车辆生成道路导航模型,并且可以使用稀疏地图和/或生成的道路导航模型沿着道路路段导航自主车辆。与本公开一致的稀疏地图可以包含一个或多个三维轮廓,这些三维轮廓可以表示自主车辆在它们沿着相关联的道路路段移动时可以穿过(traverse)的预定轨迹。
216.与本公开一致的稀疏地图还可以包含表示一个或多个道路特征的数据。这样的道路特征可以包含辨识的地标、道路签名轮廓以及在车辆导航中有用的任何其他道路相关特征。与本公开一致的稀疏地图可以基于包含在稀疏地图中的相对少量的数据来使能车辆的自主导航。例如,稀疏地图的所公开的实施例可以需要相对小的存储空间(并且当稀疏地图的部分被传输到车辆时需要相对小的带宽),但是仍然可以充分地提供自主车辆导航,而不是包含道路的详细表示,诸如路缘、道路曲率、与道路路段相关联的图像、或详细描述与道路路段相关联的其他物理特征的数据。在一些实施例中,可以通过存储需要少量数据但仍然使能够自主导航的道路相关元素的表示来实现所公开的稀疏地图的小数据足迹,这将在下面进一步详细讨论。
217.例如,所公开的稀疏地图可以存储车辆可以沿着道路遵循的一个或多个轨迹的多项式表示,而不是存储道路的各个方面的详细表示。因此,使用所公开的稀疏地图,可以沿着特定道路路段导航车辆,而不是存储(或必须传输)关于道路的物理性质的细节以使能沿着道路的导航,在某些情况下,不必解释道路的物理方面,而是通过将其行驶的路径与沿着特定道路路段的轨迹(例如,多项式样条)对齐。以这种方式,可以主要基于存储的轨迹(例如,多项式样条)来导航车辆,与涉及道路图像、道路参数、道路布局等的存储的方法相比,该存储的轨迹可以需要少得多的存储空间。
218.除了存储的沿着道路路段的轨迹的多项式表示之外,所公开的稀疏地图还可以包含可以表示道路特征的小数据对象。在一些实施例中,小数据对象可以包含数字签名,该数字签名从沿着道路路段行驶的车辆上的传感器(例如,相机或其他传感器,诸如悬架传感器)获得的数字图像(或数字信号)中导出。相对于由传感器获取的信号,数字签名可以具有减小的大小。在一些实施例中,数字签名可以被创建为与分类器功能兼容,该分类器功能被配置为例如在后续驾驶期间从由传感器获取的信号中检测和识别道路特征。在一些实施例中,可以创建数字签名,使得数字签名具有尽可能小的足迹,同时保留基于道路特征的图像(或者如果所存储的签名不是基于图像和/或包含其他数据,则是由传感器生成的数字信号)将道路特征与所存储的签名相关联或匹配的能力,该道路特征的图像由后续沿相同道路路段行驶的车辆上的相机捕获。
219.在一些实施例中,数据对象的大小可以进一步与道路特征的唯一性相关联。例如,对于可由车辆上的相机检测的道路特征,并且其中车辆上的相机系统耦合到分类器,该分
类器能够将对应于该道路特征的图像数据区分为与特定类型的道路特征(例如,道路标志)相关联,并且其中这种道路标志在该区域中是本地唯一的(例如,附近没有相同的道路标志或相同类型的道路标志),存储指示道路特征的类型及其定位的数据可以是足够的。
220.如下面将进一步详细讨论的,道路特征(例如,沿着道路路段的地标)可以被存储为小数据对象,该小数据对象可以以相对较少的字节来表示道路特征,同时提供足够的信息用于辨识和使用这样的特征进行导航。在一个示例中,道路标志可以被识别为车辆的导航可以基于的辨识的地标。道路标志的表示可以被存储在稀疏地图中,以包含例如指示地标的类型(例如,停车标志)的几个字节的数据和指示地标的定位(例如,坐标)的几个字节的数据。基于地标的这种轻数据(data-light)表示的导航(例如,使用足以基于地标定位、辨识和导航的表示)可以提供与稀疏地图相关联的期望等级的导航功能,而不会显著增加与稀疏地图相关联的数据开销。地标(和其他道路特征)的这种精简表示可以利用包含在这种车辆上的被配置为检测、识别和/或分类特定道路特征的传感器和处理器。
221.例如,当给定区域中的标志或者甚至特定类型的标志是本地唯一的(例如,当没有其他标志或者没有相同类型的其他标志时),稀疏地图可以使用指示地标的类型(标志或者特定类型的标志)的数据,并且在导航(例如,自主导航)期间当自主车辆上的相机捕获包含标志(或特定类型的标志)的区域的图像时,处理器可以处理图像,检测标志(如果确实存在于图像中),将图像分类为标志(或特定类型的标志),并将图像的定位与存储在稀疏地图中的标志的定位相关联。
222.稀疏地图可以包含沿着道路路段识别的对象的任何合适的表示。在一些情况下,对象可以指语义对象或非语义对象。语义对象可以包含,例如,与预定类型分类相关联的对象。该类型分类在减少描述在环境中辨识的语义对象所需的数据的量的方面可以是有用的,这可以在以下两种阶段是有益处的:采集阶段(例如,减少与将驾驶信息从多个采集车辆传送到服务器的带宽使用相关联的成本)以及导航阶段期间(例如,地图数据的减少可以加速地图图块(tile)从服务器到导航车辆的传送,并且还可以减少与这种传送的带宽使用相关联的成本)。语义对象分类类型可以被分配给预期沿着道路路段会遇到的任何类型的对象或特征。
223.语义对象还可以被划分为两个或更多个逻辑组。例如,在一些情况下,一组语义对象类型可以与预定尺寸相关联。这种语义对象可以包含某些限速标志、让行标志、并道标志、停车标志、交通灯、道路上的方向箭头、井盖,或可以与标准大小相关联的任何其他类型的对象。由这种语义对象提供的一个好处是表示或完全限定该对象可以需要非常少的数据。例如,如果限速大小的标准化大小是已知的,那么采集车辆可以只需要识别(通过对捕获的图像的分析)限速标志的存在(辨识的类型)以及检测到的限速标志的位置的指示(例如,标志的中心或标志的某个角在捕获图像中的2d位置(或者,替代地,在真实世界坐标中的3d位置)),来为服务器侧的地图生成提供足够的信息。在2d图像位置被传输到服务器的情况下,也可以传输与该捕获图像相关联的位置(该标志是在该位置处被检测到的),从而服务器可以确定该标志的真实世界位置(例如,通过使用来自一个或多个采集车辆的多个捕获图像的运动恢复结构(structure from motion)技术)。即使利用这种有限的信息(仅需要几个字节来限定每个检测到的对象),服务器也可以基于从一个或多个采集车辆接收的类型分类(表示限速标志)以及检测到的标志的位置信息,来构建包含完全表示的限速标
志的地图。
224.语义对象还可以包含不与某些标准化特性相关联的其他辨识的对象或特征类型。这些对象或特征可包含坑洼、柏油接缝、灯杆、非标准化标志、路缘石、树、树枝或具有一个或多个可变特性(例如,可变尺寸)的任何其他类型的辨识对象类型。在这种情况下,除了向服务器传输检测到的对象或特征类型(例如,坑洼、杆等)的指示以及检测到的对象或特征的位置信息之外,采集车辆还可以传输该对象或特征的大小的指示。该大小可以用2d图像尺寸(例如,用边界框或一个或多个尺寸值)或真实世界尺寸(通过运动结构(structure inmotion)计算、基于lidar或radar系统输出、基于经训练的神经网络输出等来确定)来表示。
225.非语义对象或特征可以包含任何可检测到的对象或特征,这些对象或特征落在已辨识的类别或类型之外,但是仍然可以在地图生成中提供有价值的信息。在一些情况下,这种非语义特征可以包含:建筑物的检测到的角或建筑物的检测到的窗户的角、道路附近的独特石头或对象、道路路肩中的混凝土飞溅物或任何其他可检测到的对象或特征。在检测到这种对象或特征时,一个或多个采集车辆可以向地图生成服务器传输与检测到的对象/特征相关联的一个或多个点(2d图像点或3d现实世界点)的定位。附加地,可以为捕获图像中的包含检测到的对象或特征的区域生成经压缩或经简化的图像片段(例如,图像哈希)。该图像哈希可以基于预定图像处理算法来计算,并且可以形成检测到的非语义对象或特征的有效签名。这种签名对于相对于包含非语义特征或对象的稀疏地图的导航可以是有用的,因为穿过道路的车辆可以应用与用于生成图像哈希的算法类似的算法,以便确认/验证已映射非语义特征或对象在捕获图像中的存在。使用这种技术,非语义特征可以增加稀疏地图的丰富度(例如,增强它们在导航中的有用性),而不会增加显著的数据开销。
226.如上所述,目标轨迹可以存储在稀疏地图中。这些目标轨迹(例如,3d样条)可以表示道路的每个可用车道、通过交叉口的每个有效路径、用于并道和出口等的优选或推荐路径。除了目标轨迹,还可以检测、采集其他道路特征,并以代表性样条的形式将其合并到稀疏地图中。这种特征可以包含例如路缘、车道标记、路缘石、护栏或沿着道路或道路路段延伸的任何其他对象或特征。
227.生成稀疏地图
228.在一些实施例中,稀疏地图可以包含沿着道路路段延伸的道路表面特征的至少一个线表示以及与该道路路段相关联的多个地标。在某些方面,稀疏地图可以经由“众包”来生成,例如,通过对当一个或多个车辆穿过道路路段时获取的多个图像进行图像分析。
229.图8示出了一个或多个车辆(例如车辆200(其可以是自主车辆))可以访问以用于提供自主车辆导航的稀疏地图800。稀疏地图800可以被存储在存储器中,诸如存储器140或150中。这种存储器装置可以包含任何类型的非暂时性存储装置或计算机可读介质。例如,在一些实施例中,存储器140或150可以包含硬盘驱动器、光盘、闪速存储器、基于磁的存储器装置、基于光的存储器装置等。在一些实施例中,稀疏地图800可以存储在数据库(例如,地图数据库160)中,该数据库可以存储在存储器140或150或其他类型的存储装置中。
230.在一些实施例中,稀疏地图800可以存储在车辆200上提供的存储装置或非暂时性计算机可读介质上(例如,包含在车辆200上的导航系统中的存储装置)。车辆200上提供的处理器(例如,处理单元110)可以访问存储在车辆200上提供的存储装置或计算机可读介质
中的稀疏地图800,以便在车辆穿过道路路段时生成用于引导自主车辆200的导航指令。
231.然而,稀疏地图800不需要相对于车辆被本地存储。在一些实施例中,稀疏地图800可以存储在存储装置或计算机可读介质上,在与车辆200或与车辆200相关联的装置通信的远程服务器上提供该存储装置或计算机可读介质。车辆200上提供的处理器(例如,处理单元110)可以从远程服务器接收稀疏地图800中包含的数据,并且可以执行用于引导车辆200的自主驾驶的数据。在这样的实施例中,远程服务器可以存储稀疏地图800的全部或仅其一部分。相应地,在车辆200上和/或在一个或多个附加车辆上提供的存储装置或计算机可读介质可以存储稀疏地图800的(多个)剩余部分。
232.此外,在这样的实施例中,稀疏地图800可以被穿过不同道路路段的多个车辆(例如,数十、数百、数千或数百万车辆等)访问。还应当注意,稀疏地图800可以包含多个子地图。例如,在一些实施例中,稀疏地图800可以包含可用于导航车辆的数百、数千、数百万或更多的子地图(例如,地图图块)。这种子地图可以被称为局部地图或地图图块,并且沿着道路行驶的车辆可以访问与车辆正在行驶的定位相关的任意数量的局部地图。稀疏地图800的局部地图部分可以与全球导航卫星系统(gnss)密钥一起存储作为到稀疏地图800的数据库的索引。因此,虽然在本系统中用于导航主车辆的转向角的计算可以在不依赖于主车辆的gnss位置、道路特征或地标的情况下执行,但是这种gnss信息可以用于检索相关的局部地图。
233.一般来说,稀疏地图800可以基于从一个或多个车辆在它们沿着道路行驶时收集的数据(例如,驾驶信息)来生成。例如,使用一个或多个车辆上的传感器(例如,相机、速度计、gps、加速度计等),可以记录一个或多个车辆沿着道路行驶的轨迹,并且可以基于由一个或多个车辆行驶的收集到的轨迹来确定沿着道路进行后续行程的车辆的优选轨迹的多项式表示。类似地,由一个或多个车辆收集的数据可以帮助识别沿着特定道路的潜在地标。从穿过车辆收集的数据也可以用于识别道路轮廓信息,诸如道路宽度轮廓、道路粗糙度轮廓、交通线间距轮廓、道路情况等。使用收集的信息,稀疏地图800可以被生成和分配(例如,用于本地存储或经由飞行中的数据传输),以用于导航一个或多个自主车辆。然而,在一些实施例中,地图生成可能不会在地图的初始生成时结束。如下面将更详细讨论的,当车辆继续穿过稀疏地图800中包含的道路时,稀疏地图800可以基于从车辆收集的数据被连续地或周期性地更新。
234.稀疏地图800中记录的数据可以包含基于全球定位系统(gps)数据的位置信息。例如,定位信息可以包含在稀疏地图800中,以用于各种地图元素,包含例如地标定位、道路轮廓定位等。稀疏地图800中包含的地图元素的定位可以使用从穿过道路的车辆收集的gps数据来获得。例如,经过所识别的地标的车辆可以使用与车辆相关联的gps位置信息和所识别的地标相对于车辆的定位的确定(例如,基于从车辆上的一个或多个相机收集的数据的图像分析)来确定所识别的地标的定位。当附加的车辆经过所识别的地标的定位时,可以重复对所识别的地标(或稀疏地图800中包含的任何其他特征)的这种定位确定。一些或所有附加定位确定可用于相对于所识别的地标细化存储在稀疏地图800中的定位信息。例如,在一些实施例中,相对于存储在稀疏地图800中的特定特征的多个位置测量可以一起被平均。然而,任何其他数学运算也可用于基于地图元素的多个确定定位来细化地图元素的所存储的定位。
235.在特定示例中,采集车辆可以穿过特定道路路段。每个采集车辆捕获它们相应的环境的图像。可以以任何合适的帧捕获速率(例如,9hz等)收集该些图像。每个采集车辆的车载图像分析处理器(或多个图像分析处理器)分析捕获图像以检测语义和/或非语义特征/对象的存在。在高层次,采集车辆向映射/制图(mapping)服务器传输检测到语义和/或非语义对象/特征的指示、以及与这些对象/特征相关联的位置。更详细地,类型指示符、尺寸指示符等可以与位置信息一起被传输。该位置信息可包含用于使制图服务器能够将检测到的对象/特征聚集到对导航有用的稀疏地图的任何合适的信息。在一些情况下,该位置信息可以包含在捕获图像中的一个或多个2d图像位置(例如,x-y轴定位),其中语义或非语义特征/对象是在该些位置处被检测到的。这种图像位置可以关联于特征/对象的中心、角等。在这种情景下,为了帮助该制图服务器重建驾驶信息和将来自多个采集车辆的驾驶信息对齐,每个采集车辆还可以向服务器提供每个图像被捕获处的定位(例如,gps定位)。
236.在其他情况下,采集车辆可以向服务器提供与检测到的对象/特征相关联的一个或多个3d真实世界点。这种3d点可以是相对于预定原点(诸如驾驶路段的原点)而言的,并且可以通过任何合适的技术来确定。在一些情况下,可以将运动结构技术用于确定检测到的对象/特征的3d真实世界位置。例如,可以在两个或更多个捕获图像中检测到某个对象,例如特定的限速标志。使用该采集车辆在捕获图像之间的诸如已知自我运动(速度、轨迹、gps位置等)、以及限速标志在捕获图像中被观察到的改变(x-y像素定位的改变、大小的改变等),可以确定与限速标志相关联的一个或多个点的真实世界位置并将其传递到制图服务器。这种方法是可选的,因为其就采集车辆系统这一方而言需要更多的计算。所公开的实施例的稀疏地图可以使用相对少量的存储数据来使能车辆的自主导航。在一些实施例中,稀疏地图800可以具有小于每千米道路2mb、小于每千米道路1mb、小于每千米道路500kb或小于每千米道路100kb的数据密度(例如,包含表示目标轨迹、地标和任何其他存储的道路特征的数据)。在一些实施例中,稀疏地图800的数据密度可以小于每千米道路10kb,或者甚至小于每千米道路2kb(例如,每千米1.6kb),或者不超过每千米道路10kb,或者不超过每千米道路20kb。在一些实施例中,也可以使用总共具有4gb或更少数据的稀疏地图来自主导航美国的大部分道路(如果不是全部的话)。这些数据密度值可以表示整个稀疏地图800、稀疏地图800内的局部地图和/或稀疏地图800内的特定道路路段上的平均。
237.如上所述,稀疏地图800可以包含多个目标轨迹的表示810,以用于沿着道路路段引导自主驾驶或导航。这种目标轨迹可以被存储为三维样条。例如,存储在稀疏地图800中的目标轨迹可以基于车辆沿着特定道路路段的先前穿过(traversal)的两个或更多个重建轨迹来确定。道路路段可以与单个目标轨迹或多个目标轨迹相关联。例如,在双车道道路上,可以存储第一目标轨迹以表示在第一方向上沿着道路行驶的意图路径,并且可以存储第二目标轨迹以表示在另一方向上(例如,与第一方向相反)沿着道路行驶的意图路径。可以存储关于特定道路路段的附加目标轨迹。例如,在多车道道路上,可以存储一个或多个目标轨迹,其表示与多车道道路相关联的一个或多个车道中的车辆的行驶的意图路径。在一些实施例中,多车道道路的每个车道可以与其自己的目标轨迹相关联。在其他实施例中,存储的目标轨迹可以比多车道道路上存在的车道少。在这种情况下,在多车道道路上导航的车辆可以使用任何存储的目标轨迹来通过考虑从存储目标轨迹的车道的车道偏移来引导其导航(例如,如果车辆在三车道公路的最左侧车道上行驶,并且目标轨迹仅针对公路的中
间车道存储,当生成导航指令时,通过考虑中间车道和最左侧车道之间的车道偏移,车辆可以使用中间车道的目标轨迹导航)。
238.在一些实施例中,目标轨迹可以表示车辆行驶时应当走的理想路径。目标轨迹可以位于例如行驶的车道的近似中心。在其他情况下,目标轨迹可以位于相对于道路路段的其他地方。例如,目标轨迹可以与道路的中心、道路的边缘或车道的边缘等近似重合。在这种情况下,基于目标轨迹的导航可以包含相对于目标轨迹的定位维持的确定的偏移量。此外,在一些实施例中,相对于目标轨迹的定位维持的确定的偏移量可以基于车辆的类型而不同(例如,沿着目标轨迹的至少一部分,包含两个轴的客车可以与包含两个以上的轴的卡车具有不同的偏移)。
239.稀疏地图800还可以包含与多个预定地标820相关的数据,多个预定地标820与特定道路路段、局部地图等相关联。如下文更详细讨论的,这些地标可以用于自主车辆的导航。例如,在一些实施例中,地标可用于确定车辆相对于所存储的目标轨迹的当前位置。利用该位置信息,自主车辆能够调整航向方向,以匹配在确定定位处的目标轨迹的方向。
240.多个地标820可以以任何合适的间距被识别并存储在稀疏地图800中。在一些实施例中,地标可以以相对高的密度被存储(例如,每隔几米或更多)。然而,在一些实施例中,可以采用显著更大的地标间距值。例如,在稀疏地图800中,所识别的(或所辨识的)地标可以间距开10米、20米、50米、100米、1千米或2千米。在一些情况下,所识别的地标可以位于相距甚至超过2千米的距离处。
241.在地标之间,并因此在相对于目标轨迹的车辆位置的确定之间,车辆可以基于航位推算来导航,在该航位推算中,车辆使用传感器来确定其自我(ego)运动并估计其相对于目标轨迹的位置。由于在通过航位推算的导航期间误差可以累积,随着时间的推移,相对于目标轨迹的位置确定可能变得越来越不准确。车辆可以使用出现在稀疏地图800中的地标(以及它们的已知定位)来消除位置确定中由航位推算引起的误差。以这种方式,稀疏地图800中包含的所识别的地标可以用作导航锚,从该导航锚可以确定车辆相对于目标轨迹的准确位置。因为在位置定位中一定量的误差可以是可接受的,所以识别的地标不需要总是对自主车辆可用。相反,合适的导航甚至可以基于如上所述的10米、20米、50米、100米、500米、1千米、2千米或更多的地标间距。在一些实施例中,每1千米的道路的1个识别地标的密度足以将纵向位置确定准确度维持在1米内。因此,不需要将沿着道路路段出现的每个潜在地标存储在稀疏地图800中。
242.此外,在一些实施例中,车道标志可以用于在地标间距期间的车辆的定位。通过在地标间距期间使用车道标志,通过航位推算的导航期间的误差累积可以被最小化。
243.除了目标轨迹和识别的地标之外,稀疏地图800可以包含与各种其他道路特征相关的信息。例如,图9a示出了可以存储在稀疏地图800中的沿着特定道路路段的曲线的表示。在一些实施例中,道路的单个车道可以由道路左侧边和右侧边的三维多项式描述来建模。图9a中示出了表示单个车道的左侧边和右侧边的这样的多项式。不管道路可以有多少车道,道路可以以类似于图9a所示的方式使用多项式来表示。例如,多车道道路的左侧边和右侧边可以由类似于图9a所示的多项式来表示,并且包含在多车道道路上的中间车道标志(例如,表示车道边界的虚线标志、表示在不同方向上行驶的车道之间的边界的黄色实线等)也可以使用诸如图9a所示的多项式来表示。
244.如图9a所示,可以使用多项式(例如,一阶、二阶、三阶或任何合适阶的多项式)来表示车道900。为了说明,车道900被示出为二维车道,并且多项式被显示为二维多项式。如图9a所示,车道900包含左侧边910和右侧边920。在一些实施例中,可以使用一个以上的多项式来表示道路或车道边界的每一边的定位。例如,左侧边910和右侧边920中的每一个可以由任意合适长度的多个多项式来表示。在一些情况下,多项式可以具有大约100m的长度,尽管也可以使用大于或小于100m的其他长度。此外,多项式可以彼此重叠,以便当主车辆沿着道路行驶时,基于后续遇到的多项式来促进导航中的无缝转换。例如,左侧边910和右侧边920中的每一个可以由多个三阶多项式表示,这些三阶多项式被分成大约100米长的段(第一预定范围的示例),并且彼此重叠大约50米。表示左侧边910和右侧边920的多项式可以具有或不具有相同的顺序。例如,在一些实施例中,一些多项式可以是二阶多项式,一些可以是三阶多项式,以及一些可以是四阶多项式。
245.在图9a所示的示例中,车道900的左侧边910由两组三阶多项式表示。第一组包含多项式段911、912和913。第二组包含多项式段914、915和916。这两个组虽然基本上彼此平行,但是遵循它们各自的道路边的定位。多项式段911、912、913、914、915和916具有大约100米的长度,并且与系列中与相邻段重叠大约50米。然而,如前所述,也可以使用不同长度和不同重叠量的多项式。例如,多项式可以具有500m、1km或更长的长度,并且重叠量可以从0到50m、50m到100m或大于100m变化。另外,虽然图9a被示为表示在2d空间中(例如,在纸的表面上)延伸的多项式,但是应当理解,这些多项式可以表示在三维中延伸的曲线(例如,包含高度分量),以表示除了x-y曲率之外的道路路段中的标高改变。在图9a所示的示例中,车道900的右侧边920进一步由具有多项式段921、922和923的第一组和具有多项式段924、925和926的第二组表示。
246.回到稀疏地图800的目标轨迹,图9b示出了表示沿着特定道路路段行驶的车辆的目标轨迹的三维多项式。目标轨迹不仅表示主车辆应当沿着特定道路路段行驶的x-y路径,还表示主车辆沿着该道路路段行驶时将经历的标高改变。因此,稀疏地图800中的每个目标轨迹可以由一个或多个三维多项式表示,如图9b中所示的三维多项式950。稀疏地图800可以包含多个轨迹(例如,数百万或数十亿或更多,以表示沿着沿着世界各地的道路的各个道路路段的车辆的轨迹)。在一些实施例中,每个目标轨迹可以对应于连接三维多项式段的样条。
247.关于存储在稀疏地图800中的多项式曲线的数据足迹,在一些实施例中,每个三次多项式可以由四个参数表示,每个参数需要四个字节的数据。可以使用需要每100m约192字节数据的三次多项式来获得合适的表示。对于行驶约100km/hr的主车辆,这可以转化为每小时约200kb的数据使用/传输要求。
248.稀疏地图800可以使用几何结构描述符和元数据的组合来描述车道网络。几何结构可以用如上所述的多项式或样条来描述。元数据可以描述车道的数量、特殊特性(诸如合用车道)以及可能的其他稀疏标签。这种指示符的总足迹可能可以忽略不计。
249.相应地,根据本公开的实施例的稀疏地图可以包含沿着道路路段延伸的道路表面特征的至少一个线表示,每个线表示表示沿着道路路段基本上对应于道路表面特征的路径。在一些实施例中,如上所述,道路表面特征的至少一个线表示可以包含样条、多项式表示或曲线。此外,在一些实施例中,道路表面特征可以包含路缘或车道标志中的至少一个。
此外,如下面关于“众包”所讨论的,可以通过对当一个或多个车辆穿过道路路段时获取的多个图像的图像分析来识别道路表面特征。
250.如前所述,稀疏地图800可以包含与道路路段相关联的多个预定地标。稀疏地图800中的每个地标可以使用比存储的实际图像所需的更少的数据来表示和辨识,而不是存储地标的实际图像并依赖于例如基于捕获的图像和存储的图像的图像辨识分析。表示地标的数据仍然可以包含用于描述或识别沿着道路的地标的足够信息。存储描述地标的特性的数据,而不是地标的实际图像,可以减小稀疏地图800的大小。
251.图10示出了可以在稀疏地图800中表示的地标的类型的示例。地标可以包含沿着道路路段的任何可见且可识别的对象。可以选择地标,使得它们是固定的,并且相对于它们的定位和/或内容不会经常改变。稀疏地图800中包含的地标在车辆穿过特定道路路段时确定车辆200相对于目标轨迹的定位是有用的。地标的示例可以包含交通标志、方向标志、一般标志(例如,矩形标志)、路边固定装置(例如,灯柱、反射器等)以及任何其他合适的类别。在一些实施例中,道路上的车道标志也可以作为地标被包含在稀疏地图800中。
252.图10中示出的地标的示例包含交通标志,方向标志,路边固定装置和一般标志。交通标志可以包含,例如限速标志(例如,限速标志1000)、让行标志(例如,让行标志1005)、路线号标志(例如,路线号标志1010)、交通灯标志(例如,交通灯标志1015)、停车标志(例如,停车标志1020)。方向标志可以包含标志,该标志包含一个或多个箭头,该箭头指示到不同地方的一个或多个方向。例如,方向标志可以包含具有用于将车辆引导到不同道路或地方的箭头的高速公路标志1025、具有将车辆引导离开道路的箭头的出口标志1030等等。相应地,多个地标中的至少一个可以包含道路标志。
253.一般标志可以与交通无关。例如,一般标志可能包含用于广告的广告牌,或两个国、州、县、市或城镇之间边界附近的欢迎板。图10示出了一般标志1040(“乔的餐厅”)。尽管一般标志1040可以具有矩形形状,如图10所示,但是一般标志1040可以具有其他形状,诸如正方形,圆形,三角形等。
254.地标还可能包含路边固定装置。路边固定装置可以不是标志,也可以与交通或方向无关。例如,路边固定装置可以包含灯柱(例如,灯柱1035)、电力线柱、交通灯柱等。
255.地标还可以包含专门设计用于自主车辆导航系统的信标。例如,这种信标可以包含以预定间隔放置的独立结构,以帮助导航主车辆。这种信标还可以包含添加到现有道路标志的可视/图形信息(例如,图标、徽章、条形码等),该可视/图形信息可以被沿着道路路段行驶的车辆识别或辨识。这种信标还可以包含电子组件。在这样的实施例中,电子信标(例如,rfid标签等)可用于向主车辆传输非可视信息。这种信息可以包含例如主车辆在确定其沿目标轨迹的位置时可以使用的地标标识和/或地标定位信息。
256.在一些实施例中,稀疏地图800中包含的地标可以由预定大小的数据对象来表示。表示地标的数据可以包含用于识别特定地标的任何合适的参数。例如,在一些实施例中,存储在稀疏地图800中的地标可以包含参数,诸如地标的物理大小(例如,以支持基于已知大小/比例的到地标的距离的估计)、到先前地标的距离、横向偏移、高度、类型代码(例如,地标类型——什么类型的方向标志、交通标志等)、gps坐标(例如,支持全球定位)和任何其他合适的参数。每个参数可以与数据大小相关联。例如,可以使用8字节的数据来存储地标大小。可以使用12字节的数据来指定到先前地标的距离、横向偏移和高度。与诸如方向标志或
交通标志的地标相关联的类型代码可以需要大约2字节的数据。对于一般标志,可以使用50字节的数据存储装置来存储使能识别一般标志的图像签名。地标gps位置可以与16字节的数据存储装置相关联。每个参数的这些数据大小只是示例,也可以使用其他数据大小。以这种方式在稀疏地图800中表示地标可以提供用于在数据库中有效地表示地标的精简方案。在一些实施例中,对象可以被称为标准的语义对象和非标准的语义对象。标准的语义对象可以包含存在标准化特性集的任何类的标志(例如,具有已知尺寸或其他特性的限速标志、警告标志、方向标志、交通灯等)。非标准语义对象可以包含未与标准化特性集相关联的任何对象(例如,具有可变尺寸的一般广告标志、标识商业机构的标志、坑洼、树等)。每个非标准语义对象可以用38字节的数据来表示(例如,8字节用于大小;12字节用于到先前地标的距离、横向偏移和高度;2字节用于类型代码;以及16字节用于位置坐标)。可以使用甚至更少的数据来表示标准语义对象,因为制图服务器可以不需要大小信息以便在稀疏地图中完全表示该对象。
257.稀疏地图800可以使用标签系统来表示地标类型。在一些情况下,每个交通标志或方向标志可以与其自己的标签相关联,该标签可以作为地标标识的一部分存储在数据库中。例如,数据库可以包含大约1000个不同的标签来表示各种交通标志,以及大约10000个不同的标签来表示方向标志。当然,可以使用任何合适数量的标签,并且可以根据需要创建附加标签。在一些实施例中,一般用途标志可以使用小于约100字节(例如,约86字节,包含8字节用于大小;12字节用于到先前地标的距离、横向偏移和高度;50字节用于图像签名;以及16字节用于gps坐标)。
258.因此,对于不需要图像签名的语义道路标志,即使以大约每50米1个的相对高的地标密度,对稀疏地图800的数据密度影响也可以是大约每千米760字节(例如,每千米20个地标
×
每地标38字节=760字节)。即使对于包含图像签名组件的一般用途标志,数据密度影响也约为每千米1.72千字节(例如,每千米20个地标
×
每地标86字节=1,720字节)。对于语义道路标志,这相当于对于行驶100km/hr的车辆的每小时约76kb的数据使用。对于一般用途标志,这相当于对于行驶100km/hr的车辆的每小时约170kb的数据使用。应当注意,在一些环境中(例如,城市环境),可能存在密度高得多的检测到的对象可用于纳入到稀疏地图中(可能超过每米一个)。在一些实施例中,诸如矩形标志的一般矩形对象可以在稀疏地图800中由不超过100字节的数据来表示。稀疏地图800中的一般矩形对象(例如,一般标志1040)的表示可以包含与一般矩形对象相关联的压缩(condensed)图像签名或图像哈希(例如,压缩图像签名1045)。可以使用任何合适的图像哈希算法来确定压缩图像签名/图像哈希,并且这种压缩图像签名/图像哈希可以用于例如帮助一般标志的识别,例如作为辨识的地标。这种压缩图像签名(例如,从表示对象的实际图像数据导出的图像信息)可以避免存储对象的实际图像的需要,或者避免对实际图像执行比较图像分析以辨识地标的需要。
259.参考图10,稀疏地图800可以包含或存储与一般标志1040相关联的压缩图像签名1045,而不是一般标志1040的实际图像。例如,在图像捕获装置(例如,图像捕获装置122、124或126)捕获一般标志1040的图像之后,处理器(例如,可以处理图像的图像处理器190或任何其他处理器,其在主车辆上或相对于主车辆位于远处)可以执行图像分析以提取/创建包含与一般标志1040相关联的唯一签名或图案的压缩图像签名1045。在一个实施例中,压缩图像签名1045可以包含形状、颜色图案、亮度图案或可以从一般标志1040的图像中提取
的用于描述一般标志1040的任何其他特征。
260.例如,在图10中,压缩图像签名1045中所示的圆形、三角形和星形可以表示不同颜色的区域。由圆形、三角形和星形表示的图案可以存储在稀疏地图800中,例如,在被指定为包含图像签名的50个字节内。值得注意的是,圆形、三角形和星形不一定意图指示这些形状作为图像签名的一部分被存储。相反,这些形状意图在概念上表示具有可辨别的颜色差异的可辨识区域、文本区域、图形形状或者可以与一般标志相关联的特性的其他变化。这种压缩图像签名可用于以一般标志的形式识别地标。例如,压缩图像签名可用于基于存储的压缩图像签名与例如使用自主车辆上的相机捕获的图像数据的比较来执行相同或不同的分析。
261.相应地,可以通过对当一个或多个车辆穿过道路路段时获取的多个图像进行图像分析来识别多个地标。如下面关于“众包”所解释的,在一些实施例中,识别多个地标的图像分析可以包含当地标确实出现的图像与地标没有出现的图像的比率超过阈值时接受潜在地标。此外,在一些实施例中,识别多个地标的图像分析可以包含当地标没有出现的图像与地标确实出现的图像的比率超过阈值时拒绝潜在地标。
262.回到主车辆可以用来导航特定道路路段的目标轨迹,图11a示出了在建造或维持稀疏地图800的过程中捕获的多项式表示轨迹。稀疏地图800中包含的目标轨迹的多项式表示可以基于车辆沿着相同道路路段的先前穿过的两个或更多个重建轨迹来确定。在一些实施例中,稀疏地图800中包含的目标轨迹的多项式表示可以是沿着相同道路路段的车辆的先前穿过的两个或更多个重建轨迹的聚集。在一些实施例中,稀疏地图800中包含的目标轨迹的多项式表示可以是车辆沿着相同道路路段的先前穿过的两个或更多个重建轨迹的平均。其他数学运算也可以用于基于从沿着道路路段穿过的车辆收集的重建轨迹来构建沿着道路路径的目标轨迹。
263.如图11a所示,道路路段1100可以由多个车辆200在不同时间处行驶。每个车辆200可以收集与车辆沿着道路路段所走的路径相关的数据。由特定车辆行驶的路径可以基于相机数据、加速度计信息、速度传感器信息和/或gps信息以及其他潜在来源来确定。这种数据可用于重建沿着道路路段行驶的车辆的轨迹,并且基于这些重建轨迹,可为特定道路路段确定目标轨迹(或多个目标轨迹)。这种目标轨迹可以表示主车辆沿着道路路段行驶时的(例如,由自主导航系统所引导的)该车辆的优选路径。
264.在图11a所示的示例中,第一重建轨迹1101可以基于从在第一时间段(例如,第一天)穿过道路路段1100的第一车辆接收的数据来确定,第二重建轨迹1102可以从在第二时间段(例如,第二天)穿过道路路段1100的第二车辆获得,第三重建轨迹1103可以从在第三时间段(例如,第三天)穿过道路路段1100的第三车辆获得。每个轨迹1101、1102和1103可以由多项式表示,诸如三维多项式。应当注意,在一些实施例中,任何重建轨迹可以在穿过道路路段1100的车辆上组装。
265.附加地或替代地,可以基于从穿过道路路段1100的车辆接收的信息在服务器侧确定这样的重建轨迹。例如,在一些实施例中,车辆200可以向一个或多个服务器传输与它们沿着道路路段1100的运动相关的数据(例如,转向角、航向、时间、位置、速度、感测的道路几何结构和/或感测的地标等)。服务器可以基于接收到的数据重建车辆200的轨迹。服务器还可以基于第一轨迹1101、第二轨迹1102和第三轨迹1103生成用于引导将在稍后的时间沿着
相同道路路段1100行驶的自主车辆的导航的目标轨迹。虽然目标轨迹可以与道路路段的单个先前穿过相关联,但是在一些实施例中,稀疏地图800中包含的每个目标轨迹可以基于穿过相同道路路段的车辆的两个或更多个重建轨迹来确定。在图11a中,目标轨迹由1110表示。在一些实施例中,目标轨迹1110可以基于第一轨迹1101、第二轨迹1102和第三轨迹1103的平均来生成。在一些实施例中,稀疏地图800中包含的目标轨迹1110可以是两个或更多个重建轨迹的聚集(例如,加权组合)。
266.在制图服务器处,服务器可以从穿过特定道路路段的多个采集车辆接收该特定道路路段的实际轨迹。为了生成沿着该道路路段的每个有效路径(例如,每个车道、每个驾驶方向、通过交叉口的每个路径等)的目标轨迹,可以对齐接收到的实际轨迹。对齐过程可以包含使用检测到的沿着该道路路段识别的的对象/特征以及这些检测到的对象/特征的采集位置,来将实际的采集轨迹彼此关联。一旦对齐,可以基于聚集的、经相关的/经对齐的实际轨迹,来确定每个可用车道等的平均或“最佳拟合”目标轨迹。
267.图11b和图11c进一步示出了与地理区域1111内存在的道路路段相关联的目标轨迹的概念。如图11b所示,地理区域1111内的第一道路路段1120可以包含多车道道路,该多车道道路包含指定用于车辆在第一方向上行驶的两条车道1122和指定用于车辆在与第一方向相反的第二方向上行驶的两条附加车道1124。车道1122和车道1124可以由双黄线1123分开。地理区域1111还可以包含与道路路段1120相交的分支道路路段1130。道路路段1130可以包含双车道道路,每个车道被指定用于不同的行驶方向。地理区域1111还可以包含其他道路特征,诸如停车线1132、停车标志1134、限速标志1136和危险标志1138。
268.如图11c所示,稀疏地图800可以包含局部地图1140,该局部地图1140包含用于帮助地理区域1111内的车辆的自主导航的道路模型。例如,局部地图1140可以包含与地理区域1111内的道路路段1120和/或1130相关联的一个或多个车道的目标轨迹。例如,局部地图1140可以包含自主车辆在穿过车道1122时可以访问或依赖的目标轨迹1141和/或1142。类似地,局部地图1140可以包含自主车辆在穿过车道1124时可以访问或依赖的目标轨迹1143和/或1144。此外,局部地图1140可以包含自主车辆在穿过道路路段1130时可以访问或依赖的目标轨迹1145和/或1146。目标轨迹1147表示当从车道1120(具体而言,相对于与车道1120的最右侧车道相关联的目标轨迹1141)转换到道路路段1130(具体而言,相对于与道路路段1130的第一边相关联的目标轨迹1145)时,自主车辆应当遵循的优选路径。类似地,目标轨迹1148表示当从道路路段1130(具体地,相对于目标轨迹1146)转换到道路路段1124的一部分(具体地,如图所示,相对于与车道1124的左车道相关联的目标轨迹1143)时,自主车辆应当遵循的优选路径。
269.稀疏地图800还可以包含与地理区域1111相关联的其他道路相关特征的表示。例如,稀疏地图800还可以包含在地理区域1111中识别的一个或多个地标的表示。这些地标可以包含与停车线1132相关联的第一地标1150、与停车标志1134相关联的第二地标1152、与限速标志1154相关联的第三地标以及与危险标志1138相关联的第四地标1156。这种地标可以用于例如帮助自主车辆确定其相对于任何所示目标轨迹的当前定位,使得车辆可以调整其航向以匹配在确定的定位处的目标轨迹的方向。
270.在一些实施例中,稀疏地图800还可以包含道路签名轮廓。这种道路签名轮廓可以与至少一个与道路相关联的参数的任何可辨别/可测量的变化相关联。例如,在一些情况
下,这种轮廓可以与道路表面信息的变化相关联,诸如特定道路路段的表面粗糙度的变化、特定道路路段上道路宽度的变化、沿着特定道路路段绘制的虚线之间的距离的变化、沿着特定道路路段的道路曲率的变化等。图11d示出了道路签名轮廓1160的示例。虽然轮廓1160可以表示上述参数中的任意参数或其他参数,但是在一个示例中,轮廓1160可以表示道路表面粗糙度的测量,例如,如通过监控一个或多个传感器来获得,该一个或多个传感器提供指示车辆在特定道路路段上行驶时悬架位移量的输出。
271.替代地或同时地,轮廓1160可以表示道路宽度的变化,如基于经由在特定道路路段上行驶的车辆上的相机获得的图像数据来确定的。例如,这种轮廓在确定自主车辆相对于特定目标轨迹的特定定位时是有用的。也就是说,当它穿过道路路段时,自主车辆可以测量与道路路段相关联的一个或多个参数相关联的轮廓。如果测量的轮廓可以与相对于沿着道路路段的位置映射参数变化的预定轮廓相关/匹配,则可以使用测量的和预定的轮廓(例如,通过覆盖测量的和预定的轮廓的对应部分),以便确定沿着道路路段的当前位置,并且因此确定相对于道路路段的目标轨迹的当前位置。
272.在一些实施例中,稀疏地图800可以包含基于与自主车辆的用户相关联的不同特性、环境条件和/或与驾驶相关的其他参数的不同轨迹。例如,在一些实施例中,可以基于不同的用户偏好和/或轮廓来生成不同的轨迹。包含这种不同轨迹的稀疏地图800可以被提供给不同用户的不同自主车辆。例如,一些用户可能偏好避开收费公路,而其他用户可能偏好走最短或最快的路线,而不管路线上是否有收费公路。所公开的系统可以基于这种不同的用户偏好或轮廓生成具有不同轨迹的不同稀疏地图。作为另一个示例,一些用户可能偏好在快速移动的车道上行驶,而其他用户可能偏好始终维持在中心车道上的位置。
273.基于不同的环境条件,诸如白天和黑夜、下雪、下雨、有雾等,可以生成不同的轨迹并将其包含在稀疏地图800中。在不同环境条件下行驶的自主车辆可以被提供有基于这种不同环境条件生成的稀疏地图800。在一些实施例中,在自主车辆上提供的相机可以检测环境条件,并且可以将这种信息提供回生成并提供稀疏地图的服务器。例如,服务器可以生成或更新已经生成的稀疏地图800,以包含在检测到的环境条件下可能更适合或更安全用于自主驾驶的轨迹。当自主车辆沿着道路行驶时,可以动态地执行基于环境条件的稀疏地图800的更新。
274.与驾驶相关的其他不同参数也可以用作生成不同的稀疏地图并将不同的稀疏地图提供给不同的自主车辆的基础。例如,当自主车辆以高速行驶时,转弯可能会更困难(tighter)。与特定车道而不是道路相关联的轨迹可以被包含在稀疏地图800中,使得当车辆遵循特定轨迹时,自主车辆可以维持在特定车道内。当由自主车辆上的相机捕获的图像指示车辆已经漂移到车道之外(例如,越过车道标志)时,可以在车辆内触发动作,以根据特定轨迹将车辆带回指定车道。
275.众包稀疏地图
276.所公开的稀疏地图可以通过众包的力量有效地(被动地)生成。例如,配备有相机(例如,当今车辆上通常作为oem设备而包含的简单的低分辨率相机)和适当的图像分析处理器的任何私人或商用车辆都可以用作采集车辆。不需要特殊设备(例如,高清晰度成像和/或定位系统)。作为所公开的众包技术的结果,生成的稀疏地图可以极其精确,并且可以包含极其细化的位置信息(使得导航误差能够限制为10cm或更小),而不需要任何专门的成
像或感测设备作为地图生成过程的输入。众包还使得对生成的地图能够进行更快速(且便宜)的更新,因为来自私人或商用车辆所穿过的任何道路上的新的驾驶信息对制图服务器系统是持续可用的,其中该私人或商用车辆是最低配备的并且也用作采集车辆。不需要指定车辆被配备有高清成像和映射传感器。因此,可以避免与建造这种专门车辆相关联的费用。此外,相比于依赖于专用的、专门的映射车辆(由于其费用和特殊设备,这些映射车辆通常限于专门车辆车队,而该车队的车辆的数量远低于已经可用于执行本公开的采集技术的私人或商用车辆的数量)的系统,对本公开的稀疏地图的更新可以更快地进行。
277.所公开的通过众包生成的稀疏地图可以极其精确,因为它们可以是基于来自多个(10个、数百个、数百万个等)采集车辆的许多输入而生成的,其中该些采集车辆已经沿着特定道路路段收集了驾驶信息。例如,沿着特定道路路段行驶的每个采集车辆可以记录其实际轨迹,并且可以确定关于沿着该道路路段检测到的对象/特征的位置信息。这些信息从多个采集车辆传递到服务器。对实际轨迹进行聚集,以便生成用于沿着该道路路段的每个有效行驶路径的细化的目标轨迹。附加地,还可以聚集从多个采集车辆收集的、沿着该道路路段的每个检测到的对象/特征(语义或非语义的)的位置信息。结果,每个检测到的对象/特征的经映射位置可以构成每个检测到的对象/特征的数百、数千或数百万个单独确定的位置的平均值。这种技术可以为检测到的对象/特征产生极其精确的经映射位置。
278.在一些实施例中,所公开的系统和方法可以生成用于自主车辆导航的稀疏地图。例如,所公开的系统和方法可以使用众包数据来生成稀疏地图,一个或多个自主车辆可以使用该稀疏来沿着道路的系统进行导航。如本文所使用的,“众包”意味着从在不同时间处在道路路段上行驶的各种车辆(例如,自主车辆)接收数据,并且这些数据被用于生成和/或更新道路模型,包含稀疏地图图块。该模型或其任何稀疏地图图块又可以被传输到稍后沿着道路路段行驶的车辆或其他车辆,以用于辅助自主车辆导航。道路模型可以包含多个目标轨迹,这些目标轨迹表示自主车辆在穿过道路路段时应当遵循的优选轨迹。目标轨迹可以与从穿过道路路段的车辆收集的重建的实际轨迹相同,其可以从车辆传输到服务器。在一些实施例中,目标轨迹可以不同于一个或多个车辆先前在穿过道路路段时所采用的实际轨迹。目标轨迹可以基于实际轨迹生成(例如,通过平均或任何其他合适的操作)。
279.车辆可以上传到服务器的车辆轨迹数据可以与车辆的实际重建轨迹对应,或者可以对应于推荐轨迹,该推荐轨迹可以基于车辆的实际重建轨迹或与之相关,但是可以不同于实际重建轨迹。例如,车辆可以修改它们的实际重建轨迹,并且向服务器提交(例如,推荐)修改的实际轨迹。道路模型可以使用推荐的、修改的轨迹作为其他车辆自主导航的目标轨迹。
280.除了轨迹信息之外,在建造稀疏数据地图800中潜在使用的其他信息可以包含与潜在地标候选相关的信息。例如,通过信息的众包,所公开的系统和方法可以识别环境中的潜在地标并细化地标位置。自主车辆的导航系统可以使用这些地标来确定和/或调整车辆沿着目标轨迹的位置。
281.车辆沿着道路行驶时可以生成的重建轨迹可以通过任何合适的方法获得。在一些实施例中,重建轨迹可以通过使用例如自我运动估计(例如,相机(以及由此的车身)的三维平移和三维旋转)将车辆的运动的路段拼接(stitch)在一起来产生。旋转和平移估计可以基于对由一个或多个图像捕获装置捕获的图像以及来自其他传感器或装置(诸如惯性传感
器和速度传感器)的信息的分析来确定。例如,惯性传感器可以包含加速度计或其他合适的传感器,其被配置为测量车身平移和/或旋转的改变。车辆可以包含测量车辆的速度的速度传感器。
282.在一些实施例中,可以基于所捕获图像的光流分析来估计相机(以及由此的车身)的自我运动。图像序列的光流分析从图像序列中识别像素的移动,并且基于所识别的运动,确定车辆的运动。自我运动可以随着时间和沿着道路路段被积分,以重建与车辆已经遵循的道路路段相关联的轨迹。
283.沿着道路路段在不同时间处由多个驾驶中的多个车辆收集的数据(例如,重建轨迹)可用于构建包含在稀疏数据地图800中的道路模型(例如,包含目标轨迹等)。还可以对沿着道路路段在不同时间处由多个驾驶中的多个车辆收集的数据进行平均,以提高模型的准确度。在一些实施例中,可以从在不同时间处穿过公共道路路段的多个车辆接收关于道路几何结构和/或地标的数据。从不同车辆接收的这种数据可以被组合以生成道路模型和/或更新道路模型。
284.沿着道路路段的重建轨迹(以及目标轨迹)的几何结构可以由三维空间中的曲线表示,该曲线可以是连接三维多项式的样条。重建轨迹曲线可以通过分析由安装在车辆上的相机捕获的视频流或多个图像来确定。在一些实施例中,在车辆当前位置前方几米的每个帧或图像中识别定位。该定位是车辆预期在预定时间段内行驶的位置。该操作可以逐帧重复,同时,车辆可以计算相机的自我运动(旋转和平移)。在每一帧或每一个图像中,车辆在附接到相机的参考帧中生成期望路径的短程模型。短程模型可以被拼接在一起,以在某个坐标系中获得道路的三维模型,该坐标系可以是任意的或预定的坐标系。然后,道路的三维模型可以由样条拟合,该样条可以包含或连接一个或多个合适阶数的多项式。
285.为了在每个帧处总结短程道路模型,可以使用一个或多个检测模块。例如,可以使用自底向上(bottom-up)的车道检测模块。当在道路上映射车道标志时,自底向上的车道检测模块可以是有用的。该模块可以在图像中寻找边缘,并将它们组装在一起以形成车道标志。第二模块可以与自底向上车道检测模块一起使用。第二模块是端到端深度神经网络,其可以被训练以从输入图像预测正确的短程路径。在这两个模块中,道路模型可以在图像坐标系中被检测,并且被变换成可以虚拟地附接到相机的三维空间。
286.尽管重建轨迹建模方法可能由于长时间段的自我运动的积分而引入误差的累积,这可能包含噪声分量,但是这种误差可能是无关紧要的,因为生成的模型可以为局部比例上的导航提供足够的准确度。此外,还可以通过使用卫星图像或大地测量等外部信息源来消除积分误差。例如,所公开的系统和方法可以使用gnss接收器来消除累积误差。然而,gnss定位信号可能并不总是可用的和准确的。所公开的系统和方法可以使能很弱地依赖于gnss定位的可用性和准确度的转向应用。在这种系统中,gnss信号的使用可能受到限制。例如,在一些实施例中,所公开的系统可以将gnss信号仅用于数据库索引目的。
287.在一些实施例中,与自主车辆导航转向应用相关的范围比例(例如,局部比例)可以大约为50米、100米、200米、300米等。可以使用这样的距离,因为几何道路模型主要用于两个目的:计划前方轨迹和在道路模型上定位车辆。在一些实施例中,当控制算法根据位于前方1.3秒(或任何其他时间,例如1.5秒、1.7秒、2秒等)的目标点使车辆转向时,计划任务可以使用在前方40米(或任何其他合适的前方距离,例如20米、30米、50米)的典型范围内的
模型。定位任务使用在汽车后60米(或任何其他合适的距离,诸如50米、100米、150米等)的典型范围内的道路模型。根据另一章节中更详细描述的称为“尾部对齐”的方法。所公开的系统和方法可以生成在特定范围(诸如100米)上具有足够准确度的几何模型,使得计划的轨迹不会偏离车道中心超过例如30厘米。
288.如上所述,可以根据检测短程部分并将它们拼接在一起来构建三维道路模型。可以通过使用相机捕获的视频和/或图像、来自反映车辆的运动的惯性传感器的数据以及主车辆速度信号来计算六度自我运动模型来使能拼接。累积误差在某个局部范围比例(诸如大约100米)上可能足够小。所有这些都可以在特定道路路段上的单个驾驶中完成。
289.在一些实施例中,可以使用多个驾驶来对得到的模型进行平均,并进一步提高其准确度。相同汽车可以多次行驶相同路线,或者多辆汽车可以将它们收集到的模型数据传送到中央服务器。在任何情况下,可以执行匹配过程来识别重叠的模型并使能平均,以便生成目标轨迹。一旦满足收敛标准,构建的模型(例如,包含目标轨迹)可用于转向。后续驾驶可用于进一步的模型改进和适应基础设施改变。
290.如果多辆汽车连接到一个中央服务器,则它们之间共享驾驶经验(诸如感测的数据)变得可行。每个车辆客户端可以存储一般道路模型的部分副本,该副本可以与其当前位置相关。车辆和服务器之间的双向更新过程可以由车辆和服务器执行。上面讨论的小足迹概念使得所公开的系统和方法能够使用非常小的带宽来执行双向更新。
291.还可以确定与潜在地标相关的信息,并将其转发给中央服务器。例如,所公开的系统和方法可以基于包含地标的一个或多个图像来确定潜在地标的一个或多个物理属性。物理属性可以包含地标的物理大小(例如,高度、宽度)、从车辆到地标的距离、地标到先前地标之间的距离、地标的横向位置(例如,地标相对于行驶的车道的位置)、地标的gps坐标、地标的类型、地标上的文本标识等。例如,车辆可以分析由相机捕获的一个或多个图像,以检测潜在地标,诸如限速标志。
292.车辆可以基于对一个或多个图像的分析,来确定从车辆到地标的距离或与该地标相关联的位置(例如,沿着道路路段的任何语义或非语义对象或特征)。在一些实施例中,可以使用合适的图像分析方法,例如缩放方法和/或光流方法,基于对地标的图像的分析来确定距离。如先前提出的,对象/特征的位置可以包含与该对象/特征相关联的一个或多个点的2d图像位置(例如,一个或多个捕获图像中的x-y像素位置)或者可以包含一个或多个点的3d真实世界位置(例如,通过运动结构/光流技术、lidar或radar信息等而确定的)。在一些实施例中,所公开的系统和方法可以被配置为确定潜在地标的类型或分类。在车辆确定某潜在地标对应于存储在稀疏地图中的预定类型或分类的情况下,车辆将地标的类型或分类的指示连同其定位传达给服务器就足够了。服务器可以存储这样的指示。在稍后的时间,在导航期间,导航车辆可以捕获包含该地标的表示的地标的图像,处理该图像(例如,使用分类器),并比较结果地标以便确认映射地标的检测并使用该映射地标来相对于稀疏地图定位该导航车辆。
293.在一些实施例中,在道路路段上行驶的多个自主车辆可以与服务器通信。车辆(或客户端)可以在任意坐标系中生成描述其驾驶的曲线(例如,通过自我运动积分)。车辆可以检测地标并在相同帧中定位它们。车辆可以将曲线和地标上传到服务器。服务器可以通过多个驾驶从车辆收集数据,并生成统一的道路模型。或者例如,如下面参考图19所讨论的,
服务器可以使用上传的曲线和地标生成具有统一道路模型的稀疏地图。
294.服务器还可以将模型分配给客户端(例如,车辆)。例如,服务器可以将稀疏地图分配给一个或多个车辆。当从车辆接收到新数据时,服务器可以连续或周期性地更新模型。例如,服务器可以处理新数据以评估该数据是否包含应当触发服务器上新数据的更新或创建的信息。服务器可以将更新后的模型或更新分配给车辆,以用于提供自主车辆导航。
295.服务器可以使用一个或多个标准来确定从车辆接收的新数据是否应当触发对模型的更新或者触发新数据的创建。例如,当新数据指示在特定定位的先前辨识的地标不再存在,或者被另一个地标替换时,服务器可以确定新数据应当触发对模型的更新。作为另一个示例,当新数据指示道路路段已经关闭,并且当这已经被从其他车辆接收的数据证实时,服务器可以确定新数据应当触发对模型的更新。
296.服务器可以将更新后的模型(或模型的更新部分)分配给在与模型更新相关联的道路路段上行驶的一个或多个车辆。服务器还可以将更新后的模型分配给将要在道路路段上行驶的车辆,或者其计划行程包含与模型更新相关联的道路路段的车辆。例如,当自主车辆在到达与更新相关联的道路路段之前沿着另一道路路段行驶时,服务器可以在车辆到达道路路段之前将更新或更新后的模型分配给自主车辆。
297.在一些实施例中,远程服务器可以从多个客户端(例如,沿着公共道路路段行驶的车辆)收集轨迹和地标。服务器可以使用地标匹配曲线,并且基于从多个车辆收集的轨迹创建平均道路模型。服务器还可以计算道路的图和道路路段的每个节点或连接处的最可能路径。例如,远程服务器可以对齐轨迹以从收集的轨迹生成众包稀疏地图。
298.服务器可以对从沿着公共道路路段行驶的多个车辆接收的地标属性进行平均,诸如由多个车辆测量的一个地标到另一个地标(例如,沿着道路路段的前一个地标)之间的距离,以确定弧长参数并支持每个客户端车辆沿着路径的定位和速度校准。服务器可以对由沿着公共道路路段行驶并辨识相同地标的多个车辆测量的地标的物理尺寸进行平均。平均物理尺寸可用于支持距离估计,诸如从车辆到地标的距离。服务器可以对由沿着公共道路路段行驶并辨识相同地标的多个车辆测量的地标的横向位置(例如,从车辆正在行驶的车道到地标的位置)进行平均。平均横向部分可用于支持车道分配。服务器可以对由沿着相同道路路段行驶并辨识相同地标的多个车辆测量的地标的gps坐标进行平均。地标的平均gps坐标可用于支持道路模型中地标的全球定位(localization)或定位(positioning)。
299.在一些实施例中,基于从车辆接收的数据,服务器可以识别模型改变,诸如构建、绕行、新标志、标志的移除等。当从车辆接收到新数据时,服务器可以连续地或周期性地或瞬时地更新模型。服务器可以将对模型的更新或更新后的模型分配给车辆,以用于提供自主导航。例如,如下面进一步讨论的,服务器可以使用众包数据来过滤掉由车辆检测到的“幽灵(ghost)”地标。
300.在一些实施例中,服务器可以分析自主驾驶期间的驾驶员干预。服务器可以分析在干预发生的时间和定位从车辆接收的数据,和/或在干预发生的时间之前接收的数据。服务器可以识别引起干预或与干预密切相关的数据的某些部分,例如,指示临时车道封闭设置的数据、指示道路中行人的数据。服务器可以基于识别的数据更新模型。例如,服务器可以修改存储在模型中的一个或多个轨迹。
301.图12是使用众包生成稀疏地图(以及使用众包稀疏地图分配和导航)的系统的示
意图。图12示出了包含一个或多个车道的道路路段1200。多个车辆1205、1210、1215、1220和1225可以在相同时间或在不同时间在道路路段1200上行驶(尽管在图12中显示为在相同时间出现在道路路段1200上)。车辆1205、1210、1215、1220和1225中的至少一个可以是自主车辆。为了简化本示例,假定所有车辆1205、1210、1215、1220和1225都为自主车辆。
302.每个车辆可以类似于在其他实施例中公开的车辆(例如,车辆200),并且可以包含被包含在其他实施例中公开的车辆中或者与其他实施例中公开的车辆相关联的组件或装置。每个车辆可以配备有图像捕获装置或相机(例如,图像捕获装置122或相机122)。每个车辆可以经由一个或多个网络(例如,通过蜂窝网络和/或互联网等)通过如虚线所示的无线通信路径1235与远程服务器1230通信。每个车辆可以向服务器1230传输数据,并从服务器1230接收数据。例如,服务器1230可以从在不同时间在道路路段1200上行驶的多个车辆收集数据,并且可以处理所收集的数据以生成自主车辆道路导航模型,或者对模型的更新。服务器1230可以将自主车辆道路导航模型或对模型的更新传输到向服务器1230传输数据的车辆。服务器1230可以将自主车辆道路导航模型或对模型的更新传输给稍后在道路路段1200上行驶的其他车辆。
303.当车辆1205、1210、1215、1220和1225在道路路段1200上行驶时,由车辆1205、1210、1215、1220和1225收集(例如,检测、感测或测量)的导航信息可以被传输到服务器1230。在一些实施例中,导航信息可以与公共道路路段1200相关联。导航信息可以包含当每个车辆在道路路段1200上行驶时与每个车辆1205、1210、1215、1220和1225相关联的轨迹。在一些实施例中,可以基于由车辆1205上提供的各种传感器和装置感测的数据来重建轨迹。例如,可以基于加速度计数据、速度数据、地标数据、道路几何结构或轮廓数据、车辆位置数据和自我运动数据中的至少一个来重建轨迹。在一些实施例中,可以基于来自惯性传感器(诸如加速度计)的数据和由速度传感器感测的车辆1205的速度来重建轨迹。此外,在一些实施例中,可以基于感测的相机的自我运动来确定轨迹(例如,通过车辆1205、1210、1215、1220和1225中的每一个上的处理器),该感测的相机的自我运动可以指示三维平移和/或三维旋转(或旋转运动)。相机(以及由此的车身)的自我运动可以通过对相机捕获的一个或多个图像的分析来确定。
304.在一些实施例中,车辆1205的轨迹可以由在车辆1205上提供的处理器确定,并被传输到服务器1230。在其他实施例中,服务器1230可以接收由在车辆1205中提供的各种传感器和装置感测的数据,并且基于从车辆1205接收的数据确定轨迹。
305.在一些实施例中,从车辆1205、1210、1215、1220和1225传输到服务器1230的导航信息可以包含关于道路表面、道路几何结构或道路轮廓的数据。道路路段1200的几何结构可以包含车道结构和/或地标。车道结构可以包含道路路段1200的车道总数、车道类型(例如,单车道、双车道、行车车道、超车道等)、车道上的标志,车道宽度等。在一些实施例中,导航信息可以包含车道分配,例如,车辆正在多个车道中的哪个车道中行驶。例如,车道分配可以与数字值“3”相关联,该数字值“3”指示车辆正在从左侧或右侧的第三车道上行驶。作为另一个示例,车道分配可以与文本值“中心车道”相关联,该文本值指示车辆正在中心车道上行驶。
306.服务器1230可以将导航信息存储在非暂时性计算机可读介质上,诸如硬盘驱动器、光盘、磁带、存储器等。服务器1230可以基于从多个车辆1205、1210、1215、1220和1225接
收的导航信息,为公共道路路段1200生成(例如,通过包含在服务器1230中的处理器)自主车辆道路导航模型的至少一部分,并且可以将该模型存储为稀疏地图的一部分。服务器1230可以基于从在不同时间在道路路段的车道上行驶的多个车辆(例如,1205、1210、1215、1220和1225)接收的众包数据(例如,导航信息)来确定与每个车道相关联的轨迹。服务器1230可以基于众包导航数据确定的多个轨迹来生成自主车辆道路导航模型或模型的一部分(例如,更新部分)。服务器1230可以将模型或模型的更新部分传输到在道路路段1200上行驶的自主车辆1205、1210、1215、1220和1225中的一个或多个,或者在稍后的时间在道路路段上行驶的任何其他自主车辆,以用于更新在车辆的导航系统中提供的现有自主车辆道路导航模型。自主车辆道路导航模型可以被自主车辆用于沿着公共道路路段1200的自主导航。
307.如上所述,自主车辆道路导航模型可以包含在稀疏地图(例如,图8中描绘的稀疏地图800)中。稀疏地图800可以包含与沿着道路的道路几何结构和/或地标相关的数据的稀疏记录,这可以为引导自主车辆的自主导航提供足够的信息,但是不需要过多的数据存储。在一些实施例中,自主车辆道路导航模型可以与稀疏地图800分开存储,并且当该模型被执行用于导航时,可以使用来自稀疏地图800的地图数据。在一些实施例中,自主车辆道路导航模型可以使用稀疏地图800中包含的地图数据来确定沿着道路路段1200的目标轨迹,以用于引导自主车辆1205、1210、1215、1220和1225或稍后沿着道路路段1200行驶的其他车辆的自主导航。例如,当自主车辆道路导航模型由包含在车辆1205的导航系统中的处理器执行时,该模型可以使处理器将基于从车辆1205接收的导航信息确定的轨迹与包含在稀疏地图800中的预定轨迹进行比较,以验证和/或校正车辆1205的当前行驶路线。
308.在自主车辆道路导航模型中,道路特征或目标轨迹的几何结构可以由三维空间中的曲线编码。在一个实施例中,曲线可以是三维样条,包含一个或多个连接三维多项式。如本领域技术人员所理解的,样条可以是由一系列多项式逐段定义的用于拟合数据的数值函数。用于拟合道路的三维几何结构数据的样条可以包含线性样条(一阶)、二次样条(二阶)、三次样条(三阶)、或任何其他样条(其他阶)、或它们的组合。样条可以包含连接(例如,拟合)道路的三维几何结构数据的数据点的不同阶的一个或多个三维多项式。在一些实施例中,自主车辆道路导航模型可以包含对应于沿着公共道路路段(例如,道路路段1200)或道路路段1200的车道的目标轨迹的三维样条。
309.如上所述,稀疏地图中包含的自主车辆道路导航模型可以包含其他信息,诸如沿着道路路段1200的至少一个地标的标识。地标可以在安装在车辆1205、1210、1215、1220和1225中的每一个上的相机(例如,相机122)的视场内可见。在一些实施例中,相机122可以捕获地标的图像。车辆1205上提供的处理器(例如,处理器180、190或处理单元110)可以处理地标的图像以提取地标的识别信息。地标识别信息,而不是地标的实际图像,可以存储在稀疏地图800中。地标识别信息可以需要比实际图像少得多的存储空间。其他传感器或系统(例如,gps系统)也可以提供地标的某些识别信息(例如,地标的位置)。地标可以包含交通标志、箭头标志、车道标志、虚线车道标志、交通灯、停车线、方向标志(例如,具有指示方向的箭头的高速公路出口标志、具有指向不同方向或地方的箭头的高速公路标志)、地标信标或灯柱中的至少一个。地标信标是指沿着道路路段安装的装置(例如,rfid装置),其向安装在车辆上的接收器传输或反射信号,使得当车辆经过该装置时,由车辆接收的信标和(例
如,从装置的gps定位确定的)装置的定位可以被用作要被包含在自主车辆道路导航模型和/或稀疏地图800中的地标。
310.至少一个地标的标识可以包含至少一个地标的位置。地标的位置可以基于使用与多个车辆1205、1210、1215、1220和1225相关联的传感器系统(例如,全球定位系统、基于惯性的定位系统、地标信标等)执行的位置测量来确定。在一些实施例中,地标的位置可以通过对不同车辆1205、1210、1215、1220和1225上的传感器系统通过多次驾驶检测、收集或接收的位置测量进行平均来确定。例如,车辆1205、1210、1215、1220和1225可以向服务器1230传输位置测量,服务器1230可以对位置测量进行平均,并将平均的位置测量用作地标的位置。地标的位置可以通过从后续驾驶中的车辆接收的测量来不断地细化。
311.地标的标识可以包含地标的大小。车辆(例如1205)上提供的处理器可以基于图像的分析来估计地标的物理大小。服务器1230可以通过不同的驾驶从不同的车辆接收相同地标的物理大小的多个估计。服务器1230可以对不同的估计进行平均,以得出地标的物理大小,并将地标大小存储在道路模型中。物理大小估计可用于进一步确定或估计从车辆到地标的距离。到地标的距离可以基于车辆的当前速度并且基于图像中出现的地标相对于相机的扩展的焦点的位置的扩展比例来估计。例如,到地标的距离可以通过z=v*dt*r/d来估计,其中v是车辆的速度,r是图像中从时间t1处的地标到扩展的焦点的距离,并且d是图像中从t1到t2的地标的距离改变。dt表示(t2-t1)。例如,到地标的距离可以通过z=v*dt*r/d来估计,其中v是车辆的速度,r是图像中地标和扩展焦点之间的距离,dt是时间间隔,d是地标沿着核线的图像位移。与上述等式等效的其他等式,诸如z=v*ω/δω,可以用于估计到地标的距离。这里,v是车辆速度,ω是图像长度(类似对象宽度),δω是该图像长度在单位时间内的改变。
312.当地标的物理大小已知时,到地标的距离也可以基于以下等式来确定:z=f*w/ω,其中f为焦距,w为地标的大小(如高度或宽度),ω为地标离开图像时的像素数。根据上述等式,可以使用δz=f*w*δω/ω2 f*δw/ω来计算距离z的改变,其中δw通过平均而衰减到零,并且其中δω是表示图像中边界框准确度的像素数。可以通过平均服务器侧的多个观测来计算估计地标的物理大小的值。距离估计的最终误差可以非常小。使用上述等式时,可能出现两个误差源,即δw和δω。它们对距离误差的贡献由δz=f*w*δω/ω2 f*δw/ω给出。然而,δw通过平均衰减到零;因此δz由δω(例如,图像中边界框的不准确度)确定。
313.对于未知尺寸的地标,可以通过在连续帧之间跟踪地标上的特征点来估计到地标的距离。例如,可以在两个或更多个图像帧之间跟踪出现在限速标志上的某些特征。基于这些跟踪的特征,可以生成每特征点的距离分布。距离估计可以从距离分布中提取。例如,距离分布中最频繁出现的距离可以用作距离估计。作为另一个示例,距离分布的平均可以用作距离估计。
314.图13示出了由多个三维样条1301、1302和1303表示的示例自主车辆道路导航模型。图13中所示的曲线1301、1302和1303仅用于说明目的。每个样条可以包含连接多个数据点1310的一个或多个三维多项式。每个多项式可以是一阶多项式、二阶多项式、三阶多项式或具有不同阶数的任何合适多项式的组合。每个数据点1310可以与从车辆1205、1210、1215、1220和1225接收的导航信息相关联。在一些实施例中,每个数据点1310可以与与地标
(例如,地标的大小、定位和识别信息)和/或道路签名轮廓(例如,道路几何结构、道路粗糙度轮廓、道路曲率轮廓、道路宽度轮廓)相关的数据相关联。在一些实施例中,一些数据点1310可以与地标相关的数据相关联,而其他数据点可以与道路签名轮廓相关的数据相关联。
315.图14示出了从五个分离的驾驶接收的原始定位数据1410(例如,gps数据)。如果一个驾驶同时被分离的车辆在相同的时间、被相同车辆在分离的时间、或被分离的车辆在分离的时间穿过,则该驾驶可以与另一驾驶分开。为了考虑定位数据1410中的误差以及相同车道内车辆的不同定位(例如,一个车辆可能比另一车辆更靠近车道的左侧),服务器1230可以使用一个或多个统计技术来生成地图骨架1420,以确定原始定位数据1410中的变化是否表示实际的偏离或统计误差。骨架1420内的每个路径可以链接回形成该路径的原始数据1410。例如,骨架1420内的a和b之间的路径链接到来自驾驶2、3、4和5而不是来自驾驶1的原始数据1410。骨架1420可以不足够详细以用于导航车辆(例如,因为与上述样条不同,骨架1420组合了相同道路上多个车道的驾驶),但是可以提供有用的拓扑信息并且可以用于定义交叉路口。
316.图15示出了通过其可以为地图骨架的路段内的稀疏地图(例如,骨架1420内的路段a至路段b)生成附加细节的示例。如图15所示,数据(例如自我运动数据、道路标志数据等)可以示出为沿驾驶的位置s(或s1或s2)的函数。服务器1230可以通过识别驾驶1510的地标1501、1503和1505与驾驶1520的地标1507和1509之间的唯一匹配来识别稀疏地图的地标。这种匹配算法可以得到地标1511、1513和1515的识别。然而,本领域技术人员将认识到,可以使用其他匹配算法。例如,概率优化可以用来代替唯一匹配或者与唯一匹配相结合。服务器1230可以纵向对齐驾驶以对齐匹配的地标。例如,服务器1230可以选择一个驾驶(例如,驾驶1520)作为参考驾驶,然后移位和/或弹性拉伸(多个)其他驾驶(例如,驾驶1510)以用于对齐。
317.图16示出了在稀疏地图中使用的对齐地标数据的示例。在图16的示例中,地标1610包括道路标志。图16的示例进一步描绘了来自多个驾驶1601、1603、1605、1607、1609、1611和1613的数据。在图16的示例中,来自驾驶1613的数据包含“幽灵”地标,并且服务器1230可以这样识别它,因为驾驶1601、1603、1605、1607、1609和1611都不包含驾驶1613中识别的地标附近的地标的标识。相应地,当地标确实出现的图像与地标没有出现的图像的比率超过阈值时,服务器1230可以接受潜在地标,和/或当地标没有出现的图像与地标确实出现的图像的比率超过阈值时,服务器1230可以拒绝潜在地标。
318.图17描绘了用于生成驾驶数据的系统1700,其可用于众包稀疏地图。如图17所示,系统1700可以包含相机1701和定位(locating)装置1703(例如,gps定位器)。相机1701和定位装置1703可以安装在车辆上(例如,车辆1205、1210、1215、1220和1225之一)。相机1701可以产生多个多种类型的数据,例如,自我运动数据、交通标志数据、道路数据等。相机数据和定位数据可以被分段成驾驶路段1705。例如,驾驶路段1705可以各自具有来自少于1千米的驾驶的相机数据和定位数据。
319.在一些实施例中,系统1700可以移除驾驶路段1705中的冗余。例如,如果地标出现在来自相机1701的多个图像中,则系统1700可以去除冗余数据,使得驾驶路段1705仅包含地标的定位的一个副本和与地标相关的任何元数据。作为进一步的示例,如果车道标志出
现在来自相机1701的多个图像中,系统1700可以去除冗余数据,使得驾驶路段1705仅包含车道标志的定位的一个副本和与车道标志相关的任何元数据。
320.系统1700还包含服务器(例如,服务器1230)。服务器1230可以从车辆接收驾驶路段1705,并将驾驶路段1705重组为单个驾驶1707。当在车辆和服务器之间传输数据时,这种布置可以减少带宽需求,同时还允许服务器存储与整个驾驶相关的数据。
321.图18描绘了进一步被配置用于众包稀疏地图的图17的系统1700。如图17所示,系统1700包含车辆1810,其使用例如相机(其产生例如自我运动数据、交通标志数据、道路数据等)和定位装置(例如gps定位器)来捕获驾驶数据。如图17所示,车辆1810将收集的数据分段成驾驶路段(在图18中描绘为“ds1 1”、“ds2 1”、“dsn 1”)。然后,服务器1230接收驾驶路段,并从接收到的路段重建驾驶(在图18中被描述为“驾驶1”)。
322.如图18中进一步描绘的,系统1700还从附加车辆接收数据。例如,车辆1820还使用例如相机(其产生例如自我运动数据、交通标志数据、道路数据等)和定位装置(例如gps定位器)来捕获驾驶数据。类似于车辆1810,车辆1820将收集的数据分段成驾驶路段(在图18中描绘为“ds1 2”、“ds2 2”、“dsn 2”)。然后,服务器1230接收驾驶路段,并从接收到的路段重建驾驶(在图18中被描述为“驾驶2”)。可以使用任何数量的附加车辆。例如,图18还包括“汽车n”,该“汽车n”捕获驾驶数据,将其分段成驾驶路段(在图18中描绘为“ds1 n”、“ds2 n”、“dsn n”),以及将其传送到服务器1230以用于重建成驾驶(在图18中描绘为“驾驶n”)。
323.如图18所示,服务器1230可以使用从多个车辆(例如,“汽车1”(也标记为车辆1810)、“汽车2”(也标记为车辆1820)和“汽车n”)收集的重建驾驶(例如,“驾驶1”、“驾驶2”和“驾驶n”)来构建稀疏地图(描绘为“地图”)。
324.图19是示出用于生成用于沿着道路路段的自主车辆导航的稀疏地图的示例过程1900的流程图。过程1900可以由服务器1230中包含的一个或多个处理装置来执行。
325.过程1900可以包含接收当一个或多个车辆穿过道路路段时获取的多个图像(步骤1905)。服务器1230可以从包含在车辆1205、1210、1215、1220和1225中的一个或多个内的相机接收图像。例如,当车辆1205沿着道路路段1200行驶时,相机122可以捕获车辆1205周围的环境的一个或多个图像。在一些实施例中,服务器1230还可以接收已经被车辆1205上的处理器移除冗余的被剥离(stripped down)的图像数据,如上文参考图17所讨论的。
326.过程1900可以进一步包含基于多个图像识别沿着道路路段延伸的道路表面特征的至少一个线表示(步骤1910)。每个线表示可以表示沿着基本上对应于道路表面特征的道路路段的路径。例如,服务器1230可以分析从相机122接收的环境图像以识别路缘或车道标志,并确定沿着与路缘或车道标志相关联的道路路段1200的行驶轨迹。在一些实施例中,轨迹(或线表示)可以包含样条、多项式表示或曲线。服务器1230可以基于在步骤1905处接收的相机自我运动(例如,三维平移和/或三维旋转运动)来确定车辆1205的行驶的轨迹。
327.过程1900还可以包含基于多个图像识别与道路路段相关联的多个地标(步骤1910)。例如,服务器1230可以分析从相机122接收的环境图像,以识别一个或多个地标,诸如沿着道路路段1200的道路标志。服务器1230可以使用对当一个或多个车辆穿过道路路段时获取的多个图像的分析来识别地标。为了使能众包,分析可以包含关于接受和拒绝与道路路段相关联的可能地标的规则。例如,分析可以包含当地标确实出现的图像与地标没有出现的图像的比率超过阈值时接受潜在地标,和/或当地标没有出现的图像与地标确实出
现的图像的比率超过阈值时拒绝潜在地标。
328.过程1900可以包含由服务器1230执行的其他操作或步骤。例如,导航信息可以包含车辆沿着道路路段行驶的目标轨迹,并且过程1900可以包含由服务器1230聚类与在道路路段上行驶的多个车辆相关的车辆轨迹,并且基于聚类的车辆轨迹确定目标轨迹,如下面进一步详细讨论的。聚类车辆轨迹可以包含由服务器1230基于车辆的绝对航向或车辆的车道分配中的至少一个,将与在道路路段上行驶的车辆相关的多个轨迹聚类成多个聚类。生成目标轨迹可以包含由服务器1230平均聚类的轨迹。作为进一步的示例,过程1900可以包含对齐在步骤1905中接收的数据。如上所述,由服务器1230执行的其他过程或步骤也可以包含在过程1900中。
329.所公开的系统和方法可以包含其他特征。例如,所公开的系统可以使用局部坐标,而不是全局坐标。对于自主驾驶,一些系统可能以世界坐标呈现数据。例如,可以使用地球表面上的经度和纬度坐标。为了使用地图进行转向,主车辆可以确定其相对于地图的位置和朝向。在车上使用gps装置似乎是很自然的,以便在地图上定位车辆,并以便找到本体参考帧和世界参考帧(例如,北、东和下)之间的旋转变换。一旦本体参考帧与地图参考帧对齐,则期望的路线可以在本体参考帧中表达,并且可以计算或生成转向命令。
330.所公开的系统和方法可以实现具有低足迹模型的自主车辆导航(例如,转向控制),这些模型可以由自主车辆自己收集,而无需昂贵的勘测仪器的帮助。为了支持自主导航(例如,转向应用),道路模型可以包含稀疏地图,该稀疏地图具有道路的几何结构、其车道结构和地标,该地标可以用于确定车辆沿着包含在模型中的轨迹的定位或位置。如上所述,稀疏地图的生成可以由远程服务器来执行,该远程服务器与在道路上行驶的车辆通信并从车辆接收数据。数据可以包含感测的数据、基于感测数据重建的轨迹、和/或可以表示修改的重建轨迹的推荐轨迹。如下所述,服务器可以将模型传输回车辆或稍后在道路上行驶的其他车辆,以帮助自主导航。
331.图20示出了服务器的框图。服务器1230可以包含通信单元2005,该通信单元2005可以包含硬件组件(例如,通信控制电路、开关和天线)和软件组件(例如,通信协议、计算机代码)。例如,通信单元2005可以包含至少一个网络接口。服务器1230可以通过通信单元2005与车辆1205、1210、1215、1220和1225通信。例如,服务器1230可以通过通信单元2005接收从车辆1205、1210、1215、1220和1225传输的导航信息。服务器1230可以通过通信单元2005将自主车辆道路导航模型分配给一个或多个自主车辆。
332.服务器1230可以包含至少一个非暂时性存储介质2010,诸如硬盘驱动器、光盘、磁带等。存储装置1410可以被配置为存储数据,诸如从车辆1205、1210、1215、1220和1225接收的导航信息和/或服务器1230基于导航信息生成的自主车辆道路导航模型。存储装置2010可以被配置为存储任何其他信息,诸如稀疏地图(例如,上面参考图8讨论的稀疏地图800)。
333.除了或代替存储装置2010,服务器1230可以包含存储器2015。存储器2015可以类似于或不同于存储器140或150。存储器2015可以是非暂时性存储器,诸如闪速存储器、随机存取存储器等。存储器2015可以被配置为存储数据,诸如可由处理器(例如,处理器2020)执行的计算机代码或指令、地图数据(例如,稀疏地图800的数据)、自主车辆道路导航模型和/或从车辆1205、1210、1215、1220和1225接收的导航信息。
334.服务器1230可以包含至少一个处理装置2020,该至少一个处理装置2020被配置为
执行存储在存储器2015中的计算机代码或指令,以执行各种功能。例如,处理装置2020可以分析从车辆1205、1210、1215、1220和1225接收的导航信息,并且基于该分析生成自主车辆道路导航模型。处理装置2020可以控制通信单元1405以将自主车辆道路导航模型分配给一个或多个自主车辆(例如,车辆1205、1210、1215、1220和1225中的一个或多个或者稍后在道路路段1200上行驶的任何车辆)。处理装置2020可以类似于或不同于处理器180、190或处理单元110。
335.图21示出了存储器2015的框图,存储器2015可以存储用于执行一个或多个操作的计算机代码或指令,以用于生成用于自主车辆导航的道路导航模型。如图21所示,存储器2015可以存储用于执行用于处理车辆导航信息的操作的一个或多个模块。例如,存储器2015可以包含模型生成模块2105和模型分配模块2110。处理器2020可以执行存储在包含在存储器2015中的任何模块2105和2110中的指令。
336.模型生成模块2105可以存储指令,当由处理器2020执行时,该指令可以基于从车辆1205、1210、1215、1220和1225接收的导航信息,为公共道路路段(例如,道路路段1200)生成自主车辆道路导航模型的至少一部分。例如,在生成自主车辆道路导航模型时,处理器2020可以将沿着公共道路路段1200的车辆轨迹聚类成不同的聚类。处理器2020可以基于对于每个不同聚类的聚类的车辆轨迹来确定沿着公共道路路段1200的目标轨迹。这样的操作可以包含在每个聚类中找到聚类的车辆轨迹的均值(mean)或平均(average)轨迹(例如,通过平均表示聚类的车辆轨迹的数据)。在一些实施例中,目标轨迹可以与公共道路路段1200的单个车道相关联。
337.道路模型和/或稀疏地图可以存储与道路路段相关联的轨迹。这些轨迹可以被称为目标轨迹,其被提供给自主车辆用于自主导航。目标轨迹可以从多个车辆接收,或者可以基于从多个车辆接收的实际轨迹或推荐轨迹(具有一些修改的实际轨迹)生成。道路模型或稀疏地图中包含的目标轨迹可以用从其他车辆接收的新轨迹连续更新(例如,平均)。
338.在道路路段上行驶的车辆可以通过各种传感器收集数据。该数据可以包含地标、道路签名轮廓、车辆运动(例如,加速度计数据、速度数据)、车辆位置(例如,gps数据),并且可以重建实际轨迹本身,或者将数据传输到服务器,该服务器将重建车辆的实际轨迹。在一些实施例中,车辆可以向服务器1230传输与轨迹(例如,任意参考帧中的曲线)、地标数据和沿着行驶路径的车道分配相关的数据。以多种驾驶方式沿相同道路路段行驶的各种车辆可以具有不同的轨迹。服务器1230可以从通过聚类过程从车辆接收的轨迹中识别与每个车道相关联的路线或轨迹。
339.图22示出了聚类与车辆1205、1210、1215、1220和1225相关联的车辆轨迹以用于确定公共道路路段(例如,道路路段1200)的目标轨迹的过程。从聚类过程确定的目标轨迹或多个目标轨迹可以包含在自主车辆道路导航模型或稀疏地图800中。在一些实施例中,沿着道路路段1200行驶的车辆1205、1210、1215、1220和1225可以向服务器1230传输多个轨迹2200。在一些实施例中,服务器1230可以基于从车辆1205、1210、1215、1220和1225接收的地标、道路几何结构和车辆运动信息来生成轨迹。为了生成自主车辆道路导航模型,服务器1230可以将车辆轨迹1600聚类成多个聚类2205、2210、2215、2220、2225和2230,如图22所示。
340.可以使用各种标准来执行聚类。在一些实施例中,聚类中的所有驾驶在沿着道路
路段1200的绝对航向方面可以是相似的。绝对航向可以从车辆1205、1210、1215、1220和1225接收的gps信号中获得。在一些实施例中,可以使用航位推算来获得绝对航向。如本领域技术人员所理解的,航位推算可用于通过使用先前确定的位置、估计速度等来确定车辆1205、1210、1215、1220和1225的当前位置并因此确定其航向。按绝对航向聚类的轨迹可以有助于沿着道路识别路线。
341.在一些实施例中,关于沿着道路路段1200上的驾驶的车道分配(例如,在交叉口之前和之后的相同车道中),聚类中的所有驾驶可以是相似的。通过车道分配聚类的轨迹可以有助于沿着道路识别车道。在一些实施例中,两个标准(例如,绝对航向和车道分配)都可以用于聚类。
342.在每个聚类2205、2210、2215、2220、2225和2230中,轨迹可以被平均以获得与特定聚类相关联的目标轨迹。例如,可以对来自与相同车道聚类相关联的多个驾驶的轨迹进行平均。平均轨迹可以是与特定车道相关联目标轨迹。为了平均一组轨迹,服务器1230可以选择任意轨迹c0的参考帧。对于所有其他轨迹(c1,

,cn),服务器1230可以找到将ci映射到c0的刚性变换,其中i=1,2,

,n,其中n是正整数,对应于包含在聚类中的轨迹的总数。服务器1230可以计算c0参考帧中的均值曲线或轨迹。
343.在一些实施例中,地标可以定义不同驾驶之间的弧长匹配,这可以用于轨迹与车道的对齐。在一些实施例中,交叉口之前和之后的车道标志可用于轨迹与车道的对齐。
344.为了从轨迹组装车道,服务器1230可以选择任意车道的参考帧。服务器1230可以将部分重叠的车道映射到选择的参考帧。服务器1230可以继续映射,直到所有车道都在相同的参考帧中。彼此相邻的车道可以对齐,就好像它们是相同的车道,稍后它们可以被横向移位。
345.沿着道路路段辨识的地标可以首先在车道级,然后在交叉口级被映射到公共参考帧。例如,相同的地标可以被多个驾驶中的多个车辆辨识多次。不同驾驶中接收到的关于相同地标的数据可能略有不同。这样的数据可以被平均并映射到相同的参考帧,诸如c0参考帧。附加地或替代地,可以计算在多个驾驶中接收的相同地标的数据的方差。
346.在一些实施例中,道路路段120的每个车道可以与目标轨迹和某些地标相关联。目标轨迹或多个这样的目标轨迹可以被包含在自主车辆道路导航模型中,其可以稍后被沿着相同道路路段1200行驶的其他自主车辆使用。当车辆沿着道路路段1200行驶时,由车辆1205、1210、1215、1220和1225识别的地标可以与目标轨迹相关联地被记录。目标轨迹和地标的数据可以利用在后续驾驶中从其他车辆接收的新数据被连续地或周期性地更新。
347.对于自主车辆的定位,所公开的系统和方法可以使用扩展卡尔曼滤波器。车辆的定位可以基于三维位置数据和/或三维朝向数据、通过自我运动的积分对车辆的当前定位前方的未来定位的预测来确定。可以通过地标的图像观察来校正或调整车辆的定位。例如,当车辆检测到由相机捕获的图像内的地标时,该地标可以与存储在道路模型或稀疏地图800内的已知地标进行比较。已知地标可以具有存储在道路模型和/或稀疏地图800中的沿着目标轨迹的已知定位(例如,gps数据)。基于地标的当前速度和图像,可以估计从车辆到地标的距离。车辆沿着目标轨迹的定位可以基于到地标的距离和地标的已知定位(存储在道路模型或稀疏地图800中)来调整。存储在道路模型和/或稀疏地图800中的地标的位置/定位数据(例如,来自多个驾驶的均值)可以被假定为准确的。
348.在一些实施例中,所公开的系统可以形成闭环子系统,其中车辆六个自由度定位(例如,三维位置数据加上三维朝向数据)的估计可以用于自主车辆的导航(例如,对自主车辆的车轮进行转向)以到达期望的点(例如,存储的前方1.3秒)。反过来,从转向和实际导航测量的数据可用于估计六个自由度定位。
349.在一些实施例中,沿着道路的杆(pole),诸如灯柱和电力或电缆线杆可以用作定位车辆的地标。诸如交通标志、交通灯、道路上的箭头、停车线以及沿着道路路段的对象的静态特征(feature)或签名(signature)的其他地标也可以用作定位车辆的地标。当杆用于定位时,可以使用杆的x观察(即从车辆的视角),而不是y观察(即到杆的距离),因为杆的底部可能被遮挡,有时它们不在道路平面上。
350.图23示出了用于车辆的导航系统,其可以用于使用众包稀疏地图的自主导航。为了说明,车辆被称为车辆1205。图23中所示的车辆可以是本文公开的任何其他车辆,包含例如车辆1210、1215、1220和1225,以及其他实施例中所示的车辆200。如图12所示,车辆1205可以与服务器1230通信。车辆1205可以包含图像捕获装置122(例如,相机122)。车辆1205可以包含导航系统2300,该导航系统2300被配置用于为车辆1205在道路(例如,道路路段1200)上行驶提供导航引导。车辆1205还可以包含其他传感器,例如速度传感器2320和加速度计2325。速度传感器2320可以被配置为检测车辆1205的速度。加速度计2325可以被配置为检测车辆1205的加速或减速。图23中所示的车辆1205可以是自主车辆,并且导航系统2300可以用于为自主驾驶提供导航引导。替代地,车辆1205也可以是非自主的、人类控制的车辆,并且导航系统2300仍然可以用于提供导航引导。
351.导航系统2300可以包含被配置为通过通信路径1235与服务器1230通信的通信单元2305。导航系统2300还可以包含被配置为接收和处理gps信号的gps单元2310。导航系统2300还可以包含至少一个处理器2315,该至少一个处理器2315被配置为处理数据,诸如gps信号、来自稀疏地图800的地图数据(其可以存储在车辆1205上提供的存储装置上和/或从服务器1230接收)、由道路轮廓传感器2330感测的道路几何结构、由相机122捕获的图像和/或从服务器1230接收的自主车辆道路导航模型。道路轮廓传感器2330可以包含用于测量不同类型的道路轮廓(诸如道路表面粗糙度、道路宽度、道路高度、道路曲率等)的不同类型的装置。例如,道路轮廓传感器2330可以包含测量车辆的悬架2305的运动以推导道路粗糙度轮廓的装置。在一些实施例中,道路轮廓传感器2330可以包含雷达传感器,以测量从车辆1205到道路边(例如,道路边上的障碍物)的距离,从而测量道路的宽度。在一些实施例中,道路轮廓传感器2330可以包含被配置用于测量道路的上下标高的装置。在一些实施例中,道路轮廓传感器2330可以包含被配置为测量道路曲率的装置。例如,相机(例如,相机122或另一个相机)可以用于捕获示出道路曲率的道路图像。车辆1205可以使用这样的图像来检测道路曲率。
352.至少一个处理器2315可以被编程为从相机122接收与车辆1205相关联的至少一个环境图像。至少一个处理器2315可以分析至少一个环境图像以确定与车辆1205相关的导航信息。导航信息可以包含与车辆1205沿着道路路段1200行驶相关的轨迹。至少一个处理器2315可以基于相机122(以及由此的车辆)的运动来确定轨迹,例如三维平移和三维旋转运动。在一些实施例中,至少一个处理器2315可以基于对由相机122获取的多个图像的分析来确定相机122的平移和旋转运动。在一些实施例中,导航信息可以包含车道分配信息(例如,
车辆1205沿着道路路段1200行驶在哪个车道中)。从车辆1205传输到服务器1230的导航信息可以被服务器1230用来生成和/或更新自主车辆道路导航模型,该模型可以从服务器1230传输回车辆1205,以用于为车辆1205提供自主导航引导。
353.至少一个处理器2315还可以被编程为将导航信息从车辆1205传输到服务器1230。在一些实施例中,导航信息可以与道路信息一起被传输到服务器1230。道路定位信息可以包含由gps单元2310接收的gps信号、地标信息、道路几何结构、车道信息等中的至少一个。至少一个处理器2315可以从服务器1230接收自主车辆道路导航模型或模型的一部分。从服务器1230接收的自主车辆道路导航模型可以包含基于从车辆1205传输到服务器1230的导航信息的至少一个更新。从服务器1230传输到车辆1205的模型部分可以包含模型的更新部分。至少一个处理器2315可以基于接收到的自主车辆道路导航模型或模型的更新部分来引起车辆1205的至少一个导航操纵(例如,转向,诸如转弯、制动、加速、经过另一车辆等)。
354.至少一个处理器2315可以被配置为与车辆1205中包含的各种传感器和组件通信,包含通信单元1705、gps单元2315、相机122、速度传感器2320、加速度计2325和道路轮廓传感器2330。至少一个处理器2315可以从各种传感器和组件收集信息或数据,并通过通信单元2305将信息或数据传输到服务器1230。替代地或附加地,车辆1205的各种传感器或组件也可以与服务器1230通信,并将由传感器或组件收集的数据或信息传输到服务器1230。
355.在一些实施例中,车辆1205、1210、1215、1220和1225可以彼此通信,并且可以彼此共享导航信息,使得车辆1205、1210、1215、1220和1225中的至少一个可以例如基于由其他车辆共享的信息,使用众包生成自主车辆道路导航模型。在一些实施例中,车辆1205、1210、1215、1220和1225可以彼此共享导航信息,并且每个车辆可以更新其自己的车辆中提供的自主车辆道路导航模型。在一些实施例中,车辆1205、1210、1215、1220和1225中的至少一个(例如,车辆1205)可以用作中枢车辆(hub vehicle)。中枢车辆(例如,车辆1205)的至少一个处理器2315可以执行由服务器1230执行的一些或所有功能。例如,中枢车辆的至少一个处理器2315可以与其他车辆通信,并从其他车辆接收导航信息。中枢车辆的至少一个处理器2315可以基于从其他车辆接收的共享信息生成自主车辆道路导航模型或对模型的更新。中枢车辆的至少一个处理器2315可以将自主车辆道路导航模型或对模型的更新传输到其他车辆,以提供自主导航引导。
356.基于稀疏地图的导航
357.如前所述,包含稀疏地图800的自主车辆道路导航模型可以包括与道路路段相关联的多个映射车道标志和多个映射对象/特征。如下文更详细讨论的,当自主车辆导航时,可以使用这些映射车道标志、对象和特征。例如,在一些实施例中,映射对象和特征可以用于相对于地图定位主车辆(例如,相对于映射目标轨迹)。映射车道标志可以用于(例如,作为检查)确定相对于计划的目标轨迹的横向位置和/或朝向。利用该位置信息,自主车辆能够调整航向方向以匹配目标轨迹在确定位置处的方向。
358.车辆200可以被配置为检测给定道路路段中的车道标志。道路路段可以包括道路上的用于引导道路上的车辆交通的任何标志。例如,车道标志可以是区别行驶车道的边缘的实线或虚线。车道标志还可以包括双线,诸如双实线、双虚线或者实线和虚线的组合,以指示例如在相邻车道中是否允许超车(passing)。车道标志还可以包括指示例如出口匝道的减速车道的高速公路入口和出口标志,或者指示车道为仅转弯或车道即将结束的虚线。
标志还可以指示工作区、临时变道、通过交叉路口的行驶路径、中央分隔带、专用车道(例如,自行车道、hov车道等)、或其他各种标志(例如,人行横道、减速丘(speed hump)、铁路道口(railway crossign)、停车线等)。
359.车辆200可以使用相机,诸如包括在图像获取单元120中的图像捕获装置122和124,来捕获周围车道标志的图像。车辆200可以基于在一个或多个捕获的图像中识别的特征来分析图像,以检测与车道标志相关联的点定位。这些点定位可以被上传到服务器以表示稀疏地图800中的车道标志。取决于相机的位置和视场,可以从单个图像中同时检测车辆两侧的车道标志。在其他实施例中,不同的相机可以用于在车辆的多个侧面上捕获图像。可以将车道标志存储为稀疏地图800中的样条或一系列点,而不是上传这些标志的实际图像,从而减小稀疏地图800的大小和/或必须由车辆远程上传的数据。
360.图24a-图24d示出了可由车辆200检测以表示特定车道标志的示例性点定位。类似于如上所述的地标,车辆200可以使用各种图像辨识算法或软件来识别捕获的图像内的点定位。例如,车辆200可以辨识与特定车道标志相关联的一系列边缘点、拐角点或各种其他点定位。图24a示出了车辆200可以检测到的实线车道标志2410。车道标志2410可以表示道路的外侧边缘,由白色实线表示。如图24a所示,车辆200可以被配置为检测沿着车道标志的多个边缘定位点2411。定位点2411可以被收集来以足以在稀疏地图中创建映射车道标志的任何间隔处表示车道标志。例如,车道标志可以由检测到的边缘的每米一个点、检测到的边缘的每五米一个点或者以其他合适的间距来表示。在一些实施例中,间距可以由其他因素确定,而不是以设定的间隔确定,诸如例如基于在该处车辆200对检测到的点的定位具有最高置信度排序的点来确定。虽然图24a示出了车道标志2410的内部边缘上的边缘定位点,这些点可以在线的外部边缘上或者沿着两个边缘被收集。此外,虽然在图24a中示出了单个线,但是对于双实线可以检测到相似的边缘点。例如,可以沿着一条或两条实线的边缘来检测点2411。
361.取决于车道标志的类型或形状,车辆200也可以不同地表示车道标志。图24b示出了可由车辆200检测的示例性虚线车道标志2420。车辆可以检测表示车道虚线的拐角的一系列拐角点2421,以定义虚线的完全边界,而不是像图24a中那样识别边缘点。虽然图24b示出了被定位的给定虚线标志的每个拐角,但是车辆200可以检测或上传图中所示的点的子集。例如,车辆200可以检测给定虚线标志的前边缘(leading edge)或前角(leading corner),或者可以检测最靠近车道内部的两个拐角点。此外,不是每个虚线标志都可以被捕获,例如,车辆200可以捕获和/或记录表示虚线标志的(例如,每隔一个、每三个、每五个等)样本的点,或者表示预定间距(例如,每米、每五米、每十米等)的虚线标志的点。也可以检测类似的车道标志(诸如显示车道是用于出口匝道的标志、特定车道即将结束的标志、或者可以具有可检测的拐角点的其他各种车道标志)的拐角点。也可以检测由双虚线或者实线和虚线的组合组成的车道标志的拐角点。
362.在一些实施例中,被上传到服务器以生成映射车道标志的点可以表示除了检测到的边缘点或拐角点之外的其他点。图24c示出了可以表示给定车道标志的中心线的一系列点。例如,实线车道2410可以由沿着车道标志的中心线2440的中心线点2441表示。在一些实施例中,车辆200可以被配置为使用各种图像辨识技术(诸如卷积神经网络(convolutional neural network,cnn)、尺度不变特征变换(scale-invariant feature transform,sift)、
定向梯度直方图(histogram of oriented gradient,hog)特征或其他技术)来检测这些中心点。替代地,车辆200可以检测其他点,诸如图24a所示的边缘点2411,并且可以例如通过检测沿着每个边缘的点并确定边缘点之间的中点来计算中心线点2441。类似地,虚线车道标志2420可以由沿着车道标志的中心线2450的中心线点2451表示。中心线点可以位于虚线的边缘,如24c图所示,或者沿着中心线的各种其他定位。例如,每个虚线可以由虚线的几何中心的单个点来表示。这些点也可以沿着中心线以预定间隔(例如,每米、每5米、每10米等)间距开。中心线点2451可以由车辆200直接检测,或者可以基于其他检测到的参考点(诸如拐角点2421)来计算,如图24b所示。使用与如上所述的技术类似的技术,中心线也可用于表示其他车道标志类型,诸如双线。
363.在一些实施例中,车辆200可以识别表示其他特征的点,诸如两个相交车道标志之间的顶点。图24d示出了表示两个车道标志2460和2465之间的交叉路口的示例性点。车辆200可以计算表示两个车道标志之间的交叉路口的顶点2466。例如,车道标志2460或2465中的一个可以表示路段中的列车交叉区域或其他交叉区域。虽然车道标志2460和2465被示为彼此垂直交叉,但是可以检测各种其他配置。例如,车道标志2460和2465可以以其他角度交叉,或者一个或两个车道标志可以终止于顶点2466。类似的技术也可以应用于虚线或其他车道标志类型之间的交叉路口。除了顶点2466之外,还可以检测各种其他点2467,从而提供关于车道标志2460和2465的朝向的进一步信息。
364.车辆200可以将现实世界坐标与车道标志的每个检测点相关联。例如,可以生成定位标识符(包括每个点的坐标)以上传到服务器以用于映射车道标志。定位标识符还可以包括关于点的其他识别信息,包括点是否表示拐角点、边缘点、中心点等。因此,车辆200可以被配置为基于对图像的分析来确定每个点的现实世界位置。例如,车辆200可以检测图像中的其他特征(诸如如上所述的各种地标)以定位车道标志的现实世界位置。这可以包括确定车道标志在图像中相对于检测到的地标的定位,或者基于检测到的地标来确定车辆的位置,然后确定从车辆(或车辆的目标轨迹)到车道标志的距离。当地标不可用时,车道标志点的定位可以相对于基于航位推算(dead reckoning)确定的车辆位置来确定。被包括在定位标识符中的现实世界坐标可以被表示为绝对坐标(例如,纬度/经度坐标),或者可以相对于其他特征,诸如基于沿着目标轨迹的纵向位置和距目标轨迹的横向距离。定位标识符然后可以被上传到服务器以用于在导航模型(诸如稀疏地图800)中生成映射车道标志。在一些实施例中,服务器可以构造表示道路路段的车道标志的样条。替代地,车辆200可以生成样条并将其上传到服务器以记录在导航模型中。
365.图24e示出了包括映射车道标志的相对应的道路路段的示例性导航模型或稀疏地图。稀疏地图可以包括车辆沿着道路路段所遵循的目标轨迹2475。如上所述,目标轨迹2475可以表示车辆在相对应的道路路段行驶时所采取的理想路径,或者可以位于道路上的其他地方(例如,道路的中心线等)。目标轨迹2475可以用如上所述的各种方法来计算,例如,基于车辆穿过相同道路路段的两个或更多个重建轨迹的聚集(例如,加权组合)来计算。
366.在一些实施例中,可以针对所有车辆类型和针对所有道路、车辆和/或环境情况同等地生成目标轨迹。然而,在其他实施例中,在生成目标轨迹时也可以考虑各种其他因素或变量。可以针对不同类型的车辆(例如,私家车、轻型卡车和全挂车)生成不同的目标轨迹。例如,与较大的半挂式卡车相比,可以针对小的私家车生成转弯半径相对较小的目标轨迹。
在一些实施例中,也可以考虑道路、车辆和环境情况。例如,可以针对不同的道路情况(例如,潮湿、下雪、结冰、干燥等)、车辆情况(例如,轮胎情况或估计轮胎情况、制动情况或估计制动情况、剩余燃料量等)、或者环境因素(例如,一天中的时间、能见度、天气等)生成不同的目标轨迹。目标轨迹还可以取决于特定道路路段的一个或多个方面或特征(例如,限速、转弯频率和大小、坡度等)。在一些实施例中,各种用户设定也可用于确定目标轨迹,诸如设定的驾驶模式(例如,期望的驾驶积极性、经济模式等)。
367.稀疏地图还可以包括表示沿着道路路段的车道标志的映射车道标志2470和2480。映射车道标志可以由多个定位标识符2471和2481表示。如上所述,定位标识符可以包括与检测到的车道标志相关联的点在现实世界坐标中的定位。类似于模型中的目标轨迹,车道标志也可以包括高程数据,并且可以被表示为三维空间中的曲线。例如,曲线可以是连接合适阶数的三维多项式的样条。曲线可以基于定位标识符来计算。映射车道标志还可以包括关于车道标志的其他信息或元数据,诸如车道标志的类型(例如,行驶方向相同的两个车道之间的车道标志、行驶方向相反的两条车道之间的车道标志、路缘等)的标识符和/或车道标志的其他特性(例如,实线、虚线、单线、双线、黄色、白色等)。在一些实施例中,例如,可以使用众包技术在模型内连续地更新映射车道标志。相同车辆可以在行驶相同道路路段的多个时机期间上传定位标识符,或者可以从在不同时间行驶该道路路段的多个车辆(诸如1205、1210、1215、1220和1225)中选择数据。稀疏地图800然后可以基于从车辆接收并存储在系统中的后续定位标识符来更新或细化。随着映射车道标志被更新和细化,更新后的道路导航模型和/或稀疏地图可以被分配给多个自主车辆。
368.在稀疏地图中生成映射车道标志还可以包括基于图像中或实际车道标志本身中的异常来检测和/或减轻误差。图24f示出了与检测车道标志2490相关联的示例性异常2495。异常2495可能出现在由车辆200从例如阻碍相机对车道标志的视野的对象、镜头上的碎屑等捕获的图像中。在一些情况下,异常可能是由于车道标志本身造成的,车道标志可能被损坏或磨损,或者被道路上的灰尘、碎屑、水、雪或其他材料部分地覆盖。异常2495可能导致车辆200所检测到的误差点2491。稀疏地图800可以提供正确的映射车道标志并排除误差。在一些实施例中,车辆200可以例如通过检测图像中的异常2495,或者通过基于异常前后的检测到的车道标志点识别误差,来检测误差点2491。基于检测到异常,车辆可以省略点2491,或者可以将其调整为与其他检测到的点一致。在其他实施例中,例如,通过基于在相同行程期间上传的其他点或者基于来自沿着相同道路路段的先前行程的数据的聚集确定该点在预期阈值之外,可以在该点已经上传之后校正该误差。
369.导航模型和/或稀疏地图中的映射车道标志也可用于穿过相对应的道路的自主车辆的导航。例如,沿着目标轨迹导航的车辆可以周期性地使用稀疏地图中的映射车道标志来将其自身与目标轨迹对齐。如上所述,在地标之间,车辆可以基于航位推算来导航,其中车辆使用传感器来确定其自我运动并估计其相对于目标轨迹的位置。误差可能随着时间的推移而累积,并且车辆相对于目标轨迹的位置确定可能变得越来越不准确。相应地,车辆可以使用出现在稀疏地图800中的车道标志(以及它们的已知定位)来减少位置确定中由航位推算引起的误差。以这种方式,被包括在稀疏地图800中的所识别的车道标志可以用作导航锚,可以从该导航锚确定车辆相对于目标轨迹的准确位置。
370.图25a示出了可用于基于映射车道标志的导航的车辆周围环境的示例性图像
2500。图像2500可以例如由车辆200通过包括在图像获取单元120中的图像捕获装置122和124来捕获。图像2500可以包括至少一个车道标志2510的图像,如图25a所示。图像2500还可以包括一个或多个地标2521,诸如道路标志,以用于如上所述的导航。图25a中所示的没有出现在捕获图像2500中但是被车辆200检测和/或确定的一些元素(诸如元素2511、2530和2520)也被示出用于参考。
371.使用上面参考图24a-图24d和图24f描述的各种技术,车辆可以分析图像2500以识别车道标志2510。可以检测对应于图像中车道标志的特征的各种点2511。例如,点2511可以对应于车道标志的边缘、车道标志的拐角、车道标志的中点、两个相交车道标志之间的顶点或各种其他特征或定位。点2511可以被检测为对应于存储在从服务器接收的导航模型中的点的定位。例如,如果接收到包含表示映射车道标志的中心线的点的稀疏地图,则还可以基于车道标志2510的中心线来检测点2511。
372.车辆还可以确定由元素2520表示的并且沿着目标轨迹定位的纵向位置。例如,通过检测图像2500内的地标2521并将测量的定位与存储在道路模型或稀疏地图800中的已知地标定位进行比较,可以从图像2500中确定纵向位置2520。然后可以基于到地标的距离和地标的已知定位来确定车辆沿着目标轨迹的定位。纵向位置2520还可以从除了用于确定车道标志的位置的图像之外的图像中确定。例如,纵向位置2520可以通过在来自图像获取单元120内的其他相机的、与图像2500同时或接近同时拍摄的图像中检测地标来确定。在一些情况下,车辆可能不在用于确定纵向位置2520的任何地标或其他参考点附近。在这种情况下,车辆可以基于航位推算来导航,并且因此可以使用传感器来确定其自我运动并估计相对于目标轨迹的纵向位置2520。车辆还可以确定表示在所捕获的(多个)图像中观察到的车辆和车道标志2510之间的实际距离的距离2530。在确定距离2530时,可以考虑相机角度、车辆的速度、车辆的宽度或各种其他因素。
373.图25b示出了基于道路导航模型中映射车道标志的车辆的横向定位校正。如上所述,车辆200可以使用由车辆200捕获的一个或多个图像来确定车辆200和车道标志2510之间的距离2530。车辆200还可以访问道路导航模型(诸如稀疏地图800),道路导航模型可以包括映射车道标志2550和目标轨迹2555。映射车道标志2550可以使用如上所述的技术来建模,例如使用由多个车辆捕获的众包定位标识符。目标轨迹2555也可以使用先前描述的各种技术来生成。车辆200还可以确定或估计沿着目标轨迹2555的纵向位置2520,如以上参考图25a所述。车辆200然后可以基于与纵向位置2520相对应的、目标轨迹2555和映射车道标志2550之间的横向距离来确定预期距离2540。车辆200的横向定位可以通过将使用所捕获的(多个)图像测量的实际距离2530与来自模型的预期距离2540进行比较来校正或调整。
374.图25c和图25d提供了与另一示例相关联的图示,以用于基于稀疏地图中的映射地标/对象/特征在导航期间定位主车辆。图25c概念性地表示从沿着道路路段2560导航的车辆捕获的一系列图像。在该示例中,道路路段2560包含由路缘2561和2562以及中央车道标志2563绘制的双车道分割公路的直线段。如图所示,主车辆正沿着车道2564导航,该车道2564与映射目标轨迹2565相关联。因此,在理想情况下(并且没有诸如道路中的目标车辆或对象的存在等的影响者),当主车辆沿着道路路段2560的车道2564导航时,它应该紧密地跟踪映射目标轨迹2565。实际上,主车辆在沿着映射目标轨迹2565导航时可以会经历漂移。为了有效和安全的导航,这种漂移应保持在可接受的范围内(例如,距离目标轨迹2565为
±
10
厘米的横向位移或任何其他合适的阈值)。为了周期性地考虑漂移并做出任何所需的航向校正以确保主车辆遵循目标轨迹2565,所公开的导航系统可以能够使用稀疏地图中包含的一个或多个映射特征/对象,来沿着目标轨迹2565定位主车辆(例如,确定主车辆相对于目标轨迹2565的横向和纵向位置)。
375.作为简单的示例,图25c示出了限速标志2566,因为当主车辆沿着道路路段2560导航时,该限速标志2566可以出现在五个不同的、顺序捕获的图像中。例如,在第一时间t0,标志2566可以在捕获图像中出现在地平线附近。当主车辆接近标志2566时,在随后在时间t1、t2、t3和t4捕获的图像中,标志2566将出现在捕获图像的不同的2d x-y像素位置处。例如,在捕获图像空间中,符号2566将沿着曲线2567(例如,延伸穿过五个捕获图像帧的每一者中该标志的中心的曲线)向下且向右移动。当主车辆接近标志2566时,标志2566的大小也将增大(即,它将在随后捕获的图像中占据大量像素)。
376.诸如标志2566的对象在图像空间表示中的这些改变可以被利用,来确定主车辆沿着目标轨迹的定位位置。例如,如本公开中所描述的,任何可检测的对象或特征,例如像标志2566这样的语义特征或可检测的非语义特征,可以由先前穿过道路路段(例如,道路路段2560)的一个或多个采集车辆进行识别。制图服务器可以从多个车辆收集所采集的驾驶信息,聚集并关联该信息,并生成稀疏地图,该稀疏地图包含例如道路路段2560的车道2564的目标轨迹2565。该稀疏地图还可以存储标志2566的定位(以及类型信息等)。在导航期间(例如,在进入道路路段2560之前),可以向主车辆供应一地图图块,该地图图块包含用于道路路段2560的稀疏地图。为了在道路路段2560的车道2564中导航,主车辆可以遵循映射目标轨迹2565。
377.主车辆可以使用标志2566的映射表示,来相对于目标轨迹定位其自身。例如,主车辆上的相机将捕获主车辆的环境的图像2570,并且该捕获图像2570可以包含具有某个大小和某个x-y图像定位的标志2566的图像表示,如图25d所示。该大小和x-y图像定位可以被用于确定主车辆相对于目标轨迹2565的位置。例如,基于包含标志2566的表示的稀疏地图,主车辆的导航处理器可以确定:响应于主车辆沿着目标轨迹2565行驶,标志2566的表示应该出现在捕获图像中,使得标志2566的中心将沿着线2567移动(在图像空间中)。如果诸如图像2570的捕获图像示出了偏离了线2567(例如,预期图像空间轨迹)的中心(或其他参考点),则主车辆导航系统可以确定在捕获图像时主车辆并未定位在目标轨迹2565上。然而,根据图像,导航处理器可以确定适当的导航校正,以将主车辆返回到目标轨迹2565。例如,如果分析表明,标志2566的图像位置在图像中在线2567上的预期图像空间定位的左侧偏移了距离2572,则导航处理器可以引起主车辆的航向改变(例如,改变车轮的转向角)以向左移动主车辆距离2573。以这种方式,每个捕获图像可以被用作反馈循环过程的一部分,使得标志2566的观察到的图像位置与预期图像轨迹2567之间的差异可以被最小化,以确保主车辆几乎没有偏差地沿着目标轨迹2565继续。当然,可用的映射对象越多,所描述的定位技术就越经常被采用,这可以减少或消除漂移引起的距目标轨迹2565的偏差。
378.以上所描述的过程在检测主车辆相对于目标轨迹的横向方位或移位方面可以是有用的。主车辆相对于目标轨迹的定位2565还可以包含对目标车辆沿着目标轨迹的纵向定位的确定。例如,捕获图像2570包含具有某个图像大小(例如,2d x-y像素区域)的标志2566的表示。当映射标志2566沿着线2567穿过图像空间时(例如,当标志的大小有进展地增加
时,如图25c所示),该大小可以与映射标志2566的预期图像大小进行比较。基于图像2570中标志2566的图像大小,并且基于图像空间中相对于映射目标轨迹2565的预期大小进展,主车辆可以确定其相对于目标轨迹2565的纵向位置(在捕获图像2570时)。如上所描述,该纵向位置与相对于目标轨迹2565的任何横向移位相耦合,从而允许当主车辆沿着道路2560导航时对主车辆相对于目标轨迹2565的完全定位。
379.图25c和图25d仅提供了使用单个映射对象和单个目标轨迹的所公开的定位技术的一个示例。在其他示例中,可以有更多的目标轨迹(例如,多车道公路、城市街道、复杂交叉口等中的每个可行车道的一个目标轨迹),并且可以有更多的可用于定位的映射。例如,表示城市环境的稀疏地图可以包含每米许多个可用于定位的对象。
380.图26a是示出与所公开的实施例一致的用于映射车道标志以用于自主车辆导航的示例性过程2600a的流程图。在步骤2610,过程2600a可以包括接收与检测到的车道标志相关联的两个或更多个定位标识符。例如,步骤2610可以由服务器1230或与该服务器相关联的一个或多个处理器来执行。定位标识符可以包括与检测到的车道标志相关联的点在现实坐标中的定位,如以上参考图24e所述。在一些实施例中,定位标识符还可以包含其他数据,诸如关于道路路段或车道标志的附加信息。在步骤2610期间还可以接收附加数据,诸如加速度计数据、速度数据、地标数据、道路几何结构或轮廓数据、车辆定位数据、自我运动数据或如上所述的各种其他形式的数据。定位标识符可以由车辆(诸如车辆1205、1210、1215、1220和1225)基于由车辆捕获的图像而生成。例如,可以基于从与主车辆相关联的相机获取表示主车辆的环境的至少一个图像、分析该至少一个图像以检测主车辆的环境中的车道标志、以及分析该至少一个图像以确定检测到的车道标志相对于与主车辆相关联的定位的位置来确定标识符。如上所述,车道标志可以包括各种不同的标志类型,并且定位标识符可以对应于相对于车道标志的各种点。例如,在检测到的车道标志是标记车道边界的虚线的一部分的情况下,这些点可以对应于车道标志的检测到的拐角。在检测到的车道标志是标记车道边界的实线的一部分的情况下,这些点可以对应于具有如上所述的各种间距的、车道标志的检测到的边缘。在一些实施例中,这些点可以对应于检测到的车道标志的中心线,如图24c所示,或者可以对应于两个相交车道标志之间的顶点和与相交车道标志相关联的两个其他点中的至少一个,如图24d所示。
381.在步骤2612,过程2600a可以包括将检测到的车道标志与相对应的道路路段相关联。例如,服务器1230可以分析在步骤2610期间接收的现实世界坐标或其他信息,并且将坐标或其他信息与存储在自主车辆道路导航模型中的定位信息进行比较。服务器1230可以确定模型中与在该处检测到车道标志的现实世界道路路段相对应的道路路段。
382.在步骤2614,过程2600a可以包括基于与检测到的车道标志相关联的两个或更多个定位标识符,相对于相对应的道路路段来更新自主车辆道路导航模型。例如,自主道路导航模型可以是稀疏地图800,并且服务器1230可以更新稀疏地图以在模型中包括或调整映射车道标志。服务器1230可以基于以上参考图24e描述的各种方法或过程来更新模型。在一些实施例中,更新自主车辆道路导航模型可以包括存储检测到的车道标志在现实世界坐标中的一个或多个位置指示符。自主车辆道路导航模型还可以包括车辆沿着相对应的道路路段所遵循的至少一个目标轨迹,如图24e所示。
383.在步骤2616,过程2600a可以包括将更新后的自主车辆道路导航模型分配给多个
自主车辆。例如,服务器1230可以将更新后的自主车辆道路导航模型分配给车辆1205、1210、1215、1220和1225,该车辆1205、1210、1215、1220和1225可以将该模型用于导航。自主车辆道路导航模型可以经由一个或多个网络(例如,通过蜂窝网络和/或互联网等)、通过无线通信路径1235被分配,如图12所示。
384.在一些实施例中,可以使用从多个车辆接收的数据(诸如通过众包技术)来映射车道标志,如以上参考图24e所述。例如,过程2600a可以包括从第一主车辆接收包括与检测到的车道标志相关联的定位标识符的第一通信,以及从第二主车辆接收包括与检测到的车道标志相关联的附加定位标识符的第二通信。例如,第二通信可以从行驶在相同道路路段上的后续车辆接收,或者从在沿着相同道路路段的后续行程中的相同车辆接收。过程2600a还可以包括基于在第一通信中接收的定位标识符并且基于在第二通信中接收的附加定位标识符来细化与检测到的车道标志相关联的至少一个位置的确定。这可以包括使用多个定位标识符的平均和/或过滤掉可能不反映车道标志的现实世界位置的“幽灵”标识符。
385.图26b是示出用于使用映射车道标志沿着道路路段自主导航主车辆的示例性过程2600b的流程图。过程2600b可以例如由自主车辆200的处理单元110来执行。在步骤2620,过程2600b可以包括从基于服务器的系统接收自主车辆道路导航模型。在一些实施例中,自主车辆道路导航模型可以包括主车辆沿着道路路段的目标轨迹和与道路路段相关联的一个或多个车道标志相关联的定位标识符。例如,车辆200可以接收稀疏地图800或使用过程2600a产生的另一道路导航模型。在一些实施例中,目标轨迹可以被表示为三维样条,例如,如图9b所示。如上面参考图24a-图24f所述,定位标识符可以包括与车道标志相关联的点在现实世界坐标中的定位(例如,虚线车道标志的拐角点、实线车道标志的边缘点、两个相交车道标志之间的顶点以及与相交车道标志相关联的其他点、与车道标志相关联的中心线等)。
386.在步骤2621,过程2600b可以包括接收表示车辆的环境的至少一个图像。该图像可以从车辆的图像捕获装置(诸如通过包括在图像获取单元120中的图像捕获装置122和124)接收。该图像可以包括一个或多个车道标志的图像,类似于如上所述的图像2500。
387.在步骤2622,过程2600b可以包括确定主车辆沿着目标轨迹的纵向位置。如上参考图25a所述,这可以基于捕获的图像中的其他信息(例如,地标等)或者通过车辆在检测到的地标之间的航位推算。
388.在步骤2623,过程2600b可以包括基于所确定的主车辆沿着目标轨迹的纵向位置并且基于与至少一个车道标志相关联的两个或更多个定位标识符来确定到车道标志的预期横向距离。例如,车辆200可以使用稀疏地图800来确定到车道标志的预期横向距离。如图25b所示,可以在步骤2622中确定沿着目标轨迹2555的纵向位置2520。使用稀疏地图800,车辆200可以确定到与纵向位置2520相对应的映射车道标志2550的预期距离2540。
389.在步骤2624,过程2600b可以包括分析至少一个图像以识别至少一个车道标志。例如,车辆200可以使用各种图像辨识技术或算法来识别图像内的车道标志,如上所述。例如,车道标志2510可以通过对图像2500的图像分析来检测,如图25a所示。
390.在步骤2625,过程2600b可以包括基于对至少一个图像的分析来确定到至少一个车道标志的实际横向距离。例如,车辆可以确定表示车辆和车道标志2510之间的实际距离的距离2530,如图25a所示。在确定距离2530时,可以考虑相机角度、车辆的速度、车辆的宽
度、相机相对于车辆的位置或各种其他因素。
391.在步骤2626,过程2600b可以包括基于到至少一个车道标志的预期横向距离和所确定的到至少一个车道标志的实际横向距离之间的差异来确定主车辆的自主转向动作。例如,如上参考图25b所述,车辆200可以将实际距离2530与预期距离2540进行比较。实际距离和预期距离之间的差异可以指示车辆的实际位置和车辆要遵循的目标轨迹之间的误差(及其幅度)。相应地,车辆可以基于该差异来确定自主转向动作或其他自主动作。例如,如果实际距离2530小于预期距离2540,如图25b所示,则车辆可以确定自主转向动作以引导车辆离开车道标志2510。因此,可以校正车辆相对于目标轨迹的位置。过程2600b可以用于例如改善车辆在地标之间的导航。
392.众包3d点以及点云对准
393.如上所描述,道路导航模型(例如稀疏地图)是可以基于由穿过道路路段的多个车辆收集的数据而生成的。例如,每个车辆可以捕获地标的图像,上述地标例如车道标记、道路标志、交通灯、灯柱、坑洼、树、建筑物或可能沿道路存在的其他特征。这些特征可以由车辆的导航系统辨识,并且可以被传输到远程服务器。该服务器然后可以将来自沿着道路路段的(例如,由相同的车辆或不同的车辆进行的)多个驾驶的数据进行组合,并且可以将驾驶信息对准以便生成稀疏地图,如上面更详细描述的。
394.当对准来自在相同行驶方向上沿着道路路段移动的车辆的信息时,可以将二维(2d)点用于生成稀疏地图。如本文所使用的,2d点可以包含以图像坐标表示的已识别特征的定位(例如,图像内的x和y像素定位)。可以针对在图像内识别的各种特征来限定这些2d点。在一些实施例中,也可以将附加信息(例如特征类型分类符)用于限定2d点,如下面更详细描述的。可以将2d点(和任何相关联的类型分类)以及主车辆的定位信息(例如,gps定位数据)用于将相同方向上的驾驶进行对准。然而,这些2d点可能不足以将不同方向上的多个驾驶进行对准,因为同一道路路段从相同方向看时可能看起来是不同的。例如,同一道路标志在从一个方向看时可能看起来与从相反方向看时是完全不同的。因此,系统可能难以将来自一个方向的表示该道路标志的点与从另一个方向收集的表示该道路标志的点进行关联。因此,为了将来自相反行驶方向的驾驶数据充分对准,可以需要某种形式的“链接”来对所收集的点进行关联。
395.为了精确地将相反的驾驶信息对准,主车辆可以收集三维(3d)点。例如,3d点可以基于包含在以上所描述的2d点中的图像坐标、以及指示从主车辆到道路特征的距离的范围或深度数据。基于该附加深度信息,可以将表示从一个方向观看的对象的数据与表示从相反方向观看的同一对象的数据进行关联。具体地,从第一方向捕获的3d点云可以与从相反方向捕获的3d点云进行比较。所公开的系统可以匹配来自沿着一段道路的两个3d点集,并确定将两个点集最佳地对准的变换。一旦在相反的驾驶方向上捕获的图像中检测到的特征已经彼此关联,可以不必重新应用变换来将来自不同车辆的驾驶信息对准。在一些实施例中,3d点的收集和传输可以对车辆提出高计算需求。因此,所公开的系统和方法可以包含来自多个车辆的众包3d点,并将收集的数据聚集成密集的3d点云。
396.图27示出了与所公开的实施例一致的可以由主车辆捕获的用于对准驾驶信息的示例图像。图像2700可以由主车辆的相机捕获,例如图像捕获设备122、124和/或126。在图27所示的示例中,当车辆沿着道路路段行驶时,可以从主车辆的前向相机捕获图像。
397.主车辆可以被配置为辨识图像内的特征和对象。例如,图像2700可以包含道路标志2710和坑洼2720等其他对象和/或道路特征。在一些实施例中,主车辆可以识别具有已辨识的或标准化的分类或类型的特征。这些可以被称为“语义”特征的特征可以包含道路标志(例如,限速标志、警告标志、方向标志等)、坑洼、树、广告牌、建筑物或任何其他能被辨识及分类的可检测特征。对于语义特征,主车辆可以基于一个或多个2d点以及对象类型分类符来限定该特征的位置。该类型分类符可以允许系统确定与语义对象相关联的大小,而无需收集语义对象的额外点来表示该大小。例如,30英里/小时的限速标志可以由单个中心点(或任何其他代表性的点位置)以及表示30英里/小时标志的类型值来表示。根据该类型值,服务器系统可以知道30英里/小时标志的大小是2英尺乘3.5英尺。也可以为检测到的语义特征收集或确定其他类型的描述符。例如,这可以包含语义特征对象的边界框等。
398.在一些实施例中,主车辆可以在图像中检测到不具有预定类型分类的其他点,但是可以基于对某个点的检测而重复地识别或辨识这些点。可以被称为“非语义”特征的这些特征可以包含:杆的尖端、建筑物的角、柱子的底部或其他独特的点。使用图像分析算法,主车辆可以基于图像中所辨识的非语义特征点周围的像素数据来生成独特的键(key)。将该算法应用于非语义特征表示周围的像素数据的其他车辆可以生成同一独特的键。因此,类似于语义特征,可以跨多个驾驶辨识非语义特征,以允许驾驶数据的对准。
399.在一些实施例中,可以基于图像中已辨识的2d点来识别这些语义和非语义特征。例如,主车辆的导航系统可以被配置为识别与道路标志2710相关联的2d点2712。这可以包含执行各种边缘检测或其他图像处理技术来识别道路标志2710,如贯穿本公开所描述。可以使用图像2700的坐标系来表示2d点2712。例如,可以基于相对于图像2700的x和y坐标来表示2d点2712,如图27所示。虽然在图27中使用基于图像2700的左上角的图像坐标示出了2d点2712,但是可以使用各种其他2d坐标系(例如,具有在图像的其他位置处的原点)。2d点2712还可以与指示道路标志2710的类型的对象类型分类相关联。例如,对象类型分类可以是指示道路标志2710是道路标志、限速标志、30英里/小时限速标志或各种其他分类符的值。对象类型分类可以是数字代码、字母数字代码、语义描述或任何其他合适的值。也可以检测非语义特征的2d点。例如,可以为坑洼2720的角定义2d点2722。
400.如上所描述,可以将2d图像坐标用于对准由在相同方向上沿着道路路段行驶的车辆捕获的驾驶信息。例如,因为车辆通常遵循相同的路径,所以道路标志2710在不同的捕获图像中将具有一般相同的外观。因此,可以将2d点2712以及指示图像2700被捕获时主车辆的定位的gps数据或其他信息用于对准来自相同行驶方向的驾驶数据。对于从相反的行驶方向收集的驾驶数据,道路标志2710的后侧可以是可见的,但是其可能看起来与道路标志2710的前侧不同。因此,表示从相反的行驶方向捕获的道路标志2710的2d点可能不容易与2d点2712进行关联。因此,为了生成包含来自相反方向的驾驶的驾驶数据的内聚性(cohesive)稀疏地图,可以由主车辆收集3d点并将其传输到服务器。可以为在由主车辆捕获的图像中表示的对象生成这些3d点。在一些实施例中,如上所述,3d点可以基于与图像中识别的语义和非语义特征相关联的相同对象。
401.图28示出了与所公开的实施例一致的可以由主车辆获得的示例3d点2812。上述图像2700可以由主车辆2820的前向相机2822捕获。例如,主车辆2820可以配备有图像捕获设备或相机,例如图像捕获设备122、124和126,如上面更详细描述的,其可以对应于相机
2822。主车辆2820可以配备定位传感器2824,该定位传感器2824被配置为确定主车辆2820的定位。在一些实施例中,定位传感器2824可以是gps接收器(其可以对应于上述定位传感器130)。定位传感器2824可以包含其他形式的传感器,包含加速度计、速度传感器、罗盘或可以帮助跟踪主车辆2820的运动的其他传感器。例如,可以至少部分地基于所确定的该车辆在检测到的位置之间的自我运动,来确定主车辆2820的定位。上面提供了有关自我运动估计的附加细节。如上所描述,主车辆2820还可以配备有处理器,例如处理设备110。主车辆2820的处理器可以被配置为分析由安装在主车辆2710上的相机捕获的图像,以确定2d和/或3d点定位。
402.主车辆可以被配置为确定与道路标志2710相关联的3d定位2812,如图28所示。如上所描述,3d定位3812可以包含指示从主车辆2820到道路标志2710的距离的深度信息。例如,主车辆2820的导航系统可以确定表示到3d点2812的距离的深度d。可以以各种方式来确定或估计深度d。在一些实施例中,这可以包含基于使用相机2822捕获的多个图像的运动恢复结构(sfm)技术。例如,相机2822可以在不同时间捕获示出道路标志2710的第一图像和第二图像。这可以包含分析连续捕获的图像、以特定时间间隔捕获的图像等。该系统可以确定道路标志2710在图像内的位置改变,其可以与相机2822的位置改变(例如,使用位置传感器2824来确定)进行关联。基于该关联,可以估计道路标志2710的三维定位,从而产生深度d。在一些实施例中,这可以包含应用匹配算法,例如卢卡斯-卡纳德跟踪器算法,来对图像之间的特征进行关联并生成3d点。在一些实施例中,经训练的机器学习模型可以被用于确定深度d。例如,图像或成组图像的训练集以及深度数据可以被输入到机器学习模型中。经训练的机器学习模型可以被配置为基于包含在不同位置捕获的道路标志2710的两个或更多个图像,来确定深度d。
403.在一些实施例中,相机2822在图像之间的位置改变可以基于与每个图像相关联的gps数据。例如,位置传感器2824可以确定第一图像被捕获时的gps定位以及第二图像被捕获时的gps定位,并且可以将这些定位之间的距离用于确定3d点2812。在一些实施例中,可以使用主车辆2820的自我运动来作为gps定位的替代或者作为gps定位的补充。例如,可以确定当第一图像被捕获时的gps定位。该系统然后可以跟踪主车辆2824从捕获第一图像的定位到捕获下一图像的定位的自我运动。因此,可以单独基于自我运动来确定第二图像的定位,或者结合附加的gps信息来确定第二图像的定位。由于gps定位准确性相对较低(例如10m精度、5m精度等),自我运动的使用可以有助于细化实际的相机的位置并提高深度d的准确性。
404.如上所描述,虽然可以使用运动恢复结构技术来确定深度d,但是也可以使用各种其他技术。在一些实施例中,可以基于来自除相机2822之外的传感器的数据来确定深度d。例如,主车辆2820可以包含lidar传感器、led接近传感器、超声波传感器、激光测距仪或可以指示深度d的其他传感器。用于确定3d点的过程可以应用于主车辆2820的环境内的各种其他对象或特征。例如,可以对坑洼2720执行与图28中描述的过程相同或相似的过程。如上所述,由于坑洼2720可能不具有与其他坑洼一致的形状、大小或其他特性,因此对于坑洼2720可以使用更多的点。因此,附加的点可以用于更精确地限定坑洼2720的形状或定位。
405.在一些实施例中,可以基于三维真实世界坐标来表示3d点2812。例如,可以基于主车辆2820来限定坐标系,并且3d点2812可以被表示为x、y和z坐标,如图28所示。可以使用各
种其他坐标系,例如基于稀疏地图的坐标系、基于特定道路路段的坐标系、全局坐标系(例如,纬度/经度/海拔)或限定真实世界位置的任何其他数据。可以使用上述运动恢复结构技术、基于lidar或其他传感器或各种其他技术,来确定x、y和z坐标。
406.结果,对于沿着道路路段的特征,可以确定和收集一组3d点。这些3d点可以被传输到服务器,并被用于生成道路导航模型,例如稀疏地图。图29示出了与所公开的实施例一致的用于基于3d点云生成稀疏地图的示例系统2900。系统2900可以包含服务器2910,服务器2910被配置为从一个或多个主车辆接收信息,并且基于接收到的数据生成稀疏地图。例如,服务器2910可以被配置为从车辆2920、2930和2940接收数据,如图29所示。具体而言,服务器2910可以从在不同时间在路段上行驶的车辆2920、2930和2940收集数据,并且可以处理收集到的数据以生成稀疏地图或更新现有稀疏地图。服务器2910还可以将可被用于导航的稀疏地图或者稀疏地图的更新数据传输到一个或多个自主或半自主车辆。在一些实施例中,服务器2910可以对应于如上所描述的服务器1230。因此,本文参考服务器1230所做的任何描述或公开也可以应用于服务器2910,反之亦然。
407.服务器2910可以接收由主车辆2920捕获的3d点2922、2924和2926的集合。例如,主车辆2920可以对应于主车辆2820,并且可以识别与沿着道路路段的各种特征相关联的3d点2922、2924和2926,如上面关于图28所描述。在一些实施例中,服务器2910可以接收由在与主车辆2920相同的方向上沿着道路路段行驶的车辆捕获的附加3d点。例如,第二主车辆2940可以在与主车辆2920相同的方向上穿过道路路段,并且可以收集与3d点2922、2924和2926中的一个或多个相同的特征所对应的3d点。服务器2910可以组合从主车辆2920和2940(以及在相同方向上穿过道路路段的其他车辆)收集的数据,并对准数据,如上面进一步详细描述的。在一些实施例中,主车辆2920和2940可以收集2d点和3d点两者。2d点可以关联于与3d点2922、2924和2926相同的特征(例如,作为表示这些点的数据的2d部分),或者可以是单独的点。在一些实施例中,服务器2910可以使用2d点数据来对准从主车辆2920和2940获取的数据,如贯穿本公开所描述。然而,应当理解,可以单独使用3d点或者结合使用2d点,来执行类似的对准。
408.服务器2910还可以接收由在相反方向上沿路段行驶的主车辆确定的一组3d点。例如,服务器2910可以接收由主车辆2930捕获的3d点2932、2934和2936,如图29所示。如上面关于图28所描述,主车辆2930可以收集3d点。3d点2932、2934和2936中的一个或多个可以对应于与3d点2922、2924和2926相同的特征。例如,3d点2922和3d点2932可以对应于沿着道路路段的相同对象,例如道路标志、灯杆、坑洼、车道标记、路缘等。如同由主车辆2920和2940捕获的3d点一样,服务器2910可以从沿着与主车辆2930相同的行驶方向的多个驾驶中收集3d点数据。因此,服务器2910可以被配置为对准来自不同驾驶方向的3d点的“众包”集,以生成稀疏地图。服务器然后可以将该3d点2922、2924和2926(或与3d点2922、2924和2926相关联的众包点)集与该3d点2932、2934和2936(或与3d点2932、2934和2936相关联的众包点)集对准,以对准从相反的行驶方向捕获的驾驶数据。例如,服务器2910可以确定3d点2922和2932(以及其他点集)与相同的道路特征相关联并且可以确定将两个3d点集对准的变换。
409.图30示出了与所公开的实施例一致的可以针对从不同驾驶方向捕获的点所执行的示例对准过程。服务器2910可以接收未对准的数据3010,其可以包含由车辆在第一方向上收集的多个点3012,以及由在第二方向上沿着同一道路路段行驶的车辆收集的多个点
3014。服务器2910可以对这两个3d点集中之一或两者执行变换3030,以生成对准的数据3020。该变换可以包含平移或旋转来自相反方向的这两个点集之一或两者,以找到点集之间最接近的拟合。例如,这可以包含平移和/或旋转一点集的迭代过程,以最小化点云之间的差异,例如迭代最近点(icp)算法。如对准的数据3020所示,可以基于变换3030更紧密地对准点3012和点3014。在一些实施例中,不是所有的点都可以直接对应于从另一行驶方向捕获的点。例如,点3022可以不具有被相反的行驶方向上的车辆捕获的等效点。这可能是由于从相反方向看不到某个边缘或特征,或者是由于点被定义的方式不同,或者是其他情况。变换3030可以包含对准数据中的点3022,如图30所示,或者可以执行其他动作,例如省略点3022、对点3022加标记等。
410.在一些实施例中,一旦已经执行了变换3030,由于可以已经限定了点之间的关联,因此可以在不执行变换3030的情况下对准未来的驾驶数据。例如,参考图29,如上所述,服务器2910可以先前已经通过变换3030建立了点2922和2932之间的关联。因此,在以后的驾驶中,当车辆2930(或在与车辆2930相同的方向上行驶的其他车辆)识别出点2932时,服务器2910可以将其与点2922相关联。因此,可以对准沿着两个行驶方向捕获的驾驶数据,而无需运行迭代最近点算法或其他形式的变换过程。驾驶数据可以沿着道路逐段对准。
411.在一些实施例中,在相同行驶方向上收集的3d点的众包可以改善来自相反方向的驾驶数据的对准。具体地,与基于2d点来对准驾驶所需要的相比,可能需要更多的3d点来提供统计上显著的关联。例如,由于确定深度d时的潜在误差,3d点可能不如2d点数据精确。作为另一个示例,与2d点相比,使用3d点来限定对象角落、边缘或其他特征时可以使用更多的点,其中单点可以用于表示道路标志或其他通常辨识的对象。在一些实施例中,可能需要比2d点数量多10倍数量级(或更多)的3d点集,来精确对准稀疏地图中的驾驶数据。因此,可以使用相对大量的3d点来获得更精确的对准。
412.在一些实施例中,捕获该数量的3d点以用于对准沿着特定行驶方向的单个驾驶可能是不可行的。例如,与3d点相关联的数据可以超过单个主车辆的处理器的处理能力、主车辆的存储能力、传输数据的带宽限制或其他限制。因此,服务器2910可以对来自在同一方向中的多个驾驶的3d点数据进行众包。作为说明性示例,如果每米道路要收集200个3d点,并且每个主车辆可以处理和传输每米至多40个3d点,则服务器2910可以从五个驾驶(例如,从五个不同的主车辆或者从同一个或多个主车辆的多个驾驶)捕获3d点,以获取必要的数据集。如果有更多的车辆可用于数据收集,服务器2910可以从200个车辆每米获取一个点(或者从100个车辆每米获取2个点,等等)。在一些实施例中,每个车辆提供的点的数量可以通过服务器2910或单独的主车辆的设置来配置。例如,服务器2910可以识别需要不同驾驶方向之间的对准的区域,并且可以限定要由该区域中的主车辆每米收集的点的数量。例如,这可以包含传输限定了对3d点的要求的请求或其他信息。在一些实施例中,数据收集的点集可以基于穿过道路路段的车辆的数量。例如,如果路段经常被行驶,服务器2910可以减少每个车辆收集的点的数量,因为相比农村或较少行驶的地区而言,有更多的车辆可用。在一些实施例中,主车辆可以限定数据收集的限制。例如,如果主车辆正在处理或传输具有更高优先级的其他数据,则主车辆可以限定其每米能够传输的3d点的最大数量。因此,可以由服务器2910将负载分配给其他车辆。
413.图31是示出与所公开的实施例一致的用于采集用于稀疏地图的数据的示例过程
3100的流程图。如上所描述,过程3100可以由主车辆的至少一个处理设备执行,例如处理单元110。应当理解,在贯穿本公开,术语“处理器”被用作“至少一个处理器”的简写。换句话说,处理器可以包含执行逻辑操作的一个或多个结构,无论这些结构是并置的、连接的还是分布的。在一些实施例中,非暂时性计算机可读介质可以包含当由处理器执行时使得处理器执行过程3100的指令。此外,过程3100不一定限于图31所示的步骤,并且贯穿本公开所描述的各种实施例的任何步骤或过程也可以包含在过程3100中,包含上面关于图27-图30所描述的那些步骤或过程。
414.在步骤3110中,过程3100可以包含接收当主车辆在第一方向上沿着道路路段行驶时,由主车辆车载的相机捕获的多个图像。多个图像可以表示主车辆的环境。例如,步骤3110可以包含在主车辆2820穿过道路路段时,获取图像2700和类似图像。因此,如上所描述,可以由图像捕获设备122、124和/或126捕获多个图像。
415.在步骤3120中,过程3100可以包含检测被表示在多个图像中的一个或多个中的一个或多个语义特征。例如,这可以包含检测与道路标志2710和/或坑洼2720相关联的语义特征。可以检测各种其他类型的对象,例如灯柱、车道标记、路缘、树、障碍物、交通灯、建筑物或可能出现在沿着道路捕获的图像中的任何其他对象。一个或多个语义特征可以各自与预定的对象类型分类相关联。如上所描述,对象类型分类可以是标识与检测到的语义特征相关联的对象类型的任何值。
416.在步骤3130中,过程3100可以包含识别与检测到的一个或多个语义特征中的每一个相关联的至少一个位置描述符。如本文所使用的,位置描述符可以包含至少部分地限定特征的定位的任何信息。在一些实施例中,与检测到的一个或多个语义特征中的每一个相关联的至少一个位置描述符可以包含二维图像位置。例如,如果在步骤3120中检测到道路标志2710,则步骤3130可以包含识别2d点2712,如上面关于图27所描述。可以基于与图像相关联的坐标系来表示二维图像位置。例如,至少一个二维图像位置可以包含相对于多个图像中的至少一个图像的x-y位置。
417.在一些实施例中,与检测到的一个或多个语义特征中的每一个相关联的至少一个位置描述符可以包含三维点定位。例如,位置描述符可以包含3d点2812。因此,如上所描述,可以基于跨该多个图像中的两个或更多个图像对一个或多个检测到的对象的表示的分析,并且基于与主车辆相关联的至少一个自我运动传感器的输出,来确定三维点定位。例如,可以基于位置传感器2824的输出,来确定三维点定位。自我运动传感器可以包含速度计、加速度计或gps接收器中的至少一个。
418.在步骤3140中,过程3100可以包含识别与被表示在多个图像中的至少一个图像中的一个或多个检测到的对象相关联的三维特征点。在一些实施例中,与检测到的语义特征相关联的所识别的位置描述符的数量可以大于所识别的三维点的数量。在一些实施例中,一个或多个检测到的对象中的至少一些可以被包含在一个或多个检测到的语义特征内。类似于位置描述符,三维点可以对应于图像中对象的部分。例如,三维特征点可以与至少一个表面的边或角中的一个或多个相关联,该至少一个表面与一个或多个检测到的对象中的至少一些相关联。在一些实施例中,每个三维特征点可以包含相对于相机的深度指示符。例如,每个三维特征点可以包含相对于多个图像中的至少一个图像的x-y位置以及相对于相机的范围指示符。例如,步骤3140可以包含识别如上所描述的3d点2812。因此,步骤3140可
以包含确定深度d,如图28所示。如上所描述,可以以各种方式来确定范围指示符。在一些实施例中,每个三维特征点包含相对于现实世界原点的x-y-z定位,如图28所示。在一些实施例中,如上所描述,可以基于跨多个图像中的两个或更多个图像对一个或多个检测到的对象的表示的分析,并且基于与主车辆相关联的至少一个自我运动传感器的输出,来确定每个三维特征点。自我运动传感器可以包含速度计、加速度计或gps接收器中的至少一个。例如,自我运动传感器可以对应于位置传感器2824。
419.在步骤3150中,过程3100可以包含接收多个图像中的每一个的位置信息。位置信息可以指示多个图像中的每一个被捕获时相机的位置。例如,可以从位置传感器2824接收位置信息。在一些实施例中,位置信息可以包含基于与主车辆相关联的gps传感器的输出而确定的至少一个位置指示符。在一些实施例中,位置信息可以包含基于与主车辆相关联的至少一个自我运动传感器的输出而确定的至少一个位置指示符。在一些实施例中,位置信息可以基于来自两个或更多个传感器的数据的组合。例如,位置信息可以包含基于与主车辆相关联的gps传感器的输出和与主车辆相关联的至少一个自我运动传感器的输出的组合而确定的至少一个位置指示符。
420.在步骤3160中,过程3100可以包含使该道路路段的驾驶信息传输到相对于主车辆远程定位的实体。该远程定位的实体可以是能够接收和处理数据的任何实体。例如,如上所描述,步骤3160可以包含向服务器2910传输驾驶信息。该驾驶信息可以包含所识别的至少一个二维特征点、所识别的三维特征点和位置信息。在一些实施例中,如上所描述,可以限制或指定传输到远程定位的实体的信息的数量。例如,过程3100可以包含识别并向远程定位的实体传输每米道路路段不超过1至40个之间的三维特征点。该值可以根据道路路段、主车辆的能力、远程定位的实体的需要或其他因素而变化。在一些实施例中,可以由远程定位的实体限定三维点的数量。例如,过程3100可以包含从远程定位的实体接收请求,该请求指定要识别和/或传输的每米道路路段的三维点的数量。
421.远程定位的实体可以被配置为对准来自多个车辆的信息,如以上关于图20所描述。因此,远程定位的实体可以包含一个或多个处理器,该一个或多个处理器被配置为除了接收由主车辆传输的驾驶信息之外,还从多个其他车辆中的每一个接收该道路路段的驾驶信息。从多个其他车辆中的每一个接收的该道路路段的驾驶信息可以包含与每个检测到的语义特征相关联的至少一个位置描述符、检测到的对象的三维特征点以及与捕获图像相关联的位置信息。在一些实施例中,远程定位的实体可以被配置为对准来自在相同的行驶方向上的多个驾驶的信息。例如,从多个其他车辆中的每一个接收的该道路路段的驾驶信息可以源自多个其他车辆在与主车辆相同的方向上行驶的驾驶。如上所描述,远程定位的实体可以被配置为基于二维点来对准沿着相同的行驶方向的驾驶信息。因此,该一个或多个处理器还可以被配置为:基于从主车辆接收到的、所识别的与检测到的一个或多个语义特征中的每一个相关联的至少一个位置描述符,并且基于作为从多个其他车辆中的每一个接收到的驾驶信息的一部分而被接收到的、所识别的与检测到的一个或多个语义特征中的每一个相关联的至少一个位置描述符,来对准来自主车辆的驾驶信息和来自多个其他车辆的驾驶信息的一个或多个方面。
422.在一些实施例中,远程定位的实体可以被配置为对准来自相反方向的驾驶信息。例如,从多个其他车辆中的每一个接收的该道路路段的驾驶信息可以来自于以下的驾驶:
在这些驾驶中,多个其他车辆中的至少一些在与主车辆相同的方向上行驶,且多个其他车辆中的至少一些在与主车辆相反方向上行驶。该一个或多个处理器还可以被配置为:基于从主车辆接收的三维特征点并且基于从多个其他车辆中的每一个接收的三维特征点,来对准来自主车辆的驾驶信息和来自多个其他车辆的驾驶信息的一个或多个方面,其中该多个其他车辆包含在与主车辆相反的方向行驶过该道路路段的其他车辆。在一些实施例中,如上所描述,来自主车辆的驾驶信息和来自多个其他车辆的驾驶信息的一个或多个方面的对准可以包含:对在相反方向的驾驶期间所获取的3d特征点进行关联。该一个或多个处理器还可以被配置为基于经对准的来自主车辆的驾驶信息和来自多个其他车辆的驾驶信息,来生成稀疏地图。
423.图32是示出与所公开的实施例一致的用于创建用于导航自主或部分自主车辆的地图的示例过程3200的流程图。如上所描述,可以由诸如服务器2910的远程定位的实体的至少一个处理设备来执行过程3200。在一些实施例中,非暂时性计算机可读介质可以包含当由处理器执行时使得处理器执行过程3200的指令。此外,过程3200不一定限于图32所示的步骤,并且贯穿本公开所描述的各种实施例的任何步骤或过程也可以包含在过程3200中,包含上面关于图27-图31所描述的那些步骤或过程。
424.在步骤3210中,过程3200可以包含接收由在第一方向上行驶过道路路段的第一多个车辆传输的该道路路段的第一驾驶信息。第一驾驶信息可以包含与由第一多个车辆的导航系统检测到的对象相关联的第一多个三维特征点。例如,步骤3210可包含接收由主车辆2920传输的包含3d点2922、2924和2926的驾驶信息,如上面关于图29所描述。根据上面所描述的过程3100,主车辆可以收集第一驾驶信息。
425.在步骤3220中,过程3200可以包含接收由在与第一方向相反的第二方向上行驶过该道路路段的第二多个车辆传输的该道路路段的第二驾驶信息。类似于第一驾驶信息,第二驾驶信息可以包含与由第二多个车辆的导航系统检测到的对象相关联的第二多个三维特征点。例如,如上面关于图29所述,步骤3220可包含从主车辆2930接收3d点2932、2934和2936。
426.第一驾驶信息和第二驾驶信息的三维特征点可以与至少一个表面的一个或多个边或角相关联,该至少一个表面与由第一多个车辆和第二多个车辆的导航系统检测到的对象相关联。例如,如上所描述,类似于3d点2812,可以收集从第一多个车辆和第二多个车辆接收的三维特征点。例如,第一多个三维特征点和第二多个三维特征点可以包含相对于至少一个图像的x-y位置以及相对于相机的范围指示符。可以基于跨两个或更多个图像对与所识别的对象相关联的图像位置的跟踪、以及主车辆的自我运动信号,来确定范围指示符。例如,第一多个点和第二多个点可以包含:点2712的x-y定位,如图27所示;以及深度d,如图28所示。在一些实施例中,第一多个三维特征点和第二多个三维特征点包含相对于预定原点的x-y-z位置。例如,预定原点可以基于主车辆、稀疏地图、现实世界对象(例如,测量标记)、一段道路等。如上面关于图28所描述,可以基于跨两个或更多个图像对与所识别的对象相关联的图像位置的跟踪、以及主车辆的自我运动信号,来确定x-y-z位置。
427.在步骤3230中,过程3200可以包含将第一多个三维特征点中的一个或多个与第二多个三维特征点中的一个或多个进行关联。这种关联可以以各种方式出现,如上面关于图30所描述。在一些实施例中,该关联可以基于迭代最近点算法,或者用于将两个点云内的点
相关联的类似算法。
428.在步骤3240中,过程3200可以包含基于第一多个三维特征点和第二多个三维特征点的关联,来生成稀疏地图。该稀疏地图可以包含来自第一多个车辆和第二多个车辆的来自不同方向的驾驶信息,上述驾驶信息基于该关联而被对准。例如,稀疏地图可以包含:至少第一目标轨迹,其用于沿着该道路路段的在第一方向上的行驶车道;以及至少第二目标轨迹,其用于沿着该道路路段的在第二方向上的行驶车道。因此,稀疏地图可以被自主或半自主车辆用于在任一方向上导航行驶车道。
429.如上所描述,稀疏地图可以需要相对较大的3d点集,以准确地对来自相反驾驶方向的数据进行关联。例如,稀疏地图可以基于每米道路路段的100个三维特征点、每米道路路段的200个三维特征点、每米道路路段的300个三维特征点、或者能允许点之间具有统计上显著关联的任何其他点密度。在一些实施例中,点的集合可以是在几辆车之间众包来的。因此,每个车辆收集的点的数量可以是有限的。例如,第一驾驶信息和第二驾驶信息可以包含从第一多个车辆或第二多个车辆中的任何一个接收到的、每米道路路段不超过1至40个之间的三维特征点。如上所描述,每个车辆每米道路路段获取的点的数量可以是可配置的和/或可变的。
430.在一些实施例中,还可以基于由车辆收集的位置描述符(其可以包含2d和/或3d点)来生成该稀疏地图。例如,第一驾驶信息可以包含与第一多个车辆的导航系统检测到的对象相关联的第一多个识别的位置描述符,且第二驾驶信息可以包含与第二多个车辆的导航系统检测到的对象相关联的第二多个识别的位置描述符。在一些实施例中,所识别的位置描述符可以包含二维点,可以如上面针对2d点2712的描述来收集该二维点。例如,第一多个识别的位置描述符和第二多个识别的位置描述符可以包含相对于至少一个捕获图像的x-y位置。稀疏地图的生成还可以基于作为过程3200的一部分确定的、第一多个识别的位置描述符和第二多个识别的位置描述符的关联。
431.如上所描述,还可以基于包含在驾驶信息中的位置信息来生成该稀疏地图。因此,第一驾驶信息可以包含与第一多个捕获图像相关联的第一相机位置信息,且第二驾驶信息可以包含与第二多个捕获图像相关联的第二相机位置信息。可以由第一多个车辆和第二多个车辆使用一个或多个传感器,例如位置传感器2824来收集该位置信息。例如,第一相机位置信息和第二相机位置信息可以包含基于gps传感器的输出、自我运动传感器的输出、gps传感器的输出和至少一个自我运动传感器的输出的组合或者可以指示车辆位置的任何其他传感器或传感器的组合而确定的至少一个位置指示符。该稀疏地图的生成还可以基于第一相机位置信息和第二相机位置信息。
432.双向(two-way)对准轨迹
433.如上所描述,可以生成稀疏地图,使得来自相反的行驶方向的驾驶信息在稀疏地图内被对准。例如,如上所描述,可以基于由多个车辆收集的众包3d点,来生成具有双向对准轨迹的稀疏地图。在一些实施例中,车辆可以配备有后向相机,该相机可以用于对在任一方向上观察到的对象进行关联,如下面进一步详细描述的那样(例如,参见图45-图48和相关联的描述)。具有每个行驶方向的对准轨迹的稀疏地图可以改善穿过道路的车辆的导航。例如,车辆可以能够基于其当前行驶所沿轨迹来导航,但是也可以能够基于相反的行驶方向的轨迹做出关于其他对象的确定。例如,主车辆的导航系统可以被配置为评估对向的车
辆是否偏离特定轨迹,这可以通知主车辆的导航动作决定。
434.图33是与所公开的实施例一致的主车辆可以沿着其导航的示例道路路段3300的图示。道路路段3300可以包含一个或多个行驶车道,例如车道3302和3304。沿着道路路段3300的至少一些车道可以与相反的行驶方向相关联。例如,车道3302可以与沿着路段的与车道3304相反的行驶方向相关联。如图33所示,主车辆3310可以沿着道路路段在车道3302中行驶。与所公开的实施例一致的,主车辆3310可以是自主或半自主车辆。主车辆3310与本文所描述的车辆200相同或相似。因此,本文中参考车辆200所做的任何描述或公开也可以应用于主车辆3310,反之亦然。
435.主车辆3310可以被配置为捕获主车辆的环境的图像。例如,主车辆3310可以使用一个或多个图像捕获设备(例如,相机),例如图像捕获设备122、图像捕获设备124和图像捕获设备126来捕获图像。主车辆3310还可以被配置为基于图像,来检测道路路段3300内的一个或多个对象或特征。例如,道路路段3300可以包含道路标志3332和3334、车道标记3336、方向箭头3338或者可以被主车辆3310辨识的各种其他特征。如本贯穿公开所描述,主车辆3310可以被配置为基于检测到的道路特征和对象,沿着道路路段3300导航。道路路段3300还可以包含在车道3304中以与主车辆3310相反方向行驶的目标车辆3320。
436.图34示出了与所公开的实施例一致的具有双向对准轨迹的示例稀疏地图3400。稀疏地图3400可以包含与道路路段3300相关联的驾驶信息,如图34所示。在一些实施例中,稀疏地图3400可以包含除了图34所示以外的附加驾驶信息。例如,图34可以示出稀疏地图3400中与道路路段3300相关的一部分。驾驶信息先前可以已经由沿着道路路段3300行驶的一个或多个车辆收集并传输到服务器3410。在一些实施例中,如上所描述,服务器3410可以对应于服务器1230。因此,本文参考服务器1230所做的任何描述或公开也可以应用于服务器3410,反之亦然。服务器3410可以被配置为基于接收到的驾驶信息生成稀疏地图3400。例如,如上所描述(例如,关于图12-图18),服务器3410可以从多个驾驶收集驾驶信息,对准来自多个驾驶的信息,并基于对准的驾驶信息生成稀疏地图3400。服务器3410还可以将稀疏地图(或包含对稀疏地图的更新的数据)传输到一个或多个自主或半自主车辆,例如主车辆3310。
437.如图34所示,稀疏地图3400可以包含与道路路段3300相关联的一个或多个映射的(mapped)导航特征。在一些实施例中,稀疏地图3400可以包含与车道3302相关联的目标轨迹3402,以及与车道3304相关联的目标轨迹3404。目标轨迹3402和3404可以基于来自道路路段3300的先前穿过的驾驶信息来生成,并且其可以作为三维样条曲线与稀疏地图3400相关联地存储。稀疏地图3400还可以包含基于先前从穿过道路路段3300的车辆收集的驾驶信息而生成的映射的道路特征。映射的道路特征可以对应于由先前穿过道路路段3300的车辆所识别的对象或道路特征。例如,映射的导航特征3424可以对应于道路标志3334(或道路标志3334的角、边缘或其他特征)。类似地,映射的导航特征3434可以对应于方向箭头3338,映射的道路特征3426和3436可以对应于道路标志3332,且映射的道路特征3422和3432可以对应于沿着道路路段3300的车道标记。在一些实施例中,映射的道路特征可以包含指示道路特征类型的类型分类符。例如,映射的道路特征3424可以包含指示其与道路标志相关联的类型分类符。各种其他分类符或信息也可以与映射的道路特征相关联。
438.在一些实施例中,映射的道路特征可以已经由在相反方向上沿着道路路段3400行
驶的车辆所收集。例如,映射的道路特征3422、3424和3426可以已经由沿着车道3302行驶的一个或多个车辆所收集,并且映射的道路特征3432、3434和3436可以已经由沿着车道3304行驶的一个或多个车辆所收集。可以使用贯穿本公开所公开的各种技术,来对准来自相反方向的映射的道路特征。例如,如上所描述,稀疏地图3400可以包含基于众包3d点对映射的道路特征的双向对准。在一些实施例中,稀疏地图3400可以包含基于前向和后向相机对映射的道路特征的双向对准,如下面更详细描述的。
439.主车辆3310可以被配置为从服务器3410接收稀疏地图3400。在一些实施例中,主车辆3310可以被配置为接收与稀疏地图3400相关联的更新数据。例如,随着服务器3410获取到附加驾驶信息,可以细化目标轨迹和/或映射的道路特征的定位数据,并且可以将细化的数据传输到主车辆3310。主车辆3310可以被配置为捕获道路路段3310的一个或多个图像,并基于捕获图像和稀疏地图3400确定导航动作。例如,主车辆3310可以捕获包含道路标志3334的表示的图像,并且可以在图像中识别与道路标志3334相关联的一个或多个特征。主车辆3310可以确定所识别的特征与映射的道路特征3424相关联,并且可以确定主车辆3310相对于目标轨迹3402的位置。主车辆3310可以基于所确定的位置来确定导航动作。例如,这可以包含将主车辆与目标轨迹3402对准的转向操纵。可以执行各种其他导航,例如制动操纵、加速操纵、变道操纵、保持当前动作路线或速度等。
440.在一些实施例中,主车辆3310还可以基于稀疏地图3400中映射的导航特征来确定导航,该映射的导航特征由在与主车辆3310相反方向上行驶的交车辆捕获。例如,主车辆3310可以识别诸如方向箭头3434或道路标志3332的特征,这些特征可以分别与映射的道路特征3434和3436相关联。如同由与主车辆3310在相同方向行驶的车辆捕获的映射的道路特征一样,也可以将由来自相反方向的车辆捕获的这些映射的道路特征用于主车辆3310的导航。因此,与其中来自多个行驶方向的驾驶信息没有被对准的稀疏地图相比,稀疏地图3400可以提供更鲁棒的映射的导航特征的集合。
441.此外,主车辆3310可以基于稀疏地图3400评估道路路段3300的其他状况。例如,主车辆3310可以在一个或多个捕获图像内识别对向的目标车辆3320的表示。基于主车辆3310相对于稀疏地图3400的当前位置以及基于图像分析而确定的目标车辆3320相对于主车辆3310的位置,主车辆3310可以确定目标车辆3320相对于目标轨迹3404的位置。主车辆3310还可以基于目标车辆3320相对于目标轨迹3404的位置来确定导航动作。如果目标车辆3404正沿着与目标轨迹3404不一致的路径行驶,这可以指示主车辆应该采取导航动作作为响应。例如,主车辆3310可以确定目标车辆3320正在朝着主车辆3310的方向偏离目标轨迹3404。这可以指示:目标车辆3320的驾驶员分心或已经睡着、车道3304中存在障碍物、存在恶劣的道路条件(其也可能出现在主车辆3310前方的车道3302中)、或者可以使得目标车辆3320偏离路线的其他状况。因此,主车辆3310可以执行回避操纵,例如偏离目标轨迹3402以避免碰撞、执行主车辆3310的加速、执行制动操纵、提供警告指示(例如,闪烁前灯、闪烁远光灯、鸣笛)等。在一些实施例中,主车辆3310可以报告目标车辆3320。例如,如果目标车辆3320偏离目标轨迹3404,则它可以指示目标车辆3320的驾驶员喝醉了,并且主车辆3310可以为穿过道路路段3300的其他车辆标记目标车辆3320,通知地方当局等。
442.主车辆3310可以基于目标轨迹3404与目标轨迹3402在稀疏地图3400内的对准,来做出各种其他确定。例如,主车辆3310可以辨识目标轨迹3404与主车辆3310可到达的可驾
驶道路表面相关联。例如,在紧急情况下(例如,行人或动物跑进车道3302、主车辆3310前方的车辆之间的碰撞、或其他意外情况),主车辆3310可以临时转到目标轨迹3310上,尤其是如果没有检测到对向的车辆的情况下。作为另一个示例,当掉头进入车道3404时,主车辆3310可以使用目标轨迹3404。在一些实施例中,主车辆3310可以向目标车辆3320或其他实体警告道路路段3300的各种状况。例如,主车辆可以辨识沿着目标轨迹3404的障碍物(例如,行人、不良道路状况、岩石或其他碎片等)并且可以向目标车辆3320警告该些状况。这可以包含闪烁的前灯、鸣笛、传输通知信号或其他形式的警告指示。如果目标车辆3320(或目标车辆3320的驾驶员)不能辨识该状况,那么来自主车辆3310的警告可以提示来自目标车辆3320的响应。
443.图35是示出与所公开的实施例一致的用于导航自主或部分自主主车辆的示例过程3500的流程图。过程3500可以由主车辆的至少一个处理设备执行,例如处理设备110。在一些实施例中,非暂时性计算机可读介质可以包含当由处理器执行时使得处理器执行过程3500的指令。此外,过程3500不一定限于图35所示的步骤,并且贯穿本公开所描述的各种实施例的任何步骤或过程也可以包含在过程3500中,包含上面关于图33和图34所描述的那些步骤或过程。在一些实施例中,过程3100的一些或全部可以结合过程3500来执行。
444.在步骤3510中,过程3500可以包含从相对于主车辆远程定位的实体接收与至少一个道路路段相关联的稀疏地图。例如,如上所描述,主车辆3310可以从服务器3410接收稀疏地图3400。因此,主车辆3310可以配备有电子通信设备,例如无线收发器172。在一些实施例中,主车辆3310可以被配置为将稀疏地图3400存储在本地存储中,例如地图数据库160。稀疏地图可以包含与至少一个道路路段相关联的各种信息。在一些实施例中,稀疏地图可以包含基于先前从第一多个车辆收集的驾驶信息而生成的第一多个映射的导航特征,该第一多个车辆在第一方向上沿着至少一个道路路段行驶过。例如,稀疏地图可以包含映射的道路特征3422、3424、3426和/或目标轨迹3402。稀疏地图还可以包含基于先前从第二多个车辆收集的驾驶信息而生成的第二多个映射的导航特征,该第二多个车辆在第二方向上沿着至少一个道路路段行驶过。例如,稀疏地图可以包含映射的道路特征3432、3434、3436和/或目标轨迹3404。如上所描述,第一多个映射的导航特征和第二多个映射的导航特征可以在公共坐标系内被关联。
445.在步骤3520中,过程3500可以包含从与主车辆相关联的相机接收第一多个图像和第二多个图像,该第一多个图像和第二多个图像表示当主车辆在第一方向上沿着至少一个道路路段行驶时主车辆的环境。例如,当沿着道路路段3300的车道3302行驶时,主车辆3310可以使用图像捕获设备122、124和126来捕获图像。
446.在步骤3530中,过程3500可以包含基于对第一多个图像中的至少一个的分析并基于第一多个映射的导航特征,来确定主车辆的第一导航动作。在一些实施例中,第一导航动作可以将主车辆与目标轨迹对准。例如,第一多个映射的特征可以包含在第一方向上沿着至少一个道路路段的行驶车道的目标轨迹和至少一个映射的道路特征。如上所描述,映射的道路特征可以包含至少一个映射的道路特征的定位、以及与至少一个映射的道路特征相关联的类型分类符。过程3500还可以包含基于对至少一个映射的道路特征在第一多个图像中的表示的识别,来相对于目标轨迹定位该主车辆。例如,主车辆3310可以识别道路标志3334在多个图像内的表示,并且可以将其与映射的道路特征3424进行关联。因此,过程3500
可以包含基于多个图像,确定主车辆相对于稀疏地图的位置。
447.在步骤3540中,过程3500可以包含使得与主车辆相关联的一个或多个致动器实施第一导航动作。例如,这可以包含执行转向操纵、制动操纵、加速操纵、保持当前航向方向等。在一些实施例中,第一导航动作可以包含主车辆的航向方向的改变,以减小主车辆的实际轨迹和目标轨迹之间的差异。
448.在步骤3550中,过程3500可以包含基于对第二多个图像的分析并且基于第二多个映射的导航特征,来确定主车辆的第二导航动作。在一些实施例中,步骤3550可以包含确定目标车辆是否正沿着与稀疏地图中包含的目标轨迹一致的路径行驶。例如,过程3500可以包含识别被表示在第二多个图像中的目标车辆,例如目标车辆3320。过程3500可以包含基于对第二多个图像中的一个或多个图像的分析,确定目标车辆是否正沿着与在第二方向上沿着至少一个道路路段的行驶车道的目标轨迹一致的路径行驶。例如,过程3500可以包含确定目标车辆3320是否已经偏离目标轨迹3404。
449.在步骤3560中,过程3500可以包含使得与主车辆相关联的一个或多个致动器实施第二导航动作。如同第一导航动作一样,第二导航动作可以包含执行转向操纵、制动操纵、加速操纵、保持当前航向方向等。在一些实施例中,第二导航动作可以不同于第一导航动作。在一些实施例中,第二导航动作可以是放弃或取消第一导航动作。如上所描述,过程3500可以包含确定目标车辆是否正沿着与在第二方向上沿着至少一个道路路段的行驶车道的目标轨迹一致的路径行驶。因此,步骤3560可以包含基于目标车辆是否被确定为沿着与在第二方向上沿着至少一个道路路段的行驶车道的目标轨迹一致的路径行驶,来确定第二导航动作。在一些实施例中,第二导航动作可以包含响应于确定目标车辆正沿着与目标轨迹一致的路径行驶,保持主车辆的航向和速度。相反,第二导航动作可以包含响应于确定目标车辆正朝着主车辆行驶并且没有沿着与目标轨迹一致的路径行驶,减慢主车辆或者改变主车辆的航向中的至少一者。
450.充分对准的交叉口
451.如贯穿本公开所描述的,稀疏地图或其他道路导航地图可以基于由穿过道路的车辆收集的众包数据来生成。如上所指示,如果没有本文所公开的用于收集和关联车辆捕获的驾驶信息的先进技术,可能很难或无法对准来自沿着道路路段的多个行驶方向的驾驶信息。例如,道路特征或对象从相反的视角看起来可能不同,并且可能出现在图像的不同部分。因此,对于系统来说,对仅基于前向相机的2d图像坐标而识别的特征进行关联是困难的。对于一些使用情况,不具有双向对准的轨迹的稀疏地图可能对于沿着一段道路导航是足够的。
452.然而,具有在单一行驶方向上对准的目标轨迹的稀疏地图可能对于在交叉口(如交叉路口)内导航是不足够的。因为主车辆可以在由交叉口提供的任何可用方向上行驶,所以对交叉口内的轨迹进行充分对准可以是有益的。例如,针对左转、右转、掉头或穿过交叉口(包含在每个方向进入和离开的多个可能车道)的目标轨迹可能需要被充分对准,以允许车辆精确地导航穿过交叉口。这在各车辆可以同时沿着多条轨迹通过交叉路口的交叉口来说尤其重要。例如,交叉口可以包含停车灯,其中从相反方向进入交叉口的车辆被信号通知同时左转。为了避免与对向的转弯车辆发生碰撞,与每个左转相关联的目标轨迹可能需要被准确地对准。
453.类似于一段道路,可以如上所描述收集和关联3d点。然而,对于道路交叉口,这可以包含众包并且对准来自穿过同一入口和出口组合以通过交叉口的多个车辆的驾驶信息。然后,来自每个入口和出口组合的对准的驾驶信息可以被关联,使得生成具有针对每个入口和出口组合的充分对准的轨迹的稀疏地图。
454.图36a示出了与所公开的实施例一致的可以由一个或多个车辆穿过的示例交叉口3600。如图36a所示,交叉口3600可以是两条道路的交叉路口,每条道路在每个方向上都有一个行驶车道。如本文所使用,交叉口可包含两条或更多条道路汇合的任何点或区域。因此,尽管以示例的方式示出了交叉口3600,但是应当理解,所公开的系统和方法可以应用于各种其他交叉口配置。例如,根据本公开的交叉口可以包含但不限于四向路口、t型路口、y型路口、交通圈(或“环岛”)、岔路口、转弯车道、停车场或具有多条可穿行道路的任何其他区域。在一些实施例中,例如,可以通过使用停车标志、让行标志、交通灯或其他形式的控制装置来控制交叉口。在一些实施例中,交叉口可以是不受控制的,其中不包含指示路权的信号或标志。
455.在图36a所示的示例中,交叉口3600可以包含一个或多个交通灯,例如交通信号3604和3606。如图所示,诸如道路标志3602的各种其他对象也可以包含在交叉口3600附近。虽然为了简单起见,交叉路口3600被示为包含两个交通信号,但是应当理解,交叉口3600可以包含附加的交通信号、道路标志、车道标记或其他道路特征。此外,尽管交叉口3600被示出为两条道路的交叉口,其在每个方向上具有单个行驶车道,但是应当理解,交叉口3600可以包含任意数量的道路或行驶车道。
456.诸如主车辆3610的车辆可以通过入口点和出口点的各种组合穿过交叉口3600。图36b示出了与公开的实施例一致的可以由主车辆3610行驶的交叉口3600的各种入口和出口组合。具体地,如图36b所示,交叉口3600可以包含多个入口点3620a、3620b、3620c和3620d,车辆可以通过这些入口点进入交叉口3600。此外,交叉口3600可以包含多个出口点3630a、3630b、3630c和3630d,车辆可以通过这些出口点离开交叉口3600。车辆穿过交叉口3600时可通过的多个可能的轨迹可以由入口点和出口点来限定。具体地,对于入口点3620a、3620b、3620c和3620d之一与出口点3630a、3630b、3630c和3630d之一的每个可能组合,可以限定目标轨迹。例如,如果主车辆3610通过入口点3620a进入交叉口3600,那么:右转轨迹3642可用于通过出口点3630b离开,直行轨迹3644可用于通过出口点3630c离开,左转轨迹3646可用于通过出口点3630d离开。尽管在图36b中未示出,但是掉头目标轨迹也可以被限定为通过入口点3620a进入并通过出口点3630a离开。对于每个入口点3620b、3620c和3620d,可以限定类似的轨迹组合。如上所述,所公开的系统和方法可以应用于其他交叉口配置,包含在每个方向上具有附加车道的交叉口。此外,交叉口3600可包含转弯车道或可增加入口点和出口点数量的其他特征。随着入口点和/或出口点的数量增加,由交叉口3600限定的目标轨迹的数量也可以增加(反之亦然)。
457.当主车辆3610和其他主车辆穿过交叉口3600时,它们可以收集包含与交叉口3600相关联的道路特征的驾驶信息。图37示出了与所公开的实施例一致的示例性三维点,该些示例性三维点可以由主车辆3610在穿过交叉口3600时收集。例如,如上所描述,主车辆3610可以沿着目标轨迹3646行驶通过交叉口。虽然目标轨迹3646是作为示例示出的,但是可以沿着其他目标轨迹(包含图36b中示出的那些轨迹)来收集类似的驾驶信息。主车辆3610可
以被配置为捕获主车辆3610的环境的多个图像。例如,主车辆3610可以使用诸如图像捕获设备122、图像捕获设备124和图像捕获设备126的一个或多个图像捕获设备(例如,相机)来捕获图像。与所公开的实施例一致,主车辆3610可以是自主或半自主车辆。主车辆3610与本文所描述的车辆200相同或相似。因此,本文中参考车辆200所做的任何描述或公开也可以应用于主车辆3610,反之亦然。
458.主车辆3610还可以被配置为基于图像,检测交叉口3600内的一个或多个对象或特征。例如,主车辆3610可以识别道路标志3602、交通信号3604和3606的一个或多个特征或交叉口3600内的其他对象或特征。主车辆3610可以被配置为确定与检测到的特征相关联的三维点。例如,主车辆3610可以识别:与道路标志3602相关联的3d点3702;与交通信号3604和3606的灯或其他特征相关联的3d点3704、3706、3708和3710;与交叉口3600的车道标记相关联的3d点3712或各种其他3d点。3d点3702、3704、3706、3708、3710和3712可以以各种方式表示。例如,3d点可以包含相对于一个或多个捕获图像的x-y位置以及相对于相机的范围指示符。可以基于遍及两个或更多个图像跟踪所识别的对象的位置、以及主车辆的自我运动信号(例如,使用运动恢复结构(sfm)技术等),来确定该范围。在一些实施例中,3d点可以被表示为真实世界坐标系的x-y-z坐标。关于从多个图像中捕获3d点的附加细节在上面关于图28提供。
459.主车辆3610还可以被配置为将驾驶信息(包含捕获的3d点3702、3704、3706、3708、3710和3712)传输到远程定位的实体,例如服务器3720。服务器3720可以被配置为基于来自多个车辆的与交叉口3600相关联的驾驶信息来生成稀疏地图。服务器3720还可以将稀疏地图(或指示对稀疏地图的更新的数据)传输到一个或多个自主或半自主车辆,其可以被用于导航。在一些实施例中,服务器3720可以对应于如上所描述的服务器1230。因此,这里参考服务器1230所做的任何描述或公开也可以应用于服务器3720,反之亦然。
460.服务器3720可以从沿着相同轨迹行驶通过交叉口3600的多个车辆接收三维点,并且可以对准由该多个车辆捕获的映射的道路特征,以生成针对每个入口和出口组合的对准的三维点组。图38示出了与所公开的实施例一致的沿着公共目标轨迹收集的三维点的示例对准。如图38所示,服务器3720可以接收由沿着目标轨迹3646行驶通过交叉口3600的第二主车辆捕获的3d点3802、3804、3806、3808、3810和3812。服务器3720可以对从多个驾驶捕获的三维点进行关联,以生成与目标轨迹3646相关联的对准的3d特征点组3800。可以使用迭代最近点(icp)算法或被配置为对准多个点云的其他算法来执行上述对准。服务器3720可以平移、旋转、缩放或以其他方式变换从不同车辆收集的各组三维点,以生成对准的三维特征点组3800。例如,3d点3712可以与3d点3812对准,如图38所示。虽然图28中示出了基于由两个车辆收集的成组3d点数据的对准过程,但是可以对来自三个或更多个驾驶的数据执行类似的对准。
461.在一些实施例中,对准的3d特征点组3800内的一个或多个3d点可以被组合。例如,对准的3d特征点组3800可以包含单个被组合的3d点,而不是包含多个点3712和3812。因此,对准的3d特征点组3800可以包含一组组合的3d特征点,每个组合的点与交叉口3600中的一个映射的道路特征相关联。组合的点可以表示与同一道路特征相关联的、经过关联的3d点之间平均位置。在一些实施例中,可以基于与收集的3d点相关联的置信度水平或其他值来加权该平均值。例如,在大雾或暴风雨期间收集的点可以被分配比白天收集的点更低的置
信度水平。也可以将各种其他因素,例如一天中的时间、相机属性(例如分辨率等)、车辆速度、或可以影响确定3d点的准确性的任何其他因素用于限定置信度水平。在一些实施例中,生成对准的3d特征点组3800可以包含附加的处理操作。例如,服务器3720可以排除离群的3d点(例如,与离其他3d点的位置超过阈值量的位置相关联的3d点),或者其他形式的处理。
462.为了生成交叉口3600的对准的稀疏地图,服务器3720然后可以将来自对准的3d特征点组3800的3d点与来自与其他入口-出口组合相关联的各对准的3d特征点组的3d点进行关联。图39示出了与所公开的实施例一致的基于来自多个入口-出口组合的经过关联的3d点来生成稀疏地图3940的示例过程。服务器3720可以基于交叉口3600的每个入口-出口组合,来生成多个对准的3d特征点组3900。例如,对准的3d特征点组3902可以对应于对准的3d特征点组3800,并且可以如上面关于图38所描述来生成该对准的3d特征点组3902。对准的3d特征点组3904和3906可以分别对应于轨迹3644和3642。针对每个其他的入口-出口组合,也可以生成各对准的3d特征点组,类似于上面所描述的对准的3d特征点组3800的过程。例如,对准的3d特征点组3908可以对应于基于在入口点3620c处进入交叉口3600并且在出口点3630b处离开交叉口3600的轨迹,等等。尽管在图39中未示出,但是如上所述,对准的3d特征点组3900还可以包含与通过交叉口3600的掉头或其他轨迹相关联的各对准的3d特征点组。
463.服务器3720可以对来自每个对准的3d特征点组3900的对准的3d点进行关联,以生成稀疏地图3940,稀疏地图3940具有与交叉口3600相关联的每个入口-出口组合(或入口-出口组合的选定子集)的充分对准的轨迹。图40示出了与所公开的实施例一致的两个对准的3d点集的示例对准。例如,图40可以示出对准的3d特征点组3902和对准的3d特征点组3908的对准过程,如图所示,对准的3d特征点组3902可以与目标轨迹3646相关联,且对准的3d特征点组3908可以与目标轨迹4010相关联。目标轨迹4010可以是基于在入口点3620c处进入交叉口3600并在出口点3630b处离开交叉口3600来限定的轨迹。服务器3720可以确定对准的3d特征点4012(来自对准的3d特征点组3902)和对准的3d特征点4022(来自对准的3d特征点组3908)之间的关联。基于该关联,服务器3720可以对于对准的3d特征点组3902和3802以及相关联的轨迹中的一者或多者进行变换,以对准这些点,如图40所示。这可以包含应用迭代最近点(icp)算法、或者被配置为对准多个点云的其他算法。关联和对准过程可以类似于上面关于图30所描述的关联和对准过程。因此,以上提供的任何细节或描述也可以应用于图40。
464.结果,可以基于每个入口-出口组合的对准的众包3d点,来对准目标轨迹3646和4010,如图40所示。可以对每个对准的3d特征点组3900执行类似的过程。因此,稀疏地图3940内针对每个入口-出口组合的各轨迹可以彼此对准。服务器3720然后可以将稀疏地图3940传输到一个或多个车辆,例如主车辆3610,其可以使用稀疏地图3940来导航交叉口3600。当行驶通过路口3600的车辆收集到附加3d点时,服务器3720可以更新稀疏地图3940,并且可以将更新的稀疏地图3940(或者限定对先前稀疏地图的改变的更新数据)传输到一个或多个车辆。
465.图41是示出与所公开的实施例一致的用于创建用于导航自主或部分自主车辆的地图的示例过程4100的流程图。如上所描述,过程4100可以由诸如服务器2910的远程定位的实体的至少一个处理设备来执行。在一些实施例中,非暂时性计算机可读介质可以包含
当由处理器执行时使得处理器执行过程4100的指令。此外,过程4100不一定限于图41所示的步骤,并且贯穿本公开所描述的各种实施例的任何步骤或过程也可以包含在过程4100中,包含上面关于图27-图31所描述的那些步骤或过程。
466.在步骤4110中,过程4100可以包含从跨多个车辆组分布的、穿过道路交叉口的多个车辆中的每一个车辆接收驾驶信息。例如,步骤4100可以包含接收与上面所描述的交叉口3600相关联的驾驶信息。每个车辆组可以包含穿过与道路交叉口相关联的不同入口-出口组合的一个或多个车辆。例如,交叉口3600可以与由入口点3620a、3620b、3620c和3620d与出口点3630a、3630b、3630c和3630d之一的各种组合所限定的轨迹相关联,如图36b所示。来自多个车辆中的每一个的驾驶信息可以包含与对象相关联的三维特征点,该些对象是通过分析当特定车辆穿过交叉口的特定入口-出口组合时捕获的图像而检测到的。例如,步骤4110可以包含从与目标轨迹3646相关联的主车辆3610接收驾驶信息,如图37所示。当其他主车辆沿着轨迹3646行驶时,可以从其他主车辆收集附加驾驶信息;并且可以从沿着由各入口-出口组合所限定的其他轨迹行驶的主车辆收集附加驾驶信息。
467.每个三维特征点可以如以上关于图28所描述来确定。例如,每个三维特征点包含相对于至少一个捕获图像的x-y位置以及相对于获取该至少一个捕获图像的相机的范围指示符(例如,深度d)。可以基于跨两个或更多个图像对与所识别的对象相关联的图像位置的跟踪,以及基于与主车辆相关联的自我运动信号,来确定范围指示符。在一些实施例中,每个三维特征点可以包含x-y-z位置。类似于该范围,可以基于跨两个或更多个图像对与所识别的对象相关联的图像位置的跟踪以及主车辆的自我运动信号,来确定x-y-z位置。在一些实施例中,3d点的收集可以跨许多车辆分布,以减少任何一个车辆上的计算负载。例如,来自多个车辆中的每一个的驾驶信息可以包含每米道路交叉口不超过1至40个之间的三维特征点、或者其他合适数量的特征点。
468.在步骤4120中,过程4100可以包含:对于每个入口-出口组合,对准从穿过该入口-出口组合的一个或多个车辆收集的驾驶信息中接收到的三维特征点,以生成多个对准的三维特征点组。因此,对于道路交叉口的每个入口-出口组合,可以生成一个对准的三维特征点组。例如,对于目标轨迹3646,可以对准由沿着目标轨迹3646行驶通过交叉口3600的多个车辆收集的三维特征点,如图38所示。如上所描述,对于每个入口-出口组合,可以执行类似的对准,以生成多个对准的三维特征点组3900。
469.在步骤4130中,过程4100可以包含将该多个对准的三维特征点组中的每一个对准的三维特征点组中的一个或多个三维特征点与该多个对准的三维特征点组当中的每个其他对准的三维特征点组中所包含的一个或多个三维特征点进行关联。例如,来自每个对准的三维特征点组3900的3d特征点可以如图39和图40所示地进行关联。这可以包含应用迭代最近点算法、或者用于对准3d点云的其他算法。
470.在步骤4140中,过程4100可以包含基于该多个对准的三维特征点组中的每一个对准的三维特征点组中的一个或多个三维特征点与每个其他对准的三维特征点组中所包含的一个或多个三维特征点的关联,来生成稀疏地图。例如,如上所描述,步骤4140可以包含生成稀疏地图3940。因此,稀疏地图可以包含与交叉口的每个入口-出口组合相关联的至少一个目标轨迹。在一些实施例中,稀疏地图还可以包含基于从多个车辆中的一个或多个接收的驾驶信息而确定的一个或多个映射的交叉口特征。例如,一个或多个映射的交叉口特
征包含以下中的至少一个:交通灯、停车标志、停车线、灯杆、道路标记、人行横道、建筑物或路缘石。如上所描述,稀疏地图可能需要相对较大的3d点集来精确地对轨迹进行关联。例如,稀疏地图可以基于每米道路路段的100个三维特征点、每米道路路段的200个三维特征点、每米道路路段的300个三维特征点、或者允许点之间具有统计显著关联的任何其他点密度。
471.在一些实施例中,还可以基于与捕获3d点相关联的相机位置信息来生成稀疏地图。例如,驾驶信息可以包含与多个捕获图像相关联的相机位置信息,并且稀疏地图的生成可以进一步基于相机位置信息。相机的位置可以基于一个或多个位置传感器的输出,例如上述位置传感器2824。例如,相机位置信息可以包含基于gps传感器的输出、基于自我运动传感器的输出、基于gps传感器的输出和至少一个自我运动传感器的输出的组合或各种其他形式的传感器或其组合而确定的至少一个位置指示符。
472.用于双向稀疏地图对准的后向相机
473.如上所描述,当对准来自在相同行驶方向上沿着道路路段移动的车辆的信息时,2d点可被用于生成稀疏地图。然而,这些2d点可能不足以将不同方向上的多个驾驶进行对准,因为同一道路路段从相同方向看时可能看起来是不同的。例如,同一道路标志在从一个方向看时可能看起来与从相反方向看时是完全不同的。因此,系统可能难以将来自一个方向的表示道路标志的点与从另一个方向收集的表示该标志的点进行关联。因此,为了将来自相反行驶方向的驾驶数据充分对准,可以需要某种形式的“链接”来对所收集的点进行关联。
474.如上所描述,一种解决方案可以是从多个车辆收集3d点,可以跨多个驾驶方向更准确地对准这些3d点。替代解决方案包含从后向相机收集道路特征的图像。例如,车辆可以使用前向相机捕获对象前侧的图像,并且稍后捕获对象后侧的图像。然后,基于对图像的分析,可以对与该对象前侧相关联的特征点以及与该对象后侧相关联的特征点进行关联。此信息在对准来自不同方向的驾驶时可以是有用的。例如,在与主车辆相反的行驶方向上行驶的第二主车辆可以使用前向相机来捕获对象后侧的图像。基于对象后侧和对象前侧之间的已知关系,可以将由第二主车辆识别的特征点与由第一主车辆收集的特征点进行关联。
475.作为另一个示例,类似于前向相机,后向相机可以被用于在主车辆穿过道路路段时检测驾驶信息。也就是说,后向相机可以以与主车辆相反方向行驶的汽车的前向相机的操作方式相同的方式进行操作。与前向相机相关联的驾驶信息和来自后向相机的驾驶信息可以被用于对准由在相反方向上沿着相同道路路段行驶的主车辆的前向相机收集的驾驶信息。
476.图42a示出了与所公开的实施例一致的示例道路路段4200,其中沿着该道路路段4200,可以使用后向相机来对准来自多个方向的驾驶信息。如图42a所示,道路路段4200可以包含多个车道,例如车道4222和4224。车道4222和4224可以与不同的行驶方向相关联。道路路段4200可包含可以由穿过道路路段4200的主车辆(例如主车辆4210)识别的一个或多个对象。与所公开的实施例一致,主车辆4210可以是自主或半自主车辆。主车辆4210可以被配置为捕获主车辆4210的环境的多个图像。例如,主车辆4210可以使用前向相机4212捕获图像。前向相机4212可以是能够捕获面向与主车辆4210的行驶方向相同的方向的图像的任何形式的图像捕获设备。主车辆4210与本文所描述的车辆200相同或相似。因此,本文中参
考车辆200所做的任何描述或公开也可以应用于主车辆4210,反之亦然。例如,正向相机4212可以对应于上面进一步详细描述的图像捕获设备122、图像捕获设备124和图像捕获设备126中的一个或多个。
477.主车辆4210还可以被配置为基于图像,来检测道路路段4200内的一个或多个对象或特征。例如,主车辆4210可以识别道路标志4202、人行横道标记4204和/或树4206中的一个或多个特征。道路路段4200可以包含图42中未示出的、可以由主车辆4210检测到的其他形式的对象和/或特征。例如,这可以包含但不限于车道标记、道路边界、交通灯、灯柱、坑洼、树、建筑物或可能沿着道路存在的其他特征。
478.图42b示出了与所公开的实施例一致的可以由主车辆4210的前向相机捕获的示例图像4250。例如,当在图42a所示的位置沿着道路路段4200行进时,可以由主车辆4210的前向相机4212捕获图像4250。主车辆4210可以识别对象,例如图像4250中的道路标志4202和人行横道标记4204。这可以包含使用如上所描述的各种图像处理算法。主车辆4210可以被配置为识别与图像中的各种特征相关联的位置描述符。例如,主车辆4210可以确定与道路标志4204相关联的位置描述符。位置描述符可以包含至少部分限定该特征的位置的任何信息。例如,位置描述符可以包含2d点信息,其可以被表示为x-y图像坐标,如上面关于图27所描述。
479.如上所描述,对于具有预定类型或其他特征的语义特征,主车辆可以被配置为确定对象类型分类。例如,对象类型分类可以是指示道路标志2710是道路标志、限速标志、30英里/小时限速标志或各种其他分类符的值。对象类型分类可以是数字代码、字母数字代码、语义描述或任何其他合适的值。在一些实施例中,可以为道路标志4202限定单个位置描述符以及对象类型分类。例如,点4252可以与道路标志4202的边缘相关联。可以使用各种其他点位置,例如中心、角、顶部或侧边缘、基点等。也可以检测非语义特征的2d点。例如,对于人行横道标记4204的角,可以限定2d点。如上面更详细所描述的,基于对2d点周围的像素应用图像处理算法,非语义特征点可以与唯一标识符相关联。主车辆可以确定与语义特征相关联的其他信息和/或描述符。例如,这可以包含所识别的对象的高度和宽度信息、限定包围图像中的对象的边界框的信息、或者可以识别该对象的其他信息。
480.在一些实施例中,位置描述符可以包含3d点。例如,位置描述符可以包含基于图像的x-y坐标(例如,由以上所描述的2d点限定的坐标)以及指示从相机到对象的距离的范围信息。在一些实施例中,位置描述可以基于x-y-z坐标,该x-y-z坐标基于真实世界原点。上面关于图28提供了有关确定3d点的附加细节。
481.主车辆4210还可以配备后向相机,该后向相机可以在主车辆4210沿着路段4200行进时捕获主车辆4210的环境的图像。图43a示出了与所公开的实施例一致的主车辆4210沿着道路路段4200捕获后向图像的示例场景。例如,主车辆4210可以配备后向相机4214,如图43a所示。后向相机4214可以是任何形式的图像捕获设备,其被配置为在向前移动时从与主车辆4210的行驶方向相反方向捕获图像。后向相机4214可以对应于图像捕获设备122、图像捕获设备124和图像捕获设备126中的一个或多个。如图43a所示,主车辆4210可以已经沿着道路路段4200比图42a所示的先前位置行驶得更远。例如,主车辆4210可以已经沿着车道4222行驶过人行横道标记4204和道路标志4202。
482.图43b示出了与所公开的实施例一致的可以由主车辆4210拍摄的示例后向图像
4350。例如,可以由后向相机4214从图43a所示的主车辆4210的位置捕获图像4350。如图43b所示,图像4350可以包含道路标志4204的后侧以及人行横道标记4204。车道4222和4224在图像4350中被识别以供参考。主车辆4210可以被配置为基于图像4350,来识别沿着路段4200的一个或多个特征的位置描述符。如上所描述,位置描述符可以是2d特征点(例如,基于图像的x-y坐标进行表示)或3d特征点(例如,被表示为2d点以及范围值、被表示为真实世界的x-y-z坐标等)。在一些实施例中,道路特征可以包含语义特征。因此,位置描述符可以与由主车辆4210确定的对象类型分类相关联。在一些实施例中,特征可以包含非语义特征。因此,如上所描述,位置描述符可以与基于对特征点周围的像素应用图像处理算法而确定的唯一标识符相关联。
483.在图43b所示的示例中,主车辆可以确定与道路标志4202相关联的位置描述符4302。在一些实施例中,位置描述符4302可以是语义点,例如,其与道路标志后侧的对象类型相关联。在一些实施例中,2d点4302可以是基于图像4350中2d点4302周围的像素而识别的非语义点,使得它可以由其他主车辆在类似图像中识别出。类似地,主车辆4210可以被配置为识别与树4206相关联的点4306。
484.在一些实施例中,主车辆4210还可以跟踪与图像4250和4350相关联的位置信息。例如,主车辆4210可以配备有位置传感器,例如以上所描述的位置传感器2824。在一些实施例中,该位置传感器可以是被配置为确定主车辆4210的gps坐标的gps传感器。在一些实施例中,该位置传感器可以包含一个或多个被配置为跟踪主车辆4210的自我运动的传感器。例如,该自我运动传感器可包含速度传感器、转向对准传感器、制动传感器、加速度计、罗盘或可用于跟踪主车辆4210在两点之间的运动的其他传感器。基于前向相机4212和后向相机4414相对于主车辆4210的已知位置,可以确定在图像4250和4350被捕获时这些相机的位置。
485.如图43b所示,道路标志4202的反面具有与图42b所示的道路标志4202的前侧明显不同的外观。例如,道路标志4202的柱子部分地覆盖了该标志,并且印刷的信息不可见。因此,使用传统技术,如果点4302和点4252被包含在单独的驾驶信息集中(例如,由在相反方向上行驶的两个不同的车辆捕获),则难以将它们对准。然而,可以使用主车辆4201使用从前向相机和后向相机捕获的图像所捕获的信息,来对准来自相反方向的驾驶信息。
486.图44示出了与所公开的实施例一致的由在相反方向上沿着道路路段4200行驶的车辆捕获的驾驶信息的示例集合。例如,车辆4410可以在第一方向上沿着车道4222穿过道路路段4200。车辆4410可以被配置为捕获驾驶信息并将其传输到远程定位的实体,例如服务器4430。车辆4410可以包含被配置为捕获车辆4410的环境的图像的前向相机4412。车辆4410可以识别与道路路段4200中的对象相关联的一个或多个特征,并且可以确定与所识别的特征点相关联的位置描述符。例如,车辆4410可以识别与道路标志4202相关联的点4414、以及与人行横道标记4204相关联的点4416。车辆4410可以被配置为将包含点4412和4416以及轨迹4402的驾驶信息传输到服务器4430。
487.车辆4420可以在与车辆4410相反的行驶方向上沿着车道4224穿过道路路段4200,如图44所示。虽然车辆4410和4420被示出为同时在路段4200上,但是应当理解,车辆4410和4420可以在不同的时间穿过道路路段4200。类似于车辆4410,车辆4420可以被配置为捕获驾驶信息并将其传输到服务器4430。车辆4420可以包含被配置为捕获车辆4420的环境的图
像的前向相机4422。车辆4420可以识别与道路路段4200中的对象相关联的一个或多个特征,并且可以确定与所识别的特征点相关联的位置描述符。例如,车辆4420可以识别与道路标志4202的后侧相关联的点4424、与人行横道标记4204相关联的点4416、以及与树4206相关联的点4428。车辆4420可以被配置为将包含点4412和4416以及轨迹4402的驾驶信息传输到服务器4430。图44中所示的点是作为示例提供的,并且不是所有示出的点都是对准所需要的。
488.服务器4430可以被配置为基于车辆4410和4420收集的驾驶信息,来生成稀疏地图。服务器4430还可以将稀疏地图(或指示对稀疏地图的更新的数据)传输到一个或多个自主或半自主车辆,其可以被用于导航。在一些实施例中,服务器4430可以对应于如上所描述的服务器1230。因此,本文参考服务器1230所做的任何描述或公开也可以应用于服务器4430,反之亦然。服务器4430可以使用由主车辆4210捕获的驾驶信息,来对准由车辆4410和4420捕获的驾驶信息。例如,服务器4430可以接收由主车辆4410捕获的点4252、4302和/或4306(即,位置描述符)、以及对象类型分类、位置信息或其他信息。该捕获信息可以被用于确定由车辆4410和4420捕获的驾驶信息之间的关联。
489.该关联可以通过各种方式来确定。在一些实施例中,该关联可以基于使用前向相机4212检测对象的前侧,以及使用后向相机检测其他对象的前侧。换句话说,后向相机4214可以像在与主车辆4210相反的方向上行驶的汽车的前向相机一样工作。因此,主车辆4210可以为沿着道路路段4200的每个行驶方向生成驾驶信息集。此外,这两个驾驶信息集将被充分对准,因为它们是由相同车辆沿着相同的轨迹捕获的。当这些对象的前侧被沿相反方向行驶的车辆检测到时,可以基于由主车辆4210捕获的驾驶信息来对准来自这两个车辆的驾驶信息。
490.作为说明性示例,主车辆4210可以使用前向相机4212来识别特征点4252,如图43b所示。主车辆4210还可以使用后向相机4214来识别树4206的特征点4306,如图43b所示。主车辆4210可以使用前向相机4212和后向相机4214之一或两者来识别沿着道路路段4200的各种其他点。该驾驶信息可以由主车辆4210传输到服务器4430。由于两个特征点集都是沿着相同的轨迹被捕获的,因此由正向相机4212捕获的特征点可以与使用后向相机4214捕获的特征点充分对准。例如,服务器4430可以基于从主车辆4210接收的定位信息来确定点4252和点4306的相对位置,该定位信息指示当图像4250和4350分别被捕获时前向相机4212和后向相机4214的相机位置。基于此位置信息,可以相对于点4306来限定点4252的位置。在一些实施例中,可以获取使用具有前向和后向相机的主车辆的附加驾驶信息,并将其用于进一步细化点4252和4306以及与对象前侧相关联的其他点的相对位置。
491.如上所描述,服务器4430然后可以从车辆4410和4420接收驾驶信息。例如,服务器4430可以从车辆4410接收包含点4414和轨迹4402的驾驶信息。服务器4430还可以从车辆4420接收包含点4428和轨迹4404的驾驶信息。服务器4430可以将点4414与点4252进行关联,因为两者都与道路标志4202的前侧相关联,并因此在图像数据中具有相似的外观。类似地,服务器4430可以将点4428与点4306进行关联,因为两者都与树4206的相同侧相关联,因此在图像中具有相似的外观。服务器4430可以基于点4414和4428以及点4252和4306之间的已知关系(如上所描述基于来自主车辆4210的驾驶信息而确定的),来对准两个驾驶信息集。因此,目标轨迹4402和4404可以在服务器4430生成的稀疏地图内被充分对准。虽然为了
简单起见,基于两个驾驶信息集来描述这种对准,但是应当理解,可以跨由多个车辆在每个方向上捕获的多个驾驶信息集而执行相同或相似的过程。下面关于过程4500和4600进一步详细描述该示例对准过程。
492.在一些实施例中,可以通过使用来自主车辆4210的驾驶信息的各种其他技术,来对准来自车辆4410和4420的驾驶信息。作为另一个示例,服务器4430可以被配置为对来自不同方向的、与同一对象相关联的点进行关联。例如,主车辆4210可以使用前向相机4212来识别与道路标志4202的前侧相关联的点4252。如上所描述,主车辆4210还可以识别与道路标志4202的后侧相关联的点4302。服务器4430(或主车辆4210)可以将点4252和4302两者与同一对象相关联。例如,服务器4430可以接收位置信息,该位置信息指示当图像4250和4350分别被捕获时前向相机4212和后向相机4214的相机位置。基于该位置信息,点4252和4302可以被确定为分别与同一对象的前侧和后侧相关联。
493.因此,可以对准来自不同方向的、与道路标志4202的前侧和道路标志4202的后侧相关联的附加点。例如,如上所描述,服务器4430可以从车辆4410接收包含轨迹4402和与道路标志4202的前侧相关联的点4414驾驶信息。服务器4430还可以从车辆4420接收包含轨迹4404和点4424的驾驶信息。服务器4430可以基于道路标志4202在图像4250和由车辆4410捕获的图像中的相似外观,将点4414与点4252进行关联。类似地,服务器4430可以基于道路标志4202的后侧在图像4350和由车辆4420捕获的图像中的相似外观,将点4424与点4302进行关联。服务器4430可以基于由主车辆4210确定的点4252和4302之间的关系,将点4414与点4424进行关联。换句话说,服务器4430可以基于主车辆4210提供的驾驶信息,来辨识出点4414和4424表示同一对象的不同侧。因此,目标轨迹4402和4404可以在服务器4430生成的稀疏地图内被充分对准。下面关于过程4700和4800进一步详细描述该示例对准过程。
494.图45是示出与所公开的实施例一致的用于采集用于稀疏地图的数据的示例过程4500的流程图。如上所描述,过程4500可以由主车辆的至少一个处理设备(诸如处理单元110)来执行。在一些实施例中,非暂时性计算机可读介质可以包含当由处理器执行时使得处理器执行过程4500的指令。此外,过程4500不一定限于图45所示的步骤,并且贯穿本公开所描述的各种实施例的任何步骤或过程也可以包含在过程4500中,包含上面关于图42a、图42b、图43a、图43b和图44所描述的那些步骤或过程。
495.在步骤4510中,过程4500可以包含接收当主车辆在第一方向上沿着道路路段行驶时,由主车辆车载的前向相机捕获的第一图像。第一图像可以表示主车辆前方的环境。例如,步骤4510可以包含接收由在车道4222中沿着道路路段4200行驶的主车辆4210捕获的图像4250。第一图像可以由诸如前向相机4212的前向相机捕获。
496.在步骤4520中,过程4500可以包含接收当主车辆在第一方向上沿着道路路段行驶时,由主车辆车载的后向相机捕获的第二图像。第二图像可以表示主车辆后方的环境。例如,步骤4520可以包含接收由主车辆使用后向相机4214捕获的图像4350,如图43a和图43b所示。
497.在步骤4530中,过程4500可以包含检测被表示在第一图像中的第一语义特征。例如,步骤4530可以包含检测图像4250中的道路标志4202。在一些实施例中,第一语义特征可以与预定对象类型分类相关联。例如,对象类型分类可以是将道路标志4202指示为道路标志、限速标志、30英里/小时限速标志或各种其他分类符的值。对象类型分类可以是数字代
码、字母数字代码、语义描述或任何其他合适的值。虽然道路标志4204是作为示例使用的,但是应当理解,语义特征可以包含各种其他特征,例如限速标志、让行标志、杆、刷漆方向箭头、交通灯、广告牌或建筑物。
498.在步骤4540中,过程4500可以包含识别与被表示在前向相机捕获的第一图像中的第一语义特征相关联的至少一个位置描述符。例如,步骤4540可以包含识别与点4252相关联的位置描述符,如上所描述。在一些实施例中,与第一语义特征相关联的至少一个位置描述符可以包含相对于第一图像的x-y图像位置。例如,位置描述符可以是如上关于图27所描述的2d点。在一些实施例中,与第一语义特征相关联的至少一个位置描述符可以包含相对于预定原点的x-y-z位置。例如,位置描述符可以是如上关于图28所描述的3d点。在一些实施例中,可以基于跟踪该第一语义特征在第一图像和至少一个附加图像之间的图像位置的改变、以及基于与主车辆相关联的至少一个自我运动传感器的输出,来确定x-y-z位置。例如,至少一个自我运动传感器可以包含速度计、加速度计或gps接收器中的至少一个。
499.在步骤4550中,过程4500可以包含检测被表示在第二图像中的第二语义特征。例如,步骤4550可以包含检测图像4350中的树4206。类似于第一语义特征,第二语义特征可以与预定的对象类型分类相关联。例如,对象类型分类可以是指示树4206是树叶对象、树、松树或各种其他分类符的值。虽然树4206是作为示例使用的,但是应当理解,语义特征可以包含各种其他特征,例如限速标志、让行标志、杆、刷漆方向箭头、交通灯、广告牌或建筑物。
500.在步骤4560中,过程4500可以包含识别与被表示在后向相机捕获的第二图像中的第二语义特征相关联的至少一个位置描述符。例如,如上所描述,步骤4560可以包含识别与点4306相关联的位置描述符。在一些实施例中,与第二语义特征相关联的至少一个位置描述符可以包含相对于第一图像的x-y图像位置。例如,位置描述符可以是如上关于图27所描述的2d点。在一些实施例中,与第二语义特征相关联的至少一个位置描述符可以包含相对于预定原点的x-y-z位置。例如,位置描述符可以是如上关于图28所描述的3d点。在一些实施例中,可以基于跟踪第一语义特征在第二图像和至少一个附加图像之间的图像位置的改变、以及基于与主车辆相关联的至少一个自我运动传感器的输出,来确定x-y-z位置。例如,至少一个自我运动传感器可以包含速度计、加速度计或gps接收器中的至少一个。
501.在步骤4570中,过程4500可以包含接收位置信息,该位置信息指示第一图像被捕获时前向相机的位置,以及指示当第二图像被捕获时后向相机的位置。这些相机位置可以基于一个或多个位置传感器的输出,例如上述位置传感器2824。例如,位置信息可以包含至少一个位置指示符,该位置指示符基于与主车辆相关联的gps传感器的输出、基于与主车辆相关联的至少一个自我运动传感器的输出、或者基于与主车辆相关联的gps传感器的输出和与主车辆相关联的至少一个自我运动传感器的输出的组合来确定。
502.在步骤4580中,过程4500可以包含引起向相对于主车辆远程定位的实体传输该道路路段的驾驶信息。例如,如上所描述,步骤4580可以包含使用无线收发器172使驾驶信息传输到服务器4430。驾驶信息可以包含由主车辆收集的各种信息。在一些实施例中,驾驶信息可以包含与第一语义特征相关联的至少一个位置描述符、与第二语义特征相关联的至少一个位置描述符以及位置信息。在一些实施例中,驾驶信息还可以包含与第一语义特征和第二语义特征中的每一个相关联的一个或多个描述符。例如,如上所描述,一个或多个描述符可以包含高度或宽度、边界框、类型分类或各种其他信息。
503.在一些实施例中,远程定位的实体可以被配置为从多个其他车辆接收驾驶信息,并且基于由主车辆传输的驾驶信息来对接收到的驾驶信息进行关联。例如,远程定位的实体包含一个或多个处理器,该一个或多个处理器被配置为除了接收由主车辆发送的驾驶信息之外,还从在第一方向上沿着道路路段行驶的第一多个其他车辆接收驾驶信息并且从在与第一方向相反的第二方向上沿着道路路段行驶的第二多个其他车辆接收驾驶信息。例如,如上所描述,这可以包含通过车辆4410和4420接收的驾驶信息。如上所描述,该一个或多个处理器还可以被配置为至少部分地基于第一语义特征和第二语义特征,来将从第一多个其他车辆接收的驾驶信息的一个或多个方面与从第二多个其他车辆接收的驾驶信息的一个或多个方面进行关联。在一些实施例中,该关联进一步基于上述位置信息。
504.图46是示出与所公开的实施例一致的用于创建用于导航自主或部分自主车辆的地图的示例过程4600的流程图。如上所描述,过程4600可以由诸如服务器4430的远程定位的实体的至少一个处理设备来执行。在一些实施例中,非暂时性计算机可读介质可以包含当由处理器执行时使得处理器执行过程4600的指令。此外,过程4600不一定限于图46所示的步骤,并且贯穿本公开所描述的各种实施例的任何步骤或过程也可以包含在过程4600中,包含上面关于图42a、图42b、图43a、图43b和图44所描述的那些步骤或过程。
505.在步骤4610中,过程4600可以包含接收由在第一方向上行驶过道路路段的第一多个车辆传输的该道路路段的第一驾驶信息。例如,如上所描述,步骤4610可以包含接收由车辆4410传输的道路路段4200的驾驶信息。因此,第一多个车辆可以沿着道路路段4200在车道4222中行驶。
506.在步骤4620中,过程4600可以包含接收由在与第一方向相反的第二方向上行驶过该道路路段的第二多个车辆传输的该道路路段的第二驾驶信息。例如,如上所描述,步骤4620可以包含接收由车辆4420传输的道路路段4200的驾驶信息。因此,第一多个车辆可以沿着道路路段4200在车道4224中行驶。
507.在步骤4630中,过程4600可以包含从配备有前向相机和后向相机的至少一个车辆接收该道路路段的第三驾驶信息。例如,步骤4630可以包含从主车辆4210接收其在沿着道路路段4200行驶时捕获的驾驶信息。在一些实施例中,可以根据以上所描述的过程4400的至少一些方面来收集和传输第三驾驶信息。在一些实施例中,第三驾驶信息可以包含对与基于对由前向相机捕获的前向图像的分析而检测到的第一语义特征相关联的位置描述符;以及与基于对由后向相机捕获的后向图像的分析而检测到的第二语义特征相关联的位置描述符。在一些实施例中,与基于对前向图像的分析而检测到的第一语义特征、基于对后向图像的分析而检测到的第二语义特征或两者相关联的位置描述符可以包含相对于前向图像的x-y位置。例如,位置描述符之一或两者可以被限定为2d点,如上面关于图27所描述。在一些实施例中,与基于对前向图像的分析而检测到的第一语义特征、基于对后向图像的分析而检测到的第二语义特征或两者相关联的位置描述符可以包含相对于预定原点的x-y-z位置。例如,位置描述符之一或两者可以被限定为3d点,如上面关于图28所描述。
508.在步骤4640中,过程4600可以包含至少部分地基于与基于对前向图像的分析而检测到的第一语义特征相关联的位置描述符以及与基于对由后向相机捕获的后向图像的分析而检测到的第二语义特征相关联的位置描述符,来对第一驾驶信息和第二驾驶信息的一个或多个方面进行关联。例如,与第一语义特征相关联的位置描述符可以包含点4252,且与
第二语义特征相关联的位置描述符可以包含点4306。如上所描述,步骤4640可以包含:基于点4252和4306之间的关系,来对点4416(其可以包含在第一驾驶信息中)和点4428(其可以包含在第二驾驶信息中)的位置进行关联,其中点4252和点4306之间的关系是基于第三驾驶信息而确定的。
509.在一些实施例中,第三驾驶信息还可以包含当前向图像被捕获时前向相机的位置指示符,以及当后向图像被捕获时后向相机的位置指示符。如上所描述,第一驾驶信息和第二驾驶信息的一个或多个方面的关联还可以基于前向图像被捕获时前向相机的位置指示符以及后向图像被捕获时后向相机的位置指示符。例如,这可以包含拍摄图像4250时前向相机4212的位置指示符和拍摄图像4350时后向相机4214的位置指示符。在一些实施例中,这些相机位置可以基于与配备有前向相机和后向相机的至少一个车辆相关联的一个或多个位置传感器的输出,例如上面所描述的位置传感器2824。例如,可以基于gps传感器的输出、至少一个自我运动传感器的输出、或者gps传感器的输出和至少一个自我运动传感器的输出的组合,来确定前向相机的位置指示符和后向相机的位置指示符,gps传感器和至少一个自我运动传感器两者都与配备有前向相机和后向相机的至少一个车辆相关联。
510.在步骤4650中,过程4600可以包含至少部分地基于第一驾驶信息和第二驾驶信息的关联来生成稀疏地图。稀疏地图可以包含在第一方向上沿着道路路段的行驶车道的至少第一目标轨迹和在第二方向上沿着道路路段的行驶车道的至少第二目标轨迹。例如,如上所描述,稀疏地图可以包含目标轨迹4402和4404。
511.图47是示出与所公开的实施例一致的用于采集用于稀疏地图的数据的示例过程4700的流程图。如上所描述,过程4700可以由主车辆的至少一个处理设备(例如处理单元110)来执行。在一些实施例中,非暂时性计算机可读介质可以包含当由处理器执行时使得处理器执行过程4700的指令。此外,过程4700不一定限于图47所示的步骤,并且贯穿本公开所描述的各种实施例的任何步骤或过程也可以包含在过程4700中,包含上面关于图42a、图42b、图43a、图43b和图44所描述的那些步骤或过程。
512.在步骤4710中,过程4700可以包含接收当主车辆在第一方向上沿着道路路段行驶时,由主车辆车载的前向相机捕获的第一图像。第一图像可以表示主车辆前方的环境。例如,步骤4710可以包含接收由沿着道路路段4200在车道4222中行驶的主车辆4210捕获的图像4250。可以由诸如前向相机4212的前向相机捕获第一图像。
513.在步骤4720中,过程4700可以包含接收当主车辆在第一方向上沿着道路路段行驶时,由主车辆车载的后向相机捕获的第二图像。第二图像可以表示主车辆后方的环境。例如,步骤4720可以包含接收由主车辆使用后向相机4214捕获的图像4350,如图43a和图43b所示。
514.在步骤4730中,过程4700可以包含检测被表示在第一图像中的至少一个对象。例如,步骤4730可以包含检测图像4250中的道路标志4202。
515.在步骤4740中,过程4700可以包含识别至少一个前侧二维特征点。该前侧二维特征点可以与被表示在第一图像中的至少一个对象相关联。例如,如上所描述,步骤4740可以包含检测点4252。在一些实施例中,至少一个前侧二维特征点可以包含相对于第一图像的x-y位置。例如,前侧二维特征点可以是2d点,如上面关于图27所描述。
516.在步骤4750中,过程4700可以包含检测该至少一个对象在第二图像中的表示。例
如,步骤4750可以包含在图像4350中检测道路标志4202的后侧。在一些实施例中,可以基于前向相机和后向相机之间的预定关系,来检测该至少一个对象在第二图像中的表示。例如,可以相对于主车辆4210限定前向相机4212和后向相机4214的位置。在一些实施例中,该至少一个对象在第二图像中的表示还可以基于与主车辆相关联的至少一个自我运动传感器的输出来检测。例如,步骤4750可以包含:从捕获到了图像4250的位置起跟踪主车辆4210的运动,并且一旦主车辆4210到达了道路标志4202的后侧预期可见的位置,就在图像4350中检测道路标志4202的后侧。主车辆4210可以基于道路标志4202在图像4350内的预期位置,来检测道路标志4202的后侧。例如,基于前向相机4212和后向相机4214之间的关系、以及主车辆4210的自我运动,可以确定道路标志4202的后侧的预期位置,其可以被用于在图像4350中识别道路标志4202的后侧。
517.在步骤4760中,过程4700可以包含识别至少一个后侧二维特征点。至少一个后侧二维特征点可以与被表示在第二图像中的该至少一个对象相关联。例如,如上所描述,步骤4760可以包含检测点4302。在一些实施例中,至少一个后侧二维特征点可以包含相对于第一图像的x-y位置。例如,前侧二维特征点可以是2d点,如上面关于图27所描述。
518.在步骤4770中,过程4700可以包含接收位置信息,该位置信息指示第一图像被捕获时前向相机的位置,以及指示第二图像被捕获时后向相机的位置。这些相机位置可以基于一个或多个位置传感器的输出,例如以上所描述的位置传感器2824。例如,位置信息可以包含至少一个位置指示符,该位置指示符基于与主车辆相关联的gps传感器的输出、基于与主车辆相关联的至少一个自我运动传感器的输出、或者基于与主车辆相关联的gps传感器的输出和与主车辆相关联的至少一个自我运动传感器的输出的组合来确定。
519.在步骤4780中,过程4700可以包含引起向相对于主车辆远程定位的实体传输该道路路段的驾驶信息。例如,如上所描述,步骤4770可以包含使用无线收发器172使驾驶信息传输到服务器4430。驾驶信息可以包含由主车辆收集的各种信息。在一些实施例中,驾驶信息可以包含至少一个前侧二维特征点、至少一个后侧二维特征点和位置信息。在一些实施例中,驾驶信息还可以包含指示至少一个前侧二维特征点和至少一个后侧二维特征点与同一对象相关联的指示符。例如,这可以包含链接前侧二维特征点和后侧二维特征点的参考或其他信息。
520.在一些实施例中,远程定位的实体可以被配置为从多个其他车辆接收驾驶信息,并且基于由主车辆传输的驾驶信息来对接收到的驾驶信息进行关联。例如,远程定位的实体包含一个或多个处理器,该一个或多个处理器被配置为除了接收由主车辆发送的驾驶信息之外,还从在第一方向上沿着道路路段行驶的第一多个其他车辆接收驾驶信息并且从在与第一方向相反的第二方向上沿着道路路段行驶的第二多个其他车辆接收驾驶信息。例如,如上所描述,这可以包含通过车辆4410和4420接收的驾驶信息。如上所描述,该一个或多个处理器还可以被配置为至少部分地基于第一语义特征和第二语义特征,来将从第一多个其他车辆接收的驾驶信息的一个或多个方面与从第二多个其他车辆接收的驾驶信息的一个或多个方面进行关联。在一些实施例中,该关联进一步基于上述位置信息。在一些实施例中,关联还可以基于作为从主车辆接收的驾驶信息的一部分而接收到的指示符,该指示符指示至少一个前侧二维特征点和至少一个后侧二维特征点与同一对象相关联。
521.图48是示出了与所公开的实施例一致的用于创建用于导航自主或部分自主车辆
的地图的示例过程4800的流程图。如上所描述,过程4800可以由诸如服务器4430的远程定位的实体的至少一个处理设备来执行。在一些实施例中,非暂时性计算机可读介质可以包含当由处理器执行时使得处理器执行过程4800的指令。此外,过程4800不一定限于图48中所示的步骤,并且贯穿本公开所描述的各种实施例的任何步骤或过程也可以包含在过程4800中,包含上面关于图42a、图42b、图43a、图43b和图44所描述的那些步骤或过程。
522.在步骤4810中,过程4800可以包含接收由在第一方向上行驶过道路路段的第一多个车辆传输的该道路路段的第一驾驶信息。例如,如上所描述,步骤4810可以包含接收由车辆4410传输的路段4200的驾驶信息。因此,第一多个车辆可以沿着道路路段4200在车道4222中行驶。
523.在步骤4820中,过程4800可以包含接收由在与第一方向相反的第二方向上行驶过该道路路段的第二多个车辆传输的该道路路段的第二驾驶信息。例如,如上所描述,步骤4810可以包含接收由车辆4420传输的道路路段4200的驾驶信息。因此,第一多个车辆可以沿着道路路段4200在车道4224中行驶。
524.在步骤4830中,过程4800可以包含从配备有前向相机和后向相机的至少一个车辆接收该道路路段的第三驾驶信息。例如,步骤4810可以包含从主车辆4210接收在其沿着道路路段4200行驶时捕获的驾驶信息。在一些实施例中,可以根据以上所描述的过程4400的至少一些方面来收集和传输第三驾驶信息。在一些实施例中,第三驾驶信息可以包含至少一个前侧二维特征点,该前侧二维特征点是基于对一对象在由前向相机捕获的前向图像中的表示的分析而生成的。例如,第三驾驶信息可以包含基于对图像4250中的道路标志4202的前侧的分析而生成的点4252。在一些实施例中,至少一个前侧二维特征点可以包含相对于第一图像的x-y位置。例如,前侧二维特征点可以是2d点,如上面关于图27所描述。
525.第三驾驶信息还可以包含至少一个后侧二维特征点,该后侧二维特征点是基于对该对象在由后向相机捕获的后向图像中的表示的分析而生成的。例如,第三驾驶信息可以包含基于对图像4350中道路标志4202的后侧的分析而生成的点4302。在一些实施例中,至少一个后侧二维特征点可以包含相对于第二图像的x-y位置。例如,后侧二维特征点可以是2d点,如上面关于图27所描述。
526.在步骤4840中,过程4800可以包含至少部分地基于包含在第三驾驶信息中的至少一个前侧二维特征点和至少一个后侧二维特征点,来对第一驾驶信息和第二驾驶信息的一个或多个方面进行关联。例如,第一驾驶信息可以包含点4414,并且第二驾驶信息可以包含点4424。如上所描述,步骤4840可以包含基于点4252和4302之间的关系,对点4414和点4424的位置进行关联,其中点4252和4302之间的关系是基于第三驾驶信息确定的。
527.在一些实施例中,第三驾驶信息还可以包含前向图像被捕获时前向相机的位置指示符,以及后向图像被捕获时后向相机的位置指示符。如上所描述,第一驾驶信息和第二驾驶信息的一个或多个方面的关联还可以基于前向图像被捕获时前向相机的位置指示符,以及后向图像被捕获时后向相机的位置指示符。例如,这可以包含拍摄图像4250时前向相机4212的位置指示符和拍摄图像4350时后向相机4214的位置指示符。在一些实施例中,这些相机位置可以基于与配备有前向相机和后向相机的至少一个车辆相关联的一个或多个位置传感器的输出,例如以上所描述的位置传感器2824。例如,可以基于gps传感器的输出、至少一个自我运动传感器的输出或者gps传感器的输出和至少一个自我运动传感器的输出的
组合,来确定前向相机的位置指示符和后向相机的位置指示符,该gps传感器和至少一个自我运动传感器都与配备有前向相机和后向相机的至少一个车辆相关联。在一些实施例中,第三驾驶信息还包含指示至少一个前侧二维特征点和至少一个后侧二维特征点与同一对象相关联的指示符。第一驾驶信息和第二驾驶信息的一个或多个方面的关联还可以基于指示至少一个前侧二维特征点和至少一个后侧二维特征点与同一对象相关联的指示符。
528.在步骤4850中,过程4800可以包含至少部分地基于第一驾驶信息和第二驾驶信息的关联来生成稀疏地图。该稀疏地图可以包含在第一方向上沿着道路路段的行驶车道的至少第一目标轨迹和在第二方向上沿着道路路段的行驶车道的至少第二目标轨迹。例如,如上所描述,稀疏地图可以包含目标轨迹4402和4404。
529.用于地图生成和细化的带宽管理
530.如本公开的其他地方所述,利用和解释由车辆收集的大量数据(例如,捕获的图像数据、地图数据、gps数据、传感器数据等)提出了多种设计挑战。例如,可能需要将车辆收集的数据上传到服务器。要上传的大量数据很容易削弱或阻碍车辆的传输带宽。此外,由服务器对新数据进行分析以基于新数据来更新地图的相关部分也可能具有挑战性。此外,不同的密度级别可用于映射不同类型的特征。例如,映射非语义特征可以需要每公里490kb的密度级别,相比于语义特征的密度级别约为每公里20kb。考虑到收集非语义特征信息所需的计算资源和可能对每个车辆施加的某些硬限制带宽上限(例如,每年100mb),可能没有足够的资源来供车辆一直收集非语义特征信息。
531.该系统和方法不仅可以使得能够控制是否收集驾驶数据,而且可以使得能够控制何时以及如何收驾驶数据。例如,所公开的系统和方法可以使服务器能够确定主车辆是否正在进入包括感兴趣区域的地区。在确认车辆已经进入地区时,服务器可以使车辆开始收集更高密度的非语义特征信息。如果确定车辆已经驾驶穿过兴趣点,则服务器可以使车辆上传收集到的非语义特征信息。如果确定车辆并未驾驶穿过兴趣区域,则服务器可以使主车辆丢弃收集到的非语义特征信息。所公开的系统和方法还可以使服务器能够基于车辆收集的非语义特征信息来更新地图。
532.图49示出了与本公开实施例一致的用于自动生成与一个或多个道路路段相关的导航地图的示例性系统。如图49所示,系统4900可以包括服务器4901、一个或多个车辆4902和与车辆相关联的一个或多个车辆设备4903、数据库4904和网络4905。例如,车辆4902和/或车辆设备4903可以被配置为当车辆4902在距感兴趣地理区域的预定距离外行驶时,以第一密度级别收集与车辆4902穿过(traverse)的环境相关联的第一导航信息。车辆4902和/或车辆设备4903还可以被配置为当车辆4902在感兴趣地理区域处或在距感兴趣地理区域的预定距离内行驶时,以可以大于第一密度级别的第二密度级别收集与车辆4902穿过的环境相关联的第二导航信息。
533.服务器4901可以被配置为接收与车辆4902穿过的环境相关联的第一导航信息和/或第二导航信息。数据库4904可以被配置为为系统4900的组件(例如,服务器4901、车辆4902、和/或车辆设备4903)存储信息。网络4905可以被配置为促进系统4900组件之间的通信。
534.服务器4901可以被配置为引起对与车辆4902穿过的环境相关联的第一导航信息的收集。可以以第一密度级别收集第一导航信息。服务器4901还可以被配置为基于与关联
于车辆4902的gps传感器相关联的输出,来确定车辆4902的位置。服务器4901还可以被配置为确定车辆4902是否在感兴趣地理区域(或其边界)处或在距感兴趣地理区域(或其边界)的预定距离内。服务器4901还可以被配置为基于对车辆4902的位置在感兴趣地理区域处或在距感兴趣地理区域的预定距离内的确定,引起对与车辆4902穿过的环境相关联的第二导航信息的收集。可以以可以大于第一密度级别的第二密度级别收集第二导航信息。服务器4901还可以被配置为使车辆4902将所收集的第一导航信息或所收集的第二导航信息(或其部分)中的至少一个从车辆4902上传。服务器4901还可以被配置为基于上传的所收集的第一导航信息或所收集的第二导航信息中的至少一个来更新导航地图。在一些实施例中,服务器4901可以是执行本文公开的功能的云服务器。术语“云服务器”是指经由网络(例如互联网)提供服务的计算机平台。在该示例配置中,服务器4901可以使用可以不对应于单独硬件的虚拟机。例如,可以通过从诸如数据中心或分布式计算环境之类的可扩展资源库分配满足需要的计算/存储能力的适当部分,来实现计算和/或存储能力。在一个示例中,服务器4901可以使用定制的硬连线逻辑、一个或多个专用集成电路(asic)或现场可编程门阵列(fpga)、固件和/或程序逻辑来实现本文描述的方法,这些逻辑或电路等与计算机系统一起使服务器4901成为专用机。
535.车辆4902和/或车辆设备4903可以被配置为当其在距感兴趣地理区域(或其边界)预定距离之外行驶时,收集第一导航信息。车辆4902和/或车辆设备4903还可以被配置为当其在感兴趣地理区域(或其边界)处或在距感兴趣地理区域(或其边界)预定距离内行驶时,收集第二导航信息。车辆4902和/或车辆设备4903还可以被配置为上传所收集的第一导航信息和所收集的第二导航信息中的至少一个(或其部分)。在一些实施例中,车辆4902可以从服务器4901接收地图信息(例如,更新的地图)。地图信息可以包括与各种项目在参考坐标系中的位置相关的数据,这些项目包括例如道路、水景、地理特征、企业、兴趣点、餐馆、加油站、包括某些道路特征(例如,车道标记)的多项式表示的稀疏数据模型、主车辆的目标轨迹等,或其组合。在一些实施例中,车辆4902和/或车辆设备4903还可以被配置为根据地图信息,来规划路线路径和/或导航车辆4902。例如,车辆4902和/或车辆设备4903可以被配置为基于地图信息确定到目的地的路线。替代地或附加地,车辆4902和/或车辆设备4903可以被配置为基于接收到的地图信息执行至少一个导航动作(例如,转弯、停在某个位置等)。在一些实施例中,车辆4902可以包括具有与上述系统100类似的配置和/或执行与系统100类似功能的设备。替代地或附加地,车辆设备4903可以具有与上述系统100类似的配置和/或执行与系统100类似的功能。
536.数据库4904可以包括地图数据库,该地图数据库被配置为为系统4900的组件(例如服务器4901、车辆4902和/或车辆设备4903)存储地图信息。在一些实施例中,服务器4901、车辆4902、和/或车辆设备4903可以被配置为访问数据库4904,并经由网络4905从数据库4904获取存储数据和/或上传数据到数据库4904。例如,服务器4901可以将与地图信息相关的数据传输到数据库4904用于存储。车辆4902和/或车辆设备4903可以从数据库4904下载地图信息和/或数据。在一些实施例中,数据库4904可以包括与各种项目在参考坐标系中的位置有关的数据,这些项目包括道路、水景、地理特征、企业、兴趣点、餐馆、加油站等,或其组合。在一些实施例中,数据库4904可以包括类似于本公开其他地方所述的地图数据库160的数据库。
537.网络4905可以是提供通信、交换信息和/或促进系统4900的组件之间的信息交换的任何类型的网络(包括基础设施)。例如,网络4905可以包括以下网络或者是以下网络的一部分:互联网、局域网、无线网络(例如,wi-fi/302.11网络)或其他合适的连接。在其他实施例中,系统4900的一个或多个组件可以通过专用通信链路直接通信,例如电话网络、外联网、内联网、互联网、卫星通信、离线通信、无线通信、转发器通信、局域网(lan)、广域网(wan)、虚拟专用网(vpn)等。
538.图50a、图50b和图50c示出了与所公开的实施例一致的用于收集导航信息的示例性过程。如图501a所示,车辆4902可以在区域5000中行驶。服务器4901可以被配置为基于例如从与车辆4902相关联的gps设备接收的gps数据,来确定车辆4902的位置。服务器4901还可以被配置为确定,车辆4902在距感兴趣地理区域5001的预定距离d之外。服务器4901还可以被配置为使车辆4902以第一密度级别收集与车辆4902穿过的环境相关联的第一导航信息。如图50b所示,车辆4902可以在区域5000中移动。服务器4901可以被配置为基于车辆4902的位置,确定车辆4902在距感兴趣地理区域5001的预定距离d内。服务器4901还可以被配置为使车辆4902以可以大于第一密度级别的第二密度级别来收集与车辆4902穿过的环境相关联的第二导航信息。如图50c所示,车辆4902可以在区域5000中移动。
539.更大的密度级别可以指示每单位长度的道路路段收集的数据量更大。例如,以第二密度级别收集的第二导航信息可以包括比以第一密度级别收集的第一导航信息更密集的相似对象集(例如,更多的地标)。在一些实施例中,密度级别可以对应于每米捕获的三维点的数量。例如,如上面进一步详细描述的,主车辆可以捕获与车辆的环境中的特征相关联的三维点,这些点可以被用于对准来自不同方向的驾驶信息。所公开的系统和方法可以被用于限定要收集的三维点的不同密度。可以限定与三维点集合相关联的各种其他方面,例如控制是否要收集三维点,限定要与三维点相关联的特征类型(例如,语义特征与非语义等)、或者各种其他方面。
540.替代地或附加地,以第二密度级别收集的第二导航信息可以包括比以第一密度级别收集的第一导航信息更多的收集数据类别。例如,以第二密度级别收集的第二导航信息可以包括比第一导航信息所具有的更多的非语义特征(例如,描述符),与语义特征的数据相比,这些非语义特征可能需要更多的数据。在一些实施例中,第二导航信息可以包括一个或多个非语义特征,而第一导航信息可以不包括任何非语义特征。语义特征和非语义特征的示例在本公开中较早地讨论过。替代地或附加地,相比于以第一密度级别收集的第一导航信息,以第二密度级别收集的第二导航信息可以包括来自更多和/或不同的传感器的传感器数据。例如,第一导航信息可以包括从gps传感器接收的gps数据。第二导航信息可以包括gps数据和从lidar系统接收的lidar数据。作为另一示例,第一导航信息可以包括gps数据和lidar数据,并且第二导航信息可以包括gps数据和从vidar系统接收的图像(和/或vidar)数据。作为又一示例,第一导航信息可以包括由安装在车辆上的相机捕获的一个或多个图像,并且第二导航信息可以包括由该相机捕获的一个或多个图像和从lidar系统接收的lidar数据。作为又一示例,第一导航信息可以包括从加速度计传感器接收的数据和从lidar系统接收的数据,以及从加速度计传感器接收的数据和从vidar系统接收的图像(和/或vidar)数据。
541.在一些实施例中,地标可以包括对象(或地标)的组合,只要该对象的组合是可区
分的(其可以与其他附近的对象集区分开来)。例如,相同类型的地标,包括可以构成组合地标(可以由语义对象的组合构成的地标)的地标集,可以彼此相距一定距离(例如,对应(或等于)与车辆相关联的gps设备的最小分辨率的距离)。
542.服务器4901可以被配置为确定车辆4902在感兴趣地理区域5001内。车辆4902可以被配置为当它在感兴趣地理区域5001内行驶时,继续以第二密度级别收集第二导航信息。服务器4901还可以被配置为使车辆4902将第一导航信息和第二导航信息中的至少一个上传到服务器4901。
543.在一些实施例中,可以评估驾驶的一个或多个属性,以确定是否应该上传第一导航信息和/或第二导航信息。例如,系统可以识别与特定道路路段相关联的数据要被收集的需求。例如,可能难以确定车辆是否将沿着该道路路段行驶,直到车辆穿过该道路路段周围的区域之后。因此,围绕该道路路段的感兴趣区域可以被限定,使得如何收集数据的配置被改变。例如,当车辆4902进入该道路路段周围的区域5001时,如上所描述,可以触发其以第二密度级别收集第二导航信息。在一些实施例中,仅当车辆穿过特定感兴趣道路路段时,在第二导航信息中收集的大量数据才是优选的。因此,如果车辆4902没有穿过该感兴趣道路路段,则可以丢弃第二导航信息。车辆4902可以向服务器4901发送定位信息,例如gps数据。作为响应,服务器4901可以分析gps数据,以确定车辆4902是否进入过该道路路段(或另一感兴趣区域)。如果是,服务器4901可以将指令传输到车辆4902,以上传导航信息集的全部(或部分)。
544.在一些实施例中,可以实现一个或多个规则来限定应该收集和/或保存多少数据。例如,这可以包含如上所描述的地理规则。作为另一个示例,规则可以限定数据上传到服务器的频率。在一些实施例中,频率规则可以控制车辆上传数据到服务器的速率,这可以允许数据遍及一天被传播,而不是当车辆经过特定道路路段时才传播。在一些实施例中,规则可以限定车辆收集和上传与特定道路路段相关联的数据的速率。例如,频率规则可以限定34分钟的时间段。如果服务器识别出在上午11:00在该道路路段中的驾驶,则通过相同道路路段的其他车辆的驾驶在直到上午11:34之前不会收集和/或上传数据。因此,接收数据的频率可能受到限制。在一些实施例中,服务器可以接受车辆整个驾驶的数据,即使与其他道路路段相关联的相关联的频率规则不需要来自该驾驶内的这些其他道路路段的数据。例如,主车辆可以根据第一频率规则上传来自第一道路路段的数据,并且可以包含来自第二路段的数据,即使第二路段的第二频率规则并未指示应该上传数据。
545.图51是示出与所公开的实施例一致的用于自动生成关于一个或多个道路路段的导航地图的示例性过程的流程图。过程5100的一个或多个步骤可由车辆(例如,车辆4902)、与主车辆相关联的设备(例如,车辆设备4903)和/或服务器(例如,服务器4901)执行。虽然下面提供的过程5100的描述使用服务器4901作为示例,但是本领域技术人员将理解,过程5100的一个或多个步骤可以由车辆(例如,车辆4902)和车辆设备来执行,其被配置为收集导航信息并将该导航信息传输到服务器。此外,在本文描述的各个步骤中,车辆可以将某些信息和/或数据上传到服务器,并且本领域技术人员将理解,替代地或附加地,车辆可以经由网络将信息和/或数据上传到数据库(例如,数据库4904)。此外,本领域技术人员会理解,虽然以下提供的过程5100的描述使用车辆4902作为示例,但是过程5100不局限于一个车辆。例如,服务器4901可以被配置为确定多个车辆的位置,并且使多个车辆收集第一导航信
息和/或第二导航信息。服务器4901还可以被配置为使多个车辆将收集到的第一导航信息和/或第二导航信息上传,并基于接收到的第一导航信息和/或第二导航信息更新导航地图。
546.在步骤5101,可以收集与主车辆穿过的环境相关联的第一导航信息。例如,服务器4901可以被配置为引起车辆4902以第一密度级别对与车辆4902穿过的环境相关联的第一导航信息的收集。作为示例,如图50a中所示,车辆4902可以在区域5000中行驶。服务器4901可以被配置为通过向车辆4902传输以第一级别收集导航信息的请求,来使车辆4902收集与车辆4902的环境相关联的导航信息。
547.在一些实施例中,车辆4902可以收集基于从诸如gps设备、速度传感器、加速度计、悬架传感器、相机和lidar设备等,或其组合之类的一个或多个传感器接收的信号而确定的导航信息。示例性导航信息可以包括与以下相关的信息和/或数据:车辆位置、车辆速度、车辆驾驶方向、与一个或多个道路路段相关联的地标、道路、一个或多个道路特征、一个或多个基础设施对象、水景、地理特征、兴趣点(例如办公楼、餐馆、加油站等)、与一个或多个道路路段相关联的一个或多个图像、与一个或多个道路路段相关联的lidar数据、包括某些道路特征(例如,车道标记)的多项式表示的稀疏数据模型、主车辆的目标轨迹等,或其组合。例如,第一导航信息可包括与关联于一个或多个路段的一个或多个地标相关联的位置信息。替代地或附加地,第一导航信息可以包括与关联于一个或多个道路路段的一个或多个道路特征相关联的位置信息。
548.在一些实施例中,第一导航信息可以与第一密度级别相关联。密度级别可以指示要收集的导航信息的某些类别(例如,收集的导航信息的一个或多个类型)、导航信息的收集速率(例如,每单位时间有多少数据点,例如每秒、每分钟、每小时等)、导航信息的准确度级别(例如,更高或更低的数据分辨率)等,或其组合。在一些实施例中,密度级别可以与数据密度(例如,每公里道路少于10mb、每公里道路少于5mb、每公里道路2mb、每公里道路少于1mb、每公里道路少于500kb、每公里道路少于100kb、每公里道路少于10kb或每公里道路少于2kb)相关联。
549.在一些实施例中,车辆4902可以在没有,输入或没有来自服务器4901的请求的情况下,收集第一导航信息。例如,车辆4902可以在“默认”收集模式下操作,其中以预定密度级别(例如,第一密度级别)收集导航信息。可替代地,车辆4902可以基于与车辆4902的状况(例如,速度、航向方向等)相关联的设置,以预定密度级别收集导航信息。作为又一个替代方案,车辆4902可以基于从服务器4901向车辆4902传输的密度级别来收集导航信息。
550.在步骤5102,可以基于与主车辆的一个或多个传感器相关联的输出来确定主车辆的位置。例如,车辆4902可以被配置为接收与gps传感器相关联的输出,并且将输出传输到服务器4901。服务器4901可以被配置为基于接收到的与gps传感器相关联的输出,来确定车辆4902的位置。替代地或附加地,车辆4902可以被配置为基于接收到的与gps传感器相关联的输出来确定它的位置,并且将车辆4902的位置传输到服务器4901。示例性传感器可以包括速度传感器、加速度计、相机、lidar设备等,或其组合。替代地或附加地,车辆4902可以使用地图信息来确定位置。
551.在一些实施例中,可以以预定时间间隔确定车辆4902的位置。例如,车辆4902的位置可以每秒或每分钟确定一次。替代地或附加地,车辆4902的位置可以基于车辆4902的速
度来确定。例如,如果(由车辆4902和/或服务器4901)确定车辆4902以更高的速度行驶,则可以更频繁地确定车辆4902的位置。替代地或附加地,车辆4902的位置可以基于车辆4902所在的区域来确定。例如,如果(由车辆4902和/或服务器4901)确定车辆4902在城市地区,则可以更频繁地确定车辆4902的位置(或者如果车辆4902在农村地区,则不那么频繁)。
552.在步骤5103,可以确定主车辆的位置是否在感兴趣地理区域处或在距在距感兴趣地理区域的预定距离内。例如,如图50a和图50b所示,服务器4901可以被配置为确定感兴趣地理区域5001和距感兴趣地理区域5001(或其边界)的预定距离d。服务器4901还可以被配置为确定车辆4902是否在感兴趣地理区域(或其边界)5001处或在距感兴趣地理区域(或其边界)5001的预定距离d内。如图50a所示,服务器4901可以被配置为确定车辆4902不在感兴趣地理区域5001(或其边界)处或不在距感兴趣地理区域5001(或其边界)的预定距离d内。可替代地,如图50b所示,服务器4901可以被配置为确定车辆4902在感兴趣地理区域处5001(或其边界)处或在距感兴趣地理区域5001(或其边界)的预定距离d内。替代地或附加地,车辆4902可以被配置为确定车辆4902是否在感兴趣地理区域5001(或其边界)处或在距感兴趣地理区域5001(或其边界)的预定距离d内。例如,服务器4901可以将感兴趣地理区域5001和距感兴趣地理区域5001(或其边界)的预定距离d传输到车辆4902。车辆4902可以被配置为基于如本公开其他地方所描述的方式而确定的车辆4902的位置,来确定车辆4902是否在感兴趣地理区域5001(或其边界)处或在距感兴趣地理区域5001(或其边界)的预定距离d内。车辆4902可以被配置为将对车辆4902在感兴趣地理区域5001(或其边界)处或在距感兴趣地理区域5001(或其边界)的预定距离d之内(或之外)的确定的结果传输到服务器4901。
553.在一些实施例中,服务器4901可以被配置为基于感兴趣地理区域的现有信息,来确定该感兴趣地理区域。例如,服务器4901可以被配置为确定,一区域的现有地图数据可能是不充足的(例如,不包括关于与该区域中的道路路段相关联的道路特征的某些细节)。举例来说,服务器4901可以被配置为确定可能需要精确对准的特定道路路段(例如,1公里长)。服务器4901还可以被配置为确定感兴趣地理区域(例如,覆盖该道路路段的正方形或圆形)。作为另一示例,服务器4901可以确定要更新一区域的地图信息,并且可以将该区域指定为感兴趣地理区域。
554.感兴趣地理区域可以是地图或坐标系中的地理区域。感兴趣地理区域可以包括道路路段、街道、交叉路口、高速公路、高速公路路口、地标、基础设施对象、地理特征、兴趣点(例如企业、餐馆、加油站等)等,或其组合中的一个或多个。感兴趣地理区域的形状和/或尺寸可以不同。感兴趣地理区域可以包括三角形形状、四边形形状、平行四边形形状、矩形形状、正方形(或大致正方形)形状、梯形形状、菱形形状、六边形形状、八边形形状、圆形(或大致圆形)形状、椭圆形形状、蛋形形状等,或其组合。本领域技术人员将理解,感兴趣地理区域的形状不局限于本公开所描述的示例性形状。其他形状也是可能的。例如,感兴趣地理区域可以包括不规则形状(例如,基于例如国家、州、县、市和/或道路之类的管辖区的一个或多个边界而确定)和/或本文描述的任何形状的部分。感兴趣地理区域的尺寸可以在1平方米到100平方公里的范围内。在一些实施例中,感兴趣地理区域的大小可以被限制在1平方米到0.1平方千米、0.1到0.25平方千米、0.25平方千米到1平方千米、1平方千米到10平方千米以及10至25平方千米、25平方千米、50至100平方千米的子范围。
555.在一些实施例中,预定距离可以包括直接距离、路线距离(例如,主车辆行驶到感
兴趣地理区域的距离)等,或其组合。预定距离可以在1米到100千米的范围内。在一些实施例中,预定距离可以被限制为1到5米、5到10米、10到50米、50到100米、100到500米、500到1000米、1到5千米、5到10公里、10到50千米、50到100千米的子范围。替代地或附加地,预定距离可以包括基于车辆按照街道街区的数量、高速公路上的出口数量等或其组合,与感兴趣的地理区域(或其边界)有所分离的距离指示符。例如,预定距离可以包括指示三个街道街区的距离指示符。
556.在一些实施例中,服务器4901可以被配置为基于感兴趣地理区域,确定地理区域的近似。例如,服务器4901可以通过将预定距离添加到感兴趣地理区域的边界来扩展感兴趣地理区域,以获得粗略地理区域。服务器4901(和/或车辆4902)还可以被配置为基于车辆4902的位置,来确定车辆4902是否在该粗略地理区域处或在该粗略地理区域内。
557.在一些实施例中,服务器4901可以将与感兴趣地理区域和/或预定距离相关的信息传输到车辆4902。例如,服务器4901可以将感兴趣地理区域的边界和/或预定距离传输到车辆4902。
558.在步骤5104,响应于对主车辆的位置在感兴趣地理区域处或在距感兴趣地理区域的预定距离内的确定,可以收集与主车辆穿过的环境相关联的第二导航信息。例如,服务器4901可以被配置为基于确定车辆4902的位置在感兴趣地理区域处或在距感兴趣地理区域的预定距离内,引起对与车辆4902穿过的环境相关联的第二导航信息的收集。
559.例如,如图50b所示,服务器4901可以被配置为确定车辆4902在感兴趣地理区域5001内。服务器4901还可以被配置为将用以收集第二导航信息的指令传输到车辆4902,并且车辆4902可以响应于收到的指令而收集第二导航信息。
560.在一些实施例中,第二导航信息可以包括比第一导航信息更多的信息类别。例如,第一导航信息可以包括与一个或多个道路路段相关联的地标和道路特征(即,两类信息)。第二导航信息可以不仅包括与一个或多个道路路段相关联的地标和道路特征,而且还包括与一个或多个道路路段相关联的一个或多个基础设施对象、水景、地理特征和/或兴趣点。
561.在一些实施例中,第二导航信息可以与大于第一密度级别的第二密度级别相关联。例如,第二密度级别可以至少是第一密度级别的两倍。举例来说,第一导航信息可以包括由与车辆4902相关联的lidar设备以第一密度级别(例如,每15米300个点)测量的云点数据。第二导航信息可以包括由lidar设备以第二密度级别(例如,每15米800个点)测量的云点数据,该第二密度级别至少是第一密度级别的两倍。作为另一示例,第二密度级别可以至少是第一密度级别的五倍。作为另一示例,第二密度级别可以至少是第一密度级别的十倍。
562.替代地或附加地,可以以比收集第一导航信息的收集速率更高的收集速率来收集第二导航信息。举例来说,第一导航信息可包括车辆4902上的车载相机以第一图像收集速率捕获的车辆4902的环境的图像。第二导航信息可以包括由车辆4902上的车载相机以高于第一图像收集速率的第二图像收集速率捕获的车辆4902的环境的图像。图像收集速率可以包括基于车辆4902行驶的时间和/或距离的收集速率。例如,第一图像收集速率可以是每秒10帧(fps),并且第二图像收集速率可以是30或60fps。作为另一示例,第一图像收集速率可以是车辆4902每行驶一米的1帧,并且第二图像收集速率可以是车辆4902每行驶一米的5或10帧。替代地或附加地,第二导航信息与来自车辆4902的车载相机的图像分辨率相关联,该图像分辨率高于与第一导航信息相关联的图像分辨率。例如,第一导航信息可以包括由车
辆4902的车载相机以1392x1024的第一分辨率捕获的一个或多个图像,并且第二导航信息可以包括由车辆4902的车载相机以1600x1200(或更高)的第二分辨率捕获的一个或多个图像。
563.如本公开的其他地方所述,示例性第二导航信息可以包括与以下相关的信息和/或数据:车辆位置、车辆速度、车辆驾驶方向、与一个或多个道路路段相关联的地标、道路、一个或多个道路特征、一个或多个基础设施对象、水景、地理特征、兴趣点(例如,办公楼、餐馆、加油站等)、与一个或多个道路路段相关联的一个或多个图像,与一个或多个道路路段相关联lidar数据、包括某些道路特征(例如,车道标记)的多项式表示的稀疏数据模型、主车辆的目标轨迹等,或其组合。例如,第二导航信息可以包括与关联于一个或多个路段的一个或多个地标相关联的位置信息。替代地或附加地,第二导航信息可以包括与关联于一个或多个道路路段的一个或多个道路特征相关联的位置信息。
564.在一些实施例中,第一导航信息和/或第二导航信息还可包括视频检测和测距(vidar)数据。例如,车辆4902可以包括相机集合,其被配置为使用vidar技术在特定时间点生成车辆的环境的密集点云。举例来说,车辆4902(和/或服务器4901)可以通过学习单目特征和相关特征以推断相机子集中的每个像素处的深度从而生成云。在一些实施例中,第一导航信息和/或第二导航信息可以是lidar和vidar数据两者。在一些实施例中,可以大约在同一时间收集lidar和vidar数据。
565.在一些实施例中,第一导航信息可以包括lidar数据,并且第二导航信息可以包括vidar数据,其中vidar数据可以具有比lidar数据的密度级别更大的密度级别。
566.在一些实施例中,如果确定车辆4902在感兴趣地理区域(或其边界)处或距感兴趣地理区域(或其边界)的预定距离内,则车辆4902可以被配置为继续收集第二导航信息。例如,服务器4901(和/或车辆4902)可以被配置为确定车辆4902的位置,并确定车辆4902是否在感兴趣地理区域(或其边界)处或在距感兴趣地理区域(或其边界)的预定距离内,如本公开其他地方所描述的。服务器4901可以将指令传输到车辆4902以继续收集第二导航信息,除非车辆4902接收到切换到收集第一导航信息的后续指令。在一些实施例中,服务器4901(和/或车辆4902)可以被配置为在已经确定车辆4902在感兴趣地理区域5001处或在距感兴趣地理区域5001的预定距离内之后,确定车辆4902是否在距感兴趣地理区域5001的预定距离之外行驶。服务器4901(和/或车辆4902)还可以被配置为使车辆4902切换回收集第一导航信息。
567.在步骤5105,可以上传来自主车辆的、所收集的第一导航信息或所收集的第二导航信息中的至少一个。例如,服务器4901可以被配置为使车辆4902将收集的第一导航信息或收集的第二导航信息(或其部分)中的至少一个从车辆4902上传。车辆4902可以经由与车辆4902相关联的收发器,将所收集的第一导航信息或所收集的第二导航信息中的至少一个上传。在一些实施例中,车辆4902可以连续地将第一导航信息和/或第二导航信息(或第一导航信息的部分和/或第二导航信息的部分)传输到服务器4901。可替代地,车辆4902可以间歇性地将第一导航信息和/或第二导航信息(或第一导航信息的部分和/或第二导航信息的部分)发送到服务器4901。例如,车辆4902可以在一段时间内多次向服务器4901传输第一导航信息和/或第二导航信息(或第一导航信息的部分和/或第二导航信息的部分)。举例来说,车辆4902可以每分钟一次向服务器4901传输第一导航信息和/或第二导航信息(或第一
导航信息的部分和/或第二导航信息的部分)。可替代地,当车辆4902具有更可靠和/或更快的网络访问(例如,具有更强的无线信号、经由wifi连接等)时,车辆可以传输第一导航信息和/或第二导航信息(或第一导航信息的部分和/或第二导航信息的部分)。在一些实施例中,车辆4902可以根据从服务器4901接收到的请求,来传输第一导航信息和/或第二导航信息(或第一导航信息的部分和/或第二导航信息的部分)。例如,服务器4901可以将请求传输到车辆4902,以请求对由车辆4902收集的第一导航信息或第二导航信息的子集的传输。车辆4902可以基于收到的请求,来传输所请求的导航信息(例如,第一导航信息或第二导航信息的子集)。在一些实施例中,该请求可以包括至少一个时间戳(time stamp)。
568.在一些实施例中,车辆4902可以被配置为将第一导航信息和第二导航信息两者上传到服务器4901,并且服务器4901可以被配置为接收和存储第一导航信息和第二导航信息两者。
569.在一些实施例中,服务器4901可以被配置为基于对车辆4902是否曾在感兴趣地理区域内行驶过的确定,使车辆4902上传所收集的第二导航信息(或其部分)。例如,如图51c所示,服务器4901可以被配置为确定车辆4902在感兴趣地理区域5001内行驶过。服务器4901可以被配置为使车辆4902将收集到的第二导航信息(或其部分)上传到服务器4901。替代地或另外地,服务器4901可以被配置为使车辆4902将所收集的第二导航信息中与感兴趣地理区域5001相关联的一部分上传到服务器4901。在一些实施例中,服务器4901还可以被配置为使车辆4902将所收集的第二导航信息中与感兴趣地理区域5001无关联的一部分丢弃。
570.在一些实施例中,服务器4901可以被配置为确定车辆4902没有在感兴趣地理区域内行驶过。服务器4901还可以被配置为如果车辆4902没有在感兴趣地理区域内行驶过,则使车辆4902不上传第二导航信息的全部或至少部分。替代地或附加地,服务器4901可以被配置为基于对车辆4902没有在感兴趣地理区域内行驶过的确定,使车辆4902丢弃(和/或盖写)第二导航信息的全部或至少部分(或将第二导航信息的全部或至少部分标记为适合于被盖写)。在一些实施例中,服务器4901可以被配置为在确定车辆4902接近到距感兴趣地理区域5001的预定距离内并且然后移动远离至距感兴趣地理区域5001的至少预定距离外之后,确定车辆4902是否曾在感兴趣地理区域5001内行驶过。
571.在一些实施例中,车辆4902可以在没有输入或没有来自服务器4901的指令的情况下,上传第一导航信息和/或第二导航信息。例如,车辆2702可以在收集到第一导航信息和/或第二导航信息(和/或传感器数据)时,将此类信息传输到服务器2701。可替代地,车辆2702可在触发事件时,将第一导航信息和/或导航信息(和/或传感器数据)传输到服务器2701。例如,车辆4902可以确定自检测到最后一个语义对象以来已经经过了预定时间段或预定距离。车辆4902还可以将收集的第一导航信息和/或第二导航信息(和/或传感器数据)上传到服务器2701。
572.在步骤5106,可以更新导航地图。例如,服务器4901可以被配置为基于上传的所收集的第一导航信息或所收集的第二导航信息中的至少一个来更新导航地图。例如,服务器4901可以被配置为基于接收到的由车辆4902收集的第一导航信息和/或第二导航信息,来更新与感兴趣地理区域(和/或其他区域)相关联的导航地图。服务器4901还可以被配置为将更新的导航地图存储到存储体和/或数据库(例如,数据库4904)中。在一些实施例中,服
务器4901可以将更新的导航地图传输到一个或多个车辆。例如,服务器4901可以经由例如网络4905,将更新的导航地图传输到车辆4902。替代地或附加地,服务器4901可以将更新的导航地图存储到数据库4904中,并且一个或多个车辆(例如,车辆4902)可以从数据库4904获取更新的导航地图。
573.在一些实施例中,服务器4901可以基于从两个或更多个车辆接收的(第一和/或第二)导航信息来更新导航地图。例如,服务器4901可以对从与同一道路路段相关联的两个或更多个车辆接收到的第一导航信息和/或第二导航信息进行聚集。在一些实施例中,当车辆在沿道路路段的方向驾驶时收集的导航信息可以与车辆在相反方向行驶时收集的导航信息不同,即使沿着同一道路路段。服务器4901可以对从与同一道路路段相关联的、在同一驾驶方向(和/或与该同一驾驶方向相反的方向)上的两个或更多个车辆接收的第一导航信息和/或第二导航信息进行聚集。例如,服务器4901可以基于从导航信息中确定的特征点,来对准从沿着道路路段在同一方向上驾驶的两个或更多个车辆接收的导航信息。服务器4901还可以基于经聚集的(第一和/或第二)导航信息来更新导航地图。
574.在一些实施例中,服务器4901可以被配置为确定与感兴趣地理区域相关联的导航地图的更新已经完成(或至少在一段时间内)。服务器4901可以被配置为将不收集与感兴趣地理区域相关联的第二导航信息的指令传输到一个或多个车辆。
575.在一些实施例中,与服务器4901处理或使用第一导航信息时相比,服务器4901可以使用更多资源来处理或使用第二导航信息。
576.出于说明的目的已经呈现了前面的描述。它不是穷举性的并且不限于所公开的精确形式或实施例。考虑到所公开实施例的说明书和实践,修改和改编对于本领域技术人员来说是显而易见的。另外,尽管所公开的实施例的方面被描述为存储在存储器中,但本领域的技术人员将理解,这些方面也可以存储在其他类型的计算机可读介质上,诸如辅助存储装置,例如,硬盘或cdrom、或其他形式的ram或rom、usb介质、dvd、蓝光、4k超高清蓝光、或其他光驱动介质。
577.基于书面说明和所公开的方法的计算机程序在有经验的开发人员的技术范围内。可以使用任何本领域技术人员已知的技术来创建或可以结合现有的软件来设计各种程序或程序模块。例如,程序部分或程序模块可以以或通过.net framework、.net compact framework(以及相关的语言,诸如visual basic,c等)、java、c 、objective-c、html、html/ajax组合、xml或者包含java小程序的html来设计。
578.此外,虽然已经在本文中描述了说明性实施例,但是本领域技术人员基于本公开将认识到具有等同的要素、修改、省略、组合(例如,遍及各个实施例的方面的)、改编和/或变化的任何以及所有实施例的范围。权利要求书中的限定将基于权利要求书中采用的语言宽泛地解释,并且不限于在本说明书中或在本技术的审查期间所描述的示例。示例将被解释为非排他性的。此外,所公开的方法的步骤可以以任何方式修改,包含通过重新排序步骤和/或插入或删除步骤。因此,意图是说明书和示例被视为仅是说明性的,真正的范围和精神由以下权利要求及其等同物的全部范围来表示。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献