首页> 中国专利> 一种生成高分辨率高精度点云的系统、设备和方法

一种生成高分辨率高精度点云的系统、设备和方法

摘要

一种生成高分辨率高精度点云的系统、设备和方法。一方面,计算机视觉系统接收来自相机系统的相机点云以及来自激光雷达(Light Detection and Ranging,LiDAR)系统的LiDAR点云;以所述LiDAR点云为参考,确定所述相机点云的误差;基于所确定的误差确定校正函数;使用所述校正函数,基于所述相机点云生成修正点云;以第一LiDAR点云为参考,确定所述修正点云的训练误差;基于所确定的训练误差更新所述校正函数。训练结束时,所述校正函数可以用于所述计算机视觉系统基于所述相机系统提供的相机点云生成一个生成的高分辨率高精度点云。

著录项

说明书

技术领域

本发明涉及计算机视觉,尤其涉及一种生成高分辨率高精度点云的系统、设备和方法。

背景技术

激光雷达(Light Detection and Ranging,LiDAR)点云可用于点云地图生成。点云地图生成包括:在环境中四处移动扫描LiDAR(即,沿街区驾驶配备有LiDAR的小汽车),收集LiDAR生成的所有点云,并将生成的点云合并在一起,以生成点云地图。所生成的点云地图包括比传统点云更大的3D数据点集合,并具有扩展边界。点云地图可以用于车辆驾驶员辅助系统或自主车辆中,以在自主驾驶中实现基于地图的车辆定位。

计算机视觉系统依赖于准确可靠的传感器数据,并实现能够理解传感器数据的机器学习算法。计算机视觉系统是车辆驾驶员辅助系统及自主车辆的众多应用中的一个重要器件。存在多种用于生成环境的二维(two-dimensional,2D)或三维(three-dimensional,3D)表示的机器学习算法,包括对象检测算法、动态对象移除算法、同步定位与地图构建(simultaneous localization and mapping,SLAM)算法、点云地图生成算法、高清地图创建算法、基于LiDAR的定位算法、语义映射算法、跟踪算法或场景重建算法中的一个或多个。这些机器学习算法需要准确的传感器数据以提供高效可靠的结果。点云是最常见的一种用于表示3D环境的数据类型。计算机视觉系统进行空间感知时可以生成点云地图。点云是坐标系中尤其是3D坐标系中诸多数据点的集合。点云中的每个数据点有3个坐标,即,x、y、z坐标,其决定了数据点在3D坐标系中沿x、y、z轴分别所在的位置。LiDAR传感器或立体相机可用于感知环境,并基于LiDAR传感器或立体相机捕获的传感器数据生成环境的点云。各个单独的传感器生成的点云有一些缺点。

使用LiDAR生成的点云非常准确,但是存在两个主要问题。首先,相对于立体相机,高分辨率的LiDAR通常非常昂贵。其次,8光束、16光束及32光束的LiDAR等较便宜的LiDAR具有稀疏性(分辨率低)。另一方面,立体相机比LiDAR便宜,但是立体相机捕获的传感器数据(例如,表示立体相机捕获的图像的图像数据)分辨率高。但是,立体相机的局限性在于,基于立体相机捕获的传感器数据(例如,表示立体相机捕获的图像的图像数据)生成的点云精度低。也就是说,得到的点云中的数据点的空间坐标不准确。因此,具有较少光束的LiDAR生成的点云分辨率低或基于表示立体相机捕获的图像的图像数据生成的点云精度低会对任意使用这些点云生成对环境的理解的机器学习算法带来不利影响。

已经针对如何克服点云的精度低及分辨率低造成的限制进行了大量研究。一组算法专注于提高低分辨率LiDAR点云的分辨率。另一组算法使用高分辨率LiDAR数据及其它传感器数据,例如,立体相机捕获的图像,生成密度非常高的点云。后一组算法将基于高分辨率/高精度LiDAR收集的传感器数据生成的点云以及基于高分辨率立体相机收集的传感器数据生成的点云融合在一起加以利用。这是一个颇具技术挑战性的任务且同时需要两种传感器。由于高分辨率LiDAR价格很高,这在很多情况下无法实现,。

另一种生成高分辨率/高精度点云的技术是将低分辨率LiDAR(光束少)生成的低分辨率点云与从其它传感器接收的传感器数据融合在一起。在基于机器学习的方法中,由于训练过程中所使用的的传感器与测试模式中所使用的传感器相同,对其它传感数据的融合内置于该方案中。机器学习算法中,采用经典融合方法生成点云。后一组算法同时需要两种传感器。

有鉴于此,仍然需要一种用于生成高分辨率高精度点云的低成本的有效方案。

发明内容

本发明提供一种基于传感器数据生成高分辨率高精度点云的系统、设备和方法,其中,所述传感器数据来自至少两个不同类型的传感器,例如,低分辨率LiDAR和立体相机,而无需使用高分辨率LiDAR等昂贵的传感器,此类系统成本高昂,不适合商用。因此,本发明的目的在于提供一种有效和/或高效的方案,用于采用较便宜的传感器组合生成高分辨率高精度点云。得到的高分辨率高精度点云可用于一个或多个使用点云的点云应用算法,尤其是需要高分辨率和/或高精度点云进行有效运行的点云应用算法。可以使用高分辨率高精度点云的点云应用算法的示例包括:对象检测算法、动态对象移除算法、同步定位与地图构建(SLAM)算法、点云地图生成算法、高清地图创建算法、基于LiDAR的定位算法、语义映射算法、跟踪算法或场景重建算法中的一个或多个。这些算法通常用于3D,但也可能用于2D。点云应用算法的输出可用于生成环境的3D表示。当主机设备是车辆时,所述环境的3D表示可以显示在所述车辆的控制台或仪表盘的显示器上。

根据本发明第一方面,提供了一种计算机视觉系统。根据本发明第一方面的一实施例,所述计算机视觉系统包括处理器系统、耦合至所述处理器系统且具有第一分辨率的第一LiDAR系统、耦合至所述处理器系统的相机系统以及耦合至所述处理器系统的存储器,其中,所述存储器上有形地存储有可执行指令,当所述可执行指令被所述处理器系统执行时,使所述计算机视觉系统执行若干操作:从所述相机系统接收相机点云;从所述第一LiDAR系统接收第一LiDAR点云;以所述第一LiDAR点云为参考,确定所述相机点云的误差;基于所确定的误差确定校正函数;使用所述校正函数,基于所述相机点云生成修正点云;以所述第一LiDAR点云为参考,确定所述修正点云的训练误差;基于所确定的训练误差更新所述校正函数。

在前述方面及实施例的一些实现方式中,当所述可执行指令被所述处理器系统执行时,使所述计算机视觉系统重复执行某些上述操作,直到所述训练误差小于误差阈值。

在前述方面及实施例的一些实现方式中,当所述用于以所述第一LiDAR点云为参考,确定所述相机点云的误差并基于所确定的误差确定校正函数的可执行指令被所述处理器系统执行时,使所述计算机视觉系统:以所述第一LiDAR点云为参考,生成所述相机点云的误差的数学表示(例如,模型);基于所述误差的数学表示确定校正函数。在前述方面及实施例的一些实现方式中,当所述用于以所述第一LiDAR点云为参考,确定所述修正点云的训练误差并基于所确定的训练误差更新所述校正函数的可执行指令被所述处理器系统执行时,使所述计算机视觉系统:以所述第一LiDAR点云为参考,生成所述修正点云的训练误差的数学表示;基于所述训练误差的数学表示更新所述校正函数。

在前述方面及实施例的一些实现方式中,所述计算机视觉系统还包括耦合至所述处理器系统且具有第二分辨率的第二LiDAR系统,其中,所述第二LiDAR系统的第二分辨率高于所述第一LiDAR系统的第一分辨率,当所述可执行指令被所述处理器系统执行时,使所述计算机视觉系统:(a)接收来自所述第二LiDAR系统的第二LiDAR点云;(b)以所述第二LiDAR点云为参考,确定所述修正点云的误差;(c)基于所确定的误差确定校正函数;(d)使用所述校正函数生成修正点云;(e)以所述第二LiDAR点云为参考,确定所述修正点云的第二训练误差;(f)基于所确定的第二训练误差更新所述校正函数。

在前述方面及实施例的一些实现方式中,当所述可执行指令被所述处理器系统执行时,使所述计算机视觉系统重复执行操作(d)至(f),直到所述第二训练误差小于误差阈值。

在前述方面及实施例的一些实现方式中,所述第二LiDAR系统包括一个或多个64光束LiDAR单元,所述第一LiDAR系统包括一个或多个8光束、16光束或32光束LiDAR单元。

在前述方面及实施例的一些实现方式中,所述相机系统为立体相机系统,所述相机点云为立体相机点云。

在前述方面及实施例的一些实现方式中,所述处理器系统包括神经网络。

根据本发明第一方面的另一实施例,提供了一种计算机视觉系统,包括处理器系统、耦合至所述处理器系统且具有第一分辨率的第一LiDAR系统、耦合至所述处理器系统的相机系统以及耦合至所述处理器系统的存储器,其中,所述存储器上有形地存储有可执行指令,当所述可执行指令被所述处理器系统执行时,使所述计算机视觉系统执行若干操作:从所述相机系统接收相机点云;从所述第一LiDAR系统接收第一LiDAR点云;以所述第一LiDAR点云为参考,确定所述相机点云的误差;基于所确定的误差确定校正函数;使用所述校正函数,基于所述相机点云生成修正点云;使用所述修正点云计算点云应用算法的输出,并使用所述第一LiDAR点云计算所述点云应用算法的输出;使用所述修正点云通过损失函数确定所述点云应用算法的输出的误差的损失;基于所确定的损失确定所述校正函数。

在前述方面及实施例的一些实现方式中,当所述可执行指令被所述处理器系统执行时,使所述计算机视觉系统重复执行某些上述操作,直到所述损失小于损失阈值。

在前述方面及实施例的一些实现方式中,当所述用于以所述第一LiDAR点云为参考,确定所述相机点云的误差并基于所确定的误差确定校正函数的可执行指令被所述处理器系统执行时,使所述计算机视觉系统:以所述第一LiDAR点云为参考,生成所述相机点云的误差的数学表示(例如,模型);基于所述误差的数学表示确定校正函数。

在前述方面及实施例的一些实现方式中,当所述用于以所述第一LiDAR点云为参考,确定所述修正点云的训练误差并基于所确定的训练误差更新所述校正函数的可执行指令被所述处理器系统执行时,使所述计算机视觉系统:以所述第一LiDAR点云为参考,生成所述修正点云的训练误差的数学表示(例如,模型);基于所述训练误差的数学表示更新所述校正函数。

在前述方面及实施例的一些实现方式中,所述计算机视觉系统还包括耦合至所述处理器系统且具有第二分辨率的第二LiDAR系统,其中,所述第二LiDAR系统的第二分辨率高于所述第一LiDAR系统的第一分辨率,当所述可执行指令被所述处理器系统执行时,使所述计算机视觉系统:(a)接收来自所述第二LiDAR系统的第二LiDAR点云;(b)以所述第二LiDAR点云为参考,确定所述修正点云的误差;(c)基于所确定的误差确定校正函数;(d)使用所述校正函数生成修正点云;(e)使用所述修正点云计算点云应用算法的输出,并使用所述第二LiDAR点云计算所述点云应用算法的输出;(f)使用所述修正点云通过损失函数确定所述点云应用算法的输出的误差的第二损失;(g)基于所确定的第二损失更新所述校正函数。

在前述方面及实施例的一些实现方式中,当所述可执行指令被所述处理器系统执行时,使所述计算机视觉系统重复执行操作(d)至(g),直到所述第二损失小于损失阈值。

在前述方面及实施例的一些实现方式中,所述第二LiDAR系统包括一个或多个64光束LiDAR单元,所述第一LiDAR系统包括一个或多个8光束、16光束或32光束LiDAR单元。

在前述方面及实施例的一些实现方式中,所述相机系统为立体相机系统,所述相机点云为立体相机点云。

在前述方面及实施例的一些实现方式中,所述处理器系统包括神经网络。

根据本发明第一方面的又一实施例,提供了一种计算机视觉系统,包括处理器系统、耦合至所述处理器系统的相机系统以及耦合至所述处理器系统的存储器,其中,所述存储器上有形地存储有可执行指令,当所述可执行指令被所述处理器系统执行时,使所述计算机视觉系统执行若干操作:由所述相机系统生成相机点云;应用预训练校正函数生成分辨率高于所述相机点云的修正点云;使用所述修正点云计算点云应用算法的输出。在前述方面及实施例的一些实现方式中,将所述点云应用算法的输出的视觉表示输出到所述计算机视觉系统的显示器上。

在前述方面及实施例的一些实现方式中,所述点云应用算法包括对象检测算法、动态对象移除算法、同步定位与地图构建(SLAM)算法、点云地图生成算法、高清地图创建算法、基于LiDAR的定位算法、语义映射算法、跟踪算法或场景重建算法中的一个或多个。

在前述方面及实施例的一些实现方式中,所述相机系统为立体相机系统,所述相机点云为立体相机点云。

在前述方面及实施例的一些实现方式中,所述处理器系统包括神经网络。

根据本发明第二方面,提供了一种对预处理模块进行训练以生成修正点云的方法。根据本发明第二方面的一实施例,所述方法包括:接收来自相机系统的相机点云;接收来自第一LiDAR系统的第一LiDAR点云;以所述第一LiDAR点云为参考,确定所述相机点云的误差;基于所确定的误差确定校正函数;使用所述校正函数,基于所述相机点云生成修正点云;以所述第一LiDAR点云为参考,确定所述修正点云的训练误差;基于所确定的训练误差更新所述校正函数。

根据本发明第二方面的另一实施例,所述方法包括:接收来自相机系统的相机点云;接收来自第一LiDAR系统的第一LiDAR点云;以所述第一LiDAR点云为参考,确定所述相机点云的误差;基于所确定的误差确定校正函数;使用所述校正函数,基于所述相机点云生成修正点云;使用所述修正点云计算点云应用算法的输出,并使用所述第一LiDAR点云计算所述点云应用算法的输出;使用所述修正点云通过损失函数确定所述点云应用算法的输出的误差的损失;基于所确定的损失更新所述校正函数。

根据本发明另一方面的一实施例,提供了一种修正点云生成方法。所述方法包括:基于传感器系统生成点云;应用预训练校正函数生成分辨率高于所述点云的修正点云;使用所述修正点云计算点云应用算法的输出。在前述方面及实施例的一些实现方式中,所述方法还包括:将所述点云应用算法的输出的视觉表示输出到显示器上。

根据本发明另一方面,提供了一种用于车辆的车辆控制系统。所述车辆控制系统包括计算机视觉系统,所述计算机视觉系统具有上文以及本实施例所述的特性。

根据本发明另一方面,提供了一种车辆,包括用于移动所述车辆的机械系统,耦合至所述机械系统、用于控制所述机械系统的驱动控制系统,以及耦合至所述驱动控制系统的车辆控制系统,其中,所述车辆控制系统具有上文以及本实施例所述的特性。

根据本发明又一方面,提供了一种非瞬时性计算机可读介质,其上有形地存储有可执行指令,其中,所述可执行指令由具有上文以及本实施例所述的特性的计算机视觉系统的处理器系统执行。当所述可执行指令被所述处理器系统执行时,使所述计算机视觉系统执行上文以及本实施例所述的方法。

附图说明

图1为适于实现本发明示例性实施例的通信系统的示意图;

图2为根据本发明一示例性实施例的一种包括车辆控制系统的车辆的框图;

图3A和图3B为根据本发明示例性实施例的一种用于对预处理模块进行训练以生成修正点云的计算机视觉系统的简化框图;

图4A和图4B为根据本发明示例性实施例的一种用于对预处理模块进行训练以生成修正点云的方法的流程图;

图5A和图5B为根据本发明其它示例性实施例的一种用于对预处理模块进行训练以生成修正点云的计算机视觉系统的简化框图;

图6A和图6B为根据本发明其它示例性实施例的一种用于对预处理模块进行训练以生成修正点云的方法的流程图;

图7为根据本发明一示例性实施例的一种生成高分辨率高精度点云的方法的流程图;

图8为神经网络的示意图;

图9为三角剖分中对极几何的示意图;

图10为两个图像平面平行时对极几何的示意图。

具体实施方式

结合示出实施例的附图对本发明进行描述。但是可以使用诸多不同的实施例。因此,不应将该描述解释为限于本文所述的实施例。相反,提供这些实施例是为了使本发明更详尽、完整。在附图及以下描述中,尽可能地使用相同的附图编号指示相同的元件,并且在替代实施例中使用角分符号表示类似的元件、操作或步骤。分开的方框或所示系统和设备的功能元件的所示划分不一定要求对此类功能进行物理上的划分,因为这些元件之间可以通过消息传递、功能调用、共享内存空间等方式进行通信,而相互之间没有任何物理隔离。因此,虽然本文中为了方便说明,分别示出各功能,但无需在物理上或逻辑上分开的平台上实现这些功能。不同的设备可以有不同的设计,因此,有些设备在固定的功能硬件上实现某些功能,而其它设备可以采用从计算机可读介质获取的代码在可编程处理器中实现这些功能。最后,除非另有明确说明或上下文内在逻辑表明并非如此,单数形式的元件可以是复数,反之亦然。

为方便起见,本发明结合机动车辆,例如,小汽车、卡车、客车、小船或大船、潜艇、飞机、仓储设备、施工设备、拖拉机或其它农用设备,描述方法和系统的示例性实施例。本发明内容并不限于任意特定类型的车辆,可适用于非载人车辆及载人车辆。本发明内容还可以在移动机器人车辆中实现,包括但不限于,自主真空吸尘器、探测车、割草机、无人飞机(unmanned aerial vehicle,UAV)及其它物体。

图1为示出根据本发明一示例性实施例的通信系统100的所选器件的示意图。所述通信系统100包括内置于车辆105中的车辆控制系统115形式的用户设备。详情如图2所示,所述车辆控制系统115耦合至所述车辆105的驱动控制系统150和机械系统190,如下文所述。在不同实施例中,所述车辆控制系统115可以使所述车辆105以完全自主、半自主、或完全用户控制模式中的一种或多种模式运行。

所述车辆105包括多个基于电磁(electromagnetic,EM)波的传感器110以及多个车辆传感器111,其中,所述传感器110收集与所述车辆105周围的外部环境相关的数据,所述车辆传感器111收集与所述车辆105的运行条件相关的数据。所述基于EM波的传感器110可包括,例如,一个或多个相机112、一个或多个LiDAR单元114,和一个或多个合成孔径雷达(synthetic aperture radar,SAR)单元116等雷达单元。所述数码相机112、LiDAR单元114和SAR单元116位于所述车辆105周围,并分别耦合至所述车辆控制系统115,如下文所述。在一示例性实施例中,所述相机112、LiDAR单元114和SAR单元116位于所述车辆105的前方、后方、左侧及右侧,以捕获与所述车辆105的前方、后方、左侧及右侧的环境相关的数据。对于每种基于EM波的传感器110,对各单元进行安装或放置使其具有不同的视场(field ofview,FOV)或覆盖范围,以捕获与所述车辆105周围的环境相关的数据。在一些示例中,对于每种基于EM波的传感器110,部分或所有相邻的基于EM波的传感器110的FOV或覆盖范围部分重合。相应地,所述车辆控制系统115接收所述相机112、LiDAR单元114和SAR单元116收集的与所述车辆105的外部环境相关的数据。

车辆传感器111可包括:使用加速器和陀螺仪的组合对所述车辆的比力和角速度进行感知的惯性测量单元(inertial measurement unit,IMU)118、电子罗盘119和其它车辆传感器120,例如,测速器、转速计、车轮牵引力传感器、传动齿轮传感器、油门和刹车位置传感器以及转向角传感器。所述车辆传感器111运行时重复(例如,以有规律的间隔)感知所述环境,并基于环境条件实时地或接近实时地向所述车辆控制系统115提供传感器数据。所述车辆控制系统115可以使用从卫星接收器132及所述IMU 118接收的信号收集与所述车辆105的位置和方位相关的数据。所述车辆控制系统115可以使用来自所述卫星接收器132、所述IMU 118及其它车辆传感器120中的一个或多个的数据,确定所述车辆105的线速度、角速度、加速度、引擎转速、传动齿轮和轮胎抓地力及其它因素。

所述车辆控制系统115还可包括一个或多个无线收发器130,使所述车辆控制系统115能够与所述通信系统100的无线广域网(wide area network,WAN)210交换数据,并可选地进行语音通信。所述车辆控制系统115可使用所述无线WAN 210通过因特网等一个或多个通信网络220接入驾驶辅助服务器等服务器240。所述服务器240可实现为数据中心中的一个或多个服务器模块,且通常位于防火墙230后面。所述服务器240与可供所述车辆控制系统115使用的补充数据资源等网络资源250连接。

除了所述无线WAN 210,所述通信系统100还包括卫星网络260,所述卫星网络260包括多个卫星。所述车辆控制系统115包括所述卫星接收器132(如图2),可使用所述卫星接收器132从所述卫星网络260中的多个卫星接收的信号确定其位置。所述卫星网络260通常包括多个卫星,所述多个卫星是通过全球覆盖提供自主地理空间定位的至少一个全球导航卫星系统(Global Navigation Satellite System,GNSS)的一部分。例如,所述卫星网络260可以是GNSS卫星的集合。示例性GNSS包括美国NAVSTAR全球定位系统(GlobalPositioning System,GPS)或俄罗斯全球导航卫星系统(GLObal NAvigation SatelliteSystem,GLONASS)。其它已经部署或正在开发的卫星导航系统包括欧盟伽利略定位系统、中国北斗卫星导航系统(Navigation Satellite System,BDS)、印度区域导航卫星系统以及日本卫星导航系统。

图2示出根据本发明一示例性实施例的车辆105的所选器件。如上所述,所述车辆105包括连接到驱动控制系统150、机械系统190、基于EM波的传感器110以及车辆传感器111的车辆控制系统115。所述车辆105还包括本领域公知的各种结构件,例如,框架、门、面板、座位、窗口、反射镜等,但是本发明中省略了这些构件,使本发明内容清楚明了。所述车辆控制系统115包括通过通信总线(未示出)耦合至多个器件的处理器系统102,其中,所述通信总线提供所述器件与所述处理器系统102之间的通信路径。所述处理器系统102耦合至驱动控制系统150、随机存取存储器(Random Access Memory,RAM)122、只读存储器(Read OnlyMemory,ROM)124、闪速可擦除可编程只读存储器(erasable programmable read onlymemory,EPROM)(闪存)等永久性(非易失性)存储器126、一个或多个用于与无线WAN 210交换射频信号的无线收发器130、用于从卫星网络260接收卫星信号的卫星接收器132、实时时钟134、以及触摸屏136。所述处理器系统102可包括一个或多个处理单元,例如,包括一个或多个中央处理器(central processing unit,CPU)、一个或多个图形处理器(graphicalprocessing unit,GPU)、一个或多个张量处理器(tensor processing unit,TPU)以及其它处理单元。

所述一个或多个无线收发器130可包括一个或多个通过不同无线数据通信协议和标准与多个不同无线接入网(例如,蜂窝网络)通信的蜂窝(RF)收发器。所述车辆控制系统115可以与所述无线WAN 210(例如,蜂窝网络)的地理覆盖范围内、所述无线WAN 210的多个固定基站(图1示出其中一个)中的任意一个通信。所述一个或多个无线收发器130可通过所述无线WAN 210发送及接收信号。所述一个或多个无线收发器130可包括支持多个射频频带的多频带蜂窝收发器。

所述一个或多个无线收发器130还可包括通过WLAN接入点(access point,AP)与WLAN(未示出)通信的无线局域网(wireless local area network,WLAN)收发器。所述WLAN可包括符合IEEE 802.11x标准(有时称为

所述一个或多个无线收发器130还可包括与智能手机或平板电脑等移动计算设备通信的短距离无线收发器,例如,

所述实时时钟134可包括提供准确实时时间数据的晶振器。可以根据通过所述卫星接收器132接收的时间数据或根据从执行网络时间协议的网络资源250接收的时间数据,定期对所述时间数据进行调整。

所述触摸屏136包括彩色液晶显示器(liquid crystal display,LCD)、发光二极管(light-emitting diode,LED)显示器或有源矩阵有机发光二极管(active-matrixorganic light-emitting diode,AMOLED)显示器等显示器,以及连接到电子控制器的触敏输入表面或覆盖层。还可以提供耦合至所述处理器系统102的其它输入设备(未示出),包括按钮、开关和拨号盘。

所述车辆控制系统115还包括一个或多个扬声器138、一个或多个麦克风140以及一个或多个数据端口142,例如,串行数据端口(如通用串行总线(Universal Serial Bus,USB)数据端口)。所述车辆控制系统115还可包括其它传感器,如胎压传感器(tirepressure sensor,TPS)、车门接触开关、光传感器、接近传感器等。

所述驱动控制系统150用于控制所述车辆105的运动。所述驱动控制系统150包括转向单元152、刹车单元154以及节流(或加速)单元156。这些单元都可以实现为所述驱动控制系统150中的软件模块或控制块。在完全自主或半自主驾驶模式中,所述转向单元152、刹车单元154以及节流单元156进程从自主驾驶系统170(用于自主驾驶模式)或驾驶辅助系统166(用于半自主驾驶模式)接收导航指令,并生成控制信号以控制所述车辆105的转向、刹车和节流中的至少一种。所述驱动控制系统150可包括其它器件以控制所述车辆105的其它方面,包括控制转向灯和刹车灯光等。

所述机电系统190从所述驱动控制系统150接收控制信号,以操作所述车辆105的机电器件。所述机电系统190引起所述车辆105的物理运行。所述机电系统190包括引擎192、变速器194以及车轮196。所述引擎192可以是汽油引擎、电池引擎或混合引擎等。所述机械系统190可包括其它器件,包括转向灯、刹车灯、风扇和窗户等。

所述处理器系统102对所述车辆控制系统115的图形用户界面(graphical userinterface,GUI)进行渲染并将其显示在所述触摸屏136上。用户可通过所述触摸屏136并可选地通过其它输入设备(如按钮、拨号盘)与所述GUI交互,以选择所述车辆105的驾驶模式(例如,完全自主驾驶模式或半自主驾驶模式)并显示相关数据和/或信息,例如,导航信息、驾驶信息、泊车信息、媒体播放器信息、气候控制信息等。所述GUI可包括一系列针对特定内容的遍历菜单。

除了所述GUI,所述车辆控制系统115的所述存储器126上还存储有多个软件系统161,其中,每个软件系统161包括可由所述处理器系统102执行的指令。所述软件系统161包括操作系统160、所述用于半自主驾驶的驾驶辅助系统166以及所述用于完全自主驾驶的自主驾驶系统170。所述驾驶辅助系统166以及所述自主驾驶系统170都可以包括导航规划及控制模块、车辆定位模块、泊车辅助模块及自主泊车模块中的一个或多个。所述存储器126上还存储有可由所述驾驶辅助系统166或所述自主驾驶系统170调用的软件模块168。所述软件模块168包括计算机视觉模块172。所述计算机视觉模块172为软件系统,包括基于学习的预处理模块330或530、点云处理模块340或540并可选地包括损失确定模块360或560。其它模块176包括映射模块、导航模块、气候控制模块、媒体播放器模块、电话模块及消息发送模块等。当所述计算机视觉模块172被所述处理器系统102执行时,使得本文描述的方法的操作被执行。所述计算机视觉模块172与所述基于EM波的传感器110的组合交互,以提供计算机视觉系统,例如,下文详述的计算机视觉系统300、350、500或550(图3A、图3B、图5A、图5B)。

虽然所述计算机视觉模块172示为可被所述用于半自主驾驶的驾驶辅助系统166和/或所述自主驾驶系统170调用的单独模块,在一些实施例中,可以将所述软件模块168中的一个或多个,包括所述计算机视觉模块172,与所述其它模块176中的一个或多个组合。

所述存储器126还存储有不同的数据180。所述数据180可包括传感器数据182、用户数据184以及下载缓存186。所述传感器数据182接收自所述基于EM波的传感器110;所述用户数据184包括用户喜好、设置并可选地包括个人媒体文件(例如音乐、视频、方向等);所述下载缓存186包括通过所述无线收发器130下载的数据,例如,包括从网络资源250下载的数据。所述传感器数据182可包括来自所述相机112的图像数据、来自所述LiDAR单元114的3D数据、来自所述SAR单元116的雷达数据、来自所述IMU 118的IMU数据、来自所述电子罗盘119的罗盘数据以及来自其它车辆传感器120的其它传感器数据。可以定期,例如,经过预定时间后,删除所述下载缓存186。可以将系统软件、软件模块、特定设备应用或其中的一部分临时加载到RAM 122等易失性存储器中,其中,所述易失性存储器用于存储运行时数据变量以及其它类型的数据和/或信息。所述车辆控制系统115接收的数据也可以存储在所述RAM122中。虽然描述了不同类型的存储器的具体功能,但这仅仅是一个示例,还可以为不同类型的存储器分配不同的功能。

生成高分辨率高精度点云

接下来参考图3A。图3A为根据本发明一示例性实施例的一种用于对预处理模块进行训练以生成修正点云的计算机视觉系统300的简化框图。所述计算机视觉系统300可以搭载在车辆105等测试车辆上,并且可以以在线模式或离线模式运行。在线模式下,所述基于EM波的传感器110主动接收传感器数据;离线模式下,所述基于EM波的传感器110已经预先接收传感器数据。或者,所述计算机视觉系统300可以是独立于所述测试车辆的、接收并处理获取自所述测试车辆的传感器数据的单独系统,并且可以以离线模式运行。所述计算机视觉系统300从包括一个或多个LiDAR单元114的LiDAR系统310等高分辨率高精度传感器系统接收传感器数据,并从包括一个或多个相机120的相机系统320等低精度传感器系统接收传感器数据。

所述计算机视觉系统300还包括基于学习的预处理模块330(以下称为预处理模块330)和点云处理模块340。所述计算机视觉系统300用于以训练模式训练所述预处理模块330。所述训练意在训练所述预处理模块330,使其学习只使用接收自低精度传感器系统(例如,所述相机系统320)或可能的低分辨率系统(例如,包括低精度LiDAR传感器的一个或多个LiDAR单元114)的传感器数据,实时或接近实时地生成高分辨率高精度点云。训练后的所述预处理模块330可用在包括相机系统等低精度传感器系统和/或低分辨率LiDAR子系统510(如图5A、图5B所示)等低分辨率传感器系统的生产车辆上,例如,所述车辆105上,如下文所述。例如,所述预处理模块330可以设置为在生产中、发货给客户前、或之后的任意合适时间安装在所述生产车辆的车辆控制系统115中的软件模块。

所述低精度传感器系统通常为高分辨率传感器系统。所述高分辨率高精度传感器系统提供参考系统。所述参考系统提供地面真值数据,用于训练所述预处理模块330,以从所述低精度传感器系统生成所述修正点云数据,如下文所述。

从所述LiDAR系统310接收的传感器数据包括一个或多个高分辨率LiDAR单元,例如,具有64或更多光束的LiDAR单元,并使用本领域公知的技术提供高分辨率LiDAR点云。在一些示例中,所述LiDAR系统310可包括若干64光束LiDAR单元,例如,5个或更多LiDAR单元。当所述LiDAR系统310要生成的LiDAR点云的期望分辨率高于可用LiDAR单元原始生成的LiDAR点云(例如,单个64光束LiDAR单元的输出)的分辨率,所述LiDAR系统310可包括多个LiDAR单元。然后将所述多个LiDAR单元中每个LiDAR单元生成的各LiDAR点云进行合并,生成超分辨率LiDAR点云。本领的技术人员可以理解“超分辨率”是指高于传感器系统支持的原始分辨率的加强分辨率。可以使用若干个不同合并算法中的一个,例如,K-近邻(K-Nearest Neighbors,KNN)算法,将各LiDAR点云进行合并,生成所述超分辨率LiDAR点云。

所述相机系统320包括一个或多个相机,通常为高分辨率相机。在本实施例中,所述一个或多个相机为提供低精度立体相机点云的立体相机,所述低精度立体相机点云通常为高分辨率低精度立体相机点云。在其它实施例中,可以使用单目相机代替立体相机。

所述LiDAR系统310和所述相机系统320耦合至所述预处理模块330,并提供高分辨率LiDAR点云和低精度立体相机点云。所述预处理模块330以高分辨率高精度LiDAR点云为参考,所述高分辨率高精度LiDAR点云提供地面真值数据,用于训练所述预处理模块330基于所述低精度立体相机点云生成修正点云。所述预处理模块330将所述修正点云输出至所述点云处理模块340,所述点云处理模块340将所述修正点云用于一个或多个机器学习算法中,例如,对象检测算法、动态对象移除算法、同步定位与地图构建(SLAM)算法、点云地图生成算法、高清地图创建算法、定位算法、语义映射算法、跟踪算法或场景重建算法,这些算法可用于生成环境的3D表示。如上文所述,所述预处理模块330和所述点云处理模块340是所述计算机视觉模块172中的软件模块。

按如下所述对所述预处理模块330进行训练。所述预处理模块330的训练可以与所述计算机视觉系统300的其它校准程序同时进行。至少在一些实施例中,所述预处理模块330可以是或包括神经网络。在其它实施例中,所述预处理模块330可以是或包括其它类型的基于机器学习的控制器、处理器或系统,用于实现机器学习算法以训练所述预处理模块生成修正点云,如下文所述。下文将简单参考图8对示例性神经网络800进行描述。所述神经网络800包括若干节点(也称为神经元)802,所述节点802设置为多层,包括输入层810、一个或多个中间(隐藏)层820(为了简洁,仅示出其中一个)、以及输出层830。所述层810、820、830中的每一层都是相互独立的、支持并行计算的一个或多个节点的群组。

给定层中每个节点802的输出与一个或多个节点802的输出在下一层中连接,如连接804所示(在图8中只标出一条连接804)。每个节点802都是一个逻辑编程单元,用于执行基于其输入、权重(如果有)和偏差因子(若有)对数据进行转换或操作的激活函数(也称为传递函数)以生成输出。根据特定的输入、权重及偏差,每个节点802的激活函数都会得到特定的输出。每个节点802的输入可以是标量、向量、矩阵、对象、数据结构和/或其它项目,或其引用。每个节点802可以存储其各自的、独立于其它节点的激活函数、权重(若有)和偏差因子(若有)。

根据输入的类型,激活函数的示例包括数学函数(即,加法、减法、乘法、除法、卷积等)、对象操作函数(即,创建对象、修改对象、删除对象、添加对象等)、数据结构操作函数(即,创建数据结构、修改数据结构、删除数据结构、创建数据域、修改数据域、删除数据域等)和/或其它转换函数。在一些示例中,激活函数包括求和函数或映射函数中的至少一个。

所述输入层810中的每个节点从所述LiDAR系统310和所述相机系统320接收传感器数据。可以为所述神经网络800的中间层820和输出层830中的后续节点以及所述输入层810的输入中的一个或多个输入中的每个输入设置权重。权重通常为0与1之间的数值,指示一层中的节点与下一层中的节点之间的连接强度。还可以为所述神经网络800的中间层820和输出层830中的后续节点以及所述输入层810的输入中的每个输入设置偏差。

确定所述输入层810的每个输入与其各自的权重和偏差的标量积,并将其作为输入发送至第一中间层820的各节点。如果有不止一个中间层,将每个所述标量积链接到另一向量,确定第一中间层的输入与其各自的权重和偏差的另一标量积,并将其作为输入发送至第二中间层820中的节点。依次对每个所述中间层820重复该流程直至所述输出层830。

在不同实施例中,中间层820的数量,层810、820及830中每一层的节点数量以及各层节点间的连接可能会随提供给所述处理模块340的输入(例如,传感器数据)和输出(例如,所述修正点云)的不同有所差异。通过训练(例如,学习过程)确定每个节点的权重和偏差甚至可能确定所述神经网络800的节点的激活函数,以实现最佳性能,如下文所述。

下文将参考图4A描述根据本发明一示例性实施例的一种对预处理模块330进行训练以生成修正点云的方法400。所述方法400的至少部分由车辆控制系统115的处理器系统102执行软件实现。在操作者激活(或采用)车辆105的计算机视觉系统300的点云地图学习模式时执行所述方法400。可以通过与所述车辆控制系统115的人机界面设备(human-machine interface device,HMD)的交互激活所述点云地图学习模式,例如通过预定义关键字组合的语音激活或其它用户交互,例如通过显示在触摸屏136上的所述计算机视觉系统300的GUI的触摸激活。

在操作404中,所述计算机视觉系统300接收第一传感器系统,例如,相机系统320,获得的第一点云。所述第一点云也称为相机点云。所述第一点云通常由所述相机系统320生成,并作为输入由所述处理器系统102接收。或者,所述计算机视觉系统300可基于从所述相机系统320获取的数码图像生成所述第一点云。

当所述第一点云为基于相机的点云时,每个点通过其由x、y、z坐标表示的空间位置和其色彩特征定义,其中,可以采用红绿蓝三原色(red green blue,RGB)值或其它合适的数据值描述所述色彩特征。如上文所述,所述相机系统320为高分辨率低分辨率相机系统等低精度系统,因此,所述第一点云为低精度点云。所述计算机视觉系统300使用所述相机系统320感知所述车辆105的环境,以使用本领域公知的计算机视觉技术生成所述第一点云。有关所述本领域公知的计算机视觉技术的详情超出本发明所讨论的范围。下文将简单描述一种用于生成立体视觉点云的计算机视觉技术的示例。

可以使用对极几何通过三角剖分(也称为重建)技术,基于立体相机或两个单目相机捕获的图像生成立体视觉点云。立体相机从两个不同的位置观测3D场景,从而创建3D点与所述3D点在所述立体相机捕获的2D图像上的投影之间的若干几何关系,导致图像点之间的限制。通过使用针孔相机模型对所述立体相机的每个镜头(或在使用两个单目相机时,对每个相机)求近似值得到这些关系。图9为各自具有不同视场的不同相机镜头观测到的环境特性的交点的示意图。

如图9所示,在采用对极几何计算的标准三角剖分方法中,两个相机观测同一个3D点P,即交点,其中,所述交点在各图像平面中的投影分别位于p和p’。相机中心位于O

图10示出图像平面相互平行时的对极几何。当所述图像平面相互平行时,由于联结中心O

进行三角剖分需要所涉及的每个相机的所有3D至2D相机投影函数的参数。这可以采用相机矩阵表示。相机矩阵或(相机)投影矩阵为描述针孔相机的现实世界的3D点与图像中的2D点之间的映射的3×4矩阵。如果x表示齐次坐标中的3D点(4维向量),y表示所述点在所述针孔相机中的图像(3维向量),则存在以下关系:

y=Cx (1)

其中,C为所述相机矩阵,且通过以下等式定义C:

其中,f为所述相机的焦距,且f>0。

由于2D图像中的每个点都对应3D空间中的线条,3D的所述线条上所有点都投影到所述2D图像中的所述点上。如果可以在两个或更多图像中找到的一对对应点,这对对应点一定是同一个3D点P,即,交点,的投影。这些图像点生成的一组线条一定相交于P(3D点);且可以使用中点法和直接线性转换等各种本领域公知的方式计算P(3D点)的坐标的代数公式。

在操作406中,所述计算机视觉系统300通过第二传感器系统,例如,LiDAR系统310,生成第二点云。所述第二点云为高分辨率高精度点云。所述第二点云也称为LiDAR点云。所述第二点云通常由所述LiDAR系统310生成,并作为输入由所述处理器系统102接收。所述第二点云可以与所述第一点云同时生成。或者,当所述LiDAR系统310在与所述相机系统320生成所述第一点云时相同的环境(可以为测试室或基准室)中并基于所述环境中相同的参考位置(例如,相同的位置和方位)生成所述第二点云时,可以提前生成所述第二点云并将其提供给所述计算机视觉系统300。

在操作408中,所述预处理模块330接收所述第一点云和所述第二点云,并以所述第二点云为地面真值,确定所述第一点云的误差。至少在一些实施例中,所述预处理模块330生成所述第一点云的所述误差的数学表示(例如,模型)。所述误差的数学表示基于所述第一点云与所述第二点云的匹配坐标之间的差值。所述误差的数学表示可定义适用于所述第一点云中的所有数据点的通用误差,或定义在整个第一点云中均匀或非均匀变化的可变误差。作为生成所述误差的数学表示(例如,模型)的预备步骤,将所述LiDAR点云的数据点与立体相机点云中的数据点进行匹配(例如,进行关联、映射等)。例如,在一些实施例中,可以使用上文所述的KNN算法将所述LiDAR点云的数据点与所述立体相机点云中的数据点进行匹配。向所述预处理模块330提供两个点云:两个点云都具有高分辨率,但是其中一个的精度低于另一个。可以使用所述KNN算法找到所述低精度点云中每个点与该点在所述高精度点云中K个近邻之间的最佳KNN匹配。在其它实施例中,可以使用其它的匹配、映射或插值算法/基于学习的算法。

在操作410中,所述预处理模块330以所述第二点云为地面真值,基于所确定的误差,例如,基于所述第一点云的所述误差的数学表示,确定校正函数。所述校正函数可以是应用于所述第一点云中所有数据点的校正向量、应用于所述第一点云中不同数据点的若干不同校正向量、或在整个第一点云中非均匀变化的可变校正函数,以及诸多其它可能性。

在操作412中,所述预处理模块330使用所述校正函数,基于所述第一点云生成修正点云。

在操作414中,所述预处理模块330以所述第二点云为地面真值,生成所述修正点云与所述第二点云之间的训练误差的数学表示。所述训练误差的数学表示基于所述修正点云与所述第二点云的匹配坐标之间的差值。

在操作416中,所述预处理模块330确定所述训练误差是否小于误差阈值。当所述训练误差小于所述误差阈值时,认为所述校正函数已经训练完成,方法400结束。当所述训练误差大于或等于所述误差阈值时,继续执行操作418,重新计算所述校正函数。当所述预处理模块330为用于训练所述校正函数的神经网络时,可以通过更新所述神经网络的权重等参数在所述神经网络中反向传播所述训练误差来重新计算所述校正函数,以将所述训练误差降到最低。

接下来参考图3B。图3B为根据本发明另一示例性实施例的一种用于对预处理模块330进行训练以生成修正点云的计算机视觉系统350的简化框图。所述计算机视觉系统350与所述计算机视觉系统300的区别在于,在所述计算机视觉系统350中,基于一个或多个处理点云数据的机器学习算法(例如,对象检测算法、动态对象移除算法、同步定位与地图构建(SLAM)算法、点云地图生成算法、高清地图创建算法、基于LiDAR的定位算法、语义映射算法、跟踪算法或场景重建算法中的一个或多个)进行合并训练。处理模块340的输出可用于生成环境的3D表示,所述3D表示可以显示在触摸屏136上。因为根据特定点云应用算法,所述计算机视觉系统生成的高分辨率/高精度点云的某些误差或多或少比其它误差容错率更高,因此所述合并训练可以进一步改善使用所述修正点云的特定点云应用的最终结果(例如,环境的3D表示),从而提高了所述计算机视觉系统针对预期应用的性能。

所述计算机视觉系统350包括所述计算机视觉系统300的所述LiDAR系统310、相机系统320、预处理模块330和点云处理模块340,但还包括损失(损失)确定模块360。所述损失确定模块360可以是硬件模块或软件模块168,例如,计算机视觉模块172的软件模块。以端到端的方式进行所述合并训练,其中,所述损失确定模块360采用所述修正点云中的数据点和第二点云中的数据点,基于特定点云应用算法的计算确定与训练误差相关联的“损失”。通过用于训练所述预处理模块330的损失函数(或损失函数)确定所述损失。所述损失函数是将特定点云应用算法的输出的值映射到代表与所述值相关联的“损失”的实数的目标函数。所述损失函数可以是点云应用算法损失函数或可以是点云应用算法损失函数与预处理模块损失函数的组合。所述损失函数可以基于所述预处理模块和所述点云应用算法的损失的加权组合输出损失(或损失)。所述损失函数由人工智能/神经网络设计者定义,其细节超出本发明所讨论的范围。当需要通过所述特定点云应用算法提高性能时,合并训练可以有助于提高整体性能。

下文将参考图4B描述根据本发明另一示例性实施例的一种对预处理模块330进行训练以生成修正点云的方法420。所述方法420的至少部分由车辆控制系统115的处理器系统102执行软件实现。所述方法420与所述方法400类似,只是所述方法420中进行了合并训练,如上文所述。

在操作412中生成所述修正点云后,在操作422中,所述预处理模块330使用所述修正点云和所述第二点云计算特定点云应用算法的输出。

在操作424中,所述预处理模块330基于采用所述修正点云计算的所述特定点云应用算法的输出和以所述第二点云为地面真值计算的所述特定点云应用算法的输出,确定(例如,计算)一个损失,作为所述损失函数的输出。所计算的“损失”代表的是采用所述修正点云而非所述第二点云计算的所述点云应用算法的输出的误差的损失。

在操作426中,所述预处理模块330确定所述损失是否小于损失阈值。当所述损失小于所述损失阈值时,认为已经将所述损失最小化,且所述校正函数已经训练完成,方法420结束。当所述损失大于或等于所述损失阈值时,继续执行操作428,重新计算所述校正函数。当所述预处理模块330为用于训练所述校正函数的神经网络时,可以通过更新所述神经网络的权重等参数在所述神经网络中反向传播所述训练误差来重新计算所述校正函数,以将所述损失函数的损失降到最低。在一些示例中,可以对所述神经网络的权重等参数进行更新,使采用所述修正点云计算的所述特定点云应用算法的输出与采用所述第二点云计算的所述特定点云应用算法的输出之间的均方差(mean square error,MSE)最小。

虽然上文描述中使用将损失最小化以解决优化问题的损失函数作为目标函数,在其它实施例中,所述目标函数可以是报酬函数、利润函数、效用函数、或适应函数等,在这些函数中,将所述目标函数的输出最大化而非最小化以解决优化问题。

接下来参考图5A。图5A为根据本发明另一示例性实施例的一种用于对基于学习的预处理模块530(下文称为预处理模块530)进行训练以生成修正点云的计算机视觉系统500的简化框图。所述计算机视觉系统500与上文所述的计算机视觉系统300类似,只是所述计算机视觉系统500还包括具有一个或多个LiDAR单元114的低分辨率LiDAR系统510。

所述计算机视觉系统500用于训练所述预处理模块530。所述训练是为了训练所述预处理模块530使用所述低分辨率LiDAR系统510和相机系统320实时地或接近实时地生成高分辨率高精度点云。在一些事例中,高分辨率高精度LiDAR系统310可包括一个或多个64(或更多)光束LiDAR单元,而所述低分辨率LiDAR系统510包括一个或多个8光束、16光束或32光束LiDAR单元。与所述高分辨率高精度LiDAR系统310相比,所述相机系统320和所述低分辨率LiDAR系统510较为便宜。训练后的所述预处理模块530可用于包括相机系统等低精度传感器系统和/或低分辨率LiDAR子系统510等低分辨率系统的生产车辆中,例如,车辆105。

按下文所述的阶段训练所述预处理模块530。所述预处理模块530的训练可以与所述计算机视觉系统500的其它校准程序同时进行。至少在一些实施例中,所述预处理模块530可以是或包括神经网络。在其它实施例中,所述预处理模块530可以是或包括其它类型的基于机器学习的控制器、处理器或系统。首先采用来自所述低分辨率LiDAR系统510的低分辨率/高精度数据对所述预处理模块530进行训练,再用来自所述高分辨率LiDAR系统310的高分辨率/高精度数据对所述预处理模块530进行训练,以对所述预处理模块530的校正函数进行微调。

下文将参考图6A描述根据本发明另一示例性实施例的一种对预处理模块530进行训练以生成修正点云的方法600。所述方法600的至少部分由车辆控制系统115的处理器系统102执行软件实现。所述方法600与所述方法400类似,只是所述方法600中进行了合并训练,如上文所述。

在操作602中,计算机视觉系统500使用第一传感器系统,例如,相机系统320,生成第一点云。

在操作604中,所述计算机视觉系统500通过第二传感器系统,例如,LiDAR系统310,生成第二点云。所述第二点云为高分辨率高精度点云。所述第二点云可以与所述第一点云同时生成。或者,当所述LiDAR系统310在与所述相机系统320生成所述第一点云时相同的环境(可以为测试室或基准室)中并基于所述环境中相同的参考位置(例如,相同的位置和方位)生成所述第二点云时,可以提前生成所述第二点云并将其提供给所述计算机视觉系统500。

在操作606中,所述计算机视觉系统500通过第三传感器系统,例如,LiDAR系统510,生成第三点云。所述第三点云为低分辨率高精度点云。所述第三点云也称为LiDAR点云。所述第三点云通常由所述LiDAR系统510生成,并作为输入由所述处理器系统102接收。

所述第三点云可以与所述第一点云及所述第二点云同时生成。或者,当所述LiDAR系统510在与生成所述第一点云和所述第二点云时相同的环境(可以为测试室或基准室)中并基于所述环境中相同的参考位置(例如,相同的位置和方位)生成所述第三点云时,可以提前生成所述第三点云并将其提供给所述计算机视觉系统500。

在操作608中,所述预处理模块530以所述低分辨率LiDAR系统510的所述第三点云为地面真值,确定所述第一点云的误差。至少在一些实施例中,所述预处理模块530生成所述第一点云的误差的数学表示(例如,模型)。与操作408类似,所述误差的数学表示基于所述第一点云与所述第三点云的匹配坐标之间的差值。

在操作610中,与操作410类似,所述预处理模块330以所述第三点云为地面真值,基于所确定的误差,例如,基于定义所述第一点云的误差的所述误差的数学表示,确定校正函数。

在操作612中,所述预处理模块530使用所述校正函数,基于所述第一点云生成修正点云。

在操作614中,所述预处理模块530以所述第三点云为地面真值,生成所述修正点云与所述第三点云之间的训练误差的数学表示(例如,模型)。所述训练误差的数学表示基于所述修正点云与所述第三点云的匹配坐标之间的差值。

在操作616中,所述预处理模块530确定所述训练误差是否小于误差阈值。当所述训练误差小于所述误差阈值时,认为对所述校正函数进行训练的第一阶段已经完整,所述方法600继续执行操作620进入训练的第二阶段。当所述训练误差大于或等于所述误差阈值时,继续执行操作618,重新计算所述校正函数。当所述预处理模块530为用于训练所述校正函数的神经网络时,可以通过更新所述神经网络的权重等参数在所述神经网络中反向传播所述训练误差来重新计算所述校正函数,以将所述训练误差降到最低。

在操作620中,认为对所述校正函数进行训练的第一阶段已经完成,所述预处理模块530以所述高分辨率高精度LiDAR系统310的所述第二点云为地面真值,生成所述修正点云的误差数学表示(例如,模型)。与操作408和608类似类似,所述误差的数学表示基于所述第一点云与所述第二点云的匹配坐标之间的差值。

在操作622中,与操作410和610类似,所述预处理模块330以所述第二点云为地面真值,基于定义所述第一点云的误差的所述误差的数学表示,确定校正函数。

在操作624中,所述预处理模块530使用所述校正函数,基于所述第一点云生成修正点云。

在操作626中,所述预处理模块530以所述第二点云为地面真值,生成所述修正点云与所述第二点云之间的训练误差的数学表示(例如,模型)。所述训练误差的数学表示基于所述修正点云与所述第二点云的匹配坐标之间的差值。

在操作628中,所述预处理模块530确定所述训练误差是否小于误差阈值。当所述训练误差小于所述误差阈值时,认为所述校正函数的训练已经完成,方法600结束。当所述训练误差大于或等于所述误差阈值时,继续执行操作630,重新计算所述校正函数。当所述预处理模块530为用于训练所述校正函数的神经网络时,可以通过更新所述神经网络的权重等参数在所述神经网络中反向传播所述训练误差来重新计算所述校正函数,以将所述训练误差降到最低。

接下来参考图5B。图5B为根据本发明另一示例性实施例的一种用于对预处理模块530进行训练以生成修正点云的计算机视觉系统550的简化框图。所述计算机视觉系统550与所述计算机视觉系统500的区别在于,在所述计算机视觉系统550中,基于一个或多个点云应用算法(例如,对象检测算法、动态对象移除算法、同步定位与地图构建(SLAM)算法、点云地图生成算法、高清地图创建算法、基于LiDAR的定位算法、语义映射算法、跟踪算法或场景重建算法中的一个或多个)进行合并训练。

所述计算机视觉系统550包括所述计算机视觉系统500的所述高分辨率高精度LiDAR系统310、低分辨率LiDAR系统510、相机系统320、预处理模块530和点云处理模块340,但还包括与所述损失确定模块360类似的损失(或损失)确定模块560。

下文将参考图6B描述根据本发明另一示例性实施例的一种对预处理模块530进行训练以生成修正点云的方法650。所述方法650的至少部分由车辆控制系统115的处理器系统102执行软件实现。所述方法650与所述方法600类似,只是所述方法600中进行了合并训练。

在操作612中生成所述修正点云后,在操作652中,所述预处理模块530使用所述修正点云和所述第三点云计算特定点云应用算法的输出。

在操作654中,所述预处理模块530基于采用所述修正点云计算的所述特定点云应用算法的输出和以所述第三点云为地面真值计算的所述特定点云应用算法的输出,确定(例如,计算)所述损失函数的输出的损失。所计算的“损失”代表的是采用所述修正点云而非所述第三点云计算的所述点云应用算法的输出的误差的损失。

在操作656中,所述预处理模块530确定所述损失是否小于损失阈值。当所述损失小于所述损失阈值时,认为已经将所述损失最小化,且对所述校正函数进行训练的第一阶段已经完成,所述方法650继续执行操作660。当所述损失大于或等于所述损失阈值时,继续执行操作658,重新计算所述校正函数。当所述预处理模块530为用于训练所述校正函数的神经网络时,可以通过更新所述神经网络的权重等参数在所述神经网络中反向传播所述训练误差来重新计算所述校正函数,以将所述损失函数的损失降到最低。在一些示例中,可以对所述神经网络的权重等参数进行更新,使采用所述修正点云计算的所述特定点云应用算法的输出与采用所述第二点云计算的所述特定点云应用算法的输出之间的均方差(meansquare error,MSE)最小。

在操作660中,认为对所述校正函数进行训练的第一阶段已经完成,所述预处理模块530以所述高分辨率高精度LiDAR系统310的所述第二点云为地面真值,生成所述修正点云的误差数学表示(例如,模型)。与操作408和608类似类似,所述误差的数学表示基于所述第一点云与所述第二点云的匹配坐标之间的差值。

在操作662中,与操作410和610类似,所述预处理模块530以所述第二点云为地面真值,基于定义所述第一点云的误差的所述误差的数学表示,确定校正函数。

在操作664中,所述预处理模块530使用所述校正函数,基于所述第一点云生成修正点云。

在操作666中,所述预处理模块530使用所述修正点云和所述第二点云计算特定点云应用算法的输出。

在操作668中,所述预处理模块530基于采用所述修正点云计算的所述特定点云应用算法的输出和以所述第二点云为地面真值计算的所述特定点云应用算法的输出,确定(例如,计算)所述损失函数的输出的损失。所计算的“损失”代表的是采用所述修正点云而非所述第二点云计算的所述点云应用算法的输出的误差的损失。

在操作670中,所述预处理模块530确定所述损失是否小于损失阈值。当所述损失小于所述损失阈值时,认为已经将所述损失最小化,且所述校正函数已经训练完成,方法650结束。当所述损失大于或等于所述损失阈值时,继续执行操作672,重新计算所述校正函数。当所述预处理模块330为用于训练所述校正函数的神经网络时,可以通过更新所述神经网络的权重等参数在所述神经网络中反向传播所述训练误差来重新计算所述校正函数,以将所述损失函数的损失降到最低。在一些示例中,可以对所述神经网络的权重等参数进行更新,使采用所述修正点云计算的所述特定点云应用算法的输出与采用所述第二点云计算的所述特定点云应用算法的输出之间的均方差(mean square error,MSE)最小。

虽然上文描述中使用将损失最小化以解决优化问题的损失函数作为目标函数,在其它实施例中,所述目标函数可以是报酬函数、利润函数、效用函数、或适应函数等,在这些函数中,将所述目标函数的输出最大化而非最小化以解决优化问题。

下文将参考图7描述根据本发明一示例性实施例的一种使用训练后的预处理模块330或530生成高分辨率高精度点云的方法700。所述方法700的至少部分由车辆控制系统115的处理器系统102执行软件实现。

在操作702中,所述处理器系统102使用第一传感器系统,例如,相机系统320,生成第一点云。

在操作704中,所述处理器系统102使用第二传感器系统,例如,低分辨率LiDAR系统510,生成第二点云。此步骤可选。在其它实施例中,计算机视觉系统只生成所述第一点云。

在操作706中,所述处理器系统102基于上文所述的相机系统320或低分辨率LiDAR系统510各自的预训练校正函数生成第一修正点云或可选地生成第二修正点云。

在操作708中,所述处理器系统102基于所述修正点云计算一个或多个特定点云应用算法的输出,例如,对象检测算法、动态对象移除算法、SLAM算法、点云地图生成算法、高清地图创建算法、基于LiDAR的定位算法、语义映射算法、跟踪算法或场景重建算法中的一个或多个。这些算法通常用于3D,但也可能用于2D。

在操作710中,可选地,所述处理器系统102基于所述一个或多个点云应用算法的结果/输出生成环境的表示,所述表示通常为3D,如3D地图。

在操作712中,所述处理器系统102输出所述3D表示。所述输出可包括将所述3D表示显示在触摸屏136等显示器上,将所述3D表示输出至车辆驾驶辅助系统或自主驾驶系统,或其组合。所述车辆驾驶辅助系统或自主驾驶系统通常为所述车辆控制系统115的一部分,并且可以在软件中实现,如上所述。

使用训练后的预处理模块330或530,可以从测试车辆移除或在生产车辆中省去高分辨率高精度LiDAR系统310,从而有助于降低最终产品的成本。可以使用相机系统320或可选地使用低分辨率LiDAR系统510等更便宜的传感器代替通常非常昂贵且不适于商业用途的所述高分辨率高精度LiDAR系统310。可以由任意处理点云数据的机器学习算法使用所述训练后的预处理模块330或530生成的高分辨率高精度点云生成精确的结果,所述结果可用于生成环境的精确3D表示。

本文中所描述的流程图及图形中的步骤和/或操作仅用作示例。这些步骤和/或操作可以有诸多变型,而不脱离本发明内容。例如,可以按不同的顺序执行这些步骤,或可以对步骤进行增加、删除或修改。

本领域普通技术人员了解本发明后,可以知悉所描述的用于实现上述方法的软件的编码。可由一个或多个设备各自的一个或多个处理器执行以实现上述方法的机器可读代码可以存储在数据管理器的存储器等计算机可读介质中。本发明中的术语“软件”和“固件”可以互换,并包括存储器中存储的、供处理器执行的任意计算机程序,所述存储器包括随机存取存储器(Random Access Memory,RAM)存储器、只读存储器(Read Only Memory,ROM)存储器、可擦除可编程只读存储器(erasable programmable read only memory,EPROM)存储器、电可擦除可编程只读存储器(electrically erasable programmable read-onlymemory,EEPROM)存储器及非易失性RAM(non-volatile RAM,NVRAM)存储器。以上存储器类型仅为示例,因此并不限制可用于存储计算机程序的存储器类型。

通则

还公开了所公开的区间中的所有值和子区间。此外,虽然本文中所公开和示出的系统、设备及流程可包括多个具体的元件,可以对所述系统、设备及组件进行修改使其包括更多或更少的此类元件。虽然本文中描述了若干示例性实施例,但可以对其进行修改、改编或进行其它实现。例如,可以对图示的元件进行替换、新增或修改,且可以通过对公开的方法的步骤进行替换、重新排序或新增来更改本文所述的示例性方法。此外,阐述了许多具体细节以便透彻地理解本文所描述的示例性实施例。然而,本领域普通技术人员可以理解,可以在没有这些具体细节的情况下实践本文所描述的示例性实施例。此外,未详细描述公知的方法、过程和元件,使本文描述的示例性实施例清楚明了。本文描述的主题意在涵盖及囊括所有合适的技术变化。

虽然本发明部分描述为方法,本领域普通技术人员可以理解,本发明也提供各种不同的元件用于至少实现所述方法的某些方面或特性,所述元件可以是硬件、软件或其组合。相应地,本发明技术方案可以体现为其上存储有其上有形地存储有可执行指令的非易失性或非瞬时性计算机可读介质(例如,光盘、闪存等),其中,所述可执行指令使得处理设备执行本文所公开的方法的示例。

术语“处理器”可包括任意可编程系统,包括使用微处理器/微控制器或纳米处理器/纳米控制器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integrated circuits,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、精简指令集电路(reduced instruction set circuit,RISC)、逻辑电路以及能够执行本文所述功能的任意其它电路或处理器的系统。术语“数据库”可以指数据体、关系型数据库管理系统(relational database management system(RDBMS))或同时指两者。本文中所用的“数据库”可包括任意数据集合,包括层次型数据库、关系型数据库、平面文件数据库、对象关系数据库、面向对象的数据库以及任意其它存储在计算机系统中的记录或数据的结构化集合。以上示例仅为举例,因此,并不会以任何方式限制术语“处理器”或“数据库”的定义和/或含义。

本发明可以其它具体形式体现,而不脱离权利要求的主题。所描述的示例性实施例在各方面都仅仅是示意性的,而不是限制性的。本发明意在涵盖及囊括所有适用的技术变化。因此,本发明的范围由所附权利要求而非上述描述定义。权利要求的范围不应受限于示例中的实施例,而应给予与整体描述一致的最宽泛的解释。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号