利用立体视觉信息进行对象检测的系统和方法与流程
未命名
08-15
阅读:110
评论:0
利用立体视觉信息进行对象检测的系统和方法
背景技术:
1.交叉引用和优先权要求
2.本专利文件要求于2021年12月11日提交的专利申请号为17/118,705的美国专利申请的优先权,通过引用将该专利申请的全部内容并入本文。
3.技术领域声明
4.本公开总体上涉及对象检测系统。更具体地,本公开涉及使用立体视觉信息进行对象检测的实施系统和方法。
5.相关技术的描述
6.立体摄像机是一种具有两个或两个以上镜头的摄像机,用于模拟人类的双眼视觉。计算机立体视觉是从立体摄像机拍摄的数字图像中提取3d(三维)信息。通过比较来自两个有利位置的关于场景的信息,可以提取定义形成视差图像的3d点云的3d信息。视差图像提供环境的3d估计以及共同配准的强度或颜色数据。可以从视差图像中检测对象。然而,基于立体视觉的对象检测是一个计算成本高昂的过程。
技术实现要素:
7.本公开涉及用于操作车辆的实施系统和方法。该方法包括通过处理器执行以下操作:获取由立体摄像机拍摄的一对立体图像;处理该对立体图像以生成包括由强度值定义的多个像素的视差图;将每个强度值转换为地图中的3d位置(该3d位置定义点云中数据点的位置);执行分层决策树分类(例如随机森林分类)以确定点云中每个数据点的类别(该类别是前景类别或背景类别);以及使用类别来促进车辆的自主控制。例如,该类别可用于确定一个或多个预测的对象轨迹,一个或多个预测的对象轨迹可用于车辆轨迹生成过程和/或车辆动力学控制过程。
8.在一些场景中,强度值可以基于以下中的至少一个转换为3d位置:已知的图像拍摄时间、已知的车辆在拍摄图像时的位置、已知的立体摄像机相对于车辆的定位、已知的像素指向方向和已知的像素到立体摄像机的距离。可以在执行分层决策树分类之前执行地面分割以减少点云中的数据点的总数。
9.可以确定每个数据点的增量(delta)值,该增量值表示地面高度值和z坐标值之间的差,z坐标值部分定义了地图中的各个3d位置。分层决策树分类可以基于增量值。分层决策树分类可以替代地或附加地基于以下中的至少一者:该对立体图像中的第一像素的强度值、3d位置、颜色值以及该对立体图中的第二像素的至少一个特征。第二像素可以位于该对立体图像中的第一像素附近。第二像素的特征可以包括但不限于第二像素的强度值、3d位置、颜色值和第二像素相对于该对立体图像中的第一像素的位置。
10.分层决策树分类由机器学习模型促进,每个机器学习模型使用一组决策树进行操作。每个决策树为点云中的每个数据点产生类别预测,并为类别预测产生置信度值。由该组决策树中的决策树产生的类别预测分别组合在一起,以确定每个数据点的最终类别预测。可以使用加权函数来确定最终类别预测,在加权函数中,置信度值被用作权重。
11.实施系统包括:处理器;以及包括编程指令的非暂时性计算机可读存储介质,编程指令被配置为使处理器实现用于操作车辆的方法。编程指令包括以下指令:获取由立体摄像机拍摄的一对立体图像;处理该对图像以生成视差图,视差图包括由强度值定义的多个像素;将每个强度值转换为地图中的3d位置(每个3d位置定义点云中的数据点的位置);执行分层决策树分类(例如随机森林分类)以确定点云中每个数据点的类别(该类别是前景类别或背景类别);并且使用类别来促进车辆的自主控制。
12.在一些场景中,每个强度值基于以下中的至少一个转换为3d位置:已知的图像拍摄时间、已知的车辆在拍摄图像时的位置、已知的立体摄像机相对于车辆的定位、已知的像素指向方向和已知的像素到立体摄像机的距离。编程指令还可以包括在执行分层决策树分类之前基于地面高度减少点云中的数据点的总数的指令。
13.编程指令还可以包括计算每个所述数据点的增量值的指令,该增量值表示地面高度值和z坐标值之间的差,z坐标值部分地定义了地图中的相应3d位置。分层决策树分类可以基于增量值。分层决策树分类可以附加地或替代地基于该对立体图像中的第一像素的强度值、3d位置、颜色值和/或该对立体图像中的第二像素的特征。第二像素可以位于该对立体图像中的第一像素附近。第二像素的特征可以包括但不限于第二像素的强度值、3d位置、颜色值和第二像素相对于该对立体图像中的第一像素的位置。
14.分层决策树分类由机器学习模型促进,每个机器学习模型使用一组决策树进行操作。每个决策树为所述点云中的每个数据点产生类别预测,并为该类别预测产生置信度值。由一组决策树中的决策树产生的类别预测分别组合在一起,以确定每个所述数据点的最终类别预测。可以使用加权函数来确定最终类别预测,在加权函数中,置信度值被用作权重。
附图说明
15.本发明的方案将参考以下附图进行描述,在附图中,相同的附图标记表示相同的部件。
16.图1提供了实现本发明的方案的系统的说明。
17.图2是车辆的说明性架构的示意图。
18.图3是说明性计算设备的示意图。
19.图4提供了有助于理解根据本发明的方案如何实现车辆控制的框图。
20.图5提供了使用立体视觉信息进行前景/背景分类的说明性方法的流程图。
21.图6提供了说明性视差图的图示。
22.图7a-7c(此处统称为“图7”)提供了用于分层决策树分类器(例如,随机森林分类器)的说明性决策树的图示。
具体实施方式
23.本文中使用的单数形式“一”、“一种”和“该”包括复数形式,除非上下文另有明确规定。除非另有定义,否则本文中使用的所有技术和科学术语具有与本领域普通技术人员通常理解的含义相同的含义。本文中使用的术语“包含”是指“包括但不限于”。与本文相关的附加术语的定义包括在具体实施方式的末尾。
[0024]“电子设备”或“计算设备”是指包括处理器和存储器的设备。每个设备可以具有其
自己的处理器和/或存储器,或者处理器和/或者存储器可以与其他设备共享,如在虚拟机或容器布置中。存储器将包含或接收编程指令,编程指令在由处理器执行时使电子设备根据编程指令执行一个或多个操作。
[0025]
术语“存储器”、“存储设备”、“数据存储器”、“数据存储设施”等均指存储计算机可读数据、编程指令或两者的非暂时性设备。除非另有特别说明,否则术语“存储器”、“存储设备”、“数据存储器”、“数据存储设施”等旨在包括单个设备实施例、多个存储器设备一起或共同存储一组数据或指令的实施例、以及这些设备内的单个扇区。
[0026]
术语“处理器”和“处理设备”是指被配置为执行编程指令的电子设备的硬件组件。除非另有特别说明,否则单数术语“处理器”或“处理设备”旨在包括单个处理设备实施例和多个处理设备一起或共同执行过程的实施例。
[0027]“电子设备”或“计算设备”是指包括处理器和存储器的设备。每个设备可以具有其自己的处理器和/或存储器,或者处理器和/或者存储器可以与其他设备共享,如在虚拟机或容器布置中。存储器将包含或接收编程指令,该编程指令在由处理器执行时使电子设备根据编程指令执行一个或多个操作。
[0028]
术语“车辆”是指能够承载一名或多名乘客和/或货物并由任何形式的能量提供动力的任何移动形式的运输工具。术语“车辆”包括但不限于轿车、卡车、货车、火车、自主车辆、飞机、无人机等。“自主车辆”是指具有处理器、编程指令和传动系部件的车辆,传动系部件可由处理器控制,无需人工操作。自主车辆可以是完全自主的,对于大多数或所有驾驶条件和功能,不需要人工操作。或者,自主车辆可以是半自主的,在某些条件下或对于某些操作,可能需要人工操作,或者人工操作可以超驰车辆的自主系统并承担车辆的控制。自主车辆还包括自主系统增强车辆的人工操作的车辆,例如具有驾驶员辅助转向、速度控制、制动、驻车和其他高级驾驶员辅助系统的车辆。
[0029]
术语“对象”指的是由车辆感知系统检测到的或由模拟系统模拟的对象,旨在包括静止对象和移动(或潜在移动)行为者,除非通过使用术语“行为者”或“静止对象”另有明确说明。
[0030]
在本文中,当使用“第一”和“第二”等术语来修饰名词时,这种使用只是为了区分一个项目和另一个项目,除非特别说明,否则不需要顺序。此外,“垂直”和“水平”、或“前部”和“后部”等相对位置术语在使用时,旨在表示彼此相对而言,而不必是绝对的,并且仅指与这些术语相关的设备的一个可能位置,这取决于设备的方向。
[0031]
术语“视差”是指距离集。当为立体图像对中的左侧图像和右侧图像中的所有像素确定视差时,得到的数据集可以被称为“视差图”或“视差图像”。最新的基于深度学习的立体匹配算法能够生成高质量的视差图或视差图像。
[0032]
计算机立体视觉提供表示环境的3d估计的视差图像以及共同配准的强度或颜色数据。可以从视差图像中检测对象。然而,基于立体视觉的对象检测是一个计算成本高昂的过程。本发明的方案通过实现用于将点云数据点二进制分类为前景和背景的分割算法来解决传统立体视觉对象检测技术的这一缺点。该分割算法紧凑、高效且可扩展。在给定立体视差图、摄像机姿态和地图图块(感兴趣区域(roi)和地面高度)的情况下,训练对象分类器以准确快速地从背景中分割出感兴趣像素(前景)。
[0033]
本发明的方案涉及使用立体视觉信息进行对象检测的实施系统和方法。方法总体
上涉及使用立体外部学将视差图像信息(例如,视差图像的强度值)转换或转变为深度信息。例如,视差图像的强度值被转换或转变为深度值。使用来自3d地图(例如,道路地图和/或地面高度地图)的信息来估计每个深度值距地面的高度。估计的高度被输入到分层决策树分类器(例如,随机森林分类器),该分类器将视差图像的像素识别为前景或背景。分层决策树分类器的方式是新颖的,并且将随着讨论的进行将变得显而易见。
[0034]
更具体地,方法包括:获取立体图像、立体实例标签、立体图像拍摄时间、摄像机校准数据和立体摄像机姿态;以及基于立体图像拍摄时间来识别立体图像对。给定的对包括由立体摄像机同时拍摄的两个立体图像。然后生成视差图。视差图是对立体图像对中对应图像中对象的位置(即偏移)的明显差异的编码。编码可以测量该对立体图像中的对应像素的坐标之间的差异。因此,视差图可以通过使用任何已知或将要已知的算法(例如基于三角测量的算法)确定每对立体图像之间的明显像素位置差异或运动来生成。每个视差图包括多个像素,每个像素由强度值(标量)定义。视差图的每个像素的强度值使用已知的图像拍摄时间(从立体图像拍摄时间获取)、已知的车辆在图像拍摄时的位置、已知的立体摄像机相对于车辆的位置(从立体摄像机姿势获取)、已知的像素指向方向(从摄像机校准数据获取)和/或已知的像素到立体摄像机的距离(从视差图获取)投射到3d道路图中的xyz位置。然后执行操作以使用分层决策树分类器的机器学习模型来生成表示前景中的对象或背景中的对象的点云片段。机器学习模型将前景/背景对象估计为数据点之间的距离的函数。
[0035]
使用基于立体图像和3d道路图(如上所述)生成的点云来训练分层决策树分类器,以确定点云中数据点之间的多个距离。每个距离包括给定数据点到与立体图像平面中的附近像素相关的多个数据点中的每个数据点之间的距离。分层决策树分类器使用距离来(i)检测可能指示前景或背景中的对象的数据点之间的距离模式,以及(ii)确定有多少附近像素将用于根据距离来估计前景/背景对象。学习到的信息(i)和(ii)作为机器学习模型存储在数据存储器中。
[0036]
值得注意的是,本文在自主车辆的背景下描述了本发明的方案。本发明的方案不限于自主车辆应用。本发明的方案可以用于其他应用,例如机器人应用、度量应用和/或系统性能应用。
[0037]
基于车辆的说明性系统
[0038]
以下讨论旨在说明本发明的方案如何用于促进车辆控制(例如,用于避免碰撞和/或自主驾驶目的)。该车辆可以包括但不限于自主车辆。
[0039]
现在参考图1,提供了说明性系统100的说明。系统100包括车辆1021,车辆1021以半自主或自主的方式沿着道路行驶。车辆1021在本文中也被称为自主车辆(“av”)。av 1021可以包括但不限于陆地车辆、飞机或船只。
[0040]
av 1021通常被配置为检测其附近的对象1022、104、106。对象可以包括但不限于车辆1022、骑车人104(例如自行车、电动滑板车、摩托车等的骑车人)和/或行人106。当进行这样的检测时,av 1021执行以下操作:为检测到的对象生成一个或多个可能的对象轨迹;并且分析所生成的可能对象轨迹中的至少一个以确定av 1021的车辆轨迹。然后使av 1021遵循车辆轨迹。
[0041]
现在参考图2,提供了用于车辆的说明性系统架构200的说明。图1的车辆1021和/或1022可以具有与图2中所示的系统架构相同或相似的系统架构。因此,以下对系统架构
200的讨论足以理解图1的车辆1021、1022。
[0042]
如图2所示,车辆200包括发动机或马达202和测量车辆各种参数的各种传感器204-218。在具有燃料动力发动机的气体动力或混合动力车辆中,传感器可以包括例如发动机温度传感器204、电池电压传感器206、发动机每分钟转数(rpm)传感器208和节气门位置传感器210。如果车辆是电动或混合动力车辆,则车辆可以具有电动马达,并且相应地将具有诸如电池监测系统212(用于测量电池的电流、电压和/或温度)、马达电流传感器214和马达温度传感器216以及诸如解算器和编码器的马达位置传感器218之类的传感器。
[0043]
这两种类型的车辆通用的操作参数传感器包括,例如:位置传感器236,例如加速度计、陀螺仪和/或惯性测量单元;速度传感器238;以及里程计传感器240。车辆还可以具有时钟242,系统使用该时钟来确定操作期间的车辆时间。时钟242可以被编码到车载计算设备中,它可以是单独的设备,或者可以有多个时钟。
[0044]
车辆还将包括各种传感器,这些传感器用于收集有关车辆行驶环境的信息。这些传感器可以包括,例如:定位传感器260(例如,全球定位系统(gps)设备);对象检测传感器,例如一个或多个摄像机262;激光雷达传感器系统266;和/或雷达系统264。传感器还可以包括环境传感器268,例如降水传感器和/或环境温度传感器。摄像机262可以包括但不限于立体摄像机。对象检测传感器可以使车辆车载计算设备220能够在任何方向上检测在车辆200的给定距离范围内的对象,同时环境传感器收集关于车辆行驶区域内的环境条件的数据。
[0045]
在操作过程中,信息从传感器传递到车载计算设备220。车载计算设备220分析由传感器拍摄到的数据,并且可选地基于分析结果控制车辆的操作。例如,车载计算设备220可以经由制动控制器222控制制动;经由转向控制器224控制方向;经由节气门控制器226(在燃气动力车辆中)或马达速度控制器228(例如电动车辆中的电流水平控制器)控制速度和加速度;控制差速齿轮控制器230(在具有变速器的车辆中);和/或控制其他控制器。
[0046]
地理位置信息可以从定位传感器260传送到车载计算设备220,然后车载计算设备可以访问与位置信息相对应的环境地图,以确定环境的已知固定特征,例如街道、建筑物、停车标志和/或停/走信号。从摄像机262拍摄的图像和/或从诸如lidar的传感器捕获的对象检测信息被传送到车载计算设备220。对象检测信息和/或拍摄的图像由车载计算设备220处理,以检测车辆200附近的对象。用于基于传感器数据和/或拍摄的图像进行对象检测的任何已知或将要已知的技术都可以用于本文中公开的实施例中。
[0047]
当进行这样的对象检测时,车载计算设备220执行以下操作:为检测到的对象生成一个或多个可能的对象轨迹;并且分析所生成的可能对象轨迹中的至少一个以确定在阈值时间段(例如1分钟)内是否存在碰撞风险。如果存在碰撞风险,则车载计算设备220执行操作以确定在车辆200遵循给定的车辆轨迹并且在预定义的时间段(例如,n毫秒)内执行多个动态生成的紧急机动中的任何一个的情况下是否可以避免碰撞。如果可以避免碰撞,则车载计算设备220不采取改变车辆轨迹的动作,或者可选地使车辆200执行谨慎的机动(例如,稍微减速)。相反,如果不能避免碰撞,则车载计算设备220使车辆200立即采取紧急机动(例如,制动和/或改变行进方向)。
[0048]
现在参考图3,提供了计算设备300的说明性架构的说明。图2的车载计算设备220至少部分地与计算设备300相同或相似。因此,对计算设备300的讨论足以理解图2的车载计算设备220。
[0049]
计算设备300可以包括比图3中所示的组件更多或更少的组件。然而,所示的组件足以公开实现本发明的方案的说明性方案。图3的硬件架构表示被配置为操作车辆的代表性计算设备的一种实现方式,如本文所述。因此,图3的计算设备300实现本文所描述的方法的至少一部分。
[0050]
计算设备300的一些或所有组件可以实现为硬件、软件和/或硬件和软件的组合。硬件包括但不限于一个或多个电子电路。电子电路可以包括但不限于无源组件(例如电阻器和电容器)和/或有源组件(例如放大器和/或微处理器)。无源组件和/或有源组件可以适于、布置成和/或编程成执行本文所述的方法、过程或功能中的一个或多个。
[0051]
如图3所示,计算设备300包括用户界面302、中央处理单元(cpu)306、系统总线310、通过系统总线310连接到计算设备300的其他部分并可由其访问的存储器312、系统接口360以及连接到系统总线310的硬件实体314。用户界面可以包括输入设备和输出设备,它们促进用于控制计算设备300的操作的用户-软件交互。输入设备包括但不限于物理和/或触摸键盘350。输入设备可以经由有线或无线连接(例如连接)连接到计算设备300。输出设备包括但不限于扬声器352、显示器354和/或发光二极管356。系统接口360被配置为便于与外部设备(例如,诸如接入点等的网络节点)进行有线或无线通信。
[0052]
至少一些硬件实体314执行涉及访问和使用存储器312的动作,存储器312可以是随机存取存储器(ram)、磁盘驱动器、闪存、光盘只读存储器(cd-rom)和/或能够存储指令和数据的另一硬件设备。硬件实体314可以包括磁盘驱动单元316,该磁盘驱动单元包括计算机可读存储介质318,在该计算机可读存储介质318上存储被配置为实现本文所描述的方法、过程或功能中的一个或多个的一组或多组指令320(例如,软件代码)。在计算设备300执行指令320期间,指令320还可以完全或至少部分地驻留在存储器312内和/或cpu 306内。存储器312和cpu 306也可以构成机器可读介质。此处使用的术语“机器可读介质”是指存储一组或多组指令320的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关的高速缓存和服务器)。此处使用的术语“机器可读介质”还指能够存储、编码或携带用于由计算设备300执行的一组指令320并且使得计算设备300执行本公开的方法中的任何一个或多个的任何介质。
[0053]
现在参考图4,提供了有助于理解如何根据本发明的方案实现车辆控制的框图。框402-410中执行的所有操作可以由车辆(例如,图1的av 1021)的车载计算设备(例如,2的车辆车载计算设备220)执行。
[0054]
在框402中,检测车辆的位置。该检测可以基于从车辆的定位传感器(例如图2的定位传感器260)输出的传感器数据来进行。该传感器数据可以包括但不限于gps数据。检测到的车辆的位置然后被传递到框406。
[0055]
在框404中,在车辆附近检测对象。该对象检测是基于从车辆的摄像机(例如,图7的摄像机762)、雷达系统(例如,图2的雷达系统264)、激光雷达传感器系统(例如图2的激光雷达系统266)输出的传感器数据进行的。摄像机可以包括但不限于立体摄像机。立体摄像机生成数字图像,该数字图像由车载计算设备(例如图2的车载计算设备220)处理以生成立体视觉信息450。立体视觉信息450包括但不限于从立体摄像机拍摄的数字图像中提取的3d信息。通过比较来自两个有利位置的关于场景的信息,可以提取定义形成视差图或视差图像的3d点云的3d信息。视差图或视差图像提供环境的3d估计以及共同配准的强度或颜色数
据。传感器数据还用于确定检测到的感兴趣对象的一个或多个可能的对象轨迹和/或对象类别(例如,行人、车辆、骑车人等)。感兴趣对象可以包括但不限于由3d点云中被分类为前景数据点(而不是背景数据点)的数据点表示的对象和/或包括被分类为前景数据点(而不是背景数据点)的数据点的点云片段。可能的对象轨迹可以包括但不限于以下轨迹:
[0056]
·
由对象的实际速度(例如1英里/小时)和实际行进方向(例如向西)定义的轨迹;
[0057]
·
由对象的实际速度(例如,1英里/小时)和对象的另一个可能的行进方向(例如,在朝向av的方向上,从对象的实际行进方向向南、西南或x(例如,40
°
)度)定义的轨迹;
[0058]
·
由对象的另一个可能速度(例如,2-10英里/小时)和对象的实际行进方向(例如,向西)定义的轨迹;和/或
[0059]
·
由对象的另一个可能速度(例如,2-10英里/小时)和对象的另一个可能的行进方向(例如,在朝向av的方向上,从对象的实际行进方向向南、西南或x(例如,40
°
)度)定义的轨迹。
[0060]
然后将一个或多个可能的对象轨迹412和/或对象分类传递到框406。
[0061]
在框406中,使用来自框402和404的信息生成车辆轨迹420。用于确定车辆轨迹的技术在本领域中是公知的。用于确定车辆轨迹的任何已知或将要已知的技术都可以在本文中使用,而不受限制。在一些场景中,基于来自框402的位置信息、来自框404的对象检测/分类/轨迹信息以及地图信息428(其预先存储在车辆的数据存储器中)来确定车辆轨迹420。地图信息428可以包括但不限于3d道路地图。车辆轨迹420表示平滑路径,该平滑路径不具有会给乘客带来不适的突然变化。车辆轨迹420随后被提供给框408。
[0062]
在框408中,基于车辆轨迹420生成转向角和速度命令。转向角和速度命令被提供给框410,用于车辆动力学控制。车辆动力学控制使车辆减速、使车辆加速和/或使车辆改变行进方向。
[0063]
现在参考图5,提供了使用立体视觉信息进行前景/背景分类的说明性方法500的流程图。方法500可以在图4的框404中由图2的车载计算设备220和/或图3的计算设备300执行。
[0064]
如图5所示,方法500从502开始,并继续到504,在504中,计算设备(例如,图2的车载计算设备220和/或图3的计算设备300)执行操作以从数据存储器(例如图3的存储器312)获取立体图像、立体实例标签、立体图像拍摄时间、摄像机校准数据和/或立体摄像机姿势。立体图像包括由一个或多个整流立体摄像机(例如,图2的摄像机262)拍摄的数字图像,在整流立体摄像机中,整流过程调整拍摄的图像使得核线共线。立体实例标签可以包括但不限于识别立体图像的信息。立体图像拍摄时间可以包括但不限于指定立体摄像机拍摄图像的时间的时间戳。摄像机校准数据可以包括但不限于关于右侧摄像机和左侧摄像机的精确位置以及左侧摄像机和右侧摄像机的光学特性的信息。立体摄像机姿势包括但不限于摄像机的取向和/或摄像机相对于对象(例如,车辆)的位置。
[0065]
接下来在506中,计算设备执行操作以基于立体图像拍摄时间来识别立体图像对。给定的对包括由两个立体摄像机(例如,右侧摄像机和左侧摄像机)同时拍摄的两个立体图像。在508中,计算设备还执行操作以生成视差图。每个视差图说明一对立体图像之间的明显像素位置差异或运动。视差图是对立体图像对中的对应图像中对象的位置(即偏移)的明显差异的编码。编码可以测量该对立体图像中的对应像素的坐标。因此,视差图可以通过使
用任何已知或将要已知的算法(例如,基于三角测量的算法)来确定每对立体图像之间的明显像素位置差异或运动来生成。每个视差图包括多个像素,每个像素由强度值(标量)定义。在一些场景中,每个像素可以具有与其相关的从0到255的强度值。在图6中提供了说明性视差图600。如图6所示,前景中的对象602比背景中的对象604更亮。亮度表示运动量和与立体摄像机的距离量。例如,对象602的亮度表示该对象与对象604相比具有更大的运动,并且该对象比对象604更靠近立体摄像机。本发明的方案在这方面不受限制。
[0066]
一旦生成了视差图,计算设备就在510中执行操作以将视差图中的每个像素的强度值投影到地图坐标系中。该投影是通过将强度值转换为地图(例如道路地图)中的3d位置来实现的。3d位置定义数据点在点云中的位置。因此,每个投影强度值包括地图(例如,道路地图)中的3d位置。3d位置由x坐标x、y坐标y和z坐标z定义。该投影是使用已知的图像拍摄时间t(从立体图像拍摄时间获取)、已知的车辆在拍摄图像时的位置i
t
、已知的立体摄像机相对于车辆的位置pl、p2(从立体摄像机姿态获取)、已知的像素指向方向an(从摄像机校准数据获取)以及已知的像素与立体摄像机的距离dn(从视差图获取)实现的。
[0067]
在某些情况下,使用专利序列号为16/802970的美国专利申请中描述的反投影过程来实现该投影。反投影过程总体上由以下数学方程(1)定义。
[0068]
[xyz]=inv(k)*depth*[xy1],
ꢀꢀ
(1)其中inv(k)是k的逆矩阵,x表示视差图中像素的x坐标,y表示视差图中像素的y坐标。k由以下数学方程(2)定义。
[0069]
k=[focal_length 0;cx 0focal_length cy;0 0 1]
ꢀꢀ
(2)其中k是3
×
3矩阵,cx和cy是立体摄像机系统中左侧摄像机中心的像素坐标,focal_length是左侧摄像机光学系统的特性(假设为正方形像素,否则需要两个不同的焦距数),depth由以下数学方程(3)定义。
[0070]
depth=baseline*focal_length/dnꢀꢀ
(3)
[0071]
其中baseline是立体摄像机系统中左侧摄像机和右侧摄像机的中心之间的距离的度量。
[0072]
接下来,在512中,将点云中的数据点分组在一起,以为前景和背景中的每个检测到的对象定义一个或多个点云片段。在一些场景中,采用地面分割来减少用于进一步处理的数据点的总数。地面分割可以包括:将每个数据点的z坐标z的值与地上最小高度阈值thr
min-height
和地上最大高度阈值thr
max-height
进行比较;以及丢弃z坐标值小于thr
min-height
且大于thr
max-height
的数据点。
[0073]
附加地或替代地,为每个数据点计算增量值δ。增量值δ表示给定数据点的地面高度值h
ground
和z坐标z的值之间的差。因此,增量值可以由以下数学方程(4)来定义。
[0074]
δ=z-h
ground
ꢀꢀ
(1)然后将数据值用作分层决策树分类器(例如随机森林分类器)的输入。分层决策树分类器可以由图2的车辆车载计算设备220和/或图3的计算设备300来实现。
[0075]
输入到分层决策树分类器中的其他信息包括但不限于每个数据点的以下信息:强度值;数据点的x、y和z值;一对立体图像中的每个立体图像中对应像素的颜色值;和/或位于一对立体图像中的每个立体图像中对应像素附近的像素的特征。附近的定义可以是预定义的,例如,使得如果像素在任何方向上与对应像素相距小于n个像素,则该像素构成对应像素的附近像素。n是一个等于或大于零的整数。附近像素特征包括但不限于:强度值;与附
近像素相关的每个数据点的x、y和z值;附近像素的颜色值;和/或附近像素彼此的相对位置和/或与给定数据点相关的像素。
[0076]
接下来,分层决策树分类器使用输入数据(i)将每个数据点分类为前景数据点或背景数据点,和/或(ii)将数据点分组为检测到的前景对象和检测到的背景对象的点云片段。
[0077]
分层决策树分类器根据强度值、增量值δ(即数据点高于地面的高度)、数据点之间的距离、像素颜色和/或像素的相对位置将数据点分类为前景数据点和背景数据点。在这方面,分层决策树分类器采用机器学习模型,每个机器学习模型使用一组决策树进行操作。每个决策树被配置为对数据点进行类别预测。决策树作为一个整体运行。每个决策树为每个数据点生成类别预测。类别预测指定前景类别或背景类别,以及这种前景类别/背景类别的置信度值。将决策树的结果组合在一起,以确定给定数据点的最终类别。
[0078]
现在参考图7,提供了分层决策树分类器在一些场景中使用的一组说明性决策树700、702、704。在图7a中示出了第一决策树700。在图7b中示出了第二决策树702。在图7c中示出了第三决策树704。每个决策树包括根节点、叶节点和分支。根节点是最上面的节点。每个根节点和中间(或内部)叶节点表示对属性的测试,每个分支表示测试的结果。决策树是以自上而下的递归方式构建的。每个分支的最底部节点的结果提供了数据点与前景中的对象或背景中的对象相关的预测。置信度值ci也与预测一起提供。每个预测的置信度值ci可以根据给定的应用预先定义或动态计算。例如,置信度得分ci可以被定义为强度值、增量值、数据点之间的距离、像素颜色和/或像素的相对位置的函数。
[0079]
如图7a所示,第一决策树700包括根节点703、叶节点705、706、708、716、718、720和分支710、712、714、722、724、726。根节点703表示用于确定给定像素的强度值是否大于阈值thr
intensity-1的测试。给定像素可以包括与当前正在考虑用于前景/背景预测目的的数据点相关的像素。分支710表示的结果是给定像素的强度值大于阈值thr
intensity-1。分支722表示的结果是给定像素的强度值不大于阈值thr
intensity-1。
[0080]
中间(或内部)叶节点705表示用于确定给定附近像素的增量值δ是否大于阈值thr
height-1的测试。给定附近像素可以是在某个方向上(例如,上、下、左、右)与给定像素相邻的像素,或者是在某一方向上从给定像素移除w个像素的像素(例如,给定像素左侧的2个像素)。w是一个整数。分支712表示的结果是给定附近像素的增量大于阈值thr
height-1。分支712通向底部叶节点706,在该底部叶节点706中,做出的预测是所考虑的数据点与前景对象相关,置信度为cl。分支714表示的结果是给定附近像素的增量不大于阈值thr
height-1。分支714通向底部叶节点708,在该底部叶节点708中,做出的预测是所考虑的数据点与背景对象相关,置信度为c2。
[0081]
中间(或内部)左节点716表示用于确定给定附近像素的颜色是否大于阈值thr
color-l的测试。分支724表示的结果是给定附近像素的颜色大于阈值thr
color-l。分支724通向底部叶节点718,在该底部叶节点718中,做出的预测是所考虑的数据点与前景对象相关,置信度为c3。分支726表示的结果是给定附近像素的颜色不大于阈值thr
color-l。分支726通向底部叶节点720,在该底部叶节点720中,做出的预测是所考虑的数据点与背景对象相关,置信度为c4。置信度值cl、c2、c3和/或c4可以彼此相同或彼此不同。
[0082]
当决策树700提供所考虑的数据点与前景对象相关的预测时,参数p
700
的值可以设
置为第一个数字(例如,一)。相反,当决策树700提供所考虑的数据点与背景对象相关的预测时,p
700
的值可以被设置为第二个不同的数字(例如,零)。置信度值cl、c2、c3或c4以及参数p
700
的值随后将被系统用来做出关于所考虑的数据点是与前景对象还是与背景对象相关的最终决策。随着讨论的进行,做出最终决策的方式将变得显而易见。
[0083]
如图7b所示,第二决策树702包括根节点732、叶节点734、736、738、746、748、750和分支740、742、744、752、754、756。根节点732表示用于确定给定附近像素的增量值δ是否大于阈值thr
height-2
的测试。阈值thr
height-1
和thr
height-2
可以相同或不同。分支740表示的结果是给定附近像素的增量值δ大于阈值thr
height-2
。分支752表示的结果是给定附近像素的增量值δ不大于阈值thr
height-2
。决策树702中考虑的附近像素可以与决策树700中考虑的附近像素相同或不同。例如,决策树700中提及的附近像素可以包括在与当前正在考虑的数据点相关的像素的左边两个像素的像素。决策树702中提及的附近像素可以包括在与当前正在考虑的数据点相关的像素之上五个像素的像素。本发明的方案不限于该示例的细节。
[0084]
中间(或内部)叶节点734表示用于确定中心像素的颜色是否大于阈值thr
color-2
的测试。阈值thr
color-1
和thr
color-2
可以相同或不同。中心像素可以是作为图像的中心像素的像素,或者是包含与当前正在考虑的数据点相关的像素的像素组的中心像素。分支742表示的结果是中心像素的颜色大于阈值thr
color-2
。分支742通向底部叶节点736,在该底部叶节点736中做出的预测是所考虑的数据点与背景对象相关,置信度为c5。分支744表示的结果是中心像素的颜色不大于阈值thr
color-2
。分支744通向底部叶节点738,在该底部叶节点738中,做出的预测是所考虑的数据点与前景对象相关,置信度为c6。
[0085]
中间(或内部)叶节点746表示用于确定给定附近像素的位置是否小于阈值thr
position-l的测试。在叶节点746中提及的附近像素可以是在根节点732中提及的附近像素或可以是不同的附近像素。分支754表示的结果是给定附近像素的位置小于阈值thr
position-l。分支754通向底部叶节点748,在该底部叶节点748中,做出的预测是所考虑的数据点与前景对象相关,置信度为c7。分支756表示的结果是给定附近像素的位置大于阈值thr
position-l。分支756通向底部叶节点750,在该底部叶节点750中,做出的预测是所考虑的数据点与背景对象相关,置信度为c8。置信度值c5、c6、c7和/或c8可以彼此相同或彼此不同。
[0086]
当决策树702提供的预测是所考虑的数据点与前景对象相关时,参数p
702
的值可以设置为第一个数字(例如,一)。相反,当决策树702提供的预测是所考虑的数据点与背景对象相关时,p
702
的值可以被设置为第二个不同的数字(例如,零)。置信度值c5、c6、c7或c8以及参数p
702
的值随后将被系统用来做出关于所考虑的数据点是与前景对象还是与背景对象相关的最终决策。随着讨论的进行,做出最终决策的方式将变得显而易见。
[0087]
如图7c所示,第三决策树704包括根节点762、叶节点764、766、768、776、778、780和分支770、772、774、782、784、786。根节点762表示用于确定中心像素的增量值δ是否大于阈值thr
height-3
的测试。阈值thr
height-1
、thr
heiht-2
和/或thr
height-3
可以相同或不同。分支770表示的结果是中心像素的增量值δ大于阈值thr
height-3
。分支770通向中间(或内部)叶节点764。分支782表示的结果是中心像素的增量值δ不大于阈值thr
height-3
。分支782通向中间(或内部)叶节点776。
[0088]
中间(或内部)叶节点764表示用于确定第一给定附近像素的强度值是否大于阈值thr
intensity-2
的测试。阈值thn
intensity-1
和thr
intensity-2
可以相同或不同。分支772表示的结果
是第一给定附近像素的强度值大于阈值thr
intensity-2
。分支772通向底部叶节点766,在该底部叶节点766中,做出的预测是所考虑的数据点与前景对象相关,置信度为c9。分支774表示的结果是第一给定附近像素的强度不大于阈值thr
intensity-2
。分支774通向底部叶节点768,在该底部叶节点768中,做出的预测是所考虑的数据点与背景对象相关,置信度为c10。
[0089]
中间(或内部)叶节点776表示用于确定第二给定附近像素的强度是否大于阈值thr
intensity-3
的测试。阈值thr
intensity-3
可以与阈值thr
intensity-1
和/或阈值thr
intensity-2
相同或不同。叶节点776中提及的附近像素可以是与叶节点764中提及的像素相同的像素或不同的像素。分支784表示的结果是给定附近像素的强度大于阈值thr
intensity-3
。分支784通向底部叶节点778,在该底部叶节点778中,做出的预测是所考虑的数据点与前景对象相关,置信度为c11。分支786表示的结果是给定附近像素的强度不大于阈值thr
intensity-3
。分支786通向底部叶节点780,在该底部叶节点780中,做出的预测是所考虑的数据点与背景对象相关,置信度为c12。置信度值c9、c10、c11和/或c12可以彼此相同或彼此不同。
[0090]
当决策树704提供的预测是所考虑的数据点与前景对象相关时,参数p
704
的值可以设置为第一个数字(例如,一)。相反,当决策树704提供的预测是所考虑的数据点与背景对象相关时,p
704
的值可以被设置为第二个不同的数字(例如,零)。置信度值c9、c10、c11或c12以及参数p
704
的值随后将被系统用来做出关于所考虑的数据点是与前景对象还是与背景对象相关的最终决策。
[0091]
在某些情况下,根据以下数学方程(5)做出最终决策f。
[0092]
f=((c
700
*f
700
)+(c
702
*f
702
)+(c
704
*f
704
))/3
ꢀꢀ
(5)
[0093]
其中c
700
表示从决策树700输出的置信度值(即c1、c2、c3或c4),c
702
表示从决策树702输出的置信度值(即c5、c6、c7或c8),c
704
表示从决策棵704输出的置信度值(即c9、c
10
、c
11
或c
12
)。当(i)大多数决策树(例如,在该场景中为2)做出前景预测并且(ii)f等于或大于阈值thr
final
(例如,0.5)时,确定的最终类别是当前正在考虑的数据点是前景数据点。当(i)大多数决策树(例如在该场景中为2)做出背景预测并且(ii)f小于阈值thr
final
(例如0.5)时,确定的最终类别是当前正在考虑的数据点是背景数据点。
[0094]
分层决策树分类器还可以根据数据点类别和/或数据点之间的距离执行将数据点分组在一起以形成点云片段的操作。在一些场景中,被分类为前景数据点的所有数据点被分组在一起以形成第一点云片段,并且被分类为背景数据点的全部数据点被分组在一起以形成第二点云片段。在其他场景中,被分类为前景数据点的数据点基于彼此之间的距离被分组在一起以形成一个或多个前景点云片段,并且被分类为背景数据点的数据点基于彼此之间的距离被分组在一起以形成一个或多个背景点云片段。本发明的方案并不局限于这些场景的细节。其他技术可以用于对分类的数据点进行分组。
[0095]
基于使用基于立体图像生成的点云导出的特征向量来训练分层决策树分类器。特征向量是众所周知的。用于导出特征向量的技术是众所周知的。每个特征向量包括但不限于所考虑的给定像素和s(例如,25)个附近像素的以下信息:前景/背景类别、强度值、位置和增量值(即地上高度)。s是一个整数。s的值可以是随机选择的、任意选择的和/或预定义的。当使用较大的s时,训练以慢的计算速度产生更精确的前景/背景预测模型,并且当使用较小的s值时,训练以较快的计算速度产生较不精确的前景/背景预测模型。因此,s的选择是模型精度和计算速度之间的权衡。
[0096]
根据已知或将要已知的训练技术,使用特征向量来训练分层决策树分类器。这里可以使用的一种这样的训练技术是众所周知的python技术,该技术(i)在前景对象和背景对象的特征向量内找到模式,(ii)在分层决策树结构中定义模式,以及(iii)使用分层决策树结构定义用于前景/背景预测的机器学习模型。每个机器学习模型包括多个分层决策树结构。
[0097]
例如,在一些场景中,在训练期间使用3d道路图来确定点云中数据点之间的多个距离。每个距离包括给定数据点到与立体图像平面中的附近像素相关的多个数据点中的每个数据点的距离。距离用于(i)检测可能指示前景或背景中的对象的数据点之间的距离模式,以及(ii)确定有多少附近像素将被用于根据距离来估计前景/背景对象。学习信息(i)和(ii)存储在数据存储器中,并用于生成机器学习模型。
[0098]
尽管本发明的方案已针对一个或多个实施方式进行了说明和描述,但在阅读和理解本说明书和附图后,本领域技术人员将进行等效的更改和修改。此外,虽然本发明的方案的特定特征可能仅针对几个实施方式中的一个公开,但是这种特征可以与其他实施方式的一个或多个其他特征相结合,这对于任何给定或特定的应用来说都是期望的和有利的。因此,本发明的方案的广度和范围不应受到任何上述实施例的限制。相反,本发明的方案的范围应当根据以下权利要求及其等同物来定义。
技术特征:
1.一种用于操作车辆的方法,包括:通过处理器获取由立体摄像机拍摄的一对立体图像;通过所述处理器处理该对立体图像以生成视差图,所述视差图包括由强度值定义的多个像素;通过所述处理器将每个所述强度值转换为地图中的3d位置,每个3d位置定义点云中的数据点的位置;通过所述处理器执行分层决策树分类以确定所述点云中的每个所述数据点的类别,所述类别是前景类别或背景类别;和通过所述处理器使用所述类别来促进所述车辆的自主控制。2.根据权利要求1所述的方法,其中每个所述强度值基于以下中的至少一个而被转换为所述3d位置:已知的图像拍摄时间、已知的所述车辆在拍摄图像时的位置、已知的所述立体摄像机相对于所述车辆的定位、已知的像素指向方向和已知的所述像素到所述立体摄像机的距离。3.根据权利要求1所述的方法,还包括在执行所述分层决策树分类之前通过所述处理器执行地面分割以减少所述点云中的数据点的总数。4.根据权利要求1所述的方法,还包括通过所述处理器计算每个所述数据点的增量值,所述增量值表示地面高度值和z坐标值之间的差,所述z坐标值部分地定义所述地图中的相应3d位置。5.根据权利要求1所述的方法,其中所述分层决策树分类基于所述增量值。6.根据权利要求1所述的方法,其中所述分层决策树分类基于该对立体图像中第一像素的强度值、所述3d位置、颜色值以及该对立体图像中第二像素的至少一个特征中的至少一者。7.根据权利要求6所述的方法,其中所述第二像素位于该对立体图像中的所述第一像素附近。8.根据权利要求6所述的方法,其中所述第二像素的所述至少一个特征包括所述第二像素的强度值、3d位置、颜色值以及所述第二像素相对于该对立体图像中的所述第一像素的位置。9.根据权利要求1所述的方法,其中所述分层决策树分类由机器学习模型来促进,所述机器学习模型各自使用一组决策树来操作,其中每个所述决策树为所述点云中的每个所述数据点产生类别预测并且为所述类别预测产生置信度值。10.根据权利要求9所述的方法,其中由所述一组决策树中的决策树产生的所述类别预测被分别组合在一起以确定每个所述数据点的最终类别预测。11.根据权利要求10所述的方法,其中使用加权函数来确定所述最终类别预测,在所述加权函数中,所述置信度值被用作权重。12.根据权利要求1所述的方法,其中所述分层决策树分类包括随机森林分类。13.一种系统,包括:处理器;和非暂时性计算机可读存储介质,包括编程指令,所述编程指令被配置为使所述处理器实现用于操作车辆的方法,其中所述编程指令包括以下指令:
获取由立体摄像机拍摄的一对立体图像;处理该对立体图像以生成视差图,所述视差图包括由强度值定义的多个像素;将每个所述强度值转换为地图中的3d位置,每个3d位置定义点云中的数据点的位置;执行分层决策树分类以确定所述点云中的每个所述数据点的类别,所述类别是前景类别或背景类别;和使用所述类别来促进所述车辆的自主控制。14.根据权利要求13所述的系统,其中每个所述强度值基于以下中的至少一个而被转换为所述3d位置:已知的图像拍摄时间、已知的所述车辆在拍摄图像时的位置、已知的所述立体摄像机相对于所述车辆的定位、已知的像素指向方向以及已知的所述像素到所述立体摄像机的距离。15.根据权利要求13所述的系统,其中所述编程指令还包括在执行所述分层决策树分类之前基于地面高度减少所述点云中的数据点的总数的指令。16.根据权利要求13所述的系统,其中所述编程指令还包括计算每个所述数据点的增量值的指令,所述增量值表示地面高度值和z坐标值之间的差,所述z坐标值部分地定义所述地图中的相应3d位置。17.根据权利要求13所述的系统,其中所述分层决策树分类基于所述增量值。18.根据权利要求13所述的系统,其中所述分层决策树分类基于该对立体图像中第一像素的强度值、所述3d位置、颜色值以及该对立体图像中第二像素的至少一个特征中的至少一者。19.根据权利要求18所述的系统,其中所述第二像素位于该对立体图像中的所述第一像素附近。20.根据权利要求18所述的系统,其中所述第二像素的所述至少一个特征包括所述第二像素的强度值、3d位置、颜色值以及所述第二像素相对于该对立体图像中的所述第一像素的位置。21.根据权利要求13所述的系统,其中所述分层决策树分类由机器学习模型来促进,所述机器学习模型各自使用一组决策树来操作,其中每个所述决策树为所述点云中的每个所述数据点产生类别预测并且为所述类别预测产生置信度值。22.根据权利要求21所述的系统,其中由所述一组决策树中的决策树产生的所述类别预测被分别组合在一起以确定每个所述数据点的最终类别预测。23.根据权利要求22所述的系统,其中使用加权函数来确定所述最终类别预测,在所述加权函数中,所述置信度值被用作权重。24.一种存储指令的非暂时性计算机可读介质,所述指令在由至少一个计算设备执行时被配置为使所述至少一个计算设备执行以下操作:获取由立体摄像机拍摄的一对立体图像;处理该对立体图像以生成视差图,所述视差图包括由强度值定义的多个像素;将每个所述强度值转换为地图中的3d位置,每个3d位置定义点云中的数据点的位置;执行分层决策树分类以确定所述点云中的每个所述数据点的类别,所述类别是前景类别或背景类别;和通过所述处理器使用所述类别来促进所述车辆的自主控制。
技术总结
用于操作车辆的系统和方法。方法包括通过处理器执行以下操作:获取由立体摄像机拍摄的一对立体图像;处理该对立体图像以生成包括由强度值定义的多个像素的视差图;将每个强度值转换为地图中的3D位置(每个3D位置定义点云中数据点的位置);执行分层决策树分类以确定点云中每个数据点的类别(类别是前景类别或背景类别);以及使用类别来促进车辆的自主控制。以及使用类别来促进车辆的自主控制。以及使用类别来促进车辆的自主控制。
技术研发人员:胡晓燕 王凌源 迈克尔
受保护的技术使用者:福特全球技术公司
技术研发日:2021.11.09
技术公布日:2023/8/13
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
