从传感器视场排除车辆的模型的制作方法

文档序号:26494126发布日期:2021-09-03 22:22阅读:80来源:国知局
从传感器视场排除车辆的模型的制作方法
从传感器视场排除车辆的模型
1.相关申请的交叉引用
2.本申请要求2018年12月19日提交的第16/225,745号美国申请的利益,其全部公开内容通过引用并入本文。


背景技术:

3.被配置为在自动驾驶模式下操作的车辆(诸如不需要人类驾驶员的车辆)可用于帮助将乘客或货物从一个位置运输到另一个位置。这可包括在完全自动驾驶模式下操作,在完全自动驾驶模式下乘客可提供一些初始输入,诸如目的地,并且车辆将自身操纵到该目的地而无需来自乘客的进一步驾驶输入。它还可以包括在半自动模式下操作,在半自动模式下某些驾驶操作由车辆管理,而其他操作由驾驶员管理。
4.为了使车辆以完全或半自动模式驾驶,车辆可能在很大程度上依赖于能够在任何给定时间确定其位置以及检测和识别车辆外部对象(诸如其他车辆、停车灯、标志、行人等)的系统。作为示例,这些系统可包括传感器,诸如激光扫描设备(激光雷达(lidar))、雷达和相机,这样的传感器可能被安装在车辆的不同位置。这样的传感器可能都具有车辆外部环境的特定视场(field of view,fov)。然而,障碍物可能会导致信号影响给定传感器的fov。这可能导致误报(false positive)信号,可能影响对外部环境中对象的理解。并且这会影响车辆在自动模式下操作时的驾驶决策和其他行动。


技术实现要素:

5.该技术涉及对车辆传感器相对于车辆本身的视场的更准确地了解。这使车辆能够知道传感器数据何时来自车辆或其他信息。以这种方式,给定的车辆,或车辆类型的高度细化模型,被开发。虽然在给定特定品牌或型号的一般尺寸和形状的情况下,粗略边界框可以被使用,但这种方法可能无法考虑不同的车辆配置或有效操作条件。相比之下,根据该技术开发的车辆精细3d映射可以合并不同的配置或条件。此3d映射用于消除传感器数据中由于车辆本身而产生的信号,从而允许系统基于准确的传感器信息做出驾驶决策和采取其他行动。
6.该技术的方面包括用于生成车辆的传感器视场(fov)模型的方法。该方法包括从安装在车辆上的一个或多个传感器获取车辆外部环境的传感器数据;过滤掉不满足预定范围条件的传感器数据以获取结果(resultant)传感器数据;由一个或多个处理器将结果传感器数据投影到范围图像(range image),其中范围图像中的数据包括多个点,多个点中的每个点具有与之相关联的各自范围值;由所述一个或多个处理器聚合与所获取的传感器数据的不同集合相关联的传感器数据;以及由所述一个或多个处理器创建所述一个或多个传感器中的每个传感器的3d网格表示,所述3d网格表示基于所述范围图像。
7.一个或多个传感器中的每个传感器的3d网格表示也可以被不超过粗略边界框车辆模型的点包围。
8.在一个场景中,该方法还包括使用特定于车辆的外部转换,将3d网格表示从车辆
坐标系(frame)转换为传感器坐标系;以及将3d坐标投影到传感器坐标系中以创建模型范围图像。在这种情况下,对于由给定传感器获取的每个新3d点,该方法可以包括将该新3d点投影到模型范围图像上;以及如果一个或多个选定点的范围不在给定范围内,则过滤掉所述一个或多个选定点。
9.该方法可包括从一个或多个传感器中的每个传感器的3d网格表示的组合生成车辆模型。这里,车辆模型被布置为在检测车辆外部的对象时排除3d网格表示。这里,所述方法可包括将所述车辆模型应用于通用车辆品牌或型号以获取通用车辆模型。在这种情况下,该方法还可以包括将通用车辆模型发送给车队,以供在自动驾驶模式下的驾驶操作期间使用。
10.获取传感器数据可包括在一个或多个场景下在实际环境中操作车辆,以及在一个或多个场景下操作期间收集车辆外部环境的传感器数据。在这种情况下,一个或多个场景可以包括以下至少一个:转向场景,其中车辆的一个或多个车轮被转向到最大程度;静止场景,其中车辆的车门、后备箱或引擎盖中的至少一个处于部分或完全打开的位置;或车辆的至少一个车窗是打开的并且对象被伸出车窗的场景。
11.在又一示例中,创建一个或多个传感器中的每个传感器的3d网格表示包括执行从传感器坐标系坐标到车辆坐标系坐标的转换。
12.在另一示例中,该方法包括将强度通道合并到3d网格表示中,以考虑所获取的传感器数据的不同颜色或照明范围。这可能包括应用强度通道来评估车辆上的传感器是否被碎屑覆盖、被损坏或被浸水。
13.根据该技术的其它方面,处理系统包括被配置为存储所获取的传感器数据的存储器,以及操作地耦合到存储器的一个或多个处理器。所述一个或多个处理器被配置为从车辆的一个或多个传感器接收车辆外部环境的传感器数据。它们还被配置为过滤掉不满足预定范围条件的传感器数据以获取结果传感器数据并将结果传感器数据投影到范围图像中。范围图像中的数据包括多个点,其中所述多个点中的每个点具有与其相关联的各自的范围值。所述一个或多个处理器还被配置为聚集与所获取的传感器数据的不同集合相关联的传感器数据,并且为所述一个或多个传感器中的每个传感器创建3d网格表示,所述3d网格表示基于所述范围图像。
14.一个或多个传感器中的每个传感器的3d网格表示也可以被不超过粗略边界框车辆模型的点包围。
15.在一个示例中,一个或多个处理器还被配置为使用特定于车辆的外部转换将3d网格表示转换为传感器坐标系,并且将3d坐标投影到传感器坐标系中以创建模型范围图像。在这种情况下,一个或多个处理器还可以被配置为,对于由给定传感器获取的每个新3d点,将该新3d点投影到模型范围图像上,并且如果一个或多个选定点的范围不在给定范围内,则过滤掉所述一个或多个选定点。
16.在另一个示例中,一个或多个处理器还被配置为将强度通道合并到3d网格表示中以考虑所获取的传感器数据的不同颜色或照明范围。
17.在另一个示例中,一个或多个处理器还被配置为从一个或多个传感器中的每个传感器的3d网格表示的组合生成车辆模型。车辆模型被布置为在检测车辆外部的对象时排除3d网格表示。在这种情况下,一个或多个处理器还可被配置为将车辆模型应用于通用车辆
品牌或型号以获取通用车辆模型。
18.根据该技术的进一步方面,车辆包括驱动系统,该驱动系统包括控制车辆的驱动的转向子系统、加速子系统和减速子系统,以及被配置为接触驱动面的多个车轮。它还包括包括沿车辆被布置的一个或多个传感器的感知系统。一个或多个传感器中的至少一个传感器具有各自的检测视场(fov)。车辆还包括包括一个或多个处理器的控制系统。所述控制系统操作地耦合到所述驱动系统和所述感知系统,并且被配置为在一个或多个场景下沿着所述驱动面操作所述车辆;在一个或多个场景下操作期间,从一个或多个传感器获取车辆外部环境的传感器数据;将所获取的传感器数据发送到远程系统;根据一个或多个传感器的视场,从远程系统接收车辆模型;以及响应于接收到的车辆模型沿道路操作车辆。
19.在一个示例中,一个或多个场景包括以下至少一个:转向场景,其中车辆的一个或多个车轮被转向到最大程度;静止场景,其中车辆的车门、后备箱或引擎盖中的至少一个处于部分或完全打开的位置;或车辆的至少一个车窗是打开并且对象被伸出车窗的场景。
附图说明
20.图1是根据本公开的方面的具有传感器的车辆。
21.图2是根据本公开的方面的车辆的系统图。
22.图3a

图3c示出了根据本公开的方面的传感器fov和信号的示例。
23.图4示出了根据本公开的方面的传感器数据。
24.图5a

图5b是根据本公开的方面的示例系统的图示和功能图。
25.图6a

图6b根据本公开的方面,将边界框方法与建模方法进行对比。
26.图7a

图7b示出了根据本公开的方面的对比示例性信号情况。
27.图8a

图8b是根据本公开各方面的示例流程图。
具体实施方式
28.概述
29.这项技术涉及在车辆实际驾驶数据采集期间收集传感器信息,并在训练阶段使用收集到的传感器信息来创建车辆的3d映射。在驾驶期间,可能很难确定传感器是否正确地“看到”了世界,或者是否存在由于车辆本身或与车辆相关的某些信号,诸如车辆轮胎在路面上驾驶时引起的尘雾或水喷雾。因此,应该在各种条件和情况下收集传感器数据。训练阶段将采集到的传感器数据提取到模型中,该模型定义了每个传感器通常期望看到的传感器本身(和/或可信的传感器读数范围)。在训练和开发模型(或(多个)模型)之后,车辆的车载系统能够确定传感器数据是由于自身返回还是来自另一个对象,并相应地做出操作决策,例如在操作阶段。
30.示例系统
31.如图1所示,根据本公开各方面的车辆100包括用于检测车辆周围环境中的对象的各种传感器。尽管本公开的某些方面对于特定类型的车辆特别有用,但车辆可以是任何类型的车辆,包括但不限于轿车、小型或大型载货卡车、摩托车、公共汽车、休闲车等。在本示例中,屋顶外壳110支撑传感器单元112,诸如激光雷达传感器,其可以是包括诸如相机和/或雷达单元的其它传感器的传感器组件114的一部分。此外,位于车辆100前端的外壳120和
位于车辆驾驶员侧和乘客侧的外壳130a、130b可各自包括激光雷达传感器和/或其他传感器。其他外壳140a和140b可以沿着车辆的其他部分被放置,诸如朝向车辆100的上后部所示。在本示例中,外壳130a位于驾驶员车门150前面,并且可以位于驾驶员侧前轮胎160、引擎盖170和后视镜单元180附近。附加传感器单元(未显示)可以位于车辆100的前端和后端和/或沿车顶或车顶外壳的其他位置,诸如沿区域190。
32.图2示出了车辆100的各种系统的框图200。例如,如图所示,车辆可以具有一个或多个计算装置,诸如包含一个或多个处理器204、存储器206和通常存在于通用计算装置中的其他组件的计算装置202。
33.存储器206存储可由一个或多个处理器204访问的信息,包括可由处理器204执行或以其他方式使用的指令208和数据210。存储器206可以是能够存储可由处理器访问的信息的任何非暂时性类型,包括计算装置可读介质,或其它存储可借助电子装置读取的数据的介质,诸如硬盘致动器、存储卡、rom、ram、光盘以及其它可写和只读存储器。系统和方法可以包括上述的不同组合,其中指令和数据的不同部分被存储在不同类型的媒体上。
34.指令208可以是由处理器直接(诸如机器代码)或间接(诸如脚本)执行的任何指令集。例如,指令可以作为计算装置代码存储在计算装置可读介质上。在这方面,术语“指令”和“程序”可在本文中互换使用。指令可以以目标代码格式存储以供处理器直接处理,或者以任何其他计算装置语言存储,包括按需解释或预先编译的独立源代码模块的脚本或集合。下面将更详细地说明指令的功能、方法和例程。
35.数据210可由处理器204根据指令208来检索、存储或修改。例如,尽管所要求保护的主题不受任何特定数据结构的限制,但数据可以存储在计算装置寄存器中,也可以存储在关系数据库中,作为具有多个不同字段和记录的表、xml文档或平面文件。数据还可以被格式化为任何计算装置可读的格式。
36.一个或多个处理器204可以是任何常规处理器,诸如商用cpu。或者,一个或多个处理器可以是专用装置,诸如asic或其他基于硬件的处理器。尽管图2在功能上示出了计算装置202的处理器、存储器和其他元件在相同块中,但是本领域的普通技术人员将理解,处理器、计算装置或存储器实际上可以包括多个处理器、计算装置、或存储器,这些存储器可以被存储在相同的物理外壳内或可不被存储在相同的物理外壳内。例如,存储器可以是位于不同于计算装置202的外壳中的硬盘致动器或其它存储介质。因此,对处理器或计算装置的引用将被理解为包括对处理器或计算装置或存储器的集合的引用,这些处理器或计算装置或存储器可以并行操作,也可以不并行操作。
37.计算装置202可以包括通常与诸如上述处理器和存储器的计算装置结合使用的所有组件。计算装置可以包括用户接口子系统212或与用户接口子系统212相关联,用户接口子系统212可以包括例如鼠标、键盘、触摸屏和/或麦克风以及各种电子显示器(例如,具有屏幕的监视器或可操作以显示信息的任何其他电子装置)。例如,车辆可包括内部电子显示器以及一个或多个扬声器以提供信息或视听体验。就此而言,内部电子显示器可位于车辆100的车厢内,并可由计算装置202用于向车辆100内的乘客提供信息。
38.通信系统214可包括一个或多个无线或有线连接以促进与其它计算装置的通信,诸如乘客计算装置(例如,移动电话、智能手表、膝上型计算机或平板计算机等)和下文进一步描述的远程服务器计算装置。无线连接的示例包括短距离通信协议(诸如蓝牙、蓝牙低能
量(low energy,le)和802.11)、蜂窝连接、以及各种配置和协议(包括因特网、万维网、内部网、虚拟专用网、广域网、局域网、使用一个或多个公司专有的通信协议、以太网、wifi和http的专用网络)、以及上述各项的各种组合。
39.在一个示例中,计算装置202可以是合并到车辆100中的自动驾驶计算系统的一部分。自动驾驶计算系统可以能够与车辆的各种组件通信,以便在完全自动驾驶模式和/或半自动驾驶模式下操纵车辆100。例如,回到图2,为了根据存储器206的指令208控制车辆100的移动、速度等,计算装置202可以与车辆100的各种系统通信,诸如减速系统216、加速系统218、转向系统220、信号系统222、导航系统224、定位系统226、感知系统228、动力系统230(例如,汽油或柴油发动机、电力发动机或混合动力发动机)。车轮232与传输系统234耦合,也可以与计算装置202通信。尽管这些系统被示为计算装置110的外部,但实际上,不同的系统也可以被合并到计算装置202中,例如,作为自动驾驶计算系统的一部分,用于以完全或部分自动驾驶模式控制车辆100。
40.作为示例,计算装置202可以与减速系统216、加速系统218和传输系统234交互以控制车辆的速度和相关方面。类似地,转向系统220可由计算装置202使用以控制车辆100的方向。例如,如果车辆100被配置为在道路上使用,诸如汽车或卡车,则转向系统可包括控制车轮角度以转动车辆的组件。信号系统222可由计算装置202使用,以便例如通过在需要时点亮转向灯或制动灯来向其他驾驶员或车辆发出车辆意图的信号。
41.导航系统224可由计算装置202使用以确定并跟随到某个位置的路线。就此而言,导航系统224和/或数据210可存储详细的地图信息,例如,识别道路、车道线、交叉口、人行横道、速度限制、交通信号、建筑物、标志、实时交通信息、植被或其他这样的对象和信息的形状和高程的高度详细的地图。换句话说,这样的详细的地图信息可定义车辆预期环境的几何结构,包括道路以及这些道路的速度限制(法定速度限制)。此外,该地图信息可包括关于交通控制的信息,诸如交通信号灯、停车标志、让行标志等,其与从感知系统228接收的实时信息相结合,可由计算装置202使用以确定哪些交通方向在给定位置具有通行权。
42.感知系统228还包括一个或多个组件,用于检测车辆外部的对象,诸如其他车辆、自行车、行人、道路障碍物、交通信号、标志、树木等。例如,感知系统228可以包括一个或多个激光雷达传感器236、雷达传感器238,相机或其他图像传感器240和/或其他传感器242(例如,声纳装置),能够检测车辆周围环境中的对象。其他传感器242还可以包括记录有关车辆的数据的任何其他检测装置,这些数据可以由计算装置202(诸如加速计、陀螺仪等)处理。其他传感器242还可以包括检测车辆100的状态或配置的传感器。例如,其他传感器242可感测到车门部分或完全打开,后备箱或引擎盖部分或完全打开,和/或一个或多个车窗部分或完全向下滚动。
43.感知系统的传感器可以检测车辆外部环境中的对象,并生成描述这样的对象的特征(诸如位置、方向、大小、形状、类型、方向和移动速度等)的传感器数据。来自传感器和/或上述特征的原始传感器数据可以被量化或被布置为描述函数或向量,并被发送到计算装置202以供进一步处理。如下面进一步详细讨论的,计算装置202可以使用定位系统226来确定车辆的位置和姿态,并且在需要安全到达该位置时使用感知系统228来检测和响应对象。
44.感知系统228的激光雷达传感器236、雷达传感器238、图像传感器240和/或其他传感器242可以各自具有其自己的fov。并且每个这样的传感器可以被布置在车辆上,使得给
定传感器的fov的全部或部分与一个或多个其他传感器的视场的至少一部分重叠。图3a中示出了这方面的一个示例,其示出了在被配置为以自动驾驶模式操作的车辆前面有另一车辆的场景。图3a示出了具有车顶传感器组件302和前传感器组件304的车辆300。车辆300位于另一车辆306的后面。车顶传感器组件302具有传感器fov 308,而前传感器组件304具有传感器fov 310。如图所示,传感器fov 308可以被布置为检测车辆306的上后部,而传感器fov 310可以检测车辆306的下后部,并且视场中可能存在一些重叠。
45.例如,车顶传感器组件302和/或前传感器组件304可包括一个或多个激光雷达传感器。车顶传感器组件302和前传感器组件可通过对车辆周围区域进行一次或多次扫描来检测外部环境中的对象。如图3b所示,屋顶传感器组件的激光雷达传感器可以对感兴趣的区域进行多次扫描。这里,线310指示环境的单独扫描的示例。例如,每个扫描周期可由给定传感器进行10次(或更多或更少)单独扫描。这可能包括调整传感器的fov上或下,左或右,例如,与发电机或其他致动器。单个扫描可以被选择以覆盖传感器fov的特定部分或车辆周围的选定区域。
46.然而,传感器也可能接收来自车辆本身的返回(自返回)。例如,如图3c所示,扫描可生成来自车辆各部分的返回,诸如来自车顶的返回312、来自侧视镜或侧传感器的返回314、来自车轮的返回316(例如,当车辆左转或右转时)、来自部分或完全打开的后备箱的返回318,以及从部分或完全打开的门返回320。根据车辆的配置、传感器的类型、传感器的fov等,车辆的其他部件也可能生成返回。在操作时,诸如自动驾驶时,如果给定返回的范围大于模型的范围(在该角度)加上一些增量(例如,10

50cm),则系统能够推断给定返回是自返回。
47.图4示出了具有闭合传感器数据的示例的场景。如这里所示,车辆400包括一对前侧传感器402a、402b、下前侧传感器404和一对后向安装的传感器406a、406b。自返回408(侧板或传感器外壳)、410(车门),412(侧视镜)和/或414(车轮)可由前侧传感器402检测。自返回信号416(前保险杠)可由前传感器404检测。并且信号418(后侧板或后备箱)和420(灰尘或喷水)可由后装传感器406检测。
48.为了说明该信息(例如,确定其不是由紧邻车辆的对象引起的)并提供比粗略边界框更稳健的方法,如上文所述,该技术用于训练和建模阶段。
49.示例方法
50.该技术的各个方面涉及收集传感器数据,并使用这些数据构建稳健的模型,以了解哪些传感器数据是相关的,哪些是可以忽略的。虽然可以手动构建给定车辆的详细3d模型,但这是劳动密集型的,并且当每个单独的车辆或类似车辆的车队需要模型时,无法进行缩放。模型可由车辆品牌商根据“设计”车辆提供。然而,这些可能是不够的,特别是对于带有传感器的车辆或后来添加到其上的售后组件(例如,车顶支架、牵引钩、自行车架、钓鱼杆支架等)。手动说明所有可能的车辆状态也很困难,例如车轮转动、车门或车窗打开等时。
51.传感器数据的收集包括各种场景下车辆的实际驾驶。例如,车辆可以沿着封闭的路线或选定的道路驾驶。这可以在没有附近对象的情况下完成,诸如其他车辆、自行车、行人、街道标志或建筑标志、植被等。当车辆驾驶时,传感器(例如,激光雷达、雷达、成像等)根据各自的视场收集数据。这些信息将用于为每个传感器开发3d网格,该网格将共同构成特定车辆的整体模型。
52.正如这里所讨论的,网格内的点(比模型的范围图像预测的范围小的点)可能是真实的对象。因此,它们不会被过滤掉;而是,它们被传递到感知管道(例如,图2的感知系统228的一部分)。相比之下,落在网格之外(或超出模型预测范围)的点被过滤掉。这是因为这样的点会被车辆本身遮挡,因此必然来自车辆本身或是虚假(spurious)返回。
53.当驾驶车辆以获取实际的数据时,不同的车辆设置被将评估,例如用来考虑车辆的“可变形”部件,例如,可以转动、打开或关闭或具有不同位置的部件。例如,车轮可以最大程度地左右转动,例如进行u形转弯(u

turn)或多点转弯(例如,k形转弯(k

turn)),以检查最大角度等。当车辆停放时,后备箱、车门以及可能的引擎盖可以部分或完全打开。并且侧视镜可朝向或远离车门。激光雷达和其他传感器可用于检测这样的车辆创建的障碍物,这些障碍物可能会生成自返回。传感器还可用于检测其他情况,例如,当乘客将手臂伸出车窗时,或当灰尘、水或来自轮胎的雪雾等时。可针对特定配置或情况开发或维护不同的模型。因此,在一个示例中,给定模型可在相同品牌和/或相同型号的所有车辆之间共享。并且在另一个示例中,为每辆独特的车辆建立模型(每个车辆标识号一个模型)。
54.例如,实际驾驶可以考虑不同的驾驶环境和条件,诸如多尘的路面、轮胎喷洒的砾石或其他碎屑、废气排放等。它还可以考虑到传感器的不精确性。灰尘、砾石、碎屑、水或雪雾等可能会局限于车辆的某些区域,诸如靠近轮胎或轮舱的区域。在一个示例中,在开发3d网格和结果车辆模型时,不应将结果信息视为车辆的一部分。然而,在另一实例中,这样的信息可被合并到给定模型中。在给定模型中包括这样的信息的一个原因是,它可以更好地表示给定传感器通常看到的信息,因此在驾驶期间应该忽略这些信息。然而,这可能会使车辆在灰尘、砾石、碎屑等容易出现的区域内作出反应的真正障碍物很难检测出来。包括此类信息可区分瞬态项目(例如,灰尘、砾石、碎屑、水或雪雾等)和行人、自行车或车辆附近的其他对象。
55.实际驾驶可包括手动驾驶和完全自动驾驶中的一种或两种。这有助于获取通过两种驾驶方式获取的传感器数据。例如,手动驾驶可能涉及自动驾驶时很少遇到的“拐角情况(corner case)”状态(例如,多点转弯、驾驶时向车窗挥手等)。驾驶可以,例如由车辆或驾驶员执行某些行动,诸如在特定情况下转弯、制动、加速或减速,来构成。驾驶也可以这样构成,以使得在一天的不同时间和/或在不同的照明条件下,例如在黎明或黄昏时,数据被捕获,其中照明可能影响某些传感器检测到的结果。类似地,针对不同的天气条件(例如,雪、雨夹雪或雨,以及晴朗干燥的天气)以及不同的季节,数据可以被捕获。传感器数据收集可以被实现为一个或多个独立训练操作的特定集合。或者,传感器数据收集可以作为校准过程的一部分执行,或可以在非校准驾驶操作期间执行。
56.通常,从给定车辆的各种扫描和场景中获取的信息被收集并提供给计算系统进行分析和建模。传感器数据点云可以以有组织的格式存储,诸如点的线性化矩阵。一些收集到的传感器数据最初可以被过滤掉而不存储,因为它们由于不满足预定的范围条件而不能成为车辆的一部分。例如,接地点(车辆所在地面的传感器数据)不是车辆的一部分。这可能包括不满足与车辆或传感器位置相关联的选定高度阈值。其他传感器数据可能会被过滤掉,因为即使使用粗略几何模型,这些传感器数据点的位置太远,不是车辆的一部分。例如,球体或其它几何形状可与特定传感器相关联。这里,如果点落在给定形状之外,则在开发3d网格时,它们可能会被自动排除在进一步考虑之外。在另一种情况下,该粗略几何模
型可以是车辆的边界框,该边界框在车辆坐标系中被指定并在所有传感器之间共享,并且将意味着每个传感器在不同角度处有不同范围条件。一个或多个这样的基于粗略模型的过滤操作可以连续或并行地进行。计算系统获得结果传感器信息,并将聚合的传感器数据投影到范围图像(例如,从每个传感器的角度来看的2d网格)。数据中所有聚集扫描的最小范围,以及诸如范围方差、返回强度等统计信息被记录用于范围图像的每个单元。从2d范围图像和给定传感器的校准外部姿态,系统能够生成车辆坐标系坐标中的3d网格。换句话说,系统执行从传感器坐标系坐标到车辆坐标系坐标的转换。3d网格可以例如被存储为具有用于x坐标的通道、用于y坐标的通道和用于z坐标的通道的图像(2d网格)。与各种传感器相关联的3d网格可被集成以形成给定车辆的整体车辆模型,或基于每个传感器独立地使用。
57.转换为3d车辆坐标系坐标的目的是考虑当模型加载到不同车辆上或以其他方式用于不同车辆时传感器位置/方向的差异。单独的校准程序可用于确定特定于车辆的传感器的位置/方向。一旦3d网格加载到新车的车辆坐标系中,它将使用单独校准的传感器位置/方向重新投影到新车传感器坐标系中的2d范围图像中。然后在操作期间(操作阶段),可以对照2d网格进行检查。与试图确定每个点在3d网格上的位置相比,这种方法的计算效率非常高。
58.这种方法考虑的其他方面包括强度。例如,强度通道(例如,存储为与所存储的3d网格面像素相对应的灰度图像)可以被包括在3d模型中,以考虑由传感器检测到的不同颜色或照明范围。例如,这有助于区分灰尘云和站在车辆旁边的行人(如果车辆模型中包括灰尘返回),或区分车辆和站在车辆旁边的行人。
59.同样,通过将观测数据与车辆形状和外观模型(包括网格几何结构和强度)进行比较,传感器是否脏污、浸水或在操作期间被碎屑遮挡也可以被检测。
60.来自车辆其他传感器的数据可被用于检测不同的车辆配置。例如,各种传感器可以指示车门是否打开、车轮角度以及车辆的任何其他铰接状态。这允许系统在特定状态下使用适当的模型,例如,在执行自返回过滤任务或传感器阻塞检测任务时。例如,可能存在用于“滑动门打开”的特定模型,其可能不同于用于“滑动门关闭”的模型。
61.在建模期间,系统可以创建“难样本(hard negatives)”。难样本是在在线操作期间弹出(pop up)的示例,其中模型未能过滤掉车辆的一部分(例如,在转弯时,一些轮胎显示为障碍物,并且车辆急刹车并卡在假想的障碍物后面)。在这种情况下,系统或人类操作员可以验证没有障碍物确实存在。基于此,系统会将此数据添加回模型的数据集(与其以前的数据一起)。这样,难样本可以被用来改进模型,以更好地处理类似的情况。
62.3d模型可以由计算系统使用机器学习方法来开发。例如,可以使用深度神经网络来执行自返回过滤的二元分类(binary classification)任务。在学习期间,将标记的实例分解为训练集和测试集,并将训练集和测试集反馈给优化(诸如使用交叉熵损失的随机梯度下降)来选择最佳分类器参数。然后,这些参数被固定并用于估计在操作阶段期间遇到的新数据的“真或假”。可以使用所获取的扫描数据来训练模型,例如具有正标记的实例,其中由于车辆的可变形部分、灰尘或碎屑等而存在障碍物;并且负标记的实例,没有障碍物存在。训练还可以包括,例如,在车辆周围放置行人或其他对象,或评估任意日志数据,并使用贴标签机(labeler)识别出车辆附近的哪些激光返回是系统应检测到的真实对象,哪些不是。
63.除了执行特定于车辆的分析和将模型从一辆车辆转移到另一辆车辆之外,建模阶段还可以合并从相同品牌和/或型号的许多不同车辆获取的信息。这里,除了初始车辆的范围图像(“标准(canonical)”范围图像)之外,系统还记录从传感器坐标系到车辆坐标系的外部转换然后,对于具有稍微不同的外部转换(tv

s)的新车辆,系统通过应用如下转换将标准范围图像转换为特定于车辆的图像:
[0064][0065]
此转换可在初始化时计算一次。一旦为相同品牌和/或型号的车辆开发了3d模型(或(多个)模型),3d模型将提供给这样的车辆,以便在未来完全或部分自动驾驶期间使用。
[0066]
执行建模的系统可以是系统的一部分,如图5a

图5b所示。图5a

图5b分别是示例系统500的示意图和功能图,该示例系统500包括经由网络540连接的多个计算装置510、数据库520和工作站530。系统500还包括各种车辆100a、100b、100c

100n,其可以是相同的一般类型(例如,相同的品牌和/或型号)。尽管为了简单起见,仅描述了一些车辆和计算装置,但是典型的系统可能包括更多的车辆和计算装置。
[0067]
如图5b所示,计算装置510中的每个计算装置可以包括一个或多个处理器、存储器、数据和指令。这样的处理器、存储器、数据和指令可以类似于计算装置202的一个或多个处理器204、存储器206、指令208和数据210来配置。
[0068]
网络540和中间节点可以包括各种配置和协议,包括短距离通信协议,诸如蓝牙、蓝牙le、802.11、因特网、万维网、内部网、虚拟专用网、广域网、局域网、使用一个或多个公司专有的通信协议、以太网、wifi和http的专用网络、以及上述各项的各种组合。这样的通信可以由能够向诸如调制解调器和无线接口的其它计算装置发送数据和从其发送数据的任何装置来促进。
[0069]
在一个示例中,一个或多个计算装置510可以包括一个或多个服务器计算装置,该服务器计算装置具有多个计算装置(例如,负载平衡服务器场(load balanced server farm)),这些计算装置与网络的不同节点交换信息,以便从其他计算装置接收、处理和发送数据和向其他计算装置接收、处理和发送数据。例如,一个或多个计算装置510可以包括能够经由网络540与每个车辆100的计算装置202以及工作站530通信的一个或多个服务器计算装置。例如,车辆100a

100n,可以是可由服务器计算装置510或工作站530派遣到各个位置的车队的一部分。就此而言,服务器计算装置510可以用作建模计算系统,其可以用于生成车辆的3d模型。另外,服务器计算装置510可以使用网络540在计算装置530的显示器532上向诸如工作站530的用户的用户发送和呈现信息。就此而言,计算装置(工作站)530可以被认为是客户端计算装置。
[0070]
如图5b中所示,工作站530可以是意图由用户使用的个人计算装置,并且具有通常与个人计算装置相关联使用的所有组件,包括一个或多个处理器(例如,中央处理单元(cpu))、存储器(例如,ram和内部硬盘驱动器)存储数据和指令,显示器,诸如显示器532(例如,具有屏幕、触摸屏、投影仪、电视或其他可操作以显示信息的装置的监视器)和用户输入装置(例如,鼠标、键盘、触摸屏或麦克风)。工作站530还可以包括用于记录视频流的相机、扬声器、网络接口装置以及用于将这些元件彼此连接的所有组件。
[0071]
尽管工作站530可包括全尺寸个人计算装置,但其可替代地包括能够通过诸如因
特网的网络与服务器无线交换数据的移动计算装置。仅作为示例,工作站530可以是移动电话或诸如无线启用的pda、平板电脑或膝上型pc的装置或能够经由因特网或其他网络获取信息的上网本。例如,用户可以使用小键盘、按键、麦克风、使用相机的视觉信号或触摸屏来输入信息。
[0072]
工作站530的用户可以控制或修改3d模型生成的方面。例如,用户可以将给定的传感器数据的集合标记或分类为来自车辆可变形部分的自返回,或者指示传感器数据实际上是尘云、水或雪雾等。在这里,用户可以识别自返回的正(positive)和负(negative)示例。可选地或另外,工作站530的用户可以为训练阶段的数据收集设置场景和条件。
[0073]
一旦开发了车辆的3d模型并与一辆或多辆车辆共享,就可以使用该模型评估新的查询点,以确定它们是否是自返回(或瞬态等)。例如,如果观察到的数据点的范围在3d模型预测范围的公差内,则车辆的车载系统可能会推断它是一个自返回(并将其过滤掉)。如果其范围超出模型,系统可能会推断它应该被车辆遮挡,因此必须是噪声或虚假伪影(false artifact)(并将其过滤掉)。然而,如果它比模型更接近,那么它很可能是来自外部对象的返回。其他记录的特征也可用于决定返回是否来自车辆本身。这可能包括返回强度、每像素范围变化(例如,对于车辆的铰接部件,诸如车轮)等。
[0074]
最终结果是一个稳健的全局模型(或模型的集合),该模型排除了有关车辆的传感器数据(自返回),并且排除或考虑了其他传感器数据,诸如由于灰尘、水或雪雾等引起的瞬态条件。图6

图7将边界框方法与这样的建模进行对比。例如,图6a示出了作为围绕车辆的矩形框布置的示例边界框600。相比之下,图6b示出了根据上述技术的模型610。可以看出,模型610对车辆的约束更为严格。
[0075]
图7a

图7b显示了这种建模的优势。特别地,图7a示出了具有边界框720的车辆710的场景700。这里,自返回数据730的集合(示出为位于驾驶员侧视镜上的3条弧形虚线)落在边界框720内。该图还示出了来自诸如篮球的对象的另一返回数据740的集合。该返回数据部分位于边界框720内,部分位于边界框720外。在该边界框方法中,车载系统可能无法辨别在分析外部环境时是否应忽略或考虑返回数据730和/或740。
[0076]
相比之下,图7b的示例750包括车辆模型760。车辆模型760已被开发为考虑自返回和其他信号。例如,任何出现在安装在车辆侧面的给定传感器(例如,后侧围板)和凸出的侧视镜之间的自由空间中的对象都会在网格内。这可能是真实对象(例如,行人)。相比之下,从给定传感器的角度看,侧镜后面的任何对象都被挡住了视线,因此不可能是真实的对象。并且任何精确地位于侧镜上的对象都会精确地位于网格表面上,并且会是一个自返回,也应该被过滤掉。
[0077]
因此,在该示例中,返回数据730将被标记为自返回并从接收到的传感器数据集合中过滤掉(并且因此被标记为被车辆的感知或规划系统排除或以其他方式被忽略)。相比之下,由于返回数据740不在模型760的范围内,因此与该返回数据相关联的对象将被传感器系统检测到,并且该信息将被规划系统考虑到车辆的操作中。
[0078]
这种建模方法的其他优点是能够在操作期间验证车辆传感器的正常功能,发现传感器堵塞(如激光雷达车窗脏污或损坏),验证传感器校准,帮助执行校准,以及识别车身损坏等汽车缺陷。
[0079]
图8a是根据本文讨论的方法的用于生成视场模型的示例过程的流程图800。当项
目以特定顺序示出时,除非在此明确说明,否则可以并行地或以不同的顺序执行所述过程。在框802,给定车辆外部环境的传感器数据被获取。传感器数据由车辆上的一个或多个传感器生成,诸如激光雷达、雷达和/或图像传感器,每个传感器可具有特定的视场。传感器可以根据传感器数据直接感测到对象的范围。在框804,对传感器数据进行过滤,使得不满足预定范围条件的数据被排除在进一步考虑之外。如上所述,接地点或其他太远的点可能被排除在外。然后对合成传感器数据进行进一步分析和处理。
[0080]
例如,在框806,将传感器数据被投影到范围图像中。这可以在每个传感器的基础上进行。投影的范围图像中的数据包括多个点。每个这样的点具有与之相关联的各自范围值。范围值可以是最小或最大范围值,或范围的集合[最小,最大]。在框808,与获取的不同集合相关联的传感器数据被聚合。例如,当车辆在环境中驾驶时,给定的激光雷达传感器可以收集多组结果的集合。或者可以在不同的时间进行各种试验(例如,在夜间、白天、不同的天气条件下等)。聚合可以在聚合的数据集中产生最小值。在框810,系统基于范围图像创建一个或多个传感器中的每个传感器的3d网格表示。创建一个或多个传感器中的每个传感器的3d网格表示可以包括执行从传感器坐标系坐标(传感器坐标系)到车辆坐标系坐标(车辆坐标系)的转换。每个传感器的3d网格表示也可以被不超过粗略边界框车辆模型的选定点包围。
[0081]
图8b示出了根据3d网格表示过滤点的示例方法的流程图820。在框822,给定传感器的3d网格表示被转换为传感器坐标系。3d网格表示在车辆坐标系中具有3d坐标。转换是使用先前校准的、特定于车辆的外部转换来完成的。在框824,3d坐标被投影到传感器坐标系中以创建模型范围图像。在框826处,对于由给定传感器(例如,激光/激光雷达传感器)感测的每个新3d点,将该点投影到模型范围图像上。例如,这将产生像素坐标[i,j]和范围(r)。然后在框828,如果范围(r)等于或大于模型范围[i,j]减去一定差异(ε),则过滤掉该点以考虑传感器报告的小范围误差(其中(ε)大于零)。
[0082]
因此,当在未来的驾驶操作期间检测车辆外部的对象时,系统能够排除3d网格表示之外的传感器数据。例如,该系统能够标识自返回和其他返回,并以自动模式驾驶车辆或以其他方式进行相应操作。
[0083]
根据该技术的其他方面,该系统可以动态地构建模型,例如在以自动模式驾驶时。当系统能够自信地(从其他传感器、环境知识和/或接收到的信息等)确定车辆周围没有外部对象时,模型可以被更新。在这种情况下,训练、建模和操作阶段可以看作是并行的。
[0084]
例如,当车辆在高速公路上以每小时60mph的速度驾驶时,车辆刚刚穿过的空间中的任何东西都必须是空的。这一确定是有置信的,因为可以基于可用信息合理地假设没有靠近车辆的尾门,和/或因为如果车辆穿过时该空间被占用,系统将检测到即将发生的碰撞。或者,可替换地,附近环境中可能存在另一车辆,其可以看见该车辆并利用其车载传感器确定附近没有对象,并且将该信息传送给该车辆。
[0085]
上面讨论的技术和方法提供了非常精确的网格或其他表示什么是“车辆”与什么是“环境”。而这反过来又允许车载系统在自动驾驶期间做出有效的决策。
[0086]
除非另有说明,否则上述替代示例不是相互排斥的,而是可以以各种组合来实现以实现独特的优点。由于可以在不脱离权利要求所限定的主题的情况下利用上述特征的这些和其他变化及组合,因此上述实施例的描述应当通过说明而不是通过限制权利要求所限
定的主题来进行。此外,本文所描述的示例的规定以及措辞为“诸如”、“包括”等的从句不应被解释为将权利要求的主题限定于具体示例;而是,示例旨在仅说明许多可能实施例中的一个。此外,不同附图中的相同参考号可以识别相同或相似的元件。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1