《基于Zynq的光流法软硬件协同设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Zynq的光流法软硬件协同设计与实现.docx(4页珍藏版)》请在第一文库网上搜索。
1、基于Zynq的光流法软硬件协同设计与实现本项目采用的光流算法是基于HOrn-SChUnCk5的模型,与1UCaS-Kanade2光流算法相比,它算出的光流更稠密,能够精确到每一个像素点;但是它因需要求解欧拉-拉格朗日方程需要成大量的迭代,因此计算光流的时间相当耗时,比如在Zedboard的单核ARM上处理640x480的图片序列需要24.14s才能完成,这表明在传统单架构的燧式平台上很难满足光流场实时计算的要求。1. 基于Horn-Schunck模型的光流算法1.1 光流的约束条件光流15wxg?ux,vx,ht)zz的假设条件认为图像序列,在时间t15的某一像素点与在时间15t+1”t+1的
2、这一像素点的偏移量15(x+u,y+v)”保持不变,即。这就是灰度值守恒假设,通过Tay1Or展开,就能得到光流的约束条件(OFC):,其中下标表示图像的梯度。1. 2Horn-Schunck模型1981年,HOrn和SChUnCk根据同一个运动物体的光流场具有连续、平滑的特点,提出一个附加约束条件,将光流场的整体平滑约束转换为一个变分的问题。它的能量方程如下:其中数据项表示灰度值守恒约束,平滑项表示光流平滑约束。2. 3Eu1er-1agrange方程根据I1orn-Schunck能量方程,可以推导出离散的欧拉-拉格朗日方程如下:(均M+(Zy)1vi+QJJ-(弘),+嫡M=0其中,表示图
3、像像素点的坐标,表示一个像素点的上下左右四个方向的相邻的像素点,当然,在图像的边界会少于四个元素。2. 4超松弛迭代(SOR)根据上面的欧拉-拉格朗日方程,不难推到出迭代方程。这里选用收敛速度最快的超松弛算法(SOR),光流的初始值是,迭代方程如下:U-=(iM+J-垮F垮中”碟+词)ZjeA1a)Uj31+5(4)i=(1-w)v?A1B”e-(i)u)e*(NOa评+7(y,)一,-IrMi其中,W是迭代的权重因子,k是迭代的次数,是光流的计算的权值,表示第个像素点的上和左的相邻像素点,表示第个像素点的下和右的相邻像素点。2工作流程介绍根据上面的理论分析,可以把光流法的计算划分为四个阶段:
4、预处理阶段(P1)、梯度计算阶段(P2)、运动模型构造阶段(P3)和迭代阶段(P5),如图2所示。2.1 预处理阶段(P1)这一阶段是平滑处理的图像序列,它的作用是用来减少图像噪音和外部的影响,通常用卷积来实现的。这一阶段是一个通用的图像操作。2.2 梯度计算阶段(P2)这一阶段是用来计算平滑好的图像的梯度,包括水平梯度、垂直梯度和时间梯度。计算梯度通常也是通过卷积来实现的。2.3 运动模型构造阶段(P3)这一阶段是根据计算出来的梯度来构造运动模型的信息。根据超松弛公式可以推出需要构造五个运动模型的信息,即JU、J12、J13、J22、J23o它的操作就是矩阵乘法。2.4 迭代阶段(P4)这一
5、阶段就是通过超松弛算法计算光流的结果,每一次迭代完了需要把光流的信息更新一遍,再作为初始值进行下一次迭代。这一阶段的操作是根据迭代公式来实现的。3. 3软件的执行时间软件的实验平台是在Zedboard上ARMCorteX-A9处理器上来测试的,其中包括2个32KB一级缓存和512KB的共享二级缓存,以及512MB的内存空间,采用的测试集工载自。Horn-SChUnCk光流算法是通过ANS1C实现的。其中迭代的次数设为100次。基于Horn-Schunck模型的稠密光流法在软件上的执行时间如表1所示,不难发现,随着图像的不断变大,所需要的执行时间不断增大;其中迭代部分(P4)占到很大的时间比例。ImagesSizeModu1essTota1TimesP1P2P3P4Yosemite316x252025011003440485Venus420x3800.520.210.0599910.85RubberWha1e584x3880740.290.0814411563Grove2640x4801.00040010a