基于稠密匹配的单目立体视图生成

2018-09-21 03:18王连兵马伟东
电视技术 2018年8期
关键词:单目视差单元格

王连兵,叶 兵,马伟东

(合肥工业大学 电子科学与应用物理学院,安徽 合肥 230009)

3D显示技术,因与传统二维视频图像相比能够给出目标的深度信息更加符合人的视觉特性,而备受关注。当前常见三维图像源的获取技术主要有双目[1]与单目[2]之分,双目立体图像获取技术通过立体标定过的两架相机即可得到立体观察图像,实现简单;相对单目立体图像获取技术就需要添加特殊制定的器材或算法才能得到双目观察图像。但当三维图像获取技术在一些特定环境如水下机器人,小尺寸内窥镜等中应用时,单目的实现方式在尺寸、重量、便携等方面较之双目有很大优势。

在单目立体视觉方面,Deepu等[3]通过建立相机的离焦模型,从单相机图像中自动生成立体视觉图像中的第二幅图像。Logothetis等[4]提出新的半校准近场光度立体技术,在光源位置已知,亮度未知的环境下重构了目标三维表面。Zhou等[5]通过根据内窥镜序列图像间成功匹配的特征点间的视差,对未匹配点进行线性插值的方式获得稠密视差,并在三维重建后,重投影得到了立体视觉图像。杨军等[6]使用单目序列图像间的最佳匹配点集,通过扩展稀疏点云的方式对目标物体进行三维表面重建。在稠密匹配方面,李彬彬等[7]用图割法优化基于置信度传播的稠密匹配策略,提高了底纹理区域和遮挡区域匹配。程思培[8]等提出一种基于金字塔分层双向动态规划的立体匹配算法,降低了金典动态匹配算法中横向条纹的产生,同时提高了边缘和弱纹理区域的匹配性能。Tatsunori Taniai等[9]结合马尔可夫随机场对中倾斜平面匹配算法[10]和曲率正则方法[11]提出图割法[12-13]优化的区域扩展运动(Local Expansion Moves, LocalExp)立体匹配方法,能够得到精确的平滑分区视差图。

本文假设平滑运动中相机获得的相邻图像之间的视场与视角均存在一定的变化,但差别不大,此时可近似将相邻或相近的具有一定差别的图像对看作双目视觉中的立体图像对,经过相应立体矫正后即为双目立体视图,但此时双目立体图像对的基线长度会随相机的运动状态的改变而改变,不能直接用以人眼观察。为此本文结合已知初始环境下的同步定位与建图(Simultaneous Localization And Mapping, SLAM)[14-15]技术定位出相机的运动轨迹,同时根据校正后图像对的稠密匹配结果生成在物理空间中相对目标视图固定位置的虚拟相机图像。

基于上述构想,本文的主要内容可分为相机位置求取、稠密匹配和视图重建三个部分。相机位置求取部分,本文运用尺度不变特征转换匹配算法 (Scale-invariant feature transform, SIFT)[16]将每幅图像的最优SIFT特征匹配集及其对应物点作为相机运动中的标志。在稠密匹配部分,本文采用三维平面参数约束的视差平面区域扩展算法,提高匹配算法的不同场景的适应性,本文将SIFT特征匹配点作为视差平面区域增长的种子点,并以此作为视差优化的限制条件。在视图重建部分,本文应用双目视觉模型,重投影出假定的虚拟相机图像。

1 基于SIFT的相机位置定位原理

由于SIFT特征匹配具有旋转不变、放缩不变、较强的稳定性,且生成的匹配对多,对光照变化不敏感,特征点的利用率高等特性,能够为摄像机位置的求取提供更佳稳定数据基础,更利于视角重建算法得出稳定、准确的结果[17]。单目SIFT-SLAM相机定位算法的流程如图1所示。

单目SIFT-SLAM相机定位算法的具体流程为:

(1)相机内部参数的预求取;通过张正友教授的棋盘标定法对摄像头的内部参数进行标定,其中相机的畸变参数用以对每一帧图像进行畸变校正,相机的特征参数则为三维重建及视角重建使用。对图像进行必要的高斯滤波,减小噪声影响。

(2)特征点提取与匹配;采用SIFT算法进行特征提取与描述,即从高斯尺度空间中获得具有尺度和旋转不变特征点,根据其相应领域梯度信息生成归一化的128维特征描述向量[18];进行当前帧特征点与特征点库中的特征点匹配,得到特征匹配对。

图1 单目SIFT-SLAM相机定位算法

(3)摄像机位置恢复;通过特征匹配对,实现了当前帧图像特征点与特征点三维坐标库中三维坐标的对应关系,再依据相机投影模型,恢复摄像机的位置、姿态。

(4)更新特征点参数;运用三维重建技术对已经得到的信息进行重建工作,即可得到新的特征点三维坐标信息,并更新特征三维坐标库,同时用匹配对更新特征点库。

(5)对每一帧重复上述步骤,实现对摄像机三维空间位置的不断更新。

该相机定位算法实现了摄像机的三维坐标的求取,为视角重建提供物理尺寸上的参照。

2 种子区域扩展的稠密匹配

2.1 三维视差平面的全局能量函数

E(f)=∑p∈Ωφp(fp)+λ∑(p,q)∈Ωψpq(fp,fq)

(1)

式中,第一项为数据项,用来衡量匹配像素间的图像一致性,视差平面fp定义了一个从像素p到另一图像中对应点的非线性映射。第二项为平滑项,用以描述相邻像素对(p,q)N间视差信息的约束关系。

能量函数中的数据项可定义为:

φp(fp)=∑s∈Wpωpsρ(s|fp)

(2)

其中,Wp像素p为中心的方形窗;ps适应窗口权重,该权重本文采用引导图像滤波器,用式(3)描述。

(∑K+e)-1(IS-μK))

(3)

式(3)中,IP=IL(p)/255,是一个归一化的色彩向量;μk和k分别是局部回归窗口W’k中灰度矩阵Ip的均值和协方差;e是为避免过度拟合的单位阵。

给定视差平面fp=(ap,bp,cp),式(2)中的(s|fp)是衡量窗口W中支撑像素s=(sμ,sν)与其在右图中匹配点s′之间的差异,且有:

s′=s-(apsμ+bpsν+cp,0)

(4)

ρ(s|fp)=(1-α)min(‖IL(s)-IR(s′)‖1,τcol)+αmin(|xIL(s)-xIR(s′)|,τgrad)

(5)

能量函数中的平滑项定义为式(6):

(6)

式(6)中,ωpq是对比度敏感度权重,定义为式(7):

ωpq=e-‖IL(p)-IL(q)‖1/γ

(7)

(8)

式(8)中,dp(fq)=aqpμ+bqpν+cq。式中,第一项用fp和fq在p点视差之差衡量它们之间的差异,而第二项表示它们之间的相似性。

2.2 图割法优化的种子区域增长原则

本文中的区域分割采用的固定窗口大小的全图分割,首先将全图划分为若干5×5的单元格,在对每个单元格建立3×3八邻域单元格区域的视差共享区域。对于单元格其视差平面的优化过程一共有三个:

过程1:初始化视差平面:根据单元格中已知的的视差数据结合扰动量,随机产生视差平面,并经行块内图割法优化赋值;

过程2:单元格内视差优化:根据循环次数和视差范围产生修正量,确定新的视差平面,使用图割法优化块内视差平面的更新范围;

过程3:共享区域内视差共享:从单元格内随机选取视差平面,依据图割法优化平面视差更新范围。

上述三个过程中,只有具有特征匹配对的单元格才会执行过程1,即初始化视差平面的过程,并在该过程就结束时,将随机选取视差平面传递给视差共享区域,对于不具有特征匹配点的单元格,只能根据从其他单元格共享的视差平面进行视差优化的后续过程2、3。本文通过上述三个视差优化过程,将全图能量函数的优化求解转化为每个单元与其视差共享区域内的能量函数最优化问题。

本文基于种子区域扩展的稠密匹配算法的具体步骤如下:

(1)对做图像进行单元格分割;

(2)具有特征匹配对的单元格执行过程1,初始化视差平面;

(3)循环,每个单元格顺序执行过程2,3,求解全局能量函数最优的视差组合;

(4)根据全图视差平面,求解稠密视差。

3 视图重建

双目立体视觉模型中两相机的像平面平行,右相机xr轴位于左相机xl轴延长线上,使得两幅图像的对极线恰好在同一水平线上,由图2看出,空间点在两相机中投影点xl和xr只在水平x轴方向存在视差d。很容易得到:

(9)

其中B是立体相机基线长度,fl=fr是左右相机的焦距。

图2 双目视觉模型

为应用双目视觉模型,获得假定中虚拟相机的图像,本文利用稠密视差数据,使用三角测量法获得目标相机图像所有像素对应的空间点坐标P(x,y,z),利用双目立体视觉的视差公式(9),可计算得到目标相机(本文设为左相机)像素xl在虚拟相机成像平面上的对应点xr,此时xr并未整好落在像素点上,虚拟相机像素点ur的具体灰度值难以确定。为此,本文根据xlxr的一一映射,建立反向urxl的一对多映射,取ur对应多点xl的平均值。

4 实验结果及分析

为验证本文算法,本文使用焦距为6 mm,视场角为60°,分辨率为640×480的摄像拍摄自行搭建的真实实验环境,如图3所示。本文算法的运行环境为:Windows7 64系统,Intel Core i5主频2.6 GHz;在Visual Studio2017编译平台下,基于Opencv3.1.0,使用C++语言实现。

在虚拟相机视图的投影试验中,使用三张相机在特定位置时拍摄的图像模拟相机移动过程中的拍摄图像,图3中a,b,c三张图像分别为相机顺序左移移动5 mm时拍摄的图像。本文的验证策略为:设图像a和b间的位移幅值T0= 5 mm,算法通过T0计算图像b、c间的位移T1,并通过对b、c进行稠密匹配后的视差数据,对图像c进行虚拟相机投影。试验中为方便对比,将虚拟相机位置设置为图像b对应的相机位置,即图像c右侧5 mm处。在本文场景中参数的设置为:数据项中e= 2.5,α= 0.85,col= 7.0,grad= 2.0;平滑项中λ=10,= 15,= 0.01,dis= 0.5。

图3 实验场景

通过算法计算得到的T1的模值为4.59 mm,由于实验并未在工作台上进行,该误差在目测误差范围之内。为加速匹配与算法的鲁棒性,稠密匹配前需先对图像b、c进行立体校正,图5中图像a、c分别对应b、c的校正结果。图4为稠密匹配算法的稠密匹配结果。

从图中可以看出,对强纹理部分具有很强鲁棒性,表面接触区域视差传递良好,但是算法仍存在倾斜面匹配中的阶梯视差情况,且对于跳跃视差区域存在明显的过平滑。图5中图像b为最终重建的虚拟相机图像,与原图a相比,存在明显的视场变化,对比相应实际视图可以看到两图中的直线的倾斜角度几乎一致,表明虚拟视角已经很接近实际校正图像;另外虚拟视图像素有实际视图像素间存在一定的整体偏移,初步分析是由于实验中位移测量、计算中的误差及部分投影误差所致。

图4 图像b、c的稠密视差图

图5 校正后视图和重建虚拟视图

5 小结

基于相机运动过程中视角与视场小幅度变化假设,本文提出了结合SLAM与图割法优化的种子区域扩展的稠密匹配技术获取单目立体视图的算法。实验验证表明运用基于SIFT的SLAM位置求取定位模块能够在初始位置已知的情况下给出相机的位移信息,同时基于种子区域扩张的稠密匹配算法,在高纹理和视差连续区域具有较强鲁棒性,并成功从单目相机的序列图像重投影得到了假定位置处具有较小影像畸形和缺失的虚拟相机视图。

猜你喜欢
单目视差单元格
基于自适应窗的立体相机视差图优化方法研究
流水账分类统计巧实现
玩转方格
玩转方格
一种单目相机/三轴陀螺仪/里程计紧组合导航算法
基于梯度域引导滤波的视差精炼迭代算法
浅谈Excel中常见统计个数函数的用法
单目SLAM直线匹配增强平面发现方法
基于CAD模型的单目六自由度位姿测量
基于分割树的视差图修复算法研究