论文部分内容阅读
双目立体视觉是计算机视觉的一个重要研究内容,它通过两台安装在同一基线间隔一定距离的摄像机拍摄同一场景,以获得该场景在两个视角的图像数据。再通过立体匹配计算出物体表面的深度信息,从而实现重建场景的三维结构。相比其他类型的立体视觉方法,双目立体视觉直接模拟人类眼睛处理视觉信息的方式,具有重建分辨率高、使用场景广泛、可靠、简单的优势。目前,双目立体视觉系统主要应用在行星车、机器人自主导航及智能车无人驾驶等领域,在民用邻域的成功应用还非常少。主要原因在于实时性和鲁棒性方面无法满足需要,特别是对高分辨率立体图对(1024×768像素及以上)处理很难能达到实时性要求。立体匹配是立体视觉系统中最耗时的环节,因此本文从提高立体匹配的准确性及实时性两个方面进行研究,对立体视觉系统在实际应用中的推广具有良好的应用价值。提出了一种改进的稀疏Census变换的非参量局部立体匹配算法。传统的Census变换将变换窗口中心像素与变换窗口内所有像素进行灰度值大小比较获得Census像素值以替代中心像素的灰度值,该Census像素比原始灰度值数据量有数倍的增加。传统的稀疏Census变换将变换窗口中心像素与变换窗口内小部分像素进行灰度值大小比较获得数据量减少的Census像素值,但是该Census像素所包含的相关信息量明显减少,有可能造成误匹配。本算法通过分析变换窗口内像素对中心像素相关信息的贡献度大小,提出了选取变换窗口内像素按照特定分布位置两两进行灰度值大小比较的方式实现稀疏Census变换。该稀疏Census变换为后续立体匹配过程提供的数据量与原始灰度图相当,但是包含的相关信息数量比传统稀疏Census增加了一倍,可以有效地提高算法的实时性和鲁棒性。通过对立体匹配算法流程进行并行性分析及建模,实现了一套基于FPGA逻辑电路实现与加速的稀疏Census变换的非参量局部立体匹配算法电路。该算法电路采用流水线并行结构,流水线中包含了Census变换、汉明码距提取、汉明码距累加和计算、代价聚合、视差解析及左右一致性检测等立体匹配算法所需模块。算法核心工作在60MHz工作频率就可以实现高分辨率立体图对70帧每秒的匹配处理能力,具有非常好的实时性能。利用可编程片上系统(SoPC)技术,将立体匹配算法模块与可配置的32位嵌入式微处理器软核及各种外设IP集成,提出了一套基于FPGA芯片的片上系统架构。该系统以32位Nios Ⅱ嵌入式微处理器为核心,通过高速Avalon互联总线与DDRⅡ存储器、同步SRAM存储器、Flash存储器、PLL锁相环、JTAG UART、定时器、流水线式读取DMA控制器及立体匹配算法模块连接,形成一个完整的立体匹配专用计算机系统。系统提供一套配置接口,通过这套接口可以对立体匹配算法模块工作参数进行配置,使系统可以支持各种分辨率尺寸的立体图形匹配,增加了系统灵活性。本文使用所提出的片上系统架构实现了传统SAD立体匹配算法以及改进的稀疏Census变换的立体匹配算法,并对两种算法处理的视差数据进行了比较性研究。结果表明本文提出的稀疏Census变换的立体匹配算法在匹配准确性、资源占用等方面都优于SAD立体匹配算法,同时还有很好的实时性能。