(杭州电子科技大学计算机应用技术研究所,浙江 杭州310018)
双目立体视觉技术已广泛应用立体电影、三维测量、三维建模、机器人视觉等方面。立体匹配算法是立体视觉技术中的核心环节,目前大多数立体匹配算法都是基于PC平台实现,系统的实时性和稳定性较差。往往使用图形处理器或基于现场可编程门阵列(Field Programmable Gate Array,FPGA)硬件平台来提高实时性。基于FPGA平台的立体匹配实现方法有象素灰度差绝对值(Sum of Absolute Differences,SAD)匹配准则,象素灰度差平方和(Sum of Squared Differences,SSD)匹配。但SAD和SSD 匹配对图像中的噪声和亮度比较敏感。现如今很多硬件实现的Census 匹配准则,都是用了高性能FPGA 芯片,其成本较高。本文在Altera的Cyclone II 芯片上,实现了Census 匹配算法。该硬件结构可达到每个象素时钟获取一个象素视差信息,同时消耗的硬件资源的也较低。
基于区域的匹配方法是根据图像的区域相似度来实现匹配,有SAD,SSD和Census 等方法。SAD和SSD 对光强和对比度比较敏感,且当图像中存在重复的纹理时,可能会引起误匹配,运算量大。Census 匹配方法,相较于SAD和SSD 方法,对光照不太敏感,对图像的结构要求不高的优点。
设I(u,v),K(u,v)分别为u 行v列象素的灰度值和此象素的固定大小的Census 邻域窗口,P(i,j)串联起来,为此象素的Census 矢量C(u,v),d为视差搜索范围,Si为则Census 匹配的相似度算子:
式中,Cl(u,v)和Cr(u,v)表示基准图参考象素和对准图候选匹配象素的Census 矢量。计算d个Si数值后,比较得到最小的Sj,j 即为最终得到的视差。
本文的系统实现框图如图1所示:
图1 硬件系统算法实现框图
图1中N表示视差搜索范围。本文采用的图片分辨率为640×480,Census 变换窗口为7×7,相关窗口大小为9×9,视差搜索范围为64个象素。
构建一个M×N的窗口实现方法如图2所示:
图2 数据缓存与计算窗口的构建
图2中N 行象素的缓存按列方向输出到M 深度的移位寄存器中。如当前时刻为T,则T+1时刻第M列数据移出计算窗口,第A列数据则输入到计算窗口,第A-1列移位到第A列,并将在T+2时刻进入到计算窗口。这样就得到了一个以时钟频率不断右移的计算窗口。
在相关窗口计算方面,本文通过数据复用的方法来节省计算资源设ST,ST+1为T时刻和T+1时刻的相关窗口汉明距离和,HAMi(i=1,2,…)为第i列的汉明距离和。可得ST+1与ST的关系为:
数据复用实现结构如图3所示:
以本文例,如不采用上述方法,相关窗口模块需要有80次6bit 加法。采用数据复用方法后,仅需要8次10bit 加法和2次6bit 加法。
图3 数据复用示意图
本文通过并列一个Census 矢量计算模块减少了较多的存储资源消耗,如图4所示:
图4 实时计算Census 矢量
以本文为例,如要对每个象素的Census 矢量进行存储,则要存储6行图像的象素数据和9行图像象素的Census 矢量数据,每个象素Census 矢量有48bit。本文的方案是仅需要存储15 行象素数据,每个象素数据是8bit。可以比前者减少75%的Census 矢量存储资源。
本文使用的图片分辨率为640×480,Census 变换窗口为7×7,相关窗口大小为9×9,视差搜索范围为64个象素。经9684级流水后,每个时钟得到一个正确视差。采用Altera 公司Cyclone II系列的EP2C70F896C6 芯片。真实场景测试图和仿真结果如图5所示:
图5 真实场景仿真测试结果
Quartus II 9.1 综合情况如表1所示,本文和其他硬件匹配方法的对比情况如表2所示。
表1 EP2C70F896C6平台实现本文算综合情况
表2 硬件实现立体匹配的性能对比
由表1可以看出本文算法在EP2C70F896C6 芯片上使用的资源也是很少的。表2可以看出,在60MHz时钟下,每秒可以处理195幅640×480的图片,可以达到实时的要求。
本文在FPGA平台上实现了Census算法的实时立体匹配。该结构匹配速度快,资源占用小。实验结果表明在60MHz时钟下处理640×480 图片速度达到195fps,使用的芯片是高性价比的Cyclone II系列芯片,可以在低成本需求系统中应用。
[1]Ambrosch K,Humenberger M,Kubinger W,etal.Hardware implementation of an SAD based stereo vision algorithm[C].Minneapolis:Proceedings of the Conference on Computer Vision and Pattern Recognition Workshops,2007:1-6.
[2]Chen L,Jia Yunde.A Parallel reconfigurable architecture for real-time stereo vision[C].Hangzhou:Proceedings of the International Conference on Embedded Software and Systems,2009:32-39.
[3]Jia Yun-de,Zhang Xiao-xun,Li Ming-xiang,etal.A Miniature Stereo Vision Machine(MSCM-Ⅲ)for dense disparity mapping[C].Cambridge:Proceedings of 17th International Conference on Pattern Recognition,2004:728-731.
[4]Jin S,Cho J,Phan X,etal.FPGA design and implementation of a Real-Time stereo vision system[J].IEEE Transaction on Circuits and Systems for Video Technology,2010,20(1):15-26.
[5]Tsai T-H,Chang N,Chang T-S.Data reuse analysis of local stereo matching[C].Seattle:International Symposium on Circuits and Systems,2008:812 –815.