CN116057578A - 利用相机进行车辆环境建模 - Google Patents
利用相机进行车辆环境建模 Download PDFInfo
- Publication number
- CN116057578A CN116057578A CN202180055102.1A CN202180055102A CN116057578A CN 116057578 A CN116057578 A CN 116057578A CN 202180055102 A CN202180055102 A CN 202180055102A CN 116057578 A CN116057578 A CN 116057578A
- Authority
- CN
- China
- Prior art keywords
- image
- uncorrected
- coordinates
- previous
- gamma
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 claims abstract description 80
- 238000000034 method Methods 0.000 claims abstract description 64
- 238000012545 processing Methods 0.000 claims abstract description 63
- 238000012549 training Methods 0.000 claims description 39
- 238000012937 correction Methods 0.000 claims description 11
- 238000012417 linear regression Methods 0.000 claims description 9
- 239000003550 marker Substances 0.000 claims description 4
- 230000033001 locomotion Effects 0.000 description 29
- 230000015654 memory Effects 0.000 description 29
- 230000006870 function Effects 0.000 description 28
- 230000000875 corresponding effect Effects 0.000 description 16
- 238000004458 analytical method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000001514 detection method Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 8
- 238000013527 convolutional neural network Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 239000000725 suspension Substances 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000003384 imaging method Methods 0.000 description 4
- 230000005291 magnetic effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 241001465754 Metazoa Species 0.000 description 2
- 241001637516 Polygonia c-album Species 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 101001093748 Homo sapiens Phosphatidylinositol N-acetylglucosaminyltransferase subunit P Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 238000003702 image correction Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000001429 visible spectrum Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
- G06V20/588—Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W40/00—Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
- B60W40/02—Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to ambient conditions
- B60W40/06—Road conditions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
- G06F18/24137—Distances to cluster centroïds
- G06F18/2414—Smoothing the distance, e.g. radial basis function networks [RBFN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/18—Image warping, e.g. rearranging pixels individually
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/60—Image enhancement or restoration using machine learning, e.g. neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2420/00—Indexing codes relating to the type of sensors based on the principle of their operation
- B60W2420/40—Photo, light or radio wave sensitive means, e.g. infrared sensors
- B60W2420/403—Image sensing, e.g. optical camera
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/24—Aligning, centring, orientation detection or correction of the image
- G06V10/247—Aligning, centring, orientation detection or correction of the image by affine transforms, e.g. correction due to perspective effects; Quadrilaterals, e.g. trapezoids
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Traffic Control Systems (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本文描述了用于利用相机进行车辆环境建模的***和技术。用于对环境进行建模的设备包括:硬件传感器接口,用于获得表示道路环境的未校正图像的序列,该未校正图像的序列包括第一未校正图像、先前的未校正图像以及再先前的未校正图像;以及处理电路***,用于将第一未校正图像、先前的未校正图像以及再先前的未校正图像提供给人工神经网络(ANN)以产生场景的三维结构;确定选定单应性;并且将选定单应性应用于场景的三维结构以创建道路环境的模型。
Description
技术领域
本文描述的实施例大体上涉及计算机视觉技术,更具体地,涉及利用相机进行车辆环境建模。
背景技术
通常称为汽车的“自动驾驶”或“辅助驾驶”操作的自主或半自主汽车技术,正在商用和消费级车辆中快速发展和部署。这些***使用一系列传感器来连续观察车辆的运动和周围环境。可以使用各种传感器技术来观察车辆的周围环境,例如,道路表面和边界、其他车辆、行人、对象和危险、标志和道路标记、以及其他相关项。
用一个或多个相机实现的图像捕获传感器对于对象检测和识别以及读取标志和道路标记特别有用。基于相机的***已用于测量三维结构,例如道路的竖直轮廓、车道标记、和路缘,并用于检测对象或危险。期望实用的传感器***在变化的天气和道路条件下可靠地运行。这些期望趋向于在处理输入时带来无数挑战。在夜间来自阴影或灯光的输入噪声可能会干扰道路表面检测。潮湿的道路或其他反射性表面通常会引入明显的运动,这违反了道路表面模型。此外,考虑到这些道路表面检测的困难,在对道路表面进行建模以实现自主驾驶或辅助驾驶时需要对危险进行快速(例如,实时)的检测给硬件带来了负担。
附图说明
在不一定按比例绘制的附图中,相似的数字可以在不同的视图中描述相似的组件。具有不同字母后缀的相似数字可以表示相似组件的不同实例。在附图的各图中,通过示例而非限制的方式示出了一些实施例,其中:
图1是根据实施例的***的框图表示;
图2A是根据实施例的包括***的示例性车辆的图解式侧视图表示;
图2B是根据实施例的图2A所示的车辆和***的图解式顶视图表示;
图2C是根据实施例的包括***的车辆的另一实施例的图解式顶视图表示;
图2D是根据实施例的包括***的车辆的又一实施例的图解式顶视图表示;
图2E是根据实施例的示例性车辆控制***的图解式表示;
图3是根据实施例的车辆内部的图解式表示,包括用于车辆成像***的用户接口和后视镜;
图4是车辆环境的示例的框图;
图5是根据实施例的用于利用相机进行车辆环境建模的***的示例的框图;
图6示出了根据实施例的用于产生道路表面的伽马(gamma)模型的神经网络的示例;
图7示出了根据实施例的基于机器学习(ML)的竖直轮廓引擎的示例深度神经网络(DNN);
图8示出了根据实施例的DNN训练引擎的示例;
图9是根据实施例的示出用于对车辆周围的环境进行建模的方法的示例的流程图;
图10示出了根据实施例的与自动车辆控制***一起使用的用于对道路进行轮廓分析的基于相机的车载***;
图11示出了根据实施例的车辆上的多相机阵列;
图12示出了根据实施例的可由多相机阵列捕获的视场的示例;以及
图13是示出根据实施例的可以在上面执行本文讨论的技术(例如,方法)中任何一个或多个的示例机器的框图。
具体实施方式
在以下描述中,为了进行解释,阐述了众多具体细节,以提供对一些示例实施例的透彻理解。然而,明显地,本领域技术人员可以在没有这些具体细节的情况下实践本公开。
各种车辆环境建模技术可以与各种传感器配置一起使用。当使用相机(例如,可见光谱、红外(IR)等)时,传感器产生由像素组成的图像。像素的各种特征(例如颜色或亮度值)可用于建模。一般而言,为对动态环境建模,分析了一系列图像,并且基于像素在连续图像之间的移动,可以推断环境的各方面。这些方面可以包括如下特征,例如主车辆移动、其他车辆如何移动、图像中捕获的其他对象(例如,人、动物、球等)如何移动、道路上的障碍物、道路表面特征(例如,坑洼、减速带、车道标志等)等等。
在先前的***和实现方式中,人工智能(AI)***被训练以计算由图像捕获***捕获的场景的各方面。AI***(例如,机器学***面(例如,道路表面)的高度H与像素到传感器(例如,图像捕获设备)的距离Z之比。
根据伽马,可以确定像素高于道路的高度以及到该像素的距离。这样的道路表面建模对于例如避免坑洼或调整用于减速带的悬架可能是有用的。直接从传感器数据确定伽马(例如,通过ANN)可能优于其他技术(例如,使用二维(2D)光流来确定残余流,或者使用ANN来确定在平面上方的高度和到像素技术的传感器的距离),因为它强化了核点约束。
尽管可以训练ANN来直接确定给定点的深度或高度,但是使用伽马提供了一些好处。例如,伽马计算比深度更稳定,因为距平面的高度发生明显变化可能会导致距相机的深度发生小的相对变化。同样,在给定H和参考平面的情况下,可能计算深度Z,然后计算残余流,但这会增加复杂性,因为ANN为相同结果处理更多数据。在先前的实现方式中,这也是利用平面模型对图像进行预变形并提供自我运动(ego-motion,EM)(例如,传感器或车辆的运动,例如,核点和)作为输入的原因,其中TZ表示传感器向前的平移(例如,车辆在图像之间移动了多远)并且d′π表示传感器距平面的高度。
在计算深度Z或高度H而不是伽马的实现方式中,可以将单应性平面输入参数提供给ANN。例如,该平面可以被定义为水平线(例如,平面的消失线)和到该平面的距离。该线可以被提供为一对距离图像,并且到平面的距离可以被提供为恒定图像。这与上面的提供核点和TZ作为输入的方式类似。对齐输入图像以仅考虑旋转(例如,使用单应性,该单应性使用在无限远处平面)并计算Z。
在另一实现方式中,代替针对整个图像计算伽马然后仅使用沿特定路径的伽马(例如,用于悬架控制(suspension control)),可以训练ANN仅沿着指定路径产生伽马。例如,如果输出仅用于适用于车辆轮胎的事项(例如悬架控制),这可能会更加计算高效,因为去卷积运算可能在计算上很昂贵。可以以多种方式实现路径辨别(例如,仅为该路径产生伽马)。例如,可以在ANN的推断阶段给出路径作为输入,将ANN训练为仅输出沿该路径的值。在另一实现方式中,可以如上所述训练完整的ANN以产生伽马。然后,在推断期间,当给出路径时,做出关于在针对该路径的扩展阶段中需要哪些(去)卷积的确定并且仅应用那些去卷积。例如,为确定输出的完整行的伽马值,需要沿着整行进行卷积。然而,对于与路径有关的输出行的仅一段,仅需要在与该段相对应的特定范围内执行去卷积。
在先前的实现方式中,图像在输入到ANN之前首先进行校正。图像校正是将图像变换到公共图像平面上的过程。在本申请的上下文中,校正包括获取可能由于镜头几何形状而失真的原始图像并将其转换到针孔相机模型。针孔相机模型不包括由镜头和有限大小的光圈引起的物体的几何失真或模糊。
在本文档中描述的***和机制中,使用从图像捕获设备获得的未校正(即失真)图像对ANN进行训练。由于使用固定光圈和镜头,这些未校正的图像包括镜头失真和其他伪影。ANN产生伽马图作为输出。在训练ANN之后,ANN能够在推理过程中使用未校正的图像来产生伽马图。伽马图的部分被修正,然后可以使用传统的几何针孔等式来对车行道和周围环境进行建模。
处理时间和功耗都减少了,因为图像在作为输入提供给ANN之前不需要进行预处理。当使用校正时,它用于图像坐标的子集,这提供了更高的效率。下面将进一步描述这些特征和其他特征。
现在参考图1,图1是与所公开的实施例一致的***的框图表示。取决于特定实现方式的要求,***100可以包括各种组件。在一些示例中,***100可以包括处理单元110,图像获取单元120,和一个或多个存储器单元140、150。处理单元110可以包括一个或多个处理设备。在一些实施例中,处理单元110可以包括应用处理器180、图像处理器190或任何其他合适的处理设备。类似地,图像获取单元120可以包括任意数量的图像获取单元和组件,这取决于特定应用的要求。在一些实施例中,图像获取单元120可以包括一个或多个图像捕获设备(例如,相机),例如图像捕获设备122、图像捕获设备124和图像捕获设备126。在一些实施例中,***100还可以包括将处理单元110通信地连接到图像采集单元120的数据接口128。例如,数据接口128可以包括任何一个或多个有线和/或无线链路,用于将图像获取单元120获取的图像数据传输到处理单元110。
应用处理器180和图像处理器190都可以包括各种类型的处理设备。例如,应用处理器180和图像处理器190之一或两者可以包括一个或多个微处理器、预处理器(例如,图像预处理器)、图形处理器、中央处理单元(CPU)、支持电路、数字信号处理器、集成电路、存储器,或适合运行应用程序以及用于图像处理和分析的任何其他类型的设备。在一些实施例中,应用处理器180和/或图像处理器190可以包括任何类型的单核或多核处理器、移动设备微控制器、中央处理单元等。可以使用各种处理设备,包括例如可从诸如之类的制造商获得的处理器,并且可以包括各种架构(例如,x86处理器、等)。
在一些实施例中,应用处理器180和/或图像处理器190可以包括可从获得的任何EyeQ系列处理器芯片。这些处理器设计均包括多个具有本地存储器和指令集的处理单元。这样的处理器可以包括用于从多个图像传感器接收图像数据的视频输入,并且还可以包括视频输出能力。在一个示例中,使用以332Mhz运行的90纳米-微米技术。架构具有两个浮点、超线程32位RISC CPU(内核)、五个视觉计算引擎(VCE)、三个矢量微码处理器Denali 64位移动DDR控制器、128位内部超音速互连、双16位视频输入和18位视频输出控制器、16通道DMA和多个外设。MIPS34KCPU管理五个VCE、三个和DMA、第二个MIPS34K CPU和多通道DMA以及其他外设。五个VCE、三个和MIPS34K CPU可以执行多功能捆绑应用所需的密集视觉计算。在另一示例中,在所公开的示例中可以使用它是第三代处理器并且比强大六倍。在又一示例中,在所公开的示例中可以使用即***处理器。
虽然图1描绘了处理单元110中包括两个单独的处理设备,但是可以使用更多或更少的处理设备。例如,在一些示例中,可以使用单个处理设备来完成应用处理器180和图像处理器190的任务。在其他实施例中,这些任务可以由两个以上的处理设备来执行。
处理单元110可以包括各种类型的设备。例如,处理单元110可以包括各种设备,比如控制器、图像预处理器、中央处理单元(CPU)、支持电路、数字信号处理器、集成电路、存储器、或用于图像处理和分析的任何其他类型的设备。图像预处理器可以包括用于捕获、数字化和处理来自图像传感器的图像的视频处理器。CPU可以包括任意数量的微控制器或微处理器。支持电路可以是任何数量的本领域公知的电路,包括缓存、电源、时钟和输入-输出电路。存储器可以存储软件,该软件当由处理器执行时控制***的操作。例如,存储器可以包括数据库和图像处理软件,包括经训练的***,比如神经网络。存储器可以包括任意数量的随机存取存储器、只读存储器、闪存、盘驱动器、光存储装置、可移除存储装置和其他类型的存储装置。在一个实例中,存储器可以与处理单元110分开。在另一实例中,存储器可以集成到处理单元110中
每个存储器140、150可以包括软件指令,这些软件指令当由处理器(例如,应用处理器180和/或图像处理器190)执行时,可以控制***100的各个方面的操作。这些存储单元可以包括各种数据库和图像处理软件。存储器单元140、150可以包括随机存取存储器、只读存储器、闪存、盘驱动器、光存储装置、磁带存储装置、可移除存储装置和/或任何其他类型的存储装置。在一些示例中,存储器单元140、150可以与应用处理器180和/或图像处理器190分开。在其他实施例中,这些存储器单元可以集成到应用处理器180和/或图像处理器190中。
在一些实施例中,该***可以包括位置传感器130。位置传感器130可以包括适合于确定与***100的至少一个组件相关联的位置的任何类型的设备。在一些实施例中,位置传感器130可以包括GPS接收器。这样的接收器可以通过处理由全球定位***卫星广播的信号来确定用户位置和速度。来自位置传感器130的位置信息可用于应用处理器180和/或图像处理器190。
在一些实施例中,***100可以可操作地连接到***100可以安装在其中的车辆上的各种***、设备和单元,并且***100可以通过任何合适的接口(例如,通信总线)与车辆的***通信。***100可与之协作的车辆***的示例包括:节流***、制动***和转向***(例如,图2E的节流***220、制动***230和转向***240)。
在一些实施例中,***100可以包括用户接口170。用户接口170可以包括适合于向***100的一个或多个用户提供信息或从***100的一个或多个用户接收输入的任何设备,包括例如触摸屏、麦克风、键盘、指点设备、滚轮、相机、旋钮、按钮等。信息可以由***100通过用户接口170提供给用户。
在一些实施例中,***100可以包括地图数据库160。地图数据库160可以包括任何类型的用于存储数字地图数据的数据库。在一些示例中,地图数据库160可以包括与各种项目在参考坐标系中的位置有关的数据,这些项目包括道路、水域特征、地理特征、兴趣点等。地图数据库160能够不仅存储这些项目的位置,还存储与这些项目有关的描述符,例如,包括与任何存储的特征相关联的名称以及关于它们的其他信息。例如,数据库中可以包括已知障碍物的位置和类型、关于道路地形或道路沿线某些点的坡度的信息等。在一些实施例中,地图数据库160可以在物理上与***100的其他组件位于一起。替代地或附加地,地图数据库160或其一部分可以相对于***100的其他组件(例如,处理单元110)位于远程。在这样的实施例中,来自地图数据库160的信息可以通过到网络的有线或无线数据连接(例如,通过蜂窝网络和/或互联网等)被下载。
图像捕获设备122、124和126各自可以包括适合于从环境捕获至少一个图像的任何类型的设备。此外,可以使用任意数量的图像捕获设备来获取图像以输入到图像处理器。当前公开的主题的一些示例可以仅包括单个图像捕获设备或者可以仅用单个图像捕获设备来实现,而其他示例可以包括两个、三个或者甚至四个或更多个图像捕获设备或者可以用两个、三个或者甚至四个或更多个图像捕获设备来实现。下面,将参考图2B-图2E进一步描述图像捕获设备122、124和126。
应当理解,***100可以包括其他类型的传感器或可以与其他类型的传感器可操作地关联,其他类型的传感器包括例如:声学传感器、射频(RF)传感器(例如,雷达收发器)、LIDAR传感器。这样的传感器可以独立于图像获取单元120使用或与图像获取单元120协作使用。例如,来自雷达***(未示出)的数据可用于验证从图像获取单元120获取的处理图像接收的经处理信息,例如以过滤由图像获取单元120获取的处理图像导致的某些误报,或者它可以与来自图像获取单元120的图像数据或者来自图像获取单元120的图像数据的某一经处理变体或派生相结合或以其他方式进行补充。
***100或其各种组件可以并入各种不同的平台中。在一些实施例中,***100可被包括在车辆200上,如图2A所示。例如,车辆200可配备有处理单元110和***的任何其他组件100,如上文关于图1所述的。虽然在一些实施例中,车辆200可以仅配备有单个图像捕获设备(例如,相机),但在其他实施例中,例如结合图2B-图2E所讨论的那些,可以使用多个图像捕获设备。例如,如图2A所示的车辆200的图像捕获设备122和124中的任一个可以是ADAS(高级驾驶员辅助***)成像套件的一部分。
包括在车辆200上作为图像获取单元120的一部分的图像捕获设备可以位于任何合适的位置。在一些实施例中,如图2A-图2E和图3所示,图像捕获设备122可以位于后视镜附近。该位置可以提供与车辆200的驾驶员的视线类似的视线,这可以帮助确定对驾驶员而言什么是可见的和什么是不可见的。
也可以使用图像获取单元120的图像捕获设备的其他位置。例如,图像捕获设备124可以位于车辆200的保险杠上或保险杠中。这样的位置特别适用于具有宽视场的图像捕获设备。位于保险杠上的图像捕获设备的视线可能与驾驶员的视线不同。图像捕获设备(例如,图像捕获设备122、124和126)也可以位于其他位置。例如,图像捕获设备可以位于车辆200的侧镜中的一个或两个上、车辆200的车顶上、车辆200的引擎盖上、车辆200的后备箱上、车辆200的侧面上,安装在车辆200的任何窗户上、定位在车辆200的任何窗户后面或前面,以及安装在车辆200的前部和/或后部的灯光图形中或附近,等等。图像捕获单元120或作为图像捕获单元120中使用的多个图像捕获设备之一的图像捕获设备可以具有与车辆的驾驶员的视场(FOV)不同的FOV,并且不总是看到相同的物体。在一个示例中,图像获取单元120的FOV可以延伸超出典型驾驶员的FOV并且因此可以对在驾驶员的FOV之外的物体成像。在又一示例中,图像获取单元120的FOV是驾驶员FOV的某一部分。在一些实施例中,图像获取单元120的FOV对应于覆盖车辆前方的道路区域并且可能还覆盖道路周围的扇区。
除了图像捕获设备之外,车辆200可以包括***100的各种其他组件。例如,处理单元110可被包括在车辆200上,与车辆的引擎控制单元(ECU)集成或分离。车辆200还可以配备有位置传感器130(例如GPS接收器),并且还可以包括地图数据库160和存储器单元140和150。
图2A是根据本公开主题的示例的车辆成像***的图解式侧视图表示。图2B是图2A所示示例的图解式顶视图图示。如图2B所示,所公开的示例可包括车辆200,其包括***100和处理单元110,在***100中,第一图像捕获设备122定位在车辆200的后视镜附近和/或靠近驾驶员,第二图像捕获设备124定位在车辆200的保险杠区域(例如,保险杠区域210之一)上或中。
如图2C所示,图像捕获设备122和124都可以位于车辆200的后视镜附近和/或靠近车辆200的驾驶员。另外,虽然图2B是图2C中示出了两个图像捕获设备122和124,但应当理解,其他实施例可以包括多于两个的图像捕获设备。例如,在图2D所示的实施例中,车辆200的***100中包括第一、第二和第三图像捕获设备122、124和126。
如图2D所示,图像捕获设备122、124和126可以位于车辆200的后视镜附近和/或靠近驾驶员座椅。所公开的示例不限于图像捕获设备的任何特定数量和配置,并且图像捕获设备可以位于车辆200内和/或车辆200上的任何适当位置。
还应当理解,所公开的实施例不限于特定类型的车辆200并且可以适用于所有类型的车辆,包括汽车、卡车、拖车、摩托车、自行车、自平衡运输设备和其他类型的车辆。
第一图像捕获设备122可以包括任何合适类型的图像捕获设备。图像捕获设备122可以包括光轴。在一个实例中,图像捕获设备122可以包括具有全局快门的Aptina M9V024WVGA传感器。在另一个示例中,可以使用滚动快门传感器。图像获取单元120和作为图像获取单元120的一部分实现的任何图像捕获设备可以具有任何期望的图像分辨率。例如,图像捕获设备122可以提供1280×960像素的分辨率并且可以包括滚动快门。
图像获取单元120和作为图像获取单元120的一部分实现的任何图像捕获设备可以包括各种光学元件。在一些实施例中,可以包括一个或多个透镜,例如,以为图像采集单元120和作为图像采集单元120的一部分实现的任何图像捕获设备提供期望的焦距和视场。在一些示例中,例如,作为图像采集单元120的一部分实现的图像捕获设备可以包括或与任何光学元件相关联,例如6mm透镜或12mm透镜。在一些示例中,图像捕获设备122可以被配置为捕获具有期望的(和已知的)视场(FOV)的图像。
第一图像捕获设备122可以具有与第一系列图像扫描线中的每一个的获取相关联的扫描速率。扫描速率可以指代图像传感器可以获取与包括在特定扫描线中的每个像素相关联的图像数据的速率。
图2E是根据本公开主题的示例的车辆控制***的图解式表示。如图2E所示,车辆200可包括节流***220、制动***230和转向***240。***100可以通过一个或多个数据链路(例如,用于传输数据的任何一个或多个有线和/或无线链路)向节流***220、制动***230和转向***240中的一个或多个提供输入(例如,控制信号)。例如,基于对图像捕获设备122、124和/或126获取的图像的分析,***100可以向节流***220、制动***230和转向***240中的一个或多个提供控制信号以导航车辆1200(例如,通过引起加速、转弯、变道等)。此外,***100可以从节流***220、制动***230和转向***240中的一个或多个接收表明车辆200的运行状况(例如,速度、车辆200是否正在制动和/或转弯等)的输入。
如图3所示,车辆200还可包括用于与车辆200的驾驶员或乘客交互的用户接口170。例如,车辆应用中的用户接口170可以包括触摸屏320、旋钮330、按钮340和麦克风350。车辆200的驾驶员或乘客还可以使用手柄(例如,位于车辆200的转向柱上或附近,包括例如转向信号手柄)、按钮(例如,位于车辆200的方向盘上)等等,以与***100交互。在一些实施例中,麦克风350可以定位在后视镜310附近。类似地,在一些实施例中,图像捕获设备122可位于后视镜310附近。在一些实施例中,用户接口170还可以包括一个或多个扬声器360(例如,车辆音频***的扬声器)。例如,***100可以通过扬声器360提供各种通知(例如,警报)。
如受益于本公开的本领域技术人员将理解的,可以对前述公开的实施例进行多种变化和/或修改。例如,并非所有组件对于***100的操作都是必不可少的。此外,任何组件都可以位于***100的任何适当部分中,并且这些组件可以被重新布置成各种配置,同时提供所公开的实施例的功能。因此,前述配置是示例,并且不管上面讨论的配置如何,***100都可以提供范围广泛的功能来分析车辆200的周围环境,并且响应于该分析,导航和/或以其他方式控制和/或操作车辆200。车辆200的导航、控制和/或操作可包括启用和/或禁用(直接或经由中间控制器,例如上述控制器)与车辆200相关联的各种特征、组件、设备、模式、***和/或子***。导航、控制和/或操作可替代地或附加地包括与可位于车辆200内部或外部的用户、驾驶员、乘客、路人和/或其他车辆或用户的交互,例如通过提供视觉、音频、触觉和/或其他感官警报和/或指示。
如下面更详细地讨论并且与各种公开的实施例一致地,***100可以提供与自主驾驶、半自主驾驶和/或驾驶员辅助技术有关的各种特征。例如,***100可以分析图像数据、位置数据(例如,GPS位置信息)、地图数据、速度数据和/或来自包括在车辆200中的传感器的数据。***100可以从例如图像获取单元120、位置传感器130和其他传感器收集数据以进行分析。此外,***100可以分析收集到的数据以确定车辆200是否应该采取特定动作,然后自动采取所确定的动作而无需人为干预。应当理解,在一些情况下,车辆自动采取的动作是在人的监督下,并且在某些情况下或在任何时候都启用人为干预调整中止或操控机器动作的能力。例如,当车辆200在没有人为干预的情况下导航时,***100可以自动控制车辆200的制动、加速和/或转向(例如,通过向节流***220、制动***230和转向***240中的一个或多个发送控制信号)。此外,***100可以分析收集到的数据,并基于对收集到的数据的分析向驾驶员、乘客、用户,或车辆内部或外部的其他人(或其他车辆)发出警告、指示、建议、警报或指令。下面提供了关于由***100提供的各种实施例的附加细节。
图4是示出车载相机的示例视场400的图示,在该示例视场400中存在各种对象。相机可被安装在主车辆上。如图所示,视场400包括道路表面402,其可以具有一个或多个表面特征404,例如,凹陷404A(例如,坑洼、栅格、凹陷等)或突起404B(例如,减速带、路缘、碎屑等)。视场400还可以包括阴影406、反射表面408(例如,水坑、冰等)、行人140、或另一车辆412。对表面特征404进行建模可以使得车辆能够避开它们、向驾驶员发出警报、或者调整自身以更好地操纵它们(例如,调整车辆悬架以越过坑洼404A)。
对行人410或车辆412进行理解和建模可使得车辆能够控制更改或向驾驶员发出警报,以通过减速或调整行驶路径、停车、或这些动作的组合来避免撞到它们,甚至避免或减少与它们的不合需要的交互,如行驶通过水坑408而飞溅到行人410。
图5是根据实施例的利用图像捕获设备502进行车辆环境建模的***508的示例的框图。***508固定在车辆504上。***508可以是在图1-图3中描述的***100的实施例或者与在图1-图3中描述的***100一起被包括在实施例。
在示例中,***508被集成到图像捕获设备502(例如,相机或其他成像传感器,比如LIDAR或IR传感器)中。在示例中,***508与图像捕获设备502(例如,车辆504的信息娱乐***的一部分)分离。在图5所示的示例中,通过示例的方式,将图像捕获设备502示出为安装在挡风玻璃上或附近的前视相机。但是,本文所述的技术同样适用于安装在车辆内部或外部的后置或侧面图像捕获设备。一个这样的示例是外部地安装在顶篷的拐角处的相机,其具有前向且稍微偏向一侧的视场。
***508包括处理电路,以经由从图像捕获设备502获得的图像来执行车辆环境建模。车辆环境建模可以包括对道路表面506、障碍物、妨碍物、和移动体(例如,其他车辆、行人、动物等)进行建模。这些模型可以由***508直接使用、或通过另一管理***使用,以调整车辆504的运行参数。为了执行建模,***508被布置为获得代表道路表面506的图像序列。该图像序列可以是按时间排序的。例如,可以以常规速率(例如,30Hz、60Hz等)捕获图像,并用元数据标注图像以存储时间戳、序列号、索引号或其它顺序标记。该图像序列中的一个图像是当前图像(例如,图像捕获设备502所拍摄的最新或最后的图像)。
***508被布置为向人工神经网络(ANN)提供数据集以产生伽马图像。在伽马图像(也成为伽马图)中,每个图像的坐标是伽马值。因此,伽马图像中的每个“像素”是坐标的伽马值。如其他地方所述,伽马值是点高于地平面的高度与距捕获图像的传感器的距离的比值。地平面表示道路表面506。
尽管下面使用“伽马图像”,但是可以使用其他数据格式来表示场景中的伽马。因此,伽马可以不是栅格格式,而是可以是使得伽马值能够经由传感器数据与表面相关的任何形式(例如,值到点的伽马图)。
在示例中,数据集包括图像序列的一部分。数据集可以包括传感器502的运动(例如,传感器移动信息)和核点(epipole)(例如,核点信息)。在实现方式中,图像序列的一部分包括第一图像。第一图像可以是当前图像。在其他实现方式中,第一图像是捕获的图像中的任意图像。
在示例中,图像序列的一部分包括紧接在第一图像之前的图像,它们可被称为先前图像和再先前图像。该第一(例如,当前)图像、先前图像和再先前图像可以是图像序列中的连续图像,或者可以仅在如下方面相关:先前图像是在第一图像之前的某一时刻被捕获的,而再先前图像是在先前图像之前的某一时刻被捕获的。例如,第一图像可以是第三个最新捕获的图像,那么图像序列可以包括第三个、第五个和第七个最新的图像。
在示例中,该图像序列的一部分总共是三个图像。在示例中,该序列可以包括任意n个图像,其中n是大于一的整数(即,)。在示例中,序列中的图像可以是连续捕获的图像。在示例中,在生成在数据集中使用的图像序列的过程中,可以省略原始帧序列中的一些帧。
在示例中,以与第一图像相同的维数(尽管可能采用更大或更小的分辨率)将核点提供为梯度图像。在此,梯度图像中的像素值表示第一图像中的像素距核点的距离。在示例中,梯度图像仅表示距核点的水平(例如,x轴)距离,并且向ANN提供第二梯度图像以表示距核点的竖直(例如,y轴)距离。
在示例中,传感器506的运动被提供为具有与当前图像相同的维数(尽管可能是更大或更小的分辨率)的恒定值图像。在示例中,该恒定值是传感器506的前向运动(例如,z轴)与传感器502距平面506的高度的比值。
在示例中,ANN是卷积神经网络(CNN)。在示例中,传感器502和核点的运动在瓶颈层(bottleneck layer)处被提供给CNN(例如,参见下面关于图6的讨论)。
在示例中,利用无监督训练技术来训练ANN,其中通过测量未来图像的模型与实际未来图像之间的差异来确定误差。在此,未来图像的模型是通过对未来图像之前的图像进行伽马变形来产生的。因此,在此示例中,所推断的伽马值被用于预测未来图像将看起来是什么样的。当与未来图像进行比较时,使用与模型的偏差来校正ANN。在图7-图10中更详细地描述了ANN的训练。
在示例中,利用无监督训练技术来训练ANN,其中通过测量针对位置的预测伽马与该位置处的传感器502移动之间的差异来确定误差。因此,预测了伽马,并且传感器502或车辆504的自我运动被用来确定该伽马推断是否正确(或推断的错误程度如何)。在此示例中,如果ANN预测道路表面506存在向下倾斜,而随后车辆没有检测到这种向下倾斜,则训练会纠正预测该向下倾斜的推论。在示例中,传感器移动可以包括俯仰、偏航、侧倾(roll)、或垂直于该平面的平移中的一者或多者。
在示例中,利用无监督训练技术来训练ANN,其中误差是由在两个不同时间下的两个图像之间的重叠片段的伽马之间的差异来确定的,其中对第一图像执行推断,并且其中重叠片段在第二图像中更靠近传感器502。因此,在训练中,具有随后由车辆504穿过的表面506的视图的图像是先前图像。重叠片段的伽马值由ANN推断,并通过计算未来图像中相同段的伽马值进行检查。当传感器502更接近一个特征(例如,将来的重叠片段)时,***对伽马的估计值可能会更好,并且可以用在损失函数中来训练ANN。因此,将从当前三倍图像推断出的伽马图与从向当前伽马图变形的未来三倍图像推断出的伽马图进行比较。当训练ANN时,两个伽马图之间的比较值(例如,差值或到最接近的表面点的距离)被用作损失的一部分。
***508被布置为使用伽马图像对道路表面506进行建模。在示例中,对道路表面506进行建模包括计算与道路表面特征的平面的竖直偏差。在示例中,对道路表面506进行建模包括计算图像序列中的特征的残余运动。在此,特征的残余运动是伽马值、传感器506的运动、和核点的乘积。
在示例中,对道路表面进行建模包括使用伽马值使先前图像变形到当前图像。基于伽马的变形特别准确,因为伽马使得特征能够基于其距传感器502的距离以及其在道路表面506上方的高度来在图像之间进行匹配,而不是尝试间或匹配图像中的那些特征的像素的短暂或复杂的颜色变化。
图6示出了根据实施例的用于产生道路表面的伽马图614的神经网络612的示例。但是,作为概述,每个像素的残余运动由三部分组成:伽马、传感器(例如,车辆)运动、和核点信息,如下:
伽马通过点在平面上方的高度H和该点距传感器的距离Z来描述每个像素处的场景的结构。因此,在给定传感器移动信息和核点信息的情况下,神经网络612确定伽马图614,并且可以计算每个点的残余运动以使得一个图像能够变形到另一图像。
在给定准确的伽马图614的情况下,图像变形非常准确,归因于每个像素的距离和高度,通常表现得好像图像是静态场景。经典技术首先计算残余流,然后通过去除核点信息和传感器移动信息来计算伽马。根据伽马,沿着一条或多条轨道(例如,轮胎路径)计算点的高度和距离。然而,如上所述,道路表面图像中噪声的变化程度导致直接残余运动检测有时会出现问题。
训练神经网络612以直接从图像中计算伽马提供了对图像中发现的噪声的强健对抗。因此,在给定第一图像602(其可以是当前图像)、使用单应性进行变形的一个或多个先前图像604、以及自我运动610和核点(例如,平面)参数(图像606和608)作为输入的情况下,神经网络612产生伽马值的图像614作为输出。如图所示,伽马图614中的阴影越浅,伽马值越低。而且,从损失计算中省略了车辆来训练神经网络612。这样做是为了防止车辆的运动在训练期间影响附近的伽马值。在推断期间一般不会掩蔽车辆。在示例中,在训练期间,未从神经网络612损失函数中掩蔽车辆或其他移动对象。
如图所示,将核点信息和传感器移动信息作为图像提供(例如,值的栅格)。传感器移动信息图像610是恒定值的图像(例如,每个像素具有相同的值)。由分别具有在水平(例如,x)606和竖直(例如,y)608方向上到该核点的距离的像素值的两个图像表示核点信息。在使用卷积神经网络(CNN)时,将核点信息提供为梯度图像而不是两个值是有帮助的。在CNN中,在整个图像602上运行同一滤波器组,并且必须告知每个图像区域其相对于核点的位置。通过使用梯度图像606和606,滤波器具有针对每个卷积的核点信息。
图7是示出基于ML的轮廓引擎的示例DNN 700的图示。在示例中。如图所示,DNN700包括具有各种操作层的卷积网络部分702,这些操作层可以包括卷积层、激活层、规范化层、和池化层。可以另外包括其他操作层,例如内积层。在示例中,DNN 700另外包括去卷积部分704,包括去卷积(例如,转置卷积)层、激活层、规范化层、和解池化层。
在示例中,将一组图像730作为输入506提供给卷积网络部分702。每层生成特征图,该特征图继而被传递到后续层,以便沿着前向传播路径708进行进一步处理。如图所示,卷积网络部分702的操作用于逐渐地减小特征图的分辨率,同时增加沿着卷积前向传播路径708A的特征图的通道的数量(维数)。去卷积网络部分704的操作用于逐渐地增大特征图的分辨率,同时减小其沿着去卷积前向传播路径708B的维数。
在示例中,除了前向传播路径708之外,还可以提供一个或多个旁路路径710,以促进特征图从在先层传递到在后层,同时跳过位于该在先层和在后层之间的一个或多个中间层。作为示例,旁路路径710可以在卷积网络部分702的层与去卷积网络部分704的类似维数的层之间传递特征图。
“瓶颈”网络部分712位于卷积网络部分702和去卷积网络部分704之间。在示例中,瓶颈网络部分712具有与其他层相比具有较低分辨率和较高维数的一个或多个层。在示例中,瓶颈部分712包括输入714,其被配置为接受图像格式的运动标记726和图像格式的核点位置数据728。
在示例中,训练DNN 700以产生道路结构732,作为与预处理图像730的当前(即最新)图像相对应的伽马值的按像素映射。作为DNN 700的输出的道路结构732可以具有与图像730相同或不同的分辨率。例如,道路结构732的分辨率可以按因子0.25、0.5、1、1.5、2或其他缩放因子进行缩放,该因子可以是整数或非整数值。
在另一示例中,道路结构532可以对应于预处理图像530的当前图像的一部分。例如,道路结构532可以对应于视场400(图4)的裁剪图像,从其中省略了不表示道路表面的一些部分。
要注意的是,道路结构732的像素中的伽马值是无量纲值。在示例中,DNN 700针对水平线上方的点产生其他无量纲值(例如,)的映射作为其输出。当伽马的值已知时,可以使用关系来恢复距离Z和道路表面的高度H,其中N′是N的转置,(x,y)是图像坐标,f是焦距。
图8示出了根据实施例的DNN训练引擎800的示例。DNN训练引擎800被配置为训练DNN 700,以基于一组训练数据产生对道路结构732的准确确定。如图所示,DNN训练***800包括具有与DNN 700相同或相似架构的DNN 802,以及损失函数应用引擎850。
在此,损失函数应用引擎850被配置为将训练数据830作为输入提供给DNN 802。训练数据830可以包括由一个或多个车载相机捕获的图像帧的各种序列。图像帧可以包括例如在各种照明和天气条件下在各种地理区域中的各种道路上捕获的视频镜头。
训练数据830可以伴随有与训练数据830的各个部分相对应的图像格式的运动标记826和图像格式的核点标记828。图像格式的运动标记826和图像格式的核点标记828可以被馈送到与用于训练数据830的图像帧的输入层不同的输入层,以匹配DNN 802的结构和操作布置。这些输入沿前向传播路径808前进通过DNN 802,以产生道路结构832作为DNN 802的输出。
可以最初利用计算参数(例如,权重、偏差等)的随机值配置DNN802。训练过程用于调整计算参数的值,以优化DNN 802的输出,即道路结构832。损失函数应用引擎850被配置为执行参数优化。在示例中,使用多于一个损失函数来确定DNN 802的输出的准确度。损失函数应用引擎850为DNN 802的各个层产生计算参数调整820,这是使用沿着反向传播路径810的向后传播来设置的。
在示例中,针对DNN 802的各个层的计算参数调整820被收集并存储在计算参数数据结构825中,计算参数数据结构825定义DNN 802的训练结果。在示例中,将计算参数数据结构825传递(例如,作为DNN训练***输出的一部分)到竖直轮廓检测引擎,在此将其存储为用于配置基于ML的轮廓引擎的计算参数。在示例中,推断引擎训练在当前三元组和未来的三元组两者上运行,以分别产生output_curr(当前输出)和output_future(未来输出)。可以将几何损失与来自output_curr的其他损失组合,并往回传播以调整网络的权重,并且也可以传播没有几何损失的来自output_future的损失以调整权重。在示例中,可以忽略output_future的几何损失,仅将output_curr用于训练。
在一实现方式中,训练数据830包括未校正的(即失真的)图像。这与对输入图像进行修正的其他先前实现方式不同。在本实现方式中,DNN802使用未校正的图像进行训练,因此在推理时,图像在用于神经网络之前不需要预处理(校正),这节省了处理时间和能量。
如上所述,在训练期间,损失函数应用引擎850被配置为执行参数优化。为此,使用从DNN 802输出的伽马图中的伽马值计算损失函数。
可以比较三个伽马图(例如,当前的、先前的和再先前的)来计算损失。然而,由于伽马图是失真的图像(未校正的图像),没有地平面,因此没有单应性来对齐伽马图。相反,使用线性回归分析来计算单应函数。这个单应函数可被称为“最佳拟合单应性”,因为虽然它不是完美的单应性,但足以执行损失分析。
求解单应函数的过程如下。在基线伽马图和当前伽马图之间选取坐标对。基线可以是三个输入图像(例如,先前图像、再先前和再再先前图像)的伽马图,并且当前伽马图可以是从当前(最新获得的)图像开始的三个输入图像(例如,当前图像、先前图像和再先前图像)的伽马图。
使用校正参数校正基线伽马图中的基线坐标。校正参数可以与用于校正图像的参数相似或相同。然而,不是校正图像以产生针孔模型图像,而是校正伽马图中的坐标以产生校正的伽马图的坐标。然后在当前伽马图中找到相同的像素。将任意数量的坐标点从基线伽马图映射到当前伽马图。然后将这些坐标点用于线性回归分析,以计算描述这些关系的最佳拟合单应性。
然后,损失函数基于从先前伽马图和与当前伽马图相比的最佳拟合单应性创建的模型。这是摄影测量损失函数的实现方式。在一些实现方式中,使用的不仅仅是摄影测量损失函数。
由一个或多个损失函数带来的损失函数分量被组合并用于反向传播,该反向传播用于训练DNN,例如,使用梯度下降技术来生成计算参数调整。
训练可以在各个相机中进行,因为失真可能是相机或相机类型所独有的。相机参数可以用作DNN 802的输入,类似于自我运动的使用方式。
在推断模式下,DNN使用一系列图像作为输入并生成伽马图作为输出。输入图像未经校正(是失真的)。对先前图像或再先前图像内的多个像素进行采样。(像素的)数量可由客户基于要对图像的哪些部分进行建模来设置。例如,数量可以是在车辆的路径上居中的100个像素/点。数量可被选择为例如适合于检测车辆的路径中的凹陷(坑洼)或凸起(减速带)的数量。根据建模***的设计,可以对更多或更少的像素/点进行采样。
使用校正参数来校正像素样本。这些参数可以基于相机设计、镜头属性或图像捕获设备或图像处理管线的其他特性。
经校正的像素的伽马值与常规的几何针孔等式一起用于对道路表面进行建模,并获得高于地平面的高度和距图像捕获设备的深度(伽马)。通过仅校正图像中的像素的子集并使用未校正的图像作为ANN的输入提高了处理效率。
图9是根据实施例的示出用于对车辆周围的环境进行建模的方法900的示例的流程图。方法900的操作由例如上文或下文所述的计算硬件(例如,处理电路***)执行。
在902,获得表示道路环境的未校正图像的序列。未校正图像的序列可以包括第一未校正图像、先前的未校正图像和再先前的未校正图像。在实施例中,未校正图像的序列是按时间排序的。
在实施例中,道路环境包括道路表面。在实施例中,道路环境包括车道标记、人行道或道路控制对象。车道标记包括喷涂车道标记、触觉车道标记、路缘石、临时建筑屏障等。道路控制对象包括各种对象,包括交通灯、停车标志、限速标志、路障、交通锥等。
在904,将第一未校正图像、先前的未校正图像和再先前的未校正图像提供给人工神经网络(ANN)以产生场景的三维结构。
在906,确定选定单应性。在实施例中,选定单应性是最佳拟合单应性。
在实施例中,确定选定单应性的操作包括如下操作:在先前的未校正图像中选择第一组图像坐标,校正第一组图像坐标以获得第一组校正图像坐标,将针孔单应性应用于第一组校正图像坐标以识别第一未校正图像中的对应图像坐标,使第一未校正图像中的对应图像坐标失真以获得失真图像坐标的估计位置,并使用线性回归技术来确定第一组图像坐标与失真图像坐标的估计位置之间的选定单应性。
在实施例中,第一组图像坐标是像素。在实施例中,校正第一组图像坐标的操作包括如下操作:对用于捕获先前的未校正图像的镜头使用校正参数。在实施例中,第一组图像坐标包括50-200个图像坐标。在实施例中,使对应图像坐标失真的操作包括如下操作:对用于捕获第一未校正图像、先前的未校正图像和再先前的未校正图像的镜头使用镜头失真模型。
在908,将选定单应性应用于场景的三维结构以创建道路环境的模型。在实施例中,道路环境的模型包括高于地平面的高度、和距用于捕获未校正图像的序列的图像捕获设备的深度。
在实施例中,使用无监督训练技术对ANN进行训练,该技术包括以下操作:将第一未校正图像、先前的未校正图像和再先前的未校正图像提供给人工神经网络(ANN)以产生伽马图像;校正伽马图像以产生校正伽马图像;并使用校正伽马图像计算损失函数。在另一实施例中,校正伽马图的操作包括使用镜头失真模型的操作。在另一实施例中,计算损失函数包括计算未来图像的模型与未来图像之间的误差,未来图像的模型是使用应用于第一未校正图像的选定单应性而产生的。
图10示出了根据实施例的与自主车辆控制***一起使用的用于对道路进行轮廓分析的基于相机的车载***。如图所示,该***包括多个子***、组件、电路、模块、或引擎,为了简洁和一致性起见,将它们称为引擎,但是将理解,这些术语可以互换使用。可以在硬件中实现引擎,也可以在软件或固件的控制下在硬件中实现引擎。这样一来,引擎是专门用于执行指定操作的有形实体,并以某种方式构造。
在示例中,可以以指定的方式将电路布置(例如,内部地或相对于诸如其他电路之类的外部实体)为引擎。在示例中,一个或多个硬件处理器中的全部或一部分可以由固件或软件(例如,指令、应用部分、或应用)配置为进行操作来执行指定操作的引擎。在示例中,软件可以驻留在有形机器可读存储介质上。在示例中,软件在由引擎的底层硬件执行时使硬件执行指定的操作。因此,引擎被物理地构造、或被专门配置(例如,硬接线)、或被临时配置(例如,被编程)为以指定的方式操作或执行本文所述的任何操作的一部分或全部。
考虑其中引擎被临时配置的示例,每个引擎都不需要在任一时刻被实例化。例如,在引擎包括使用软件配置的通用硬件处理器核心的情况下;通用硬件处理器核心可以在不同时间被配置为各自不同的引擎。软件可以相应地配置硬件处理器核心,例如,以在一个时间实例处作为特定引擎,并在不同的时间实例处作为不同的引擎。
如所描绘的,该***包括安装在车辆中或车辆上的相机或图像传感器1012。每个图像传感器1012对视场成像,以提供由图像处理器1030读取的图像帧1015。在示例中,可以在车辆中安装不止一个相机1012。例如,***可以具有指向不同方向的多个相机1012。***还可以具有相对于车辆指向相同或相似方向但安装在不同位置的多个相机1012。在示例中,***可以具有多个相机,这些相机具有部分或完全重叠的视场(例如,如下面关于图11和图12描述的)。在示例中,两个并排的相机可以以立体的方式操作。尽管在此讨论了单相机***,但是也可以使用多相机***,其中一些或所有相关图像和帧可以由不同的相机捕获,或者可以由从多个相机捕获的图像的合成来创建。在本上下文中,实时操作以不可察觉的或名义上的处理延迟进行操作,从而以与扫描或捕获视场的速率一致的速率检测整个视场中的对象。
图像处理器1030可用于同时或并行地处理图像帧1015,以服务于多个驾驶员辅助***或应用。图像处理器1030可用于处理图像帧1015,以检测和辨识相机1012的前向视场中的图像或图像的部分。可以使用带有板载软件和/或存储设备1013中的软件控制算法的专用硬件电路(未示出)来实现驾驶员辅助***。图像传感器1012可以是单色的、灰度的、或颜色敏感的。举例来说,图像帧1015被用于为以下各项服务:特征检测引擎1020、交通标志辨识(TSR)引擎1021、前向碰撞警告(FCW)引擎1022、和竖直轮廓检测引擎1023。在示例中,图像帧1015被在不同的驾驶员辅助应用之间划分,并且在其他情况下,图像帧1015可以在不同的驾驶员辅助应用之间共享。
在示例中,该***被用于准确地估计道路表面的平面(或双二次)模型,并计算与平面(或双二次)道路表面模型的小偏离以检测或量化各种道路表面特征。在本上下文中,术语“道路表面模型”指的是道路表面的平面或双二次模型。术语“竖直轮廓”或“竖直偏差”指的是沿垂直于道路表面的轴与道路表面模型的偏差。
在示例中,该***被用于使用安装在主体车辆中的相机1012准确地对道路表面形状(例如,竖直轮廓)建模。使用本文提供的***和方法,可以测量诸如颠簸或孔洞、减速带、路缘、或井盖之类的表面特征,并将其建模为距道路表面(例如,平面)的竖直偏差,该竖直偏差具有亚像素精度(例如,1-2厘米的量级)。这些技术可以类似地应用于前向、侧向、或后向相机1012。
伽马图可用于确定车辆前方或侧面和后方的可驾驶区域。伽马图可单独用于确定表面坡度过于陡峭而无法行驶的地方,也可如美国专利公开第2018/0101177号所述将其与基于灰度或彩色图像的语义自由空间结合使用,该美国专利公开的全部内容通过引用合并于此。道路平面的伽马图或高度图可用于区分尖锐的竖直边缘路缘石,平滑倾斜的路缘石、或平缓的路肩(例如,道路下降处)。然后,与平滑倾斜的路缘石相比,可以控制主体车辆与尖锐的路缘石或边缘下降比保持更大的距离。
在示例中,该***可以进一步包括车辆控制处理器1040,该车辆控制处理器1040实施一个或多个车辆控制引擎,以向车辆的机电致动器***生成扼制、制动、转向、或变速器选择命令,来实现自主或半自主驾驶操作。车辆控制处理器1040可以接收由图像处理器1030提供的与发动机1020-1023产生的各种机器视觉评估有关的各种输出。
图11示出了根据实施例的车辆上的多相机阵列。如图所示,相机1112A-1112F安置在车辆周围以提供视场1100A-1100F(例如,如下所述的那些)。
图12示出了根据实施例的可由多相机阵列捕获的视场的示例。示出了多个重叠的视场1200A-1200C。这里,道路表面是这些视图共用的。
实施例可以以硬件、固件和软件中的一种或其组合来实现。实施例也可以实现为存储在机器可读存储设备上的指令,其可以由至少一个处理器读取并执行以执行本文描述的操作。机器可读存储设备可以包括用于以机器(例如,计算机)可读的形式存储信息的任何非暂态机制。例如,机器可读存储设备可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备以及其他存储设备和介质。
处理器子***可用于执行机器可读介质上的指令。处理器子***可以包括一个或多个处理器,每个处理器具有一个或多个内核。另外,处理器子***可以布置在一个或多个物理设备上。处理器子***可以包括一个或多个专用处理器,例如图形处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或固定功能处理器。
如本文所述的示例可包括逻辑或多个组件、模块或机制或可操作于其上。模块可以是通信耦合到一个或多个处理器以执行本文描述的操作的硬件、软件或固件。模块可以是硬件模块,因此模块可以被认为是能够执行指定操作的有形实体并且可以以某种方式配置或布置。在示例中,电路可以以指定方式布置(例如,在内部或相对于诸如其他电路之类的外部实体)作为模块。在示例中,一个或多个计算机***(例如,独立的、客户端或服务器计算机***)或一个或多个硬件处理器的全部或部分可以由固件或软件(例如,指令、应用部分、或应用)作为执行指定操作的模块。在示例中,软件可以驻留在机器可读介质上。在示例中,软件在由模块的底层硬件执行时使得硬件执行指定操作。因此,术语硬件模块被理解为涵盖有形实体,即物理构造、专门配置(例如,硬连线的)、或临时(例如,暂时)配置(例如,编程)为以指定方式操作或执行本文描述的任何操作的部分或全部的实体。考虑其中模块被临时配置的示例,每个模块不需要在任何时刻被实例化。例如,在模块包括使用软件配置的通用硬件处理器的情况下;通用硬件处理器可以在不同时刻被配置为各不相同的模块。软件可以相应地配置硬件处理器,例如,以在一个时间实例构成一个特定模块,而在不同的时间实例构成不同的模块。模块也可以是操作来执行本文描述的方法软件或固件模块。
本文档中使用的电路***或电路可以例如单独地或以任何组合的形式包括硬连线电路***、可编程电路***(例如包括一个或多个个体指令处理内核的计算机处理器)、状态机电路***、和/或存储由可编程电路***执行的指令的固件。电路、电路***或模块可以共同或单独地体现为形成诸如集成电路(IC)、片上***(SoC)、台式计算机、膝上型计算机、平板计算机、服务器、智能电话之类的更大***的一部分的电路***。
如在本文的任何实施例中所使用的,术语“逻辑”可以指代被配置为执行任何上述操作的固件和/或电路***。固件可以体现为代码、指令或指令集和/或硬编码(例如,非易失性)在存储器设备和/或电路***中的数据。
在本文的任何实施例中使用的“电路***”可以例如单独地或以任何组合的形式包括硬连线电路***、可编程电路***、状态机电路***、逻辑和/或存储由可编程电路***执行的指令的固件。该电路***可以体现为集成电路,例如集成电路芯片。在一些实施例中,电路***可以至少部分地由处理器电路***形成,该处理器电路***执行对应于本文描述的功能的代码和/或指令集(例如,软件、固件等),从而将通用处理器转换到专用处理环境以执行本文描述的一个或多个操作。在一些实施例中,处理器电路***可被体现为独立的集成电路或者可以合并为集成电路上的若干组件之一。在一些实施例中,节点或其他***的各种组件和电路***可以组合在片上***(SoC)架构中。
图13是示出根据实施例的计算机***1300的示例形式的机器的框图,可以在该机器内执行指令集或指令序列以使得该机器执行本文所讨论的任一方法。在替代的实施例中,该机器作为独立设备运行或可以连接(例如,联网)到其他机器。在联网部署中,机器可以在服务器-客户端网络环境中以服务器或客户端机器的身份操作,或者它可以在对等(或分布式)网络环境中充当对等机器。该机器可以是头戴式显示器、可穿戴设备、个人计算机(PC)、平板PC、混合平板电脑、个人数字助理(PDA)、移动电话或任何能够(顺序地或以其他方式)执行指定该机器要采取的动作的指令的机器。此外,虽然仅示出了单个机器,但术语“机器”也应被认为包括单独或联合执行一组(或多组)指令以执行本文讨论的任何一个或多个方法的任何机器的集合。类似地,术语“基于处理器的***”应被视为包括任何一个或多个机器的集合,这些机器由处理器(例如,计算机)控制或操作以单独或联合地执行指令以执行本文讨论的任何一个或多个方法。
示例计算机***1300包括至少一个处理器1302(例如,中央处理单元(CPU)、图形处理单元(GPU)或两者、处理器内核、计算节点等),主存储器1304和静态存储器1306,它们通过链路1308(例如,总线)相互通信。计算机***1300还可以包括视频显示单元1310、字母数字输入设备1312(例如,键盘)和用户接口(UI)导航设备1314(例如,鼠标)。在一个实施例中,视频显示单元1310、输入设备1312和UI导航设备1314被结合到触摸屏显示器中。计算机***1300可以另外包括存储设备1316(例如,驱动单元)、信号生成设备1318(例如,扬声器)、网络接口设备1320、和一个或多个传感器(未示出),例如全球定位***(GPS)传感器、罗盘、加速度计、陀螺仪、磁力计或其他传感器。
存储设备1316包括机器可读介质1322,其上存储一组或多组数据结构和指令1324(例如,软件),它们体现本文描述的任何一个或多个方法和功能或由本文描述的任何一个或多个方法和功能利用。指令1324还可以完全或至少部分地驻留在主存储器1304、静态存储器1306内,和/或在其由计算机***1300执行期间驻留在处理器1302内,主存储器1304、静态存储器1306和/或处理器1302也构成机器可读介质。
虽然机器可读介质1322在示例实施例中被示为单个介质,但术语“机器可读介质”可以包括存储一个或多个指令1324的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的缓存和服务器)。术语“机器可读介质”还应当被认为包括能够存储、编码或携带指令(这些指令供机器执行并使得机器执行本公开的任何一个或多个方法)或者能够存储、编码或携带由此类指令利用或与此类指令相关联的数据结构的任何有形介质。因此,术语“机器可读介质”应当被认为包括但不限于固态存储器以及光和磁介质。机器可读介质的具体示例包括非易失性存储器,以示例方式,包括但不限于半导体存储设备(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和闪存设备;磁盘,例如内置硬盘和可移除盘;磁光盘;以及CD-ROM和DVD-ROM盘。
指令1324还可以使用传输介质经由网络接口设备1320利用多种众所周知的传输协议(例如,HTTP)中的任何一种在通信网络1326上被发送或接收。通信网络的示例包括局域网(LAN)、广域网(WAN)、互联网、移动电话网络、普通老式电话(POTS)网络和无线数据网络(例如,蓝牙、Wi-Fi、3G和4G LTE/LTE-A、5G、DSRC或WiMAX网络)。术语“传输介质”应当被认为包括任何能够存储、编码或携带供机器执行的指令的无形介质,并且包括数字或模拟通信信号或其他无形介质以促进此类软件的通信。
附加注释和示例
示例1是一种用于对环境进行建模的设备,所述设备包括:硬件传感器接口,用于获得代表道路环境的未校正图像的序列,所述未校正图像的序列包括第一未校正图像、先前的未校正图像以及再先前的未校正图像;以及处理电路***,用于:将所述第一未校正图像、先前的未校正图像以及再先前的未校正图像提供给人工神经网络(ANN)以产生场景的三维结构;确定选定单应性;并且将所述选定单应性应用于所述场景的三维结构,来创建所述道路环境的模型。
在示例2中,示例1的主题包括,其中,所述未校正图像的序列是按时间排序的。
在示例3中,示例1-2的主题包括,其中,所述选定单应性是最佳拟合单应性。
在示例4中,示例1-3的主题包括,其中,所述道路环境包括道路表面。
在示例5中,示例1-4的主题包括,其中,所述道路环境包括车道标记、人行道或道路控制对象。
在示例6中,示例1-5的主题包括,其中,为确定所述选定单应性,所述处理电路***用于:在所述先前的未校正图像中选择第一组图像坐标;校正所述第一组图像坐标以获得第一组校正图像坐标;将针孔单应性应用于所述第一组校正图像坐标以识别所述第一未校正图像中的对应图像坐标;使所述第一未校正图像中的对应图像坐标失真以获得失真图像坐标的估计位置;并且使用线性回归技术来确定所述第一组图像坐标与所述失真图像坐标的估计位置之间的所述选定单应性。
在示例7中,示例6的主题包括,其中,所述第一组图像坐标是像素。
在示例8中,示例6-7的主题包括,其中,校正所述第一组图像坐标包括针对用于捕获所述先前的未校正图像的镜头使用校正参数。
在示例9中,示例6-8的主题包括,图像坐标。
在示例10中,示例6-9的主题包括,其中,为使所述对应图像坐标失真,所述处理电路***用于针对用于捕获所述第一未校正图像、先前的未校正图像以及再先前的未校正图像的镜头使用镜头失真模型。
在示例11中,示例1-10的主题包括,其中,所述道路环境的模型包括高于地平面的高度、和距用于捕获所述未校正图像的序列的图像捕获设备的深度。
在示例12中,示例1-11的主题包括,其中,所述ANN被使用无监督训练技术进行训练,包括以下操作:将所述第一未校正图像、先前的未校正图像以及再先前的未校正图像提供给人工神经网络(ANN)以产生伽马图像;校正所述伽马图像以产生校正伽马图像;以及使用所述校正伽马图像计算损失函数。
在示例13中,示例12的主题包括,其中,为校正所述伽马图像,所述处理电路***用于使用镜头失真模型。
在示例14中,示例12-13的主题包括,其中,为计算所述损失函数,所述处理电路***用于计算未来图像的模型和未来图像之间的误差,所述未来图像的模型是使用应用于所述第一未校正图像的所述选定单应性而产生的。
示例15是一种用于对环境进行建模的方法,包括:获得代表道路环境的未校正图像的序列,所述未校正图像的序列包括第一未校正图像、先前的未校正图像以及再先前的未校正图像;将所述第一未校正图像、先前的未校正图像以及再先前的未校正图像提供给人工神经网络(ANN)以产生场景的三维结构;确定选定单应性;以及将所述选定单应性应用于所述场景的三维结构,来创建所述道路环境的模型。
在示例16中,示例15的主题包括,其中,所述未校正图像的序列是按时间排序的。
在示例17中,示例15-16的主题包括,其中,所述选定单应性是最佳拟合单应性。
在示例18中,示例15-17的主题包括,其中,所述道路环境包括道路表面。
在示例19中,示例15-18的主题包括,其中,所述道路环境包括车道标记、人行道或道路控制对象。
在示例20中,示例15-19的主题包括,其中,确定所述选定单应性包括:在所述先前的未校正图像中选择第一组图像坐标;校正所述第一组图像坐标以获得第一组校正图像坐标;将针孔单应性应用于所述第一组校正图像坐标以识别所述第一未校正图像中的对应图像坐标;使所述第一未校正图像中的对应图像坐标失真以获得失真图像坐标的估计位置;并且使用线性回归技术来确定所述第一组图像坐标与所述失真图像坐标的估计位置之间的所述选定单应性。
在示例21中,示例20的主题包括,其中,所述第一组图像坐标是像素。
在示例22中,示例20-21的主题包括,其中,校正所述第一组图像坐标包括针对用于捕获所述先前的未校正图像的镜头使用校正参数。
在示例23中,示例20-22的主题包括,图像坐标。
在示例24中,示例20-23的主题包括,其中,使所述对应图像坐标失真包括:针对用于捕获所述第一未校正图像、先前的未校正图像以及再先前的未校正图像的镜头使用镜头失真模型。
在示例25中,示例15-24的主题包括,其中,所述道路环境的模型包括高于地平面的高度、和距用于捕获所述未校正图像的序列的图像捕获设备的深度。
在示例26中,示例15-25的主题包括,其中,所述ANN被使用无监督训练技术进行训练,包括以下操作:将所述第一未校正图像、先前的未校正图像以及再先前的未校正图像提供给人工神经网络(ANN)以产生伽马图像;校正所述伽马图像以产生校正伽马图像;以及使用所述校正伽马图像计算损失函数。
在示例27中,示例26的主题包括,其中,为校正所述伽马图像,所述无监督训练技术使用镜头失真模型。
在示例28中,示例26-27的主题包括,其中,计算所述损失函数包括:计算未来图像的模型和未来图像之间的误差,所述未来图像的模型是使用应用于所述第一未校正图像的所述选定单应性而产生的。
示例29是至少一种机器可读介质,包括用于对环境进行建模的指令,所述指令当被处理电路***执行时,使得所述处理电路***执行如下操作,所述操作包括:获得代表道路环境的未校正图像的序列,所述未校正图像的序列包括第一未校正图像、先前的未校正图像以及再先前的未校正图像;将所述第一未校正图像、先前的未校正图像以及再先前的未校正图像提供给人工神经网络(ANN)以产生场景的三维结构;确定选定单应性;以及将所述选定单应性应用于所述场景的三维结构,来创建所述道路环境的模型。
在示例30中,示例29的主题包括,其中,所述未校正图像的序列是按时间排序的。
在示例31中,示例29-30的主题包括,其中,所述选定单应性是最佳拟合单应性。
在示例32中,示例29-31的主题包括,其中,所述道路环境包括道路表面。
在示例33中,示例29-32的主题包括,其中,所述道路环境包括车道标记、人行道或道路控制对象。
在示例34中,示例29-33的主题包括,其中,确定所述选定单应性的操作包括如下操作:在所述先前的未校正图像中选择第一组图像坐标;校正所述第一组图像坐标以获得第一组校正图像坐标;将针孔单应性应用于所述第一组校正图像坐标以识别所述第一未校正图像中的对应图像坐标;使所述第一未校正图像中的对应图像坐标失真以获得失真图像坐标的估计位置;并且使用线性回归技术来确定所述第一组图像坐标与所述失真图像坐标的估计位置之间的所述选定单应性。
在示例35中,示例34的主题包括,其中,所述第一组图像坐标是像素。
在示例36中,示例34-35的主题包括,其中,校正所述第一组图像坐标包括针对用于捕获所述先前的未校正图像的镜头使用校正参数。
在示例37中,示例34-36的主题包括,图像坐标。
在示例38中,示例34-37的主题包括,其中,使所述对应图像坐标失真包括:针对用于捕获所述第一未校正图像、先前的未校正图像以及再先前的未校正图像的镜头使用镜头失真模型。
在示例39中,示例29-38的主题包括,其中,所述道路环境的模型包括高于地平面的高度、和距用于捕获所述未校正图像的序列的图像捕获设备的深度。
在示例40中,示例29-39的主题包括,其中,所述ANN被使用无监督训练技术进行训练,包括以下操作:将所述第一未校正图像、先前的未校正图像以及再先前的未校正图像提供给人工神经网络(ANN)以产生伽马图像;校正所述伽马图像以产生校正伽马图像;以及使用所述校正伽马图像计算损失函数。
在示例41中,示例40的主题包括,其中,为校正所述伽马图像,所述处理电路***使用镜头失真模型。
在示例42中,示例40-41的主题包括,其中,计算所述损失函数的操作包括如下操作:计算未来图像的模型和未来图像之间的误差,所述未来图像的模型是使用应用于所述第一未校正图像的所述选定单应性而产生的。
示例43是至少一种机器可读介质,其包括指令,所述指令当被处理电路***执行时,使得所述处理电路***执行用于实现示例1-42中任一示例的操作。
示例44是一种设备,包括用于实现示例1-42中任一示例的装置。
示例45是用于实现示例1-42中任一示例的***。
示例46是用于实现示例1-42中任一示例的方法。
上面的详细描述包括对附图的引用,这些附图形成了详细描述的一部分。附图通过说明的方式示出了可以实践的具体实施例。这些实施例在本文中也被称为“示例”。这些示例可以包括除了示出或描述的那些元件之外的元件。然而,本发明的发明人还设想了仅提供示出或描述的那些元件的示例。此外,本发明的发明人设想了使用针对特定示例(或其一个或多个方面)或针对本文示出或描述的其他示例(或其一个或多个方面)示出或描述的那些元件(或其一个或多个方面)的任何组合或排列的示例。
本文档中引用的所有出版物、专利、和专利文件都通过引用以其整体并入本文,就像通过引用将其单独并入一样。在本文档与通过引用并入的那些文档之间的用法不一致的情况下,应将所并入的(一个或多个)引用中的用法视为对本文档的补充;对于冲突的不一致之处,以本文档中的用法为准。
在本文档中,如专利文件中常用的那样,独立于“至少一个”或“一个或多个”的任何其他实例或用法,术语“一”或“一个”包括一个或不止一个。在本文档中,术语“或”用于指代非排他性的,从而“A或B”包括“A但不包含B”,“B但不包含A”,以及“A和B”,除非另有说明。在所附权利要求中,术语“包含”和“在其中”被用作相应术语“包括”和“其中”的简明英语等效。此外,在所附权利要求中,术语“包含”和“包括”是开放式的,也就是说,除权利要求中跟在此术语之后列出的那些元素之外,还包括其他元素的***、设备、物品、或处理仍被认为落入该权利要求的范围。此外,在所附权利要求中,术语“第一”、“第二”和“第三”等仅用作标签,并且不旨在对其对象强加数值要求。
上面的描述旨在是说明性的,而不是限制性的。例如,上述示例(或其一个或多个方面)可以与其他示例组合使用。例如,可以由本领域的普通技术人员在回顾以上描述之后使用其他实施例。摘要是为了允许读者快速地确定技术公开的性质。摘要是在理解其将不会被用来解释或限制权利要求的范围或含义的情况下提交的。另外,在以上具体实施方式部分中,各种特征可以被分组在一起以简化本公开。然而,权利要求可能没有阐述本文公开的每一特征,因为实施例可以刻画所述特征的子集。此外实施例可以包括比特定示例中所公开的特征更多或更少的特征。因此,以下权利要求据此被结合到详细描述中,其中一个权利要求独立地作为单独的实施例。将参考所附权利要求以及这些权利要求被赋予的等同物的全部范围来确定本文公开的实施例的范围。
Claims (42)
1.一种用于对环境进行建模的设备,所述设备包括:
硬件传感器接口,用于获得代表道路环境的未校正图像的序列,所述未校正图像的序列包括第一未校正图像、先前的未校正图像以及再先前的未校正图像;以及
处理电路***,用于:
将所述第一未校正图像、先前的未校正图像以及再先前的未校正图像提供给人工神经网络(ANN)以产生场景的三维结构;
确定选定单应性;并且
将所述选定单应性应用于所述场景的三维结构,来创建所述道路环境的模型。
2.根据权利要求1所述的设备,其中,所述未校正图像的序列是按时间排序的。
3.根据权利要求1所述的设备,其中,所述选定单应性是最佳拟合单应性。
4.根据权利要求1所述的设备,其中,所述道路环境包括道路表面。
5.根据权利要求1所述的设备,其中,所述道路环境包括车道标记、人行道或道路控制对象。
6.根据权利要求1所述的设备,其中,为确定所述选定单应性,所述处理电路***用于:
在所述先前的未校正图像中选择第一组图像坐标;
校正所述第一组图像坐标以获得第一组校正图像坐标;
将针孔单应性应用于所述第一组校正图像坐标以识别所述第一未校正图像中的对应图像坐标;
使所述第一未校正图像中的对应图像坐标失真以获得失真图像坐标的估计位置;并且
使用线性回归技术来确定所述第一组图像坐标与所述失真图像坐标的估计位置之间的所述选定单应性。
7.根据权利要求6所述的设备,其中,所述第一组图像坐标是像素。
8.根据权利要求6所述的设备,其中,校正所述第一组图像坐标包括针对用于捕获所述先前的未校正图像的镜头使用校正参数。
9.根据权利要求6所述的设备,其中,所述第一组图像坐标包括50-200个图像坐标。
10.根据权利要求6所述的设备,其中,为使所述对应图像坐标失真,所述处理电路***用于针对用于捕获所述第一未校正图像、先前的未校正图像以及再先前的未校正图像的镜头使用镜头失真模型。
11.根据权利要求1所述的设备,其中,所述道路环境的模型包括高于地平面的高度、和距用于捕获所述未校正图像的序列的图像捕获设备的深度。
12.根据权利要求1所述的设备,其中,所述ANN被使用无监督训练技术进行训练,包括以下操作:
将所述第一未校正图像、先前的未校正图像以及再先前的未校正图像提供给所述人工神经网络(ANN)以产生伽马图像;
校正所述伽马图像以产生校正伽马图像;以及
使用所述校正伽马图像计算损失函数。
13.根据权利要求12所述的设备,其中,为校正所述伽马图像,所述处理电路***用于使用镜头失真模型。
14.根据权利要求12所述的设备,其中,为计算所述损失函数,所述处理电路***用于计算未来图像的模型和未来图像之间的误差,所述未来图像的模型是使用应用于所述第一未校正图像的所述选定单应性而产生的。
15.一种用于对环境进行建模的方法,包括:
获得代表道路环境的未校正图像的序列,所述未校正图像的序列包括第一未校正图像、先前的未校正图像以及再先前的未校正图像;
将所述第一未校正图像、先前的未校正图像以及再先前的未校正图像提供给人工神经网络(ANN)以产生场景的三维结构;
确定选定单应性;以及
将所述选定单应性应用于所述场景的三维结构,来创建所述道路环境的模型。
16.根据权利要求15所述的方法,其中,所述未校正图像的序列是按时间排序的。
17.根据权利要求15所述的方法,其中,所述选定单应性是最佳拟合单应性。
18.根据权利要求15所述的方法,其中,所述道路环境包括道路表面。
19.根据权利要求15所述的方法,其中,所述道路环境包括车道标记、人行道或道路控制对象。
20.根据权利要求15所述的方法,其中,确定所述选定单应性包括:
在所述先前的未校正图像中选择第一组图像坐标;
校正所述第一组图像坐标以获得第一组校正图像坐标;
将针孔单应性应用于所述第一组校正图像坐标以识别所述第一未校正图像中的对应图像坐标;
使所述第一未校正图像中的对应图像坐标失真以获得失真图像坐标的估计位置;并且
使用线性回归技术来确定所述第一组图像坐标与所述失真图像坐标的估计位置之间的所述选定单应性。
21.根据权利要求20所述的方法,其中,所述第一组图像坐标是像素。
22.根据权利要求20所述的方法,其中,校正所述第一组图像坐标包括针对用于捕获所述先前的未校正图像的镜头使用校正参数。
23.根据权利要求20所述的方法,其中,所述第一组图像坐标包括50-200个图像坐标。
24.根据权利要求20所述的方法,其中,使所述对应图像坐标失真包括:针对用于捕获所述第一未校正图像、先前的未校正图像以及再先前的未校正图像的镜头使用镜头失真模型。
25.根据权利要求15所述的方法,其中,所述道路环境的模型包括高于地平面的高度、和距用于捕获所述未校正图像的序列的图像捕获设备的深度。
26.根据权利要求15所述的方法,其中,所述ANN被使用无监督训练技术进行训练,包括以下操作:
将所述第一未校正图像、先前的未校正图像以及再先前的未校正图像提供给所述人工神经网络(ANN)以产生伽马图像;
校正所述伽马图像以产生校正伽马图像;以及
使用所述校正伽马图像计算损失函数。
27.根据权利要求26所述的方法,其中,为校正所述伽马图像,所述无监督训练技术使用镜头失真模型。
28.根据权利要求26所述的方法,其中,计算所述损失函数包括:计算未来图像的模型和未来图像之间的误差,所述未来图像的模型是使用应用于所述第一未校正图像的所述选定单应性而产生的。
29.至少一种机器可读介质,包括用于对环境进行建模的指令,所述指令当被处理电路***执行时,使得所述处理电路***执行如下操作,所述操作包括:
获得代表道路环境的未校正图像的序列,所述未校正图像的序列包括第一未校正图像、先前的未校正图像以及再先前的未校正图像;
将所述第一未校正图像、先前的未校正图像以及再先前的未校正图像提供给人工神经网络(ANN)以产生场景的三维结构;
确定选定单应性;以及
将所述选定单应性应用于所述场景的三维结构,来创建所述道路环境的模型。
30.根据权利要求29所述的机器可读介质,其中,所述未校正图像的序列是按时间排序的。
31.根据权利要求29所述的机器可读介质,其中,所述选定单应性是最佳拟合单应性。
32.根据权利要求29所述的机器可读介质,其中,所述道路环境包括道路表面。
33.根据权利要求29所述的机器可读介质,其中,所述道路环境包括车道标记、人行道或道路控制对象。
34.根据权利要求29所述的机器可读介质,其中,确定所述选定单应性的操作包括如下操作:
在所述先前的未校正图像中选择第一组图像坐标;
校正所述第一组图像坐标以获得第一组校正图像坐标;
将针孔单应性应用于所述第一组校正图像坐标以识别所述第一未校正图像中的对应图像坐标;
使所述第一未校正图像中的对应图像坐标失真以获得失真图像坐标的估计位置;并且
使用线性回归技术来确定所述第一组图像坐标与所述失真图像坐标的估计位置之间的所述选定单应性。
35.根据权利要求34所述的机器可读介质,其中,所述第一组图像坐标是像素。
36.根据权利要求34所述的机器可读介质,其中,校正所述第一组图像坐标包括针对用于捕获所述先前的未校正图像的镜头使用校正参数。
37.根据权利要求34所述的机器可读介质,其中,所述第一组图像坐标包括50-200个图像坐标。
38.根据权利要求34所述的机器可读介质,其中,使所述对应图像坐标失真包括:针对用于捕获所述第一未校正图像、先前的未校正图像以及再先前的未校正图像的镜头使用镜头失真模型。
39.根据权利要求29所述的机器可读介质,其中,所述道路环境的模型包括高于地平面的高度、和距用于捕获所述未校正图像的序列的图像捕获设备的深度。
40.根据权利要求29所述的机器可读介质,其中,所述ANN被使用无监督训练技术进行训练,包括以下操作:
将所述第一未校正图像、先前的未校正图像以及再先前的未校正图像提供给所述人工神经网络(ANN)以产生伽马图像;
校正所述伽马图像以产生校正伽马图像;以及
使用所述校正伽马图像计算损失函数。
41.根据权利要求40所述的机器可读介质,其中,为校正所述伽马图像,所述处理电路***使用镜头失真模型。
42.根据权利要求40所述的机器可读介质,其中,计算所述损失函数的操作包括如下操作:计算未来图像的模型和未来图像之间的误差,所述未来图像的模型是使用应用于所述第一未校正图像的所述选定单应性而产生的。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2021/020272 WO2022186814A1 (en) | 2021-03-01 | 2021-03-01 | Vehicle environment modeling with a camera |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116057578A true CN116057578A (zh) | 2023-05-02 |
Family
ID=75111911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180055102.1A Pending CN116057578A (zh) | 2021-03-01 | 2021-03-01 | 利用相机进行车辆环境建模 |
Country Status (4)
Country | Link |
---|---|
US (3) | US20240177417A1 (zh) |
CN (1) | CN116057578A (zh) |
DE (1) | DE112021004501T5 (zh) |
WO (1) | WO2022186814A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112021004501T5 (de) | 2021-03-01 | 2023-09-07 | Mobileye Vision Technologies Ltd. | Modellierung der fahrzeugumgebung mit einer kamera |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9256791B2 (en) * | 2012-12-04 | 2016-02-09 | Mobileye Vision Technologies Ltd. | Road vertical contour detection |
CN109804223A (zh) | 2016-10-11 | 2019-05-24 | 御眼视觉技术有限公司 | 基于检测到的障碍物导航车辆 |
EP3673233A4 (en) * | 2018-04-18 | 2021-05-19 | Mobileye Vision Technologies Ltd. | VEHICLE ENVIRONMENT MODELING WITH A CAMERA |
US11341614B1 (en) * | 2019-09-24 | 2022-05-24 | Ambarella International Lp | Emirror adaptable stitching |
US11494927B2 (en) * | 2020-09-15 | 2022-11-08 | Toyota Research Institute, Inc. | Systems and methods for self-supervised depth estimation |
DE112021004501T5 (de) | 2021-03-01 | 2023-09-07 | Mobileye Vision Technologies Ltd. | Modellierung der fahrzeugumgebung mit einer kamera |
-
2021
- 2021-03-01 DE DE112021004501.6T patent/DE112021004501T5/de active Pending
- 2021-03-01 US US17/777,212 patent/US20240177417A1/en active Pending
- 2021-03-01 WO PCT/US2021/020272 patent/WO2022186814A1/en active Application Filing
- 2021-03-01 CN CN202180055102.1A patent/CN116057578A/zh active Pending
-
2022
- 2022-06-16 US US17/841,937 patent/US11568653B2/en active Active
-
2023
- 2023-01-11 US US18/095,626 patent/US11869253B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20220366706A1 (en) | 2022-11-17 |
US11568653B2 (en) | 2023-01-31 |
US20230162513A1 (en) | 2023-05-25 |
WO2022186814A1 (en) | 2022-09-09 |
US20240177417A1 (en) | 2024-05-30 |
DE112021004501T5 (de) | 2023-09-07 |
US11869253B2 (en) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11657604B2 (en) | Systems and methods for estimating future paths | |
US11669102B2 (en) | Navigating a vehicle based on a detected barrier | |
US11392135B2 (en) | Systems and methods for navigating lane merges and lane splits | |
US10832063B2 (en) | Systems and methods for detecting an object | |
US10696227B2 (en) | Determining a road surface characteristic | |
US11676364B2 (en) | Real-time detection of lanes and boundaries by autonomous vehicles | |
EP3514032B1 (en) | Adjusting velocity of a vehicle for a curve | |
US11869253B2 (en) | Vehicle environment modeling with a camera | |
US20220129683A1 (en) | Selecting data for deep learning | |
CN113177427A (zh) | 道路预测的方法以及自主驾驶的方法、车辆及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |