本申请要求于2014年5月22日提交的美国临时专利申请No.62/001,772的优先权。上述申请的全部内容通过引用并入本文。
技术领域
本公开总体上涉及车辆自主导航(navigation),更具体地,涉及使用相机来检测车辆前方的对象,并基于所检测的对象实施制动的系统和方法。
背景技术:
随着技术的进步,能够在道路上导航的完全自主车辆的目标即将实现。首先,自主车辆可能能够识别其环境,且在没有来自人类操作者的输入的情况下进行导航。自主车辆也可以考虑各种因素,并基于这些因素作出适当的决定,以安全和准确地到达预期目的地。例如,当车辆通常在道路上行驶时,会遇到各种对象,例如其他车辆和行人。自主驾驶系统可以在车辆的环境中识别这些对象,并采取适当和及时的行动以避免碰撞。此外,自主驾驶系统可以识别规定车辆运动(例如,车辆何时必须停止、以及何时可以以车辆不能超过的速度行驶、车辆必须在道路上位于何处、等等)的其他指示,例如交通信号、交通标志和车道标记。自主驾驶系统可能需要确定车辆何时应当改变车道,在交叉口处转弯,改变车道等。自主驾驶系统可能需要确定车辆何时应当改变车道、在交叉口处转弯、改变道路,等等。从这些示例显而易见,可能需要解决许多因素,以便提供能够安全和准确地导航的自主车辆。
技术实现要素:
与本公开一致的实施例提供了用于自主车辆导航的系统和方法。所公开的实施例可以使用相机来提供自主车辆导航特征。例如,与所公开的实施例一致,所公开的系统可以包括一个、两个、或更多个相机,其监测车辆的环境,并基于对一个或多个相机捕获的图像的分析来引起导航响应。
与所公开的实施例一致,提供了一种用于车辆的对象检测和制动系统。系统可以包括至少一个图像捕获设备,其配置为获取包括车辆的前方的对象的区域的多个图像。系统可以包括数据接口。系统可以包括至少一个处理设备,其被编程为,经由数据接口接收多个图像,基于至少第一图像和第二图像执行第一图像分析以确定车辆与对象的第一估计碰撞时间,以及基于至少第三图像和第四图像执行第二图像分析以确定车辆与对象的第二估计碰撞时间。处理设备可以被编程为,计算第一估计碰撞时间和第二估计碰撞时间之间的差异,确定差异不超过预定阈值,以及基于确定差异不超过预定阈值,使车辆制动。
与所公开的实施例一致,提供了一种车辆。车辆可以包括车身。车辆可以包括至少一个图像捕获设备,其配置为获取获取包括车辆的前方的对象的区域的多个图像。系统可以包括数据接口。系统可以包括至少一个处理设备,其被编程为,经由数据接口接收多个图像,基于至少第一图像和第二图像执行第一图像分析以确定车辆与对象的第一估计碰撞时间,以及基于至少第三图像和第四图像执行第二图像分析以确定车辆与对象的第二估计碰撞时间。处理设备可以被编程为,计算第一估计碰撞时间和第二估计碰撞时间之间的差异,确定差异不超过预定阈值,以及基于确定差异不超过预定阈值,使车辆制动。
与所公开的另一实施例一致,提供一种用于检测对象和制动车辆的方法。方法可以包括,经由至少一个图像捕获设备,获取包括车辆的前方的对象的区域的多个图像。方法还包括,经由处理设备接收多个图像,经由处理设备基于至少第一图像和第二图像执行第一图像分析,以确定车辆与对象的第一估计碰撞时间,经由处理设备基于至少第三图像和第四图像执行第二图像分析,以确定车辆与对象的第二估计碰撞时间。方法还可以包括,经由处理设备计算第一估计碰撞时间和第二估计碰撞时间之间的差异,经由处理设备确地差异不超过预定阈值,以及经由处理设备,基于确定差异不超过预定阈值,使车辆制动。
与所公开的又一实施例一致,提供了一种用于评估与车辆的制动决定系统相关联的总系统故障率的方法。方法包括,使用处理设备确定与基于纹理分析的子系统相关联的第一故障率。基于纹理分析的子系统配置为,基于车辆的前方的至少两个图像之间的纹理的变化,作出制动的决定。方法还包括,使用处理设备,确定与基于结构分析的子系统相关联的第二故障率。基于结构分析的子系统配置为,基于从车辆的前方的区域的至少两个图像导出的光流信息,作出制动的决定。方法还包括,使用处理设备,基于第一故障率和第二故障率,确定总系统故障率。
与其他所公开的实施例一致,非暂时性计算机可读存储介质可以存储程序指令,其由至少一个处理设备运行,并且执行本文所述的任何方法。
前述总体描述和以下详细描述仅是示范性和说明性的,而不是对权利要求的限制。
附图说明
附图并入本公开并构成本公开的一部分,在附图中示出了所公开的实施例。在附图中:
图1是与所公开的实施例一致的示范性系统的图示。
图2A是包括与所公开的实施例一致的系统的示范性车辆的侧视图。
图2B是与所公开的实施例一致的图2A所示的车辆和系统的俯视图。
图2C是包括与所公开的实施例一致的系统的车辆的另一实施例的俯视图。
图2D是包括与所公开的实施例一致的系统的车辆的又一实施例的俯视图。
图2E是包括与所公开的实施例一致的系统的车辆的又一实施例的俯视图。
图2F是与所公开的实施例一致的示范性车辆控制系统的图示。
图3A是与所公开的实施例一致的车辆的内部的图示,其包括后视镜和用于车辆成像系统的用户界面。
图3B是与所公开的实施例一致的相机安装件的示例的图例,其配置为定位在后视镜后面并且抵靠车辆风挡。
图3C是与所公开的实施例一致的从不同视角观察的图3B所示的相机安装件的图例。
图3D是与所公开的实施例一致的相机安装件的示例的图例,其配置为定位在后视镜后面并且抵靠车辆风挡。
图4是与所公开的实施例一致的存储器的示范性框图,其配置为存储用于执行一个或多个操作的指令。
图5A是与所公开的实施例一致的流程图,其示出了用于基于单目图像分析产生一个或多个导航响应的示范性过程。
图5B是与所公开的实施例一致的流程图,其示出了用于检测在一组图像中的一个或多个车辆和/或行人的示范性过程。
图5C是与所公开的实施例一致的流程图,其示出了用于检测在一组图像中的道路标记和/或车道几何信息的示范性过程。
图5D是与所公开的实施例一致的流程图,其示出了用于检测在一组图像中的交通灯的示范性过程。
图5E是与所公开的实施例一致的流程图,其示出了用于基于车辆路径产生一个或多个导航响应的示范性过程。
图5F是与所公开的实施例一致的流程图,其示出了用于确定在先车辆是否正在改变车道的示范性过程。
图6是与所公开的实施例一致的流程图,其示出了用于基于立体图像分析产生一个或多个导航响应的示范性过程。
图7是与所公开的实施例一致的流程图,其示出了基于三组图像的分析产生一个或多个导航响应的示范性过程。
图8是与所公开的实施例一致的包括对象检测和制动系统的示范性车辆的图示,其在另一辆车辆后面的道路上行驶。
图9是与所公开的实施例一致的包括对象检测和制动系统的示范性车辆的图示,其在包括迎面而来的车辆的道路上行驶。
图10是与所公开的实施例一致的存储器的示范性框图,其可以存储用于执行一个或多个操作的指令,所述一个或多个操作用于检测车辆前方的对象并且基于检测制动车辆。
图11是与所公开的实施例一致的流程图,其示出了用于检测车辆的前方对象并且基于检测使车辆制动的示范性过程。
图12是与所公开的实施例一致的流程图,其示出了用于确定第一估计碰撞时间的示范性第一图像分析。
图13是与所公开的实施例一致的流程图,其示出了用于确定第二估计碰撞时间的示范性第二图像分析。
图14A-14C示出了与所公开的实施例一致的图像,其具有光流场以及第二估计碰撞时间在光流场中的分布。
图15A和15B示出了与所公开的实施例一致的、当对象在不同的方向上行驶时的示范性扩展焦点。
图16示出了与所公开的实施例一致的示范性光流场和扩展焦点。
图17A和17B示出了与所公开的实施例一致的对象的图像,并且从光流场中的点到扩展焦点的距离与点的移动幅度之间具有线性关系。
图18A和18B示出了与所公开的实施例一致的对象的图像,并且从光流场中的点到扩展焦点的距离与点的移动幅度之间具有非线性关系。
图19是与所公开的实施例一致的流程图,其示出了用于基于指示碰撞时间小于一个或多个阈值的可能性来触发警告的示范性过程。
图20是与所公开的实施例一致的流程图,其示出了可以在图11所示的第一图像分析中实现的用于确定第一碰撞时间(TTC1)的示范性过程。
图21是与所公开的实施例一致的流程图,其示出了用于使用两种模态执行系统校验的示范性过程。
具体实施方式
以下详细描述参考附图。在各种可能的情况中,在附图和以下描述中使用相同的附图标记来指代相同或相似的部件。尽管本文描述了若干说明性实施例,但是修改、适配和其他实现方式是可能的。例如,可以对附图中所示的部件进行替换、添加或修改,并且可以通过对所公开的方法进行替换、重新排序、移除或添加步骤,从而修改本文所述的说明性方法。相应地,以下详细描述不限于所公开的实施例和示例。相反,适当的范围由所附权利要求书限定。
图1是与示范性公开实施例一致的系统100的框图表示。根据特定的实施方式的要求,系统100可以包括各种部件。在一些实施例中,系统100可以包括处理单元110、图像获取单元120、位置传感器130、一个或多个存储器单元140、150、地图数据库160、以及用户界面170。处理单元110可以包括一个或多个处理设备。在一些实施例中,处理单元110可以包括应用处理器180、图像处理器190、或任何其他合适的处理设备。类似地,根据特定应用的要求,图像获取单元120可以包括任何数量的图像获取设备和部件。在一些实施例中,图像获取单元120可以包括一个或多个图像捕获设备(例如相机),例如图像捕获设备122、图像捕获设备124和图像捕获设备126。系统100还可以包括数据接口128,其将处理设备110通信地连接到图像获取设备120。例如,数据接口128可以包括任何有线和/或无线的(多个)链路,以将由图像获取设备120获取的图像数据传输到处理单元110。
应用处理器180和图像处理器190两者可以包括各种类型的处理设备。例如,应用处理器180和图像处理器190中的任一者或两者可以包括微处理器、预处理器(例如图像预处理器)、图像处理器、中央处理单元(CPU)、配套电路、数字信号处理器、集成电路、存储器、或者适合于运行应用且适合于处理和分析图像的任何其他类型的设备。在一些实施例中,应用处理器180和/或图像处理器190可以包括任何类型的单核或多核处理器、移动设备微控制器、中央处理单元等。可以使用各种处理设备,例如包括从例如等制造商处可获得的处理器,且可以包括各种架构(例如,x86处理器、等)。
在一些实施例中,应用处理器180和/或图像处理器190可以包括可从获得的任何EyeQ系列的处理器芯片。这些处理器设计的每个包括具有本地存储器和指令集的多个处理单元。这样的处理器可以包括用于从多个图像传感器接收图像数据的视频输入的能力,并且还可以包括视频输出的能力。在一个示例中,使用以332Mhz工作的90nm-微米技术。架构由以下组成:两个浮点、超线程32位RISC CPU(核心)、五个视觉计算引擎(VCE)、三个矢量微码处理器Denali 64位移动DDR控制器、128位内部Sonics互连、双16位视频输入和18位视频输出控制器、16通道DMA和若干外围设备。MIPS34K CPU管理五个VCE、三个VMPTM和DMA、第二MIPS34K CPU和多通道DMA、以及其他外围设备。五个VCEs、三个和MIPS34K CPU可以执行多功能捆绑应用所需的增强视觉(intensive vision)计算。在另一示例中,(其为第三代处理器,比强大6倍)可以用于所公开的实施例。
本文公开的任何处理设备可以配置为执行某些功能。配置处理设备(例如任何所述的EyeQ处理器或其他控制器或微处理器)以执行某些功能,这可以包括对计算机可运行指令的编程,并使这些指令可用于处理设备,以在处理设备的操作期间运行。在一些实施例中,配置处理设备可以包括利用架构指令直接编程处理设备。在其他实施例中,配置处理设备可以包括在存储器上存储可运行指令,在操作期间可由处理设备访问所述存储器。例如,处理设备可以访问存储器,以在操作期间获得并运行所存储的指令。
虽然图1示出了处理单元110包括两个单独的处理设备,但可以使用更多或更少的处理设备。例如,在一些实施例中,可以使用单个处理设备来完成应用处理器180和图像处理器190的任务。在其他实施例中,这些任务可以由多于两个处理设备来执行。
处理单元110可以包括各种类型的设备。例如,处理单元110可以包括各种设备,例如控制器、图像预处理器、中央处理单元(CPU)、辅助电路、数字信号处理器、集成电路、存储器、或者用于图像处理和分析的任何其他类型的设备。图像预处理器可以包括视频处理器,以捕获、数字化和处理来自图像传感器的图像。CPU可以包括任何数量的微控制器或微处理器。辅助电路可以是本领域中公知的任何数量的电路,包括缓存、电力供给、时钟和输入输出电路。存储器可以存储软件,当所述软件由处理器运行时,控制系统的操作。存储器可以包括数据库和图像处理软件。存储器可以包括任何数量的随机存取存储器、只读存储器、闪存存储器、磁盘驱动器、光学存储体、磁带存储体、可移动存储体和其他类型的存储体。在一种情况下,存储器可以与处理单元110分离。在另一种情况下,存储器可以集成在处理单元110中。
存储器140、150可以均包括软件指令,当所述软件指令由处理器(例如应用处理器180和/或图像处理器190)运行时,可以控制系统100的各个方面的操作。这些存储器单元可以包括各种数据库和图像处理软件。存储器单元可以包括随机存取存储器、只读存储器、闪存存储器、磁盘驱动器、光学存储体、磁带存储体、可移动存储体和其他类型的存储体。在一些实施例中,存储器单元140、150可以与应用处理器180和/或图像处理器190分离。在其他实施例中,这些存储器单元可以集成在应用处理器180和/或图像处理器190中。
位置传感器130可以包括适于确定与系统100的至少一个部件相关联的位置的任何类型的设备。在一些实施例中,位置传感器130可以包括GPS接收器。这样的接收器可以通过处理由全球定位系统卫星广播的信号来确定用户的位置和速度。来自位置传感器130的位置信息可以被提供给应用处理器180和/或图像处理器190。
用户界面170可以包括适于向系统100的一个或多个用户提供信息或接收来自系统100的一个或多个用户的输入的任何设备。在一些实施例中,用户界面170可以包括用户输入设备,例如包括触摸屏、麦克风、键盘、指针设备、轨道轮、相机、旋钮、按钮等。利用这样的输入设备,用户能够以以下方式向系统100提供信息输入或命令:键入指令或信息,提供语音命令,使用按钮、指针或眼睛追踪能力在屏幕上选择菜单选项,或通过任何其他合适的技术向系统100通信信息。
用户界面170可以配备有一个或多个处理设备,该处理设备配置为向用户提供信息和从用户接收信息,并处理该信息以例如供应用处理器180使用。在一些实施例中,这样的处理设备可以执行指令,以用于识别和跟踪眼睛移动、接收和解译语音命令、识别和解译在触摸屏上做出的触摸和/或手势、响应键盘输入或菜单选择,等等。在一些实施例中,用户界面170可以包括显示器、扬声器、触觉设备、和/或用于向用户提供输出信息的任何其他设备。
地图数据库160可以包括任何类型的数据库,用于存储对系统100有用的地图数据。在一些实施例中,地图数据库160可以包括涉及各种项目在参考坐标系中的位置的数据,所述项目包括道路、水景、地理特征、商业场所、兴趣地点、餐馆、加油站等。地图数据库160不仅可以存储这些项目的位置,而且可以存储与这些项目相关的描述符,例如包括与任何所存储的特征相关联的名称。在一些实施例中,地图数据库160可以与系统100的其他部件实体地定位在一起。替代地或附加地,地图数据库160或其部分可以相对于系统100的其他部件(例如处理单元110)远程地定位。在这样的实施例中,来自地图数据库160的信息可以通过到网络的有线或无线数据连接下载(例如通过蜂窝网络和/或互联网等)。
图像捕获设备122、124和126的每个可以包括适于捕获来自环境的至少一个图像的任何类型的设备。此外,可以使用任何数量的图像捕获设备,以获取图像以输入到图像处理器。一些实施例可以仅包括单一的图像捕获设备,而其他实施例可以包括两个、或甚至四个、或更多个图像捕获设备。将在下文中参考图2B-2E进一步描述图像捕获设备122、124和126。
系统100,或其各种部件,可以并入各种不同的平台中。在一些实施例中,系统100可以被包括在车辆200上,如图2A所示。例如,车辆200可以配备有处理单元110以及例如上文关于图1所描述的系统100的任何其他部件。虽然在某些实施例中,车辆200可仅配备有单个图像捕获设备(例如,相机),但在其他实施例中,例如结合图2B-2E所讨论的那些,可以使用多个图像捕获设备。例如,如图2A所示,车辆200的图像捕获设备122和124中的任一个可以是ADAS(高级驾驶员辅助系统)成像组件中的部分。
图像捕获设备被包括在车辆200上,以作为图像获取单元120的一部分,其可以定位在任何合适的位置。在一些实施例中,如图2A-2E和图3A-3C所示,图像捕获设备122可以位于后视镜附近。该位置可以提供的视线类似于车辆200的驾驶员的视线,这可以有助于确定对于驾驶员来说,什么是可见的以及什么是不可见的。图像捕获设备122可以定位在后视镜附近的任何位置,但是将图像捕获设备122放置在靠近驾驶员的一侧可以进一步有助于获得代表驾驶员的视场和/或视线的图像。
也可以使用图像获取单元120的图像捕获设备的其他位置。例如,图像捕获设备124可以位于车辆200的保险杠(bumper)上或保险杠中。这样的位置可以特别适合于具有宽视场的图像捕获设备。位于保险杠的图像捕获设备的视线可能与驾驶员的视线不同,因此,保险杠图像捕获设备和驾驶员可能不总是看到相同的对象。图像捕获设备(例如图像捕获设备122、124和126)也可以位于其他位置。例如,图像捕获设备也可以位于车辆200的一个或两个侧镜上(或中)、车辆200的车顶上、车辆200的引擎罩上、车辆200的后备箱上、车辆200的侧面上、安装在车辆200的任何窗户上或者定位在车辆200的任何窗户的前面或后面、以及安装在车辆200的前部和/或后部的灯具中或其附近、等等。
除了图像捕获设备以外,车辆200可以包括系统100的各种其他部件。例如,处理单元110可以被包括在车辆200上,或与车辆的发动机控制单元(ECU)集成或分离。车辆200还可以配备有位置传感器130(例如GPS接收器),且还可以包括地图数据库160以及存储器单元140和150。
图2A是与所公开的实施例一致的示范性车辆成像系统的侧视图。图2B是图2A所示的实施例的俯视图。如图2B所示,所公开的实施例可以包括车辆200,在其车身中包括系统100,系统100具有定位在后视镜附近和/或靠近车辆200的驾驶员的第一图像捕获设备122、定位在车辆200的保险杠区域(例如,保险杠区域210中的一个)上(或中)的第二图像捕获设备124、以及处理单元110。
如图2C所示,图像捕获设备122和124两者都定位在后视镜附近和/或接近车辆200的驾驶员。此外,虽然在图2B和图2C中示出了两个图像捕获设备122和124,但应当理解,其他实施例可以包括不止两个图像捕获设备。例如,在图2D和2E所示的实施例中,第一图像捕获设备122、第二图像捕获设备124、第三图像捕获设备126被包括在车辆200的系统100中。
如图2D所示,图像捕获设备122可以定位在后视镜附近和/或接近车辆200的驾驶员,且图像捕获设备124和126可以定位在车辆200的保险杠区域(例如,保险杠区域210中的一个)上(或中)。并且如图2E所示,图像捕获设备122、124和126可以定位在后视镜附近和/或接近车辆200的驾驶员座位。所公开的实施例不限于图像捕获设备的任何特定的数量和配置方式,并且图像捕获设备可以位于车辆200内和/或车辆200上的任何适当位置。
应当理解,所公开的实施例不限于车辆且可以应用于其他场合。还应当理解,所公开的实施例不限于特定类型的车辆200,而是可以适用于所有类型的车辆,包括汽车、卡车、拖车和其他类型的车辆。
第一图像捕获设备122可以包括任何合适类型的图像捕获设备。图像捕获设备122可以包括光轴。在一种情况下,图像捕获设备122可以包括具有全局(global)快门的Aptina M9V024WVGA传感器。在其他实施例中,图像捕获设备122可以提供1280×960像素的分辨率,并且可以包括滚动(rolling)快门。图像捕获设备122可以包括各种光学元件。在一些实施例中,可以包括一个或多个透镜,例如为图像捕获设备提供所需的焦距和视场。在一些实施例中,图像捕获设备122可以与6mm透镜或12mm透镜相关联。在一些实施例中,图像捕获设备122可以配置为捕获具有所需的视场(field of view,FOV)202的图像,如图2D所示。例如,图像捕获设备122可以配置为具有规则的FOV,例如在40度到56度的范围内,包括46度FOV、50度FOV、52度FOV或更大。替代地,图像捕获设备122可以配置为具有在23度到40度的范围内的窄FOV,例如28度FOV或36度FOV。此外,图像捕获设备122可以配置为具有在100度到180度范围内的宽FOV。在一些实施例中,图像捕获设备122可以包括广角保险杠相机或者具有高达180度FOV。
第一图像捕获设备122可以获取相对于与车辆200相关联的场景的多个第一图像。所述多个第一图像中的每一个可以作为一系列图像扫描线(scan lines)被获取,可以使用滚动快门捕获所述图像扫描线。每个扫描线可以包括多个像素。
第一图像捕获设备122可以具有与获取第一系列的图像扫描线中的每一个相关联的扫描速率。扫描速率可以指:图像传感器可以获取与包括在特定扫描线中的每个像素相关联的图像数据的速率。
图像捕获设备122、124和126可以包括任何合适类型和数量的图像传感器,例如包括CCD传感器或CMOS传感器。在一个实施例中,CMOS图像传感器可以与滚动快门一起使用,使得一次读取一行中的每个像素,并且行的扫描在逐行的基础上进行,直到捕获整个图像帧。在一些实施例中,可以相对于帧从顶部到底部顺序捕获行。
使用滚动快门可以导致不同的行中的像素在不同的时间被曝光和捕获,这会导致在捕获的图像帧中出现歪斜(skew)和其他图像伪影(artifact)。另一方面,当图像捕获设备122配置为利用全局或同步快门操作时,所有的像素可以在共用的曝光时段期间被曝光相同的时间量。结果,从采用全局快门的系统收集的帧中的图像数据表示在特定时间的整个FOV(例如FOV 202)的快照。与之相反,在滚动快门应用中,帧中的每一行在不同时间曝光,并且在不同时间捕获数据。因此,在具有滚动快门的图像捕获设备中,运动对象会出现失真。下面将更详细地描述这种现象。
第二图像捕获设备124和第三图像捕获设备126可以是任何类型的图像捕获设备。类似图像捕获设备122,图像捕获设备124和126中的每一个可以包括光轴。在一个实施例中,图像捕获设备124和126中的每一个可以包括具有全局快门的Aptina M9V024WVGA传感器。替代地,图像捕获设备124和126中的每一个可以包括滚动快门。类似图像捕获设备122,图像捕获设备124和126可以配置为包括各种透镜和光学元件。在一些实施例中,与图像捕获设备124和126相关联的透镜可以提供FOV(例如FOV 204和206),其等同于或窄于与图像捕获设备122相关联的FOV(例如FOV 202)。例如,图像捕获设备124和126具有的FOV可以为40度、30度、26度、23度、20度、或更小。
图像捕获设备124和126可以获取相对于与车辆200相关联的场景的多个第二图像和多个第三图像。多个第二图像和多个第三图像中的每一个可以作为第二系列图像扫描线和第三系列图像扫描线被获取,可以使用滚动快门捕获所述图像扫描线。每个扫描线或行可以具有多个像素。图像捕获设备124和126具有与包括在第二系列和第三系列中的每个图像扫描线的采集相关联的第二扫描速率和第三扫描速率。
图像捕获设备122、124和126的每一个可以相对于车辆200定位在任何合适的位置和取向。可以选择图像捕获设备122、124和126的相对定位,以有助于将从各图像捕获设备获取的信息融合(fuse)在一起。例如,在一些实施例中,与图像捕获设备124相关联的FOV(例如FOV 204)可以同与图像捕获设备122相关联的FOV(例如FOV 202)和与图像捕获设备126相关联的FOV(例如FOV 206)部分或完全地重叠。
图像捕获设备122、124和126可以以任何合适的相对高度定位在车辆200上。在一种情况下,图像捕获设备122、124和126之间可能存在高度差,其可以提供足够的视差信息以实现立体分析。例如,如图2A所示,两个图像捕获设备122和124位于不同的高度。在图像捕获设备122、124和126之间还可以存在横向位移差,例如,给出用于由处理单元110进行立体分析的附加视差信息。横向位移差可以由dx表示,如图2C和图2D所示。在一些实施例中,在图像捕获设备122、124和126之间可以存在前后位移(例如,范围位移)。例如,图像捕获设备122可以位于图像捕获设备124和/或图像捕获设备126后面的0.5到2米或更远。这种类型的位移可以使得图像捕获设备中的一个能够覆盖其他(多个)图像捕获设备的潜在盲点。
图像捕获设备122可以具有任何合适的分辨率能力(例如,与图像传感器相关联的像素数量),并且,与图像捕获设备122相关联的(多个)图像传感器的分辨率跟与图像捕获设备124和126相关联的(多个)图像传感器的分辨率相比,可以更高、更低或相同。在一些实施例中,与图像捕获设备122和/或图像捕获设备124和126相关联的(多个)图像传感器可以具有640×480、1024×768、1280×960的分辨率,或任何其他合适的分辨率。
帧速率(例如,在所述速率下,图像捕获设备获取一个图像帧的一组像素数据,然后继续捕获与下一个图像帧相关联的像素数据)可以是可控的。与图像捕获设备122相关联的帧速率跟与图像捕获设备124和126相关联的帧速率相比,可以更高、更低或相同。与图像捕获设备122、124和126相关联的帧速率可以取决于可影响帧速率的定时的各种因素。例如,图像捕获设备122、124和126中的一个或多个可以包括可选择的像素延迟周期,其在获取与图像捕获设备122、124和/或126中的图像传感器的一个或多个像素相关联的图像数据之前或之后施加。通常,可以根据设备的时钟速率(例如,每个时钟周期一个像素)来获取与每个像素相对应的图像数据。此外,在包括滚动快门的实施例中,图像捕获设备122、124和126中的一个或多个可以包括可选择的水平消隐(blanking)期,其在获取与图像捕获设备122、124和/或126中的图像传感器的像素的行相关联的图像数据之前或之后施加。另外,图像捕获设备122、124和126中的一个或多个可以包括可选择的垂直消隐期,其在获取与图像捕获设备122、124和126的图像帧相关联的图像数据之前或之后施加。
这些定时控制可以实现与图像捕获设备122、124和126相关联的帧速率的同步,即使在每一个的线扫描速率不同的情况下。此外,如将在下面更详细地讨论的,这些可选择的定时控制,以及其他因素(例如,图像传感器分辨率、最大线扫描速率、等等)可以实现在图像捕获设备122的FOV与图像捕获设备124和126的一个或多个FOV重叠的区域中图像捕获同步,即使在图像捕获设备122的视场不同于图像捕获设备124和126的FOV的情况下。
图像捕获设备122、124和126中的帧速率定时可以取决于相关联的图像传感器的分辨率。例如,假设两个设备的线扫描速率类似,如果一个设备包括具有640x480的分辨率的图像传感器,并且另一个设备包括具有1280x960的分辨率的图像传感器,则从具有较高分辨率的传感器获取图像数据的帧将需要更多的时间。
可影响图像捕获设备122、124和126中的图像数据获取的定时的另一因素是最大线扫描速率。例如,从包括在图像捕获设备122、124和126中的图像传感器获取图像数据的行将需要一些最小量的时间。假设没有填加像素延迟周期,则用于获取图像数据的行的该最小量时间将与特定设备的最大线扫描速率相关。与具有较低的最大线扫描速率的设备相比,提供较高的最大线扫描速率的设备具有提供较高的帧速率的可能。在一些实施例中,图像捕获设备124和126中的一个或多个具有的最大线扫描速率可以高于与图像捕获设备122相关的最大线扫描速率。在一些实施例中,图像捕获设备124和/或126的最大线扫描速率可以是图像捕获设备122的最大线扫描速率的1.25、1.5、1.75或2倍或更大倍数。
在另一实施例中,图像捕获设备122、124和126可以具有相同的最大线扫描速率,但是图像捕获设备122可以以小于或等于其最大扫描速率的扫描速率操作,系统可以配置为使得图像捕获设备124和126中的一个或多个以等于图像捕获设备122的线扫描速率的线扫描速率操作。在其他情况下,系统可以配置为使得图像捕获设备124和126中的一个或多个以等于图像捕获设备122的线扫描速率的1.25、1.5、1.75、2倍或更大倍数的线扫描速率操作。
在一些实施例中,图像捕获设备122、124和126可以是不对称的。即,它们可以包括具有不同的视场(FOV)和焦距的相机。例如,图像捕获设备122、124和126的视场可以包括相对于车辆200的环境的任何所期望的区域。在一些实施例中,图像捕获设备122、124和126中的一个或多个可以配置为从车辆200前方的环境、车辆200后方的环境、车辆200侧面的环境、或其组合获取图像数据。
另外,与图像捕获设备122、124和/或126中的每一个相关的焦距可以是可选择的(例如,通过包括合适的透镜等),以使得每个设备获取在相对于车辆200的所期望的距离范围处的对象的图像。例如,在一些实施例中,图像捕获设备122、124和126可以获取在距车辆几米内的特写(close-up)对象的图像。图像捕获设备122、124和126还可以配置为获取在距车辆更远的距离处(例如,25m、50m、100m、150m或更多)的对象的图像。另外,图像捕获设备122、124和126的焦距可以被选择,以使得一个图像捕获设备(例如,图像捕获设备122)可以获取相对接近车辆(例如在10m内或在20m内)的对象的图像,而其他图像捕获设备(例如,图像捕获设备124和126)可以获取距车辆200更远(例如大于20m、50m、100m、150m等)的对象的图像。
根据一些实施例,图像捕获设备122、124和126中的一个或多个的FOV可以具有广角。例如,可有利的是,具有140度的FOV,特别是对于可用于捕获车辆200附近区域的图像的图像捕获设备122、124和126。例如,图像捕获设备122可以用于捕获车辆200的右侧或左侧区域的图像,并且在这样的实施例中,图像捕获设备122可能期望具有宽FOV(例如,至少140度)。
与图像捕获设备122、124和126中的每一个相关联的视场可以取决于各自的焦距。例如,随着焦距增加,相对应的视场减小。
图像捕获设备122、124和126可以配置为具有任何合适的视场。在一个特定的示例中,图像捕获设备122可以具有46度的水平FOV,图像捕获设备124可以具有23度的水平FOV,且图像捕获设备126可以具有在23度和46度之间的水平FOV。在另一种情况下,图像捕获设备122可以具有52度的水平FOV,图像捕获设备124可以具有26度的水平FOV,且图像捕获设备126可以具有在26度和52度之间的水平FOV。在一些实施例中,图像捕获设备122的FOV与图像捕获设备124和/或图像捕获设备126的FOV的比率可以在1.5到2.0之间变化。在其他实施例中,该比率可以在1.25和2.25之间变化。
系统100可以配置为使得图像捕获设备122的视场与图像捕获设备124和/或图像捕获设备126的视场至少部分或完全地重叠。在一些实施例中,系统100可以配置为使得图像捕获设备124和126的视场例如落入(例如窄于)图像捕获设备122的视场内,并与其共享共用的中心。在其他实施例中,图像捕获设备122、124和126可以捕获相邻的FOV或可以在它们的FOV中具有部分重叠。在一些实施例中,图像捕获设备122、124和126的视场可以对齐,使得较窄FOV的图像捕获设备124和/或126的中心可以位于较宽FOV设备122的视场的下半部中。
图2F是与所公开的实施例一致的示范性车辆控制系统的图示。如图2F所示,车辆200可以包括节流系统220、制动系统230和转向系统240。系统100可以通过一个或多个数据链路(例如用于传输数据的任何有线和/或无线的(多个)链路)向节流系统220、制动系统230和转向系统240中的一个或多个提供输入(例如,控制信号)。例如,基于对图像捕获设备122、124和126所获取的图像进行分析,系统100可以向节流系统220、制动系统230和转向系统240中的一个或多个提供控制信号,以导航车辆200(例如,通过引起加速度、转弯、变换车道等)。另外,系统100可以从节流系统220、制动系统230和转向系统240中的一个或多个接收输入,其指示车辆200的操作条件(例如,速度、车辆200是否在制动和/或转向等)。下文结合图4-7提供进一步的细节。
如图3A所示,车辆200还可以包括用户界面170,以与车辆200的驾驶员和乘客交互。例如,车辆应用中的用户界面170可以包括触摸屏320、旋钮330、按钮340和麦克风350。车辆200的驾驶员或乘客也可以使用手柄(例如,位于车辆200的转向柱上或附近,例如包括转向信号手柄)、按钮(例如,位于车辆200的方向盘上)等与系统100交互。在一些实施例中,麦克风350可以定位为接近后视镜310。类似地,在一些实施例中,图像捕获设备122可以位于后视镜310附近。在一些实施例中,用户界面170还可以包括一个或多个扬声器360(例如,车辆音频系统的扬声器)。例如,系统100可以经由扬声器360提供各种通知(例如,警报)。
图3B-3D是与所公开的实施例一致的示范性相机安装件370的图例,其配置为定位在后视镜(例如,后视镜310)后面,并抵靠车辆风挡。如图3B所示,相机安装件370可以包括图像捕获设备122、124和126。图像捕获设备124和126可以定位在防眩板(glare shield)380后面,防眩板380可以与车辆风挡平齐,且包括膜和/或抗反射材料的复合物。例如,防眩板380可以定位为使其与具有匹配斜率的车辆风挡对齐。在一些实施例中,图像捕获设备122、124和126中的每一个可以定位在防眩板380后面,如图3D中所示出的。所公开的实施例不限于图像捕获设备122、124和126、相机安装件370、以及防眩板380的任何特定配置方式。图3C是从正面视角观察的图3B所示的相机安装件370的图示。
受益于本公开,本领域技术人员将理解,可以对前述公开的实施例进行许多变化和/或修改。例如,并非所有的部件对于系统100的操作是必要的。另外,任何部件可以位于系统100的任何适当部分中,并且部件可以重新布置成各种配置,同时提供所公开的实施例的功能。因此,前述配置是示例,并且无论上述配置如何,系统100可以提供广泛的功能以分析车辆200的周围环境并响应于分析来导航车辆200。
如下面更详细地讨论的,并且与各种公开的实施例一致,系统100可以提供与自主驾驶和/或驾驶员辅助技术相关的各种特征。例如,系统100可以分析图像数据、位置数据(例如,GPS位置信息)、地图数据、速度数据和/或来自包括在车辆200中的传感器的数据。系统100可以例如从图像获取单元120、位置传感器130和其他传感器收集用于分析的数据。另外,系统100可以分析收集的数据,以确定车辆200是否应该采取某个动作,然后自动地采取所确定的动作而无需人为干预。例如,当车辆200在没有人为干预的情况下导航时,系统100可以自动地控制车辆200的制动、加速和/或转向(例如,通过向节流系统220、制动系统230和/或转向系统240中的一个或多个发送控制信号)。另外,系统100可以分析所收集的数据,并基于对所收集的数据的分析而向车辆乘员发出警告和/或警报。下面提供关于由系统100提供的各种实施例的附加细节。
前向多成像系统
如上所讨论的,系统100可以提供使用多相机系统的驾驶辅助功能。多相机系统可以使用面向车辆的前方的一个或多个相机。在其他实施例中,多相机系统可以包括面向车辆的侧方或者车辆的后方的一个或多个相机。在一个实施例中,例如,系统100可以使用双相机成像系统,其中第一相机和第二相机(例如,图像捕获设备122和124)可以定位在车辆(例如,车辆200)的前部和/或侧部。第一相机具有的视场可以大于、小于第二相机的视场,或与其部分地重叠。此外,第一相机可以连接到第一图像处理器,以对第一相机提供的图像执行单目(monocular)图像分析,且第二相机可以连接到第二图像处理器,以对第二相机系统的图像执行单目图像分析。可以组合第一图像处理器和第二图像处理器的输出(例如,经处理的信息)。在一些实施例中,第二图像处理器可以接收来自第一相机和第二相机两者的图像以执行立体(stereo)分析。在另一实施例中,系统100可以使用三相机成像系统,其中每个相机具有不同的视场。这样的系统从而可以基于从位于车辆的前方和侧方不同距离处的对象得到的信息而做出决定。单目图像分析指的是这样的情况:基于从单个视点(例如,从单个相机)捕获的图像执行图像分析。立体图像分析指的是这样的情况:基于具有一个或多个图像捕获参数变化的的两个或更多个捕获图像来执行图像分析。例如,适于执行立体图像分析的捕获图像可以包括:从两个或更多个不同位置、从不同的视场、使用不同的焦距以及具有视差信息等的捕获图像。
例如,在一个实施例中,系统100可以使用图像捕获设备122-126实现三相机配置。在这样的配置中,图像捕获设备122可以提供窄视场(例如,34度,或选自大约25到45度的范围的其他值等),图像捕获设备124可以提供宽视场(例如,150度,或选自大约100到180度的范围的其他值),且图像捕获设备126可以提供中等视场(例如,46度,或选自大约35到大约60度的范围的其他值)。在一些实施例中,图像捕获设备126可以用作主相机或基本相机。图像捕获设备122-126可以定位在后视镜310的后面,并且基本上并排定位(例如,间隔6cm)。另外,在一些实施例中,如上面所讨论的,图像捕获设备122-126中的一个或多个可以安装在与车辆200的风挡平齐的防眩遮板380的后面。这样的遮板可以用于使来自车内的任何反射对图像捕获设备122-126的影响最小化。
在另一实施例中,如上文结合图3B和图3C所讨论的,宽视场相机(例如,上述示例中的图像捕获设备124)可以安装为低于窄视场和主视场相机(例如,上述示例中的图像设备122和126)。这种配置可以提供来自宽视场相机的自由视线。为了减少反射,相机可以安装为接近车辆200的风挡,并且可以在相机上包括偏振器以抑制反射光。
三相机系统可以提供某些性能特性。例如,一些实施例可以包括该功能:基于来自一个相机的检测结果来校验另一个相机对对象的检测。在上面所讨论的三相机配置中,处理单元110可以例如包括三个处理设备(例如,如上文所讨论的,三个EyeQ系列的处理器芯片),其中每个处理设备专用于处理由图像捕获设备122-126中的一个或多个捕获的图像。
在相机系统中,第一处理设备可以接收来自主相机和窄视场相机两者的图像,并且执行窄FOV相机的视觉处理,例如检测其他车辆、行人、车道标记、交通标志、交通灯和其他道路对象。另外,第一处理设备可以计算来自主相机和窄视场相机的图像之间的像素视差,并创建车辆200的环境的3D重建。然后,第一处理设备可以将3D重建与3D地图数据组合,或与基于来自另一相机的信息所计算的3D信息组合。
第二处理设备可以接收来自主相机的图像,并且执行视觉处理,以检测其他车辆、行人、车道标记,交通标志、交通灯和其他道路对象。此外,第二处理设备可以计算相机位移,并且基于该位移计算连续图像之间的像素视差,并创建场景的3D重建(例如运动结构)。第二处理设备可以将基于运动结构的3D重建发送到第一处理设备,以与立体3D图像组合。
第三处理设备可以接收来自宽FOV相机的图像,并且处理图像,以检测车辆、行人、车道标记,交通标志、交通灯和其他道路对象。第三处理设备可以进一步运行附加的处理指令以分析图像,从而识别在图像中运动的对象,例如正在改变车道的车辆、行人等。
在一些实施例中,独立地捕获和处理基于图像的信息流可以提供在系统中提供冗余的机会。这样的冗余可以例如包括,使用第一图像捕获设备和从该设备处理的图像校验和/或补充通过至少第二图像捕获设备捕获和处理的图像信息而获得的信息。
在一些实施例中,系统100可以使用两个图像捕获设备(例如,图像捕获设备122和124)为车辆200提供导航辅助,并使用第三图像捕获设备(例如,图像捕获设备126)提供冗余、以及校验接收自其他两个图像捕获设备的数据分析。例如,在这样的配置中,图像捕获设备122和124可以提供用于系统100的用于导航车辆200的立体分析的图像,而图像捕获设备126可以提供用于系统100的单目分析的图像,以提供冗余以及对基于从图像捕获设备122和/或图像捕获设备124捕获的图像所获得的信息进行校验。即是说,图像捕获设备126(和相对应的处理设备)可以被视为提供冗余子系统,以用于检查从图像捕获设备122和124获取的分析(例如,提供自动紧急制动(AEB)系统)。
本领域技术人员将认识到,上述相机配置、相机布置、相机数量、相机位置等仅是示例。在不脱离所公开的实施例的范围的情况下,相对于整个系统描述的这些部件和其他部件可以以各种不同的配置方式组装和使用。以下描述有关使用多相机系统以提供驾驶员辅助和/或自动驾驶车辆功能的进一步的细节。
图4是存储器140和/或150的示范性功能框图,其可以存储/编程有用于执行与所公开的实施例一致的一个或多个操作的指令。尽管以下涉及存储器140,但是本领域技术人员将认识到,指令可以存储在存储器140和/或150中。
如图4所示,存储器140可以存储单目图像分析模块402、立体图像分析模块404、速度和加速度模块406、导航响应模块408。所公开的实施例不限于存储器140的任何特定配置。另外,应用处理器180和/或图像处理器190可以运行存储在包括在存储器140中的模块402-408中的任一个中的指令。本领域技术人员将理解,在以下讨论中,对处理单元110的引用可以单独地或共同地指代应用处理器180和图像处理器190。相应地,以下任何过程的步骤可以由一个或多个处理设备执行。
在一个实施例中,单目图像分析模块402可以存储一指令(例如计算机视觉软件),当该指令由处理单元110运行时,执行由图像捕获设备122、124和126中的一个获取一图像组的单目图像分析。在一些实施例中,处理单元110可以将来自一图像组的信息与附加的传感信息(例如,来自雷达的信息)组合以执行单目图像分析。如下面结合图5A-5D所述,单目图像分析模块402可以包括用于检测该图像组的一组特征的指令,所述特征例如车道标记、车辆、行人、道路标志、高速公路出口坡道、交通灯、危险对象、以及与车辆的环境相关联的任何其他特征。基于该分析,系统100(例如,经由处理单元110)可以在车辆200中引起一个或多个导航响应,例如转向、变道、改变加速度等,如下面结合导航响应模块408所述。
在一个实施例中,立体图像分析模块404可以存储一指令(例如计算机视觉软件),当该指令由处理单元110运行时,执行由选自图像捕获设备122、124和126中的任何图像捕获设备的组合获取的第一图像组和第二图像组的立体图像分析。在一些实施例中,处理单元110可以将来自第一图像组和第二图像组的信息与附加传感信息(例如,来自雷达的信息)组合以执行立体图像分析。例如,立体图像分析模块404可以包括用于基于由图像捕获设备124获取的第一图像组和由图像捕获设备126获取的第二图像组来执行立体图像分析的指令。如下面结合图6所述,立体图像分析模块可以包括用于检测第一图像组和第二图像组内的一组特征的指令,所述特征例如车道标记、车辆、行人、道路标志、高速公路出口坡道、交通灯、危险对象、等等。基于该分析,处理单元110可以在车辆200中引起一个或多个导航响应,例如转向、变道、改变加速度等,如下面结合导航响应模块408所述。
在一个实施例中,速度和加速度模块406可以存储一软件,该软件配置为分析接收自车辆200中的一个或多个计算和机电设备的数据,所述一个或多个计算和机电设备配置为引起车辆200的速度和/或加速度的变化。例如,处理单元110可以运行与速度和加速度模块406相关联的指令,以基于从单目图像分析模块402和/或立体图像分析模块404的运行导出的数据来计算车辆200的目标速度。这样的数据可以包括例如目标位置、速度和/或加速度、车辆200相对于附近车辆、行人或道路对象的位置和/或速度、车辆200相对于道路的车道标记的位置信息,等等。此外,处理单元110可以基于传感输入(例如,来自雷达的信息)和来自车辆200的其他系统(例如车辆200的节流系统220、制动系统230、和/或转向系统240)的输入计算车辆200的目标速度。基于计算的目标速度,处理单元110可以向车辆200的节流系统220、制动系统230、和/或转向系统240发送电信号,以例如通过物理地压下制动器或放松车辆200的加速器来触发速度和/或加速度的变化。
在一个实施例中,导航响应模块408可以存储可由处理单元110运行的软件,以基于从单目图像分析模块402和/或立体图像分析模块404的运行导出的数据来确定所需的导航响应。这样的数据可以包括,与附近的车辆、行人和道路对象相关联的位置和速度信息、车辆200的目标位置信息,等等。此外,在一些实施例中,导航响应可以(部分地或完全地)基于地图数据、车辆200的预定位置、和/或车辆200与从单目图像分析模块402和/或立体图像分析模块404的运行中所检测的一个或多个对象之间的相对速度或相对加速度。导航响应模块408还可以基于传感输入(例如,来自雷达的信息)和来自车辆200的其他系统(例如车辆200的节流系统220、制动系统230和转向系统240)的输入来确定所需的导航响应200。基于所需的导航响应,处理单元110可以向车辆200的节流系统220、制动系统230和转向系统240发送电信号,以例如通过转动车辆200方向盘来实现预定角度的旋转,从而触发所期望的导航响应。在一些实施例中,处理单元110可以使用导航响应模块408的输出(例如,所期望的导航响应)作为运行速度和加速度模块406的输入,用于计算车辆200的速度的变化。
图5A是与所公开的实施例一致的示范性过程500A,用于基于单目图像分析引起一个或多个导航响应。在步骤510中,处理单元110可以经由处理单元110和图像获取单元120之间的数据接口128接收多个图像。例如,包括在图像获取单元120(例如具有视场202的图像捕获设备122)中的相机可以捕获车辆200前方区域(或者例如车辆的侧方或后方)的多个图像,并将它们通过数据连接(例如,数字、有线、USB、无线、蓝牙等等)发送到处理单元110。处理单元110可以在步骤520中运行单目图像分析模块402以分析多个图像,如下面结合图5B-5D进一步详细描述的。通过执行该分析,处理单元110可以检测该组图像内的一组特征,例如车道标记、车辆、行人、道路标志、高速公路出口坡道、交通灯等等。
处理单元110还可以运行单目图像分析模块402以在步骤520中检测各种道路危险,例如,卡车轮胎的部件、掉落的路标、散装货物、小动物,等等。道路危险可能在结构、形状、尺寸和颜色上不同,这可能使得对这种危险的检测更具挑战性。在一些实施例中,处理单元110可以运行单目图像分析模块402,以对多个图像执行多帧分析,从而检测道路危险。例如,处理单元110可估计连续图像帧之间的相机运动,并计算帧之间的像素差异以构建道路的3D地图。然后,处理单元110可以使用3D地图检测路面,以及存在于路面上的危险。
在步骤530中,处理单元110可以基于在步骤520中执行的分析以及上文结合图4所描述的技术,来运行导航响应模块408以在车辆200中引起一个或多个导航响应。导航响应可以例如包括转向、变道、改变加速度,等等。在一些实施例中,处理单元110可以使用从速度和加速度模块406的运行导出的数据,以引起一个或多个导航响应。此外,多个导航响应可以同时、按顺序或其以任意组合发生。例如,处理单元110可以使车辆200变换一个车道然后加速,例如通过顺序地向车辆200的转向系统240和节流系统220发送控制信号。替代地,处理单元110可以使得车辆200在制动的同时变换车道,例如通过同时向车辆200的制动系统230和转向系统240发送控制信号。
图5B是与所公开的实施例一致的流程图,其示出了示范性过程500B,以用于在一组图像中检测一个或多个车辆和/或行人。处理单元110可以运行单目图像分析模块402以实现过程500B。在步骤540中,处理单元110可以确定表示可能的车辆和/或行人的候选对象的组。例如,处理单元110可以扫描一个或多个图像,将图像与一个或多个预定图案进行比较,并且在每个图像内识别可能包括感兴趣对象(例如,车辆、行人、或其部分)的可能位置。预定图案可以被设计以实现高速率的“误命中”(false hit)和低速率的“未命中”(miss)。例如,处理单元110可以采用与预定图案相似的低阈值,来将候选对象识别为可能的车辆或行人。这样做可以允许处理单元110减少丢失(例如,不识别)表示车辆或行人的候选对象的概率。
在步骤542中,处理单元110可以基于分类标准来过滤候选对象组,以排除某些候选对象(例如,不相关或较不相关的对象)。这样的标准可以从存储在数据库(例如,存储在存储器140中的数据库)中的与对象类型相关联的各种属性获得。所述属性可以包括对象的形状、尺寸、纹理、位置(例如,相对于车辆200),等等。因此,处理单元110可以使用一组或多组标准,以从该组候选对象中排出错误的候选对象。
在步骤544中,处理单元110可以分析多个图像帧,以确定该组候选对象中的对象是否表示车辆和/或行人。例如,处理单元110可以跨越连续帧跟踪所检测的候选对象,并且逐帧地累积与所检测的对象相关联的数据(例如,尺寸、相对于车辆200的位置,等等)。此外,处理单元110可以估计所检测的对象的参数,并将对象的逐帧位置数据与预测位置进行比较。
在步骤546中,处理单元110可以构建用于所检测的对象的一组测量值。这样的测量值可以例如包括与所检测的对象相关联的(相对于车辆200)位置、速度和加速度值。在一些实施例中,处理单元110可以基于使用一系列基于时间观测(例如卡尔曼(Kalman)过滤器或线性二次估计(liner quadratic estimation,LQE))的估计技术,和/或基于用于不同对象的类型(例如,汽车、卡车、行人、自行车,等等)的可用建模数据来构建测量。卡尔曼过滤器可以基于对象尺度的测量值,其中尺度测量值与到碰撞的时间(例如,车辆200到达对象的时间量)成比例。因此,通过执行步骤540-546,处理单元110可以识别出现在捕获的图像的组内的车辆和行人,并且导出与车辆和行人相关联的信息(例如,位置、速度、尺寸)。基于所识别和导出的信息,处理单元110可以在车辆200中引起一个或多个导航响应,如上面结合图5A所描述的。
在步骤548中,处理单元110可以执行一个或多个图像的光流分析,以降低检测到“误命中”以及丢失表示车辆或行人的候选对象的概率。光流分析可以指,例如,分析与其他车辆和行人相关联的一个或多个图像中的相对于车辆200的运动模式,并且其与路面的运动不同。处理单元110可以通过观察在跨越不同时间捕获的多个图像帧中的对象的不同位置,来计算候选对象的运动。处理单元110可以使用位置和时间值作为用于计算候选对象的运动的数学模型的输入。因此,光流分析可以提供检测车辆200附近的车辆和行人的另一种方法。处理单元110可以结合步骤540-546来执行光流分析,以提供用于检测车辆和行人的冗余,并且增加系统100的可靠性。
图5C是与所公开的实施例一致的流程图,其示出了示范性过程500C,以用于检测一组图像中的道路标记和/或车道几何信息。处理单元110可以运行单目图像分析模块402以实现过程500C。在步骤550中,处理单元110可以通过扫描一个或多个图像来检测一组对象。为了检测车道标记、车道几何信息和其他有关道路标记的区段,处理单元110可以过滤该组对象,以排除那些被确定为不相关的对象(例如小坑洞、小石块,等等)。在步骤552中,处理单元110可以将在步骤550中所检测的属于相同道路标记或车道标记的区段组合在一起。基于该组合,处理单元110可以开发表示所检测的区段的模型,例如数学模型。
在步骤554中,处理单元110可以构建与所检测的区段相关联的一组测量值。在一些实施例中,处理单元110可以创建所检测的区段从图像平面到现实世界平面上的投影(projection)。可以使用具有对应于物理性质(例如所检测的道路的位置、坡度、曲率和曲率导数)的系数的三次多项式来表征该投影。在生产投影时,处理单元110可以考虑路面中的变化,以及与车辆200相关联的俯仰和滚转速率。此外,处理单元110可通过分析路面上存在的位置和运动线索来建模道路高度。另外,处理单元110可以通过跟踪一个或多个图像中的一组特征点来估计与车辆200相关联的俯仰和滚转速率。
在步骤556中,处理单元110可以执行多帧分析,例如通过在连续的图像帧上跟踪所检测的区段,并累积与所检测的区段相关联的逐帧数据。当处理单元110执行多帧分析时,在步骤554处构建的该组测量可以变得更加可靠,并且与越来越高的置信度水平相关联。因此,通过执行步骤550-556,处理单元110可以识别出现在所捕获的该组图像内的道路标记,并导出车道几何信息。基于所识别和导出的信息,处理单元110可以在车辆200中引起一个或多个导航响应,如上面结合图5A所描述的。
在步骤558中,处理单元110可以考虑附加的信息源,以进一步开发车辆200的在其环境情景中的安全模型。处理单元110可以使用安全模型来定义一情景,在该情景中,系统100可以以安全方式运行对车辆200的自主控制。为了开发安全模型,在一些实施例中,处理单元110可以考虑其他车辆的位置和运动、所检测的道路边缘和障碍物、和/或从地图数据(例如,来自地图数据库160的数据)提取的一般道路形状描述。通过考虑附加的信息源,处理单元110可以提供用于检测道路标记和车道几何形状的冗余,并且增加系统100的可靠性。
图5D是与所公开的实施例一致的流程图,其示出了示范性过程500D,用于检测一组图像中的交通灯。处理单元110可以运行单目图像分析模块402以实现方法500D。在步骤560中,处理单元110可以扫描该组图像,并在图像中识别出现在可能包括交通灯的位置处的对象。例如,处理单元110可以过滤所识别的对象以构建一组候选对象,排除那些不太可能对应于交通灯的对象。可以基于与交通灯相关联的各种属性来进行过滤,例如形状、尺寸、纹理、位置(例如,相对于车辆200),等等。这样的属性可以基于交通灯和交通控制信号的多个示例,并且存储在数据库中。在一些实施例中,处理单元110可以对反映可能的交通灯的候选对象的组执行多帧分析。例如,处理单元110可以跨越连续的图像帧跟踪候选对象,估计候选对象的真实世界位置,并且过滤掉正在移动的那些对象(其不太可能是交通灯)。在一些实施例中,处理单元110可以对候选对象执行颜色分析,并识别出现在可能的交通灯内的所检测的颜色的相对位置。
在步骤562中,处理单元110可以分析交叉口(junction)的几何形状。分析可以基于以下的任意组合:(i)在车辆200的任一侧所检测到的车道数量,(ii)所检测到的在道路上的标记(例如箭头标记),以及(iii)从地图数据(例如,来自地图数据库160的数据)提取的对于交叉口的描述。处理单元110可以使用从单目分析模块402的运行导出的信息来进行分析。此外,处理单元110可以确定在步骤560中所检测的交通灯和出现在车辆200附近的车道之间的对应关系。
当车辆200接近交叉口时,在步骤564中,处理单元110可以更新与所分析的交叉口的几何形状和所检测的交通灯相关联的置信水平。例如,与交叉口实际出现的交通灯的数量相比,估计出现在交叉口的交通灯的数量可能影响置信水平。因此,基于该置信水平,处理单元110可以将控制委托给车辆200的驾驶员,以便改善安全状况。通过执行步骤560-564,处理单元110可以识别出现在所捕获的图像的组内的交通灯,并且分析交叉口的几何信息。基于识别和分析,处理单元110可以在车辆200中引起一个或多个导航响应,如上面结合图5A所描述的。
图5E是与所公开的实施例一致的流程图,其示出了示范性过程500E,用于基于车辆路径在车辆200中引起一个或多个导航响应。在步骤570中,处理单元110可以构建与车辆200相关联的初始车辆路径。车辆路径可以使用以坐标(x,z)表示的点的集合来表示,并且该点的集合中的两个点之间的距离di可以落在1至5米的范围内。在一个实施例中,处理单元110可以使用两个多项式(例如左和右道路多项式)来构建初始车辆路径。处理单元110可以计算两个多项式之间的几何中点,并且使包括在合成的车辆路径中的每个点偏移预定的偏移量(例如,智能车道偏移量,如果有的话,零偏移量可以对应于在车道中间行驶)。偏移可以在垂直于车辆路径中的任意两点之间的线段的方向上。在另一实施例中,处理单元110可以使用一个多项式和估计的车道宽度,以使得车辆路径的每个点偏移估计的车道宽度的一半加上预定的偏移量(例如,智能车道偏移量)。
在步骤572中,处理单元110可以更新在步骤570中构建的车辆路径。处理单元110可以使用较高分辨率重建在步骤570中构建的车辆路径,使得表示车辆路径的点的集合中的两点之间的距离dk小于上述距离di。例如,距离dk可以落入0.1到0.3米的范围中。处理单元110可以使用抛物线样条算法(parabolic spline algorithm)来重建车辆路径,其可以产生对应于车辆路径的总长度的累积距离矢量S(即,基于表示车辆路径的点的集合)。
在574中,处理单元110可以基于在步骤572中构建的更新的车辆路径来确定预测点(以坐标表示为(xl,zl))。处理单元110可以从累积距离矢量S提取预测点,并且该预测点可以与预测距离和预测时间相关联。预测距离(其可以具有范围从10到20米的下限)可以被计算为车辆200的速度和预测时间的乘积。例如,当车辆200的速度降低时,预测距离也可以降低(例如,直到其达到下限)。预测时间(其可以在从0.5到1.5秒的范围)可以与在车辆200中引起导航响应相关联的一个或多个控制回路的增益成反比,例如航向误差跟踪控制回路。例如,航向误差跟踪控制回路的增益可以取决于偏航速率回路、转向致动器回路、汽车侧向动力学等的带宽。因此,航向误差跟踪控制回路的增益越高,预测时间越低。
在步骤576中,处理单元110可以基于在步骤574中确定的预测点来确定航向误差(heading error)和偏航率(yaw rate)命令。处理单元110可以通过计算预测点的反正切来确定航向误差,例如arctan(xl/zl)。处理单元110可以将偏航率命令确定为航向误差和高水平控制增益的乘积。高水平控制增益可以等于:(2/预测时间),如果预测距离不在下限。否则,高水平控制增益可以等于:(2*车辆200的速度/预测距离)。
图5F是与所公开的实施例一致的流程图,其示出了示范性过程500F,以用于确定领先的车辆是否正在改变车道。在步骤580中,处理单元110可以确定与领先的车辆(例如,在车辆200的前方行驶的车辆)相关联的导航信息。例如,处理单元110可以使用上面结合图5A和图5B所述的技术来确定领先的车辆的位置、速度(例如,方向和速度)、和/或加速度。处理单元110还可以使用上面结合图5E所述的技术来确定一个或多个道路多项式、预测点(与车辆200相关联)、和/或蜗形轨迹(snail trail)(例如,描述领先的车辆所采用的路径的点的集合)。
在步骤582中,处理单元110可以分析在步骤580中确定的导航信息。在一个实施例中,处理单元110可以计算蜗形轨迹和道路多项式(例如,沿着轨迹)之间的距离。如果沿着轨迹的该距离的变化超过预定阈值(例如,在直路上为0.1至0.2米、在中度弯曲的道路上为0.3至0.4米、并且在具有尖锐曲线的道路上为0.5至0.6米),处理单元110可以确定领先的车辆可能正在改变车道。在检测到多个车辆在车辆200的前方行驶的情况下,处理单元110可以比较与每个车辆相关联的蜗形轨迹。基于该比较,处理单元110可以确定,其蜗形轨迹与其他车辆的蜗形轨迹不匹配的车辆可能正在改变车道。处理单元110可以附加地将蜗形轨迹(与领先的车辆相关的)的曲率与领先的车辆正在其中行驶的路段的预期曲率相比较。预期的曲率可以从以下提取:地图数据(例如,来自地图数据库160的数据)、道路多项式、其他车辆的蜗形轨迹、有关道路现有知识、等等。如果蜗形路径的曲率和路段的预期曲率的差超过预定阈值,则处理单元110可以确定领先的车辆很可能正在改变车道。
在另一实施例中,处理单元110可以在特定的时间段(例如,0.5至1.5秒)比较领先的车辆的瞬时位置与预测点(与车辆200相关联)。如果领先的车辆的瞬时位置与预测点之间的距离在特定的时间段期间变化,且变化的累积总和超过预定阈值(例如,在直路上为0.3至0.4米、在中度弯曲的道路上为0.7至0.8米、并且在具有尖锐曲线的道路上为1.3至1.7米),则处理单元110可以确定领先的车辆可能正在改变车道。在另一实施例中,处理单元110可以通过将沿着轨迹行驶的横向距离与蜗形轨迹的预期曲率进行比较,来分析蜗形轨迹的几何形状。预期曲率半径可以根据以下计算来确定:(δz2+δx2)/2/(δx),其中δx表示行驶的横向距离,δz表示行驶的纵向距离。如果行驶的横向距离与预期曲率之间的差异超过预定阈值(例如,500至700米),则处理单元110可以确定领先的车辆可能正在改变车道。在另一实施例中,处理单元110可以分析领先的车辆的位置。如果领先的车辆的位置干扰道路多项式(例如,领先的车辆覆加在道路多项式的上方),则处理单元110可以确定领先的车辆可能正在改变车道。在这一情况下,其中领先的车辆的位置使得在领先的车辆之前检测到另一车辆,并且两个车辆的蜗形轨迹不平行,则处理单元110可以确定(更接近的)领先的车辆可能正在改变车道。
在步骤584中,处理单元110可以基于在步骤582所执行的分析来确定领先的车辆200是否正在改变车道。例如,处理单元110可以基于在步骤582中所执行的各个分析的加权平均来进行确定。在这样的方案下,例如,基于特定类型的分析,处理单元110的领先的车辆很可能正在改变车道的确定可以被分配以数值“1”(并且被分配以数值“0”,以表示领先的车辆不太可能正在改变车道)。在步骤582中所执行的不同分析可以被分配不同的权重,并且所公开的实施例不限于分析和权重的任何特定组合。
图6是与所公开的实施例一致的流程图,其示出了示范性过程600,以用于基于立体图像分析引起一个或多个导航响应。在步骤610中,处理单元110可以经由数据接口128接收第一多个图像和第二多个图像。例如,包括在图像获取单元120(例如,具有视场202和204的图像捕获设备122和124)中的相机可以捕获车辆200的前方区域的第一多个图像和第二多个图像,并将它们通过数字连接(例如,USB、无线、蓝牙,等等)发送到处理单元110。在一些实施例中,处理单元110可以经由两个或更多个数据接口接收第一多个图像和第二多个图像。所公开的实施例不限于任何特定的数据接口配置或协议。
在步骤620中,处理单元110可以运行立体图像分析模块404,以执行对第一多个图像和第二多个图像的立体图像分析,从而创建车辆前方道路的3D地图,并检测图像内的特征,例如车道标记、车辆、行人、路标、高速公路出口坡道、交通灯、道路危险等等。立体图像分析可以以类似于上面结合图5A-5D所述的步骤的方式来执行。例如,处理单元110可以运行立体图像分析模块404,以在第一多个图像和第二多个图像内检测候选对象(例如,车辆、行人、道路标记、交通灯、道路危险,等等),基于各种标准过滤出候选对象的子集,并且执行多帧分析,构建测量,以及确定剩余的候选对象的置信水平。在执行上述步骤时,处理单元110可以考虑来自第一多个图像和第二多个图像二者的信息,而不是仅考虑来自一组图像的信息。例如,处理单元110可以分析出现在第一多个图像和第二多个图像二者中的候选对象的像素级数据(或者所捕获的两个图像流之中的其他数据子集)的差异。作为另一示例,处理单元110可以通过观察对象出现在多个图像中的一个中而不在另一个中,或相对于其他差异(该差异在两个图像流存在时相对于对象存在)来估计候选对象(例如,相对于车辆200)的位置和/或速度。例如,可以基于与出现在一个或两个图像流中的对象相关联的特征的轨迹、位置、运动特性等来确定相对于车辆200的位置、速度和/或加速度。
在步骤630中,处理单元110可以基于在步骤620中所执行的分析以及上面结合图4描述的技术来运行导航响应模块408,以在车辆200中引起一个或多个导航响应。导航响应可以例如包括转弯、变道、改变加速度、改变速度、制动、等等。在一些实施例中,处理单元110可以使用运行速度和加速度模块406的所导出的数据来引起一个或多个导航响应。此外,多个导航响应可以同时、按顺序或其任何组合发生。
图7是与所公开的实施例一致的流程图,其示出了示范性过程700,以用于基于对三组图像的分析来引起一个或多个导航响应。在步骤710中,处理单元110可以经由数据接口128接收第一多个图像、第二多个图像和第三多个图像。例如,包括在图像获取单元120中的相机(例如,具有视场202、204和206的图像捕获设备122、124和126)可以捕获车辆200的前方和/或侧方区域的第一多个图像、第二多个图像和第三多个图像,并将它们通过数字连接(例如,USB、无线、蓝牙,等等)发送到处理单元110。在一些实施例中,处理单元110可以经由三个或更多个数据接口接收第一多个图像、第二多个图像和第三多个图像。例如,图像捕获设备122、124、126中的每一个可以具有相关联的数据接口,以用于将数据通信到处理单元110。所公开的实施例不限于任何特定的数据接口配置或协议。
在步骤720中,处理单元110可以分析第一多个图像、第二多个图像和第三多个图像,以检测图像内的特征,例如车道标记、车辆、行人、道路标志、高速公路出口坡道、交通灯,等等。该分析可以以与上面结合图5A-5D和图6所述的步骤相类似的方式来执行。例如,处理单元110可以对第一多个图像、第二多个图像和第三多个图像中的每一个执行单目图像分析(例如,经由单目图像分析模块402的运行,并基于上文结合图5A-5D所述的步骤)。替代地,处理单元110可以对第一多个图像和第二多个图像、第二多个图像和第三多个图像、和/或第一多个图像和第三多个图像执行立体图像分析(例如,经由立体图像分析模块404的运行,并基于上文结合图6所述的步骤)。对应于对第一多个图像、第二多个图像和/或第三多个图像的分析的经处理的信息可以被组合。在一些实施例中,处理单元110可以执行单目图像分析和立体图像分析的组合。例如,处理单元110可以对第一多个图像执行单目图像分析(例如,经由单目图像分析模块402的运行),并对第二多个图像和第三多个图像执行立体图像分析(例如,经由立体图像分析模块404的运行)。图像捕获设备122、124和126的配置(包括它们相应的位置以及视场202、204和206)可以影响对第一多个图像、第二多个图像和第三多个图像所进行的分析的类型。所公开的实施例不限制图像捕获设备122、124和126的具体配置,也不限制对第一多个图像、第二多个图像和第三多个图像进行的分析的类型。
在一些实施例中,处理单元110可以基于在步骤710和720中获取和分析的图像对系统100执行测试。这样的测试可以为图像捕获设备122、124和126的某些配置提供系统100的整体性能的指示符。例如,处理单元110可以确定“误命中”(例如,系统100不正确地确定车辆或行人的存在的情况)和“未命中”的比例。
在步骤730中,处理单元110可以基于从第一多个图像、第二多个图像和第三多个图像中的两个所导出的信息来在车辆200中引起一个或多个导航响应。对第一多个图像、第二多个图像和第三多个图像中的两个的选择可以取决于各种因素,例如,在所述多个图像的每一个中所检测的对象的数量、类型和尺寸。处理单元110还可以基于以下做出选择:图像质量和分辨率、图像中反映的有效视场、捕获的帧的数量、一个或多个感兴趣的对象实际出现在帧中的程度(例如,对象出现的帧的百分比、在每个这样的帧中出现的对象的比例,等等),等等。
在一些实施例中,处理单元110可以通过确定从一个图像源导出的信息与从另一图像源导出的信息一致的程度来选择从第一多个图像、第二多个图像和第三多个图像中的两个导出的信息。例如,处理单元110可以组合从图像捕获设备122、124和126中的每一个导出的处理信息(无论是通过单目分析、立体分析、或是二者的任意组合),并确定在跨越从图像捕获设备122、124和126中的每一个所捕获的图像中一致的视觉指示符(例如,车道标记、所检测的车辆及其位置和/路径、所检测的交通灯等等)。处理单元110还可以排除在跨越所捕获的图像中不一致的信息(例如,改变车道的车辆、指示一车辆过于接近车辆200的车道模型,等等)。因此,处理单元110可以基于对于一致和不一致的信息的确定,来选择从第一多个图像、第二多个图像和第三多个图像中的两个导出的信息。
导航响应可以例如包括转弯、变道、改变加速度,等等。处理单元110可以基于在步骤720中所执行的分析以及上文结合图4所述的技术来引起一个或多个导航响应。处理单元110还可以使用运行速度和加速度模块406所导出的数据,以引起一个或多个导航响应。在一些实施例中,处理单元110可以基于车辆200与在第一多个图像、第二多个图像和第三多个图像中的任一个内所检测的对象之间的相对位置、相对速度、和/或相对加速度来引起一个或多个导航响应。多个导航响应可以同时、按顺序或其任何组合发生。
对象检测和制动系统
在一些实施例中,车辆200可以包括对象检测和制动系统,其配置为检测车辆200前方的对象,并基于检测到对象而利用例如制动系统230使得车辆200制动。例如,对象检测和制动系统可以使车辆200在没有或具有有限的驾驶员干预的情况下自动或自主地制动。自动或自主的对象检测和制动系统可以允许或不允许驾驶员干预而接管对制动系统230的控制。
对象检测和制动系统可以包括上文讨论的多个其他系统。例如,对象检测和制动系统可以包括系统100、制动系统230、以及图像捕获设备122、124和126中的一个或多个。图像捕获设备122、124和126中的一个或多个可以获取车辆200前方的环境或区域的一个或多个图像,其可以包括对象,例如另一车辆、行人、路面,等等。处理单元110可以基于至少两个独立的分析来处理图像,以确定车辆200与对象碰撞的至少两个碰撞时间(time-to-collision,TTC)。在一些实施例中,车辆200与对象的两个TTC可以分别被确定,且彼此独立。“碰撞时间”(TTC)也可以被称为“接触时间”。碰撞时间是在车辆200与另一对象碰撞之前将经过的估计时间。处理单元110可以确定两个碰撞时间之间的差异不超过预定阈值。基于该确定,处理单元110可以致使车辆200使用例如制动系统230来制动。自动或自主制动可以辅助驾驶员避免与车辆200前方的物体碰撞,从而提高驾驶的安全性。通过使车辆200在两个TTC之间的差异不超过预定阈值的情况下制动,可以防止或减少误制动(false braking)。
在一些实施例中,对象检测和制动系统可以使用单目视频感测固有的两个独立的信道(channel of information)。第一信道可以被称为“纹理(texture)”或“外观信息”信道。系统100可以基于纹理或外观信息执行分析。在该信道中,系统100可以在不同图像(例如,两个连续的图像或帧)之间分别对每个图像中的像素强度执行图案识别。系统100可以通过比较两个相继的图像的图像数据,来估计占用尺寸(footprint size)(例如,图像中的对象的特征的尺寸长度)的变化。第二信道可以被称为“结构”或“光流信息”信道。系统100可以基于结构或光流信息执行分析。例如,系统100可以处理两个或多个图像(例如顺序地获取的图像或帧)以获得光流场。光流场可以提供关于可跟踪纹理在两个或更多个图像或帧之间的运动的信息。光流场分析可以指示图像中的小碰撞时间的正直(upright)对象。这两种分析也可以被称为两种模态、方法或模型。
在一些实施例中,基于结构(或光流)的分析可以用于验证基于纹理的分析的结果。例如,基于纹理的分析可以针对多个图像(例如,至少两个图像)执行,基于结构的分析可以在执行了基于纹理的分析之后,基于在基于纹理的分析中使用的两个或更多个相同的图像来执行。在这样的实施例中,基于结构的分析可以验证基于纹理的分析的结果。在一些实施例中,基于纹理的分析可以在执行基于结构的分析之后执行,并且可以验证基于结构的分析的结果。
在一些实施例中,基于纹理的分析可以使用具有至少两个图像的第一组,基于结构的分析可以使用具有至少两个图像的第二组。第一组和第二组可以相同或不同。在一些实施例中,具有至少两个图像的第一组可以从由图像捕获设备122-126中的至少一个获取的多个图像中的奇数图像中选择,具有至少两个图像的第二组可以从由图像捕获设备122-126中的至少一个获取的多个图像中的偶数图像中选择。
在一些实施例中,具有至少两个图像的第一组可以从以第一时间间隔获取的多个图像中选择,具有至少两个图像的第二组可以从以第二时间间隔获取的相同的多个图像中选择,第二时间间隔可以与第一时间间隔不同。在一些实施例中,可以指定第一图像捕获设备(或第一图像传感器)捕获用于基于纹理的分析的图像,并且可以指定第二图像捕获设备(或第二图像传感器)来捕获用于基于结构的分析的图像。
基于纹理的分析和基于结构的分析可以彼此互补,并且它们的结果的组合可以由处理单元110使用以做出制动决定。例如,基于纹理的分析可以产生碰撞时间的第一估计,基于结构的分析还可以产生碰撞时间的第二估计。当第一估计和第二估计之间的差异小于阈值时,处理单元110可以致使制动系统230制动车辆200。基于纹理的分析和基于结构的分析中的一个可以为另一个提供冗余,从而通过防止或减少误制动的发生来改善制动(例如在紧急驾驶情况下的自主制动)的准确性。
在一些实施例中,当基于结构的分析作为基于纹理的分析的验证者时,基于纹理的分析可以检测车辆200前方的对象(例如,汽车或行人),且可以确定碰撞时间较低(例如,低于预定阈值)。基于纹理的分析可以通过基于在至少两个顺序地获取的图像中的占用尺寸随时间的变化来计算碰撞时间,从而实现决定。然后,来自基于纹理的分析的这种确定可以触发基于结构的分析。在一些实施例中,从基于纹理的分析确定碰撞时间低可以作为向车辆系统释放制动决定(例如,自主紧急制动决定)的前提条件。在一些实施例中,直到基于结构的分析确认了经由基于纹理的分析做出的确定之前,可以不执行制动(例如,自主紧急制动)。
在一些实施例中,系统100可以要求,由基于结构的分析所确定的估计碰撞时间(TTC)与由基于纹理的分析所确定的估计碰撞时间(TTC)相同或基本上相同(达到误差容限)。例如,如下所述,处理单元10可以确定由基于纹理的分析和基于结构的分析确定的两个TTC之间的差异不超过预定阈值(其可以是误差容限)。在一些实施例中,系统100可以考虑对象的扩展焦点自静态环境的扩展焦点的发散。如果对象的扩展焦点发散(例如移动)远离静态环境的扩展焦点,则这可以是对象是低TTC正直对象的强烈指示。参考图15A和图15B更详细地讨论一示例。该要求是可选的,这是因为它可以仅适用于目标对象具有垂直于车辆200的驾驶方向的速度分量的情况(例如,在与车辆200的驾驶方向不平行的方向上行驶的目标对象)。
在一些实施例中,处理单元110可以在做出制动(例如,自主紧急制动)决定时,使用某些标准来判定基于结构的分析是否支持基于纹理的分析。例如,这样的标准可以包括以下要求:光流符合低碰撞时间的正直对象(LTU对象)的模型,而不是开放道路(或开放路面)的模型。
图8是包括对象检测和制动系统(或称为紧急制动决定系统)的示范性车辆200的示意图。对象检测和制动系统可以包括系统100和制动系统230。对象检测和制动系统还可以包括图像捕获设备122和124(以及126,其未在图8中示出)中的至少一个。对象检测和制动系统可以包括处理单元110,其可以是系统100的一部分。图像捕获设备122和124中的至少一个可以获取包括车辆200前方的对象的区域的一个或多个图像。该对象可以是另一车辆,例如可以是在车辆200前方行驶的车辆800。如图8所示,在一些实施例中,车辆800可以在平行于车辆200的行驶方向的方向上行驶。平行方向可以包括以下情况,车辆800在与车辆200相同的方向上行驶,并与其对齐或基本上对齐(例如,车辆800在车辆200的前方行驶),如图8所示。平行方向还包括以下情况,车辆800在相对于车辆200的相反方向上行驶,并且与车辆200对齐(例如,车辆800在与车辆200的行驶方向相反的180度、或大致180度的方向上朝向车辆200移动)。平行方向还包括以下情况,车辆800不与车辆200对齐行驶,而是在与车辆200的行驶方向平行的方向上行驶(例如,车辆800偏移一距离在车辆200的前侧行驶)。
在一些实施例中,对象可以是站在道路上的行人,或者走过或跑过道路的行人。包括在图像中的区域可以包括其他对象,例如路面、房屋、墙壁、标志、等等,其可以形成静态环境。当对象不在与200的行驶方向平行的方向上行驶时,对象的行驶方向可以以既不为零(或基本上为零)也不为180度(或基本上为180度)的角度横向于车辆200的行驶方向。图像可以包括移动对象和/或静态对象两者。
处理单元110可以与制动系统230以及图像捕获设备122和124中的至少一个通信。例如,处理单元110可以从图像捕获设备122和124中的至少一个接收图像,并且可以使用各种方法或模态来处理图像,以检测车辆200与对象800的一个或多个碰撞时间。尽管在图8中示出了两个图像捕获设备122和124,但是使用附加的图像捕获设备(例如3个、4个、5个、等等图像捕获设备)与所公开的实施例是一致的。
图9是示范性车辆200的示意图,其包括对象检测和制动系统,对象检测和制动系统可以配置为检测在不平行于车辆200的行驶方向的方向上行驶的对象。对象可以是车辆900或行人(未示出)。对象检测和制动系统可以基于由图像捕获设备122和124中的至少一个获取的一个或多个图像,来检测朝向车辆200行驶的车辆900。此外,对象检测和制动系统可以基于至少一个或多个图像,来确定车辆200与车辆900的至少两个碰撞时间。当至少两个碰撞时间之间的差异不超过预定阈值时,处理单元110可以致使车辆200制动,以防止与车辆900碰撞。
图10是存储器140或150的示范性框图,其可以存储用于执行一个或多个操作的指令,以检测车辆200前方的对象,并基于该检测使车辆200制动。如图10所示,存储器140或150可以存储一个或多个模块以执行本文所述的操作。例如,存储器140或150可以存储第一图像分析模块1002、第二图像分析模块1003、和制动模块1004。应用处理器180和/或图像处理器190可以运行存储在包括在存储器140或150中的模块1002-1004中的任一个中的指令。本领域技术人员将理解,在以下讨论中,对处理单元110的引用可单独地或共同地指代应用处理器180和图像处理器190。相应地,以下任何过程步骤可以由一个或多个处理设备执行。
第一图像分析单元1002可以存储一指令,该指令在由处理单元110运行时,可以执行第一图像分析,以计算或生成车辆200与对象(例如,车辆800或900)的第一估计碰撞时间(TTC1)。第一图像分析单元1002可以例如使用基于外观检测方法来处理由图像捕获设备122和124中的至少一个获取的至少两个图像,这可以基于至少两个图像中的对象的外观(例如,尺寸)的变化来计算TTC1。下面参考图12更详细地讨论示范性第一图像分析。
第二图像分析单元1002可以存储一指令,该指令在由处理单元110运行时,可以执行第二图像分析,以计算或生成车辆200与对象(例如,车辆800或900)第二估计碰撞时间(TTC2)。第二图像分析单元1003以例如使用基于光流的方法来处理由图像捕获设备122和124中的至少一个获取的至少两个图像,这可以基于从该至少两个图像导出的光流信息来计算TTC2。下面参考图13更详细地讨论示范性第二图像分析。
制动模块1004可以存储一指令,该指令在由处理单元110运行时,可以使用制动系统230使得车辆200制动。例如,当处理单元110确定TTC1和TTC2之间的差异不超过预定阈值时,制动模块1004可以使得制动系统230应用制动,以降低车辆200的速度或使车辆200停止,从而防止与对象碰撞。
图11是示出了示范性过程或方法1100的流程图,其用于检测车辆200前方的对象,并基于该检测使车辆200制动。方法1100可以包括获取车辆200前方的区域的多个图像(步骤1110)。例如,图像捕获设备122和124中的至少一个可以获取车辆200前方的区域的一个或多个图像。该区域可以包括对象,例如另一车辆或行人。该区域可以包括其他静态对象,例如标志、房屋、山、路面,等等,其可以形成静态环境。
方法1100可以包括基于至少第一图像和第二图像执行第一图像分析以生成第一碰撞时间(TTC1)(步骤1120)。例如,处理单元110基于至少第一图像和第二图像来执行第一图像分析。在第一图像分析中可以使用两个以上的图像来生成TTC1。在一些实施例中,第一图像分析可以包括基于外观的检测方法。基于外观的检测可以基于第一图像和第二图像中的对象的外观的变化(例如,尺寸的变化)来检测TTC1。下面结合图12进一步讨论基于外观的检测技术。
图12是示出了用于确定第一估计碰撞时间(TTC1)的示范性第一图像分析1200的流程图。第一图像分析1200可以包括基于外观或基于纹理的检测方法(因此,第一图像分析可以被称为基于纹理的分析或纹理分析)。基于外观的检测方法可以包括确定至少两个图像(例如第一图像和第二图像)中的对象的外观或对象的特征的变化,并且可以基于外观的变化来计算TTC1。在一些实施例中,外观的变化可以是对象(或对象的特征)的尺寸的变化。
在图12所示的示范性第一图像分析1200中,处理单元110可以确定出现在第一图像中的对象(或对象的特征)的第一尺寸(步骤1210)。处理单元110可以确定出现在第二图像中的对象(或对象的特征)的第二尺寸(步骤1220)。当车辆200接近对象时,第二尺寸可以大于第一尺寸。处理单元110可以基于出现在第一图像和第二图像中的对象的尺寸(例如,像素尺寸)来确定第一尺寸和第二尺寸。处理单元110可以确定对象(或对象的特征)的尺寸(或相对比例)的变化(步骤1230)。例如,处理单元110可以从第二尺寸中减去第一尺寸以确定尺寸差异。在一些实施例中,处理单元110可以将尺寸差异除以第一尺寸以确定尺寸的相对差异。尺寸(或相对比例)的变化可以指尺寸的相对差异,其可以是百分比。处理单元110可以基于尺寸的变化以及获取第一图像和第二图像的时间之间的第一预定时间间隔来确定TTC1(步骤1240)。第一预定的时间间隔可以取决于获取第一图像和第二图像的相机(例如,包括在第一图像捕获设备122中的相机)的设定,且一旦相机设置被固定就可以已知。第一预定时间间隔可以是任何合适的间隔,例如0.05秒、0.1秒、0.2秒,等等。例如,第一预定的时间间隔可以由dt1表示,尺寸的相对变化可以由S0表示,且处理单元110可以由下式计算TTC1:TTC1=dt1/S0。
返回参考图11,方法1100可以包括基于至少第三图像和第四图像执行第二图像分析,以生成第二估计碰撞时间(TTC2)(步骤1130)。例如,处理单元110可以从第三图像和第四图像导出光流信息,并且可以基于光流信息来计算TTC2。第二图像分析可以被称为基于结构的分析或结构分析。在一些实施例中,在第二图像分析中可以使用两个以上的图像来导出光流信息。
图13是示出了示范性第二图像分析1300的流程图,其用于确定第二估计碰撞时间(TTC2)。第二图像分析1300可以包括从至少第三图像和第四图像获得或导出光流场(步骤1310)。在一些实施例中,处理单元110可以从第三图像和第四图像、和/或由图像捕获设备122和124中的至少一个获取的附加图像导出光流场。光流场可以是矢量场,其中每个点可以由示出从例如第三图像中的第一点到例如第四图像中的相对应的第二点的移动幅度和方向的矢量表示。
如图13所示,第二图像分析1300可以包括基于光流场确定扩展焦点(步骤1320)。扩展焦点可以是光流场中的矢量的收敛点,将在下文参考图16对其进行更详细地讨论。第二图像分析1300还可以包括确定光流场中的每个点的相对于扩展焦点的扩展速率(步骤1330)。例如,对于光流场中的每个点,处理单元110可以基于点的移动幅度、以及从点到扩展焦点的距离来计算扩展速率。例如,任何点的移动幅度可以由d表示,从点到扩展焦点的距离可以由r表示,且处理单元110可以由下式计算扩展速率:Rexp=d/r。对于光流场中的每个点,可以由与该点相关联的矢量的幅度来计算移动幅度r。移动幅度r可以指示例如第三图像中的第一点已经移动了多少,以到达例如第四图像中的第二点。
如图13所示,第二图像分析1300可以包括基于扩展速率和第二预定时间间隔来确定第二估计碰撞时间(TTC2)。第二预定时间间隔可以是获取第三图像和第四图像之间的时间的差异。第二预定的时间间隔dt2可以取决于相机的设定(例如,帧速率),且可以与在第一图像分析中的使用的第一预定时间间隔相同或不同。第二预定时间间隔可以是任何合适的间隔,例如0.05秒、0.1秒、0.2秒,等等。在一些实施例中,TTC2可以与扩展速率d/r成反比,且可以与第二预定时间间隔dt2成正比。例如,处理单元110可以由下式计算TTC2:TTC2=dt2/(d/r)。
图12和图13所示的第一图像分析1200和第二图像分析1300可以独立且分开地执行。在第一图像分析1200中使用的第一图像和第二图像可以与在第二图像分析1300中使用的第三图像和第四图像相同或不同。在一些实施例中,第一图像可以与第三图像相同,且第二图像可以与第四图像相同。在一些实施例中,第一图像可以与第三图像不同,且第二图像可以与第四图像不同。在一些实施例中,图像的交替序列可以用于第一分析和第二分析。力如,同一组图像中的奇数图像可以用于第一图像分析,而偶数图像可以用于第二图像分析。在一些实施例中,至少一个图像捕获设备(例如,图像捕获设备122)可以配置为捕获在第一图像分析中使用的图像(例如,第一图像和第二图像),以生成第一估计碰撞时间。至少一个其他图像捕获设备(例如,图像捕获设备124)可以配置为捕获在第二图像分析中使用的图像(例如,第三图像和第四图像),以生成第二估计碰撞时间。在一些实施例中,当使用至少一个图像捕获设备来捕获用于第一图像分析和第二图像分析的多个图像时,该至少一个图像捕获设备可以包括第一图像传感器,其配置为捕获在第一图像分析中使用的图像(例如,第一图像和第二图像),以及第二图像传感器,其与第一图像传感器分离且独立,并配置为捕获在第二图像分析中使用的图像(例如,第三图像和第四图像)。
返回参考图11,方法1100可以包括计算第一估计碰撞时间(TTC1)和第二估计碰撞时间(TTC2)之间的差异(步骤1140)。在一些实施例中,处理单元110可以用TTC2中减去TTC1以产生差异。处理单元110可以确定该差异是否超过预定阈值(步骤1150)。预定阈值可以是任何合适的阈值,例如,0.05秒、0.1秒、0.2秒,等等。当处理单元110所确定差异超过预定阈值时(是,步骤1150),处理单元110可以重复步骤1110-1150。当处理单元110确定差异不超过预定阈值时(否,步骤1150),处理单元110可以致使车辆200例如使用制动系统230制动(步骤1160)。
图14A-14C示出了光流场以及光流场中的第二估计碰撞时间(TTC2)的分布的图像。图14A示出了图像1400,其示出了在道路1420上行驶的车辆1410。为了说明的目的,未示出包括在图像1400中的其他对象。图14B示出了基于至少两个图像导出的光流场1430。例如,光流场1430可以从图像1400、以及在从获取图像1400的时间起的第二预定的时间间隔dt2获取的车辆1410的至少一个第二图像(未示出)导出。可以在图像1400或至少一个第二图像中选择多个图像点,并且可以由处理单元110生成连接这些图像的相对应的点的矢量。矢量可以形成为围绕车辆1410的区域的光流场1430,其在图14B中示意性地示出。
尽管为了说明的目的,光流场1430被示出在围绕车辆1410的区域内,但是光流场1430可以针对更小的区域(例如,聚焦在车辆1430的窗口)或更大的区域(例如,在图像1400所示的整个区域中)导出。光流场1430中的每个点可以通过具有长度并指向一方向的箭头与图14B中表示的矢量相关联。箭头的长度可以表示矢量的幅度。例如,矢量的幅度可以指示图像1400中的第一点到至少一个第二图像中的第二点的移动幅度。箭头的方向可以指示这两个图像中的每对相对应的点之间的移动的方向。
在执行上面所讨论的第二图像分析1300之后,处理单元110可以确定光流场1430中的每个点的第二估计碰撞时间(TTC2)。图14C示出了在图像1400中所示的整个区域上的TTC2的示范性分布。如图14C所示,不同的区域中的点可以与TTC2的不同的值相关联。在图14C中示出了不同的图案和/或阴影,以示意性地图示TTC2的不同的值。对于基本上聚焦在车辆1410的车身上的区域1440,区域1440内的所有或大多数的点可以与TTC2的基本上相同的值相关联。换言之,对于比如车辆1410的正直移动对象,该正直对象上的所有或大多数的点可以具有相同或基本上相同的碰撞时间。
然而,对于路面,所有或大多数的点可能不具有相同或基本上相同的碰撞时间。例如,道路1420的第一部分1450中的点可以与一个碰撞时间相关联,并且道路1420的第二部分1460中的点可以与另一碰撞时间相关联。这些碰撞时间可以是不同的,如图14C中以不同的图案/阴影所示。在一些实施例中,道路1420的第一部分1450和第二部分1460的碰撞时间之间可能存在不连续性(例如,这些碰撞时间之间的变化可能不是渐变的)。尽管第一部分1450和第二部分1460在单个图像中看起来是为正直对象,但是从至少两个图像生成的光流场可以显示附加信息(例如,碰撞时间),其可以区分真正的正直对象(其可以移动或可以不移动)和路面(其不是正直的)。参考图17A-18B进一步讨论了该方面。
如图14C所示,区域1470、1480和1490中的点可以与不同的碰撞时间相关联,如图中所示的不同的图案/阴影所指示。区域1470和1480均可以表示道路1420的一部分,并且区域1470和1480以及第一部分1450中的碰撞时间值的变化可以是渐变的(例如,连续的)。例如,区域1490可以表示天空的一部分,其相关联的碰撞时间可以和与区域1470和/或1480相关联的时间不同。
图15A和图15B示出了光流场中的示范性扩展焦点。图15A示出了图像中的对象在与车辆200相同的方向上(或基本上相同的方向上)并且与车辆200对齐(或基本上对齐)地行驶(例如,在车辆200前方的相同的移动线中,朝向或远离车辆200)。如图15A所示,对象的扩展焦点可以完全或基本上与静态环境的扩展焦点重叠。图15B示出了对象在不平行于车辆200的行驶方向的方向上行驶,例如,当对象在横向于车辆200的行驶方向的方向上横向地行驶时。如图15B所示,对象的扩展焦点可以不与静态环境的扩展焦点重叠。
例如,图15A示出了车辆200前方的区域的环境1500。与所公开的实施例一致,图像捕获设备(例如,图像捕获设备122-126中的一个)可以获取获取环境1500的第一图像1510,环境1500包括位于第一图像1510内的对象。围绕对象的环境可以表示静态环境(例如,道路、建筑、山、天空,等等)。图15A还示出了第二图像1520,图像捕获设备(例如,图像捕获设备122-126中的一个)可以在第二预定时间间隔dt2之后获取对象。可以在车辆200朝向对象移动时获取图像1520,因此,图像1520可以大于图像1510,以指示扩展。
图15A还示出了扩展焦点1530。扩展焦点1530可以是静态环境的扩展焦点,如会聚到扩展焦点1530的两条虚线所指示的。静态环境的扩展焦点1530的位置可以取决于相机,并且可以不随着相机连续地获取用于导出光流信息的对象或区域的多个图像而改变。当对象在与车辆200相同的方向上(或基本上相同的方向上)并且与车辆200对齐(或基本上对齐)地行驶时(例如,在车辆200前方,与车辆200的行驶方向相同或相反),扩展焦点1530也可以构成对象的扩展焦点。换言之,在与车辆200相同的方向上并且与车辆200对齐地行驶的对象的扩展焦点可以完全或基本上重叠(或完全或基本上收敛于)静态环境的扩展焦点。因此,处理单元110可以从自多个图像导出的光流场中检测一个扩展焦点。为了说明的目的,图15A还示出了从某些点到扩展焦点的距离r。
图15B示出了车辆200前方的区域的环境1540,以及由相机在第二预定的时间间隔dt2依次获取的对象的第一图像1550和第二图像1560(对象包括在第一图像1550和第二图像1560中)。例如,当车辆200朝向对象移动时,对象的图像可以例如从图像1550扩展到图像1560。图15B还示出了扩展的第一焦点1570,其可以根据从对象的图像1550和图像1560导出的光流场计算。为了说明的目的,图15B示出了从某些点到扩展的第一焦点1570的距离r。图15B还示出了扩展的第二焦点1580,其可以是静态环境的扩展焦点。扩展的第二焦点1580的位置可以取决于相机,并且可以不随着相机连续获取用于导出光流信息的对象或区域的图像而改变。在图15B所示的示例中,扩展的第一焦点1570可以不与扩展的第二焦点1580重叠。检测到两个或至少两个不重叠的扩展焦点可以指示在图像1540中存在横向行驶的至少一个对象,例如,在不平行于车辆200的行驶方向的方向上,或者在以不为零(或基本上为零)也不为180度(或基本上为180度)的角度横向于车辆200的行驶方向的方向上行驶的对象。
图16示出了示范性光流场和扩展焦点。对图16的以下讨论示出了如何导出光流场以及如何确定扩展焦点。例如,车辆1600是包括在例如由安装在车辆200上的图像捕获设备122所获取的图像中的对象,并且车辆200正在朝向车辆1600行驶。当车辆200接近车辆1600时,图像捕获设备122可以顺序地和/或连续地获取车辆200前方的区域的多个图像。可以从多个图像中选择任何两个或更多个图像以导出光流场。在图16中,第一图像由以实线表示的车辆1600表示,第二图像由以虚线表示的车辆1610表示。对于第一图像上的多个选择的点,例如点(x1,y1),(x2,y2)和(x3,y3),处理单元110可以确定它们的相对应的点,例如第二图像中的(u1,v1),(u2,v2)和(u3,v3)。可以针对每对点(x1,y1)和(u1,v1),(x2,y2)和(u2,v2),(x3,y3)和(u3,v3)确定矢量。矢量可以指示第一图像中的点的扩展的幅度和方向。每个矢量的长度(由图16中的实线箭头表示)可以指示从第一图像中的一个点到第二图像中的相对应的点的移动的距离或幅度,并且矢量的方向可以指示扩展方向或移动方向。矢量的收敛点1620可以表示扩展焦点。在一些实施例中,收敛点1620的位置可以使用基于矢量的坐标的合适的数学模型来计算。例如,收敛点1620的位置可以由下式计算:
SS*(xi-FOEx)=ui (1)
SS*(yi-FOEy)=vi (2)
其中SS可以是常数,(xi,yi)可以是第一图像内的第i个点的坐标,(ui,vi)可以是第二图像内的第i个点的坐标。FOEx和FOEy可以是表示收敛点1620的位置(即,扩展焦点)的坐标。
图17A和图17B示出了对象的图像、以及从光流场中的点到扩展焦点的距离与点的移动幅度之间的线性关系。图17A和图17B示出,从光流场中的点到扩展焦点的距离与点的移动幅度之间的线性关系可以用于确定对象是正直对象(例如,低碰撞时间正直对象)。
图17A示出了包括对象(即,车辆1700)的图像。车辆1700的图像可以包括两个车窗1710和1720的图像,其在车辆1700的图像中看起来更暗。可以选择多个点1730,其中大多数可以来自车辆1700的图像中的区域。可以从按预定的时间间隔dt2依次获取的车辆1700的至少两个图像中导出光流场。处理单元110可以基于光流场来确定移动幅度d以及从点到扩展焦点的距离r。处理单元110可以确定幅度d和距离r之间的关系。在一些实施例中,该关系可以是线性关系,如图17B所示,指示d/r(例如,绘制的线的斜率)对于光流场中的所有或基本上所有的点是相同的。如上文所讨论的,d/r可以与第二估计碰撞时间(TTC2)成反比。因此,d和r之间的线性关系可以指示d/r的恒定或基本上恒定的值,这进而可以指示TTC2对于光流场中的所有或基本上所有的点是恒定或基本上恒定的。恒定或相同的TTC2可以指示光流场内的对象是正直对象,或低碰撞时间正直对象。
为了说明移动幅度d与距离r之间的线性关系,图17B示出了与移动幅度d相关的垂直分量(y分量)(例如,y方向上的移动幅度,图17B中的“dy”)相对于距离r的垂直分量(例如,在y方向上到扩展焦点的距离,图17B中的“y”)的曲线图。尽管未在图17B中示出,但是水平分量(例如,x方向上的幅度和x方向上的距离)的曲线图也可以指示线性关系,这进而可以指示碰撞时间对于光流场中的所有或基本上所有的选择点恒定或基本上恒定。此外,距离r和幅度d的曲线图也可以指示线性关系,其进而可以指示光流场中的所有或基本上所有选择点的恒定(或相同)或基本上恒定(或相同)的碰撞时间。
当检测或确定移动幅度d和到扩展焦点的距离r之间为非线性关系时,该非线性关系可以指示第二估计的碰撞时间对于包括在光流场中的不同的点是不同的,这进而可以指示图像可以包括路面,而不是正直对象。如上文所讨论的,可以基于从至少两个图像导出的光流信息来确定第二估计碰撞时间。图18A和图18B示出对象的图像、以及从光流场中的点到扩展焦点的距离r与点的移动幅度d之间的非线性关系。图18A示出了房屋1810的图像1800,房屋1810具有车库门打开的两个车库1820和1830,以及通向车库1820和1830的车道1840(例如,路面)。由于车库门是打开的,车库1820和1830在图像上可以看起来更暗,类似于图17A中所示的车窗1710和1720。可以选择图像的区域1850用于图像处理。可以在区域1850内选择多个点,并且可以获取包括与区域1850相对应的区域的至少两个图像而导出光流场。基于具有多个矢量的光流场,处理单元110可以确定扩展焦点、点到扩展焦点的距离r、以及光流场中包括的点的移动幅度d。处理单元110可以确定距离r和幅度d之间的关系。在图18A所示的情况下,处理单元110可以确定距离r和幅度d之间的关系是非线性的。距离r和幅度d之间的非线性关系可以指示这些点的碰撞时间对于不同的点是不同的。这进而可以指示所选择的区域1850包括路面的图像,而不是如图17A所示的比如车辆1700的正直对象。
为了说明移动幅度d和距离r之间的非线性关系,图18B示出了与移动幅度d相关的垂直分量(y分量)(例如,y方向上的移动幅度,图18B中的“dy”)与距离r的垂直分量(例如,在y方向上到扩展焦点的距离,图18B中的“y”)的曲线图。尽管未在图18B中示出,但是水平分量(例如x方向上的幅度和x方向上的距离)的曲线图也可以指示非线性关系,因此,碰撞时间对于光流场中所选择的点的不同。此外,距离r和幅度d的曲线图也可以指示非线性关系,并且因此指示碰撞时间对于光流场中所选择的点的不同。这里,区域1850中的图像可以在单个图像中看起来类似于在图17A所示的车辆1700的图像。从在第二预定的时间间隔dt2获取的多个图像导出的光流场可以显示附加信息,例如关于包括在所选择的区域中的对象的碰撞时间信息。碰撞时间信息可以用于确定对象是正直对象还是路面。处理单元110可以将该确定与计算的TTC2结合以确定是否致动车辆200。
图19是示出了示范性过程1900的流程图,其用于基于指示碰撞时间小于一个或多个阈值的一个或多个概率来触发警告。如上文所讨论的,作为确定碰撞时间的替代,处理单元110可以基于由一个或多个图像捕获设备122、124和126所获取的至少两个图像确定碰撞时间小于预定阈值的概率。例如,在过程1900中,一个或多个图像捕获设备122-126可以获取车辆200前方区域的多个图像(步骤1910)。在一些实施例中,可以使用具有一个相机的图像捕获设备。在一些实施例中,可以使用具有两个或更多个相机的两个或更多个图像捕获设备。例如,一个摄像机可以具有车辆200前方的区域的45度视场,而另一个摄像机可以具有30度视场。
在一些实施例中,处理单元110可以基于至少两个图像来执行第三图像分析,以确定碰撞时间(TTC)小于第一预定阈值T1(即TTC<T1)的第一概率(P1)(步骤1920)。第一预定阈值T1可以是任何合适的值,例如,0.1秒、0.2秒、0.5秒,等等。处理单元110可以确定碰撞时间(TTC)小于第二预定阈值T2(即,TTC<T2)的第二概率(P2)(步骤1930)。第二预定阈值T2是任何合适的值,例如,0.1秒、0.2秒、0.5秒,等等。第二预定阈值T2可以与第一预定阈值T1相同或不同。
如果第一概率P1大于第一预定概率阈值Tp1,或者如果第二概率P2大于第二预定概率阈值Tp2,则处理单元110可以触发警告。Tp1和Tp2可以是任何合适的值,例如0.5、0.8、0.9等等。Tp1和Tp2可以相同或不相同。在一些实施例中,Tp2可以小于Tp1。处理单元110可以将第一概率P1与第一预定概率阈值Tp1进行比较,以确定第一概率P1是否大于第一预定概率阈值Tp1。处理单元110还可以将第二概率P2与第二预定概率阈值Tp2进行比较,以确定第二概率P2是否大于第二预定概率阈值Tp2。警告可以包括音频警报、视频警报、振动警报或其组合。警告可以警告驾驶员,以使驾驶员可以采取适当的导航动作,例如应用制动器、转向车轮,等等。
图20是示出了可以在图11所示的第一图像分析中实现的用于确定第一碰撞时间(TTC1)的示范性过程2000的流程图。过程2000可以在第一图像分析中用作替代的基于纹理的TTC1计算方法,以替代图12所示的过程1200。处理单元110可以处理以预定的时间间隔DT获取的至少两个图像。处理单元110可以确定第一图像中的对象的第一维度长度y1(步骤2010)。对象的第一维度长度可以是对象在垂直方向、水平方向、或在第一图像上的任何方向上的特征长度。例如,当对象是车辆时,特征可以是车辆上的牌照的垂直侧。处理单元110可以确定第二图像中的相同对象(或相同对象的相同特征)的第二维度长度y2,其可以在获取第一图像的时间之后、在第一图像之后的时间DT时获取(步骤2020)。处理单元110可基于第一维度长度和第二维度长度确定缩放因子Sf(scaling factor)。例如,处理单元110可以基于下式计算:Sf=y1/y2。在一些实施例中,处理单元可以追踪第一图像和第二图像中的对象的水平坐标和垂直坐标(dx,dy),且可以基于坐标(dx,dy)计算Sf,例如,Sf=dy1/dy2。
处理单元110可以基于缩放因子和时间间隔DT来确定碰撞时间(其可以是图11所示的第一碰撞时间)。在一些实施例中,处理单元110可以由下式计算TTC1:TTC1=DT/(Sf-1)。
使用如上所述的两者,即,即基于纹理和基于结构的感测模态、方法或模型,具有若干益处和优点。例如,与仅使用模态中的一个(或仅一个信息信道)的制动决定系统相比,在制动决定系统中使用两个模态的直接结果是可以降低系统故障的概率。
另一个优点涉及系统验证。使用至少两种模态(或信息的信道、或两个独立和/或分开的分析)使得车辆能够评估总系统故障率(例如,平均故障间隔时间(mean-time-between-failures)或MTBF)。总系统故障率可以通过分别评估每种模态的故障率来确定(例如,通过分别评估基于纹理的分析的故障率和基于结构的分析的故障率)。两种模态可以在两个子系统中实现:基于纹理分析的子系统和基于结构分析的子系统。两种模态的故障率可以相乘。相乘结果可以用作计算总系统故障率的指示符,或可以用于计算总系统故障率。在一些实施例中,可以基于相乘结果来估计MTBF,即使其显著地高于可用验证数据的程度(在时间上)。
例如,在一种场景下,只有1000小时的数据的记录可用,组合系统MTBF是1000000小时。在1/100的小时中,基于纹理的分析可能触发误制动决定。在1/10000的情况下,基于纹理的分析检查假设决定(例如假设决定是由于在车辆200前方的低TTC正直对象而制动的决定)。在这样的情况下,基于纹理的分析可能错误地批准假设决定。通过直接评估组合系统(或基于纹理的分析和基于结构的分析的组合分析),车辆系统在1000小时内可能只能实现0次故障,并且可能无法评估MTBF。通过在车辆200的制动决定中考虑两个独立的信息信道,例如,使用基于纹理的分析和基于结构的分析,车辆能够分别评估每个子系统(例如,基于纹理分析的子系统和基于结构分析的子系统)的故障率。这样的故障率可以相乘,并且乘法的结果可以用于评估MTBF。例如,在一些实施例中,基于纹理分析的子系统可以单独地保持运行,并且可能在1000小时内失败10次。如果基于结构分析的子系统被错误地激发了1000000次,如果,例如,基于纹理分析的子系统达到了需要在开放道路上发出自主紧急制动的决定,基于结构分析的子系统可能在10000次激发中失败一次。基于这些观察,处理单元110可以推断(或确定)总系统平均故障间隔时间(MTBF)实际上是1000000小时。可以仅使用1000小时的记录的数据来达到该估计。因此,通过使用所公开的两种模态,可以仅基于有限小时的记录的数据来更有效地执行系统验证。
图21是示出了示范性过程2100的流程图,其用于使用两种模态来执行系统验证。过程2100总结了上文讨论的系统验证。处理单元110可以确定与基于纹理分析的子系统相关联的第一故障率(步骤2110)。例如,处理单元110可以基于由基于纹理分析的子系统在系统运行小时的总数中做出误制动决定(例如,错误地检测到低TTC正直对象)的总次数来确定第一故障率。如上文所讨论的,基于纹理分析的子系统可以基于对车辆200前方的区域的至少两个图像之间的纹理变化(例如,占用尺寸的变化)的检测来做出制动的决定。处理单元110可以确定与基于结构分析的子系统相关联的第二故障率(步骤2120)。例如,处理单元110可以基于由基于结构分析的子系统在系统运行小时的相同总数或系统运行小时的不同总数中做出误制动的决定(例如,错误地检测到低TTC正直对象)的总次数来确定第二故障率。处理单元110可以基于第一故障率和第二故障率来确定总系统故障率(步骤2130)。例如,处理单元110可以将第一故障率和第二故障率相乘,并且使用相乘结果作为总系统平均故障间隔时间(MTBF)的指示符。
已经为了说明的目的而呈现了前面的描述。其不是穷尽性的,并且不限于所公开的精确形式或实施例。通过考虑所公开的实施例的说明书和实践,修改和适配对于本领域技术人员将是显而易见的。此外,尽管所公开的实施例的方面被描述为存储在存储器中,但是本领域技术人员将理解,这些方面也可以存储在其他类型的计算机可读介质上,例如辅助存储设备,比如硬盘或CD ROM、或其他形式的RAM或ROM、USB介质、DVD、蓝光或其它光驱动介质。
基于书面描述和所公开的方法的计算机程序在有经验的开发者的技能范围内。各种程序或程序模块可以使用本领域技术人员已知的任何技术来创建或者可以结合现有软件来设计。例如,程序段或程序模块可以由以下语言或通过以下语言来设计:.Net Framework、Net Compact Framework(以及相关语言,例如Visual Basic、C等)、Java、C++、Objective-C、HTML、HTML/AJAX组合、XML、或包括Java小程序的HTML。
此外,尽管本文已经描述了说明性实施例,但是如本领域技术人员基于本公开将理解的,任何和所有实施例的范围具有等同的元件、修改、省略、组合(例如跨各种实施例的方面的组合)、适配和/或变更。权利要求中的限制将基于权利要求中采用的语言广泛地解释,并且不限于本说明书中描述的示例或者在本申请的审查期间的示例。这些示例被解释为非排他性的。此外,所公开的方法的步骤可以以任何方式修改,包括通过重新排序步骤和/或插入或删除步骤。因此,意图使得说明书和示例仅被认为是说明性的,真正的范围和精神由所附权利要求及其等同物的全部范围指示。