使用深度视频帧预测来训练自主车辆的控制器的制作方法

文档序号:18039173发布日期:2019-06-28 23:45阅读:165来源:国知局
使用深度视频帧预测来训练自主车辆的控制器的制作方法

本发明涉及用于自主车辆的控制算法。



背景技术:

近期在深度学习方面取得的成功已促使将深度学习应用于与自主驾驶相关的多种基于视觉的问题。特别地,若干近期工作已经开发出用于自动车辆的端对端驾驶的基于深度学习的框架。例如,给定行车记录仪图像,先前方法产生转向命令和速度命令来驱动汽车。

本文所公开的系统和方法提供了用于训练用于自主车辆的基于图像的控制算法的改进方法。



技术实现要素:

在本发明的一个方面,一种方法包括使用计算装置来执行方法,所述方法包括:将多组图像以及每组图像的对应控制输入输入到图像预测器;将所述多组图像和每组图像的来自所述图像预测器的预测图像输入到鉴别器中;以及根据每个组的来自所述鉴别器的输出进一步训练控制发生器。

在一些实施例中,所述一组图像是来自安装到车辆的摄像机的输出的一组连续图像。

在一些实施例中,每个组的来自所述鉴别器的所述输出是两个值中的一个,所述两个值中的第一个指示积极结果,而所述两个值中的第二个指示消极结果。

在一些实施例中,每组图像的所述对应控制输入是转向角。在一些实施例中,每组图像的所述对应控制输入是转向角、加速度输入和制动输入中的至少一者。

在一些实施例中,所述图像预测器、所述鉴别器和所述控制发生器均是深度神经网络模型。在一些实施例中,所述图像预测器、所述鉴别器和所述控制发生器均是卷积神经网络模型。

在本发明的另一方面,一种系统包括一个或多个处理装置以及可操作地耦接到所述一个或多个处理装置的一个或多个存储器装置,所述一个或多个存储器装置存储可执行代码,所述可执行代码有效地致使所述一个或多个处理装置:将多组图像以及每组图像的对应控制输入输入到图像预测器;将所述多组图像和每组图像的来自所述图像预测器的预测图像输入到鉴别器中;并且根据所述多组图像、每个组的所述对应控制输入以及每个组的来自所述鉴别器的输出进一步训练控制发生器。

在一些实施例中,所述一组图像是来自安装到车辆的摄像机的输出的一组连续图像。

在一些实施例中,每个组的来自所述鉴别器的所述输出是两个值中的一个,所述两个值中的第一个指示积极结果,而所述两个值中的第二个指示消极结果。

在一些实施例中,每组图像的所述对应控制输入是转向角。在一些实施例中,每组图像的所述对应控制输入是转向角、加速度输入和制动输入中的至少一者。

在一些实施例中,所述图像预测器、所述鉴别器和所述控制发生器均是深度神经网络模型。在一些实施例中,所述图像预测器、所述鉴别器和所述控制发生器均是卷积神经网络模型。

在本发明的另一方面,一种方法包括使用计算装置来执行方法,所述方法包括:从安装到第一车辆的第一摄像机接收第一图像流,所述第一图像流在第一时间段捕获;接收用于所述车辆的第一控制输入流,所述第一控制输入流在所述第一时间段期间捕获;生成第一训练数据组,每个训练数据组包括:来自所述第一图像流的n个连续图像,其中n是大于一的整数;来自在时间上对应于所述第一图像流的所述第一控制输入流的一个或多个控制输入;以及紧跟在所述每个训练数据组的所述第一图像流中的所述n个连续图像之后的图像;使用所述第一训练数据组来训练图像预测器;生成第二训练数据组,每个训练数据组包括:来自第二图像流的p个连续图像,其中p处于等于和不等于n中的一种情况,所述第二图像流与所述第一图像流相同或不同;处于以下情况中的一种情况的图像:(a)不是紧跟在所述每个训练数据组的所述第二图像流中的所述n个连续图像之后的图像,和(b)是紧跟在所述每个训练数据组的所述第二图像流中的所述p个连续图像之后的图像;以及如果(a)为真则为第一值而如果(b)为真则为第二值的期望输出;以及根据所述第二训练数据组训练图像鉴别器;以及使用所述图像鉴别器的输出来训练控制发生器。

在一些实施例中,训练所述控制发生器包括:接收是所述第一图像流、所述第二图像流以及与所述第一图像流和所述第二图像流不同的图像流中的一者的第三图像流;针对所述第三图像流中的每组n个连续图像,生成对应估计控制输入;将来自所述第三图像流的每组n个连续图像和对应于来自第三图像流的所述每组n个连续图像的所述估计控制输入输入到所述图像预测器中,以获得来自所述第三图像流的所述每组n个连续图像的预测图像;将来自所述第三图像流的每组n个连续图像和来自所述第三图像流的所述每组n个连续图像的所述预测图像输入到所述图像鉴别器中,以获得来自所述第三图像流的所述每组n个连续图像的鉴别器输出;以及使用来自所述第三图像流的每组n个连续图像的所述鉴别器输出进一步训练所述控制发生器。

在一些实施例中,使用所述鉴别器输出训练所述控制发生器包括:针对每组n个连续图像,生成损失函数值,所述损失函数值在所述鉴别器输出是所述第一值时增大,并且随着所述估计控制输入与对应于所述每组n个连续图像的来自所述第一控制输入流的一个或多个控制输入之间的差的量值增大;以及训练所述控制发生器以减小所述损失函数值。

在一些实施例中,来自所述第三图像流的每组图像的所述对应控制输入是转向角、加速度输入和制动输入中的至少一者。

在一些实施例中,所述图像预测器、所述图像鉴别器和所述控制发生器均是深度神经网络模型。

在一些实施例中,所述图像预测器、所述图像鉴别器和所述控制发生器均是卷积神经网络模型。

附图说明

为了易于理解本发明的优点,可参考附图中所示的特定实施例。应理解,这些附图只是描绘本发明的典型实施例,因此不应视为限制其范围,本发明将通过使用附图以另外的特异性和细节来描述和解释,在附图中:

图1是实现用于与根据本发明实施例一起使用的自主车辆的组件的示意性框图;

图2是示出示例性计算装置的示意性框图;

图3是用于实施根据本发明实施例的基于图像的控制算法的组件的过程流程图;

图4是根据本发明的实施例的用于训练图像预测器的方法的过程流程图;

图5是根据本发明的实施例的用于训练图像鉴别器的方法的过程流程图;并且

图6是根据本发明的实施例的用于训练控制发生器的方法的过程流程图。

具体实施方式

参考图1,根据本文所公开的方法使用的车辆可以是诸如轿车或其他小型车辆的小容量车辆或者诸如卡车、公共汽车、货车、大型运动型多功能车(sportutilityvehicle,suv)等大容量车辆。车辆可具有本领域已知的任何车辆的所有结构和特征,包括车轮、耦接到车轮的传动系、耦接到传动系的发动机、转向系统、制动系统和本领域已知包括在车辆中的其他系统。

如本文中更详细论述,车辆的控制器102可执行自主导航和防碰撞。控制器102可从一个或多个外部传感器104接收一个或多个输出。例如,一个或多个摄像机106a可安装到车辆并将接收到的图像流输出到控制器102。

外部传感器104可包括诸如超声传感器106b、radar(无线电探测和测距)传感器106c、lidar(光探测和测距)传感器106d、sonar(声音导航和测距)传感器106e等传感器。

控制器102可执行接收外部传感器104的输出的自主操作模块108。自主操作模块108可包括障碍物识别模块110a、碰撞预测模块110b和决策模块110c。障碍物识别模块110a分析外部传感器的输出并识别潜在障碍物,包括人、动物、车辆、建筑物、路缘以及其他对象和结构。特别地,障碍物识别模块110a可识别传感器输出中的车辆图像。

碰撞预测模块110b基于车辆的当前轨迹或当前预期路径来预测哪些障碍物图像可能与车辆碰撞。碰撞预测模块110b可估计与障碍物识别模块110a所识别的对象碰撞的可能性。决策模块110c可做出停止、加速、转弯等决策以避开障碍物。碰撞预测模块110b预测潜在碰撞的方式和决策模块110c采取动作以避免潜在碰撞的方式可根据自主车辆领域已知的任何方法或系统。

决策模块110c可通过致动控制车辆的方向和速度的一个或多个致动器112来控制车辆的轨迹。例如,致动器112可包括转向致动器114a、加速器致动器114b以及制动器致动器114c。致动器114a-114c的配置可根据自主车辆领域已知的此类致动器的任何实施方式。

在本文所公开的实施例中,自主操作模块108可执行到指定位置的自主导航、自主停车以及本领域已知的其他自动化驾驶活动。

图2是示出示例性计算装置200的框图。计算装置200可用于执行各种程序,诸如下文所述的方法400-600。车辆控制器102还可具有计算装置200的属性中的一些或全部。

计算装置200包括一个或多个处理器202、一个或多个存储器装置204、一个或多个接口206、一个或多个大容量存储装置208、一个或多个输入/输出(i/o)装置210、以及显示装置230,所有这些装置都耦接到总线212。一个或多个处理器202包括一个或多个处理器或控制器,所述一个或多个处理器或控制器执行存储在一个或多个存储器装置204和/或一个或多个大容量存储装置208中的指令。一个或多个处理器202还可包括各种类型的计算机可读介质,诸如高速缓存存储器。

一个或多个存储器装置204包括各种计算机可读介质,诸如易失性存储器(例如,随机存取存储器(randomaccessmemory,ram)214)和/或非易失性存储器(例如,只读存储器(read-onlymemory,rom)216)。一个或多个存储器装置204还可包括可重写rom,诸如闪存器。

一个或多个大容量存储装置208包括各种计算机可读介质,诸如磁带、磁盘、光盘、固态存储器(例如,闪存器)等。如图2所示,特定大容量存储装置是硬盘驱动器224。各种驱动器也可包括在一个或多个大容量存储装置208中,以使得能够从各种计算机可读介质进行读取和/或写入各种计算机可读介质。一个或多个大容量存储装置208包括可移动介质226和/或不可移动介质。

一个或多个i/o装置210包括允许向计算装置200输入或从计算装置200检索数据和/或其他信息的各种装置。一个或多个示例性i/o装置210包括光标控制装置、键盘、小键盘、麦克风、监视器或其他显示装置、扬声器、打印机、网络接口卡、调制解调器、镜头、ccd或其他图像捕获装置等。

显示装置230包括能够向计算装置200的一个或多个用户显示信息的任何类型的装置。显示装置230的示例包括监视器、显示终端、视频投影装置等。

一个或多个接口206包括允许计算装置200与其他系统、装置或计算环境进行交互的各种接口。一个或多个示例性接口206包括任何数量的不同网络接口220,诸如通向局域网(localareanetwork,lan)、广域网(wideareanetwork,wan)、无线网络和互联网的接口。一个或多个其他接口包括用户接口218和外围装置接口222。一个或多个接口206还可包括一个或多个外围接口,诸如用于打印机、指向装置(鼠标、跟踪板等)、键盘等的接口。

总线212允许一个或多个处理器202、一个或多个存储器装置204、一个或多个接口206、一个或多个大容量存储装置208、一个或多个i/o装置210以及显示装置230彼此通信,以及与耦接到总线212的其他装置或组件进行通信。总线212表示诸如系统总线、pci总线、ieee1394总线、usb总线等若干类型的总线结构中的一者或多者。

出于说明目的,程序和其他可执行程序组件在本文中示出为离散块,但应理解,此类程序和组件可在各种时间驻留在计算装置200的不同存储组件中,且由一个或多个处理器202执行。替代地,本文所述的系统和程序可在硬件或者硬件、软件和/或固件的组合中实现。例如,一个或多个专用集成电路(applicationspecificintegratedcircuit,asic)可被编程为进行本文所述系统和程序中的一者或多者。

参考图3,虽然取得了一定程度的成功,但使用由车辆摄像机捕获的视频来训练机器学习模型的现有方法遇到了复合错误的问题。使用大视频训练组和由人类驾驶员产生的对应驾驶命令,网络成功地正确预测用于类似于训练组中的那些的情况的驾驶命令。然而,当给予机器学习模型对车辆的控制时,机器学习模型产生的预测中的小错误最终可能导致其进入训练组中未表示的状态,例如,在路肩上行驶。由于机器学习模型未被训练来处理此类情形,因此它很难恢复。此问题限制了此类基于行为克隆的方法的适用性。

图3所示的架构300提供减少复合错误的影响的基于图像的机器学习的改进方法。架构300获得图像流302作为输入。图像流302可包括安装到一个或多个车辆且使车辆外部在其视野中的一个或多个摄像机106a的输出。图像流302可输入到控制发生器304。控制发生器304可以是机器学习模型,诸如深度神经网络(deepneuralnetwork,dnn)、卷积神经网络或者其他类型的神经网络或机器学习方法。

控制发生器304可根据本领域已知的任何方法使用捕获的控制输入和视频数据来训练,所述捕获的控制输入和视频数据诸如来自人类驾驶员的对车辆的控制输入以及安装到车辆的摄像机的同时捕获的视频。特别地,控制发生器304被训练为针对来自图像流302的一组给定图像产生一个或多个控制输出。例如,一组n个连续图像,其中n是大于一的整数,并且可以是大约10至30个图像。控制输出可以是通向致动器112中的任一个的命令。

控制发生器304的控制输出可连同图像流一起输入到图像预测器306。例如,针对用于生成控制输入的n个连续图像,可将那些相同的n个图像和控制输入作为输入数据组输入到图像预测器。替代地,输入到图像预测器306的n个图像可从用于形成控制输入的n个图像偏移,以考虑控制输入对图像流的影响的延迟。

图像预测器306是机器学习模型,其被训练为获得来自图像流的一组连续图像作为输入,并且预测紧跟在一组连续图像之后的图像将在图像流中的位置。图像的数量可以是n,其中n是大于一的整数且可以是大约10到30。n可等于或不同于用于生成控制输入的n的值。

深度学习的近期工作已证明,可基于在以动作为条件的先前帧中观察到的运动来准确地预测未来的视频帧。因此,这些方法中的任一种都可用于训练图像预测器306。用于训练图像预测器306的图像流可与用于训练控制发生器304的图像流相同或不同。

图像预测器306的预测图像和针对其生成预测图像的一组连续图像可输入到图像鉴别器308。图像鉴别器308输出两个值中的一个,其中一个值(例如,0)指示预测图像不令人满意或不准确,而另一值(例如,1)指示预测图像令人满意或准确。下文参考图5描述训练图像鉴别器的方式。

可将图像鉴别器308的输出反馈回控制发生器304。特别地,由于预测图像部分地基于来自控制发生器的控制输入,因此产生令人满意的预测图像的控制输入是积极结果,而不产生令人满意的预测图像的控制输入是消极结果。因此,可使用每个控制输入和图像鉴别器308的对应输出来进一步训练控制发生器304。

作为此过程的结果,控制发生器304被训练为产生足以“欺骗”图像鉴别器308的控制输入,所述图像鉴别器308被训练为区分图像流中的实际图像和图像流中的错误图像,如下所述。当控制发生器304被训练为产生图像鉴别器308感到满意的预测图像时,控制发生器304学习产生命令,所述命令将产生训练数据组(即来自车辆摄像机的图像流)中所表示的未来状态。这将有助于确保在控制汽车时,控制发生器不会将车辆驱动到不再能够进行准确预测的区域,从而减少或消除“复合错误”问题。

一旦经过训练,控制发生器304可被部署在实际车辆上,以基于一个或多个摄像机106a的实况视频输出来产生对汽车的致动器112的控制命令。

图4示出用于训练图像预测器306的方法400。方法400可包括从车辆摄像机106a接收402图像m流。

从初始值i开始,其中i是图像流内的图像的索引,方法400可包括从图像流中选择404一组n个连续图像m(i)至m(i+n-1)作为训练数据组的训练数据输入。初始值i可被选择为零,或者可被选择为某个其他值,即,使得图像流的多个初始帧被忽略。选择n的值使得存在足够数量的帧。例如,n可以是5与30之间的值。在一些情况下,n的值为10-15就足够了。n的值可取决于图像流的帧率。例如,在更快的帧率下,更多图像与预测图像的生成相关。对于更慢的帧率来说,选择更多图像提供更小的益处,因为最早的图像在时间上将距最后的图像更远,因此与预测图像不相关。

方法400可包括选择406图像m(i)至m(i+n-1)的对应车辆控制。车辆控制可包括驾驶员输入以及描述在接收图像m(i)至m(i+n-1)的时间段期间车辆的状态的一个或多个变量。例如,车辆控制可包括转向角输入、制动输入、加速器输入以及诸如平移速度、加速度、横摆角速度、横摆角加速度、俯仰角速度、俯仰角加速度、侧倾角速度等中的一些或全部的状态变量,所述状态变量是由捕获图像流的车辆的车载传感器所测量的。车辆控制可具有车辆控制器接收时间,其与图像m(i)至m(i+n-1)的接收时间相同或不同,以考虑对驾驶员输入的处理和车辆响应的延迟。图像预测器306被训练为基于过去图像和车辆控制来预测下一图像。因此,车辆控制可包括所具有的接收时间最紧密对应于图像集的最后图像(m(i+n+1)的接收时间且在所述接收时间之前的车辆控制的值,以便考虑不相等的采样率和处理延迟。

方法400可包括选择408图像m(i+n)作为训练数据组的训练数据输出。以此方式,图像预测器306被训练为基于车辆控制和过去图像来生成预测图像。在一些实施例中,图像预测器306可被训练为生成多个预测图像。因此,可选择408图像m(i+n)到m(i+n+a)作为训练数据输出,其中a是大于一的值。一般来说,可准确地预测最多两到三个图像。然而,在足够数量的训练数据组和计算能力的情况下,可生成更多预测图像。

方法400可包括估计410i是否大于或等于最大值max,即,图像流中是否存在足够的剩余图像帧来生成另一训练数据组。例如,max可等于图像流中的帧数减去n+1。

如果i小于或等于max,则i可进行递增412。例如,i可在每次迭代时递增1。在其他实施例中,可使用更大的增量值,诸如从2至n的值。增量值的大小可取决于可用图像流的量。例如,可通过使用更大的增量大小来获得更多样化的训练数据组,但需要更长和更多的图像流来生成足够的训练数据组。然后,处理可在步骤404处继续。

如果i的值并非小于或等于max,则方法400可继续到步骤414,其中使用训练数据组训练414机器学习模型。特别地,每个训练数据组的输入包括图像m(i)至m(i+n-1)和车辆控制,并且每个训练数据组的期望输出是图像m(i+n)。所使用的机器学习模型可根据本领域中已知的任何机器学习方法。诸如深度神经网络(dnn)或卷积神经网络(convolutionneuralnetwork,cnn)的神经网络特别适合用作机器学习模型。

在一些实施例中,图像预测器306可用多个图像流来训练,这些图像流可来自多个车辆且对应于任何一个车辆中的多次行程。因此,可针对这些图像流中的每一个重复步骤402-412,直到获得足够数量的训练数据组。例如,训练数据组的数量可以是大约数千或数百万。

图5示出用于训练图像鉴别器308的方法500。方法500可包括从车辆摄像机106a接收502图像m流。所使用的图像流可包括用于根据方法400训练图像预测器306的相同的一个或多个图像流。

从初始值i开始,其中i是图像流内图像的索引,方法500可包括从图像流中选择504一组p个连续图像m(i)到m(i+p-1)作为训练数据组的训练数据输入。初始值i可被选择为零,或者可被选择为某个其他值,即,使得图像流的多个初始帧被忽略。选择p的值使得存在足够数量的帧。例如,n可以是5与30之间的值。在一些情况下,p的值为10-15就足够了。p的值可取决于图像流的帧率。例如,在更快的帧率下,更多图像与预测图像的生成相关。对于更慢的帧率来说,选择更多图像提供更小的益处,因为最早的图像在时间上将距最后的图像更远,因此与预测图像不相关。p的值可与用于方法400的n的值相同或不同。

方法500可包括选择506图像m(i+p)作为训练数据组的积极训练数据输出。在一些实施例中,图像鉴别器308可被训练为表征多个预测图像。因此,可选择506图像m(i+p)至m(i+n+b)作为训练数据输出,其中b是大于一的值。b的值可与方法400中的a的值相同。

方法500可包括估计508i是否大于或等于最大值max,即,图像流中是否存在足够的剩余图像帧来生成另一训练数据组。例如,max可等于图像流中的帧数减去p+1。

如果i小于或等于max,则i可进行递增510。例如,i可在每次迭代时递增1。在其他实施例中,可使用更大的增量值,诸如从2至p的值。增量值的大小可取决于可用图像流的量。例如,可通过使用更大的增量大小来获得更多样化的训练数据组,但需要更长和更多的图像流来生成足够的训练数据组。然后,处理可在步骤504处继续。

如果i并不小于或等于max,则处理在步骤512处以产生多个消极训练数据组继续,所述多个消极训练数据组各自指示特定输入图像组的不正确输出。用于生成消极训练数据组的图像流可与用于根据步骤502-510生成积极训练数据组的图像流相同或不同。

例如,从初始值i(例如0或某个其他值)开始,方法500可包括以与步骤504相同的方式并且可能地从相同的一个或多个图像流为训练数据组选择512一组p个图像m(i)至m(i+p-1)。

然而,可选择图像m(j)作为图像m(i)至m(i+p-1)的训练数据组的输出,其中j不等于i+p。例如,j可被选择为i+p+x,其中x是正整数或负整数,使得abs(x)大于或等于1。在一些实施例中,abs(x)大于或等于2。在一些实施例中,x选择为受诸如1<abs(x)<q的一些约束限制的随机正或负整数。q可被选择成用户期望的任何值。例如,介于3与20之间的值。在一些实施例中,仅使用x的正值,使得仅准许在图像帧中向前跳过。

为步骤514选择的消极输出优选地使得鉴别器308将被训练为识别图像预测器306的输出中的细微错误。因此,x的值优选地通常被选择成小值(例如,1或者2),以便生成仅略微不正确的消极输出。在一些情况下,诸如在车辆停止的情况下,许多顺序图像可基本上完全相同。因此,步骤512处选择的图像可被约束为与一组图像中的最后的图像m(i+p-1)相差阈值量,诸如使用平均像素差或图像之间的一些其他指标的差。因此,在未满足此阈值的情况下,可在图像流中进一步向前或进一步向后选择消极训练数据输出,直到满足所述差,或者可省略该组图像m(i)至m(i+p-1))的训练数据的生成。

如果发现516i的值小于或等于max,则诸如上文关于步骤510所述地递增518i,并且处理在步骤512处继续。在一些实施例中,步骤516的max的值大于步骤508的值,诸如为max+x。

如果发现516i的值大于max,则方法500可继续到步骤520,其中使用积极训练数据组和消极训练数据组来训练520机器学习模型。特别地,每个训练数据组的输入包括图像m(i)至m(i+p-1),以及作为期望输出的图像m(i+p)或者作为消极结果的图像m(j)。在步骤520处所使用的机器学习模型可根据本领域中已知的任何机器学习方法。机器学习模型可以是生成对抗网络(generativeadversarialnetwork,gan)。诸如深度神经网络(dnn)或卷积神经网络(cnn)的神经网络也可适合用作机器学习模型。

如同对于方法400,图像鉴别器308可用多个图像流来训练,所述多个图像流可来自多个车辆并且对应于任何一个车辆中的多次行程。因此,可针对这些图像流中的每一个重复步骤502-518,直到获得足够数量的训练数据组。例如,训练数据组的数量可以是大约数千或数百万。

用于生成训练数据组的所示方法500仅是示例性的。在上述方法中,每个图像流被处理两次以生成积极训练数据组和消极训练数据组。在替代方法中,针对积极训练数据组和消极训练数据组使用单独的图像流。在另一方法中,从相同的图像流、例如针对一组特定的p个图像随机地选择积极训练数据组和消极训练数据组,可在递增通过一个或多个图像流时随机地确定选择后续图像作为正期望输出还是选择非顺序图像作为消极输出。

图6示出用于使用根据方法400和500所训练的图像预测器306和图像鉴别器308来训练控制发生器304的方法600。可根据常规的基于图像的训练方法在执行方法600之前初始化或创建控制发生器304。在其他实施例中,在执行方法600之前,控制发生器304最初未被训练。

方法600可包括从图像流中选择602一组n个图像m(i)至m(i+n-1),所述图像流可以是与用于方法400和500相同的图像流或相同的图像流之一。如同对于方法400和500,i的值可被选择成为零或某个其他值的初始值。n的值可与方法400的n的值相同或不同。

方法600可包括以与方法400的步骤406相同的方式选择604对应于图像m(i)至m(i+n-1)的车辆控制。方法600训练控制发生器304以输出对应于一组给定输入图像的车辆控制。因此,可以与方法400的步骤406相同的方式针对图像m(i+n)选择车辆控制。特别地,可选择604在图像m(i+n)的接收时间之前且与其最接近时接收到的车辆控制,其中对处理中的延迟或车辆控制的效果的调整将反映在车辆摄像机的图像输出中。

方法600可包括用控制发生器304生成606控制输出。特别地,可将图像m(i)和m(i+n-1)输入到控制发生器,然后控制发生器基于图像来输出控制输出。在一些实施例中,对应于图像m(i)和m(i+n-1)的车辆控制也可与图像一起输入。来自步骤606的控制输出可以是将在时间上对应于最后图像m(i+n-1)的控制输出。控制输出可包括转向角输出、制动输出和加速度输出中的一些或全部。

然后可将步骤606的控制输出和一组图像m(i)至m(i+n-1)输入608到图像预测器306,然后图像预测器306输出预测图像。然后可将一组图像m(i)至m(i+n-1)输入610到图像鉴别器308,所述图形鉴别器308产生输出。输出是指示预测图像准确的第一值(例如,1),或者是指示预测图像不准确的第二值(例如,0)。

方法600还可包括计算612来自步骤606的控制输出与来自步骤604的对应于一组图像m(i)至m(i+1)的实际车辆控制之间的差。换句话说,在步骤612处估计控制发生器304模仿人类操作员的控制输入的能力。步骤612的输出是随实际车辆控制与控制输出之间的差增大的值。如上所述,来自控制发生器304的车辆控制和控制输出可包括多个控制,诸如转向控制、制动控制和加速控制。因此,步骤612处的差可包括这些控制中的每一个的单独差值,或者作为这些控制中的每一个的差的聚合的单个值,诸如绝对值的和或这些差的绝对值的加权和。也可使用任何其他聚合函数,诸如rms(均方根)或某个其他函数。

然后可生成614损失函数值,所述损失函数是从步骤612输出的差和来自步骤610的鉴别器的输出的大小的函数。特别地,损失函数值随着从步骤612输出的差并且在鉴别器的输出是指示不正确的预测图像的值时增大。例如,这些值可根据预先确定的函数来调整、缩放和求和,所述预先确定的函数随着来自步骤612的差的增大并且在鉴别器指示预测图像不准确时提供期望的增大。

然后可将来自步骤614的损失函数值反馈回616控制发生器304。损失函数向控制发生器304指示步骤606的控制输出的精确程度。因此,用于训练控制发生器的机器学习模型可将此用作训练数据以改进控制发生器304的准确度并且通过方法600的多次迭代减小损失函数值。

然后,方法600可以从图像流选择602另一组图像进行重复。如同对于本文所公开的其他方法,可使用来自相同或不同车辆的多个图像流。因此,方法600可进行重复直到已处理多个图像流。如同对于方法400和600,对于初始迭代之后的每次迭代,图像流的每次迭代中的i的值可递增1或某个其他值,诸如n。

应注意,方法600和方法500可同时执行,使得控制发生器304和图像鉴别器308同时被训练和使用。

在上述公开内容中,已经对附图作出参考,所述附图形成本文的一部分,并且在附图中以图解方式示出可实践本公开的具体实施方式。应理解,可利用其他实施方式且可在不脱离本公开的范围的情况下作出结构改变。说明书中对“一个实施例”、“实施例”、“示例性实施例”等的引用指示所述的实施例可包括特定特征、结构或特性,但每一个实施例可能不一定包括特定特征、结构或特性。此外,此类短语不一定指代相同实施例。此外,当关于实施例描述特定特定特征、结构或特性时,应视为无论明确描述与否,用其他实施例影响这样的特征、结构或特性在本领域技术人员的认识之内。

本文所公开的系统、装置和方法的实施方式可包括或利用包括计算机硬件的专用或通用计算机,所述计算机硬件诸如像一个或多个处理器和系统存储器,如本文所论述。在本公开的范围内的实施方式还可包括物理或其他计算机可读介质,用于携载或存储计算机可执行指令和/或数据结构。此类计算机可读介质可以是由通用或专用计算机系统存取的任何可用介质。存储计算机可执行指令的计算机可读介质是计算机存储介质(装置)。携载计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本公开的实施方式可包括两种明显不同种类的计算机可读介质:计算机存储介质(装置)和传输介质。

计算机存储介质(装置)包括ram、rom、eeprom、cd-rom、固态驱动器(“solidstatedrive,ssd”)(例如,基于ram)、闪存器、相变存储器(“phase-changememory,pcm”)、其他类型的存储器、其他光盘存储装置、磁盘存储装置或其他磁存储装置或者可用于以计算机可执行指令或数据结构的形式存储期望程序代码手段且可由通用或专用计算机存取的任何其他介质。

本文所公开的装置、系统和方法的实施方式可通过计算机网络进行通信。“网络”定义为使得能够在计算机系统和/或模块和/或其他电子装置之间传送电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线或者硬连线或无线的组合)而传输或提供给计算机时,计算机将连接适当地视为传输介质。传输介质可包括网络和/或数据链路,所述网络和/或数据链路可用于携载呈计算机可执行指令或数据结构的形式的期望的程序代码手段且可由通用或专用计算机进行访问。上述的组合也应包括在计算机可读介质的范围内。

计算机可执行指令包括例如指令和数据,所述指令和数据在处理器处被执行时致使通用计算机、专用计算机或专用处理装置执行特定功能或功能组。计算机可执行指令可以是例如二进制中间格式的指令,诸如汇编语言或甚至源代码。虽然已经以特定于结构特征和方法论动作的语言描述了主题,但应理解,随附权利要求中所定义的主题不一定受限于所述的特种或上述的动作。而是,所述特征和动作被公开为实施权利要求的示例性形式。

本领域技术人员应了解,本公开可在具有许多类型的计算机系统配置的网络计算环境中实践,所述计算机系统配置包括内置式车辆计算机、个人计算机、台式计算机、膝上型计算机、消息处理器、手持式装置、多处理器系统、基于微处理器的或可编程的消费电子器件、网络pc、小型计算机、大型计算机、移动电话、pda、平板计算机、寻呼机、路由器、交换机、各种存储装置等。本公开还可在分布式系统环境中实践,其中通过网络链接(通过硬连线数据链路、无线数据链路,或者通过硬连线数据链路和无线数据链路的组合)的本地计算机系统和远程计算机系统都执行任务。在分布式系统环境中,程序模块可位于本地存储器存储装置和远程存储器存储装置两者中。

此外,在适当的情况下,本文所述的功能可在以下中的一者或多者中执行:硬件、软件、固件、数字组件或模拟组建。例如,一个或多个专用集成电路(asic)可被编程为实施本文所述的系统和程序中的一者或多者。某些术语贯穿说明书和权利要求使用来指代特定系统组件。如本领域技术人员应了解,组件可由不同名称进行指代。本文献并不意图在名称上而非功能上不同的组件之间进行区分。

应注意,上文所论述的传感器实施例可包括计算机硬件、软件、固件或者它们的组合以执行它们的功能的至少一部分。例如,传感器可包括被配置为在一个或多个处理器中执行的计算机代码,并且可包括受计算机代码控制的硬件逻辑/电路。这些示例性装置在本文中出于说明的目的进行提供,而不意图是限制性的。本公开的实施例可在其他类型的装置中进行实施,如一个或多个相关领域的技术人员所知晓的。

本公开的至少一些实施例已针对包括存储在任何计算机可用介质上的此类逻辑(例如,呈软件的形式)的计算机程序产品。此类软件在一个或多个数据处理装置中被执行时致使装置如本文所述地操作。

虽然上文已经描述了本公开的各种实施例,但应理解,它们仅作为示例而非限制进行呈现。本领域技术人员将显而易见,可在不脱离本公开的精神和范围的情况下在形式和细节上从中作出各种改变。因此,本公开的广度和范围不应受到上述示例性实施例中任一个的限制,而应仅根据随附权利要求及其等效形式进行定义。已经出于说明和描述的目的呈现了前述描述。并不意图是详尽的,或者将本公开限于所公开的精确形式。鉴于以上教导,许多修改形式和变化形式是可能的。此外,应注意,前述替代实施方式中的任一个或全部可以期望的任何组合来使用,以形成本公开的附加混合实施方式。

根据本发明,一种方法包括由计算装置:将多组图像以及每组图像的对应控制输入输入到图像预测器;将所述多组图像和每组图像的来自所述图像预测器的预测图像输入到鉴别器中;以及根据每个组的来自所述鉴别器的输出进一步训练控制发生器。

根据一个实施例,所述一组图像是来自安装到车辆的摄像机的输出的一组连续图像。

根据一个实施例,上述发明的特征还在于,每个组的来自所述鉴别器的所述输出是两个值中的一个,所述两个值中的第一个指示积极结果,而所述两个值中的第二个指示消极结果。

根据一个实施例,每组图像的所述对应控制输入是转向角。

根据一个实施例,每组图像的所述对应控制输入是转向角、加速度输入和制动输入中的至少一者。

根据一个实施例,所述图像预测器、所述鉴别器和所述控制发生器均是深度神经网络模型。

根据一个实施例,所述图像预测器、所述鉴别器和所述控制发生器均是卷积神经网络模型。

根据本发明,提供一种系统,所述系统具有一个或多个处理装置以及可操作地耦接到所述一个或多个处理装置的一个或多个存储器装置,所述一个或多个存储器装置存储可执行代码,所述可执行代码有效地致使所述一个或多个处理装置:将多组图像以及每组图像的对应控制输入输入到图像预测器;将所述多组图像和每组图像的来自所述图像预测器的预测图像输入到鉴别器中;并且根据所述多组图像、每个组的所述对应控制输入以及每个组的来自所述鉴别器的输出进一步训练控制发生器。

根据一个实施例,所述一组图像是来自安装到车辆的摄像机的输出的一组连续图像。

根据一个实施例,每个组的来自所述鉴别器的所述输出是两个值中的一个,所述两个值中的第一个指示积极结果,而所述两个值中的第二个指示消极结果。

根据一个实施例,每组图像的所述对应控制输入是转向角。

根据一个实施例,每组图像的所述对应控制输入是转向角、加速度输入和制动输入中的至少一者。

根据一个实施例,所述图像预测器、所述鉴别器和所述控制发生器均是深度神经网络模型。

根据一个实施例,所述图像预测器、所述鉴别器和所述控制发生器均是卷积神经网络模型。

根据本发明,一种方法包括由计算装置:从安装到第一车辆的第一摄像机接收第一图像流,所述第一图像流在第一时间段捕获;接收用于所述车辆的第一控制输入流,所述第一控制输入流在所述第一时间段期间捕获;生成第一训练数据组,每个训练数据组包括:来自所述第一图像流的n个连续图像,其中n是大于一的整数;来自在时间上对应于所述第一图像流的所述第一控制输入流的一个或多个控制输入;以及紧跟在所述每个训练数据组的所述第一图像流中的所述n个连续图像之后的图像;使用所述第一训练数据组来训练图像预测器;生成第二训练数据组,每个训练数据组包括:来自第二图像流的p个连续图像,其中p处于等于和不等于n中的一种情况,所述第二图像流与所述第一图像流相同或不同;处于以下情况中的一种情况的图像:(a)不是紧跟在所述每个训练数据组的所述第二图像流中的所述n个连续图像之后的图像,和(b)是紧跟在所述每个训练数据组的所述第二图像流中的所述p个连续图像之后的图像;以及如果(a)为真则为第一值而如果(b)为真则为第二值的期望输出;以及根据所述第二训练数据组训练图像鉴别器;以及使用所述图像鉴别器的输出来训练控制发生器。

根据一个实施例,上述发明的特征还在于,训练所述控制发生器包括:接收是所述第一图像流、所述第二图像流以及与所述第一图像流和所述第二图像流不同的图像流中的一者的第三图像流;针对所述第三图像流中的每组n个连续图像,生成对应估计控制输入;将来自所述第三图像流的每组n个连续图像和对应于来自所述第三图像流的所述每组n个连续图像的所述估计控制输入输入到所述图像预测器中,以获得来自所述第三图像流的所述每组n个连续图像的预测图像;将来自所述第三图像流的每组n个连续图像和来自所述第三图像流的所述每组n个连续图像的所述预测图像输入到所述图像鉴别器中,以获得来自所述第三图像流的所述每组n个连续图像的鉴别器输出;以及使用来自所述第三图像流的每组n个连续图像的所述鉴别器输出进一步训练所述控制发生器。

在一些实施例中,上述发明的特征还在于使用所述鉴别器输出训练所述控制发生器,使用所述鉴别器输出训练所述控制发生器包括:针对每组n个连续图像,生成损失函数值,所述损失函数值在所述鉴别器输出是所述第一值时增大,并且随着所述估计控制输入与对应于所述每组n个连续图像的来自所述第一控制输入流的一个或多个控制输入之间的差的量值增大;以及训练所述控制发生器以减小所述损失函数值。

根据一个实施例,来自所述第三图像流的每个图像组的所述对应控制输入是转向角、加速度输入和制动输入中的至少一者。

根据一个实施例,所述图像预测器、所述图像鉴别器和所述控制发生器均是深度神经网络模型。

根据一个实施例,所述图像预测器、所述图像鉴别器和所述控制发生器均是卷积神经网络模型。

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