用于路缘检测和行人危险评估的系统和方法与流程

文档序号:11161042阅读:508来源:国知局
用于路缘检测和行人危险评估的系统和方法与制造工艺

本申请要求于2014年5月14日提交的美国临时专利申请No.61/993,050的优先权的权益。通过引用将前述申请全部并入本文。

技术领域

本公开总体上涉及自主车辆导航,更具体地,涉及使用相机检测与道路相关联的路缘并评估潜在的行人危险的系统和方法。



背景技术:

随着技术不断进步,能够在道路上导航的完全自主车辆的目标即将实现。首先,自主车辆能够识别其环境,并且无需来自人工操作者的输入而进行导航。自主车辆还可以考虑各种因素,并基于这些因素做出适当的决定,以安全和准确地达到预期的目的地。例如,当车辆通常在道路上行驶时,会遇到各种对象,诸如其它车辆和行人。自主驾驶系统可以识别车辆的环境中的这些对象,并采取适当和及时的动作以避免碰撞。此外,自主驾驶系统可以识别其它指示符,诸如交通信号、交通标志、车道标记,这些指示符规范车辆运动(例如,车辆何时必须停止和何时可以行驶、车辆必须不能超过的速度、车辆在道路上必须位于的地点等)。自主驾驶系统可能需要确定何时车辆应该改变车道、在交叉点处转向、改变道路等。从这些示例中明显看出,需要解决许多因素以便提供能够安全和准确地导航的自主车辆。



技术实现要素:

根据本公开的实施例提供用于自主车辆导航的系统和方法。所公开的实施例可以使用相机来提供自主车辆导航特征。例如,根据所公开的实施例,所公开的系统可以包括监视车辆的环境的一个、两个或更多相机,并且基于对由一个或多个所述相机捕捉的图像的分析引起导航响应。

根据所公开的实施例,提供一种用于车辆的检测系统。所述检测系统可以包含至少一个图像捕捉装置以及数据接口,所述至少一个图像捕捉装置被编程为获取车辆前方的区域的多个图像,所述区域包含将路面与非路面分离的路缘。所述检测系统还可以包含至少一个处理装置,被配置为经由所述数据接口接收所述多个图像,并且在所述多个图像中确定多个路缘边缘线候选。所述至少一个处理装置可以进一步被编程为将至少一个路缘边缘线候选识别为所述路缘的边缘线。

根据另一实施例,提供一种车辆。所述车辆可以包括车体、至少一个图像捕捉装置以及数据接口,所述至少一个图像捕捉装置被配置为获取车辆前方的区域的多个图像,所述区域包含将路面与非路面分离的路缘。所述车辆还可以包括至少一个处理装置,其被编程为经由所述数据接口接收所述多个图像,并且在所述多个图像中确定多个路缘边缘线候选。所述至少一个处理装置可以进一步被编程为将至少一个路缘边缘线候选识别为所述路缘的边缘线,并且基于所述至少一个路缘边缘线,识别所述多个图像中对应于路面和非路面的区域。

根据另一实施例,提供一种用于路缘检测的方法。所述方法可以包含经由至少一个图像捕捉装置,获取车辆前方的区域的多个图像,所述区域包含将路面与非路面分离的路缘,并在所述多个图像中确定多个路缘边缘线候选。所述方法还可以包含确定与每个路缘边缘线候选相关联的阶梯函数的高度,并且基于所确定的高度,将至少一个路缘边缘线候选识别为所述路缘的边缘线。

根据其它所公开的实施例,非暂时性计算机可读存储介质可以存储程序指令,所述程序指令由至少一个处理装置执行并执行任何本文所描述的方法。

前面的一般性描述和接下来的详细描述仅是示例性和说明性的,并不限制权利要求。

附图说明

并入本公开中并构成本公开的一部分的附图示出所公开的各种实施例。在附图中:

图1是根据所公开的实施例的示例系统的图示表示。

图2A是包括根据所公开实施例的系统的示例车辆的图示性侧视图表示。

图2B是根据所公开实施例的图2A所示的车辆和系统的图示性顶视图表示。

图2C是包括根据所公开实施例的系统的车辆的另一实施例的图示性顶视图表示。

图2D是包括根据所公开实施例的系统的车辆的又一实施例的图示性顶视图表示。

图2E是包括根据所公开实施例的系统的车辆的又一实施例的图示性顶视图表示。

图2F是根据所公开实施例的示例车辆控制系统的图示性表示。

图3A是根据所公开实施例的包括后视镜和用于车辆成像系统的用户界面的车辆的内部的图示性表示。

图3B是根据所公开实施例的配置为定位在后视镜之后并抵靠车辆风挡的相机安装的示例的例示。

图3C是根据所公开实施例的图3B所示的相机安装从不同的视角的例示。

图3D是根据所公开实施例的配置为定位在后视镜之后并抵靠车辆风挡的相机安装的示例的例示。

图4是根据所公开实施例的配置为存储用于执行一个或多个操作的指令的存储器的示例框图。

图5A是示出根据所公开实施例的用于基于单眼图像分析引起一个或多个导航响应的示例过程的流程图。

图5B是示出根据所公开实施例的用于在一组图像中检测一个或多个车辆和/或行人的示例过程的流程图。

图5C是示出根据所公开实施例的用于在一组图像中检测道路标记和/或车道几何信息的示例过程的流程图。

图5D是示出根据所公开实施例的用于在一组图像中检测交通灯的示例过程的流程图。

图5E是示出根据所公开实施例的用于基于车辆路径引起一个或多个导航响应的示例过程的流程图。

图5F是示出根据所公开实施例的用于确定前方车辆是否正在改变车道的示例过程的流程图。

图6是示出根据所公开实施例的用于基于立体图像分析引起一个或多个导航响应的示例过程的流程图。

图7是示出根据所公开实施例的用于基于三组图像的分析引起一个或多个导航响应的示例过程的流程图。

图8是根据所公开实施例的被配置为存储用于执行一个或多个操作的指令的示例性存储器的框图。

图9是根据所公开实施例的车辆的环境的图像的例示。

图10A和图10B是根据所公开实施例的包括路缘的图像的例示。

图11是根据所公开实施例的示例性模型化路缘的例示。

图12是根据所公开实施例的用于在图像或视频序列内识别路缘的示例过程的流程图。

图13是根据所公开实施例的用于评估行人所呈现的危险的示例过程的流程图。

具体实施方式

接下来的详细描述参考附图。只要可能,在附图和接下来的描述中使用相同的参考标号来指代相同或相似的部分。尽管本文描述了若干示例性实施例,但是修改、改编和其它实现方式是可能的。例如,可以对附图中示出的组件做出替换、添加或修改,并且可以通过对所公开的方法进行步骤的替换、重新排序、移除或添加,来对本文描述的示例性方法进行修改。因此,接下来的详细描述并不限于所公开的实施例和示例。相反,适当的范围由所附权利要求限定。

图1是根据所公开的示例实施例的系统100的框图表示。取决于特定实现方式的要求,系统100可以包括各种组件。在一些实施例中,系统100可以包括处理单元110、图像获取单元120、位置传感器130、一个或多个存储器单元140、150、地图数据库160和用户界面170。处理单元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系列处理器芯片。这些处理器设计均包括具有本地存储器和指令集的多个处理单元。这样的处理器可以包括用于从多个图像传感器接收图像数据的视频输入,并且还可以包括视频输出能力。在一个示例中,使用在332兆赫兹下操作的90纳米-微米技术。架构由两个浮点式超线程32位RISC CPU(核)、五个视觉计算引擎(VCE)、三个矢量微代码处理器丹那利(Denali)64位移动DDR控制器、128位内部声能互连(Sonics Interconnect)、双16位视频输入和18位视频输出控制器、16通道DMA和若干外围设备构成。MIPS34K CPU管理这五个VCE、三个VMPTM和DMA、第二MIPS34K CPU和多通道DMA以及其它外围设备。这五个VCE、三个和MIPS34K CPU可以执行多功能捆绑应用所需要的密集视觉计算。在另一实例中,作为第三代处理器并且比强六倍的可以在所公开的实施例中使用。

任何本文所公开的处理装置可以被配置为执行某些功能。配置处理装置(诸如任何所描述的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的保险杠上或保险杠中。这种位置尤其可以适用于具有宽视场的图像捕捉装置。位于保险杠的图像捕捉装置的视线可以与驾驶员的视线不同,并且因此,保险杠图像捕捉装置和驾驶员可能不总是看到相同的对象。图像捕捉装置(例如,图像捕捉装置122、124和126)还可以位于其它位置中。例如,图像捕捉装置可以位于车辆200的侧视镜中的一者或两者之上或之中、车辆200的车顶上、车辆200的引擎罩上、车辆200的后备箱(trunk)上、车辆200的侧面上、安装在车辆200的任何车窗上,定位在车辆200的任何车窗的后面、或定位在任何车窗的前面、以及安装在车辆200的前面和/或背面上的光象(light figure)中或其附近等。

除了图像捕捉装置,车辆200还可以包括系统100的各种其它组件。例如,处理单元110可以被包括在车辆200上,与车辆的引擎控制单元(ECU)集成或者分离。车辆200还可以配备有诸如GPS接收器的位置传感器130,并且还可以包括地图数据库160以及存储器单元140和150。

图2A是根据所公开的实施例的示例车辆成像系统的图示性侧视图表示。图2B是图2A中所示的实施例的图示性顶视图例示。如图2B所示,所公开的实施例可以包括车辆200,该车辆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可以包括具有全局快门的AptinaM9V024WVGA传感器。在其它实施例中,图像捕捉装置122可以提供1280×960像素的分辨率,并且可以包括滚动快门。图像捕捉装置122可以包括各种光学元件。在一些实施例中,可以包括一个或多个镜头,例如用于为图像捕捉装置提供期望的焦距和视场。在一些实施例中,图像捕捉装置122可以与6毫米镜头或12毫米镜头相关联。在一些实施例中,如图2D所示,图像捕捉装置122可以配置为捕捉具有期望的视场(FOV)202的图像。例如,图像捕捉装置122可以配置为具有常规FOV,诸如在40度到56度的范围内,包括46度FOV、50度FOV、52度FOV,或更大的FOV。可替代地,图像捕捉装置122可以配置为具有在23至40度的范围内的窄FOV,诸如28度FOV或36度FOV。此外,图像捕捉装置122可以配置为具有在100至180度的范围内的宽FOV。在一些实施例中,图像捕捉装置122可以包括广角保险杠相机或者,具有高达180度的FOV的相机。

第一图像捕捉装置122可以获取关于与车辆200相关联的场景的多个第一图像。多个第一图像中的每一个可以作为一系列的图像扫描线而被获取,其可使用滚动快门来捕捉。每个扫描线可以包括多个像素。

第一图像捕捉装置122可以具有与第一系列图像扫描线中的每一个的获取相关联的扫描速率。扫描速率可以指,图像传感器可以以该扫描速率获取与包含在特定扫描线中的每个像素相关联的图像数据。

图像捕捉装置122、124和126可以包含任何合适的类型和数量的图像传感器,例如,包括CCD传感器或CMOS传感器等。在一个实施例中,可以采用CMOS图像传感器以及滚动快门,以使得一行中的每个像素一次被读取一个,并且各行的扫描在逐行的基础上继续进行,直到已经捕捉了整个图像帧。在一些实施例中,可以相对于帧从顶部到底部顺序地捕捉各行。

滚动快门的使用可能导致不同行中的像素在不同的时间被曝光和捕捉,这可能引起所捕捉的图像帧中的扭曲和其它图像伪像。另一方面,当图像捕捉装置122配置为利用全局或同步快门操作时,所有像素可以以相同量的时间并且在共同曝光时段期间被曝光。其结果是,在从采用全局快门的系统收集的帧中的图像数据表示在特定时间的整个FOV(诸如FOV 202)的快照。与之相比,在滚动快门应用中,在不同的时间,帧中的每行被曝光并且数据被捕捉。因此,在具有滚动快门的图像捕捉装置中,移动对象可能出现失真。将在下面更详细地描述这种现象。

第二图像捕捉装置124和第三图像捕捉装置126可以是任何类型的图像捕捉装置。类似于第一图像捕捉装置122,图像捕捉装置124和126中的每一个可以包括光轴。在一个实施例中,图像捕捉装置124和126中的每一个可以包括具有全局快门的AptinaM9V024WVGA传感器。可替代地,图像捕捉装置124和126中的每一个可以包括滚动快门。类似于图像捕捉装置122,图像捕捉装置124和126可以配置为包括各种镜头和光学元件。在一些实施例中,与图像捕捉装置124和126相关联的镜头可以提供FOV(诸如FOV 204和206),其等于或窄于与图像捕获装置122相关联的FOV(诸如FOV 202)。例如,图像捕捉装置124和126可以具有40度、30度、26度、23度、20度或更小的FOV。

图像捕捉装置124和126可以获取关于与车辆200相关联的场景的多个第二图像和第三图像。该多个第二图像和第三图像中的每一个可以作为第二系列和第三系列的图像扫描线而被获取,这可以使用滚动快门进行捕捉。每个扫描线或行可以具有多个像素。图像捕捉装置124和126可以具有与被包含在第二系列和第三系列中的每个图像扫描线的获取相关联的第二扫描速率和第三扫描速率。

每个图像捕捉装置122、124和126可以放置在相对于车辆200的任何合适的位置和方向处。可以选择图像捕捉装置122、124和126的相对位置以帮助将从图像捕捉装置获取的信息融合在一起。例如,在一些实施例中,与图像捕捉装置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的立体分析给出了额外的视差信息。如图2C和图2D所示,横向位移的差异可以通过dx表示。在一些实施例中,图像捕捉装置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中的一个或多个可以包括可选择的水平消隐时段,其在获取与图像捕捉装置122、124和/或126中的图像传感器的一行像素相关联的图像数据之前或之后施加。此外,图像捕捉装置122、124和126的一个或多个图像可以包括可选择的垂直消隐时段,其在获取与图像捕捉装置122、124和126的图像帧相关联的图像数据之前或之后施加。

这些定时控制可以使能与图像捕捉装置122、124和126相关联的帧速率的同步,即便每个的线扫描率速率不同。此外,如将在下面更详细地讨论的,这些可选择的定时控制以及其它因素(例如,图像传感器分辨率、最大线扫描速率等)可以使能从图像捕捉装置122的FOV与图像捕捉装置124和126的一个或多个FOV重叠的区域的图像捕捉的同步,即便图像捕捉装置122的视场不同于图像捕捉装置124和126的FOV。

图像捕捉装置122、124和126中的帧速率定时可以取决于相关联的图像传感器的分辨率。例如,假定两个装置线扫描速率类似,如果一个装置包括具有640×480的分辨率的图像传感器,并且另一装置包括具有1280×960的分辨率的图像传感器,则需要更多的时间来从具有更高分辨率的传感器获取一帧图像数据。

可能影响图像捕捉装置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可以获取离车辆几米之内的特写对象的图像。图像捕捉装置122、124和126还可以配置为获取离车辆更远的范围处(例如,25米、50米、100米、150米或更远)的对象的图像。此外,图像捕捉装置122、124和126的焦距可以被选择,以使得一个图像捕捉装置(例如,图像捕捉装置122)可以获取相对靠近车辆(例如,在10米内或20米内的)对象的图像,而其它图像捕捉装置(例如,图像捕捉装置124和126)可以获取离车辆200较远的(例如,大于20米、50米、100米、150米等的)对象的图像。

根据一些实施例,一个或多个图像捕捉装置122、124和126的FOV可以具有广角。例如,具有140度的FOV可能是有利的,尤其是对于可以被用于在捕捉车辆200附近的区域的图像的图像捕捉装置122、124和126。例如,图像捕捉装置122可以被用来捕捉车辆200的右侧或左侧的区域的图像,并且在这种实施例中,可能期望图像捕捉装置122具有宽FOV(例如,至少140度)。

与每个图像捕捉装置122、124和126相关联的FOV可以取决于各自的焦距。例如,随着焦距增加,对应的视场减小。

图像捕捉装置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的视场共享共同的中心。在其它实施例中,图像捕捉装置122、124和126可以捕捉相邻的FOV,或者可以在它们FOV中具有部分重叠。在一些实施例中,图像捕捉装置122、124和126的视场可以对齐,以使得较窄FOV图像捕捉装置124和/或126的中心可以位于较宽FOV装置122的视场的下半部分中。

图2F是根据所公开的实施例的示例车辆控制系统的图示性表示。如图2F所指示的,车辆200可以包括节流(throuttling)系统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还可以包括用于与车辆200的驾驶员或乘客进行交互的用户界面170。例如,车辆应用中的用户界面170可以包括触摸屏320、旋钮330、按钮340和麦克风350。车辆200的驾驶员或乘客还可以使用手柄(例如,位于车辆200的转向杆上或附近,包括例如转向信号手柄)、按钮(例如,位于车辆200的方向盘上)等与系统100交互。在一些实施例中,麦克风350可以定位为与后视镜310相邻。类似地,在一些实施例中,图像捕捉装置122可以定位为靠近后视镜310。在一些实施例中,用户界面170还可以包括一个或多个扬声器360(例如,车辆音频系统的扬声器)。例如,系统100可以经由扬声器360提供各种通知(例如,警报)。

图3B-图3D是根据所公开的实施例的配置为位于后视镜(例如,后视镜310)后面并抵靠车辆风挡的示例相机安装370的例示。如图3B所示,相机安装370可以包括图像捕捉装置122、124和126。图像捕捉装置124和126可以位于遮光板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)的前面和/或侧面处。第一相机可以具有大于、小于、或部分地重叠于第二相机的视场的视场。此外,第一相机可以连接到第一图像处理器以执行对由第一相机提供的图像的单眼图像分析,并且第二相机可以连接到第二图像处理器以执行对由第二相机提供的图像的单眼图像分析。第一图像处理器和第二图像处理器的输出(例如,处理后的信息)可以被组合。在一些实施例中,第二图像处理器可以从第一相机和第二相机两者接收图像以执行立体分析。在另一实施例中,系统100可以使用三相机成像系统,其中每个相机具有不同的视场。因此,这种系统可以基于从位于车辆的前方和侧面的不同的距离处的对象得到的信息做出决定。对单眼图像分析的参考可以参考基于从单个视点(例如,从单个相机)捕捉的图像执行图像分析的实例。立体图像分析可以参考基于利用图像捕捉参数的一个或多个变化而捕捉的两个或多个图像执行图像分析的实例。例如,适用于执行立体图像分析的捕捉到的图像可以包括以下捕捉的图像:从两个或多个不同的位置、从不同的视场、使用不同的焦距、与视差信息一起捕捉的图像,等等。

例如,在一个实施例中,系统100可以使用图像捕捉装置122-126实现三相机配置。在这种配置中,图像捕捉装置122可以提供窄视场(例如,34度、或从大约20度至45度的范围选择的其它值,等等),图像捕捉装置124可以提供宽视场(例如,150度,或从大约100度至大约180度的范围选择的其它值),并且图像捕捉装置126可以提供中间的视场(例如,46度,或从大约35度至大约60度的范围选择的其它值)。在一些实施例中,图像捕捉装置126可以作为主相机或初级相机。图像捕捉装置122-126可以位于后视镜310的后面,并且基本上并排设置(例如,相距6厘米)。此外,在一些实施例中,如以上所讨论的,图像捕捉装置122-126中的一个或多个可以被安装在与车辆200的风挡平齐的遮光板380的后面。这种遮挡可以作用为减少任何来自车内的反射对图像捕捉装置122-126的影响。

在另一实施例中,如以上结合图3B和3C所讨论的,宽视场相机(例如,上述示例中的图像捕捉装置124)可以被安装得低于窄视场相机和主视场相机(例如,上述的示例中的图像捕捉装置122和126)。这种配置可以提供从宽视场相机的自由的视线。为减少反射,相机可以被安装得靠近车辆200的风挡,并且在相机上可以包括偏振器以衰减(damp)反射光。

三相机系统可以提供某些性能特性。例如,一些实施例可以包括通过一个相机基于来自另一相机的检测结果来验证对象的检测的能力。在上面讨论的三相机配置中,处理单元110可以包括例如三个处理装置(例如,三个如以上所讨论的EyeQ系列处理器芯片),其中每个处理装置专用于处理由图像捕捉设备122-126中的一个或多个捕捉的图像。

在三相机系统中,第一处理装置可以从主相机和窄视场相机二者接收图像,并执行对窄FOV相机的视觉处理以例如检测其它车辆、行人、车道标记、交通标志、交通灯和其它道路对象。此外,第一处理装置可以计算来自主相机和窄相机的图像之间的像素的视差,并创建车辆200的环境的3D重建。然后,第一处理装置可以将该3D重建与3D地图数据或与基于来自另一相机的信息而计算的3D信息进行组合。

第二处理装置可以从主相机接收图像,并执行视觉处理以检测其它车辆、行人、车道标记、交通标志、交通灯和其它道路对象。另外,第二处理装置可以计算相机位移,并且基于该位移计算连续图像之间的像素的视差,并创建场景的3D重建(例如,运动恢复结构(structure from motion))。第二处理装置可以将基于运动恢复结构的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所描述的,立体图像分析模块404可以包括用于检测第一组图像和第二组图像内的一组特征的指令,所述特征诸如是车道标记、车辆、行人、道路标志、高速公路出口坡道、交通灯、危险对象等。基于该分析,处理单元110可以引起车辆200中的一个或多个导航响应,诸如转向、车道变换、加速度的改变等,如以下结合导航响应模块408所讨论的。

在一个实施例中,速度和加速度模块406可以存储软件,所述软件配置为对从车辆200中配置为引起车辆200的速度和/或加速度的改变的一个或多个计算和机电装置接收到的数据进行分析。例如,处理单元110可以执行与速度和加速度模块406相关联的指令,以基于从单眼图像分析模块402和/或立体图像分析模块404的执行而得到的数据来计算车辆200的目标速度。这种数据可以包括例如目标位置、速度和/或加速度、车辆200相对于附近车辆、行人或道路对象的位置和/或速度、车辆200相对于道路的车道标记等的位置信息等。此外,处理单元110可以基于感测输入(例如,来自雷达的信息)和来自车辆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)的输入确定期望的导航响应。基于期望的导航响应,处理单元110可以向车辆200的节流系统220、制动系统230和转向系统240发送电子信号以触发期望的导航响应,例如通过转动车辆200的方向盘以实现预定角度的旋转。在一些实施例中,处理单元110可以使用导航响应模块408的输出(例如,期望的导航响应)作为对速度和加速度模块406的执行的输入,用于计算车辆200的速度的改变。

图5A是示出根据所公开的实施例的用于基于单眼图像分析引起一个或多个导航响应的示例过程500A的流程图。在步骤510中,处理单元110可以经由在处理单元110和图像获取单元120之间的数据接口128接收多个图像。例如,包含在图像获取单元120中的相机(诸如具有视场202的图像捕捉装置122)可以捕捉车辆200的前方(例如,或者车辆的侧面或后面)区域的多个图像,并经过数据连接(例如,数字、有线、USB、无线、蓝牙等)将它们发送到处理单元110。在步骤520中,处理单元110可以执行单眼图像分析模块402来分析该多个图像,如以下结合图5B-5D进一步详细描述的。通过执行该分析,处理单元110可以在该组图像内检测一组特征,诸如车道标记、车辆、行人、道路标志、高速公路出口坡道、交通灯等。

在步骤520中,处理单元110还可以执行单眼图像分析模块402来检测各种道路危险,诸如卡车轮胎的部件、倒下的道路标志、松散货物、小动物等。道路危险可能在结构、形状、大小和颜色上变化,这可能使这种危险的检测更具有挑战性。在一些实施例中,处理单元110可以执行单眼图像分析模块402,来对该多个图像执行多帧分析以检测道路危险。例如,处理单元110可以估计连续图像帧之间的相机运动,并计算帧之间的像素中的视差来构建道路的3D地图。然后,处理单元110可以使用该3D地图来检测路面、以及存在于路面上的危险。

在步骤530中,处理单元110可以执行导航响应模块408,以基于在步骤520中执行的分析和如以上结合图4描述的技术引起一个或多个导航响应。导航响应可以包括例如转向、车道变换、加速度变化等。在一些实施例中,处理单元110可以使用从速度和加速度模块406的执行得到的数据来引起一个或多个导航响应。此外,多个导航响应可能同时地、按照顺序地或以其任意组合而发生。例如,处理单元110可以通过例如顺序地向车辆200的转向系统240和节流系统220发送控制信号,使得车辆200变换一个车道然后加速。可替代地,处理单元110可以通过例如同时向车辆200的制动系统230和转向系统240发送控制信号,使得车辆200制动,同时变换车道。

图5B是示出根据所公开的实施例的用于在一组图像中检测一个或多个的车辆和/或行人的示例过程500B的流程图。处理单元110可以执行单眼图像分析模块402来实现过程500B。在步骤540中,处理单元110可以确定表示可能的车辆和/或行人的一组候选对象。例如,处理单元110可以扫描一个或多个图像,将该图像与一个或多个预定模式进行比较,并且在每个图像内识别可能包含感兴趣的对象(例如,车辆、行人或其部分)的可能的位置。预定模式可以以实现高“伪命中”率和低“漏掉”率的这种方式来设计。例如,处理单元110可以使用与预定模式相似的低阈值,以将候选对象识别为可能的车辆或行人。这样做可以允许处理单元110减少漏掉(例如,未识别出)表示车辆或行人的候选对象的可能性。

在步骤542中,处理单元110可以基于分类标准过滤该组候选对象以排除某些候选(例如,不相关或较不相关的对象)。这种标准可以从与存储在数据库(例如,存储在存储器140中的数据库)中的对象类型相关联的各种属性得到。属性可以包括对象形状、尺寸、纹理、位置(例如,相对于车辆200)等。因此,处理单元110可以使用一组或多组标准来从该组候选对象中拒绝伪候选。

在步骤544中,处理单元110可以分析多帧图像,以确定在该组候选对象中的对象是否表示车辆和/或行人。例如,处理单元110可以跨连续帧来跟踪检测到的候选对象,并累积与检测到的对象相关联的逐帧数据(例如,大小、相对于车辆200的位置等)。此外,处理单元110可以估计检测到的对象的参数,并将该对象的逐帧位置数据与预测的位置进行比较。

在步骤546中,处理单元110可以构建一组对于检测到的对象的测量。这种测量可以包括例如与检测到的对象相关联的位置、速度和加速度值(相对于车辆200)。在一些实施例中,处理单元110可以基于使用一系列基于时间的观察的(诸如卡尔曼滤波器或线性二次估计(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可以创建所检测的片段从图像平面到现实世界平面上的投影。该投影可以使用具有与诸如所检测的道路的位置、斜率、曲率和曲率导数的物理属性对应的系数的三次多项式来表征。在产生该投影中,处理单元110可以考虑路面的变化、以及与车辆200相关联的俯仰(pitch)和滚转速率。此外,处理单元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可以分析交叉口的几何结构。该分析可以基于以下的任意组合:(i)在车辆200的任一侧检测到的车道的数量、(ii)在道路上检测到的标记(如箭头标记)、和(iii)从地图数据(例如,来自地图数据库160的数据)提取的交叉口的描述。处理单元110可以使用从单眼分析模块402的执行得到的信息进行分析。此外,处理单元110可以确定在步骤560中检测到的交通灯和在车辆200附近出现的车道之间的对应性。

在步骤564中,随着车辆200接近交叉口,处理单元110可以更新与所分析的交叉口几何结构和所检测到的交通灯相关联的置信度水平。例如,被估计为出现在交叉口处的交通灯的数量与实际出现在交叉口处的交通灯的数量相比可能影响置信度水平。因此,基于该置信度水平,处理单元110可以将控制委托给车辆200的驾驶员以便改进安全条件。通过执行步骤560-564,处理单元110可以识别出现在该组捕捉的图像内的交通灯,并分析交叉口几何信息。基于该识别和分析,处理单元110可以引起车辆200中的一个或多个导航响应,如以上结合图5A所描述的。

图5E是示出了根据所公开的实施例的用于基于车辆路径引起车辆中的一个或多个导航响应的示例过程500E的流程图。在步骤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中构建的更新的车辆路径来确定前瞻点(look-ahead point)(以坐标表达为(xi,zi))。处理单元110可以从累积距离向量S提取前瞻点,并且该前瞻点可以与前瞻距离和前瞻时间相关联。可以具有范围为从10米至20米的下限的前瞻距离可以被计算为车辆200的速度和前瞻时间的乘积。例如,随着车辆200的速度下降,前瞻距离也可以减小(例如,直到它到达下限)。范围可以从0.5到1.5秒的前瞻时间可以与关联于引起车辆200中的导航响应的一个或多个控制环路的增益成反比,例如是航向误差(heading error)跟踪控制回路。例如,该航向误差跟踪控制环路的增益可以取决于横摆角速率环路、转向致动器环路、汽车横向动力学等的带宽。因此,航向误差跟踪控制环路的增益越高,前瞻时间越低。

在步骤576中,处理单元110可以基于在步骤574中确定的前瞻点来确定航向误差和横摆角速率命令。处理单元110可以通过计算前瞻点的反正切,例如arctan(xi/zi)来确定航向误差。处理单元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可以通过将沿着追踪轨迹行驶的横向距离与该追踪路径的期望曲率相比较来分析该追踪轨迹的几何结构。期望曲率半径可以根据公式确定:(δz2x2)/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可以执行导航响应模块408,以基于在步骤620中执行的分析和如以上结合图4所描述的技术而引起车辆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与在第一、第二和第三多个图像的任一者内检测到的对象之间的相对位置、相对速度和/或相对加速度来引起一个或多个导航响应。多个导航响应可以同时地、按顺序地或以其任意组合而发生。

路缘(curb)检测和行人危险评估

如本文所述,系统100可以包括允许对某些元素的检测的技术特征和能力,其帮助系统100停留在道路上并且避免碰撞。在一个示例中,系统100被配置为检测限定道路的道路边界和/或道路附近的行人。获知物理道路边界允许系统100以避免驶离道路和/或与对象或行人碰撞的方式来警告驾驶员或控制车辆。例如,识别道路边界有助于通过划分其中可能存在行人的区域,以提供对在道路附近的人行道上的行人的物理保护。

在示例性实施例中,系统100可以被配置为检测路缘作为道路边界。在大多数情况下,路缘是将路面与非路面(例如,人行道、小路、中央隔离带、建筑物等)分离的物理边界。防止车辆穿过路缘有助于保持道路上的车辆和人行道上的行人安全。然而,位于路面上的行人处于被移动车辆撞击的更高的风险之中。因此,将行人分类为在路缘上和在路缘外的能力、以及对车辆和行人轨迹的估计为系统100提供了车辆对行人构成的危险进行评估的能力。公开的实施例包括路缘检测和行人危险评估特征,以对系统100提供这些和其它功能。

为了实现路缘检测和行人危险评估功能,处理单元110可以接收由图像捕捉装置122、124、126中的至少一个所捕捉的图像,并执行一个或多个图像分析处理。例如,处理单元110可以执行路缘识别过程以识别所捕捉的图像中的路缘,和执行行人识别过程以确定行人相对于路面的位置。

在一些实施例中,存储器140和/或150可以存储指令,该指令被编程为使得,当被处理装置执行时,提供路缘检测和/或行人危险评估功能。如图8所示,存储器140和/或150可以存储路缘识别模块810、路缘配准(registration)模块820、行人识别模块830、和数据库840。路缘识别模块810可以存储用于识别图像的对应于路缘的元素的指令。路缘配准模块820可以存储用于对路缘进行建模和/或确定每个所识别路缘的属性的指令。行人识别模块830可以存储用于在一个或多个捕捉的图像中检测行人并对行人进行分类的指令。数据库840可以被配置为存储与路缘检测和/或行人危险评估功能相关联的数据。此外,路缘识别模块810、路缘配准模块820、以及行人识别模块830可以存储可由一个或多个处理器(例如,处理单元110)单独地或彼此以各种组合执行的指令。例如,路缘识别模块810、路缘配准模块820、以及行人识别模块830可以被配置为与彼此交互和/或与系统100的其它模块交互,以执行根据所公开的实施例的功能。

数据库840可以包括一个或多个存储器装置,其存储信息并且通过诸如处理单元110的计算装置访问和/或管理。在一些实施例中,数据库840可以位于存储器140或150中,如图8所示。在其它实施例中,数据库840可以离存储器140或150远程地定位,并且系统100的其它组件(例如,处理单元120)可经由一个或多个无线连接(例如,无线网络)对其进行访问。尽管示出一个数据库840,但是应该理解的是,若干个独立的和/或互连的数据库可以组成数据库840。数据库840可以包括计算组件(例如,数据库管理系统、数据库服务器等),该计算组件配置为接收和处理对存储在与数据库840相关联的存储器装置中的数据的请求,并从数据库840提供数据(例如,到处理单元110)。

在一些实施例中,数据库840可以被配置为存储与提供路缘检测和/或行人危险评估功能相关联的数据。例如,数据库840可以存储数据,诸如图像、图像的部分、地图、算法、值的集合等,其可以允许处理单元110识别在图像中检测到的信息。例如,数据库840可以存储允许系统100识别路缘和/或行人的信息,诸如存储的路缘的图像和/或行人的图像。

图9描绘了由图像捕捉设备122、124、126中的一个捕捉的示例性图像900。图像900包括通常可以表示当车辆在道路上行驶时可见的设定的环境。例如,图像900包括在相对的路缘920之间限定的道路910、以及多个行人930。在示例性实施例中,系统100可以被配置为识别和/或区分图像900的各种特征。获知这些特征允许系统100做出有助于促进车辆的安全操作的决定。例如,路缘920的识别提供了有助于将车辆保持在道路910的物理边界内、远离于人行道上的行人930的信息。此外,路缘920的识别允许系统100识别道路910的表面上的行人,并且因此识别潜在的行人危险,这可能需要进一步的动作以避免碰撞。

图像900的全部可以表示一个或多个图像捕捉设备122、124、126的视场。在一些实施例中,系统100可以被配置为在FOV内识别感兴趣的区域(ROI)950。在示例性实施例中,系统100可以是被配置为处理选定的ROI950和/或与图像900(和/或多个图像,图像900是其中一个)相关联的完整视场以识别路缘920的检测系统。

在一个实施例中,系统100(例如,路缘识别模块810)可以被配置为检测线性图像边缘作为路缘边缘线候选。路缘识别模块810可以基于所识别的路缘边缘线候选,分析图像以识别路缘的一个或多个边缘线。例如,路缘识别模块810可以通过分析边缘线候选来确定哪一个(如果有的话)包括与路缘底部边缘的特征匹配的特征,以识别路缘的底部边缘,该底部边缘可以是图像中的路缘和路面之间的过渡线。

在一些实施例中,系统100(例如,路缘配准模块820)可以被配置为通过确定路缘边缘线候选附近的像素的运动场是否与具有适当高度的阶梯(step)的三维结构相一致,来确定路缘边缘线候选是否是路缘的一部分(例如,候选将会被正确地识别为路缘的边缘线)。例如,系统100可以将路缘建模为陡(sharp)阶梯函数,并使用多个捕捉的图像(例如,先前和当前的图像)来计算阶梯的什么属性将会最好地对捕捉的图像帧之间的像素的运动场进行建模。图9示出在最近的路中行人930A附近的所识别出的路缘920A的示例。

在示例性实施例中,路缘识别模块810可以通过使用图像分析方法识别路缘边缘线候选。例如,系统100可以使用利用霍夫(Hough)变换的方法,霍夫变换是可以用于识别图像中的线的图像处理技术。在另一个示例中,系统100可以使用坎尼(Canny)边缘检测技术,利用图像梯度分析来识别存在于图像中的边缘。可以使用其它图像分析方法,诸如,通过强度、对比度、或其它参数对图像像素进行分组来识别存在于图像中的线和/或曲线的其它方法。

路缘边缘,包括路缘底部边缘,通常看起来为图像的强度图样(pattern)中的细长线性边缘,从而允许使用的上述的图像分析方法中的一种对其进行识别。然而,对于出现在图像中的包含长的线性特征的非路缘对象和道路标记也是如此。因此,在图像中发现的细长线性边缘并不一定是路缘的边缘。路缘配准模块820可以执行路缘检测处理以分析路缘边缘线候选,来识别路缘边缘线(并且因此识别路缘)。

图10A描绘了示例性图像1000,包括由路缘识别模块810识别为路缘1020的潜在边缘的线性边缘1010。线性边缘1010中的一些可能对应于路缘1020的边缘线(例如,路缘的顶部和/或底部边缘),而其它一些线性边缘1010可能对应于非路缘对象,诸如裂缝、接缝、标记等。路缘配准模块820可以分析图像1000和线性边缘1010,以确定路缘1020的位置和/或对路缘1020进行建模。图10B描绘了根据所公开的实施例的具有已经被确定和建模的路缘1020的图像1000。

路缘配准模块820可以被配置为存储与允许如图10B所示的对路缘1020进行识别和建模的一个或多个算法相关联的指令。例如,路缘配准模块820可以包括路缘分析算法(CAA),其可以允许系统100在图像和/或视频序列中的多个图像内识别路缘。在示例性实施例中,处理单元110可以使用CAA确定路缘边缘线候选是否对应于路缘边缘线(例如,路缘底部边缘或路缘顶部边缘)。

图11描绘了可以用于对对应于真实路缘1105的路缘进行建模的模型化阶梯函数1100的示例,其包括当执行CAA时可以由系统100使用的至少一些参数。如图11所示,系统110可以跨多个捕捉的图像帧来分析感兴趣的区域1110以对阶梯函数1100进行建模,而不考虑屏蔽(mask)区域1120。这可以允许处理单元110只关注路缘边缘线候选周围的像素。在示例性实施例中,为了确定路缘边缘线候选是否对应于路缘边缘线,可以计算阶梯函数1100的高度(即,相关联的模型化路缘的高度)(以下称为“Zcurb”)。例如,可以对于在视频序列的一个图像中检测到的给定的路缘边缘线候选、先前帧、以及已知的、假定的、或估计的参数(例如,相机的校准和自运动参数)计算Zcurb

在一个示例中,路缘配准模块820可以利用参数化图像扭曲(wrap)函数和误差最小化函数E(p)来对于给定的路缘边缘线候选计算Zcurb。图像扭曲函数可以是分段式单应矩阵(homography)扭曲,由此每个单应矩阵在感兴趣的区域1110的不同部分上操作以对在捕捉的帧图像之间的三维空间中的像素进行匹配。例如,图像扭曲函数可以被定义为:

如图11所示,每个单应矩阵H1、H2和H3可以对应于感兴趣区域1120的一部分。在示例性实施例中,H1可以表示路缘1105的底部边缘的内侧的区域(例如,路面),H2可以表示路缘1105的底部边缘与路缘1105的顶部边缘之间的区域(例如,路缘的高度),并且H3可以表示远离于路缘1105的顶部和路面而延伸的区域(例如,人行道),所有都在感兴趣的区域1120内。系统100可以使用图像扭曲函数来跟随诸如当前图像Ia和先前图像Ib的多个图像之间的像素,以确定与路缘线边缘线候选相关联的阶梯函数。

在示例性实施例中,可以基于单应矩阵确定公式计算每个单应矩阵H1、H2和H3,诸如:

在一般情况下,限定每个单应矩阵的参数可以是已知的、假定的、或基于与车辆200和图像捕捉装置122、124、126相关联的信息估计的。例如,K可以是可以考虑焦距、图像中心、和/或其它相机设定的图像捕捉装置参数,并且可以被定义为:

帧间自运动参数可以使用以下得到:

tab=(ΔX,ΔY,ΔZ)T

Δθab=(Δα,Δβ,Δγ)T

Rab=Rz(Δγ)Ry(Δβ)Rx(Δα)可以是在帧Ia的相机坐标系统中的帧Ia和帧Ia之间的由俯仰(x)、偏航(y)和滚转(z)旋转(对于相对于道路平面的俯仰角α、偏转角β和滚转角γ)所构成的相机旋转矩阵。

关于表面法线ni

n2=-u×n1

在这些公式中,u=(X2–X1)/||(X2-X1)||,u是在路缘的底部边缘的方向上的单位向量,且Rcalib=Rz(γ)Ry(β)Rx(α),Rcalib是道路校准矩阵。

关于到三个平面的距离di

d1=Zcam

d3=Zcam-Zcurb

在上述公式中,可以使用被投射到道路平面上的图像坐标和的世界坐标X1和X2。对应于和的、在阶梯函数1100的上半部分上的点的图像坐标和可以限定分隔感兴趣的区域1110内的区域H2和H3的线。这些点可以因此被定义为:

X3,4=X1,2+Zcurbn1

在这些公式中,x可被用于表示相对应的二维图像点x的三维齐次(homogenous)图像坐标。

上面的公式可以用于确定使用图像扭曲函数函数的单应矩阵H1、H2和H3。由于阶梯函数1100的路缘高度Zcurb是未知的参数,图像扭曲函数可以进行迭代求解,直到确定适当的Zcurb。适当的Zcurb可以对应于当对在捕捉的图像帧之间的感兴趣的区域1120的坐标进行扭曲时、在满意的误差内的图像扭曲公式的结果。这可以使用误差最小化函数E(p)来确定,其中E(p)被定义为:

误差最小化函数E(p)可以被用于利用已知的信息、假定和/或估计的信息,来使当前帧和先前帧的扭曲之间的差异最小化。例如,当使用误差最小化函数E(p)时,系统100可以使用亮度恒定假定。误差最小化函数E(p)允许通过将一帧的坐标扭曲到另一帧的坐标,来使一个捕捉的图像帧与另一个捕捉的图像帧进行比较。最小化扭曲的误差允许系统100提供Zcurb的更精确的计算(例如,由于低误差值可以指示出精确地考虑了捕捉的图像帧之间的差异)。

对于每个路缘边缘线候选,系统100可以使用图像扭曲函数以识别参数向量p。取决于其它参数是否是已知的、假定的、或估计的(例如,可以内置额外的自由度以允许一些参数是未知的),参数向量p至少包括Zcurb。基于参数向量p,系统100可以基于误差最小化函数E(p)来确定误差阈值内的路缘高度Zcurb。此Zcurb值可以表示建模至给定的路缘边缘线候选的阶梯函数的高度的值。系统100可将计算出的Zcurb值与预期Zcurb值比较(例如,可以预期在道路上被发现的路缘的平均高度),以确定计算出的Zcurb值是否在阈值差内。如果计算出的Zcurb值在阈值差内,系统100可以确定路缘边缘线候选对应于路缘边缘线。

系统100可以重复使用CAA(其可以包括上述的公式)的过程,以确定一个或多个识别的路缘边缘线候选是否对应于路缘边缘线。系统100可以将每个路缘边缘线候选建模成路缘底部边缘和路缘顶部边缘二者,以确定路缘边缘线候选是否匹配路缘的任一边缘。基于这些过程,系统100可以确定图像或图像视频序列内的一个或多个路缘的位置。

在已经识别路缘后,行人识别模块830可以执行一个或多个过程,以识别相对于路缘的行人。例如,行人识别模块830可以评估所识别的行人是否是潜在的危险。当车辆在道路上行驶时,系统100可以使用与路缘和行人有关的信息向驾驶员提供警告和/或控制车辆。

图12是示出用于识别图像和/或视频序列内的路缘的示例过程1200的流程图。在示例性实施例中,系统100可以执行过程1200来确定路缘的位置,使得系统100可以确定路面的边界。获知路面的边界可以通过帮助将车辆维持在路面上且不与对象和/或行人碰撞,来允许系统100促进车辆的安全操作。另外,获知路面的边界可以允许系统100评估任何行人或其它对象是否在路面上,并因此针对危险应该采取一些动作以防止碰撞。

在步骤1202中,处理单元110可以接收车辆环境的多个图像。例如,一个或多个图像捕捉装置122、124、126可以获取车辆200的前方区域的多个图像。车辆的前方区域可以包括各种特征,如在图9所描绘的那些。

在步骤1204中,处理单元110可以识别路缘边缘线候选。例如,处理单元110(例如,路缘识别模块810)可以使用算法或公式来识别捕捉图像内的线性边缘。这些线性边缘可以表示路缘边缘候选,其可以被进一步处理以确定它们是否正确地表示存在于图像或视频序列中的路缘的边缘。在一个示例中,处理单元110可以使用边缘检测方法,诸如使用霍夫变换或将线拟合成坎尼边缘响应的长连接的分量,以识别路缘边缘线候选。

在步骤1206中,处理单元110可以分析每个路缘边缘线候选。例如,处理单元110(例如,路缘配准模块820)可以使用算法或公式来迭代处理路缘边缘线候选,以确定他们中的任何一些是否对应于路缘边缘线。例如,处理单元可以使用CAA来将每个路缘边缘线候选建模成阶梯函数,并确定该阶梯函数的相对应的高度是否对应于所预期的真实路缘的高度。

在步骤1208中,处理单元110可以识别路缘边缘线候选中的至少一个作为路缘的边缘线。例如,处理单元110(例如,路缘配准模块820)可以选择被确定为路缘的边缘线的路缘边缘线候选并进行存储,或以其它方式识别该边缘线候选作为路缘边缘线。路缘边缘线可以被识别为路缘顶部边缘或路缘底部边缘。

此外,处理单元110可以基于所识别的路缘的边缘线,来识别对应于路面和非路面的区域。例如,处理单元110可以使用所确定的路缘的边缘线,来识别在整个图像和/或视频序列中的路缘,并且在整个图像和/或视频序列的每个图像中,可以识别第一区域作为路面和第二区域作为非路面。以这种方式,处理单元110可以识别车辆200在其上行驶的道路的物理边界。在一些实施例中,处理单元110可以存储与所识别路缘边缘线或路缘相关联的位置和/或坐标信息。

在步骤1210中,处理单元110可以使用所识别的路缘边缘线或路缘来控制车辆200。例如,处理单元110可以将位置和/或坐标信息提供给车辆控制模块,该模块做出关于车辆200的速度、方向、加速度等的决定。在一些情况下,处理单元110可以使用模型化的路缘,来评估是否存在需要考虑的危险。例如,处理单元110可以使用模型化的路缘评估行人危险,如以下更详细说明的。

图13是示出用于评估由行人或可能位于道路内的其它对象所呈现的危险的示例过程1300的流程图。在示例性实施例中,系统100可以执行过程1300,以确定关于图像捕捉装置122、124、126的视场中的一个或多个行人的位置。例如,系统100可确定一个或多个行人位于道路的路面上(例如,因此不在非路面上),并确定应当采取的以防止与行人碰撞的一个或多个动作。

在步骤1310中,处理单元110可以识别图像和/或视频序列的图像内的行人。例如,处理单元110(例如,行人识别模块830)可以处理一个或多个图像来识别图像内的感兴趣的对象。处理单元110可以进一步分析感兴趣的对象,以确定它们是否对应于行人(或其它可被视为行人的对象,诸如动物、骑自行车的人等)。在一个示例中,处理单元可以将图像与存储的图像进行比较,以将图像的特征与已知的对应于行人的信息(例如,人的形状的图形)进行匹配。在另一示例中,处理单元可以将视频序列的多个图像进行比较,以识别以与行人一致的方式进行移动的对象。

在步骤1320中,处理单元110可以对行人进行分类。例如,处理单元110(例如,行人识别模块830)可以将行人分类为在路面上或在非路面上的任一者。在一个示例中,处理单元110可以将所识别的行人的位置和/或轨迹与被识别且模型化的路缘(例如,使用处理1200模型化的路缘)的位置进行比较。例如,处理单元可确定行人是否在被确定为路面(例如,路缘的底部边缘的内侧)的区域内,还是在被确定为非路面(例如,路缘的顶部边缘的外侧)的区域内。

在步骤1330中,处理单元110可以评估行人是否对车辆200呈现出危险。在一个示例中,处理单元110可以确定在路面上的行人是危险。在另一示例中,处理单元110可以将车辆200的轨迹与路面上的所识别的行人的轨迹进行比较,以确定是否存在车辆与行人之间碰撞的可能性。

在步骤1340中,处理单元110可警告驾驶员和/或控制车辆200,以防止碰撞。在一个示例中,处理单元110可以在每当行人被分类为在路面上时,向驾驶员警告路面上的行人。在另一示例中,仅当处理单元110确定与行人可能碰撞(例如,风险阈值之上,诸如基于车辆200与行人之间在某个时间点预测的最近距离)时,警告驾驶员。在一些实施例中,处理单元110可以使用对行人危险的评估,以自动地控制车辆200的驾驶。例如,处理单元110可以修改车辆200的路径(例如,转向方向)、速度、加速度等,以避免与行人碰撞。

系统100可以使用过程1200和/或1300,以识别车辆200的环境的特征,并使用这些特征来操作/控制车辆200。特别地,如在上面的示例中所讨论的,系统100可以识别道路边界,并基于行人相对于道路边界的位置来确定是否有任何行人危险。然而,应当理解,这些是示例,并且可以实现其它类似的过程。例如,除路缘之外,还可以确定其它道路边界,诸如栏杆、中央隔离带、路肩等,并可以基于它们相对于道路边界的定位和/或位置来识别和评估除行人之外的其它危险,诸如其它车辆、碎片、道路缺陷等。

出于说明的目的已经呈现了前面的描述。它不是穷举性的并且不限于所公开的实施例的精确形式。本领域技术人员通过考虑所公开的实施例的说明和实践,修改和改编将是显而易见的。另外,尽管所公开的实施例的方面被描述为存储在存储器中,本领域的技术人员将理解,这些方面也可以存储在其它类型的计算机可读介质上,诸如辅助存储设备,例如,硬盘或CDROM、或其它形式的RAM或ROM、USB介质、DVD、蓝光、或其它光驱动介质。

基于书面说明和所公开的方法的计算机程序在有经验的开发人员的技术范围内。可以使用任何本领域技术人员已知的技术来创建或可以结合现有的软件来设计各种程序或程序模块。例如,程序段或程序模块可以以或通过.NET Framework、.NET Compact Framework(以及相关的语言,诸如Visual Basic,C等)、JAVA、C++、Objective-C、HTML、HTML/AJAX组合、XML或者包含Java小程序的HTML来设计。

此外,虽然已经在本文中描述了说明性实施例,但是本领域技术人员基于本公开将认识到具有(例如,遍及各个实施例的方面的)等同的要素、修改、省略、组合、改编和/或改变的任何以及所有实施例的范围。权利要求书中的限定将基于权利要求书中采用的语言宽泛地解释,并且不限于在本说明书中或在本申请的审查期间所描述的示例。示例将被理解为非排他性的。此外,所公开的方法的步骤可以以任何方式修改,包括通过重新排序步骤和/或插入或删除步骤。因此,意图是说明书和示例被视为仅是说明性的,真正的范围和精神由以下权利要求及其等同物的全部范围来表示。

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