计算机视觉系统中的致密光学流处理

文档序号:1677018 发布日期:2019-12-31 浏览:36次 >En<

阅读说明:本技术 计算机视觉系统中的致密光学流处理 (Densified optical flow processing in computer vision systems ) 是由 赫图尔·桑维 米希尔·纳伦德拉·莫迪 尼拉吉·南丹 安尼什·雷古纳特 迈克尔·彼得·拉赫迈尔 于 2018-06-29 设计创作,主要内容包括:提供一种计算机视觉系统(100),其包含生成场景的连续二维2D图像的图像生成装置(124),及确定所述连续2D图像对的致密光学流图的光学流加速器(112)。对于一对连续2D图像,所述光学流加速器(112)针对所述对连续2D图像的当前图像中的每一像素组执行基于预测符的对应关系搜索。对于每一像素组中的锚像素,所述基于预测符的对应关系搜索评估多个预测符以在所述对连续2D图像的参考图像中选择最佳匹配像素,并基于针对所述像素组的所述锚像素所选择的所述最佳匹配像素来确定像素组中的每一像素的光学流向量。(A computer vision system (100) is provided that includes an image generation device (124) that generates successive two-dimensional 2D images of a scene, and an optical flow accelerator (112) that determines a dense optical flow map of the successive 2D image pairs. For a pair of consecutive 2D images, the optical flow accelerator (112) performs a predictor-based correspondence search for each pixel set in a current image of the pair of consecutive 2D images. For an anchor pixel in each pixel group, the predictor-based correspondence search evaluates a plurality of predictors to select a best matching pixel in a reference image of the pair of consecutive 2D images, and determines an optical flow vector for each pixel in a pixel group based on the best matching pixel selected for the anchor pixel of the pixel group.)

计算机视觉系统中的致密光学流处理

技术领域

本发明大体上涉及计算机视觉系统,且更具体地说,涉及此类系统中的致密光学流处理。

背景技术

高级辅助驾驶系统或ADAS在汽车中正变得越来越常见。这些系统为驾驶员提供关于周围环境的信息,并且可能自动地干预驾驶过程以防止发生意外及道路死亡事故。使用图像传感器的三维(3D)场景理解是构建此场景理解的基本步骤。使用光学流的场景运动理解是提供准确运动估计的常见技术。为了确定光学流,采用一个相机捕获同一场景的图像(视频)的时间序列。处理连续图像对以确定连续图像之间的像素位移。可使用像素的位移或流向量信息分析对应于所捕获场景中的像素的对象运动/体积。

一种可在嵌入式安全系统中使用的光学流方法是稀疏光学流。稀疏光学流是基于特征的方法,其中仅跨越连续图像识别所选像素流,例如图像边缘、拐角等特征。更准确光学流方法是致密光学流,其中识别连续图像中的所有像素流。鉴于嵌入式系统的实时处理要求,在此类系统中使用致密光学流具有挑战性,这是因为致密光学流处理的当前方法可为计算密集型的并且需要大量数据带宽。

发明内容

实施例涉及用于计算机视觉系统中的致密光学流处理的方法及设备。在一个方面中,提供一种计算机视觉系统,其包含被配置成生成场景的连续二维(2D)图像的图像生成装置,及被配置成确定连续2D图像对的致密光学流图的致密光学流引擎(DOFE),其中对于一对连续2D图像,DOFE被配置成针对所述对连续2D图像的当前图像中的每一像素组执行基于预测符的对应关系搜索,其中对于每一像素组中的锚像素,基于预测符的对应关系搜索评估多个预测符以在所述对连续2D图像的参考图像中选择最佳匹配像素,并基于针对像素组的锚像素所选择的最佳匹配像素确定像素组中的每一像素的光学流向量。

在一个方面中,提供一种操作计算机视觉系统以确定场景的两个连续二维(2D)图像的致密光学流图的方法,其包含针对两个连续2D图像的当前图像中的每一像素组执行基于预测符的对应关系搜索,其中对于每一像素组中的锚像素,基于预测符的对应关系搜索评估多个预测符以在两个连续2D图像的参考图像中选择最佳匹配像素,所述搜索由计算机视觉系统中包括的致密光学流引擎(DOFE)执行;及基于针对像素组的锚像素所选择的最佳匹配像素确定像素组中的每一像素的光学流向量,所述确定由DOFE执行。

附图说明

图1是实例多处理器芯片上系统(SOC)的高级框图。

图2是图1的SOC的实例光学流加速器的高级框图。

图3说明图2的光学流加速器的致密光学流引擎(DOFE)生成致密光学流向量图的处理步骤。

图4示出用于DOFE的预测符搜索的实例空间预测符。

图5是DOFE的实例架构的高级框图。

图6示出支持DOFE的光学流处理的实例数据阶层。

图7示出在DOFE的光学流处理中使用的实例滑动搜索窗。

图8是说明滑动搜索窗的平铺组织的实例。

图9是说明使用平铺组织的最佳及最差情况存储器存取的实例。

图10是用于确定致密光学流图的方法的流程图。

具体实施方式

在图式中,为一致起见,相似的元件由相似的附图标记标示。

现实世界中的移动对象具有三维(3D)运动。捕获移动对象的相机捕获实际3D运动的二维(2D)投影。可通过观察对象的连续所捕获图像来确定移动对象的2D运动。图像像素在图像间的2D运动被称为像素的光学流,且被定义为像素在两个连续图像之间的位移向量。对于致密光学流,确定每一像素的光学流。

像素的光学流确定根本上是“最佳对应关系”的找出问题。也就是说,给出两个连续图像,问题是找出较早图像中的像素在较新图像中的最佳匹配位置。一般来说,在较新图像中的被称为搜索范围的预定区内执行对最佳匹配像素的搜索。可使用基于预测符的搜索策略以避免在搜索范围内的每一像素处搜索对应关系。

实施例提供满足实时性能要求的嵌入式计算机视觉系统中的致密光学流处理。在一些实施例中,提供用于致密光学流图计算的硬件加速器。硬件加速器包含改进致密光学流计算的性能的新型特征,例如:对匹配像素的基于像素组的搜索,所述搜索会减少搜索时间;通过平铺管理数据带宽的阶层式数据组织;及/或避免重取数据的高级预测符评估。

图1是被配置成支持基于相机的ADAS中的计算机视觉处理的实例多处理器芯片上系统(SOC)100的高级框图。SOC 100包含经由高速互连件122耦合的双通用处理器(GPP)102、双数字信号处理器(DSP)104、视觉处理器106及光学流加速器112。如本文中更详细地解释,光学流加速器112被配置成对传入的相机图像对执行致密光学流处理。视觉处理器106是经调谐用于例如梯度计算、定向分格(binning)、直方图归一化等计算机视觉处理的向量处理器。GPP 102代管操作系统且提供对SOC 100的操作的总体控制,包含对光学流加速器112所执行的处理的安排。DSP 104提供对例如对象检测及分类的计算机视觉处理的支持,所述计算机视觉处理可使用光学流加速器112的输出。

SOC 100另外包含直接存储器存取(DMA)组件108、可耦合到外部相机124的相机捕获组件110、显示器管理组件114、芯片上随机存取(RAM)存储器116,例如计算机可读媒体,以及全部经由互连件122耦合到处理器及光学流加速器112的各种输入/输出(I/O)***装置120。相机124可经由模拟连接、以太网缆线、低电压差分信号(LVDS)缆线或其它合适的有线或无线连接耦合到SOC 100。另外,SOC 100包含安全组件118,其包含实现遵从汽车安全要求的安全相关功能性。此类功能性可包含对于数据的CRC(循环冗余校验)的支持、漂移检测的时钟比较器、错误传信、加窗看门狗定时器及SOC对于损坏及故障的自测试。

图2是实例光学流加速器112的高级框图。光学流加速器112包含配置互连件206、硬件线程调度器(HTS)204、致密光学流引擎(DOFE)202、存储器映射寄存器(MMR)208、共享存储器互连件210及共享存储器212。

配置互连件206提供用于配置光学流加速器112的参数的接口。配置互连件206还提供用于观察光学流加速器112执行的处理的状态的接口。

HTS 204实施DOFE 202中的处理线程的线程管理及控制触发。HTS 204还管理光学流加速器112与SOC 100中的其它组件(例如,DSP 104)之间的消息传送及控制。

共享存储器212存储致密光学流引擎202的输入及输出数据。共享存储器212包含四个静态随机存取存储器组。共享存储器互连件210是具有管线化命令及响应处置的交叉开关(crossbar)。DMA 108连接到共享存储器互连件210,且用于将供DOFE 202进行处理的数据移动到共享存储器中,并且将DOFE 202产生的光学流数据移动出光学流加速器112以供SOC 100上的其它组件耗用。

MMR 208被配置成存储DOFE 202的各种控制及配置参数。参数可包含共享存储器212中的缓冲器大小及地址、水平及竖直搜索范围、置信度得分配置值等。

DOFE 202被配置成找出在本文中被称为参考图像及当前图像的一对输入图像的所有像素之间的光学流向量图。当前图像是在时间t-1处接收到的图像且参考图像是在时间t处接收到的图像。由DOFE 202实施的致密光学流方法是基于运动/流向量预测符,且使用利用参考图像与当前图像的图像金字塔的从粗到细对应关系搜索策略。

从粗到细对应关系搜索是基于如下事实:可将两个连续图像之间的像素的大位移减小到较低空间分辨率下的较小位移,借此减小对应关系搜索问题的复杂度。对于此搜索方法,从每一输入图像创建依次按比例缩小的图像结构。例如,可通过以下操作创建图像的高斯图像金字塔:使用5×5高斯低通滤波器对输入图像滤波且接着在水平及竖直方向上对经滤波图像进行二分之一下取样。接着使所得图像经历相同处理,且重复所述循环直到生成所要数目个金字塔层级,例如六个层级。此处理的每一循环产生具有增大的平滑度及降低的空间取样密度,即降低的图像分辨率的较小图像。

在所得的金字塔中,假设存在五个较高层级,原始图像可被称作基底金字塔层级或层级0,且较小分辨率图像可被称作较高金字塔层级,例如层级1到5。应注意,在实例高斯图像金字塔中,每一金字塔层级是下一较低层级的大小的1/4。因此,特定金字塔层级处的像素对应于下一较低金字塔层级处的四个像素的2×2块。同样,在较高金字塔层级处所测量的距离是下一较低金字塔层级处的距离的1/2。

图3说明DOFE 202生成致密光学流向量图的处理步骤。此图假设图像金字塔具有如上文所描述生成的五个上部层级。所属领域的一般技术人员将理解,可使用较多或较少层级。依次处理金字塔层级中的每一个,以从最高金字塔层级开始生成层级图像中的每一像素的光学流向量。在每一上部金字塔层级处,应用基于预测符的搜索策略300以找出初始匹配,接着用阶层式步长搜索策略302进一步细化所述初始匹配,从而产生每一像素的整数像素准确流向量。将中值滤波器304应用于流向量以移除脉冲估计噪声。将经滤波流向量按比例扩大306两倍并且用作下一较低金字塔层级处的初始预测符。

在基底金字塔层级处,将基于预测符的搜索策略308应用于原始图像以找出初始匹配,接着用阶层式步长搜索策略310进一步细化所述初始匹配,从而产生每一像素的所估计整数像素准确流向量。在确定整数像素流向量之后,将像素对应关系进一步细化312到子像素层级准确度。将中值滤波器314应用于经细化流向量以移除脉冲估计噪声。可使用任何合适的中值滤波器。通过针对每一最终估计流向量计算被称为置信度得分的正确性的定量估计来生成置信度图316。接着将最终估计流向量与置信度图一起包封以形成存储于外部存储器中的致密光学流图。可使用用于计算置信度得分的任何合适技术。

每一金字塔层级处的预测符搜索300、308及步长搜索302、310在每一金字塔层级处搜索,以找出当前图像中的每一像素在参考图像中的最佳匹配像素。对于当前图像中的像素,对参考帧中的最佳匹配像素的搜索局限于当前帧中的搜索窗。最佳匹配是基于当前像素与参考图像中的每一候选匹配像素的匹配成本计算确定的。在计算匹配成本之前,将普查变换应用于当前像素值及候选匹配参考像素值以减小来自照明变化的误差,且基于相应经变换值计算每一像素的普查签名。接着基于像素的普查签名之间的汉明距离来测量匹配成本。可使用计算普查签名及汉明距离的任何合适的普查变换及方法。

预测符搜索300、308使用预测符修剪全搜索窗以避免搜索搜索窗中的每一像素处的对应关系。此类搜索基本上假设运动的空间与时间局部性及平滑性,即,小邻域中的像素非常可能具有类似运动且运动在空间及时间两者上平滑地改变。此外,并非搜索当前帧中的每一像素,而是对在本文中可被称作像素组的不重叠像素块执行搜索。出于实例目的,假设像素组是2×2像素块。可使用其它合适的块大小。

在预测符搜索300、308中,假设可通过选自块的空间或时间相邻者的实际/估计流向量的一组流向量值来预测任一金字塔层级处的每一2×2像素块,所述流向量值可被称作流向量预测符。参照2×2像素块的左上像素定义预测符,所述左上像素在本文中可被称作锚像素。可使用任何合适类型及/或数目的预测符。在一些实施例中,使用五个空间预测符及单个时间预测符。图4中说明五个空间预测符。所述空间预测符是在锚像素左上方(TL)的像素的流向量、在锚像素顶部(T)的像素的流向量、在锚像素右上方(TR)的像素的流向量、紧邻如在先前金字塔层级中估计的锚像素的左侧的像素的流向量,以及与如在先前金字塔层级中估计的锚像素在相同位置中的像素的流向量。时间预测符是与如在先前图像中估计的锚像素在相同位置中的像素的流向量。

在一些实施例中,使用额外空间预测符,其为同一行中在锚像素左侧的n像素的像素的流向量。n的值取决于DOFE 202的管线深度。此预测符可被称作延迟的左侧预测符。

在所有金字塔层级使用空间预测符且在基底金字塔层级使用时间预测符。选择以最小匹配成本产生匹配候选的预测符作为像素组的优胜预测符。接着围绕来自预测符搜索300、308的优胜预测符应用步长搜索302、310,以进一步细化匹配位置。步长搜索302、310意图从优胜预测符细化围绕优胜预测符位置的有限二维(2D)区域中的最佳匹配位置。针对像素组中的每一像素执行步长搜索302、310以确定每一像素的流向量。

在一些实施例中,使用被称为3-1步长搜索的阶层式步长搜索技术。最初,搜索围绕优胜预测符位置的八个像素位置。选择八个像素位置以使得所述位置是在八个方向,即北、东北、东、东南、南、西南、西及西北中的每一方向上远离优胜预测符位置的三个像素。通过在距最佳匹配位置一个像素距离处选择八个类似地定位的像素,进一步细化来自此搜索的最佳匹配位置。选择来自此一个像素搜索的最佳匹配位置作为最终整数像素准确流向量。

图5是图2的DOFE 202的实例架构的高级框图。普查变换组件506、预测符搜索引擎(PSE)504及步长搜索引擎(SSE)502串联耦合,且被配置成对存储于搜索范围缓冲器508中的当前及参考像素数据执行先前描述的普查变换、预测符搜索及步长搜索。子像素细化组件518被配置成对由在基底金字塔层级处执行的步长搜索产生的最佳匹配位置执行先前描述的子像素细化。中值滤波器组件514被配置成执行先前描述的中值滤波,且置信度得分组件516被配置成生成所选最佳匹配位置的置信度得分。

输出包封组件520被配置成将来自中值滤波器组件514的一连串流向量及来自置信度得分组件516的一连串对应置信度得分包封以产生流向量图,所述流向量图存储于输出缓冲器522中。共享存储器接口512被配置成从输出缓冲器522读取流向量图,且经由共享存储器互连件210将所述图存储于共享存储器512中。接着,DMA 108可将流向量图从共享存储器512传送到外部存储器,例如图1的芯片上RAM 116。

为优化对应关系搜索所需的数据的存取带宽,使用阶层式数据组织。如图6中所说明,在一些实施例中,数据阶层包含三个层级的存储器,其中从层级3(L3)到层级1(L1)存储量逐渐降低而存取带宽逐渐增大。L3存储器可在光学流加速器112外部,例如,芯片上RAM116,而L2存储器及L1存储器分别作为共享存储器212及搜索范围缓冲器508包含于光学流加速器112中。

在此阶层中,L3存储器存储参考图像及当前图像,L2存储器存储图像中的每一图像的并发像素行的子集,且L1存储器存储从L2存储器中的参考图像行提取的搜索窗。此外,可根据生长窗方法维持L2存储器中的参考图像及当前图像的子集,在所述生长窗方法中,与光学流处理并行地针对每一图像维持从L3存储器读取的连续图像行的循环缓冲器。循环缓冲器中的每一个中的行的数目可以是任何合适数目。在一些实施例中,生长窗中的最小数目个行可是基于普查变换所需的像素数目及计算汉明距离以及竖直搜索范围所需的像素数目。在一些实施例中,从L3存储器提取呈像素组行的图像行,例如如果像素组是2×2,则提取两行。

如图7中所描绘,可根据滑动窗方法维持L1存储器(例如,搜索范围缓冲器508)中的搜索窗,在所述滑动窗方法中,与光学流处理并行地维持从参考图像生长窗读取的像素图块的连续列的循环缓冲器。在像素组处理以光栅扫描次序向右移动时,添加新的像素图块列而丢弃相同数目个像素图块列。滑动窗的大小可是基于对应匹配的搜索范围。

在L1存储器的搜索窗中使用平铺组织以最小化执行对应关系搜索所需的存储器存取数目。对于参考图像中的候选像素位置,需要由所使用普查变换及匹配成本计算指示的大小的像素区。因为运动是不受限制的,所以流向量及预测符可指向搜索范围内的任何像素位置。因此,用于成本计算的像素区可以任何像素为中心。如果像素呈光栅扫描次序,则对像素区中的所有像素的存取可能需要多个存取。将参考图像像素布置成像素图块会减小所需存取的数目。

此外,图块为跨越L1存储器中的多个存储器组的“条纹”。可使用任何合适数目个存储器组。每一存储器组被大小设定成存储整个图块的倍数,且图块存储于存储器组中使得可在单个循环中进行存取。图块跨越存储器组的特定布置可取决于例如可用的存储器组的数目及搜索窗的大小。

考虑图8的实例。在此实例中,假设4×4图块及四个存储器组。所属领域的一般技术人员将理解其它图块大小及/或其它存储器组织的实施例。示出小的实例图像802,其中按光栅扫描次序的像素被逻辑地划分到4×4图块中。还示出实例L1存储器804。在此像素组织情况下,像素区可依照4×4图块进行分解且通过有限数目个存取进行读取。例如,如图9中所说明,基于搜索向量的位置,14x14 2D区含有于十六(最佳情况)或二十五(最差情况)个4×4像素图块中,从而因此要求十六(最佳情况)或二十五(最差情况)个存取来提取所需像素区。在另一实例中,可存在十六个L1存储器组,其中竖直邻近的4×4图块放置在不同组中。

返回参考图5,共享存储器接口512被进一步配置成经由共享存储器互连件210从共享存储器212中的生长窗读取参考帧的像素数据。像素数据被提供到从线到块转换组件510以用于处理并存储于搜索范围缓冲器508中。从线到块转换组件510被配置成将从共享存储器212读取的像素数据转换成像素图块以用于存储在搜索范围缓冲器508中。可使用任何合适的像素数据大小及像素图块大小。

在一些实施例中,除了执行步长搜索之外,SSE 502还执行用于供PSE 504使用的预测符中的一些预测符的高级预测符评估。也就是说,在确定当前像素组的每一像素的优胜流向量之后,SSE 502评估这些将用作下一行像素组的预测符的流向量中的任一个的匹配成本。流向量及流向量的匹配成本存储在例如先进先出缓冲器中,以供PSE 504使用。在一些实施例中,存储单个匹配成本,即流向量的匹配成本的最小值。

例如,假设2×2像素组及先前提及的实例预测符,当前像素组的底部两个像素的流向量可为用于紧接在当前像素组下方的像素组的顶部及右上方预测符。因此,SSE 502相对于将为紧接在下方的像素组的锚像素的像素来评估这两个流向量的匹配成本。此外,当前像素组的右下方像素可为在当前像素组右下方的像素组的左上方预测符。因此,SSE 502相对于将为右下方像素组的锚像素的像素来评估所述流向量的匹配成本。

图10是用于确定例如图1、2及5的计算机视觉系统的计算机视觉系统中的致密光学流图的方法的流程图。为确定致密光学流图,将参考图像及当前图像存储1000于L3存储器中。此外,在执行处理以确定致密光学流图时,将参考图像的连续行的生长窗维持1002在L2存储器中且将当前图像的连续行的生长窗也维持1004在L2存储器中。由从参考图像生长窗读取的像素形成的像素图块的滑动窗也维持在L1存储器中。使用滑动窗作为用于像素对应关系搜索的搜索窗来确定1008致密光学流图。

其它实施例

例如,已在本文中参考ADAS描述实施例。但除ADAS以外的计算机视觉应用的实施例是可能的,所述计算机视觉应用例如工业应用、机器人及无人机。

在另一实例中,已在本文中描述其中假设像素组的锚像素为左上方像素的实施例。但其中锚像素可为像素组中的另一像素的实施例是可能的。

在另一实例中,已在本文中描述其中通过相机捕获当前图像及参考图像的实施例。但其中可使用另一图像生成装置生成当前图像及参考图像的实施例是可能的。例如,图形处理器可生成场景的连续合成图像,例如以用于游戏或虚拟现实应用。

在另一实例中,在本文中已在处理依序2D像素图像的上下文中描述实施例。但其中输入是数据点的一对当前2D图及参考2D图且输出是当前2D图与参考2D图之间的每一数据点的位移的实施例是可能的。数据点的此类2D图可包含其中像素是数据点的非依序相机图像、其中温度是数据点的热图、其中压力测量值是数据点的压力图、其中占用面积是数据点的占用面积图等。

尽管可以在本文中按顺序方式呈现并且描述方法步骤,但在图式中示出及/或在本文中描述的步骤中的一或多个可同时执行,可组合,及/或可按与图中所示的及/或本文中所描述的次序不同的次序执行。因此,实施例不限于图中所示出及/或本文中所描述的步骤的具体次序。

在本说明书中,术语“耦合”及其派生词意味着间接、直接、光学及/或无线电连接。因此,如果第一装置耦合到第二装置,则例如那个连接可通过直接电连接、通过经由其它装置及连接的间接电连接、通过光学电连接及/或通过无线电连接。

对所描述的实施例的修改是可能的,且在权利要求书的范围内的其它实施例是可能的。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:视频编解码的方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类