一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

通过摄像机进行交通工具环境建模的制作方法

2022-03-05 10:59:06 来源:中国专利 TAG:

通过摄像机进行交通工具环境建模
1.相关事项本专利申请在35 u.s.c.
§
119下要求对标题为“vehicle environment modeling with cameras”并且在2019年5月30日提交的序列号为62/854,818的美国临时申请的优先权的益处,其整体通过引用特此结合在本文中。
技术领域
2.本文描述的实施例一般涉及计算机视觉技术,并且更具体地,涉及通过摄像机进行交通工具环境建模。


背景技术:

3.在汽车中通常称为“自动驾驶”或“辅助驾驶”操作的自主或半自主汽车技术正在商用和消费级交通工具中经历快速发展和部署。这些系统使用传感器阵列来连续观察交通工具的运动和周围环境。可以使用各种传感器技术来观察交通工具的周围环境,例如,道路表面和边界、其它交通工具、行人、对象和危险、标志和道路标记、以及其它相关项。
4.通过一个或多个摄像机实现的图像捕获传感器对于对象检测和识别以及读取标志和道路标记特别有用。基于摄像机的系统已应用于测量三维结构,例如道路的竖直轮廓、车道标记、和路缘,并用于检测对象或危险。期望实用的传感器系统在变化的天气和道路条件下可靠地运行。这些期望趋向于在处理输入时引入无数挑战。在夜间来自阴影或灯光的输入噪声可能会干扰道路表面检测。潮湿的道路或其它反射性表面通常会引入与道路表面模型相反的明显的运动。此外,考虑到这些道路表面检测困难,在对道路表面进行建模以实现自主驾驶或辅助驾驶时对危险进行快速(例如,实时)检测的需要给硬件施加了负担。
附图说明
5.在不一定按比例绘制的附图中,相似数字可以在不同的视图中描述相似组件。具有不同字母后缀的相似数字可以表示相似组件的不同实例。在附图的图中,通过示例而不是限制的方式示出了一些实施例,在附图中:图1是交通工具环境的示例的框图;图2是根据实施例的用于通过图像传感器进行交通工具环境建模的系统的示例的框图;图3示出了根据实施例的当前图像和先前图像;图4示出了根据实施例的用于产生道路表面的伽马(gamma)模型的神经网络的示例;图5示出了根据实施例的基于机器学习(ml)的竖直轮廓引擎的示例深度神经网络(dnn);图6是根据实施例的详述dnn的示例架构的表格;图7-8是根据实施例的详述dnn的更复杂示例架构的表格;
图9示出了根据实施例的dnn训练系统的示例;图10示出了根据实施例的多模态损失函数应用引擎的示例;图11是示出根据实施例的用于训练神经网络的方法的示例的流程图;图12示出了来自经由本文描述的单目和环绕摄像机训练的两个神经网络的不同输出;图13是示出根据实施例的用于操作竖直轮廓检测引擎的方法的示例的流程图;图14示出了根据实施例的用于与自动交通工具控制系统一起使用的用于对道路进行轮廓分析的基于摄像机的车载系统;图15示出根据实施例的交通工具上的多摄像机阵列;图16示出了根据实施例的可由多摄像机阵列捕获的视场的示例;图17是示出根据实施例的竖直轮廓检测引擎的示例的框图;图18示出了根据实施例的预处理器引擎的示例;图19示出了根据实施例的用于通过摄像机进行交通工具环境建模的方法的示例的流程图;图20是示出可以在其上实现一个或多个实施例的机器的示例的框图;图21是示出根据实施例的计算裝置的示例硬件和软件架构的图示;图22是示出根据实施例的可以使用的处理裝置的框图;以及图23是示出根据实施例的中央处理单元的示例组件的框图。
具体实施方式
6.各种交通工具环境建模技术可以与各种传感器配置一起使用。当使用摄像机(例如,可见光谱、红外(ir)等)时,传感器产生由像素组成的图像。像素的各个方面可用于建模,例如颜色或亮度。一般而言,为对动态环境建模,使用了图像序列。这种类型的建模跟踪像素在连续图像之间的移动,以推断环境的各方面,例如,交通工具如何移动,其它交通工具如何移动,对象(例如,人、动物、球等)如何移动,道路上的障碍物等。
7.将图像转换为归一化状态(例如,以校正摄像机镜头畸变)、在图像之间按顺序对齐像素(例如,通过单应性(homography)使较早的图像变形以在很大程度上匹配较晚的图像)、以及测量剩余像素运动(例如,残余运动)的迭代过程可用于对环境进行建模。
8.但是,使用直接像素匹配存在一些困难。例如,可能投射到道路表面上的许多事物并不代表道路表面,例如,阴影或反射斑块(例如水坑)。尽管可以使用滤波技术来减少这种噪声,但是更好的解决方案涉及经过训练以直接从图像序列中计算伽马的人工智能(例如,机器学习系统、人工神经网络(ann)、深度ann(dnn)、卷积ann(cnn)等)。这需要对道路表面成像中的常见噪声问题的稳健解决方案。此外,这样的系统还可以接受传感器运动或核点信息以进一步增强其伽马结果。根据伽马,可以确定道路平面上方的像素的高度以及到该像素的距离。
9.道路表面建模对于例如避免坑洼或调整用于减速带的悬架可能是有用的。直接从传感器数据确定伽马(例如,通过ann)可能优于其它技术(像如,使用二维(2d)光流来确定残余流,或者使用ann来确定在平面上方的高度和到传感器的距离),因为它强化了核点约束。此外,一个伽马可用于对齐(例如,变形)该点的所有图像。
10.尽管可以训练ann来直接确定点的深度或高度,但是伽马提供了一些好处。例如,伽马计算比深度更稳定,因为距平面的高度方面的明显变化可能会导致距摄像机的深度方面的小的相对变化。同样,在给定h和参考平面的情况下,可能计算深度z,并然后计算残余流,但这会增加复杂性,因为ann为相同结果处理更多数据。这也是通过平面模型对图像进行预变形并提供自我运动(ego-motion,em)(例如,传感器或交通工具的运动,例如,核点和)作为输入的原因。
11.在示例中,可以使用类似的技术来训练网络以计算z或h而不是伽马。在该示例中,可以将单应性平面输入参数提供给ann。例如,该平面可以被定义为水平线(例如,平面的消失线)和到该平面的距离。该线可以被提供为一对距离图像,并且到平面的距离可以被提供为恒定图像。这与上面的提供核点和tz作为输入的方式类似。在示例中,对齐输入图像以仅考虑旋转(例如,使用单应性,该单应性使用在无限远处的平面)并计算z。
12.在示例中,代替针对整个图像计算伽马并然后仅使用沿特定路径的伽马(例如,用于悬架控制),可以训练ann仅沿着指定路径产生伽马。例如,如果输出仅用于适用于交通工具轮胎的事项(例如悬架控制),这可能会更有计算效率,因为去卷积运算可能在计算上很昂贵。可以以多种方式实现路径辨别(例如,仅为该路径产生伽马)。例如,可以在ann的推断阶段给出路径作为输入,将ann训练为仅输出沿该路径的值。在示例中,可以如上所述训练完整的ann以产生伽马。在推断期间,当给出路径时,做出关于在针对该路径的扩展阶段中需要哪些(去)卷积的确定并且仅应用那些(去)卷积。例如,为确定输出的完整行的伽马值,需要沿着整行进行卷积。然而,对于输出行的仅一段,仅需要在与该段相对应的特定范围内执行去卷积。
13.另外,经过不同训练的、具有相似结构的ann也可以将对象分类为移动的或不移动的。例如,可以使用移动/不移动分类来提高主交通工具更好地选择事故避免动作的能力。同样,将输入图像直接用于标识特征中的残余运动并确定结果。
14.在本文描述的各种实施例中,神经网络可以用于检测道路场景中的对象或产生环境的模型。一个实施例包括训练神经网络以从一系列图像产生道路表面的多维表示(例如,伽马图像)。图像可以由交通工具中的一个或多个摄像机产生。其它实施例可以从由多于一个交通工具获得的图像来训练神经网络。训练技术的一方面是计算地面实况以与神经网络的输出进行比较来确认如何调整神经网络使得下一输出比上一输出更准确的能力。
15.各种各样的训练数据有益于神经网络发展。从道路上的自主或半自主交通工具获取训练数据可能是最高效的。然而,由于训练数据来自不确定环境中的工作交通工具,所以确认任何给定训练图像的环境的地面实况可能是有挑战性的。
16.在训练的示例实例中,在不同时间捕获的来自相同摄像机的多个图像被用于训练神经网络。稍后,当交通工具移动时,摄像机的运动提供不同的视角(例如,信息),被训练的神经网络使用所述视角来产生环境的三维(3d)模型。
17.可能出现的问题涉及在场景内移动的对象,例如其它交通工具。当摄像机视角在场景内移动时,静止对象趋向于以可预测的方式变换。例如,在例如灯杆的竖直对象的情况下,杆的底部与道路表面一起移动,而当摄像机接近时,杆的顶部可能看起来比道路表面移
动得更快。相反,移动对象一般不以与固定对象相同的方式在图像之间改变。例如,以与托管摄像机的交通工具相同的速度和方向行进的交通工具在每个连续图像中可能看起来是相同的大小。
18.移动和固定对象之间的不同响应可能导致神经网络训练中的伪像,其可能影响环境模型的准确性。对抗这种情况的技术涉及标识移动对象,并且然后在训练图像中忽略(例如,掩蔽)它们以减少它们对训练的影响。这类似于仅基于网络对图像中表示的环境的固定(例如,静态、非移动)区域的输出来惩罚或奖励网络。然而,这种掩蔽可能导致一些问题。例如,结果一般不具有关于移动对象的有用的3d信息。而且,不同的伪像可能出现在输出中,例如预测移动对象附近(其中不存在空洞)的空洞(例如,凹陷)。进一步地,因为讨论中的移动对象通常是在摄像机前面的交通工具,因此网络可能被无意地训练以擦除(例如,忽略)直接在摄像机前面的对象,无论对象是移动还是固定的。
19.为了解决这个问题,可以使用交通工具上具有重叠视场(fob)的多个摄像机来训练神经网络。在示例中,用于训练网络的多个图像帧可以在一个时间点从多个摄像机拍摄,而不是在多个时间点从一个摄像机拍摄。因为同时捕获不同的视角,所以在移动和固定对象之间不再存在区别。相反,变化的视角可以用于对场景中的全部对象的3d特性建模,以提供用于训练神经网络的地面实况。下面提供了附加细节。
20.图1是交通工具环境的示例的框图。如图所示,视场100包括道路表面102,其可以具有一个或多个表面特征104,例如,凹陷104a(例如,坑洼、栅格、凹陷等)或突起104b(例如,减速带、路缘、碎屑等)。视场100还可以包括阴影106、反射表面108(例如,水坑、冰等)、行人110、或另一交通工具112。对表面特征104进行建模可以使得交通工具能够避开它们、向驾驶员发出警报、或者调整自身以更好地操纵它们(例如,调整交通工具悬架以越过坑洼104a)。对移动的或可能移动的行人110或交通工具112进行理解和建模可类似地使得交通工具能够控制更改或向驾驶员发出警报以避免撞到它们,甚至避免或减少与它们的不合需要的交互(例如,行驶通过水坑108而飞溅到行人110),例如通过减速或调整行驶路径、停车等。
21.道路建模的这些要素可能各自带来通过本文所述的裝置和技术所解决的挑战。例如,阴影106是用于道路表面点跟踪的噪声。来自水坑108的反射不仅掩蔽了下面的道路表面而削弱点跟踪,而且实际上展示了图像之间的像素运动,这通常与其它位置的像素运动相反。例如,在(在10m远的道路上的)水坑中反射的(50m远的)建筑物的图像运动将是在距建筑物所述距离处的对象的明显运动。这可能被错误地解释为道路中的空洞(在这种情况下大约6米深)。
22.图2是根据实施例的通过图像传感器202进行交通工具环境建模的系统208的示例的框图。系统208固定在交通工具204上。在示例中,系统208与图像传感器202或其它传感器集成。在示例中,系统208与图像传感器202或其它传感器(例如,交通工具204的信息娱乐系统的一部分)分离。在此,通过示例的方式,图像传感器202被示出为安装在挡风玻璃上的前视摄像机(在交通工具侧的内部上)。但是,本文所述的技术同样适用于安装在交通工具内部或外部的后置或侧面摄像机。一个这样的示例是外部地安装在顶篷的拐角处的摄像机,其具有前向且稍微偏向侧面的视场。多个图像传感器202可以用于捕获交通工具204周围的图像或视频片段。图像传感器202可以安装或固定到交通工具204的各种部分,例如右前位
置、左前位置、中间挡风玻璃位置、车顶位置、后窗位置等等。图像传感器202中的一些图像传感器的视场可以重叠。
23.系统208包括处理电路,以经由从图像传感器202获得的图像来执行交通工具环境建模。交通工具环境建模可以包括对道路表面206、障碍物、妨碍物、和移动体(例如,其它交通工具、行人、动物等)进行建模。这些模型可以由系统208直接使用、或通过另一管理系统使用,以调整交通工具204的运行参数。为了执行建模,系统208被布置为获得代表道路表面206的按时间顺序排列的图像序列。该图像序列中的一个图像是当前图像(例如,图像传感器202所拍摄的最后图像)。
24.系统208被布置为向人工神经网络(ann)提供数据集以产生伽马图像。在此,伽马图像的像素是针对点的伽马值。如其它地方所述,伽马值是点在平面上方的高度与距捕获当前图像的传感器的距离的比值。另外,在此,平面表示道路表面206。备选地,系统可以输出结构的其它描述,例如距离(z)、距离的倒数(1/z)或道路上方的高度h。使用伽马的优点在于它针对例如摄像机焦距之类的因子而被归一化,并且更直接地与图像运动信号相关。因此,关于来自一个摄像机的数据所训练的dnn可用来分析来自不同摄像机配置的图像。
25.尽管本文使用“伽马图像”,但是可以使用其它数据格式来表示场景中的伽马。因此,伽马可以不是栅格格式,而是可以是使得伽马值能够经由传感器数据与表面相关的任何形式(例如,值到点的伽马图)。这些各种数据结构可以统称为伽马模型。
26.在示例中,数据集包括图像序列的一部分。在此,图像序列的一部分包括当前图像。数据集还包括图像传感器202的运动(例如,指示传感器移动信息)和核点(epipole)(例如,核点信息)。在示例中,图像序列的一部分包括紧接着在当前图像之前的图像。在示例中,该图像序列的一部分总共是三个图像。在示例中,该序列可以包括任意n个图像,其中n是大于一的整数(即,)。在示例中,序列中的图像可以是连续捕获的图像。在示例中,在生成在数据集中使用的图像序列的过程中,可以省略原始帧序列中的一些帧。
27.在示例中,以与当前图像相同的维数(尽管可能采用更大或更小的分辨率)将核点提供为梯度图像。在此,梯度图像中的像素值表示当前图像中的像素距核点的距离。在示例中,梯度图像仅表示距核点的水平(例如,x轴)距离,并且向ann提供第二梯度图像以表示距核点的竖直(例如,y轴)距离。
28.在示例中,图像传感器202的运动被提供为具有与当前图像相同的维数(尽管可能是更大或更小的分辨率)的恒定值图像。在示例中,该恒定值是图像传感器202的前向运动(例如,z轴)与传感器202距平面206的高度的比值。
29.在示例中,ann是卷积神经网络(cnn)。在示例中,图像传感器202和核点的运动在瓶颈层(bottleneck layer)处被提供给cnn(例如,参见下面关于图5的讨论)。
30.在示例中,通过无监督训练技术来训练ann,其中通过测量针对一位置的预测伽马与该位置处的图像传感器202移动(即,实际运动)之间的差异来确定误差。因此,预测了伽马,并且图像传感器202或交通工具204的自我运动被用来确定该伽马推断是否正确(或推断的错误程度如何)。在此示例中,如果ann预测道路表面206存在向下倾斜,而随后交通工具没有检测到这种向下倾斜,则训练会纠正预测该向下倾斜的推论。在示例中,传感器移动可以包括俯仰、偏航、侧倾(roll)、或垂直于该平面的平移中的一者或多者。
31.系统208被布置为使用伽马图像对道路表面206进行建模。在示例中,对道路表面
进行建模包括计算与道路表面特征的平面的竖直偏差。在示例中,对道路表面进行建模包括计算图像序列中的特征的残余运动。在此,特征的残余运动是伽马值、图像传感器202的运动、和核点的乘积。
32.在示例中,对道路表面进行建模包括使用伽马值使先前图像变形到当前图像。基于伽马的变形特别准确,因为伽马使得特征能够基于其距传感器202的距离以及其在道路表面206上方的高度在图像之间进行匹配,而不是尝试有时匹配图像中的那些特征的像素的短暂或复杂的颜色变化。
33.图3示出了根据实施例的当前图像304和先前图像302。在当前图像304中,两条线306和308分别被置于的轮胎的底部和减速带的顶部。要注意,线306如何与先前图像302中的轮胎对齐。从线起的双端箭头指示该线相对于路缘310的固定端的移动。类似地,线308示出在先前图像302和当前图像304之间减速带312的顶部已移动。当图像302变形为图像304时,图像的静态特征将匹配,但交通工具的底部将移动。
34.图4示出了根据实施例的用于产生道路表面的伽马模型414的神经网络412的示例。图5-10示出了类似神经网络412的神经网络的一些附加细节和示例。但是,作为概述,每个像素的残余运动由三部分组成:伽马、传感器运动(例如,交通工具运动)、和核点信息,如下:核点信息取决于在单应性和核点之后的图像坐标。给定传感器的自我运动(em),可以针对每个像素计算此值。传感器移动信息取决于前向运动tz和传感器距平面的高度。这对于整个图像都是固定的。
35.伽马通过点在平面上方的高度h和该点距传感器的距离z来描述每个像素处的场景的结构。因此,在给定传感器移动信息和核点信息的情况下,神经网络412确定伽马模型414,并且可以计算每个点的残余运动以使得一个图像能够变形到另一图像。
36.在给定准确的伽马模型414的情况下,图像变形非常准确,因为每个像素的距离和高度,通常表现得好像图像是静态场景。经典技术首先计算残余流,然后通过去除核点信息和传感器移动信息来计算伽马。根据伽马,沿着一条或多条轨道(例如,轮胎路径)计算点的高度和距离。然而,如上所述,道路表面图像中噪声的变化程度导致直接残余运动检测有时会出现问题。
37.训练神经网络412以直接从图像中计算伽马提供了对图像中发现的噪声的稳健对抗。因此,在给定当前图像402、使用单应性以及自我运动410和核点(例如,平面)参数(图像406和408)作为输入而变形的一个或多个先前图像404的情况下,神经网络产生伽马值的图像414作为输出。如图所示,伽马模型414中的阴影越浅,伽马值越低。
38.在其它系统中,在训练神经网络412时,从损失计算中省略了交通工具。这样做是为了防止交通工具的运动在训练期间影响附近的伽马值,但是,在推断期间通常不会掩蔽交通工具。在示例中,在训练期间,未从神经网络412损失函数中掩蔽交通工具或其它移动对象。
39.在当前的实现中,在训练期间不需要掩蔽交通工具。替代地,当前图像402包括来自多个图像传感器的同时拍摄的多个图像。例如,来自主摄像机、左角落摄像机和右角落摄像机的图像可以用作当前图像集合。使用同时捕获的多个图像允许神经网络412例如通过可以从左和右角落摄像机之间的图像分析获得的三维(3d)信息来训练。下面提供了如何使用来自当前帧的3d信息来训练神经网络412的更多描述。
40.如图所示,将核点信息和传感器移动信息作为图像提供(例如,值的栅格)。传感器移动信息图像410是恒定值的图像(例如,每个像素具有相同的值)。由分别具有在水平(例如,x)406和竖直(例如,y)408方向上到该核点的距离的像素值的两个图像表示核点信息。在使用卷积神经网络(cnn)时,将核点信息提供为梯度图像而不是两个值是有帮助的。在cnn中,在整个图像402上运行相同的滤波器组,并且必须告知每个图像区域其相对于核点的位置。通过使用梯度图像406和406,滤波器具有针对每个卷积的核点信息。
41.图5是示出基于ml的轮廓引擎的示例dnn 500的图示。在示例中。如图所示,dnn500包括具有各种操作层的卷积网络部分502,这些操作层可以包括卷积层、激活层、归一化层、和池化层。可以另外包括其它操作层,例如内积层。在示例中,dnn 500另外包括去卷积部分504,包括去卷积(例如,转置卷积)层、激活层、归一化层、和解池化层。
42.在示例中,将一组预处理图像530作为输入506提供给卷积网络部分502。每层生成特征图,该特征图继而被传递到后续层,以便沿着前向传播路径508进行进一步处理。如图所示,卷积网络部分502的操作用于逐渐地减小特征图的分辨率,同时增加沿着卷积前向传播路径508a的特征图的通道的数量(维数)。去卷积网络部分504的操作用于逐渐地增大特征图的分辨率,同时减小其沿着去卷积前向传播路径508b的维数。
43.在示例中,除了前向传播路径508之外,还可以提供一个或多个旁路路径510,以促进特征图从在先层传递到在后层,同时跳过位于该在先层和在后层之间的一个或多个中间层。作为示例,旁路路径510可以在卷积网络部分502的层与去卷积网络部分504的类似维数的层之间传递特征图。
[0044]“瓶颈”网络部分512位于卷积网络部分502和去卷积网络部分504之间。在示例中,瓶颈网络部分512具有与其它层相比具有较低分辨率和较高维数的一个或多个层。在示例中,瓶颈部分512包括输入514,其被配置为接受图像格式的运动标记526和图像格式的核点位置数据528。
[0045]
在示例中,训练dnn 500以产生道路结构532,作为与预处理图像530的当前(最新)图像相对应的伽马值的按像素映射。作为dnn 500的输出的道路结构532可以具有与预处理图像530相同或不同的分辨率。例如,道路结构532的分辨率可以按因子0.25、0.5、1、1.5、2或其它缩放因子进行缩放,该因子可以是整数或非整数值。
[0046]
在另一示例中,道路结构532可以对应于预处理图像530的当前图像的一部分。例如,道路结构532可以对应于视场100(图1)的裁剪图像,从其中省略了不表示道路表面的一些部分。
[0047]
要注意的是,道路结构532的像素中的伽马值是无量纲值。在示例中,dnn 500针对水平线上方的点产生其它无量纲值(例如,)的映射作为其输出。当伽马的值已知时,可
以使用关系来恢复距离z和道路表面的高度h,其中n

是n的转置,(x,y)是图像坐标,f是焦距。
[0048]
dnn训练引擎550被配置为训练dnn 500,以基于一组训练数据产生对道路结构532的准确确定。图9是更详细地示出dnn训练系统550的图示。如图所示,dnn训练系统550包括具有与dnn 500相同或相似架构的dnn902,以及多模态损失函数应用引擎950。
[0049]
图6是根据实施例的详述dnn的示例架构的表格。如图所示,按照以下方面来描述每一层:其操作类型,连接(表示为输入0、输入1和输出0),输出通道的数目,以及卷积/去卷积架构(包括内核宽度和步长),以及激活函数和归一化类型。要注意的是,具有在输入/1列中指示的第二输入以及所标识的第二输入源的层具有旁路连接。
[0050]
到图6的dnn的第1层的输入包括一组预处理图像,在输入/0列中被表示为“image”。图像格式的核点标记和图像格式的运动标记被输入到第8层,如输入/1列中的“epipole/motion”所示。
[0051]
图7-图8是根据实施例的详述dnn的更复杂的示例架构的表格。在第1层处,将图像输入到dnn,如输入/1列中的“image”所示。向第9层输入图像格式的核点标记和图像格式的运动标记,如输入/1列中的“epipole/motion”所示。一些层(第44层和第49层)具有用于旁路连接的第三输入,以输入/2列表示。另外,图7-图8的示例dnn的某些层执行调整大小操作,例如,第22层、第28层、第34层、第42层、第47层和第52层。要注意的是,第52层将特征图的大小调整为与预处理图像330相同的大小。
[0052]
图9示出了根据实施例的dnn训练系统的示例。在此,多模态损失函数应用引擎950被配置为将训练数据930作为输入提供给dnn 902。训练数据930可以包括由一个或多个车载摄像机捕获的图像帧的各种序列。图像帧可以包括例如在各种照明和天气条件下在各种地理区域中的各种道路上捕获的视频镜头。图像可以包括从相同交通工具上的若干图像捕获装置同时捕获的图像。
[0053]
训练数据930可以伴随有与训练数据930的各个部分相对应的图像格式的运动标记926和图像格式的核点标记928。图像格式的运动标记926和图像格式的核点标记928可以被馈送到与用于训练数据930的图像帧的输入层不同的输入层,以匹配dnn 902的结构和操作布置。这些输入沿前向传播路径908前进通过dnn 902,以产生道路结构932作为dnn 902的输出。
[0054]
可以最初通过计算参数(例如,权重、偏差等)的随机值配置dnn902。训练过程用于调整计算参数的值,以优化dnn 902的输出,即道路结构932。多模态损失函数应用引擎950被配置为执行参数优化。在示例中,使用多个不同的损失函数来确定dnn 902的输出的准确度。多模态损失函数应用引擎950为dnn 902的各个层产生计算参数调整920,这是使用沿着反向传播路径910的向后传播来设置的。
[0055]
在示例中,针对dnn 902的各个层的计算参数调整920被收集并存储在计算参数数据结构925中,计算参数数据结构925定义dnn 902的训练结果。在示例中,将计算参数数据结构925传递(例如,作为dnn训练系统输出的一部分)到竖直轮廓检测引擎,在此将其存储为用于配置基于ml的轮廓引擎的计算参数。
[0056]
在示例中,在使用多个摄像机和重叠视场的情况下,来自多个视图的相关图像可
以用于实现几何损失函数训练。例如,(在时间t3的)左和中心图像可以在要求来自时间t3的伽马变形图像在光度上类似于在时间t3的中心图像的情况下被处理。可以使用未来的两对图像来设置条件,即从那些图像推断出的伽马在校正相机运动之后类似于使用来自时间t1和t2的图像得出的伽马。在示例中,中央主相机可以与一个或多个安装在车顶的左角或右角上的朝向前方或朝向侧面的相机一起使用。这些侧面相机可以具有宽于90度的视场。右相机的视场可以与主相机的右视场明显重叠,并且可以具有向后延伸的视场。左相机的视场可以与主相机的左视场明显重叠,并且可以具有向后延伸的视场。在图22中示出了相机的这种布置,其中相机2212b是主相机,相机2212a和2212c分别是左侧相机和右侧相机。在示例中,来自角落摄像机的图像可以在训练阶段中用于计算损失函数,而不在推断阶段中使用。
[0057]
在示例中,推断引擎训练同时在当前三元组和未来的三元组上运行,以分别产生output_curr(当前输出)和output_future(未来输出)。可以将几何损失与来自output_curr的其它损失组合,并往回传播以调整网络的权重,并且也可以传播没有几何损失的来自output_future的损失以调整权重。在示例中,可以忽略output_future的几何损失,仅将output_curr用于训练。
[0058]
图10示出了根据实施例的多模态损失函数应用引擎1050的示例。多模态损失函数应用引擎1050可以是图9的多模损失函数应用引擎950的实例。在所描绘的示例中,多模态损失函数应用引擎1050包括四个不同的损失函数训练引擎:摄影测量损失函数训练引擎1004、预测图像摄影测量损失函数训练引擎1006、em损失函数训练引擎1008、和几何损失函数训练引擎1010。此外,多模态损失函数应用引擎1050包括反向传播引擎1012和训练数据存储1020。损失函数训练引擎1004-1010被配置为对照用于代替传统的“地面实况”值的相应的参考标准比较道路结构1032,来确定道路结构1032的准确度的误差或损失。
[0059]
在示例中,未(像在传统的有监督的机器学习系统中那样)使用实际的地面实况数据。替代地,处理训练数据的图像以及其它可用数据(例如,与图像相对应的自我运动、摄像机高度、核点等),来产生用于评估损失函数的参考标准。在某种意义上,由于参考标准是基于训练数据的,因此可以将其视为一种无监督学习。例如,dnn的伽马输出连同从图像计算的自我运动一起可以用于将一个图像变形成第二图像,并且进行比较。变形的第一图像和未变形的第二图像之间的差异指示伽马中的可能误差,并且可以用作损失函数。
[0060]
在示例中,地面实况数据可用于训练数据。作为示例,可以通过例如三维成像或扫描测量(例如,立体成像、lidar扫描等)之类的附加测量模态来提供地面实况数据。因此,一个或多个损失函数可以基于实际的地面实况来提供一种监督学习。
[0061]
损失函数训练引擎1004-1010可以各自贡献用于训练dnn的总体损失函数的一个分量。反向传播引擎1012可以被配置为关于可变计算参数(例如,权重、偏差)计算整体损失函数的偏导数,以使用梯度下降技术来确定每个相应操作参数的调整方向。反向传播引擎1012可以在沿着反向传播路径的每个连续层处应用更新的计算参数值。训练数据存储1020可以包含训练数据、图像格式的运动标记、和图像格式的核点标记,以应用于dnn的(一个或多个)适当输入层。在示例中,根据张量流图元函数来定义损失函数,该张量流图元函数包括这种图元的复杂组合。一旦以此方式定义了损失,就可以使用张量流来计算偏导数。这是使用例如张量流的工具的当前标准方法。可以使用其它优化技术。
[0062]
摄影测量损失函数训练引擎1004被配置为基于来自在前向传播路径中被提供给dnn的训练数据的一组图像帧生成参考标准。在示例中,将三个图像(当前图像、先前图像、和再先前图像)用作dnn的输入,使用被生成为道路结构1032的伽马图来将先前图像和再先前图像变形到当前图像。校正每个变形图像以补偿残余流,并将其与实际当前图像进行比较。
[0063]
可以根据下式确定残余流补偿其中μ代表残余流,γ(伽马)是道路结构,项表示前向自我运动除以摄像机高度,项描述道路表面的平面。
[0064]
可以使用适合的技术来计算图像比较,例如,归一化互相关、总绝对差值(sad)、二进制描述符距离等,其可根据下式应用于围绕每个像素的图像的补丁(patch):其中i
curr
是未变形的当前图像,iw是经伽马变形和残余流补偿的先前(或再先前)图像,以及i
baseline
是变形前的先前(或再先前)图像。在示例中,对象检测(例如,交通工具检测、自行车/行人检测)被用于从损失函数中掩蔽运动对象,以减少在所比较的图像之间检测到的运动。图像比较可以包括图像之间的灰度级比较。
[0065]
在示例中,摄影测量损失函数训练引擎1004将可变权重应用于图像比较的与道路和非道路特征相对应的部分。因此,可以消除在非道路部分中发现的所比较的图像之间的差异程度。
[0066]
由损失函数训练引擎1004-1010中的两个或更多个损失函数训练引擎贡献的损失函数分量被反向传播引擎1012组合成聚合的多模态损失函数,所述聚合的多模态损失函数用于例如使用梯度下降技术来训练dnn以生成计算参数调整。
[0067]
在实现中,由单目成像系统捕获多个图像,其中所述图像包括当前图像以及一个或多个未来图像或一个或多个过去图像。在此类实现中,预测图像摄影测量损失函数训练引擎1006被配置为执行与摄影测量损失函数训练引擎1004类似的图像变形、补偿和比较技术,不同之处在于,除使用dnn用于产生道路结构1032的图像外在图像比较处理中还包括一个或多个“未来”或“过去”图像。“未来”图像是比用于训练dnn的当前一组图像更晚捕获的图像,而“过去”图像是更早捕获的图像。因此,对于未来图像,由预测图像摄影测量损失函数训练引擎1006提供的损失函数分量使用在运行时不可用的训练数据。要注意的是,计算出的推断产生对该推断不被视为输入的图像起作用的伽马。
[0068]
em损失函数训练引擎1008被配置为基于将道路结构1032与“未来”自我运动进行比较来产生损失函数分量,该“未来”自我运动表示交通工具在与道路结构1032相对应的道
路部分上的通过。作为示例,在不存在道路结构1032中有任何颠簸或孔洞的任何指示的情况下,指示道路上的颠簸或孔洞的自我运动是一种损失。在示例中,可以使用向上或向下的曲率。在示例中,em可以延伸超过20m(例如,多达50m)。即使当部分道路距离太远而无法计算残余流时,这也可以帮助dnn从道路结构正确建模表面的长距离形状。类似地,当道路结构1032预测在该位置(特别是在车轮的行驶路径中)出现颠簸或空洞时,缺少与该颠簸或空洞相对应的自我运动会造成损失。
[0069]
在示例中,将具有0.5hz频率的低通滤波器或阻尼弹簧模型应用于道路结构1032,以在交通工具经过道路地形时对交通工具的悬架的阻尼效应进行建模。在另一示例中,在可获得交通工具的悬架状态的情况下,将悬架信息与自我运动一起考虑,以更准确地测量车轮的竖直运动。
[0070]
几何损失函数训练引擎1010被配置为使用包括“未来”图像帧和对应的“未来”自我运动的一组或多组“未来”训练数据来产生损失函数分量。“未来”图像帧表示在用作输入的当前图像帧之前(与当前图像帧相距更大的距离或比当前图像帧更晚捕获)的定义距离或时间步长处捕获的图像。例如,“未来”图像帧和自我运动可以对应于训练数据的捕获图像的随后接着的三个(图像)。在另一示例中,“未来”图像帧和自我运动对应于距交通工具的位置5米、20米、或某个其它定义的距离。
[0071]
参考标准基于使用dnn计算的“未来”道路结构(例如,伽马图)。几何损失函数训练引擎1010使用“未来”自我运动将“未来”道路结构变形为当前道路结构832,或者使用“未来”自我运动将当前道路结构1032变形为“未来”道路结构。
[0072]
在示例中,将“未来”道路结构变形为当前道路结构1032,并在其之间进行第一比较,并且将当前道路结构1032变形为“未来”道路结构,并在它们之间进行第二比较。可以将第一比较和第二比较的结果进行组合(例如,平均)以产生汇总比较,然后将该汇总比较用于确定几何损失函数训练引擎1010的损失函数。
[0073]
在另一示例实现中,在使用多个摄像机和重叠的视场的情况下,来自多个视场的相关图像可以用于实现几何损失函数训练。例如,可以处理“未来”左图像和中心图像(在时间t3),要求来自时间t3的经伽马变形的图像在光度上类似于在时间t2的中心图像。可以使用未来的两对图像来设置条件,即从那些图像推断出的伽马在校正摄像机运动之后类似于使用来自时间t1和t2的图像得出的伽马。在示例中,中央主摄像机可以与一个或多个安装在车顶的左角或右角上的朝向前方或朝向侧面的摄像机一起使用。这些侧面摄像机可以具有宽于90度的视场。右摄像机的视场可以与主摄像机的右视场明显重叠,并且可以具有向后延伸的视场。左摄像机的视场可以与主摄像机的左视场明显重叠,并且可以具有向后延伸的视场。在图22中示出了摄像机的这种布置,其中摄像机2212b是主摄像机,摄像机2212a和2212c分别是左侧摄像机和右侧摄像机。在示例中,来自角摄像机的图像可以在训练阶段中用于计算损失函数,而无需在推断阶段被使用。
[0074]
在另一实现中,可以使用两个损失来训练神经网络:光度损失和几何损失。损失被理解成指两个测量之间的差异。一般地,神经网络被训练(例如,优化)以最小化损失。
[0075]
几何损失如上面所描述地对待。光度损失基于五个分量:a.当前图像帧;b.当前图像帧中的每个像素的3d信息输出;
c.共享在当前图像帧中可见的场景的一些部分的第二图像帧;d.描述世界上两个帧的位置之间的差异的旋转和平移(rt);以及e.描述通过两个帧所见的道路区域的合理道路平面。
[0076]
使用rt、道路平面和3d信息,使用来自第二帧的像素重新绘制当前帧。如果rt和3d信息是完美的(平面可能仅仅是合理的猜测),则这些渲染图像中的大多数将基本上等同(例如,99%的像素在彼此的阈值距离内,所述阈值定义了被认为是相同的容差)。如果3d信息不是完美的,则3d信息中的缺陷将被不正确地重新绘制,并且重新绘制的图像的该部分将不匹配当前帧。为了训练,对于当前帧和渲染帧匹配良好的重新绘制的图像中的斑块,神经网络被加强(例如,奖励),并且对于匹配不好的斑块,神经网络被惩罚。神经网络随时间收敛以输出关于场景的准确3d信息。
[0077]
单目训练系统可以通过五个不同的备选帧来执行此操作以计算光度损失。所述五个帧全部来自与当前帧相同的摄像机(例如,图22中的主摄像机2200b),并且它们全部落在当前帧的六米内,均在捕获当前帧的时间之前和之后拍摄。因为仅考虑了损失,所以可以使用来自未来的训练图像(如从当前帧测量的),即使它们在推断时间不可用(例如,当与训练相对地在驾驶期间使用时)。
[0078]
除了当前帧和两个先前时间帧之外,多摄像机技术还将两个附加帧结合到当前帧,类似于五帧实现,但是将未来帧与从例如左前角落和右前角落摄像机(例如,图22中的摄像机2200a和2200c)的不同摄像机拍摄的帧交换。在上面在计算来自相同摄像机的图像的光度损失中描述的所有内容在这种情况中也适用,因为它们是覆盖与当前帧相同的场景的至少一部分的帧(通过某一rt分开)。因此,用于单摄像机多帧机制的全部计算在这种情况下也对来自多个摄像机的多个图像起作——除了一个例外。在单目技术中使用的五个帧的情况(其中在五个不同时间拍摄图像,所述五个不同时间中没有一个是与当前帧相同的时间)下,移动对象不呈现光度损失的准确测量。因此,虽然像如树的对象对光度损失给出了准确信息(因为它们保持静止),但是移动的汽车或行人没有保持静止并且必须被掩蔽。
[0079]
在改进的多摄像机过程中,不同的摄像机在时间上彼此同步。因此,两个附加帧在与当前帧相同的时间拍摄。如上所述,如果使用了来自相同时间的通过某一rt分开的两个图像,则移动对象不再移动。现在,一切是固定的,并且等式对移动对象以及固定对象起作用。为了充分使用所述等式,我们需要准确地确定rt摄像机(例如,立体校准)。下面描述一个此类实现。
[0080]
图11是示出根据实施例的用于训练神经网络的方法1100的示例的流程图。方法1100的操作由例如上面或下面描述的计算硬件(例如,处理电路)之类的计算硬件来执行。可以采用以下操作来在时间点将多摄像机角度用于训练神经网络以对3d环境建模。
[0081]
在操作1102,确定提供图像的摄像机之间的校准(例如,rt)。滚动快门摄像机增加了复杂性,因为当使用相对于道路平面具有不同俯仰的两个摄像机时,滚动快门的效果趋向于更大。因此,虽然在单目多图像实现中滚动快门可以通过光度损失被忽略,但是在这里忽略它可能是有问题的。为了调整滚动快门,使用对来自角落摄像机的帧中可见的3d信息的一些初始理解来将滚动快门图像重新绘制为全局快门图像。例如,使用场景的3d信息、每行像素的曝光时间、以及摄像机围绕时间戳的自我运动的滚动快门校正。这可以通过相对简单的3d信息(例如全部像素在平面上的假设),或者通过更丰富得多的3d信息(像如在该
摄像机上训练不同的视差模型并将其输出用于此校正)来完成。解决摄像机校准的方法的另一示例在编号为2014/0198184a1的美国专利公开中描述。注意,如果滚动快门图像不被重新绘制为全局快门图像,如上面所描述的,则可以稍后例如使用自我运动、每行的曝光时间和来自神经网络的输出的3d信息来校正滚动快门。
[0082]
在操作1104,来自左和右摄像机的图像可以使用平面和rt(例如,单应性)变形成当前帧。在操作1106,在损失计算中,可以使用来自变形的侧帧的像素和来自神经网络的3d信息来渲染当前帧的新版本。结果可以与(例如,来自主摄像机的)真实当前帧比较,以确认两个帧的部分彼此匹配的程度(操作1108)。
[0083]
接下来,在操作1110,可以遵循两条路径。可以使用跨整个图像的来自环绕摄像机的损失,或者可以仅在移动对象掩蔽内部使用来自环绕摄像机的损失。
[0084]
可以以若干方式使用上面的操作。例如,在操作1112中,可以基于来自三个摄像机的输入来训练神经网络以用于推断,所述训练使用如上面所描述的损失。
[0085]
在另一示例中,在操作1114,用于推断的输入来自单个摄像机(例如,来自主摄像机的三个帧),并且环绕图像仅用于训练期间的光度损失。在此示例中,神经网络在仅主摄像机可用时在场中起作用,并且交通工具中架构与在先前实现中相同。因此,芯片上的计算效率(例如,成本)是相同的。然而,神经网络现在也已学习了如何输出关于移动对象的合理的3d信息。
[0086]
在操作1116中,除了提供关于全部对象(移动的和不移动的对象)的3d信息之外,损失的这种组合还可以用于输出指示图像中的哪些像素是移动对象的一部分以及哪些不是移动对象的一部分的掩蔽。这可以通过向神经网络的输出添加另一信道来完成。因此,针对每个像素还提供移动/非移动预测(例如,在零和一之间),而不是仅针对图像中的每个像素产生3d信息。
[0087]
为了训练神经网络以提供此输出,激起神经网络以推断来自主摄像机的原始五个图像之间的损失(例如,上面描述的单目技术)与来自环绕摄像机的损失差异有多大。因为来自环绕摄像机和来自主摄像机的损失之间的相对大的差异(例如,如经由差异的比率所测量的)将在对象正在移动的区域中发生,所以鼓励大的变化在附加输出信道中产生更大的值。这些值然后可以用作移动相对于不移动掩蔽。
[0088]
使用来自环绕摄像机的立体信息存在其它优点。例如,由于当被分隔成单个摄像机时的环绕摄像机之间的相对宽的基线,因此在某一距离处计量对象的3d形状可能更准确。此外,某些纹理——例如实心道路标记(例如,线)主要在摄像机图像运动是横向时给出深度信息。因此,这些实心道路标记在向与道路标记成直线的单目摄像机提供深度信息方面通常较差,而环绕摄像机可以由于与实心道路标记的两个不同角度而相当有效地使用实心道路标记。
[0089]
图12示出了来自经由本文描述的单目和环绕摄像机训练的两个神经网络的不同输出。图像1202是通过单目技术训练的神经网络的输出。这里,颜色表示道路平面上方的高度。颜色从蓝(最蓝是在道路平面下方20厘米或更多)移动到红(最红是在道路平面上方20厘米或更多)。注意,忽略(例如,擦除)移动的交通工具,并且还注意,它们甚至一般与比道路更蓝的色调(指示凹陷)关联。
[0090]
图像1204是通过环绕(例如,立体)技术训练的神经网络的输出。注意此图像和上
一图像之间的对照。交通工具周围的凹陷的错误指示消失。相反,提供了针对移动对象的合理高度估计。
[0091]
图13是示出根据实施例的用于操作竖直轮廓检测引擎的方法1300的示例的流程图。由例如上面或下面描述的计算硬件(例如,处理电路)执行方法1300的操作。
[0092]
在操作1302,获得(例如,读取或接收)原始数据,包括两个或更多个图像帧的序列、地平面、和自我运动数据、以及摄像机高度信息。图像帧可以包括当前(例如,最近捕获的)图像以及一个或多个先前捕获的图像。图像帧还可以包括同时捕获的左、右、中心图像。
[0093]
在操作1304,处理原始数据以确定图像帧的序列之间相对于道路平面的单应性。然后,可以将一些图像帧变形以使得道路平面与序列的另一图像帧对齐。根据示例,变形可以基于所测量的自我运动和地平面的特性。自我运动可以是所测量的运动,或者可以通过计算从图像帧的内容确定。变形的图像帧可以包括当前图像帧,并且一个或多个先前的图像帧被变形为与当前图像帧相对应。在另一示例中,当前图像帧和一个或多个其它帧被变形以对应于未变形的较早图像帧。
[0094]
在示例中,在被dnn使用之前,针对例如径向透镜畸变之类的透镜畸变对图像进行校正。这种校正避免了在特定透镜上训练dnn。另外,要注意的是,焦距不是伽马的等式的组成部分,从而可以训练来自多个不同摄像机类型的图像。
[0095]
在操作1306,处理附加的原始数据(包括自我运动数据、地平面数据、和摄像机高度数据),以产生运动信息(例如,核点)。该信息然后被格式化为一个或多个图像(操作1308)。
[0096]
在操作1310,使用dnn来产生推断。dnn可以执行卷积、非线性激活、和池化操作。在示例中,执行去卷积和解池化操作。在各个层,根据dnn的预建立的训练,通过dnn的操作来应用经训练的计算参数,例如,权重或偏差。如上所述,dnn在推断模式下的操作产生道路结构图,例如伽马图。在交通工具以高达五十千米每小时(50km/h或约31英里每小时)行驶时,使用例如dnn之类的工具能够产生准确到距交通工具十米(10m)分之一厘米(1cm)或甚至是半毫米(0.5mm)内的地形测量。
[0097]
在操作1312,从道路结构图提取道路轮廓信息。还可以从道路结构图提取附加信息,例如残余流信息,可以针对相关应用对该附加信息进行进一步处理。
[0098]
道路轮廓信息可被传递到自动或半自动交通工具控制系统,该系统自动调整交通工具操作的某些方面。例如,悬架控制系统可以基于表示交通工具的预期行驶路径的竖直轮廓数据来动态地调节交通工具的悬架,悬架调节可以包括动态地改变悬架的刚度,或者改变各个车轮的高度以符合道路的竖直轮廓。
[0099]
在示例中,道路轮廓信息可以被传递到驾驶策略系统,该驾驶策略系统可以使用环境模型来确定未来的导航动作。驾驶策略系统可以使用道路轮廓信息来选择或确定导航动作。驾驶策略系统的示例是例如在第wo2018/001684号国际申请公开中描述的rss,该国际申请的全部内容通过引用并入本文中。
[0100]
图21示出根据实施例的与自主交通工具控制系统一起使用的用于对道路进行轮廓分析的基于摄像机的车载系统。如图所示,该系统包括多个子系统、组件、电路、模块、或引擎,为了简洁和一致性起见,将它们称为引擎,但是将理解,这些术语可以互换使用。可以在硬件中实现引擎,也可以在软件或固件的控制下在硬件中实现引擎。这样一来,引擎是专
门用于执行指定操作的有形实体,并以某种方式构造。
[0101]
在示例中,可以以指定的方式将电路布置(例如,内部地或相对于例如其它电路之类的外部实体)为引擎。在示例中,一个或多个硬件处理器的全部或一部分可以由固件或软件(例如,指令、应用部分、或应用)配置为操作来执行指定操作的引擎。在示例中,软件可以驻留在有形机器可读存储介质上。在示例中,软件在由引擎的底层硬件执行时使硬件执行指定的操作。因此,引擎被物理地构造、或被专门配置(例如,硬接线)、或被临时配置(例如,被编程)为以指定的方式操作或执行本文所述的任何操作的一部分或全部。
[0102]
考虑其中引擎被临时配置的示例,每个引擎都不需要在任一时刻被实例化。例如,在引擎包括使用软件配置的通用硬件处理器核的情况下;通用硬件处理器核可以在不同时间被配置为各自不同的引擎。软件可以相应地配置硬件处理器核,例如,以在一个时间实例处作为特定引擎,并在不同的时间实例处作为不同的引擎。
[0103]
如所描绘的,该系统包括安装在交通工具中或交通工具上的摄像机或图像传感器2112。每个图像传感器2112对视场成像,以提供由图像处理器2130读取的图像帧2115。在示例中,可以在交通工具中安装不止一个摄像机2112。例如,系统可以具有指向不同方向的多个摄像机2112。系统还可以具有相对于交通工具指向相同或相似方向但安装在不同位置的多个摄像机2112。在示例中,系统可以具有多个摄像机,这些摄像机具有部分或完全重叠的视场(例如,如下面关于图22和图23所描述的)。在示例中,两个并排的摄像机可以以立体的方式操作。尽管在此讨论了单摄像机系统,但是也可以使用多摄像机系统,其中一些或所有相关图像和帧可以由不同的摄像机捕获,或者可以由从多个摄像机捕获的图像的合成来创建。在本上下文中,实时操作以不可察觉的或名义上的处理延迟进行操作,从而以与扫描或捕获视场的速率一致的速率检测整个视场中的对象。
[0104]
图像处理器2130可用于同时或并行地处理图像帧2115,以服务于多个驾驶员辅助系统或应用。图像处理器2130可用于处理图像帧2115,以检测和辨识摄像机2112的前向视场中的图像或图像的部分。可以使用带有板载软件和/或存储裝置2113中的软件控制算法的专用硬件电路(未示出)来实现驾驶员辅助系统。图像传感器2112可以是单色的、灰度的,或者图像传感器2112可以是颜色敏感的。举例来说,图像帧2115被用于为以下各项服务:用于道路的竖直轮廓或距路面的偏差的特征检测引擎2120、交通标志辨识(tsr)引擎2121、前向碰撞警告(fcw)引擎2122、和竖直轮廓检测引擎2123。在示例中,图像帧2115被在不同的驾驶员辅助应用之间划分,并且在其它情况下,图像帧2115可以在不同的驾驶员辅助应用之间共享。
[0105]
在示例中,该系统被用于准确地估计道路表面的平面(或双二次)模型,并计算与平面(或双二次)道路表面模型的小偏离以检测或量化各种道路表面特征104。在本上下文中,术语“道路表面模型”指的是道路表面的平面或双二次模型。术语“竖直轮廓”或“竖直偏差”指的是沿垂直于道路表面的轴与道路表面模型的偏差。
[0106]
在示例中,该系统被用于使用安装在本交通工具中的摄像机2112准确地检测并对道路表面(例如,形状)形状(例如,竖直轮廓)建模。使用本文提供的系统和方法,可以测量例如颠簸或孔洞、减速带、路缘、或井盖之类的表面特征,并将其建模为距道路表面(例如,平面)的竖直偏差,该竖直偏差具有亚像素精度(例如,1-2厘米的量级)。这些技术可以类似地应用于前向、侧向、或后向摄像机2112。伽马图可用于确定交通工具前方或侧面和后方的
可驾驶区域。伽马图可单独用于确定表面坡度过于陡峭而无法行驶的地方,也可如美国专利公开第2018/0101177号所述将其与基于灰度或彩色图像的语义自由空间结合使用,该美国专利公开的全部内容通过引用合并于此。道路平面的伽马图或高度图可用于区分尖锐的竖直边缘路缘石,平滑倾斜的路缘石、或平缓的路肩(例如,道路下降处)。然后,可以控制本交通工具与尖锐的路缘石或边缘下降比与平滑倾斜的路缘石保持更大的距离。
[0107]
在示例中,该系统可以进一步包括交通工具控制处理器2140,该交通工具控制处理器2140实施一个或多个交通工具控制引擎,以向交通工具的机电致动器系统生成扼制、制动、转向、或变速器选择命令,来实现自主或半自主驾驶操作。交通工具控制处理器2140可以接收由图像处理器2130提供的与发动机2120-2123产生的各种机器视觉评估有关的各种输出。
[0108]
图22示出了根据实施例的交通工具上的多摄像机阵列。如图所示,摄像机2212a-2212f安置在交通工具周围以提供视场(例如,如下所述的那些)。
[0109]
图23示出了根据实施例的可由多摄像机阵列捕获的视场的示例。示出了多个重叠的视场100a-100f。这里,道路表面是这些视图共有的。
[0110]
图17是示出根据实施例的竖直轮廓检测引擎1723的示例的框图。竖直轮廓检测引擎1723包括预处理器引擎1722、基于机器学习(ml)的轮廓引擎1724、和输出提取引擎1734。预处理器引擎1722被构造、编程、或以其它方式配置为接收一组原始输入数据,并处理该组原始输入数据以产生经预处理的一组输入数据,经预处理的该组输入数据将被传递到基于ml的轮廓引擎1724进行进一步处理,其结果是指示对道路表面的竖直轮廓的测量的输出。
[0111]
可以从交通工具控制系统的组件提供该组原始输入数据。例如,自我运动引擎1702、地平面引擎1706、或数据存储1712可以各自提供原始数据项。要注意的是,在本上下文中,术语“原始数据”指的是预处理器引擎1722的输入侧上的信息。原始数据不限于直接从传感器(例如,一个或多个摄像机)提供的数据或者以其它方式而未经处理的数据。而是,原始数据可以通过其源或中间处理实体在某种程度上进行计算处理。
[0112]
自我运动引擎1702被配置为提供描述传感器的实际运动的自我运动(em)信息1704。em信息1704可以基于由交通工具的速度计或惯性传感器(例如,被配置为感测交通工具218的偏航、俯仰和侧倾的三轴加速度计)获得的测量结果。惯性传感器可以集成在摄像机中,或者也可以安装在本交通工具上或中的其它位置。
[0113]
地平面引擎1706被配置为提供地平面(gp)信息1708。在示例中,地平面引擎1706可基于由自我运动引擎1702提供的俯仰和侧倾数据来确定gp信息1708、交通工具悬架信息、或这些输入的某种组合。gp信息1708可以指示道路的平面法向量以及到该平面的距离。在示例中,地平面引擎1706可以基于3d扫描测量(例如,lidar)、立体成像、或其它(一种或多种)合适的技术来计算平面法向量和到平面的距离。在示例中,地平面引擎1706可以基于捕获的图像1716来计算gp信息1708,或者它可以是固定的默认gp。
[0114]
数据存储1712提供保存的数据项,例如摄像机高度信息1714和捕获的图像1716,其可以包括连续捕获的图像帧215的序列。捕获的图像1716可以包括当前的(最近捕获的))图像、上一图像、和再上一图像。
[0115]
预处理器引擎1722输出一组预处理图像1730,该组预处理图像基于捕获的图像1716和其它原始数据输入项,例如em 1704、gp信息1708或摄像机高度信息1714。另外,预处
理器引擎1722输出图像格式的核点标记1728和图像格式的运动标记1726,以供基于ml的轮廓引擎1724进一步处理。预处理器引擎1722还可以调整通过滚动快门捕获的图像。
[0116]
在示例中,道路结构1732是表示针对当前捕获图像的每个像素的道路平面高度与沿前向运动方向(沿z轴)距摄像机的距离之比的绘图。在示例中,伽马可以具有与一组预处理图像1730中的任一图像相同或相似的分辨率,或者可以具有不同(例如,降低的)分辨率。
[0117]
在示例中,基于ml的轮廓引擎1724读取一组预处理图像1730、图像格式的核点标记1728、和图像格式的运动标记1726,并处理预处理器引擎的这些图像格式的输出1722以产生道路结构1732,道路结构1732是代表道路表面三维结构的图像格式的绘图。道路结构1732指示道路的竖直轮廓。它可以包括道路表面上各个点的高度信息,或者可以包括其它值,可以根据这些值从进一步的处理中通过计算确定高度信息。
[0118]
在示例中,基于ml的轮廓引擎1724包括经过训练的深度神经网络(dnn),以计算道路的竖直轮廓。dnn基于计算参数1725在多个层上执行各种分级操作,计算参数1725包括特定于每一层的加权、偏置、或其它变量设置。基于dnn训练操作可以建立并且不定期地更新计算参数1725,该dnn训练操作可以例如由dnn训练系统1750离线或远程地执行。训练可以使用本文描述的技术来完成。
[0119]
例如,输出提取引擎1734被配置为使用摄像机高度信息1714和gp 1708来处理道路结构1732的伽马(γ)值,以产生代表距道路的平面的竖直高度的高度图1736。在示例中,输出提取引擎1734被配置为基于下式来从道路结构1732计算残余运动μ1738:其中项是伽马,tz表示正向平移,d表示摄像机高度1714,表示核点信息,且是表示应用了基于单应性的变形之后的对应图像坐标的项。
[0120]
在示例中,dnn产生伽马值的按像素输出,其中伽马是竖直轮廓高度与沿前向运动方向(沿z轴)到摄像机的距离的计算比值。可以根据图像内对应位置的相应伽马值确定竖直轮廓高度。
[0121]
在示例中,可以从高度h直接检测例如人行道之类的道路边界特征。在示例中,可以通过检测相对均质的正残余流区域来检测道路边界特征,通过细长的线使得相对均质的正残余流区域与具有低残余流的区域区分开。这些线大致朝向延伸焦点(foe)的方向或道路的方向(即车道标志消失点的方向)。
[0122]
在示例中,可以类似地直接从高度h或作为具有正残余流的区域直接检测颠簸或障碍物,具有正残余流的区域至少部分地被具有低残余流的区域围绕。在示例中,另一方面,可将孔洞或凹陷检测为具有负残余流的区域,其至少部分地被具有低残余流的区域围绕。
[0123]
在示例中,获得了经预处理的(例如,变形的、对齐的、和稳定化的)图像。像可能已作为道路轮廓分析操作的一部分生成了这些经预处理的图,而不是专门为水坑检测生成的。这里,与必须重新预处理图像的系统相比,预处理图像的可用性促进了计算效率,并提升了特征检测的检测速度。
[0124]
图18示出根据实施例的预处理器引擎1872的示例。预处理器引擎1872可以是来自
图17的预处理器引擎1722的实例。如图所示,预处理器引擎1872包括参考帧引擎1802、单应性引擎1804、图像变形引擎1806、核点图像生成器引擎1808、和运动信息图像生成器引擎1810。
[0125]
em信息1854被作为输入提供给参考帧引擎1802和运动信息图像生成器引擎1810。在该示例中,em信息1854包括旋转(r)信息1812和平移(t)信息1814,这些信息可以是从交通工具中的运动感测裝置提供或导出的。gp信息1858被提供给参考帧引擎1802。如图所示,gp信息1858包括道路平面的默认平面法向量指示符n 1816。
[0126]
捕获的图像1866被提供给参考帧引擎1802、单应性引擎1804、和图像变形引擎1806。捕获的图像1866包括从视场中的道路的相同部分捕获的图像帧序列1818(例如,第一图像帧a、第二图像帧b、和第三图像帧c)。在示例中,图像帧序列1818可具有少至两个图像帧、三个图像帧、或多于三个图像帧。
[0127]
摄像机高度信息1864被提供给参考帧引擎1802和运动信息图像生成器引擎1810。在示例中,摄像机高度信息1864包括代表标称摄像机高度的固定值1820。在示例中,摄像机高度信息1864包括报告当前摄像机高度的动态指示符,该动态指示符考虑例如交通工具的悬架状态之类的变量。
[0128]
在示例中,参考帧引擎1802被配置为基于em信息1854,将来自gp信息1858的地平面标记调整为更新后的地平面表示。这在需要相对于稳定的参考平面的道路断面输出时可能是重要的。例如,根据下式来调整地平面的平面法向量:其中n(t)表示更新后的平面法向量,具有方向和大小信息。例如,n(t)可以表示平面法向量n除以摄像机高度(即,距地平面的距离d,也称为camh)。在示例中,可以使用相同的α、β和δ系数分别更新n和d:单应性引擎1804被配置为计算成对的图像帧1818之间的单应性。在本上下文中,术语“单应性”指的是从投影空间到其自身的可逆变换,该变换将直线映射到直线。在计算机视觉领域,空间中同一平面的两个图像通过单应性(假设有针孔摄像机模型)相关。给定单应性可以通过计算被表示并处理为矩阵(通过阵列或其它合适的数据结构来实现)。
[0129]
作为示例,由单应性引擎1804计算表示道路的第一图像帧a到道路的第二图像帧b的变换的第一单应性h
ab
。可以根据第一图像帧a中道路的匹配图像点和第二图像b中道路的图像点的对应集合来计算第一单应性h
ab

[0130]
在示例中,可以基于自我运动和地平面信息将单应性h表示为:其中r和t分别表示从em 1854的旋转和平移(例如,从帧a到帧b),camh表示来自摄像机高度信息1864的摄像机高度,n表示来自gp 1858的平面法向量,k和k-1
表示校准元素。
[0131]
也可以由单应性引擎1804从第二图像帧b中的道路上的匹配图像点和第三图像帧
c中的道路上的相应图像点计算第二单应性h bc,其表示道路的第二图像帧b到道路的第三图像帧c的变换。
[0132]
单应性引擎1804可以进一步例如通过矩阵乘法来链接第一单应性h
ab
和第二单应性h
bc
。通过使用链接的单应性作为初始猜测,可以计算出第三单应性h
ac
,它表示道路的第一图像到道路的第三图像的变换。
[0133]
在示例中,单应性引擎1804使用图像帧之间的自我运动来计算单应性。例如,第一图像帧a和第二图像帧b之间测得的旋转(表示为r
ab
)以及第一图像帧a和第二图像帧b之间的平移(t
ab
)分别与第二图像帧b和第三图像帧c之间的旋转和平移(表示为r
bc
和t
bc
)链接在一起。该自我运动链产生对第一图像帧a和第三图像帧c之间的旋转和平移(表示为r
ac
和t
ac
)的确定。单应性引擎1804使用自我运动r
ab
和t
ab
来更新平面法向量n
bc
,该平面法向量是在帧c的坐标系中使用帧b和c计算的平面法线。它表示第二和第三图像帧b和c共同的稳定参考平面。单应性引擎1804确定表示可用于与三个图像a、b和c的序列有关的所有单应性的稳定参考帧的更新平面法向量(例如,n
bc
)。接下来,单应性引擎1804基于旋转r
ac
、平移t
ac
、和平面法向量n
ac
,组成针对第一图像帧a和第三帧c之间的图像帧的转变的单应性h
ac

[0134]
在示例中,将预变形之后的稳健跟踪应用于计算单应性。这用于导出自我运动和平面估计以调整先前的平面估计。自我运动和经调整的平面模型相结合以获得单应性。作为示例,可以由自我运动传感器和处理引擎提供自我运动。这种类型的引擎使用基本矩阵对道路上的点和道路上方的点进行稳健性跟踪。它还结合了任何可用的惯性传感器和速度计信息。由地平面引擎提供地平面信息。该引擎(在预变形之后)跟踪道路上的点,然后使用计算出的自我运动得出每个点的深度,以产生这些点的3d坐标。此后,通过算法将平面拟合到3d点。自我运动和平面相结合以提供单应性。
[0135]
在示例中,可以实现道路表面的各个参数模型。例如,可以通过通信地耦合的行驶路径几何结构或对象感测子系统来提供3d样条曲线模型。作为一个这种子系统的示例,由intel公司的子公司mobileye制造的道路体验管理(road experience management tm,rem)引擎可以以3d样条曲线的形式提供道路特征的表示。例如,车道标志可被表示为3d样条曲线。子系统将3d样条曲线特征表示与图像对齐。3d样条曲线特征表示可被投影回捕获的道路的图像上以进行进一步处理。
[0136]
3d样条曲线的每个点都有3d坐标。在示例中,该数据可以用于沿着捕获图像的行内插和外推与3d样条曲线相关联的3d位置。边的外推可以是零阶保持(即,常数)、一阶保持(例如,基于两个样条曲线的线性扩展)等。在示例中,内插可以与某些样条曲线到位于图片本身之外的虚拟图像坐标的已知扩展一起发生。
[0137]
内插和外推可以为图像下部中的所有点产生3d坐标。这些点可以在光滑的3d表面上。继而,该表面可以用于使先前的图像向当前图像变形(反之亦然)。
[0138]
在可以访问多个重叠视图的示例中(例如,如参考图22和23所描述的),可以由单应性引擎1804使用视场的组合来计算单应性。例如,可以从对齐平坦道路表面的重叠区域的左前视场2300a到前中心视场2300b(在时间t2)获得单应性,该单应性可以用于使左前视场2300c的图像变形到前中心视场2300b的图像。另外,可以在时间t1处的前中心视场2300b的图像与时间t2处的前中心视场2300b的图像之间计算单应性(如在单眼情况下)。此外,可以从左前视场2300a的图像(在时间t1处)到前中心视场2300b的图像(也在时间t1处)计算
单应性。使用该单应性,左前视场2300a的图像(在时间t1处)可以被链式变形(chain-warped)以与前中心视场2300b的图像(在时间t2处)对齐。
[0139]
在示例中,左前视场2300a的图像(在时间t1处)和前中心视场2300b的图像(也在时间t1处)之间的单应性是从以下项得出的:用于前中心视场的图像2300a(在时间t1)和前中心视场的图像(在时间t2处)之间的单应性的平面法线、左前摄像机2212a和前向摄像机2212b的已知位置(外部校准)、以及每个摄像机的内部校准参数(例如,焦距和镜头失真)。
[0140]
该技术可以与全局快门摄像机一起使用,但是在滚动快门摄像机的情况下或在非同步摄像机的情况下可能会引入误差。在后一种情况下,可以使用重叠道路表面之间的3d点和跟踪点并计算单应性来从图像中得出两个摄像机的相对位置。由于用于对齐的单应性通常使用一致的地平面,因此可以将从跟踪得出的单应性分解以给出相对运动,并且可以使用该运动和一致的接地平面法线来构造新的单应性。
[0141]
图像变形引擎1806被配置为对三个图像帧1818中的两个执行变形操作。例如,第一图像帧a被变形到第三图像帧c,第二图像帧b被变形到第三图像帧c。在该示例中,图像帧c可以表示当前图像,图像帧b表示前一图像,而图像帧a表示再前一图像。输出是变形图像1880。
[0142]
核点图像生成器引擎1808被配置为以一个或多个图像的格式生成核点位置数据1878。核点是表示前向运动的方向的向量。在示例中,图像格式的核点位置数据1878包括一对图像,其中每个图像具有与图像帧a、b和c相同或相似的分辨率。表示核点位置数据的图像对中的第一图像包含“像素”,这些“像素”表示它们沿x轴距核点的相应距离。表示核点位置数据的图像对中的第二个图像包含“像素”,这些“像素”表示它们沿y轴距核点的相应距离。
[0143]
运动信息图像生成器引擎1810被配置为产生表示交通工具的测量运动的图像格式的运动标记1876。例如,图像格式的运动标记1876可以具有与核点位置数据1878相同的维数。图像格式的运动标记1876的内容可以包括具有表示交通工具运动的固定值的“像素”。在示例中,图像格式的运动标记1876中的交通工具运动可以基于em 1854。在示例中,图像格式的运动标记1876中的交通工具运动还基于摄像机高度信息1864。在示例中,针对图像格式的数据结构1876中的图像的每个“像素”,将沿前向(z轴)方向的平移的当前量度与摄像机高度的比值(表示为tz/d)提供为恒定值。
[0144]
图19示出了根据实施例的用于通过摄像机进行交通工具环境建模的方法1900的示例的流程图。在例如上面或下面描述的计算硬件(例如,处理电路)中实现方法1900的操作。
[0145]
在操作1905,获得表示场景的按时间排序的图像序列。这里,图像序列中的一个图像包括当前图像。图像可以由单目成像系统捕获。在示例中,图像序列的该部分包括紧接当前图像之前的图像。在示例中,图像序列该一部分总共是三个图像。在示例中,图像序列的该部分包括当前图像之前的图像,这些图像被图像序列中的一个或多个图像隔开。在示例中,图像序列的部分包括紧接在当前图像之前的图像。
[0146]
在操作1910,将数据集提供给ann以产生场景的三维结构。在示例中,数据集包括图像序列的一部分—其中图像序列的该部分包括当前图像以及捕获图像的传感器的运动。可以从传感器的运动来计算核点。图像格式中的核点可以被输入到ann中。
[0147]
在示例中,将核点提供为具有与当前图像相同维数的梯度图像。这里,梯度图像中的像素的值表示当前图像中的像素距核点的距离。在示例中,基线为至少0.5m。在示例中,梯度图像的分辨率低于当前图像。在示例中,梯度图像仅表示距核点的水平距离。在示例中,第二梯度图像被提供给ann以表示距核点的竖直距离。
[0148]
在示例中,传感器的运动被提供为具有与当前图像相同维数的恒定值图像。在示例中,恒定值是传感器的前向运动与传感器距平面的高度的比值。
[0149]
在操作1915,使用伽马图像对场景进行建模。在示例中,场景的三维结构是伽马图像。这里,伽马图像包括具有伽马值的像素,该伽马值是点在地平面上方的高度与距捕获当前图像的传感器的距离的比值。
[0150]
在示例中,ann是卷积神经网络(cnn)。在示例中,传感器和核点的运动在瓶颈层处被提供给cnn。
[0151]
在示例中,使用三维结构来调用第二ann,以确定对象在场景内移动还是不移动。
[0152]
在示例中,通过无监督训练技术来训练ann,其中通过测量位置的预测伽马与该位置处的传感器运动之间的差异来确定误差,传感器运动包括垂直于地平面的传感器的俯仰、偏航、侧倾或平移。在示例中,通过无监督训练技术来训练ann,其中通过测量当前图像的模型和当前图像之间的差异来确定误差,当前图像的模型经由与当前图像同时捕获的图像的伽马变形而产生。当前图像可以由主摄像机或图像传感器捕获,并且与当前图像同时捕获的图像可以由左前或右前摄像机或图像传感器捕获。主、左和右摄像机可以安装在交通工具上或交通工具中。
[0153]
实施例可以在硬件、固件和软件中的一个或组合中实现。实施例还可以被实现为存储在机器可读存储装置上的指令,所述指令可以由至少一个处理器读取和执行以执行本文描述的操作。机器可读存储装置可以包括用于以由机器(例如,计算机)可读的形式存储信息的任何非暂态机制。例如,机器可读存储装置可以包括只读存储器(rom)、随机存取存储器(ram)、磁盘存储介质、光存储介质、闪速存储器装置、以及其它存储装置和介质。
[0154]
如本文所描述的示例可以包括逻辑或多个组件,或者可以在逻辑或多个组件上操作,所述逻辑或多个组件是例如模块、知识产权(ip)块或核、或机制。此类逻辑或组件可以是通信地耦合到一个或多个处理器以便执行本文描述的操作的硬件、软件或固件。逻辑或组件可以是硬件模块(例如,ip块),并且因此可以被认为是能够执行指定操作的有形实体,并且可以以某种方式来配置或布置。在示例中,电路可以以指定的方式被布置(例如,在内部或相对于例如其它电路的外部实体)为ip块、ip核、片上系统(soc)等等。
[0155]
在示例中,一个或多个计算机系统(例如,独立的客户端或服务器计算机系统)或一个或多个硬件处理器的整体或部分可以由固件或软件(例如,指令、应用部分或应用)配置为操作以执行指定操作的模块。在示例中,软件可以驻留在机器可读介质上。在示例中,当由模块的底层硬件执行时,软件使硬件执行指定的操作。因此,术语硬件模块被理解成涵盖有形实体,例如是被物理地构造、具体地配置(例如,硬连线)或临时地(例如,暂态地)配置(例如,编程)成以指定方式操作或执行本文描述的任何操作的部分或全部的实体。
[0156]
考虑模块被临时配置的示例,模块中的每个不需要在任何一个时刻被实例化。例如,在模块包括使用软件配置的通用硬件处理器的情况下;通用硬件处理器可以在不同的时间被配置为相应不同的模块。软件可以相应地配置硬件处理器,例如,以在一个时间实例
构成特定模块,并且在不同的时间实例构成不同的模块。模块也可以是软件或固件模块,其操作以执行本文描述的方法论。
[0157]
ip块(也称为ip核)是逻辑、单元或集成电路的可重用单元。ip块可以用作现场可编程门阵列(fpga)、专用集成电路(asic)、可编程逻辑装置(pld)、片上系统(soc)等等的一部分。它可以被配置用于特定目的,例如数字信号处理或图像处理。示例ip核包括中央处理单元(cpu)核、集成图形、安全性、输入/输出(i/o)控制、系统代理、图形处理单元(gpu)、人工智能、神经处理器、图像处理单元、通信接口、存储器控制器、外围装置控制、平台控制器中枢等等。
[0158]
图20示出了示例机器2000的框图,可以在该机器上执行所讨论的任何一种或多种技术(例如方法)。如本文所述,示例可以包括机器2000中的逻辑或多个组件或机构,或可以由其操作。电路(例如,处理电路)是在机器2000的有形实体中实现的电路的集合,包括硬件(例如,简单电路、门、逻辑等)。电路成员资格可以随着时间推移是灵活的。电路包括可以在操作时单独或组合执行指定操作的成员。在示例中,电路的硬件可以被不变地设计为执行特定的操作(例如,硬连线)。在示例中,电路的硬件可以包括可变连接的物理组件(例如,执行单元、晶体管、简单电路等),包括经物理修改(例如,磁地、电地、不变质量粒子的可移动地布置等)来编码特定操作的指令的机器可读介质。在连接物理组件时,硬件组件的基础电性质会发生变化,例如从绝缘体变为导体,反之亦然。该指令使得嵌入式硬件(例如,执行单元或加载机构)能够通过可变连接在硬件中创建电路的成员,以在操作时执行特定操作的部分。因此,在示例中,机器可读介质元件是电路的一部分,或者在裝置操作时通信地耦合到电路的其它组件。在示例中,任何物理组件可以在一个以上电路的一个以上成员中使用。例如,在操作中,执行单元可以在一个时间点在第一电路的第一电路单元中使用,并且可以在不同的时间被第一电路中的第二电路单元或第二电路中的第三电路单元重用。关于机器2000的这些组件的其它示例如下。
[0159]
在示例中,机器2000可以作为独立裝置操作,或者可以连接(例如,联网)到其它机器。在网络部署中,机器2000可以在服务器-客户端网络环境中以服务器机器、客户端机器或两者的资格运行。在示例中,机器2000可以在对等(p2p)(或其它分布式)网络环境中充当对等机器。机器2000可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、移动电话、web设备、网络路由器、交换机或网桥、或能够执行指令(顺序的或其它方式)的任何机器,这些指令指定该机器要采取的动作。此外,虽然仅示出了单个机器,但是术语“机器”也应被理解为包括机器的任何集合,这些机器单独地或共同地执行一组(或多组)指令以执行本文所讨论的任何一个或多个方法,例如,云计算、软件即服务(saas)、其它计算机集群配置。
[0160]
机器(例如,计算机系统)2000可以包括硬件处理器2002(例如,中央处理单元(cpu)、图形处理单元(gpu)、硬件处理器核、或其任意组合),主存储器2004,静态存储器(例如,用于固件、微代码、基本输入输出(bios)、统一可扩展固件接口(uefi)等的存储器或存储裝置)2006,和大容量存储裝置2008(例如,硬盘驱动器、磁带驱动器、闪存、或其它块裝置),其中一些或全部可经由互链(例如,总线)相互通信2030。机器2000还可包括显示单元2010、字母数字输入裝置2012(例如,键盘)、用户界面(ui)导航裝置2014(例如,鼠标)。在示例中,显示单元2010、输入裝置2012和ui导航裝置2014可以是触摸屏显示器。机器2000可以
另外包括存储裝置(例如,驱动单元)2008、信号生成裝置2018(例如,扬声器)、网络接口裝置2020、以及一个或多个传感器2016,例如全球定位系统(gps)传感器、罗盘、加速度计、或其它传感器。机器2000可以包括输出控制器2028,例如,串行(例如,通用串行总线(usb)、并行、或其它有线或无线(例如,红外(ir)、近场通信(nfc)等)连接以通信或控制一个或多个外围裝置(例如,打印机、读卡器等)。
[0161]
处理器2002、主存储器2004、静态存储器2006、或大容量存储裝置2008的寄存器可以是机器可读介质2022、或包括机器可读介质2022,在机器可读介质2022上存储了一组或多组数据结构或指令2024(例如,软件),其中体现了本文描述的任何一种或多种技术或功能或由其来使用。指令2024还可以在由机器2000执行期间完全或至少部分地驻留在处理器2002、主存储器2004、静态存储器2006、或大容量存储裝置2008的任何寄存器内。在示例中,硬件处理器2002、主存储器2004、静态存储器2006、或大容量存储器2008之一或其任何组合可以构成机器可读介质2022。虽然机器可读介质2022被示为单个介质,但是术语“机器可读介质”可以包括被配置为存储一个或多个指令2024的单个介质或多个介质(例如,集中式或分布式数据库、和/或所关联的高速缓存和服务器)。
[0162]
术语“机器可读介质”可以包括能够存储、编码或携带由机器2000执行的指令并且使得机器2000执行本公开的任何一种或多种技术的任何介质,或者能够存储、编码或携带由此类指令使用或与之相关联的数据结构的任何介质。非限制性机器可读介质示例可以包括固态存储器、光介质、磁介质、和信号(例如,射频信号、其它基于光子的信号、声音信号等)。在示例中,非暂态机器可读介质包括具有多个粒子的机器可读介质,这些粒子具有不变(例如,静止)的质量,因此是物质的成分。因此,非暂态机器可读介质是不包括暂态传播信号的机器可读介质。非暂态机器可读介质的具体示例可以包括:非易失性存储器,例如半导体存储器裝置(例如,电可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom))和闪存裝置;磁盘,例如,内部硬盘和可移动磁盘;磁光盘;以及cd-rom和dvd-rom盘。
[0163]
在示例中,存储以其它方式提供在机器可读介质2022上的信息可以代表指令2024,例如指令2024本身或可以从中导出指令2024的格式。可以从中导出指令2024的这种格式可以包括源代码、编码指令(例如,以压缩或加密形式)、封装指令(例如,分成多个包)等。可以通过处理电路将机器可读介质2022中代表指令2024的信息处理成指令以实现所讨论的任何操作。例如,从信息中导出指令2024(例如,由处理电路进行的处理)可以包括:编译(例如,从源代码、目标代码等)、解释、加载、组织(例如,动态或静态链接)、编码、解码、加密、解密、封装、解封装、或以其它方式将信息处理成指令2024。
[0164]
在示例中,指令2024的导出可以包括信息的组装、编译或解释(例如,通过处理电路)以根据由机器可读介质2022提供的某种中间格式或预处理格式创建指令2024。当信息被提供在多个部分中时,该信息可以被组合、拆包和修改以创建指令2024。例如,信息可以在位于一个或多个远程服务器上多个压缩的源代码包(或目标代码或二进制可执行代码等)中。可以在通过网络传输时对源代码包进行加密,并在必要时对其进行解密、解压缩、组装(例如,链接),并在本地机器上编译或解释(例如,成为库、独立可执行文件等),并由本地机器执行。
[0165]
可以通过多种传输协议(例如,帧中继、互联网协议(ip)、传输控制协议(tcp)、用
户数据报协议(udp)、超文本传输协议(http)等)中的任何一种,经由网络接口裝置2020,使用传输介质,在通信网络2026上进一步发送或接收指令2024。示例性通信网络可以包括局域网(lan)、广域网(wan)、分组数据网络(例如,互联网)、移动电话网络(例如,蜂窝网络)、普通老式电话(pots)网络、和无线数据网络(例如,称为的电气和电子工程师协会(ieee)802.11标准族、称为的ieee 802.16标准族)、ieee 802.15.4标准族、对等对等(p2p)网络及其它。在示例中,网络接口裝置2020可以包括一个或多个物理插孔(例如,以太网、同轴、或电话插孔)或一个或多个天线以连接到通信网络2026。在示例中,网络接口裝置2020可以包括多个天线,以使用单输入多输出(simo)、多输入多输出(mimo)、或多输入单输出(miso)技术中的至少一种进行无线通信。术语“传输介质”应被认为包括能够存储、编码或携带供机器2000执行的指令的任何无形介质,并且包括数字或模拟通信信号或其它无形介质以促进这种软件的通信。传输介质是机器可读介质。
[0166]
图21是示出计算裝置的示例性硬件和软件架构的图示,其中示出了硬件组件和软件组件之间的各种接口。如hw所示,硬件组件位于分隔线下方,而由sw表示的软件组件位于分隔线上方。在硬件侧,处理裝置2102(可以包括一个或多个微处理器、数字信号处理器等,每个具有一个或多个处理器核)与存储器管理裝置2104和系统互连2106接口连接。存储器管理裝置2104提供由正被执行的处理使用的虚拟存储器和物理存储器之间的映射。存储器管理裝置2104可以是中央处理单元的组成部分,该中央处理单元还包括处理裝置2102。
[0167]
互连2106包括底板,例如,存储器、数据和控制线,以及与输入/输出裝置的接口,例如,pci、usb等。存储器2108(例如,动态随机存取存储器—dram)和例如闪存之类的非易失性存储器2109(例如,电可擦除只读存储器—eeprom、nand闪存、nor闪存等)通过存储器控制器2110与存储器管理裝置2104和互连2106接口连接。在示例中,该体系结构可以支持外围裝置的直接存储器访问(dma)。i/o裝置(包括视频和音频适配器、非易失性存储裝置、外部外围裝置链接,例如,usb,蓝牙等)以及网络接口裝置(例如,通过wi-fi或lte家庭接口进行通信的裝置)共同表示为i/o裝置和联网2112,其通过对应的i/o控制器2114与互连2106接口连接。
[0168]
在软件侧,预操作系统(pre-os)环境2116,其在初始系统开机时执行,并负责发起操作系统的启动。pre-os环境2116的一个传统示例是系统基本输入/输出系统(bios)。在当今的系统中,实现了统一的可扩展固件接口(uefi)。pre-os环境2116负责发起操作系统的开启,而且还根据本发明的某些方面为嵌入式应用程序提供执行环境。
[0169]
操作系统(os)2118提供了内核,该内核控制硬件裝置、管理对存储器中的程序的存储器访问、协调任务并促进多任务处理、组织要存储的数据、分配存储器空间和其它资源、将程序二进制代码加载到存储器中、发起应用程序的执行,该应用程序然后与用户并与硬件裝置进行交互,以及检测各种定义的中断并做出响应。而且,操作系统2118提供裝置驱动器以及各种公共服务,例如,促进与外围裝置接口连接和联网的那些公共服务,其为应用提供抽象以使得应用不需要负责处理这种公共操作的细节。操作系统2118另外提供图形用户界面(gui),该gui经由例如监视器、键盘、鼠标、麦克风、摄像机、触摸屏之类的外围裝置促进与用户交互。
[0170]
运行时间系统2120实现执行模型的部分,包括例如在函数调用之前将参数放到栈
上、盘输入/输出(i/o)的行为、以及与并行执行相关的行为之类的操作。运行时间系统2120还可以执行支持服务,例如,类型检查、调试、或代码生成和优化。
[0171]
库2122包括程序功能的集合,这些程序功能为应用程序提供进一步的抽象。这些包括例如共享库、动态链接库(dll)。库2122可以是操作系统2118、运行时间系统2120的组成部分,或者可以是附加特征,或者甚至是远程托管的。库2122定义了应用程序接口(api),应用程序2124可以通过该api进行各种函数调用,以调用操作系统2118提供的服务。除由协调计算裝置本身的基本可操作性的较低级系统程序执行的任务之外,应用程序2124是那些为用户执行有用任务的程序。
[0172]
图22是示出根据实施例的处理裝置2202的框图。在示例中,所示的两个或更多个处理裝置2202被形成在共同的半导体基板上。cpu 2240可以包含一个或多个处理核2242,根据处理器的特定架构,每个处理核具有一个或多个算术逻辑单元(alu)、指令取回单元、指令解码单元、控制单元、寄存器、数据栈指针、程序计数器、和其它必要的组件。作为说明性示例,cpu 2240可以是x86型的处理器。处理裝置2202还可以包括图形处理单元(gpu)2244。在示例中,gpu 2244可以是专用协处理器,其从cpu 2240分担了某些计算密集型操作,特别是与图形渲染相关联的那些操作。cpu 2240和gpu 2244一般可以协同工作,共享对存储器资源、i/o通道等的访问。
[0173]
在示例中,处理裝置2202还可以包括看管处理器2246。看管处理器2246一般不像cpu 2240和gpu 2244那样参与执行软件代码的处理工作。在示例中,看管处理器2246不与cpu 2240和gpu 2244共享存储器空间,并且因此不被布置成执行操作系统或应用程序。替代地,看管处理器2246可以执行支持cpu 2240、gpu 2244、和计算机系统的其它组件的技术工作的专用固件。在示例中,看管处理器被实现为微控制器裝置,其可以物理上与cpu 2240存在于同一集成电路管芯上,或者可以存在于不同的集成电路芯片上。看管处理器2246还可以包括一组专用的i/o裝置,以使其能够与外部实体进行通信。在一种类型的实施例中,看管处理器2246是使用可管理性引擎(me)或平台安全处理器(psp)来实现的。输入/输出(i/o)控制器2248协调各种处理裝置2240、2244、2246之间以及与外部电路(比如,系统互连)之间的信息流。
[0174]
图23是示出根据实施例的cpu 2340的示例组件的框图。如图所示,cpu 2340包括一个或多个核2352、高速缓存2354、和cpu控制器2356,它们协调(一个或多个)核2352的互操作和任务,并提供接口以促进cpu2340的各种内部组件之间以及与例如存储器总线或系统互连之类的外部组件的数据流。在一实施例中,cpu 2340的所有示例组件都被形成在共同的半导体基板。
[0175]
cpu 2340包括非易失性存储器2358(例如,闪存、eeprom等),用于存储基础代码的某些部分,例如,初始化引擎和微代码。而且,cpu2340可以与外部(例如,形成在单独的ic上)非易失性存储器裝置2360接口连接,该非易失性存储裝置2360存储由初始化引擎启用的基础代码,例如,系统bios或uefi代码。
[0176]
附加注释和示例示例1是一种用于对场景建模的装置,所述装置包括:硬件接口,所述硬件接口用于获得表示场景的图像的按时间排序的序列,所述按时间排序的序列包括多个图像,图像的所述序列中的一个图像是当前图像,所述场景由单目成像系统捕获;以及处理电路,所述
处理电路用于:向人工神经网络(ann)提供数据集合以产生所述场景的三维结构,所述数据集合包括:图像的所述序列的一部分,图像的所述序列的所述部分包括所述当前图像;以及捕获了图像的所述序列的传感器的运动;以及使用所述场景的所述三维结构来对所述场景建模,其中针对所述场景中的移动对象和固定对象两者来确定所述三维结构。
[0177]
在示例2中,示例1的主题包括,其中,从捕获了图像的所述序列的所述传感器的所述运动导出核点,并且其中所述核点作为具有与所述当前图像相同的维度的梯度图像而被提供,并且所述梯度图像中的像素的值表示距所述当前图像中的像素的所述核点的距离。
[0178]
在示例3中,示例2的主题包括,其中,所述梯度图像仅表示距所述核点的水平距离,并且其中第二梯度图像被提供给所述ann以表示距所述核点的竖直距离。
[0179]
在示例4中,示例1-3的主题包括,其中,从捕获了图像的所述序列的所述传感器的所述运动导出核点,并且其中所述核点作为梯度图像而被提供给所述ann的层,并且其中所述核点的维度匹配所述ann的所述层。
[0180]
在示例5中,示例1-4的主题包括,其中,所述传感器的所述运动作为具有与所述当前图像相同的维度的恒定值图像而被提供。
[0181]
在示例6中,示例5的主题包括,其中,所述恒定值是所述传感器的前向运动与所述传感器距所述平面的高度的比率。
[0182]
在示例7中,示例1-6的主题包括,其中,所述传感器的所述运动作为恒定值图像而被提供给所述ann的层,并且其中所述恒定值图像的维度匹配所述ann的所述层。
[0183]
在示例8中,示例1-7的主题包括,其中,所述处理电路配置成使用所述三维结构来调用第二ann以确定对象在所述场景内是移动的还是不移动的。
[0184]
在示例9中,示例1-8的主题包括,其中,所述ann通过无监督训练技术来训练,在所述无监督训练技术中,通过测量当前图像的模型与所述当前图像之间的差异来确定误差,所述当前图像的所述模型经由与所述当前图像同时捕获的图像的伽马变形而产生。
[0185]
在示例10中,示例9的主题包括,其中,所述当前图像的所述模型基于由立体成像系统捕获的多个图像,所述立体成像系统独立于所述单目成像系统。
[0186]
在示例11中,示例10的主题包括,其中,所述立体成像系统包括第一图像传感器和第二图像传感器,所述第一图像传感器和所述第二图像传感器具有彼此重叠的视场。
[0187]
在示例12中,示例11的主题包括,其中,所述第一图像传感器和所述第二图像传感器实现滚动快门。
[0188]
在示例13中,示例1-12的主题包括,其中,所述单目成像系统使用滚动快门摄像机。
[0189]
示例14是一种用于对场景建模的方法,所述方法包括:获得表示场景的图像的按时间排序的序列,所述按时间排序的序列包括多个图像,图像的所述序列中的一个图像是当前图像,所述场景由单目成像系统捕获;向人工神经网络(ann)提供数据集合以产生所述场景的三维结构,所述数据集合包括:图像的所述序列的一部分,图像的所述序列的所述部分包括所述当前图像;以及捕获了图像的所述序列的传感器的运动;以及使用所述场景的所述三维结构来对所述场景建模,其中针对所述场景中的移动对象和固定对象两者来确定所述三维结构。
[0190]
在示例15中,示例14的主题包括,其中,从捕获了图像的所述序列的所述传感器的
所述运动导出核点,并且其中所述核点作为具有与所述当前图像相同的维度的梯度图像而被提供,并且所述梯度图像中的像素的值表示距所述当前图像中的像素的所述核点的距离。
[0191]
在示例16中,示例15的主题包括,其中,所述梯度图像仅表示距所述核点的水平距离,并且其中第二梯度图像被提供给所述ann以表示距所述核点的竖直距离。
[0192]
在示例17中,示例14-16的主题包括,其中,从捕获了图像的所述序列的所述传感器的所述运动导出核点,并且其中所述核点作为梯度图像而被提供给所述ann的层,并且其中所述核点的维度匹配所述ann的所述层。
[0193]
在示例18中,示例14-17的主题包括,其中,所述传感器的所述运动作为具有与所述当前图像相同的维度的恒定值图像而被提供。
[0194]
在示例19中,示例18的主题包括,其中,所述恒定值是所述传感器的前向运动与所述传感器距所述平面的高度的比率。
[0195]
在示例20中,示例14-19的主题包括,其中,所述传感器的所述运动作为恒定值图像而被提供给所述ann的层,并且其中所述恒定值图像的维度匹配所述ann的所述层。
[0196]
在示例21中,示例14-20的主题包括,使用所述三维结构来调用第二ann以确定对象在所述场景内是移动的还是不移动的。
[0197]
在示例22中,示例14-21的主题包括,其中,所述ann通过无监督训练技术来训练,在所述无监督训练技术中,通过测量当前图像的模型与所述当前图像之间的差异来确定误差,所述当前图像的所述模型经由与所述当前图像同时捕获的图像的伽马变形而产生。
[0198]
在示例23中,示例22的主题包括,其中,所述当前图像的所述模型基于由立体成像系统捕获的多个图像,所述立体成像系统独立于所述单目成像系统。
[0199]
在示例24中,示例23的主题包括,其中,所述立体成像系统包括第一图像传感器和第二图像传感器,所述第一图像传感器和所述第二图像传感器具有彼此重叠的视场。
[0200]
在示例25中,示例24的主题包括,其中,所述第一图像传感器和所述第二图像传感器实现滚动快门。
[0201]
在示例26中,示例14-25的主题包括,其中,所述单目成像系统使用滚动快门摄像机。
[0202]
示例27是至少一种机器可读介质,所述机器可读介质包括用于对场景建模的指令,所述指令当由机器执行时,使所述机器执行以下操作,包括:获得表示场景的图像的按时间排序的序列,所述按时间排序的序列包括多个图像,图像的所述序列中的一个图像是当前图像,所述场景由单目成像系统捕获;向人工神经网络(ann)提供数据集合以产生所述场景的三维结构,所述数据集合包括:图像的所述序列的一部分,图像的所述序列的所述部分包括所述当前图像;以及捕获了图像的所述序列的传感器的运动;以及使用所述场景的所述三维结构来对所述场景建模,其中针对所述场景中的移动对象和固定对象两者来确定所述三维结构。
[0203]
在示例28中,示例27的主题包括,其中,从捕获了图像的所述序列的所述传感器的所述运动导出核点,并且其中所述核点作为具有与所述当前图像相同的维度的梯度图像而被提供,并且所述梯度图像中的像素的值表示距所述当前图像中的像素的所述核点的距离。
[0204]
在示例29中,示例28的主题包括,其中,所述梯度图像仅表示距所述核点的水平距离,并且其中第二梯度图像被提供给所述ann以表示距所述核点的竖直距离。
[0205]
在示例30中,示例27-29的主题包括,其中,从捕获了图像的所述序列的所述传感器的所述运动导出核点,并且其中所述核点作为梯度图像而被提供给所述ann的层,并且其中所述核点的维度匹配所述ann的所述层。
[0206]
在示例31中,示例27-30的主题包括,其中,所述传感器的所述运动作为具有与所述当前图像相同的维度的恒定值图像而被提供。
[0207]
在示例32中,示例31的主题包括,其中,所述恒定值是所述传感器的前向运动与所述传感器距所述平面的高度的比率。
[0208]
在示例33中,示例27-32的主题包括,其中,所述传感器的所述运动作为恒定值图像而被提供给所述ann的层,并且其中所述恒定值图像的维度匹配所述ann的所述层。
[0209]
在示例34中,示例27-33的主题包括,使用所述三维结构来调用第二ann以确定对象在所述场景内是移动的还是不移动的。
[0210]
在示例35中,示例27-34的主题包括,其中,所述ann通过无监督训练技术来训练,在所述无监督训练技术中,通过测量当前图像的模型与所述当前图像之间的差异来确定误差,所述当前图像的所述模型经由与所述当前图像同时捕获的图像的伽马变形而产生。
[0211]
在示例36中,示例35的主题包括,其中,所述当前图像的所述模型基于由立体成像系统捕获的多个图像,所述立体成像系统独立于所述单目成像系统。
[0212]
在示例37中,示例36的主题包括,其中,所述立体成像系统包括第一图像传感器和第二图像传感器,所述第一图像传感器和所述第二图像传感器具有彼此重叠的视场。
[0213]
在示例38中,示例37的主题包括,其中,所述第一图像传感器和所述第二图像传感器实现滚动快门。
[0214]
在示例39中,示例27-38的主题包括,其中,所述单目成像系统使用滚动快门摄像机。
[0215]
示例40是一种用于对场景建模的设备,包括:用于获得表示场景的图像的按时间排序的序列的部件,所述按时间排序的序列包括多个图像,图像的所述序列中的一个图像是当前图像,所述场景由单目成像系统捕获;用于向人工神经网络(ann)提供数据集合以产生所述场景的三维结构的部件,所述数据集合包括:图像的所述序列的一部分,图像的所述序列的所述部分包括所述当前图像;以及捕获了图像的所述序列的传感器的运动;以及用于使用所述场景的所述三维结构来对所述场景建模的部件,其中针对所述场景中的移动对象和固定对象两者来确定所述三维结构。
[0216]
在示例41中,示例40的主题包括,其中,从捕获了图像的所述序列的所述传感器的所述运动导出核点,并且其中所述核点作为具有与所述当前图像相同的维度的梯度图像而被提供,并且所述梯度图像中的像素的值表示距所述当前图像中的像素的所述核点的距离。
[0217]
在示例42中,示例41的主题包括,其中,所述梯度图像仅表示距所述核点的水平距离,并且其中第二梯度图像被提供给所述ann以表示距所述核点的竖直距离。
[0218]
在示例43中,示例40-42的主题包括,其中,从捕获了图像的所述序列的所述传感器的所述运动导出核点,并且其中所述核点作为梯度图像而被提供给所述ann的层,并且其
中所述核点的维度匹配所述ann的所述层。
[0219]
在示例44中,示例40-43的主题包括,其中,所述传感器的所述运动作为具有与所述当前图像相同的维度的恒定值图像而被提供。
[0220]
在示例45中,示例44的主题包括,其中,所述恒定值是所述传感器的前向运动与所述传感器距所述平面的高度的比率。
[0221]
在示例46中,示例40-45的主题包括,其中,所述传感器的所述运动作为恒定值图像而被提供给所述ann的层,并且其中所述恒定值图像的维度匹配所述ann的所述层。
[0222]
在示例47中,示例40-46的主题包括,用于以下操作的部件:使用所述三维结构来调用第二ann以确定对象在所述场景内是移动的还是不移动的。
[0223]
在示例48中,示例40-47的主题包括,其中,所述ann通过无监督训练技术来训练,在所述无监督训练技术中,通过测量当前图像的模型与所述当前图像之间的差异来确定误差,所述当前图像的所述模型经由与所述当前图像同时捕获的图像的伽马变形而产生。
[0224]
在示例49中,示例48的主题包括,其中,所述当前图像的所述模型基于由立体成像系统捕获的多个图像,所述立体成像系统独立于所述单目成像系统。
[0225]
在示例50中,示例49的主题包括,其中,所述立体成像系统包括第一图像传感器和第二图像传感器,所述第一图像传感器和所述第二图像传感器具有彼此重叠的视场。
[0226]
在示例51中,示例50的主题包括,其中,所述第一图像传感器和所述第二图像传感器实现滚动快门。
[0227]
在示例52中,示例40-51的主题包括,其中,所述单目成像系统使用滚动快门摄像机。
[0228]
示例53是至少一种机器可读介质,所述机器可读介质包括指令,所述指令在由处理电路执行时使所述处理电路执行用于实现示例1-52中的任一项的操作。
[0229]
示例54是一种设备,所述设备包括用于实现示例1-52中的任一项的部件。
[0230]
示例55是一种用于实现示例1-52中的任一项的系统。
[0231]
示例56是一种用于实现示例1-52中的任一项的方法。
[0232]
上面的详细描述包括对附图的引用,这些附图形成了详细描述的一部分。附图通过说明的方式示出了可以实践的具体实施例。这些实施例在本文中也被称为“示例”。这些示例可以包括除了示出或描述的那些元件之外的元件。然而,还设想的是包括所示出或所描述的元件的示例。此外,还设想的是使用针对特定示例(或其一个或多个方面)或针对本文示出或描述的其它示例(或其一个或多个方面)示出或描述的那些元件(或其一个或多个方面)的任何组合或排列的示例。
[0233]
本文档中引用的出版物、专利、和专利文件都通过引用以其整体并入本文,就像通过引用将其单独并入一样。在本文档与通过引用并入的那些文档之间的用法不一致的情况下,所并入的(一个或多个)引用中的用法是对本文档的用法的补充;对于冲突的不一致之处,以本文档中的用法为准。
[0234]
在本文档中,如专利文件中常用的那样,独立于“至少一个”或“一个或多个”的任何其它实例或用法,术语“一”或“一个”包括一个或不止一个。在本文档中,术语“或”用于指代非排他性的,从而“a或b”包括“a但不包含b”,“b但不包含a”,以及“a和b”,除非另有说明。在所附权利要求中,术语“包含”和“在其中”被用作相应术语“包括”和“其中”的简明英语等
效。此外,在所附权利要求中,术语“包含”和“包括”是开放式的,也就是说,除权利要求中跟在此术语之后列出的那些元素之外,还包括其它元素的系统、裝置、物品、或处理仍被认为落入该权利要求的范围。此外,在所附权利要求中,术语“第一”、“第二”和“第三”等仅用作标签,并且不旨在暗示其对象的数值顺序。
[0235]
上面的描述旨在是说明性的,而不是限制性的。例如,上述示例(或其一个或多个方面)可以与其它示例组合使用。例如,可以由本领域的普通技术人员在回顾以上描述之后使用其它实施例。摘要是为了允许读者快速地确定技术公开的性质。摘要是在理解其将不会被用来解释或限制权利要求的范围或含义的情况下提交的。另外,在以上详细描述中,各种特征可以被分组在一起以简化本公开。然而,权利要求可能没有阐述本文公开的每一个特征,因为实施例可能以所述特征的子集为特征。进一步地,实施例可以包括比在特定示例中公开的那些特征更少的特征。因此,以下权利要求据此被结合到详细描述中,其中权利要求独立地作为单独的实施例。要参考所附权利要求以及这些权利要求被赋予的等同物的全部范围来确定本文所公开的实施例的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献