1 绪论
1.1 立体视觉匹配
人的双眼是一个非常智能的立体视觉系统。人脑中无数的神经元处理着人眼观察到的场景,实时地反馈出高清晰度准确的深度感觉信息。[1]这样的智能系统可以帮助人们更好地适应外部环境,从而进行各种各样的行为活动。
随着科学技术的不断进步,计算机处理性能也大大提升,但计算机立体视觉的水平与人类的双目视觉水平还相距甚远。计算机立体视觉就是通过利用摄像机和电脑替代人眼和大脑神经系统来进行目标获取、识别、跟踪和测量以及场景理解等的机器视觉系统,也即是用机器模拟人类视觉的过程。
立体视觉匹配是将不同视场下的图像中的点进行匹配的一项技术,是计算机立体视觉中一个复杂而且相当重要的问题。立体视觉匹配作为最为关键的计算机立体视觉的研究分支,其实质是寻找一幅图像中特征点在另一幅图像中的匹配点,然后计算该点与其对应点在某一定方向上的像素差,即视差的过程。[2][3]
随着立体视觉匹配理论的不断发展,立体匹配算法得到了进一步的优化,并且随着计算机的处理速度的越来越快,目前一些立体匹配算法已经达到了实现实时处理的能力。而近年来出现的基于全局立体匹配算法,其计算的视差结果已经能够在很大程度上逼近真实值。
根据立体视觉匹配算法不同的匹配基元,目前可将匹配算法分为三类:区域匹配算法、相位匹配算法和特征匹配算法。本文中采用的立体匹配算法是基于区域匹配的一种算法, SAD匹配算法是像素灰度差的绝对值和测度因子的匹配算法,算法复杂度相对较小,硬件实现也相对容易。
当前立体匹配主要面临的挑战性问题包括以下几个:遮挡匹配问题、无纹理信息或纹理单调重复问题、深度不连续匹配问题、光照变化引起匹配问题和倾斜区域的匹配问题。而随着军事、工业、医疗、监控系统、视觉导航、人机交互和无人机等方面的大量需求,计算机立体匹配技术虽然还有许多问题和难点,但是还是具有很大的商业价值和研究意义。
所以,随着科技水平的日益提高以及社会市场的不断需求,旨在提供优良整体视觉体验的计算机立体视觉技术的研究越来越受到研究人员的重视。
1.2 国内外研究现状
1.3 本文的研究内容和结构
1.3.1 研究内容
本文选取立体匹配算法中测度因子为像素灰度差绝对值和SAD(Sum of Absolute Differences)算法作为研究对象,利用现场可编程阵列FPGA硬件平台的窗口对匹配算法进行硬件实现,并通过VGA(Video Graphics Array)显示输出。
1.3.2 论文结构
第一章介绍了立体匹配技术的基本知识,分析了国内和国外在立体匹配技术方面的发展概况,并提出了本文的研究内容。
第二章介绍了SAD算法原理和FPGA技术,详细介绍了Altera公司的Stratix系列芯片产品的主要电路结构以及VGA的显示原理。
第三章主要讨论了硬件描述语言Verilog HDL的相关内容和SAD处理器的硬件实现结构。
第四章阐述了应用FPGA实现SAD算法的设计过程,编程设计的各个单元模块的主要功能,并对各个模块实现了综合。最后设计出实现像素灰度差绝对值和SAD处理器。
第五章对程序的仿真结果进行了说明和总结,并得出了一定的结论。
2 SAD算法原理与FPGA技术
2.1 SAD的定义及计算方法
本篇论文设计以像素灰度差的绝对值和(SAD)算法为基础,研究基于FPGA的SAD算法的实现,首先应理解像素灰度差的绝对值和(SAD)算法的基本原理。SAD算法是立体匹配算法中基于区域匹配的一种算法,其所选取的相似性测度因子为像素灰度差的绝对值和。与其他两种常用的相似性测度因子,像素灰度差的平方和SSD(Sum of Squared Differences)以及归一化相关方法NCC(Normalized Cross Correlation)相比,SAD算法只有加法运算,而SSD算法有平方运算,NCC有除法和开方运算,从算法的复杂程度和硬件实现的难易程度来看,SAD算法效率更高,运算速度更快,而SSD算法和NCC算法将会占用FPGA大量的逻辑单元而且会消耗大量的运算时间,降低了实时性。[13] 基于FPGA的SAD立体匹配算法实现(2):http://www.youerw.com/tongxin/lunwen_13651.html