论文部分内容阅读
图像序列的光流估计理论在机器视觉领域已被提出多年,但算法的高计算复杂度限制了其在工业领域的应用。为了满足应用的实时性要求,基于FPGA的Lucas和Kanade光流计算方法已经引起了学者的关注。但大多数研究主要致力于L&K光流计算方法在FPGA上的设计实现工作,而对于设计过程中优化问题没有做更进一步的研究。特别是FPGA数据定点化带来的计算精度下降问题以及L&K光流计算方法固有的卷积高计算复杂度问题。为了提高光流计算方法精度及解决高计算复杂度带来的FPGA片内资源消耗过大的问题,本文对L&K光流计算方法进行了改进,优化了设计方法。所涉及的主要工作包括:(1)为了满足光流估计算法在实际应用中的实时性要求,本文采用FPGA平台对L&K光流计算进行设计实现。设计了中值滤波器,对输入图像进行降噪处理;设计了外部储存器读写控制单元,用于存储图像数据;L&K光流算法的实时计算是通过流水线设计实现的;对图像进行VGA显示设计。(2)精度优化设计。针对FPGA数据定点化带来的计算精度下降问题,本文设计两层光流计算架构来提高精度。高层图像粗略的对光流场进行估计,底层图像可以对估计的光流矢量做进一步的精化计算。对于两层光流计算方法在提高算法精度的同时带来的读写数据量增加的问题,本文提出一次读取同时分层缓存、分时计算的方法。通过分析两层光流在计算过程中迭代计算的关联性,设计了满足吞吐速率要求的外部存储器数据读取顺序表。通过增加图像数据的利用率,减少对外部存储器的高数据吞吐率的要求。(3)资源优化设计。针对L&K光流计算方法固有的卷积计算复杂度高、计算量大的问题。将卷积运算过程展开分析后发现,相邻两像素的两次卷积运算有数据重叠区。为了使得此数据重叠区域的计算相同,即在下一次卷积运算时可以利用上一次卷积计算的部分结果数据,本文设计了新的卷积权重函数。利用新的权重函数进行一次卷积运算只需要4次加法,且卷积计算量与卷积核尺寸无关。此计算方法能够将卷积计算量降低73%,从而节省了大量逻辑资源。此外,本文还在梯度求取运算和最小二乘运算部分进行了降低数据位宽的优化设计。实验结果表明,本文提出的FPGA光流计算方法比在PC平台上运行的传统L&K光流估计方法精度高,卷积计算资源消耗显著降低。设计的系统可以完成10241280?像素、60fps输入视频的计算,满足光流计算的实时性要求。