车辆胶囊网络的制作方法

文档序号:21837824发布日期:2020-08-14 16:13阅读:158来源:国知局
车辆胶囊网络的制作方法

本公开总体上涉及车辆传感器。



背景技术:

车辆可以被配备成以自主模式和乘员驾驶模式两者操作。车辆可以配备有计算装置、网络、传感器和控制器以获取关于车辆环境的信息并且基于所述信息来操作车辆。车辆的安全且舒适的操作可以取决于获取关于车辆环境的准确且及时的信息。车辆传感器可以提供关于在车辆环境中要行驶的路线和要避开的对象的数据。车辆的安全且有效的操作可以取决于当车辆在道路上操作时获取关于在车辆环境中的路线和对象的准确且及时的信息。



技术实现要素:

车辆可以被配备成以自主模式和乘员驾驶模式两者操作。就半自主或完全自主模式而言,意指其中车辆可以由计算装置部分或完全进行驾驶的操作模式,所述计算装置作为具有传感器和控制器的信息系统的一部分。所述车辆可以被占用或者未被占用,但在任一情况下,可以在没有乘员辅助的情况下部分或完全地驾驶车辆。出于本公开的目的,自主模式被定义为其中车辆推进(例如,经由包括内燃发动机和/或电动马达的动力传动系统)、制动和转向中的每一者由一个或多个车辆计算机控制的模式;在半自主模式中,一个或多个车辆计算机控制车辆推进、制动和转向中的一者或两者。在非自主车辆中,这些都不由计算机控制。

在自主或半自主模式下,在车辆中的计算装置可以被编程为获取关于车辆的外部环境的信息并使用所述信息来确定车辆路径,基于车辆的路径在路径上操作车辆。车辆路径是描述车辆在平行于车辆在其上操作的道路表面的二维(2d)平面上的连续位置(即,不同时间的位置)的直线或曲线。基于车辆路径通过确定命令以引导车辆的动力传动系统、制动和转向部件操作车辆以沿着路径移动,车辆可以在道路上操作。关于外部环境的信息可以包括被跟踪对象在全局坐标中的位置。示例性被跟踪对象可以是另一车辆。所述信息可以从交通信息系统接收,并且可以基于利用胶囊网络处理固定摄像机数据。

本文公开了一种方法,其包括通过利用胶囊网络处理摄像机数据来检测、分类和定位对象,其中训练胶囊网络包括保存路由系数以及在计算装置处接收检测到的、分类的和定位的对象。所述胶囊网络可以包括神经网络,其中胶囊层之间的数据聚合基于确定对应于胶囊层之间的路线的路由系数。可以通过基于基于第一训练数据集的训练之后的相关性或聚类中的一者或多者将路线分组来确定路由系数,其中路线将胶囊层中确定的元素与后续胶囊层中的位置相连接。路由系数可以通过并行阵列处理来确定。

训练胶囊网络可以包括基于第二训练数据集和保存的路由系数重新训练胶囊网络。可以基于接收到检测到的、分类的和定位的对象来操作车辆。可以基于接收到检测到的、分类的和定位的对象来操作车辆包括确定对象在全局坐标中的预测位置。交通信息可以基于接收到检测到的、分类的和定位的对象。可以利用包括在交通基础设施系统中的固定摄像机和包括在车辆和无人机中的一者或多者中的移动摄像机中的一者或多者来获取摄像机数据。可以在全局坐标中测量车辆的位置和对象的位置。全局坐标可以是纬度、经度和海拔。可以基于检测到的、分类的和定位的对象来操作车辆。操作车辆可以包括控制车辆动力传动系统、车辆转向和车辆制动器中的一者或多者。操作车辆可以包括确定车辆路径。

还公开了一种计算机可读介质,所述计算机可读介质存储用于执行以上方法步骤中的一些或全部的程序指令。还公开了一种计算机,其被编程为执行以上方法步骤中的一些或全部,所述计算机包括计算机设备,所述计算机设备被编程为通过利用胶囊网络处理摄像机数据来检测、分类和定位对象,其中训练胶囊网络包括保存路由系数以及在计算装置处接收检测到的、分类的和定位的对象。所述胶囊网络可以包括神经网络,其中胶囊层之间的数据聚合基于确定对应于胶囊层之间的路线的路由系数。可以通过基于基于第一训练数据集的训练之后的相关性或聚类中的一者或多者将路线分组来确定路由系数,其中路线将胶囊层中确定的元素与后续胶囊层中的位置相连接。路由系数可以通过并行阵列处理来确定。

所述计算机设备还可以被编程为训练胶囊网络,包括基于第二训练数据集和保存的路由系数重新训练胶囊网络。可以基于接收到检测到的、分类的和定位的对象来操作车辆。可以基于接收到检测到的、分类的和定位的对象来操作车辆包括确定对象在全局坐标中的预测位置。交通信息可以基于接收到检测到的、分类的和定位的对象。可以利用包括在交通基础设施系统中的固定摄像机和包括在车辆和无人机中的一者或多者中的移动摄像机中的一者或多者来获取摄像机数据。可以在全局坐标中测量车辆的位置和对象的位置。全局坐标可以是纬度、经度和海拔。可以基于检测到的、分类的和定位的对象来操作车辆。操作车辆可以包括控制车辆动力传动系统、车辆转向和车辆制动器中的一者或多者。操作车辆可以包括确定车辆路径。

附图说明

图1是示例性交通基础设施系统的框图。

图2是具有固定相机的示例性交通场景的图。

图3是示例性胶囊网络的图。

图4是示例性路由算法的流程图。

图5是示例性主路由系数矩阵的图。

图6是示例性主路由系数矩阵的另一图。

图7是示例性主路由系数矩阵的另一图。

图8是确定对象位置并将它们下载到车辆的过程的流程图。

具体实施方式

图1是交通基础设施系统100的图,所述交通基础设施系统100包括可以自主(“自主”本身在本公开中意指“完全自主”)模式、半自主模式和乘员驾驶(也称为非自主)模式操作的车辆110。一个或多个车辆110计算装置115可以从传感器116接收关于车辆110操作的信息。计算装置115可以以自主模式、半自主模式或非自主模式来操作车辆110。

计算装置115包括诸如已知的处理器和存储器。此外,存储器包括一种或多种形式的计算机可读介质,并存储可由处理器执行的用于进行各种操作的指令,所述各种操作包括如本文所公开的。例如,计算装置115可以包括编程以操作车辆制动、推进(例如,通过控制内燃发动机、电动马达、混合动力发动机等中的一者或多者来控制车辆110的加速度)、转向、气候控制、内灯和/或外灯等中的一者或多者,以及确定计算装置115(而不是人类操作员)是否以及何时控制此类操作。

计算装置115可以包括多于一个计算装置(例如,包括在车辆110中以用于监测和/或控制各种车辆部件的控制器等,例如,动力传动系统控制器112、制动控制器113、转向控制器114等),或例如经由如下文进一步描述的车辆通信总线通信地耦接到所述多于一个计算装置。计算装置115一般被布置为用于通过车辆通信网络(例如,包括车辆110中的总线,诸如控制器局域网(can)等)通信;车辆110网络可以另外或替代地包括诸如已知的有线或无线通信机制,例如以太网或其他通信协议。

计算装置115可以经由车辆网络向车辆中的各种装置(例如,控制器、致动器、传感器(包括传感器116)等))传输消息和/或从所述各种装置接收消息。替代地或另外,在计算装置115实际上包括多个装置的情况下,可以使用车辆通信网络以用于在本公开中表示为计算装置115的装置之间的通信。此外,如下所述,各种控制器或感测元件(诸如传感器116)可以经由车辆通信网络向计算装置115提供数据。

另外,计算装置115可以被配置为用于经由网络130通过车辆对基础设施(v-对-i)接口111与远程服务器计算机120(例如,云服务器)进行通信,如下所述,所述接口包括允许计算装置115经由诸如无线互联网(wi-fi)或蜂窝网络的网络130与远程服务器计算机120通信的硬件、固件和软件。因此,v-对-i接口111可以包括被配置成利用各种有线和/或无线联网技术(例如,蜂窝网络、网络和有线和/或无线分组网络)的处理器、存储器、收发器等。计算装置115可以被配置为用于使用例如在附近车辆110间在移动自组网的基础上形成或通过基于基础设施的网络形成的车辆对车辆(v-对-v)网络(例如,根据专用短距离通信(dsrc)和/或类似的通信)通过v-对-i接口111与其他车辆110通信。计算装置115还包括诸如已知的非易失性存储器。计算装置115可以通过将信息存储在非易失性存储器中来记录信息,以用于稍后经由车辆通信网络和与服务器计算机120或用户移动装置160的车辆对基础设施(v-对-i)接口111来进行检索和传输。

如已经提及的,通常包括在存储在存储器中并可由计算装置115的处理器执行的指令中的是用于在没有人类操作员干预的情况下操作一个或多个车辆110部件(例如,制动、转向、推进等)的编程。使用在计算装置115中接收的数据(例如,来自传感器116、服务器计算机120等的传感器数据),计算装置115可以在没有驾驶员的情况下作出各种确定和/或控制各种车辆110部件和/或操作以操作车辆110。例如,计算装置115可以包括编程来调节车辆110操作行为(即,车辆110操作的物理表现),诸如速度、加速度、减速度、转向等,以及策略性行为(即,典型地以预期实现路线的安全且有效的行驶的方式进行的操作行为控制),诸如车辆之间的距离和/或车辆之间的时间量、车道改变、车辆之间的最小间隙、左转跨过路径最小值、在特定位置处的到达时间和为了通过十字路口的十字路口(无信号灯)最小到达时间。

控制器(如该术语在本文中所使用的)包括典型地被编程以控制特定车辆子系统的计算装置。示例包括动力传动系统控制器112、制动控制器113和转向控制器114。控制器可以是诸如已知的电子控制单元(ecu),可能包括如本文所述的另外的编程。控制器可以通信地连接到计算装置115并从计算装置115接收指令以根据指令致动子系统。例如,制动控制器113可以从计算装置115接收指令以操作车辆110的制动器。

用于车辆110的一个或多个控制器112、113、114可以包括已知的电子控制单元(ecu)等,作为非限制性示例,包括一个或多个动力传动系统控制器112、一个或多个制动控制器113和一个或多个转向控制器114。控制器112、113、114中的每一个可以包括相应的处理器和存储器以及一个或多个致动器。控制器112、113、114可以被编程并连接到车辆110通信总线(诸如控制器局域网(can)总线或本地互连网络(lin)总线)以从计算机115接收指令并且基于指令来控制致动器。

传感器116可以包括已知的各种装置以经由车辆通信总线提供数据。例如,固定到车辆110的前保险杠(未示出)的雷达可以提供从车辆110到车辆110前方的下一车辆的距离,或者设置在车辆110中的全球定位系统(gps)传感器可以提供车辆110的地理坐标。由雷达和/或其他传感器116提供的一个或多个距离和/或由gps传感器提供的地理坐标可以由计算装置115使用来例如自主地或半自主地操作车辆110。

车辆110通常是能够自主和/或半自主操作并且具有三个或更多个车轮的基于地面的车辆110(例如,客车、轻型卡车等)。车辆110包括一个或多个传感器116、v-对-i接口111、计算装置115和一个或多个控制器112、113、114。传感器116可以收集与车辆110和车辆110的操作环境相关的数据。以举例的方式但非限制,传感器116可以包括例如测高仪、相机、激光雷达、雷达、超声传感器、红外传感器、压力传感器、加速度计、陀螺仪、温度传感器、压力传感器、霍尔传感器、光学传感器、电压传感器、电流传感器、机械传感器(诸如开关)等。传感器116可以用于感测车辆110的操作环境,例如,传感器116可以检测诸如天气状况(降雨、外界环境温度等)的现象、道路坡度、道路位置(例如,使用道路边缘、车道标记等)或目标对象(诸如相邻车辆110)的位置。传感器116还可以用来收集数据,包括与车辆110的操作相关的动态车辆110数据(诸如速度、横摆率、转向角度、发动机转速、制动压力、油压、施加到车辆110中的控制器112、113、114的功率电平、部件之间的连接性以及车辆110的部件的准确且及时的性能)。

图2是交通场景200的图。交通场景200包括道路202,车辆204在道路202上操作。交通场景200还包括固定摄像机206。固定摄像机206可以安装在杆208或其他固定结构(包括建筑物)上,以向固定摄像机206提供视野210,视野210包括道路202的一部分并且通常不时地包括车辆204。固定摄像机206可以附接到杆208,以允许固定摄像机206相对于道路202保持基本不变的视野210。固定摄像机206可以被校准以确定视野210在全局坐标中的三维(3d)位置。全局坐标是基于诸如gps所使用的全局坐标系(例如,诸如纬度、经度和海拔)的位置值。通过确定视野210在全局坐标中的3d位置,可以确定在固定摄像机数据中的区域的全局坐标中的3d位置,例如,其中所述区域对应于对象。

可以通过获取包括在测量位置处具有测量特征的对象的固定摄像机图像来校准固定摄像机206。可以在固定摄像机图像中确定特征的大小,并使用投影几何学将其与现实世界中的特征的大小进行比较。投影几何学是一种通过测量图像数据中的位置的现实世界位置来确定对应于图像中的位置的现实世界位置来确定图像中的对象的现实世界位置和大小的技术。图像数据中的位置特征可以基于基于关于所测量的现实世界位置、视野208和包括在固定摄像机206中的透镜的放大率的信息的投影方程式来变换成全局坐标,以确定图像数据中的位置在全局坐标中的现实世界位置。

固定摄像机206可以包括在交通信息系统100中。交通信息系统100可以包括服务器计算机120,服务器计算机120被配置成获取固定摄像机数据并对其进行处理以跟踪对象并在全局坐标中定位被跟踪对象。交通信息系统100还可以基于车辆110的位置与车辆110通信。例如,交通信息系统100可以基于车辆110与固定摄像机206的接近度来与车辆110通信。例如,交通信息系统100可以确定关于可能在包括在车辆110中的传感器的视野外但在不久的将来可能被车辆110观察到的被跟踪对象的信息。

图3是示例性胶囊网络300的图,其可以被训练以基于摄像机数据来检测、分类和定位视野210中的对象。胶囊网络300是包括胶囊层c1304(c1)、c2308(c2)、c3312(c3)以及全连接层320(fc)的神经网络。胶囊网络300可以输入视频图像数据302,其中视频图像数据包括在以相等的时间间隔获取的视频帧的时间序列中获取的视频数据的帧。胶囊网络300按一次一个视频帧处理输入视频图像数据302。视频图像数据302的帧被输入到胶囊层c1304(c1)、c2308(c2)、c3312(c3)(统称为324)以用于处理。胶囊网络300被示出为具有三个胶囊层c1304、c2308、c3312,但是胶囊网络300可以具有更多或更少的胶囊层324。第一胶囊层304可以通过在输入数据上应用一系列卷积滤波器以确定特征来处理视频数据的帧。将特征从第一胶囊层304输出到随后的胶囊层308、312以进行处理,以通过创建包括相对于视频帧以及因此相对于视野210的位置、大小和取向的胶囊来识别特征、将特征分组并测量特征组的性质。

从胶囊层324输出的中间结果314被输入到路由层316(rl)。路由层316在训练胶囊网络300时使用,并且在训练和运行时将中间结果314传递到全连接层320上以进行进一步处理。路由层316基于奖励函数的反向传播在胶囊层324之间形成路由或连接,所述奖励函数的反向传播是基于与从全连接层320输出的状态变量322相比较的地面实况确定。地面实况是独立于从全连接层320输出的状态变量322确定的状态变量信息。例如,状态变量322对应于被跟踪对象的检测、分类和定位。可以通过基于被跟踪对象中包括的gps和惯性测量单元(imu)传感器记录被跟踪对象的位置信息来确定相同的信息。所记录的位置信息可以被处理以确定对应于对象的位置的地面实况状态变量,所述对象的位置对应于输入到胶囊网络300作为视频图像数据302的视频数据的帧。

计算装置115可以在训练胶囊网络300时将从胶囊网络300输出并传播回的状态变量322与地面实况状态变量进行比较以形成结果函数。所述结果函数用于选择对应于胶囊层324的滤波器的权重或参数,其中产生肯定结果的滤波器权重由奖励函数确定。胶囊网络通过基于胶囊在胶囊层324之间形成路由或连接来执行滤波器权重的数据聚合,其中胶囊是n个数据项的n元组,其包括胶囊层324中的位置作为一个数据项,并且其包括对应于所述位置的奖励函数作为另一个数据项。在路由层316中,for-loop经过几次迭代以动态地计算将较低层胶囊(即,路由层的输入)链接到较高层胶囊(即,路由层的输出)的一组路由系数。从路由层316输出的第二中间结果318然后被发送到网络的全连接层320以进行进一步处理。附加路由层也可以存在于胶囊网络300的其余部分中。

由路由层316输出的第二中间结果318被输入到全连接层320。全连接层可以输入第二中间结果318和输出对应于目标位置的状态变量322。目标位置的时间序列可以对应于由牛顿物理学管控的实体3d对象在平行于道路202的平面中的运动。目标跟踪包括确定对应于被跟踪对象相对于视频帧并因此相对于固定摄像机206的视野210的位置的状态变量322。可以基于从包括雷达传感器、激光雷达传感器、红外传感器和视频传感器在内的各种传感器输入的传感器数据来训练胶囊网络300以检测、分类和定位对象。传感器可以安装在各种固定或移动平台上,例如包括车辆110和无人机。

对象检测可以包括确定摄像机数据中的前景像素和背景像素,例如,其中前景像素是对应于移动对象的像素,而背景像素对应于摄像机数据302中的非移动区域。胶囊网络300可以通过确定前景像素的连接区域来检测对象。通过对连接区域进行几何测量,可以对检测到的对象进行分类。例如,最小包围矩形的大小和形状可以确定可以将检测到的对象分配给哪个类别。可以通过根据大小和形状将检测到的对象分配给对应于车辆、行人或动物的类别来对检测到的对象进行分类。通过确定如在对象中包括的像素的连续区域的质心之类的量度,可以定位检测到的和分类的对象。胶囊网络300可以将对应于摄像机数据302中的对象的检测、分类和定位的数据输出作为状态变量322。

计算装置可以将用于对象的对象检测、分类和定位数据用于与车辆操作有关的各种任务。来自由固定摄像机206获取的摄像机数据302的对象检测、分类和定位数据可以被下载到车辆110以用于操作车辆110。例如,车辆110可以基于对象的预测位置来确定要在其上进行操作的车辆路径,其中车辆110可以检测车辆110的预测位置与对象的预测位置之间的碰撞或接近碰撞。可以从安装在车辆110上的摄像机获取对象检测、定位和分类数据。车辆110可以使用对象检测、分类和定位数据来确定车辆110的预测位置和对象的预测位置之间的碰撞和接近碰撞。

也可以通过安装在移动平台(诸如无人机)上的摄像机获取对象检测、分类和定位数据。通过安装在无人机上的摄像机获取的对象检测、分类和定位数据可以由交通信息系统100中的服务器计算机120接收以确定交通信息。例如,服务器计算机可以基于接收到的对象检测、分类和定位来确定如关于交通拥堵和交通事故的信息之类的交通信息,并将所述交通信息下载到车辆110。基于检测、分类和定位对象来操作车辆或支持车辆操作的过程可以受益于训练胶囊网络300的改进,包括通过允许胶囊网络300比不保存和重新存储如本文所述的主路由系数的胶囊网络300被更高效地训练、重新训练并微调而快速路由本文所公开的胶囊网络300。

图4是确定胶囊网络300的路由系数的过程400的流程图。例如,过程400可以通过计算装置115的处理器将来自传感器116的信息作为输入,以及执行命令以及经由控制器112、113、114发送控制信号来实施。过程400包括以公开的顺序进行的多个框。过程400可以替代地或另外包括更少的框,或者可以包括以不同顺序进行的框。

过程400在框402处开始,其中过程400将一组预测张量执行路由的次数r和网络层数l作为输入。预测张量从输入图像计算得出。过程400包括针对单个输入图像确定路由系数为父层胶囊张量vj。父层胶囊张量vj由以下方程式(2)限定,并且用于根据传回的结果选择具有最大值的路线。当训练胶囊网络300时,针对具有对应的地面实况数据的多个输入图像中的每个图像将过程400重复以用户输入的次数。本文中用来描述张量大小的数字是示例,并且可以在不改变技术的情况下变得更大或更小。

过程400以输入维数为(16,1152,10)的单个预测张量而在框402中开始。第一个数字16表示单个预测向量的维数,其中单个预测向量是具有16个分量的向量,其中每个分量对应于对象的特定方面。第二个数字1152表示层l中有多少个胶囊i可以分配给层l+1中的10个胶囊j的每一个。每个较低层胶囊i负责将单个预测向量链接到父层胶囊j。预测向量由网络在训练时学习,并且对应于如由网络根据一组特征确定的对象。总的来说,父层胶囊j对应于所述对象。在整个路由算法中,迭代地计算路由系数以将较低层胶囊与正确的较高层胶囊相连。对于网络看到的每个新图像,针对每个层l,在1152个较低层胶囊i中的每一个与10个较高层胶囊j中的每一个之间从头开始执行这些计算。维数为(1152,10)的张量bij被初始化为零,并且迭代次数k被初始化为1。

在框402处,将根据方程式(1)的softmax运算应用于维数为(1152,10)的张量bij以确定路由系数cij:

softmax运算将张量bij的初始值转换成介于0与0.1之间的数字。softmax运算是本文中使用的示例性归一化技术,但是其他尺度不变的归一化函数可以有利地与本文描述的技术一起使用。

在框404处,路由系数cij与每个预测向量相乘并求和以形成矩阵

在框406处,矩阵sij用方程式(2)挤压以形成输出的父层胶囊张量vj:

挤压确保sj中的十行中的每一行的长度限制在0与1之间。

在框408处,当迭代次数k大于1,cij矩阵sij的路由系数通过在预测向量与父层胶囊张量vj之间形成点积以及将结果加至张量bij而进行更新。可以对胶囊网络300进行训练以通过选择vj中具有最长长度并且因此具有正确识别对象的最高可能性的行而识别输入图像中的对象。

在框410处,过程递增迭代次数,并将其与j进行比较。如果迭代次数小于或等于j,则过程400返回到框402以进行另一迭代。如果迭代次数大于j,则过程400结束。

过程400是用于确定哪些胶囊路线最可能对应于胶囊网络300的成功操作的技术,例如,输出与地面实况数据匹配的状态变量322。所确定的胶囊路线可以基于数据聚合,其中通过卷积滤波确定的多个特征(胶囊)通过路由以对应于单个对象以及包括其在图像内的检测、分类和定位的信息而被组合。快速路由是在训练之后可以丢弃以这种方式确定的胶囊路由时的推理期间实施,因为在训练期间可以保存路由权重。在使用中,胶囊网络300可以基于保存的路由权重进行操作并到达正确的输出状态变量322,而无需单独确定胶囊路线,因为在训练期间在过程400期间已经保存了这些。

其他确定胶囊路线的技术,例如期望值-最小化(em)路由,使用动态编程来确定胶囊路由的最佳集合,而不是使用过程400的技术。动态编程是一种将复杂问题分解为一系列较小步骤而解决复杂问题的技术。所述步骤可以是连续的,其中来自每个步骤的输出形成下一步的输入。步骤之间的中间结果可以存储在计算装置115的存储器中,并进行迭代处理,直到满足预定的结束条件为止。例如,连续步骤之间的最终输出的变化量小于用户确定的阈值可以是结束条件。

基于动态编程(如em路由)的路由技术与过程400的类似之处在于,在训练之后丢弃路由信息。本文所述的技术通过在主路由系数矩阵中进行训练之后保留胶囊路由信息来改善胶囊网络300的处理,这可以加快胶囊网络300的推理时间,有助于在初始训练之后微调胶囊网络300,并且有助于胶囊网络300更快地训练。本文所述的技术可以通过跳过动态路由算法中的for-loop并且用单个张量乘法运算替代其而呈指数地降低处理时间,所述单个张量乘法运算可以在已经确定所有胶囊路线之后,通过在训练后执行路由,而在多个图形处理单元(gpu)之间并行化。例如,如果原始的动态路由算法使用十次迭代来计算路由系数,则本文所述的技术用单个张量乘法来替换十次迭代。如果动态路由算法使用100次迭代来计算路由系数,则本文所述的技术可以用单个张量乘法来替代100次迭代等等。本文描述的技术可以应用于利用路由系数将对象部分分配给其整体的任何胶囊网络架构。综上所述,计算机的处理效率,包括减少处理时间和/或所需的处理功率,可以通过本文公开的技术大大提高。

可以从在胶囊网络300训练期间找到的对应于胶囊网络300输入的各个路由系数中产生主路由系数。然后,可以使用这单个主路由系数集来在推理期间使网络更快。可以通过首先使用训练数据集和对应的地面实况数据来训练胶囊网络300来确定路由系数。例如,路由系数可以如上针对过程400的for-loop中的每个训练输入讨论动态地确定。当等于状态变量322与地面实况数据之间的差的总损耗值稳定时,可以确定训练了胶囊网络300。当总损耗值在平均值附近振荡并且不再增大或减小时,它是稳定的。当总损耗值已经达到最大值时,可以确定训练了胶囊网络300。

可以在每次路由迭代中为每个输入从路由算法中保存路由系数。也就是说,对于训练集中的每个输入,都有一组路由系数,这些路由系数在路由算法中通过r次迭代进行动态计算。对于过程400,单个输入的系数包括在张量cij中,维数为(r,1152,10),其中数字1152和10例如是且可以更大或更小。对于一批输入,cij是维数为(n,r,1152,10)的张量,其中n是该批中的输入数量。cij是在评估训练数据集上的经训练的胶囊网络300时保存的路由系数。可以对保存的路由系数进行排序,以区分与准确结果高度相关(通常,>90%)的路由系数与不与准确结果高度相关的路由系数。对应于张量cij元素r、1152、10的数字可以根据应用而变化。数字10表示由张量cij处理的类别的数量并且适用于诸如车辆对象跟踪和手写字符检测等任务。

路由系数可以被全部排序,或者可以在排序之前过滤路由系数。对所有路由系数进行排序可以产生可用的结果;但是对整个路由系数集(张量维数为(n,r,1152,10))执行详尽排序所需的时间和存储器的量实际上可以相当高。在排序之前基于聚类算法或相似性度量进行过滤可以显著减少数据量和计算量。基于聚类算法的过滤包括基于已知技术(例如,诸如em路由、k均值或基于密度的空间聚类)进行过滤。em路由可以基于关于系数的高斯分布的假设对路由系数进行聚类。k均值是一种可以基于使概率最大化形成组的统计技术。基于密度的空间聚类可以基于高斯噪声模型使联合概率最大化。这些技术的共同之处在于它们形成路由系数群的组,并通过用单个路由系数表示组或群来减少数据。在通过聚类进行过滤后,可以对一组路由系数进行排序。

可以通过比较胶囊网络300的两个副本(一个副本包括对应于路由系数的权重,而另一个副本不包括对应于路由系数的权重)的性能来对路由系数执行排序。可以比较在包括图像和地面实况的测试数据集上的两个胶囊网络300性能的准确性。如果具有路由系数权重的胶囊网络300的准确性大于或等于没有路由系数权重的胶囊网络300,则路由系数被确定为“可以”并被保留。如果在包括地面实况的测试数据集上的具有路由系数权重的胶囊网络300的准确性比没有路由系数权重的胶囊网络300的准确性差,则路由系数被确定为“不可以”并被丢弃。

相似性度量可以通过将诸如已知的相似性度量(包括皮尔逊相关系数、点积、范数、角度等)应用于路由系数来过滤路由系数。这些度量各自确定用于路由系数的度量,所述度量测量系数之间的距离并将其应用于确定相似性。相似性度量可以通过选择距离度量相互较小的系数组来确定路由系数的类别。类别可以由单个代表表示,从而在不损失准确性的情况下实现数据精简。可以对以下过滤类别进行排序,以丢弃不对应于如上所讨论的准确结果的类别。在过滤和排序之后,可以构建主路由系数矩阵并将其保存以用于后续处理。

图5是示例性路由系数矩阵500的图。路由系数矩阵500包括路由系数矩阵502(rcm)和主路由系数矩阵510(mrcm)。来自方程式(1)和图4的维数为(n,r,1152,10)的张量cij包括路由系数矩阵502,其是针对n中每个输入图像n的维数为(r,1152,10)的张量。在如上所述的过滤和排序之后,形成维数为(r,1152,10)的路由系数矩阵502。可以选择用于提取路由系数的(1152,10)矩阵的路由迭代次数。可以相对于没有r个路由系数权重中的任一个的胶囊网络300的副本确定包括r个路由系数权重中的每一个的胶囊网络300的测试数据和地面实况准确性。以这种方式,可以确定最有可能是准确的路由系数504。

一旦选择了路由迭代,所得的路由系数张量就具有维数(1152,10),例如,其中10是数据集中的类别的数字。对于每个训练输入,可以通过用户输入来确定该输入的标签(即,类别)。该标签对应于(1152,10)矩阵中的10列中的一列504。然后提取该单个列504,并将其放入空的(1152,10)主路由系数矩阵510中的对应列508中。空的(1152,10)主路由系数矩阵510是路由系数的主集。为训练集中的每个训练输入n选择路由迭代。对于重复的标签,来自单独(1152,10)系数矩阵的地面实况列502的值仅与(1152,10)主路由系数矩阵510中的对应列508中的现有值相加。

当已经针对所有训练输入对地面实况列系数求和时,然后按类别频率将(1152,10)主路由系数矩阵510中的每一列归一化,并且可以将非线性函数应用于(1152,10)主路由系数矩阵510。可以以其中在训练期间动态地计算原始路由系数的相同方式确定该非线性。例如,来自方程式(1)的softmax函数可以应用于(1152,10)主路由系数矩阵510中的每一行。在确定主路由系数矩阵510之后,然后可以复制主路由系数矩阵510n次以符合胶囊网络300中使用的每批输入的数量,因此,主系数张量的最终维数为(n,1152,10)。

图6是示例性路由系数矩阵600的图。路由系数矩阵600包括路由系数矩阵602(rcm)和主路由系数矩阵610(mrcm)。来自方程式(1)和以上图4的维数为(n,r,1152,10)的张量cij包括路由系数矩阵602,其是针对n中的每个输入图像n的维数为(r,1152,10)的张量。在如上所述的过滤和排序之后,形成维数为(r,1152,10)的路由系数矩阵602。除了针对每个输入n而不是路由系数矩阵502的每个列504处理整个(1152,10)路由系数矩阵602之外,图6中所示的过程与图5相同。在已经转移了来自所有输入的路由系数之后,可以按该列的类别频率将主路由系数矩阵610的每一列归一化。

图7是示例性路由系数矩阵700的图。路由系数矩阵700包括第一路由系数矩阵702(rcm1)、第二路由系数矩阵704(rcm2)、第一主路由系数矩阵710(mrcm1)和第二主路由系数矩阵712(mrcm2)。对于胶囊网络300被训练的每个类别,来自方程式(1)和以上图4的张量cij(维数为(n,r,1152,10))包括路由系数矩阵702、704。如果x是胶囊网络被训练以进行识别的输入数据的类别的数量,则类别被定义为胶囊网络300输出基本上相同的结果的一组输入图像。对于x类别中的每个类别,可以确定维数为(r,1152,10)的张量用于n中的每个输入图像n。在如上所述的过滤和排序之后,形成第一路由系数矩阵702和第二路由系数矩阵704(x=2)。

在产生x个系数集之后,它们可以集中到维数为(x,1152,10)的单个主系数张量中并且然后被复制n次以符合胶囊网络中使用的每批的输入数量,因此主系数张量的最终维数为(n,x,1152,10)。当用于快速训练时,训练输入的类别标签可以用于选择x中的哪个x应该应用于每个输入。

主路由系数张量可以通过去除路由算法中的for-loop来提高训练的胶囊网络300的推理速度。

主路由系数张量可以通过使推理更快来改善胶囊网络300的推理。为了进行训练,首先使用完整训练数据集的子集来训练胶囊网络,即,使用来自以上图4的路由算法来训练网络。之后,如关于图5-图7所述提取主路由系数张量。然后,使用基于训练数据的第一子集确定的主路由系数,对完整训练数据集的第二子集进行测试。对于具有类似于图3所示的架构的架构的胶囊网络300,这微调对象的部分/整体关系。

主路由系数张量可以通过微调胶囊网络300来改善胶囊网络300的训练。微调胶囊网络300是指训练胶囊网络300的过程,其中胶囊网络300的某些层是固定的。对于微调胶囊网络300,使用完整训练数据集的第一子集,使用具有for-loop的路由算法,来训练胶囊网络300。之后,从训练数据中提取主路由系数。然后,通过在没有确定任何新路由系数的情况下用相同数据和地面实况重新训练胶囊网络300,使用主路由系数作为固定系数(即,在路由程序中没有使用任何for-loop)而对完整训练数据集的第二子集进行微调。

图8是用于确定对象位置、基于对象位置跟踪对象以及将对象跟踪信息下载到车辆的过程800的相对于图1-图7描述的流程图。过程800可以由服务器计算机120的处理器,例如将来自传感器的信息作为输入,以及执行命令,以及将对象跟踪信息发送到车辆110来实施。过程800包括以所公开的顺序进行的多个框。过程800可以替代地或另外包括更少的框,或者可以包括以不同顺序进行的框。

处理800开始于框802,其中服务器计算机120从包括固定摄像机206的摄像机获取视频图像,并将其输入到经训练的胶囊网络300。胶囊网络300已经使用主路由系数张量来训练,如以上关于图3-图7所描述的。胶囊网络300输入视频图像数据302并且可以输出对应于相对于视频帧的对象检测、分类和定位数据的状态变量322。摄像机数据可以从固定摄像机或移动摄像机输入。例如,可以将移动摄像机安装在车辆110或无人机上。

在框804处,服务器计算机120可以将包括从胶囊网络300输出的对象检测、分类和定位数据的状态变量322与关于道路202相对于全局坐标中的固定摄像机206的视野210的位置的地面实况信息组合以将状态变量322变换为全局坐标中的跟踪对象位置,如以上关于图2所讨论。以相等的时间间隔获取的在全局坐标中的对象位置序列是可以输入到控制程序的时间序列数据,所述控制程序可以预测对象运动并由此基于对象位置跟踪对象。服务器计算机120还可以将全局坐标中的对象位置下载到车辆110,并允许车辆110跟踪对象。

在从移动平台获取摄像机数据的示例中,可以基于对应于包括在移动平台中的摄像机的位置和视野的位置和视野,将对象检测、分类和定位数据变换为全局坐标。因为在获取摄像机数据时平台可以移动,所以可以对摄像机数据加时间戳记以在获取摄像机数据时识别摄像机的位置。从移动平台获取的对象检测、分类和定位数据可以直接下载到车辆110或由服务器计算机120接收以与来自其他来源的对象检测、分类和定位数据组合以确定交通信息。例如,交通信息可以包括交通拥堵或交通事故。可以将交通信息下载到车辆110以帮助车辆110在道路202上操作。在框804之后,过程800结束。

诸如本文讨论的那些的计算装置一般各自包括命令,所述命令可由诸如上文所识别的那些的一个或多个计算装置执行并用于执行上文所述的过程的框或步骤。例如,上文讨论的过程框可以被体现为计算机可执行命令。

计算机可执行命令可以由使用各种编程语言和/或技术创建的计算机程序来编译或解译,所述编程语言和/或技术单独地或组合地包括但不限于:javatm、c、c++、python、julia、scala、visualbasic、javascript、perl、html等。一般来说,处理器(例如,微处理器)接收例如来自存储器、计算机可读介质等的命令,并且执行这些命令,从而执行一个或多个过程,包括本文所述的过程中的一个或多个。这类命令和其他数据可以存储在文件中并使用各种计算机可读介质进行传输。计算装置中的文件通常是存储在诸如存储介质、随机存取存储器等计算机可读介质上的数据的集合。

计算机可读介质包括参与提供可以由计算机读取的数据(例如,命令)的任何介质。这种介质可以采用许多形式,包括但不限于非易失性介质、易失性介质等。非易失性介质包括例如光盘或磁盘和其他持久性存储器。易失性介质包括动态随机存取存储器(dram),所述动态随机存取存储器通常构成主存储器。常见形式的计算机可读介质包括(例如)软磁盘、软盘、硬盘、磁带、任何其他磁性介质、cd-rom、dvd、任何其他光学介质、穿孔卡、纸带、带有孔图案的任何其他物理介质、ram、prom、eprom、flash-eeprom、任何其他存储器芯片或盒式磁带或者计算机可以从其中读取的任何其他介质。

除非本文作出相反的明确指示,否则权利要求中使用的所有术语旨在给出如本领域技术人员所理解的普通和通常的含义。具体地,除非权利要求叙述相反的明确限制,否则使用诸如“一个”、“该”、“所述”等单数冠词应被解读为叙述所指示的要素中的一者或多者。

术语“示例性”在本文中以表示示例的意义使用,例如,对“示例性小部件”的引用应被解读为仅指代小部件的示例。

修饰值或结果的副词“约”是指形状、结构、测量、值、确定、计算结果等可以因材料、加工、制造、传感器测量、计算、处理时间、通信时间等的缺陷而与确切描述的几何结构、距离、测量、值、确定、计算结果等有偏差。

在附图中,相同的附图标记指示相同的元件。此外,可以改变这些元件中的一些或全部。关于本文所描述的介质、过程、系统、方法等,应理解,虽然此类过程等的步骤或框已被描述为按照特定顺序的序列发生,但是此类过程可以通过以本文所描述的顺序以外的顺序执行的所描述步骤来实践。还应理解,可以同时执行某些步骤、可以添加其他步骤,或者可以省略本文所述的某些步骤。换句话说,本文对过程的描述是为了示出某些实施例而提供,而决不应将其理解为对所要求保护的发明进行限制。

根据本发明,提供了一种方法,其具有:通过利用胶囊网络处理摄像机数据来检测、分类和定位对象,其中训练胶囊网络包括保存路由系数;以及在计算装置处接收检测到的、分类的和定位的对象。

根据实施例,胶囊网络包括确定对应于胶囊层之间的路线的路由系数。

根据实施例,通过基于基于第一训练数据集的训练之后的相关性或聚类中的一者或多者将路线分组来确定路由系数,其中路线将胶囊层中确定的元素与后续胶囊层中的位置相连接。

根据实施例,路由系数通过并行阵列处理来确定。

根据实施例,训练胶囊网络包括基于第二训练数据集重新训练胶囊网络以及保存路由系数。

根据实施例,本发明的特征还在于基于接收到检测到的、分类的和定位的对象来操作车辆。

根据实施例,基于接收到检测到的、分类的和定位的对象来操作车辆包括确定对象在全局坐标中的预测位置。

根据实施例,本发明的特征还在于基于接收到检测到的、分类的和定位的对象来确定交通信息。

根据实施例,本发明的特征还在于,利用包括在交通基础设施系统中的固定摄像机和包括在车辆和无人机中的一者或多者中的移动摄像机中的一者或多者来获取摄像机数据。

根据本发明,提供了一种系统,其具有:处理器;和存储器,所述存储器包括指令,所述指令由所述处理器执行以:通过利用胶囊网络处理摄像机数据来检测、分类和定位对象,其中训练所述胶囊网络包括保持路由系数;以及在计算装置处接收检测到的、分类的和定位的对象。

根据实施例,所述胶囊网络包括神经网络,其中所述指令还包括用于确定对应于胶囊层之间的路线的路由系数的指令。

根据实施例,所述指令还包括用于通过基于基于第一训练数据集的训练之后的相关性或聚类中的一者或多者将路线分组来确定路由系数的指令,其中路线将胶囊层中确定的元素与后续胶囊层中的位置相连接。

根据实施例,所述指令还包括用于通过并行阵列处理来确定路由系数的指令。

根据实施例,所述指令还包括用于基于第二训练数据集重新训练胶囊网络以及保存路由系数的指令。

根据实施例,本发明的特征还在于基于预测对象位置来操作车辆,所述预测对象位置是基于接收到检测到的、分类的和定位的对象。

根据实施例,基于接收到检测到的、分类的和定位的对象来操作车辆包括确定对象在全局坐标中的预测位置。

根据实施例,本发明的特征还在于基于接收到检测到的、分类的和定位的对象来确定交通信息。

根据实施例,所述指令还包括用于利用包括在交通基础设施系统中的固定摄像机和包括在车辆和无人机中的一者或多者中的移动摄像机中的一者或多者来获取摄像机数据的指令。

根据本发明,提供了一种系统,其具有:用于控制车辆转向、制动和动力传动系统的装置;用于通过利用胶囊网络处理摄像机数据来检测、分类和定位对象的装置,其中训练胶囊网络包括保存路由系数;以及用于在计算装置处接收检测到的、分类的和定位的对象的装置;用于基于检测到的、分类的和定位的对象来操作车辆的装置;和用于控制车辆转向、制动和动力传动系统的装置。

根据实施例,胶囊网络包括确定对应于胶囊层之间的路线的路由系数。

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