一种基于双目视觉的重建方法与流程

文档序号:14250642阅读:643来源:国知局
一种基于双目视觉的重建方法与流程

本发明属于计算机视觉领域,更具体地,涉及一种基于双目视觉的重建方法。



背景技术:

三维重建技术作为计算机视觉领域的热门研究方向,现已广泛地应用于工业、医疗、机器人导航、无人驾驶等领域。

三维重建技术主要分为基于几何结构的重建方法和基于图像的重建方法两种。传统的三维几何结构重建采用计算机辅助设计软件直接手工生成三维模型,该方法建造的场景模型精致、复杂、具有良好的交互性、视点自由但是真实感不强,在进行大规模场景重建时,需要投入大量的时间和精力。基于图像的重建方法从单幅或多幅二维图像的灰度、立体视差等信息中通过三角测量等原理计算获取三维场景信息,将大量人力从场景重建中解脱出来,是目前三维重建主要的研究方向。

利用图像序列进行三维重建目前主要倾向于单目立体视觉和双目立体视觉两种。单目立体视觉通过非平面表面的多幅图像对物体表面进行三维重建,该方法受光照影响较大;双目立体视觉与人类视觉感知过程相似,从位置不同的两个视点对同一场景进行观察,进而获得同一场景在不同视点上的两幅图像,通过图像匹配和三角测量原理计算两幅图像成像上的偏差来分析三维环境中物体的位置信息。本发明主要基于双目立体视觉系统。

实时三维重建方法可以基于程距法和视觉两大类。程距法利用激光雷达获取距离信息,根据已知的深度图,用数值逼近的方法重建表面信息并根据模型建立场景中的物体描述实现三维环境重建。但是这种方法受限于硬件设备,廉价易得的激光测距器测距范围短,大多维持在5-6米的范围内,不适于实际情况,并且发射的一般是单点激光,其重构三维信息的速度会比较慢,导致实时性较差。性能指标高的激光测距器成本高昂且软件技术壁垒高,不具有普适性。基于视觉的实时三维重建利用左右帧图像的视差图进行重建,设备易得且算法较成熟。

稠密点云数据可以更精准还原模型结构,但是过多的冗余点会浪费大量存储空间,在进行点云配准与拼接时消耗大量时间与计算量,并且会提升三维表面重建的难度。因此,有必要对稠密点云数据进行约减。alexa等人通过计算某个数据点删除之后对最小二乘移动曲面的影响程度来决定该数据点是否需要保留的方法进行约减,但是该方法计算比较复杂且效率不高。目前实时环境重建最常用的方法有以下两种:

slam,该方法是利用移动机器人重建周围环境,并利用环境重建计算自己的位置,但是为了保证计算效率,只能生成稀疏点云,而三维表面重建需要获取稠密的三维点云。

geiger等人提出一种基于图片序列的实时三维重建方法,该方法基于双目立体匹配和老牌视觉里程计算法,但是由于相机姿态估计累积误差的不断增大,大规模环境重建结果漂移严重。

由此可见,现有技术存在三维重建过程中相机运动姿态估计的误差较大,三维点云数据的精准性较差的技术问题。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种基于双目视觉的重建方法,由此解决现有技术存在三维重建过程中相机运动姿态估计的误差较大,三维点云数据的精准性较差的技术问题。

为实现上述目的,本发明提供了一种基于双目视觉的重建方法,包括:

(1)使用相机参数对输入图像的左右视图进行校正,对校正后的左右视图进行立体匹配,得到左右视图的视差图;

(2)根据输入图像序列得到的相机姿态估计信息和陀螺仪传入的相机姿态信息,进行卡尔曼滤波得到姿态最优估计,进而得到相机运动轨迹最优估计;

(3)根据左右视图的视差图和相机运动轨迹最优估计,得到三维点云数据;利用栅格法对三维点云数据进行点云数据配准,然后利用格网空间对配准后的点云数据进行点云数据融合,得到全景点云数据。

进一步的,相机参数包括单目内参数和双目外参数,所述单目内参数为分别对左右摄像头进行独立的单目标定得到左右摄像头各自的单目内参数,所述双目外参数为双目标定得到的左右摄像机之间的双目外参数。

进一步的,步骤(1)包括:

(1-1)使用相机参数对输入图像的左右视图进行消除畸变处理并进行行对准,使得左右视图的成像原点一致,得到校正后的左右视图;

(1-2)对于校正后的左右视图,通过水平和垂直方向的滤波器的级联响应,得到左右视图的特征向量,利用特征向量之间的曼哈顿距离进行从左到右、从右到左两次匹配,将匹配鲁棒性强的像素点作为支撑点,得到稀疏视差图;

(1-3)对左视图坐标空间中的支撑点进行三角剖分,形成多个三角区域,利用三角区域已知顶点的视差构建其它视点的视差的先验概率,基于先验概率对左右视图的特征向量进行匹配得到右视图观察参数,右视图观察参数为疑似同名点及相似性度量,最大后验估计除支撑点外其它像素点的视差,得到稠密视差图为左右视图的视差图。

进一步的,步骤(2)的具体实现方式为:

陀螺仪固定在左右摄像机中间位置,将陀螺仪坐标系转换到左摄像机坐标系,然后根据输入图像序列得到相机位置信息,并由相机位置信息得到第一速度,根据陀螺仪传入的加速度信息得到第二速度,对第一速度和第二速度进行卡尔曼滤波得到速度最优估计,然后根据输入图像序列得到相机的位移信息,根据速度最优估计得到估计位移信息,对相机的位移信息和估计位移信息进行卡尔曼滤波得到位移最优估计,根据输入图像序列得到的相机姿态估计信息和陀螺仪传入的相机姿态信息进行卡尔曼滤波得到姿态最优估计,根据位移最优估计和姿态最优估计进行卡尔曼滤波得到相机运动轨迹最优估计。

进一步的,点云数据配准的具体实现方式为:

假设分别获取两组三维点云数据p1和p2,以p1的相机初始位置建立基准坐标系,根据两组三维点云数据对应相机的初始姿态,得到两个坐标系之间的初始旋转平移矩阵,利用初始旋转平移矩阵对p2进行首次刚体变换得到p2′,进而得到初始点云所在格网id关系,利用初始点云所在格网id限制匹配范围,对p1和p2′进行点对匹配得到点集对,根据点集对得到新的旋转平移矩阵,利用新的旋转平移矩阵对p2′进行变换得到p2",获得新的点云所在格网id关系,计算p2′到p2"的距离平方和,以连续两次距离平方和之差的绝对值或者新的点云所在格网id关系作为是否收敛的依据,迭代,直到绝对值小于阈值或者新的点云所在格网id关系不变化,得到目标旋转平移矩阵,利用目标旋转平移矩阵将p2中三维点云数据的坐标系转换到基准坐标系中,实现两组三维点云数据的点云数据配准。

进一步的,点云数据融合的具体实现方式为:

对三维点云数据的坐标系空间进行等格网划分,得到n个格网空间,遍历格网空间,如果格网空间中没有点云,则不做处理;如果格网空间中只存在单个点云,则以此点云的rgb值作为该格网空间的rgb值;如果格网空间中存在两个及以上的点云,则以该格网空间中所有点云的rgb均值作为该格网空间的rgb值,实现点云数据融合。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

(1)本发明根据输入图像序列得到的相机姿态估计信息和陀螺仪传入的相机姿态信息,进行卡尔曼滤波得到姿态最优估计,进而得到相机运动轨迹最优估计;本发明利用陀螺仪传入的相机姿态信息对相机运动姿态估计误差进行矫正,降低了三维重建过程中相机运动姿态估计的误差。

(2)本发明针对大规模环境重建中点云拼接时遇到的点云数据重叠问题,提出采用栅格法对三维点云数据进行点云数据配准,利用格网空间对点云数据进行融合。进而降低了三维重建过程中相机运动姿态估计的误差,提升了三维点云数据的精准性。本发明的三维环境重建方法更加快速精确,可用于机器人导航、无人机精细任务规划等项目中,用以替代更多人力难以胜任的工作。

附图说明

图1是本发明实施例提供的一种基于双目视觉的重建方法的流程图;

图2是本发明实施例提供的相机运动轨迹最优估计校正效果图;

图3(a)是本发明实施例提供的第一局部三维点云数据仿真效果图;

图3(b)是本发明实施例提供的第二局部三维点云数据仿真效果图;

图3(c)是本发明实施例提供的第三局部三维点云数据仿真效果图;

图4是本发明实施例提供的融合后的全景点云数据仿真效果图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

如图1所示,一种基于双目视觉的重建方法,包括:

步骤一,将两部摄像头固定在实验平台上,然后分别调节两部摄像头的焦距和光圈,保证摄像机所摄图像的质量最优。将陀螺仪固定在左右摄像机中间位置,以便后期以陀螺仪运动姿态近似替代双目摄像头运动姿态。

步骤二,从不同角度对棋盘格拍摄12组图片,求取左右摄像机内参数值。双目摄像头标定不仅要得出每个摄像头的内参数,还需要通过标定来测量两个摄像头之间的相对位置,即右摄像头相对左摄像头三维平移参数t和旋转参数r。opencv中提供了实现双目摄像头标定的算法cvstereocalibrate,但是该函数在使用时容易产生比较大的图像畸变,因此本发明一般采取先单目后双目的方法。先分别对左右摄像头进行独立的单目标定,求得左右摄像头各自的单目内参数,然后再进行双目标定求得左右摄像机之间的双目外参数。

步骤三,对输入图像进行双目校正。根据摄像头定标后获得的单目内参数和双目外参数,分别对左右视图进行消除畸变处理并进行行对准,使得左右视图的成像原点一致、保证左右摄像头的光轴平行、左右成像平面共面、对极线行对齐,从而保证匹配点位于左右视图的同一直线上。

步骤四,通过校正后的左右视图获取视差图。这一部分使用了geiger等人提出的高效大规模立体匹配算法,该算法是一种能够实时计算高清晰度图像精确视差图的bayesian方法。通过在一组支持点上的三角测量来构建视差的先验值从而消除匹配歧义,通过限制搜索区域提高搜索效率。具体实施方法如下:

第一步:通过水平和垂直方向的3x3sobel滤波器对9x9窗口的级联响应,分别得到左右视图50(2x5x5)维的特征向量。利用向量间的曼哈顿距离进行从左到右、从右到左两次匹配,选取其中匹配鲁棒性强的点作为支撑点,得到稀疏视差图。将左视图设定为参考图像,得到左视图的一组观察参数(即上述支撑点像素坐标及其对应的特征向量)。

第二步:基于左视图的支撑点集进行三角剖分,得到多个三角区域,计算每个三角区域三个顶点的精确视差。

第三步:根据剖分后的三角区平面和已知顶点的精确视差进行插值,得到其它视点视差估计的先验概率,表示为一种符合高斯分布的分段线性函数。

第四步:利用左右视图的特征向量,在视差先验概率的基础上计算得到图像似然率,似然函数满足约束laplace分布,从而得到右视图的观察参数(疑似同名点及似然率)。

第五步:利用最大后验概率估计map计算除支撑点外其它视点的左右视差,得到稠密视差图。

步骤五,根据输入图像序列得到的相机姿态估计信息和陀螺仪传入的相机姿态信息,进行卡尔曼滤波得到姿态最优估计,进而得到相机运动轨迹最优估计;具体实施方法如下:

第一步:通过双目立体匹配和相机内参数得到匹配点的三维坐标。通过ransac算法从n组匹配点中随机抽取3组利用高斯牛顿法计算得到位姿。通过内点判断位姿精确度并取舍。不断重复上述过程得到精准位姿。

第二步:传入陀螺仪获取到的参数三轴加速度和三轴角度,设初始偏航角为基准,对偏航角进行校正,即将陀螺仪坐标系转换到与空间坐标系重合,并将陀螺仪坐标系中三轴加速度的值转换为空间坐标系下的三轴加速度,同时去除重力加速度影响。具体实施方法如下:

设相机的偏航角,翻滚角,俯仰角分别为γ,θ。定义空间坐标系为n系,陀螺仪的坐标系为b系。n系到b系的转换由3*3的姿态矩阵tn2b来表示,由于是空间中两个标准正交基的转换,所以c是3*3的正交矩阵。姿态矩阵tn2b可以分解为三个3*3矩阵的乘积,这三个矩阵分别是偏航角的旋转矩阵俯仰角θ的旋转矩阵tθ,翻滚角γ的旋转矩阵tγ。他们的旋转矩阵如下:

将以上三个矩阵相乘即可得到空间坐标系n系到陀螺仪坐标系的转换关系姿态矩阵c,相乘的顺序由姿态角旋转的顺序决定。陀螺仪的旋转顺序是按照z轴,y轴,x轴依次进行的。

所以姿态矩阵tn2b有如下表示

将x轴输出的角度记为俯仰角θ,将y轴输出的角度记为翻滚角γ,将z轴输出的角度记为偏航角将输出角度按照公式(4)计算,得到的姿态矩阵tn2b即包含了所有陀螺仪和双目相机的姿态信息。

将姿态矩阵tn2b求逆,即可得到由陀螺仪坐标系到空间坐标系的转换关系tb2n

同时对公式(6)两边求导即可得到:

在公式(7)中,等式左边的加速度即为空间三维坐标系中,陀螺仪和双目视觉系统的加速度,不随着陀螺仪的姿态而变化,只与系统自身的运动状态相关。在系统静止的条件下,空间三维坐标系的加速度向量为:其中g为重力加速度。

第三步:对视觉里程计计算得到的相机精确位姿进行微分得到第一速度v1,对陀螺仪得到的三轴加速度进行积分得到第二速度v2,然后利用卡尔曼滤波对速度集合v1和v2进行融合,得到校正后的速度最优估计v。具体实施方法如下:

首先对系统状态进行预测,我们将陀螺仪获取到的加速度作为控制量,在上一时刻最优估计速度值的基础上预测当前时刻速度值;将上一时刻后验估计的方差与控制量的方差之和作为当前时刻的预测方差,我们选取控制量方差为0.5,预测方程如下:

状态方程如公式(8):

vpre=vpost+a*t(8)

系统方差估计如公式(9):

ppre=ppost+q(9)

其中,vpost为上一时刻的速度值,vpre为当前时刻的速度值,a为从陀螺仪获取的当前时刻的加速度,t为陀螺仪两次获取加速度值的时间差。ppost为上一时刻的后验估计方差,ppre为当前时刻的预测方差,q为控制量方差。

接下来,将视觉里程计计算得到的速度值当作测量值,与上述预测值结果,得到现在速度状态的最优化估计值,估计方程如下。

k增益方程如公式(10):

k=r*ppre/(ppre+0.5)(10)

速度值最优估计方程如公式(11):

vbest=vpre+k*(vget-vpre)(11)

预测方差估计方程如公式(12):

ppost=(1-k)*ppre(12)

其中,k为卡尔曼增益,由当前时刻预测方差和测量方差决定。r为测量方差,这里取所对应图像特征点的匹配率。

第四步:将上一步计算得到的各时刻速度值的最优估计作为控制量,对当前时刻位移状态进行估计;将上一时刻后验估计的方差与控制量的方差之和作为当前时刻的预测方差,我们选取控制量方差为1,预测方程如下。

状态方程如公式(13):

dpre=dpost+vbest*t(13)

系统方差估计如公式(14):

ppre=ppost+q(14)

其中,dpost为上一时刻的位移值,dpre为当前时刻的位移值,vbest为上一步骤中得到的速度的最优估计,t为陀螺仪两次获取加速度值的时间差。ppost为上一时刻的后验估计方差,ppre为当前时刻的预测方差,q为控制量方差。

接下来,将视觉里程计计算得到的相机位姿当作测量值,与上述预测值结果进行融合,得到相机运动姿态的最佳估计,估计方程如下。

k增益方程如公式(15):

k=r*ppre/(ppre+0.05)(15)

位移值最优估计方程如公式(16):

dbest=dpre+k*(dget-dpre)(16)

预测方差估计方程如公式(17):

ppost=(1-k)*ppre(17)

值得注意的是,在这里对位移的滤波取决于图像特征匹配率r,当r的值连续小于阈值0.02即在检测到连续的异常点后,不再对所得到的当前时刻预测位移与图像计算得到的位移进行第二次卡尔曼滤波,而是直接以当前时刻预测位移作为位移最优估计继续下一步骤的操作。这样可以避免在视觉里程计计算所得位移误差较大时对相机姿态校正造成干扰的情况。

第五步:对姿态矩阵进行滤波,方程如公式(18):

t=tn2b+r(c-tn2b)(18)

上式中t为相机运动姿态的最佳估计,tn2b为陀螺仪输入角度计算得到的姿态矩阵,c为由图像计算得到的姿态矩阵,r为图像匹配的成功率。

如图2所示,为本发明相机运动轨迹最优估计校正效果图,实线为实际轨迹,虚线为输入图像序列得到的相机姿态估计信息,点线虚线为校正后相机运动轨迹最优估计。由此可见,本发明利用陀螺仪传入的相机姿态信息对相机运动姿态估计误差进行矫正,降低了三维重建过程中相机运动姿态估计的误差。

步骤六,三维点云重建。根据视差图和相机运动轨迹最优估计得到三维点云数据。

步骤七,点云数据融合。将点云所在坐标系空间进行等间隔划分形成格网空间,格网的尺度根据点云数据的稠密程度进行调节。在格网空间确定的情况下,遍历格网空间去除点云数据冗余,具体方法如下:

如果格网中没有点云,则略过不做处理;

如果格网中只存在单个点云,则以此点云信息作为该格网点云信息;

如果格网中存在两个及以上的点云,则以格网的中心点坐标作为该格网点云坐标,以该格网中所有点云的rgb均值作为该格网的rgb值。

需要注意的是,为了保证点云精度,格网尺度的选取不应过大。

步骤八,全景点云数据合成。点云数据配准部分具体实施方法如下:

第一步:获取两组点云数据所在区间相机姿态估计的初始姿态,设两组点云分别为p1和p2,p1中相机初始坐标系为基准坐标系。

第二步:通过两组点云数据的初始姿态,计算出两个坐标系之间的旋转平移矩阵[r/t]以及点云所在格网id的对应关系。

第三步:由旋转平移矩阵[r/t]计算得到新点集p2′。

第四步:利用格网关系对经典icp算法进行改进,确定最终的[r/t]矩阵。具体实施方法如下:

a.对p1中的所有点,在p2′中搜索出其最近的点,组成一个点对;找出两个点集中所有的点对。在进行点对匹配时,我们以p1中的点为基准,在p2′中对应格网及其周围26个格网中搜索其对应点,得到点集对。

b.由点集对得到新的旋转、平移矩阵[r/t],通过[r/t]矩阵,对p2′中点云进行坐标转换,得到p2″。

c.如果点集p2′和p2″所在格网id对应关系未发生改变,停止迭代。

d.计算p2′到p2″的距离平方和,以连续两次距离平方和之差绝对值作为是否收敛的依据。若小于阈值,就收敛,停止迭代。

e.以p2″更新p2′,重复a-e。

点云数据融合部分具体实施方法参照步骤七。

如图3所示,图3(a)为第一局部三维点云数据仿真效果图,图3(b)为第二局部三维点云数据仿真效果图,图3(c)为第三局部三维点云数据仿真效果图。然后利用本发明方法对第一局部三维点云数据、第二局部三维点云数据和第三局部三维点云数据采用栅格法对三维点云数据进行点云数据配准,利用格网空间对点云数据进行融合后,得到的图4为融合后的全景点云数据仿真效果图。由此可见,本发明采用栅格法对三维点云数据进行点云数据配准,利用格网空间对点云数据进行融合。进而降低了三维重建过程中相机运动姿态估计的误差,提升了三维点云数据的精准性。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1