论文部分内容阅读
立体视觉系统能获取真实场景的深度信息,对特定场景实现三维重建,进而完成视觉测绘、视觉导航、视觉避障和路径规划等功能,广泛应用于诸如无人机、机器人和无人驾驶等嵌入式场景。立体匹配是双目立体视觉的关键一环,其匹配精度和匹配速度至关重要,然而立体匹配算法复杂,常常难以同时满足实时性和精度要求。由于FPGA(Field Programmable Gate Array)具有并行性高、灵活性强和功耗低等特性,目前很多应用于嵌入式场景的视觉算法适合在FPGA平台实现。Xilinx公司的Zynq拥有FPGA+ARM的架构,融合了FPGA的并行优点和CPU核的强大功能,因此使用Zynq平台完成视觉系统算法的实现具有广大的应用前景。本文基于Zynq平台设计和实现了双目视觉系统。本文详细分析双目相机模型,完成了双目相机标定,获取了相机内外参数矩阵和畸变系数,并离线完成了极线校正,获取了校正前后的坐标映射关系。然后分析了立体匹配原理,其可分为如下四个步骤:匹配代价计算、代价聚合、视差计算和视差优化,本文使用Census变换结合汉明距离计算初始匹配代价,运用多方向扫描线优化算法实现代价聚合,采用赢家通吃算法获取视差,并使用中值滤波进行视差优化。本文在Vivado开发环境下设计了双目视觉系统硬件逻辑部分,随后将硬件工程配置导入SDK,对其中使用的各模块进行驱动配置和寄存器配置,将采集的左右相机图像同时写入SD卡,为立体视觉IP(Intellectual Property)核设计提供了验证平台,实现了双目采集、传输、存取和显示系统。然后使用HLS软件,结合标定所得参数和极线校正前后的映射关系,实现相机畸变校正、立体校正、立体匹配和视差优化等算法,使用优化指令完成算法加速,并将其封装为立体视觉IP核。最后,在上述Vivado设计的硬件平台中使用立体视觉IP核,实现了双目图像采集、图像处理、图像存取和显示的双目视觉系统。最后,对本文设计的双目视觉系统进行实验评估。实验结果表明,本文设计的双目视觉系统实时性高,算法加速效果明显,系统整体功耗较低,适用于对实时性和功耗要求较高的嵌入式视觉应用场景。