论文摘要
立体视觉能够从同一场景不同视角拍摄的图像数据获得物体表面的深度信息,重建三维场景结构,在无人驾驶车、星球车等智能移动机器上得到了广泛应用。尽管立体视觉的实时实现已发展成为立体视觉领域的研究热点,但多数实时立体视觉系统都是针对小分辨率图对(例如320×240)。本文基于单片现场可编程门阵列(FPGA)设计了一套立体视觉系统,实时实现了512×512分辨率图对的几何校正、Census局部变换以及相关匹配三个算法流程。立体匹配是立体视觉系统中最耗时也是最耗资源的一步。由于区域匹配算法运算复杂度低,且易于采用硬件加速技术,所以实时立体视觉系统一般都采用区域匹配算法。本文提出了一种基于Census局部变换的非参数化匹配算法,不仅对亮度不均、噪声等情况具有很好的鲁棒性,而且只涉及比较、异或和累加运算,非常适合FPGA逻辑电路实现与加速。整个立体视觉系统的算法集中在立体视觉平台上实现。平台以Virtex5-LXT系列FPGA为处理核心,包括SRAM、Nand-Flash ROM、SDRAM以及FIFO四种存储控制器,采用SERDES接口下行输入左右视图原始数据,采用以太网接口上行输出匹配结果及相应视差值。在立体视觉算法的实现中,采用了乒乓结构、窗口数据缓存以及Box滤波等硬件加速方法来优化设计。为了提高实时性,系统充分利用FPGA并行计算结构和流水线技术,仅仅增加不到一半的硬件资源,而提升了近一倍的运算速度。对于左右一致性校验的流程进行了调整和优化,在一次相关运算中分别获得以左右视图为基准的匹配结果,以极低的资源代价实现了左右一致性校验,滤除了大量误匹配点。通过实验结果与性能分析,我们可以看出,对于分辨率为512×512的立体图对,仅采用40MHz的时钟频率,本系统就可以达到25fps以上的视频级处理速度,完全可以满足立体视觉对实时性的要求。