论文部分内容阅读
光流场(Optical Flow Field)是空间中物体运动的运动场在图像平面上的对应体现,可用来对空间中的真实运动场做近似估计。光流场不仅携带了物体的运动信息,还携带了运动物体三维结构的信息。目前,光流场计算方法(即光流法)在模式识别、计算机视觉、图像处理等领域具有极其重要的基础地位,如运动估算、视频压缩、目标检测和跟踪等应用都需要用到光流场信息。但目前光流法的最大问题是计算复杂、速度慢,限制了它在实际系统尤其是嵌入式系统中的应用。比如经典的基于Horn-Schunck (即HS)模型的稠密光流法,当处理的图像分辨率为640*480,在主频为2.9GHz的i7-3520M处理器下,处理连续2帧图片序列需要2.3s。而且复杂的光流计算则更慢,几秒钟甚至更长时间才能处理完一副图像,显然无法满足实时处理的需要。因此,高效能的光流场实时计算是本文关注的重点问题。变分光流法是估算光流场的性能最出色、技术最前沿的方法。本文从变分光流法的理论分析入手;评估了不同的变分光流法在通用CPU上的计算性能和计算效果;提炼出光流法计算的通用工作流程;利用最新的高层综合(High Level Synthesis)语言与传统的硬件描述语言相结合,设计了基于线性的HS和Combine-Brightness-Gradient(即CBG)模型的变分光流法的硬件加速器;以软硬件协同的工作方式,并分别在ZYNQ-7000平台和基于Kintex-7的PC-FPGA平台上对光流算法的硬件IP核进行系统级的封装与测试,验证了光流算法IP核的可移植性与通用性。本文对变分光流法的实时计算方法进行了系统性的分析与研究,从软硬件协同工作的角度,设计了基于FPGA的可移植、高效能的光流计算系统。实验结果显示,以基于CBG模型的线性光流法为例,当处理的图片分辨率为640*480,在ZYNQ平台上计算两帧的光流场时,软硬件协同处理比纯软件处理的计算性能提高了33倍,每一帧的计算时间从26.68秒降低到0.82秒,其消耗的能量为0.35J;在PC-FPGA平台上每秒钟可以处理12帧,每一帧的计算时间为0.085秒,其消耗的能量为0.38J。