准参数光学流估计的制作方法

文档序号:15072649发布日期:2018-08-01 00:14阅读:152来源:国知局

本发明涉及包含使用金字塔式块匹配的光学流估计。



背景技术:

光学流(或光流)是归因于光学传感器(例如,相机)与存在于图像中的对象之间的相对运动引起的图像序列中的对象的观测到的运动。术语光学流通常应用于计算机视觉领域中以并入来自图像处理和导航控制的相关技术(例如,运动检测、对象分段、接触时间信息、扩展焦点计算、照度、运动补偿编码和立体视差测量)。此类技术对汽车驾驶员辅助系统、机器人技术和应用机器视觉的其它应用尤其有用。

搜索两个图像数据阵列之间的最佳匹配贴片是在图像处理中的必需步骤。举例来说,一些立体成像系统通过在右侧图像中查找最佳匹配左侧图像中的给定二维(2d)贴片的2d贴片来计算左侧图像与右侧图像之间的视差。在另一实例中,可通过搜索体积之间最佳3d贴片匹配实现两个三维(3d)点云的对准。在另一实例中,视频压缩算法可使用匹配两个图像之间的贴片的光学流算法确定两个连续图像之间的运动。

从粗到细分辨率金字塔方法可用于光学流算法匹配。一般来说,在金字塔方法中,在比原始图像低的分辨率下执行初始搜索,并接着以一或多个较高分辨率细化初始搜索结果。搜索金字塔中的数个分辨率水平是实施相依性的。与高分辨率下的详尽搜索相比,金字塔式搜索方法的使用通常更快速并且对局部极小值具有更高容限。

基于相机的系统使用多种计算机视觉(cv)技术实施高级辅助驾驶系统(adas),其被设计成通过提供必需信息、警告和自动干预以减小事故的可能性或严重程度,以增加驾驶员的情境感知和道路安全性。政府安全规章和独立评级系统驱动adas的开发和更宽采用,其中基于相机的系统成为原始设备制造商(oem)之间的关键区别。基于相机的系统因其可靠性稳健性、支持多个应用的能力并且最重要的是支持未来越来越多的adas应用的灵活性而广泛用于adas中。cv技术表示复杂、高性能且低功率计算问题,尤其是从相机图像提取高清晰度、高密度深度(立体声)和运动(光学流)信息的低级cv技术。



技术实现要素:

描述的实例包含图像处理器,其具有实施准参数光学流测量(qp-ofm)算法的光学流逻辑,所述算法组合金字塔式块匹配(pbm)方法(其为到参数方法)与经修改卢卡斯-卡纳德(lucas-kanade,lk)方法(其为参数方法),获得大光学流(of)范围内的高精确度估计。所述pbm方法执行具有整数像素分辨率的of估计并且接着使用经修改lk方法的至少一个遍次细化pbm获得的of估计值以获得具有分数像素分辨率经修正光学流估计值。经修改lk方法的一个遍次通常提供良好的成本收益平衡,这是因为其不需要内插和数据重新提取。

描述的实例包含图像处理系统,其包含处理器和of确定逻辑,所述of确定逻辑用于量化存在于视频的第一帧(例如,查询图像)和视频的第二帧(例如,参考图像)中的特征的相对运动,提供相对于视频的两个帧的时间和空间排序图像中的至少一个。所述of确定逻辑配置所述处理器使用pbm方法执行第一帧和第二帧之间的of估计,以产生基底(最低)金字塔层级处的具有整数像素分辨率的初始of估计值,并且使用经修改lk方法细化初始of估计值以提供具有分数像素分辨率的经修正of估计值。qp-ofm算法显著简化和改进基于pbm的致密of(dof)估计算法。下文描述的实例展现关于已知dof估计算法的改进性能。

附图说明

图1是根据实例实施例的实施公开的确定和应用of的qp-ofm算法的系统的框图。

图2是示出根据实例实施例的使用公开的qp-ofm进行光学流测量的实例方法中的步骤的流程图。

图3是公开的实例qp-ofm布置的简化框图。

图4说明根据实例实施例的用于计算中央像素x的24位普查描述符(考虑其24个相邻者(5×5邻域)及其关系)的方法。

图5说明用于像素的普查签名计算中的5×5邻域像素。

图6说明实例支持窗。

图7示出包含像素组中的左上像素的4个相邻者的光学流估计的实例预测符列表。

图8提供涉及当前像素组的5个候选预测符和其中的获胜者预测符的预测符评估的说明。

图9示出围绕获胜者预测符的从粗到细搜索模式。

图10a描绘通过分担低级的计算密集型和重复性cv任务提供高可编程计算能力到硬件加速器(hwa)的实例soc。

图10b描绘如下的实例方案的实施细节:存储和处置hwa内或可编程处理器上的本地存储器中的参考和当前图片数据,这涉及使用两个层级的本地存储器的组合,其中一个存储器用于以生长窗方式存储来自视频的第一帧和来自第二帧的图片数据,且另一存储器存储来自视频的第二帧的图片数据的滑动窗。

具体实施方式

在图式中,相似参考标号用于指定类似或等效元件。一些动作或事件可与其它动作或事件以不同次序和/或同时发生。此外,实施根据本说明书的方法可能不需要一些所说明的动作或事件。

在此描述中,如本文中所使用且无另外限制条件的术语“耦合到”或“与…耦合”(等等)意图描述间接或直接电连接。举例来说,如果第一装置“耦合”到第二装置,那么连接可通过其中在路径中仅存在寄生效应的直接电连接,或通过经由包含其它装置和连接的中间项的间接电连接。对于间接耦合,中间项一般不会修改信号的信息,但是可能会调整其电流电平、电压电平和/或功率电平。

图1示出根据多个所公开实施例的确定和应用of的系统100的框图。系统100包含至少一个图像传感器106、图像处理器102和控制系统108。图像处理器102可为微处理器、数字信号处理器(dsp)或微控制器单元(mcu)。图像处理器102包含一或多个处理器和存储装置。图像传感器106可包含电荷耦合装置(ccd)、互补金属氧化物半导体(cmos)图像传感器或其它用于将光转换成电信号的光电检测器。图像传感器106可包含布置于二维阵列中的多个光电检测器。图像传感器106可定期捕获表示图像传感器106的视场的图像。举例来说,图像传感器106可每秒捕获15、30、60或任何合适数目的图像。图像传感器106可并入于数码摄像机中。一些所公开实施例例如当使用多个图像传感器106时可包含多个图像传感器106。

由图像传感器106捕获的图像可作为一或多个二进制值阵列提供到图像处理器102,其中每一二进制值可表示图像传感器106的特定光电检测器处检测到的光的强度或色彩(即,像元(像素))。图像传感器106提供到图像处理器102的每一图像可以被称作帧。图像处理器102分析或操控从图像传感器106接收的图像110以从图像110提取信息。图像处理器102包含图1中示出为“光学流”104的of确定逻辑(光学流逻辑),其分析从图像传感器106接收的图像110以测量存在于图像110中的多个元件或特征的光学流。如上文所描述,描述的图像处理器102可由hwa实施。

光学流逻辑104应用公开的qp-ofm算法,其(如上文所描述)将pbm方法与经修改lk方法组合以在大范围(即,多个不同距离值)内获得准确且精确的of估计。pbm方法以整数像素分辨率执行of估计并且接着使用经修改lk方法的至少一个遍次来细化获得的of估计值以获得具有分数像素分辨率的经修正of估计值。可使用后处理滤波器对经细化光学流估计值进行滤波以滤除可能有噪声的估计值。在下文描述的hwa实施方案中,通常仅使用一个经修改lk遍次。然而,在其它实施方案中,最佳做法通常是寻求计算复杂性与益处之间的平衡,这是因为更多反复可需要内插和从存储器重复提取像素数据。

如本文中所使用的pbm方法是指将视频的帧中的每一个转换成阶层式图像金字塔的of估计方法。图像金字塔包括多个图像层级。图像分辨率以图像层级中的每一较高者减小。对于每一图像层级以及对于第一帧中的每一像素,处理器被配置成将第二帧中的像素的位置的初始估计值确立为预定义值或使成本函数减到最小的候选位置,以及应用从使成本函数减到最小的初始估计值开始的多个依序搜索,并且确立第二帧中的像素的位置的经细化估计值。

如本文中所使用的lk方法是指bruced.lucas和takeokanade开发的微分of估计方法的经修改版本。lk方法假设光学流在考虑中的像素的局部邻域中基本上是恒定的,并且通过最小平方准则解出所述邻域中的所有像素的基础光学流方程式。通过组合来自数个附近像素的信息,lk方法可解算光学流方程式的固有多义性。

lk方法可使用以下关系,使用来自图像中的像素的邻域的梯度信息和最小平方原理解出针对所述像素定义的of方程式:

其中水平和垂直流分量分别是u和v,gx、gy是针对第一帧计算的水平和垂直空间梯度,且gt是计算的在其之间估计of的两个图像之间的时间梯度。常规lk方法在每一重复中在执行第二图像的翘曲(运动补偿)之后逐像素计算of。gx、gy是针对像素的n×n(n=3、5、7等)邻域内的所有像素定义的,且“ο”运算符定义2d向量的逐个元素相乘。如果上述方程式中的2×2矩阵是非可逆的,即如果其决定因子是零,那么其可被规则化或u和v可设置为零。

关于供所公开的qp-ofm算法使用的经修改lk方法,输入是与如上文所描述的相同的gx、gy和gt但在步进搜索过程(下文描述)期间计算以分别获得水平和垂直流分量u和v。以例如具有被指派用于存储分数部分的4位的固定点表示来表示为实数的u和v流分量。这些流值表示现有of估计值f1int(通过整数像素分辨率下的pbm方法获得)在下文描述的方法200中被称作“初始of估计值”的增量细化,其经历处理以达成方法200中的具有较高准确度与分数像素分辨率的“经修正of估计值”。u和v的值可在其与现有流估计值相加以获得最后流输出f1之前钳持于[-1,1]范围内。此运算可以方程式形式表示为:

f1=f1int+钳位((u,v),-1,1)

在一个实施方案中,可仅使用如下文所示的乘法、加法和比较的简单整数算术运算实施u和v计算,继而是固定点中的钳位运算(包含在使用转置伴随矩阵的逆矩阵计算中涉及的除法运算)。

其中

d=∑∑gxogx×∑∑gyogy-(∑∑gxogy)2

nu=-∑∑gyogy×∑∑gxogt+∑∑gxogy×∑∑gyogt

nv=∑∑gxogy×∑∑gxogt-∑∑gxogx×∑∑gyogt

以及

u和v的所有可能值可以具有4位分数部分的适当固定点表示来表示。

所公开的经修改lk方法移除上文所描述的在已知lk方法中使用的图像翘曲。假设of在局部邻域中基本上恒定且等于考虑中的像素,通过使用一个遍次移除图像翘曲步骤。显著地,这允许重复使用在步进搜索过程期间提取的像素数据以用于gt计算,这在可避免对存储器的随机存取的情况下是尤其有用的。如上文所描述,经修改lk方法也将所述计算拆分成空间梯度计算和剩余的运算的子任务。

可使用后处理滤波器(参看下文描述的图3中的后处理滤波器306)对经修正of测量值滤波以获得由图像处理器102产生的可提供到控制系统108的最后输出of估计值112。控制系统108可应用经修正of测量值112来控制系统100的运动,将运动信息呈现给系统100的用户等。举例来说,如果系统100是高级辅助驾驶系统(adas),那么控制系统108可应用经修正of测量值112基于图像处理器102检测到的交通工具和对象的相对运动确定交通工具是否应改变速度和/或方向。在一些adas实施方案中,控制系统108可至少部分地基于经修正of测量值112自主地改变交通工具速度和方向,而在其它实施例中,控制系统108可基于经修正of测量值112,将警报提供到交通工具的操作人员,指示速度和/或方向的改变可为可取的。类似地,在机器人技术和其它运动控制应用中,控制系统108可基于经修正光学流测量值112控制系统100的元件的移动(速度和/或方向)。

图2是示出根据实例实施例的使用公开的qp-ofm进行of测量的实例方法200中的步骤的流程图。在此实例中,仅在金字塔的基底层级处应用经修改lk方法。步骤201包括获取视频的第一帧(例如,参考图像)和视频的第二帧(例如,查询图像),所述第一帧和第二帧提供时间和空间排序图像中的至少一个。任选地,所存储历史流估计值或从图像速度的参数模型导出的辅助估计值也可提供为在pbm过程期间用作预测符的图像速度的先前迹象。在正常操作中,当给定的输入是两个时间排序图像时,qp-ofm算法将运动且任选地连同提供图像速度的迹象的先前/辅助流估计值一起估计为瞬时图像速度(像素运动)。

步骤202包括使用处理器实施执行步骤203和204的所存储的qp-ofm算法。步骤203包括使用pbm方法在第一帧和第二帧之间进行光学流估计以产生初始获得的具有整数像素分辨率的流估计值。pbm方法起始使用空间预测符和使成本函数值减到最小的基于步进搜索方法(下文描述)的块匹配(bm)过程在最高金字塔层级处进行光学流估计,以获得准确运动估计。这些光学流估计值接着经滤波(例如,使用2d5×5中值滤波器),适当地按比例放大并且接着在每一较低金字塔层级处依序进一步细化(再次使用空间预测符和步进搜索方法)直到基底金字塔层级。在基底层处的bm过程之后不需要对of估计值的滤波或按比例缩放。在一个实施例中,适合的成本函数是跨二进制特征描述符的汉明(hamming)距离。

在基底金字塔层级处,可更改预测符配置以包含时间预测符或辅助预测符,但步进搜索可保持相同。在基底金字塔层级处,在pbm过程完成之后,执行经修改lk步骤(下文描述的步骤204)的遍次以细化获得的流估计值,获得具有分数像素分辨率的经修正光学流估计值,从而实现精确像素运动的确定。根据另一实施例,在bm过程之后处理较高金字塔层级的同时也可应用经修改lk方法的遍次。

为了减小计算和数据带宽,代替bm处理每一像素,而是在每一金字塔层级处,bm过程可作用于2×2像素组(2×2相邻像素块)粒度,其中不同计算块(例如,预测符评估和步进搜索)可同时作用于4个像素。此方法也可应用于所有可能的像素组配置,包含1×1(=像素)、3×3、2×4等,不过实验发现2×2像素组对于所要质量和hwa效率是最佳的。在此方案中,仅针对像素组中的一个代表性像素评估预测符,以决定of的最佳估计值(获胜者预测符),所述最佳估计值接着在步进搜索过程期间针对群组中的所有像素独立进行细化。

流后处理涉及使用例如大小为5×5(高度×宽度)的2d中值滤波器(参看下文描述的图3中的流后处理滤波器306)。后处理块将of估计值(fi)用作输入并且产生经滤波of输出(f)。替代地,也可使用例如大小为9×9的伪1d可分离中值滤波器。9×9滤波器可分离成以所述次序依序应用(或可逆向)的3×9和9×3滤波器。滤波器的高度和宽度被配置成使得用于中值计算中的数个流样本(27)虽小但可提供高质量后处理。在此滤波器情况下,执行所有侧上的流场的边界像素边界扩展4像素。置信度指配块(参看下文描述的图3中的置信度指配块307)可在基于学习的框架中使用在pbm步骤期间计算的成本函数值和获得的流估计值的局部可变性以指配每一像素的置信度水平。

步骤204包括使用经修改lk方法的至少一个遍次细化pbm获得的初始流估计值,以提供具有分数像素分辨率的经修正of估计值。如上文所描述,经修改lk方法修改已知lk算法以移除常规图像翘曲步骤并且将计算步骤拆分成两组梯度计算(空间和时间)运算和剩余的运算。此lk步骤因此再次使用pbm方法提取的数据执行分数像素细化。lk步骤可使用减小的精确度梯度数据用于of细化。lk步骤也可仅使用整数算术执行包含矩阵求逆的计算任务。

如上文所描述,所述方法可任选地包含后处理滤波(参看下文描述的图3中的流后处理滤波器306,其对qp-ofm算法块304输出的流向量进行滤波)。举例来说,伪1d可分离中值滤波器可用以从估计的流向量移除脉冲噪声。

图3示出实例qp-ofm布置300的简化框图,所述qp-ofm布置包含去往of计算块302的输入310,所述of计算块包含qp-ofm算法块304,其中of计算块302提供输出312。

输入310通常是两个灰度级图像。也可使用表示为每像素一个二进制值的色度通道信息中的任一个。查询图像示出为图像1且参考图像示出为图像2,在所述图像之间通过qp-ofm方案布置测量/估计of。示出先前/辅助光学流估计值提供为其它输入。此类先前估计值时间上在当前光学流估计值之前且通常以与输入图像(图像1和图像2)的分辨率相同的分辨率提供,并且具有针对每一像素或像素组估计的100%预期密度。

图像金字塔产生块(示出为金字塔产生)304a接收包含灰度级图像(i)的输入310,其包括图像2和图像1、经编程的数个金字塔层级n、以及将用以导出高斯滤波器核心的西格玛值(sg)(例如,来自处理器的)。图像金字塔产生块304a输出图像的n层级多分辨率表示的图像金字塔,使得金字塔中的每第n图像是第(n-1)层级处的图像的水平和垂直尺寸中的二分之一的分辨率。图像金字塔产生块304a通常提供预处理。在一些情况下,如果输入图像具有尺寸w×h且图像金字塔将具有n层级,那么可在底部和右侧填补图像,使得所得图像尺寸w'×h'是2(n-1)或2(n)的倍数。经填补像素可具有值0。假设经填补图像被视为i'。

下文描述图像金字塔产生块304a的实例方法:

假设(let)pi表示第i金字塔层级中的图像。

初始化:p1=i',导出大小为5×5的2d高斯滤波器核心g

对于(for)(i=2;i<=n;i++)%,ⅰ表示在图像金字塔中的层级

使用高斯滤波器核心g对p(i-1)进行滤波以获得经滤波图像p'(i-1)

通过在两个方向上选择替代性像素p'(i-1)获得按比例缩小的图像pi

结束(end)

除金字塔产生块304a以外,qp-ofm算法块304还包含块匹配光学流估计块304b(实施pbm过程(步骤203)中涉及的块匹配、滤波和按比例缩放功能性)以及光学流估计块的基于微分技术的局部方法304c(用于实施经修改lk(步骤204))。块304b和304c从金字塔的顶部开始一次处理一个金字塔层级。块304c在一个实施例中仅针对金字塔的基底在在另一实施例中在所有层级处启用。块匹配光学流估计块304b提供具有整数像素精确度的of估计值。光学流估计块304c提供具有分数像素分辨率的经修正of估计值。可针对其中仅针对金字塔的基底启用块304c的实施例在金字塔的基底处停用块304b的滤波和按比例缩放功能性。在当在所有层级处启用块304c时的实施例中,针对金字塔的基底停用块304b的滤波和按比例缩放功能性,且针对较高层级,在(通过块304b获得的)of估计值的(通过块304c的)修正之后使用这些功能性。

如上文所描述,去往金字塔产生块304a的输入包含估计光学流所针对的两个灰度级图像(查询图像和参考图像)以及历史图像速度估计值或时间预测符(所有尺寸为w'×h'的像素)。如在图3中以虚线路径所示,时间预测符是任选的输入,且金字塔产生块304a不获得其多尺度表示。

qp-ofm算法块304输出在i==1(即,基底分辨率)的情况下包括用于下一金字塔层级(fi-1)的经适当地滤波和按比例调整的流向量或经细化流估计值(fi)的流估计值。用于高于基底层级的层级的qp-ofm算法块304输出在qp-ofm算法块304内消耗并且在基底层级处传送到流后处理块306上以及到置信度指配块307。如上文所公开,对于除基底层级以外的层级,可用简单2d中值滤波器对流进行滤波,其中流估计值分辨率增加以匹配较低层级的流估计值分辨率且流估计值以适当缩放因子按比例缩放。接着可为当在所有金字塔层级应用经修改lk的遍次时的舍入运算。对于基底层级,qp-ofm算法块304输出传送到流后处理块306上以用于通过伪1d可分离中值滤波器进行的后处理并且传送到307以用于置信度指配。

也可在qp-ofm算法填补(朝向底部和右侧)之前提供预计算处理,使得所有层级具有整数尺寸以及恰好相同(例如,0.5)的缩放因子。初始化可包括层级n的流估计值(fn)初始化为0。

下文描述由用于金字塔层级的qp-ofm算法块304b和304c提供的实例方法。所描述的过程除了二进制普查变换步骤都用于金字塔层级,但算法块304b还可通过用于查询图像和参考图像的二进制普查变换提供制备二进制像素描述符的功能性。

对于(查询图像中的所有2×2像素组)%,以光栅扫描次序进行处理

●制备预测符列表,用于像素组中的左上像素

●计算预测符的水平分量和垂直分量的中值。假设所得流向量被视为中值预测符。

●找到使参考图像中的成本函数值减到最小的最佳预测符(获胜者预测符)

●将获胜者预测符设置为当前2×2像素组中的所有4像素的当前光学流估计值对于(查询图像中的当前2×2像素组中的所有像素)

○3-1搜索:在平面的从粗到细(跳过像元3+跳过像元1)块匹配搜索中围绕使成本函数值降到最低的当前光学流估计值执行。

●在针对当前层级启用lk步骤的情况下的跳过1搜索期间

使用查询图像和运动补偿参考图像计算查询图像的水平(gx)和垂直(gy)图像梯度数据以及时间(gt)梯度。如果在跳过像元1搜索期间执行这些计算,那么lk步骤不需要从存储器提取任何数据用于运动补偿。

注意:使用灰度级像素信息而非普查变换数据计算梯度。

○经修改lk步骤(:如果针对当前层级启用lk步骤)

●使用图像梯度数据gx、gy和gt针对光学流估计值的改变求解

●水平和垂直方向上的在[-1,1]范围内的钳位改变

●更新在步进搜索过程期间通过加上在此步骤中计算的流动值获得的光学流估计值。

结束

结束

如果(i≠1)即并非基底层级

获得下一金字塔层级的流估计值

输入:当前层级的流估计值(fi)

输出:下一金字塔层级的流估计值(fi-1)

处理:

-执行对经更新流估计值fi的2d中值滤波

-按比例放大流估计值分辨率

-使用适当的缩放因子按比例缩放流动值并且舍入为最靠近的整数值否则(else)

输入:分数像素精确度下的流估计值(f1)

输出:经后处理光学流(f)

处理:

-执行对获得的流估计值f1的后滤波以获得输出流f

将f裁切为原始图像尺寸

结束

如上文所描述,of计算块302还示出为具有从qp-ofm算法块304接收未经滤波的流向量数据并且输出经滤波流向量数据的流后处理滤波器306。of计算块302还示出为具有置信度指配块307。置信度指配块307从qp-ofm算法块304接收在光学流估计过程期间产生的汉明距离(hd)成本和未经滤波流向量,并且产生置信度数据。

流后处理滤波器306示出为输出具有水平和垂直流分量的经滤波流向量数据,其提供致密of估计值输出312b。置信度数据是由置信度指配块307针对每一像素指配的置信度水平,示出为提供到置信度映射312a。致密光学流估计值312b通常在与输入图像(图像1和图像2)的分辨率相同的分辨率下提供,具有预期密度100%,每流分量每像素位分辨率为16位固定点(分别用于垂直和水平流分量的7和8整数位以及用于其两者的4分数位)。

现在描述针对多个qp-ofm算法步骤的计算细节和说明。关于金字塔产生块304a中的高斯滤波处理,可使用大小为5×5的高斯滤波器对金字塔层级图像进行滤波,使得可通过从经滤波图像丢弃交替的像素产生紧挨在上的金字塔层级图像。下文提供高斯核心求导。在2-d(x,y)中,大小为5×5的各向同性高斯核心具有以下形式:

其中sg是用以导出高斯滤波器核心的距离西格玛值,且(x,y)表示高斯核心中的滤波器系数的行和列位置。在5×5滤波核心中,可能的行和列位置是在范围[0,4]内。此方案使用sg值1.61。如此获得的滤波器系数是以固定点表示的实数。关于(例如,由单独fir滤波器实施的)滤波过程,在任何金字塔层级“n”处,通过使图像pn与上述章节中定义的高斯掩模g卷积获得经高斯滤波图像p'n。

p′n=g*pn

在卷积过程期间,通过执行各侧上的2像素的边界扩展对边界像素进行滤波。

基于二进制特征的从粗到细块匹配光学流估计块304b也可执行二进制普查变换。在图4中说明用于计算中央像素的24位普查描述符(考虑其24个相邻者(5×5邻域)及其与之的关系)的方法。在对应于邻域像素的位具有大于或等于像素x的灰度级值的情况下,将所述位设置成1,否则将所述位设置成0。图5说明在像素的普查签名计算中使用的5×5邻域像素。在计算时,使用边界像素边界扩展技术的普查变换来替换未命中像素。阴影区中间的正方形框是计算普查变换所针对的中央像素。

关于成本函数,如上文所描述,pbm方法在预测符评估和步进搜索期间使用像素描述的二进制普查变换和汉明距离作为成本函数。在评估经预测/搜索位置处的成本函数值时,考虑围绕查询图像中的当前像素(参看下文针对支持窗的说明描述的图6)的9×9正方形邻域(支持窗)和参考图像中的围绕经预测/搜索位置的相同大小的邻域。这些邻域充当逐位进行比较的查询数据和参考数据以找到不和谐性。为进行此操作,查询和参考数据中的81像素的二进制签名级联中两个二进制向量。如果qv和rv表示这些向量,那么其之间的二进制汉明距离计算为:

其中定义两个二进制向量之间的逐位异或运算。位计数运算计算在逐位异或运算之后设置为一的位数,且输出hd是两个数据之间的汉明距离。还可使用预测符列表制备。预测符是空间、时间相邻者的现有of估计值,其可用作用于像素的基于块匹配搜索的of估计过程的初始of估计值。of估计算法可使用每像素组5个不同预测符。这些包含像素组中的左上像素的4个相邻者的of估计值(在图7中标记)。这些是当以光栅扫描次序从左到右且从上到下穿越图像时在左上像素之前的像素。

考虑到hwa的管线化设计,左侧预测符预期来自像素组中的左上像素的左侧相邻者,其中在较高金字塔层级中导出且针对当前金字塔层级适当地按比例缩放的像素的of估计值是预测符值。此预测符被称为金字塔的左侧预测符。在替代设计中,左侧预测符值可来自其of估计值在当前金字塔层级中已经细化并且处于左上像素左侧某一像素距离处的像素。此预测符可被称作延迟的左侧预测符。第五预测符是当前像素的现有of估计值,其在较高金字塔层级中导出并且针对当前金字塔层级适当地按比例缩放。在基底金字塔层级处,金字塔的左侧/延迟的左侧预测符被停用并且在被启用时置换成时间预测符。在下表1中概述预测符使用率,且在图7中描绘提供顶部和左侧空间预测符的相对像素位置(相对于像素组中的左上位置)。

表1:根据金字塔层级的实例预测符使用率的概述

时间预测符可处于分数像元分辨率,其四舍五入到最靠近的整数位置。在对应像素的of估计值的细化的步进搜索期间或从较高金字塔层级估计值获得其它空间预测符值。其通常具有整数像素分辨率但在每一金字塔层级处使用lk步骤的情况下,其可具有分数像素精确度并且应四舍五入到最靠近的整数。顶部预测符通常不可用于图片的顶部行,且左上和左侧预测符不可用于左侧边界像素,且右上预测符不可用在右侧边界上。在此情境下,不可用预测符应通常置换成金字塔的同一位置处预测符或设置为(0,0)值。当为此目的在最高金字塔层级处使用金字塔的金字塔同一位置处预测符时,其取值(0,0)。

可对中值预测符进行计算。通过独立查找所选择的预测符的水平和垂直分量的中值来计算将在搜索过程中使用的中值预测符。

关于最佳预测符的选择,考虑围绕像素组中的左上像素的实例9×9支持窗,在参考图像中的所有预测位置和被选择为获胜者预测符产生最小成本函数值的预测符处估计成本函数值。在成本函数值对于多于一个预测的位置为相同的情况下,评估次序中的导致最小值的第一预测符被选择为获胜者预测符。实例评估次序是1)金字塔的当前,2)金字塔的左侧/延迟的左侧/时间,3)右上,4)顶部和5)左上。用于右上、顶部、左上预测符的预测符评估可与搜索顶部行中的对应像素位置的步骤合并以使从存储器的数据读取降到最低。

图8提供涉及用于当前像素组的5个候选预测符和其中的获胜者预测符的预测符评估的说明。获胜者预测符现在设置为像素组中的所有像素的当前of估计值并且通过下文中解释的步进搜索过程经进一步细化。

在步进搜索过程期间,可执行平面内从粗到细搜索以细化当前of估计值,使得成本函数值减到最少。在步进搜索期间使用的成本函数定义为hd+mvcost。其中mvcost定义为运动平滑度因子(作为样本值,λ=24)和搜索点与中值预测符之间的向量距离(城市街区或水平和垂直分量的绝对差总和)的乘积。以特定模式执行搜索,使得在提供更宽细化范围的同时使计算复杂性降到最低。

在阶段1(跳过3)中,执行以获胜者预测符为位置中心的跨9位置(3×3栅格)跳过3搜索。搜索点是在距当前光学流估计值或获胜者预测符位置的3像素距离处。在说明3-1步进搜索过程和从粗到细搜索路径的图8中,由像素组中的左上像素的虚线图案像素描绘这9个位置。以光栅扫描次序从栅格中的左上位置开始评估九个候选位置。在成本函数值对于多于一个搜索位置为相同的情况下,选择评估次序中的产生最小值的第一搜索位置作为所述位置并且相应地估计of。

在阶段2(跳过1)中,通过跨以随机填充图案标记的3×3邻域中的9个点的搜索(跳过1)细化在前一阶段中获得的of估计值。阶段2的获胜者给出围绕获胜者预测符的最佳整数像素运动估计值。在成本函数值对于多于一个搜索位置为相同的情况下,选择评估次序(光栅扫描)中的产生最小值的第一搜索位置作为获胜者位置并且相应地更新of估计值。

关于搜索范围限制,在当将评估成本函数值所处的候选位置(在预测符评估或步进搜索期间)在大于被称为水平(191像素)或垂直(63像素)方向上的搜索范围的阈值的距离处时的任何金字塔层级处,可忽略对应的搜索位置。如果在预测符搜索步骤期间的所有候选位置在大于搜索范围的距离处,那么当前光学流估计值可设置为(0,0)。此可通过将金字塔的同一位置处预测符值设置为(0,0)来实现。

在图9中说明围绕获胜者预测符的从粗到细搜索模式。图9说明针对像素组中的两个顶部像素的3-1搜索的实例搜索路径,针对像素组中的一个左上像素的经细化of,以及步进搜索块提供的细化范围(不同的图案化像素描绘来自针对左上像素的步进搜索细化的可能结果)。图9还说明在步进搜索过程的开始处针对两个像素的of估计值可为相同的,但在步进搜索过程期间,其of估计值可发散。

关于针对像素组的下部行的预测符的预评估,在步进搜索过程期间的任何像素处,对于像素将顶部预测符值中的一个提供给的像素组,使用已经提取的数据评估预测的位置(在跳过1搜索之后的像素的of)并存储成本以便后续使用。因此,在预测符选择步骤期间不必重复数据读取。

关于当针对层级启用lk步骤时在lk步骤中使用的空间和时间梯度的计算,在步进搜索过程期间针对所有像素执行这些计算,以避免lk步骤块进行的重复数据读取。在此经修改lk步骤中,针对查询图像中的当前像素的3×3邻域中的所有像素位置计算(使用灰度级像素值)空间和时间图像梯度。

使用中心差分算子(掩模=[-101])计算水平空间梯度(gx)和垂直空间梯度(gy),因此需要当前像素的5×5邻域内的像素。在图像边界处,使用边界扩展(视需要为2或1像素)计算空间梯度。

考虑查询图像中的当前像素的邻域和估计其在参考图像中已移动到的位置的相同大小的邻域(这是在跳过一个搜索期间获得的获胜者位置),计算3×3邻域中的所有像素的时间图像梯度(gt)。通过从查询图像中的对应像素值减去参考图像像素值执行逐像素gt计算。在图像边界处,使用边界扩展(1像素)计算梯度。

对于12位输入图像,空间和时间梯度值具有13位精确度。此精确度通过执行2位右移并且夹持介于-512与511之间的后移值减少到10位。

上文所描述的pbm方法估计整数像素分辨率下的像素层级of,且此估计值通常接近于实际像素运动。然而,对此估计值进行进一步细化以更准确匹配所述实际像素运动。如上文所描述,为了细化产生pbm的初始of估计值以提供分数像素准确度(“经修正of估计值”),qp-ofm算法使用经修改lk方法的至少一个遍次。

关于流估计值的2d中值滤波,在更新除基底金字塔层级以外的金字塔层级处的所有流估计值之后,可使用大小为5×5的2d中值滤波器对所述流估计值进行滤波。在图像边界处,通常使用边界扩展(2像素)计算中值值。关于流重新取样,后2d中值滤波,对于除基底层级以外的所有金字塔层级,通过使用最靠近的相邻者内插按比例放大流估计值分辨率并且将流向量按比例缩放分辨率放大因子(2),获得下一下部金字塔层级的流估计值。

关于流后处理,如果用户通过配置启用,那么qp-ofm算法中的流后处理涉及使用大小例如为5×5的2d中值滤波器。后处理块306取来自qp-ofm算法块304的光学流估计值(fi)作为输入并且产生示出为经滤波流向量数据的经滤波光学流输出(f)。对于对边界像素进行滤波,执行使所有侧上的流场边界扩展2像素的操作。替代地,也可使用大小为9×9(高度×宽度)的伪1d可分离中值滤波器。9×9滤波器分离成依所述或相反次序依序应用的3×9和9×3滤波器。分离的滤波器的高度和宽度被配置成使得中值计算中使用的数个流样本虽又但可提供高质量后处理。在对边界像素进行滤波的此情况下,执行使所有侧上的流场边界扩展4像素的操作。

归因于与一些常规方法(例如lk和霍恩舒可(hornschunck(hns)))相比相对较低的计算要求,与先前可能的相比可实时地达成较高分辨率和帧速率。

所公开的qp-ofm算法在其它解决方案(例如,bergen、anandan、hanna和hingorani公开的基于阶层式模型的运动估计方法)中的一些其它特定差异包含:(a)使用预测符和运动平滑度因子的从粗到细搜索的形式;(b)使用(任选的)历史图像速度估计改进光学流估计准确度;(c)通过选择处理的像素组(2×2像素块)次序并且使用针对整个像素组的同一组预测符减小每像素的预测符评估要求;(d)通过在针对上述像素的步进搜索细化期间的右上、顶部和左上预测符的预评估减小针对预测符评估的随机存储器存取;(e)通过使用与lk步骤组合的块匹配方法从所述算法完全移除内插以估计分数像素运动,并且达成计算要求的大节省;(f)在块匹配过程期间预计算空间梯度和时间梯度;(g)使用伪1d可分离滤波器;和(h)有能力通过改变数个预测符和搜索分辨率平衡计算和光学流准确度要求。

所公开的qp-ofm算法的优点包含:(a)仅使用计算上简单的优化函数“汉明距离”(在支持窗内在二进制特征描述符之间)执行搜索;(b)通过使用像素群组的共同组的预测符以使对存储器的随机存取减到最少,使用用于光学流估计的非穷尽性从粗到细搜索策略的模式以使计算减到最少,从而节省宝贵资源;(c)预评估顶部预测符,节省存储器到计算块数据带宽(提取用于成本函数评估的参考像素数据),并且因此使设计复杂性减到最小;(d)预计算在经修改lk步骤中使用的空间梯度和时间梯度,进一步节省存储器块数据带宽(例如,提取用于时间梯度计算的参考像素数据),并且因此使设计复杂性减到最小;(e)作为设计复杂性减小和ddr带宽减小(下文描述)的部分,两个层级的局部存储器可以与l2一起使用以用生长窗方式存储当前和参考图片数据,并与l1一起使用以存储参考图片数据的滑动窗以在所希望的范围内存储启用块匹配搜索和lk步骤所需的像素;(f)通过组合参数(pbm)与非参数(lk)方法来定义新算法,移除分数像素运动估计所需的多个内插运算,这是显著优于现有算法的优点;和(g)甚至在lk步骤中涉及的运算涉及整数算术且因此仅需要恒定数目个乘法和加法/减法运算实现非常精确的分数像素运动估计的计算。

公开的qp-ofm算法可实施为片上系统(soc)解决方案,其通过与hwa分担低级的计算密集型且重复型cv任务,提供较高可编程计算能力。形成基于相机的adas的基础构建块的of技术处理针对每个帧的大量像素数据以产生公认为用于hwa设计的良好候选的高层级信息。

图10a描绘形成于具有半导体表面(例如,硅衬底)的衬底1005(芯片)上的实例soc1000,其通过与hwa1015分担低级的计算密集型且重复型cv任务,提供高可编程计算能力。soc1000包含执行通用计算机视觉以及信号处理和控制任务的通用处理器(gpp)1010。hwa1015执行低级cv任务,例如of和立体视差测量。示出为dsp1020的另一处理器执行高级视觉和信号处理任务,例如目标检测、场景理解和重构,且系统外围设备块1030包含程序和数据存储装置1030a。系统外围设备1030与传感器、外围设备和通信装置接口连接。示出为衬底105上的1022的互连件(例如,一或多个互连金属层级)将gpp1010、hwa1015和dsp1020耦合到衬底1005上的系统外围设备块1030。

图10b描绘将参考和当前图片数据存储于示出为hwa(例如图10a中示出的hwa1015)内的层级1本地存储器(l1)和层级2本地存储器(l2)的本地存储器中的实例方案1090的实施细节。此实施方案目标定为使数据从存储器(例如,随机存取存储器(ram))到实施of逻辑的hwa的移动减到最少。在此方案1090中,用以允许针对查询图像1050中的所有像素组的of估计过程的正确起作用的查询和参考图片数据两者以其仅从存储器(例如,ram)提取一次的方式提取和存储。如果查询图像1050和参考图像1060是金字塔层级图像,在所述查询图像和所述参考图像之间正在估计of,且hwa正执行在计算像素组1070的of时涉及的计算任务,那么图10b说明图像像素数据需要处于本地存储器中的程度。在图10b中,查询图像简称为qi且参考图像简称为ri。

考虑使用2×2的像素组大小、9×9的块匹配支持窗和用以计算普查签名的5×5的邻域大小的一实施例,可用于光学流计算需要的大小的查询图像数据是围绕像素组位置1070的14×14邻域1056。类似地,在评估预测符或步进搜索位置中的每一个时,需要来自围绕所述位置的13×13邻域的像素数据。此外,考虑水平方向上的±191像素和垂直方向上的±63像素的搜索范围,需要围绕像素组位置1070的像素块1066中的396×140像素的矩形区的区以及视需要的经修改lk计算来评估所有可能的“有效”预测的位置和步进搜索位置。当整个的像素块1066不在图片边界内时,需要搜索范围限制的适当逻辑(评估的位置必须在搜索范围和图片边界内)。当像素块1056和围绕搜索位置的13×13邻域不含于图片边界内时,应用适当边界扩展逻辑。

由于像素组的处理次序是依光栅扫描(即,从左到右和从上到下),因此实际上,像素块1056和1066以相同图案跨图像滑动。考虑这些区中的数据存取的要求和随机性,有利的是将此数据保持在hwa的内部本地存储器中。但如果仅滑动像素块存储在本地存储器中,那么在处理例如像素组位置1075处的像素组数据时,需要从存储器(例如,ram)提取围绕所述位置的类似于像素块1056或1066的整个块,结果是重复读取多个像素,大量增加带宽要求,并且计算资源还有可能在本地存储器填充有所需的数据时必须保持空闲。

对于仅提取像素数据一次并且跨相邻像素组和像素组行对其重复使用,有可能克服这些限制并且减小带宽要求。在这点上,处理像素组位置1070中的所有像素组所需的整个14像素行1053的查询图像数据可提取到片上本地存储器的分区中,且hwa可从此处存取所需组的14×14像素数据。当针对像素组位置1075的处理开始时,可丢弃像素数据1052,来自存储器块1053的像素数据的剩余部分可存储(保持)到本地存储器中,且额外像素数据1054提取到本地存储器中。类似地,可在处理像素组位置1070中的像素组时将物理存储器块1063上的140参考图像像素行存储在片上本地存储器的另一分区中,且从此处提取到更接近于hwa的另一存储器中的滑动像素块1066允许对数据的更快速接取。

此外,类似于针对查询图像数据进行的存储器管理,当针对像素组位置1075的处理开始时,可丢弃参考图像数据1062,且来自物理存储器块1063的数据的剩余部分可保持到本地存储器中且额外像素数据1064提取到本地存储器中以用于所述行中的像素组的其余部分的处理。将整行的像素数据存储在本地存储器中的如1053和1063的物理存储器块中的方式可被称作生长窗,且存储如1066的滑动像素块的方式被称作滑动窗。在一个实施方案中,用以存储如1053、1063的像素数据的生长窗和如1066的滑动像素块的本地存储器可为物理存储器块的逻辑分区,在另一实施方案中,其可存储在多于一个物理存储器块中,例如来自存储块1053和1063的像素数据可存储在l2存储器中,且对应于滑动像素块1066的数据可存储在l1存储器中。在另一实施例中,当使用处理器实施of逻辑时,可使用类似多层本地存储器架构和图片数据管理方案。

所公开的of估计的应用包含求解adas任务(例如移动对象分段、对象跟踪、接触时间(碰撞)估计、深度估计和场景理解)。与已知dof估计算法相比,公开的of估计实现改进的性能adas应用,例如障碍检测和防撞自动紧急制动。

与基于全pbm的dof算法相比,公开的实例qp-ofm算法评估每像素仅约24个搜索位置,不使用内插,且计算每像素仅约1.33普查变换。这表示当每秒处理6000万像素时的显著计算节约,这可通过使用经修改lk块添加of估计值的计算的一部分来实现。qp-ofm算法通过将功能块的计算运算拆分成逻辑子集并且将不同子块的运算的子集组合成一集合使得其可重复使用被提取用于运算的像素数据,进一步简化hwa设计。此类型的的设计的一个实例是在顶部像素组的步进搜索运算期间预评估像素组的顶部预测符。另一实例是在步进搜索过程期间供lk步骤使用的空间和时间梯度的预计算。与针对公开的qp-ofm算法的美国专利申请公开案第2015/0365696号中所公开的算法相比,不同功能块的计算任务的此类重新封装已经引起sl2存储器复杂性的几乎6倍减小。

在所描述的实施例中可能进行修改,且其它实施例在权利要求的范围内为可能的。

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