黄秉尧
摘要:图像匹配是三维重构的重要组成部分,经典局部匹配的实现方式是区域匹配。零均值归一化互相关(ZNCC)匹配对环境光有较高鲁棒性。本文结合降采样自适应视差约束,在快速ZNCC基础上进行优化,结合重建标准物体三维轮廓的精度对比,证明算法有效性。
关键词:图像匹配;自适应视差约束;反向组合算法
中图分类号:TP391.41 文献标识码:A 文章编号:1007-9416(2020)02-0071-04
图像匹配作为三维重构的重要部分,广泛应用于工业检测,医学诊断,机器人视觉,智能驾驶,视频监控,目标检测等众多领域。模板匹配是图像匹配的经典方法,ZNCC是其中效果较好的算法,对于环境噪声有一定的鲁棒性,但是由于其计算量大,限制了其在高清晰图像匹配中的应用。近年来有学者提出采用FFT与积分图结合的快速ZNCC方法[1],王梦伟[2]等提出了一种渐进生长的区域搜索方法,提高了匹配速度;贾文洋[3]等通过设定阈值提前终止判断,减少了冗余计算;韩磊[4]对ZNCC算法进行GPU加速,速度较CPU版本显著提高。在不同场景中,目前的方法仍然存在误匹配,噪声干扰等问题。本文提出了结合降采样视差插值的快速ZNCC改良方法,降低视差搜索的范围同时提高匹配效果。本文根据遮挡约束和最大视差偏移确定无效视差区域,并基于梯度优化了视差图像。
1 数字投影散斑双目视觉图像匹配原理
1.1 投影散斑三维重构系统
三维重构的步骤一般包括系统标定,图像校正,图像匹配,视差细化,三维重建[5]。在三维重构过程中,被动式算法往往受到物体表面纹理特征影响,对于低纹理,重复纹理区域无法达到良好的匹配精度。主动式三维重构一般通过构建特定模式图形,投影到待测物表面,增强物体表面纹理特征,或者根据图案投影至物体表面产生的变化恢复深度信息。本文采用投影散斑作为投影模式,投影散斑三维重构的流程如图1所示:
1.2 快速ZNCC原理
快速ZNCC方法基于零均值归一化互相关基本方法[6]。公式如下:
CZNCC(p,d)=
其中T(q)为模板窗口Np内q坐标位置的像素强度,为模板窗口内像素灰度均值。I(q-d)表示当视差搜索范围为d时,待匹配窗口内像素灰度,表示待匹配窗口像素灰度均值。从模板图像左上角开始遍历,根据视差搜索范围搜索,得到不同区域的相关系数。设模板匹配窗口大小为m*n,并且采用外极线约束,则模板图像中每个点进行相关运算的复杂度为O(m*n*D),其中D为视差搜索长度。对于一个宽高为w*h的模板图像,进行密集匹配的复杂度为O(m*n*D*w*h)。实际计算时,即使是450*375的图像,也需要数十秒的时间。
经典快速ZNCC引入积分图,FFT变换和图像金字塔。积分图方法广泛应用于基于灰度匹配的算法优化,通过求解积分图求解对应位置的值,減少重复加减运算,如图2所示:
Intg(i-1,j-1)=(I(p))
Intg(i,j)=Intg(i,j-1)+Intg(i-1,j)-Intg(i,j)+I(i,j)
其中p(x,y)为像素坐标,x∈[0,i-1],y∈[0,j-1]。I(i,j)和Intg(i,j)分别为在点(i,j)处的像素强度以及积分图累加值,积分图仅需预先计算一次图像积分,若模板匹配窗口为m*n,则累加窗口需要m*n-1次加运算,采用积分图可以缩减为4次。通过计算模板图像与源图像的灰度值,以及灰度值平方的积分图,ZNCC公式部分内容可预先计算。
傅里叶变换由法国数学家傅里叶提出。在二维图像中,傅里叶变换F(u,v)可以描述为:
F(u,v)=1/MN
快速傅里叶运算通过蝶形运算单元,简化傅里叶变换计算量。在计算相关运算时通过将模板窗口延拓到待匹配区域大小,延拓区域取0,将延拓后的模板图像进行快速傅里叶变换,共轭转置后与匹配图像的傅里叶变换结果求解相关运算,并进行傅里叶逆变换,即:
f(x,y)=1/MN
随后提取变换后的值,即得到相应位置的相关值。快速傅里叶变换的复杂度为O(m*n*log(m*n)),通过傅里叶变换大大降低了匹配计算量。
图像金字塔是常用的框架约束方法,即通过降采样获得低质量图像,得到相应尺度下的视差图像,用于下一层的匹配视差偏移。根据图像金字塔模型,分层设置不同的视差搜索范围和模板窗口大小,可以进一步增加算法速度。
2 改良算法
2.1 自适应视差约束快速ZNCC
快速ZNCC方法一定程度上加快了算法实现速度,但是对于模板匹配精度的提升有限。传统图像金字塔引导视差需要在不同环境下手动设置视差范围。本文在此基础上提出了自适应视差约束快速ZNCC方法。在原有视差图降采样的基础上,根据视差约束和梯度图像,建立自适应视差搜索范围和窗口索引,并带入下一层的搜索。本文采用Sobel算子作为梯度算子,改良算法的整体流程如如3所示:
本文采用投影散斑增强物体表面特征信息,在此基础上使用双目相机系统采集图像。以下为20000点最大直径3像素的数字散斑模拟如图4所示。
基于块匹配的相关性度量,在视差不连续区域较难达到良好的匹配效果。在深度变化区域,由于窗口包含前景和背景部分,且在双目视角下图像可能存在变形,得到的最大相关位置不一定是真实深度信息的映射。获得整像素偏移后,可以根据反向组合算法得到图像的一阶形变参数,获得亚像素位置。根据图像金字塔原理,在视差图像的梯度范围设置金字塔,每一级设置引导滤波的搜索视差范围TDs,搜索窗口表WDs。
TDs(i,j)=
WDs(i,j)=
将降采样次数对应放大系数,T1与T2为视差变化惩罚系数,TS1与TS2为视差搜索范围。图像每次降采样,对应惩罚系数T1,T2翻倍。在视差图梯度GS(x,y)小于T1时,视差搜索范围对应最小搜索范围TS1,窗口大小为WS1。GS(x,y)在T1与T2之间时,视差搜索范围对应TS2,窗口大小为WS2。当GS(x,y)大于T2时,则该点可能为误匹配点,视差搜索范围与对应窗口暂设为无效值NaN。在获得TDs图像后,对于不确定的视差区域进行合理性判断。如果该点邻域范围内的标准差大于3σ,则使用邻域中值填充,并将对应的视差区域表TDs位置设为TS2,搜索窗口表WDs对应位置设置为WS2。
2.2 視差细化与后处理
通过逐级引导获得视差图像后,使用反向组合算法计算匹配亚像素位置。由于反向组合算法的使用会对效率产生影响,主要对于视差图判定为不可靠视差区域的点集进行迭代反向组合运算,视差图像其余点使用抛物线拟合方法得到亚像素位置。反向组合算法的原理如下:
在二维平面上的图像变换包括图像旋转,平移,缩放可以由一个变换矩阵表示,即:
W=
设向量P=(wz,tx,ty,S),则图像变换矩阵可以表示为W(P)。求出Jacobian矩阵后,在预运算中算出Hessian矩阵和其逆矩阵,不必在后续迭代过程中更新,减少迭代时间消耗。迭代过程依据最速下降策略,在迭代过程中获得ΔP并更新图像变换矩阵。迭代过程持续到迭代达到最大次数或者更新向量ΔP的模小于设定阈值。
采用抛物线拟合算法[7],设最佳视差位置为d0=k,对应成本为C0,则邻域视差d1=k-1、d2=k+1分别对应C1与C2。插值结果可以表示为:
di=d0+0.5-
得到亚像素视差值后,根据相机校正后的重投影矩阵,可以计算出空间坐标。重投影矩阵Q表示如下:
Q=
其中Tx是相机横向位移,cx与cy是主点坐标。通常校正后cx'与cx值相同。
根据:
Q=
可以获得匹配点在空间坐标系的位置。由于相机偏移Tx为负数,在基于左相机视差图下取点云应增加负号,即空间坐标为:
=
在后处理部分,本文采用了基于遮挡区域判定的方法与左右视差连续性约束。无效孔洞区域通过邻域中值滤波得到大致视差并使用上述反向组合算法计算精确位置。
3 实验与分析
本文实验平台基于Core(TM) i5-4200H 2.8GHz 处理器,内存8G。算法实现基于MicroSoft Visual Studio2017 VC++。实验采用Middleburry数据集验证算法精度与速度,并根据重建现实标准球面测试了算法三维重构的精度。实验分为准备与验证过程。在准备过程中,首先生成模拟散斑图像用于投影,预置于投影仪中。设置双目采集系统位置并保证拍摄物体处于景深范围内。调用双目相机采集标准棋盘格在不同姿态下的图像对,并拍摄处于散斑投影状态下的物体图像。在进行实验比较之前,需要标定得到双目相机的内外参数,相机系统位置模型,通过极线校正可以获得校正图像对。实验比较的主要内容如下:(1)自适应视差约束ZNCC优化算法速度和误差率分析;(2)重建标准目标的精度分析。本文的精度分析使用真实数据与拟合结果比较,得到均方差(RMS)和标准差如图5所示。
采用Middleburry2003和2005标准数据集作为对比来源,图3-1显示了部分视差图对比结果,本文算法相对原快速ZNCC在非遮挡区域(nocc)匹配效果更好如表1所示。
采用15*15窗口,对标准数据集450*375图像进行匹配,在视差搜索范围设定为[0,60]的情况下,总平均耗时如表2所示。在精度验证方面,本文采用标准量块和标准球作为精度分析对象。采集物体表面图像和重建效果如下所示如图6所示:
由表2可以看出,本文方法相对于快速ZNCC常规实现,在精度上有所提高。在窗口大小逐步增大的过程中,匹配效果逐渐提高。就综合匹配效果来说,匹配窗口大小设置为41×41至61×61精度更高,但是设置更大的窗口基本无法进一步提高精度。采用自适应视差约束的方法结合图像金字塔,能够更好地获得整像素视差值,同时采用反向组合算法与抛物线算法,能够提升图像在深度不连续区域的匹配效果,并获得更好的精度和速度。
4 结语
本文提出一种结合视差变化,自适应搜索范围和窗口,并通过梯度确定视差插值,使用反向组合算法与抛物线拟合算法得到亚像素精度的改良方法。对于传统快速ZNCC方法,提高了匹配鲁棒性,在深度不连续区域有更好的表现,并提升了采用ZNCC实现稠密匹配的速度。
参考文献
[1] Tsai D M,Lin C T.Fast normalized cross correlation for defect detection[J].Pattern recognition letters,2003,24(15):2625-2631.
[2] 王梦伟,黄向生,陈则西,等.基于投影散斑的实时场景深度恢复[J].计算机辅助设计与图形学学报,2014,26(08):96-105.
[3] 贾文洋,毛征,刘松松,等.一种采用提前终止判决法的图像匹配跟踪算法[J].兵工自动化,2016,35(12):21-25.
[4] 韩磊,徐波,黄向生,等.基于GPU的散斑三维重建系统[J].计算机科学,2015,42(8):294-299.
[5] 宁柯琳.基于双目立体视觉的三维重建平台研究与实现[D].北京:北京邮电大学,2014.
[6] LEWIS J P.Fast normalized cross correlation[C].Quebec:Proceeding of Vision Interface,1995.
[7] Scharstein D,Szeliski R.A Taxonomy and Evaluation of Dense Two-Frame Stereo Correspondence Algorithms[J].International Journal of Computer Vision,2002,47(1-3):7-42.
Improved Binocular Vision Image Matching Technology Based on
Digital Projection Speckle
HUANG Bing-yao
(School of Instrument Science and Optoelectronic Engineering, Hefei University of Technology, Hefei Anhui 230009)
Abstract:Image matching is an important part of 3D reconstruction. The implementation of classical local matching is region matching. Zero mean normalized cross-correlation (ZNCC) matching is more robust to ambient light. This article combines down-sampling adaptive parallax constraints, optimizes on the basis of fast ZNCC, and compares the accuracy comparison of reconstructed three-dimensional contours of standard objects to prove the effectiveness of the algorithm.
Key words:image matching; adaptive parallax constraints; reverse combination algorithm