论文部分内容阅读
立体视觉利用摄像机在场景中获得的二维图像来重建景物的三维信息,广泛应用于无人机导航、自动驾驶、3D场景重建等领域。其中双目立体视觉模拟人类双眼处理场景的方式,利用双目摄像机机从两个不同的角度获取同一景物在不同视角下的图像,基于三角测量和视差原理,获取物体的三维几何信息。本文选择双目视觉系统中关键的立体匹配问题展开研究。设计了一种基于卷积神经网络的双目立体匹配算法的VLSI架构,并在FPGA上完成了验证。主要贡献如下:(1)设计基于卷积神经网络的双目立体匹配VLSI架构。整个架构包含多卷积层的卷积神经网络、5条路径半全局代价聚合、视差计算、视差优化等模块。根据各个模块的算法复杂度,一共采用了2个时钟频率。快时钟域用于处理算法复杂度较高的卷积神经网络,计算初始匹配代价;慢时钟域用于处理立体匹配算法中复杂度较低的后3个步骤。利用分时复用以及跨时钟域等策略,有效的降低了系统的硬件资源消耗。(2)针对包含多卷积层的专用型卷积神经网络,设计了一种所有层并行,中间数据即出即用,低片上缓存、高吞吐率的流水线型VLSI架构。本文对Eyeriss通用型单层卷积层VLSI架构设计思想进行扩展,实现了一个与专用型卷积神经网络VLSI架构具备相近硬件资源的通用型VLSI架构。在相同的工作频率下,扩展后的通用型单层卷积层VLSI架构的吞吐率是专用型卷积神经网络架构的1.58倍,所需的片上缓存大小和数据总线带宽分别为专用型VLSI架构的6.5倍和6.3倍。(3)设计了斑点滤波、中值滤波、孔洞填充等3个模块用于视差优化阶段。相比于传统的固定窗口的斑点滤波方法,本文采用自适应斑点滤波窗口,根据中心像素点的视差值和所在位置决定滤波窗口的尺寸,进一步提高了匹配精度。7×7中值滤波器采用位级比较法,49个数同时从最高位逐位比较至最低位,选出滤波窗口内的中值。通过比较可发现,中值滤波窗口越大,位级比较法较普通的快速求中值方法能节省更多的逻辑资源。基于CNN的双目立体匹配VLSI架构在kitti测试平台的平均错误率为7.74%,在Xlinx公司的VC707 FPGA开发板上最大工作频率可达到208MHZ,吞吐率为1240 × 376/28 fps,满足嵌入式系统应用的实时性要求。