首页> 中国专利> 一种基于误差分布式多层网格的快速光流场计算方法

一种基于误差分布式多层网格的快速光流场计算方法

摘要

本发明属于机器视觉领域,公开了一种基于误差分布式多层网格的快速光流场计算方法,包括:步骤一,输入图像,构建线性方程Ax=f;步骤二,建立多层图像金字塔;步骤三,进行前优化,消除高频分量;步骤四,进行残差传递,消除低频分量;步骤五,重复步骤三、四,直至残差传递至最粗层;步骤七,从最粗层开始进行误差回传;步骤八,进行细网格误差校正;步骤九,进行后优化迭代,提高解的稳定性;步骤十,重复步骤七~九,直至残差传递至最细层。本发明所述的方法是一种加速方程优化求解的有效方法,高频误差收敛很快,能够显著提高视觉光流场的计算速度,与变分法相比,该方法的收敛速度能够提高到3.5倍以上。

著录项

  • 公开/公告号CN103247058A

    专利类型发明专利

  • 公开/公告日2013-08-14

    原文格式PDF

  • 申请/专利权人 北京工业大学;

    申请/专利号CN201310174158.6

  • 申请日2013-05-13

  • 分类号G06T7/20(20060101);

  • 代理机构11203 北京思海天达知识产权代理有限公司;

  • 代理人张慧

  • 地址 100124 北京市朝阳区平乐园100号

  • 入库时间 2024-02-19 20:03:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-08-19

    授权

    授权

  • 2013-09-11

    实质审查的生效 IPC(主分类):G06T7/20 申请日:20130513

    实质审查的生效

  • 2013-08-14

    公开

    公开

说明书

技术领域

本发明属于机器视觉领域,涉及一种基于误差分布式多层网格的快速光流场计算方法。

背景技术

在视觉运动分析理论中,当相机与场景目标间有相对运动时所观察到的图像亮度模式运 动称之为光流(optical flow)。由于序列视频图像之间的光流矢量场表达了图像的变化,能够定 量地描述帧间同名像点之间的匹配关系,并给出像面偏移量,因此为观察者提供了关于目标 的运动及结构信息。

变分法是求解光流的主流方法。其指导思想是在梯度平滑和数据保真的意义上构建能量 泛函,重点通过求解最优化能量函数的欧拉-拉格朗日方程(偏微分方程)得到致密的光流矢量 场。变分光流的优势在于,模型的通用性好,求解的精确度高,且光流场致密。在变分框架 下,Horn和Schunck提出的方法可以根据不同的假设条件得到不同的光流计算模型,其能量 泛函模型包括平滑项和数据项,可解析描述为:

minu{Ωα(|u|2+|v|2)+Ω(I1(x+u(x))-I0(x))2}---(1)

式中,I0、I1分别表示摄像机采集的相邻两帧图像,x=(x,y)T表示图像上的某个像点, 用u(x)=(u(x),v(x))T表示该点位置的光流矢量,其中u(x)和v(x)分别为该矢量的水平和垂直分 量。符号▽为梯度算子,Ω表示成像平面。前面的积分项为平滑项,后面的积分项为数据项, α为调节二者权重的常系数。

将上式灰度守恒项I1(x+u(x))-I0(x)进行泰勒展开,得到:

I1(x+u(x))-I0(x)=Ixu+Iyv+It           (2)

式中,x、y分别表示图像I的水平与垂直分量,t表示时间。右下角下标表示相应的偏 导数,即Ix=Ix,Iy=Iy,It=It·

将式(2)带入式(1),上述能量泛函转换为:

minu{Ω(|u|2+|v|2)+λΩ(Ixu+Iyv+It)2}

利用变分方法,得到其相对应的欧拉-拉格朗日方程为:

Ix2·u+IxIy·v-αΔu=-IxItIxIy·u+Iy2·v-αΔv=-IyIt---(3)

式中,u和v分别为光流矢量的水平和垂直分量,符号Δ表示拉普拉斯算子。该方程组 离散化后,若用传统的数值求解法,如Gauss–Seidel,SOR等方法需要迭代数千次才能求得 较理想的结果,因此算法的实时性较差。

在传统数值迭代算法中,分析误差的收敛过程可以发现,高频误差分量在迭代过程中迅 速衰减,而处在低频的误差分量却衰减缓慢。因此,可用一系列分辨率不同的多层网格来快 速求解同一数值问题。这是因为,在细网格上利用较少的迭代次数即可消除高频误差;遗留 的低频误差相对于粗网格转变为高频误差,将映射至较粗的网格上,可继续在粗网格上利用 较少的迭代次数消除这部分低频误差,已达到加速收敛的目的。通常设定多层网格,将误差 层层传递,实现误差的分布式估计。在具体实现时,需将式(3)转换为线性方程组。将式(3) 稍加变形,可得到如下的形式:

β(x)=f                          (4)

其中:

β=Ix2IxIyIxIyIy2+-αΔ00-αΔ

f=-IxIt-IyIt

x=uv

可见,函数β中不仅包含常系数,还包含非线性的拉普拉斯算子由此导致 光流场的计算不能直接应用多层网格算法求解。

发明内容

根据光流计算方法中存在的上述问题,本发明提出了一种基于误差分布式多层网格的快 速光流场计算方法,可以加速光流迭代计算的收敛速度,提高计算机视觉系统的实时性。

多层网格是一种加速方程优化求解的有效方法。其中,构造方程Ax=f是首要的一步。 由于在光流方程(4)中,函数β中含有非线性的拉普拉斯算子,因此本发明将函数β转化为不 含算子的系数矩阵A,以便在多层网格算法框架下进行求解。

一种基于误差分布式多层网格的快速光流场计算方法,其特征在于包括如下步骤:

步骤一,输入图像,构建线性方程Ax=f,方法如下:

(1)计算时空梯度张量矩阵,将待解方程组离散化;

假设在某一帧图像平面上,(i,j)表示第i行第j列像素点的位置,ui,j和vi,j分别表示该 点在相邻帧间发生的横向x轴和纵向y轴上的位移场。计算图像的空间偏导数fx,fy以及时间 偏导数ft,可得到图像中每个像素的时空梯度张量J矩阵:

J=fxfxfxfyfxftfyfxfyfyfyftftfxftfyftft=J11J12J13J21J22J23J31J32J33---(5)

若用[J]i,j表示J矩阵在像素点(i,j)处的值,用h表示空间步长,则欧拉-拉格朗日方程(式 (3))可离散为:

[J11]i,jui,j+[J12]i,jvi,j-αh2(ui+1,j+ui-1,j+ui,j+1+ui,j-1-4ui,j)=-[J13]i,j---(6)

[J12]i,jui,j+[J22]i,jvi,j-αh2(vi+1,j+vi-1,j+vi,j+1+vi,j-1-4vi,j)=-[J23]i,j---(7)

(2)将差分方程(6)转化成线性常系数方程组A1x=f1

化简方程(6),得到求解区域D内的差分方程组:

(1+h24α[J11]i,j)ui,j-14(ui+1,j+ui-1,j+ui,j+1+ui,j-1)+h24α[J12]vi,j=-h24α[J13]i,j

假设图像总共有N+1行,除去第零行和第N行,第一列各个像素的差分方程组有如下形 式:

1+h24α[J11]11-140···000-141+h24α[J11]21-14···000·····················000···-141+h24α[J11](N-2)1-14000···0-141+h24α[J11](N-1)1u11u21···u(N-1)1

-1410···001···0············00···1u12u22···u(N-1)2+h24α[J21]110···00h24α[J21]21···0············00···h24α[J21](N-1)1v11v21···v(N-1)1

=-h24α[J13]11+14g01+14g10-h24α[J13]21+14g20···h24α[J13](N-1)1+14gN1+14g(N-1)0=b1---(8)

式中,gij表示求解区域D边界上的元素ui,即gij=uij

若引入光流分量uij和vij上的列向量:

ui=uliu2i···u(N-1)i,vi=vliv2i···v(N-1)i

且令:

[Jmn]i=[Jmn]li0···00[Jmn]2i···0············00···[Jmn](N-1)i---(9)

对于像素点(m,n)处的J矩阵元素的Jmn,式(9)中矩阵[Jmn]i相当于N-1阶的单位阵与Jmn第i列这一列向量的乘积。因此,第一列各个像素的差分方程组(8)可化为:

(G+h24α[J11]1)u1-14Iu2+h24α[J21]1v1=b1

式中,I为N-1阶的单位阵,b1为式(6)中定义的列向量,G为下面的N-1阶矩阵:

G=1-140···000-141-14···000·····················000···-141-14000···0-141

同理,第二列各个像素的差分方程为:

-14Iu1+(G+h24α[J11]2)u2-14Iu3+h24α[J21]2v2=b2

式中:

b2=-h24α[J13]12+14g02-h24α[J13]22······-h24α[J13](N-1)2+14gN2

将图像所有列均进行转化,则方程组可以写为A1x=f1的形式,式中:

A1=G+h24α[J11]114I0···000h24α[J21]10···0014IG+h24α[J11]214I···0000h24α[J21]2···00····································000···14IG+h24α[J11]N-214I00···h24α[J21]N-20000···014IG+h24α[J11]N-100···0h24α[J21]N-1

x=u1u2···uN-1v1v2···vN-1f1=b1b2···bN-1

(3)将差分方程(7)转化成线性常系数方程组A2x=f2

(4)由A1x=f1与A2x=f2共同构成方程组:

Ax=f                    (10)

步骤二,建立多层图像金字塔;

多层图像金字塔的示意图如图2所示。最上面的一层图像为原分辨率图像,下面的各层 图像表示逐层缩小的降分辩率图像。由于像素本身即为均匀离散化的,因此可以将多层图像 看做多层网格。

通常,图像的尺寸(长和宽)介于300-800之间。按照设定的比例因子η(0.5<η<0.95) 将原分辨率图像逐层缩小,并将尺寸取整,得到多层图像金字塔。一般地,层数N=4~5层。 每层光流的初值设置为零。

步骤三,进行前优化,消除高频分量;

在当前层i(i=1,2,…,N-1),以零矩阵为光流初值对细网格方程迭代m次,以消除高 频分量。设xi为初值,得到近似估计值记为:

xi=Relaxm(xi,Ai,ri)

式中,Relaxm表示Gauss-Seidel迭代过程,m为设定的迭代次数。

Ai由式(10)确定;当i=1时,r由式(10)确定,即r1=f。否则,r等于上一层传递至本 层的残差。本层相应的残差更新为:

ri=Aixi-fi

步骤四,进行残差传递,消除低频分量;

前优化过程旨在消除高频误差分量,而遗留误差主要为低频分量。因此,将残差传递至 粗网格上,以消除低频分量。限制到粗网格上的余量ri+1为:

ri+1=Iii+1ri

式中,为细网格至粗网格上的映射算子。

步骤五,当i=1~N-1时,重复步骤三、四,直至残差传递至最粗层;

步骤六,求解粗网格上的方程组:

ANeN=rN

式中,eN为最粗层上精确求解的光流误差。

通过矩阵运算得到:

eN=(AN)-1rN

步骤七,从最粗层(j=N)开始进行误差回传;

当前层j,将求得的误差校正量回传到上一层较细网格j-1上,即:

ej-1=Ijj-1ej

式中,为粗网格至细网格上的映射算子。

步骤八,进行细网格误差校正;

将计算的初始值加上由粗网格传回的误差,得到细网格校正后的解即:

x^j-1=x^j-1+ej-1

步骤九,进行后优化迭代,提高解的稳定性;

细网格校正之后,以校正后的解为初值,执行后优化迭代n次,得到更新后的校正值其表达式为:

xj-1new=Relaxn(x^j-1,Aj-1,fj-1)

步骤十,当j=N,N-1,…,2时,重复步骤七~九,直至残差传递至最细层。

与现有技术相比,本发明具有以下有益效果:

本发明将光流求解方程按列展开,将其化为线性方程组的形式,使得光流的复杂计算过 程能够通过线性多层网格算法加速实现。其次,采用了不同分辨率的多层网格,将不同频率 的误差分量分布在不同的网格上,使得误差相对于本层网格成为高频误差。由于高频误差收 敛的很快,因而该方法能够显著提高视觉光流场的计算速度,与变分法相比,该方法的收敛 速度能够提高到3.5倍以上。

附图说明

图1为本发明所涉及方法的流程图;

图2为多层图像金字塔示意图;

图3为本发明应用实例的第一组测试图像RubberWhale;

图4为本发明应用实例的第一组测试图像。

具体实施方式

下面结合附图和具体实施方式对本发明做进一步说明。

本发明的实施依托P3800M主频、512M内存及以上配置的微机一台,做为硬件设备平 台。运行环境为Windows XP操作系统和Matlab软件平台。

本实施方式的具体过程为,首先根据待求解的光流模型,构造线性方程组Ax=f。然后建 立4~5层图像金字塔,在每一层分别进行优化迭代,并将迭代残差逐层映射到下一层更粗的 网格上。在最粗层,求解最粗网格上的方程组,得到精确的误差估计。此后,沿相反方向回 传误差,在较细的网格上逐层进行误差校正。图1是本发明所涉及方法的流程图,具体包括 以下步骤:

步骤一,输入图像,构建线性方程Ax=f;

步骤二,建立多层图像金字塔;

步骤三,进行前优化,消除高频分量;

步骤四,进行残差传递,消除低频分量;

步骤五,当i=1~N-1,重复步骤三、四,直至残差传递至最粗层;

步骤六,求解粗网格上的方程组:ANeN=rN

步骤七,从最粗层(j=N)开始进行误差回传;

步骤八,进行细网格误差校正;

步骤九,进行后优化迭代,提高解的稳定性;

步骤十,当j=N,N-1,…,2时,重复步骤七~九,直至残差传递至最细层。

下面给出本发明的一个应用实例。

选择两组测试图像对本发明提出的基于误差分布式多层网格的快速光流场算法进行验 证。一组是国际上广泛采用的Middlebury标准库中的一对测试图像RubberWhale,如图3所 示;另一组是Wedel等人在他们发表的学术论文“An improved algorithm for TV-L1optical flow” 中采用的一对测试图像,如图4所示。

实验时,分别采用传统变分算法和本发明提出的基于误差分布式多层网格的快速光流场 算法计算每组图像对之间的光流场。通过软件统计两种方法的运行时间,实验结果如表1所 示。表1中,实验一采用图3所示图像,实验二采用图4所示图像。由表1可知,基于误差 分布式多层网格的快速光流场算法相比传统变分算法的运算时间大大缩短,两个实验的收敛 速度均提高到3.5倍以上,显著提高了计算效率。

表1传统变分算法与本发明所述方法运行时间的对比

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号