论文部分内容阅读
随着计算机科学技术的快速发展以及计算机视觉理论的不断成熟,计算机视觉在近三十年里有了突飞猛进的发展,而立体视觉作为计算机视觉的一个重要分支,也越来越多的应用到各个领域。立体视觉是通过对同一场景不同视角的多个摄像机拍摄到的图像进行处理,获得场景的深度信息,从而重建场景的三维结构。立体视觉在星球车、自动驾驶汽车、无人机、机器人、定位与导航、测距以及工业应用等方面有着广泛的应用。由于立体视觉算法的复杂性,为了获得较快的处理速度,大多数的立体视觉系统都是基于FPGA或FPGA+DSP的架构实现的。本论文使用载有Xilinx公司新一代Zynq-7000 SoC(System on Chip)芯片的ZedBoard板卡实现了一套立体视觉系统。Zynq-7000 SoC采用FPGA+ARM的架构,内部集成了两个Cortex A9处理器和大量的Artix-7 FPGA资源,该架构具有更高的性能、更低的功耗和更强的设计灵活性。本论文选择在Zynq-7000 SoC的FPGA部分实现图像的校正以及图像的均值缩小算法;在ARM部分使用OpenCV的视频处理库实现立体匹配算法。在图像的较正过程中,对于传统的校正方法而言,首先,需要在摄像机标定后离线计算出校正参数和索引坐标并存储在外部Flash中;其次,为了解决Flash读取速度过慢的问题,系统启动时需要加载校正参数和位置索引到SDRAM中;最后,校正模块读取SDRAM中的校正参数和索引坐标来完成图像的校正过程。本论文采用了一种改进的图像校正算法,即不需要事先计算好索引坐标和校正参数,而是在校正模块内部实时计算校正参数和索引坐标,提高了图像校正算法的效率。在对图像进行缩小时,采用均值缩小算法,实时地把分辨率为1080?1920的图像缩小到分辨率为270?960的图像,目的是减小立体匹配时的计算量;在立体匹配环节,本论文采用分水岭算法抽取图像的特征点,然后采用Block Matching(区域匹配)算法进行立体匹配获得视差图并根据匹配结果计算出校正参数反馈给图像校正模块。实验结果表明,该实现方案取得了比较满意的结果。