一种基于低成本RGB-D传感器的实时室内三维重建方法与流程

文档序号:16393837发布日期:2018-12-25 19:35阅读:280来源:国知局
一种基于低成本RGB-D传感器的实时室内三维重建方法与流程

本发明涉及室内场景的实时三维重建技术领域,特别是一种基于低成本rgb-d传感器的实时室内三维重建方法。

背景技术

三维重建技术一直是计算机图形学和计算机视觉领域的一个热点课题,早期的三维重建技术通常以二维图像作为输入,重建出场景中的三维模型,但是,受限于输入的数据信息不够丰富,重建出的三维模型通常不够完整、精度较低且真实感差。随后,出现使用激光、雷达等测距传感器或结构光技术来实现场景的三维重建,但由于这些设备价格昂贵且使用不便捷,所以应用场合受限。随着各种消费级rgb-d传感器的出现,基于rgb-d传感器的三维扫描和重建技术飞速发展,以微软的kinect、华硕的xtion以及因特尔的realsenced等为代表的rgb-d传感器因造价低廉、体积适当、操作方便且易于开发,使纯视觉进行三维重建的研究受到越来越多人的关注。

newcombe等人提出的开创性三维重建方法kinectfusion,能够使用单个kinect进行实时三维重建,它利用gpu的并行功能实时运行,并能够重建桌子、办公室隔间等小空间和物品,使用curless和levoy提供的截断符号距离函数(tsdf),允许场景表示并行化和高效化,但是该方法使用固定体积的网格模型融合点云来表示三维场景,这就造成只能重建固定的大小的场景,且使用的tsdf方法将整个待重建的空间划分成等大小的网格,当重建体积较大或者网格的空间分辨率较高时,会出现计算量过大而导致的硬件显存不够用,进一步出现场景重建失败等问题。并且kinectfusion算法没有回环检测和回环优化,这也造成当传感器移动距离过大时,不可避免的会有累积误差导致重建场景的漂移。因此,解决网格模型带来的场景限制以及误差累积导致的场景漂移都是本发明要解决的问题。

另外,深度图含有噪声和可以包含由遮挡和物体表面特性产生的空洞,这对于实现高质量的重建是一项挑战,也是本发明要解决的问题。



技术实现要素:

有鉴于此,本发明的目的是提出一种基于低成本rgb-d传感器的实时室内三维重建方法,用单个rgb-d传感器获取室内场景的深度图像和彩色图像,对获取的室内场景点云数据进行高效配准,实时生成精确的三维室内场景模型;本发明能够提供低成本、实时性好、易操作、快速的重建系统,产生高质量的点云。

本发明采用以下方案实现:一种基于低成本rgb-d传感器的实时室内三维重建方法,具体包括以下步骤:

步骤s1:构建一个面元m的无序列表,来表示三维重建的场景;

步骤s2:定义一个时间窗口阈值δt,将步骤s1中构建的面元m分为活动模型和非活动模型,只有标记为活动模型的面元才能够用于传感器位姿估计和点云地图的融合;

步骤s3:由rgb-d传感器获取室内场景的深度图像和彩色图像,通过帧到模型的几何追踪和光度追踪的联合优化,得到最新帧的传感器位姿估计,完成初步三维重建;

步骤s4:为步骤s3获得的每一帧点云数据构建变形图,将变形图应用于当前帧的面元m中,优化变形图后使用非刚性变形,使每一帧面元模型表面精确配准,以提高整体三维重建精度;

步骤s5:当传感器重新扫过已重建区域时,将非活动区域激活为活动区域,使重建地图的活动模型与非活动模型进行强对齐,进一步估计当前帧传感器位姿和点云地图融合,确保重建地图的局部表面一致性,最终完成室内环境的实时三维重建。

进一步地,所述步骤s1具体包括以下步骤:

步骤s11:每一个面元m具有以下属性:位置p∈r3,法线n∈r3,颜色c∈n,权重w∈r,半径r∈r,初始化时间戳t0,更新时间戳t;

其中每个面元半径表示为:式中,d是点云深度,f是深度传感器的焦距,nz是输入的深度图像通过中心差异计算得到的点云法线的z分量;其中,权重w的初始化值为其中γ是距传感器中心的归一化径向深度测量值,σ=0.6;

步骤s12:每个面元m参数的更新规则如下:

其中,上标符号'(例如p′)表示在实时原始深度图配准后给面元的新测量值;帽符号^(例如)表示面元的更新值。

进一步地,所述步骤s2具体为:

步骤s21:在当前时间下,计算每个面元m距上次更新参数的时间差δt,其中,

δt=tcur-tlast;

式中,tcur为当前时刻,tlast为面元m上一更新时刻;若δt≤δt,则认为面元m为活动模型;若δt>δt,则认为面元m为非活动模型。

进一步地,所述步骤s3具体包括以下步骤:

步骤s31:定义给定深度图d的像素点u∈ω的重投影p(u,d)=k-1μd(u),其中μ是像素u的同质化,k是传感器的固有矩阵;定义给定彩色图像c的像素点u∈ω的光度值为i(u,c)=c(u)ti,其中i=[0.114,0.299,0.587]t,所有传感器位姿的变换矩阵表示为:

式中,旋转矩阵rt∈so3和位移向量tt∈r3

步骤s32:几何位姿估计:在当前帧的深度图像和上一帧的预测活动模型深度图像之间,找到最优运动参数ζ,使点云的重投影误差的能量函数最小化,其中点云的重投影误差的能量函数为:

式中,中第k个节点的重投影,vk和nk是在t-1时刻传感器坐标系下的节点和法线,t表示从前一时刻传感器位姿到当前位姿的变换矩阵,表示指数映射;

步骤s33:光度位姿估计:在当前帧的彩色图像和上一帧的预测活动模型彩色图像之间,找到最优运动参数ζ,使像素之间的光度误差的能量函数最小化,其中所述像素之间的光度误差的能量函数为:

式中,t表示从前一时刻传感器位姿到当前位姿的变换矩阵,表示指数映射;其他说明如步骤s31;

步骤s34:联合优化:最小化联合能量函数:

etracking=eicp+wrgbergb;

式中,wrgb=0.1;其中采用高斯-牛顿非线性最小二乘法和三级粗-细金字塔方法来最小化联合能量函数,为了解决每次迭代,计算最小二乘解:

进而产生改进的传感器变换估计:

式中,ζ=[wtxt]t,w∈r3,x∈r3,j表示几何和光度联合测量的雅克比矩阵;此计算结果为一个新的传感器位姿估计值其中,为更新后的传感器位姿估计值,为上一时刻更新后的传感器位姿估计值。

进一步地,所述步骤s4具体包括以下步骤:

步骤s41:变形图由分布在整个模型中的一组节点和边组成,每个节点gn具有时间戳位置和相邻节点集合n(gn),每个节点与邻近节点组成变形图的定向边;一个变形图都有一个邻近节点计数k,使得对于每个节点以一个3x3矩阵和一个3x1向量的形式储存仿射变换结果;

步骤s42:每一帧都为一组面元m构造一个新的变形图,从一组面元m中采样作为节点,以构成变形图;

步骤s43:在变形图上构建四个能量函数加权来优化变形图;

第一个能量函数是最大化变形刚度:

第二个能量函数是一个正则化项,用以确保整个图形变形平滑:

第三个能量函数是一个约束项,该约束条件使位置约束集合上的误差最小化:

式中,是每个面元更新后的参数,元组表示目标位置和变形前的原位置的一对点,每个点的时间戳分别存储在中;

第四个能量函数用于固定模型的非活动区域,用以确保算法始终将模型的活动区域向非活动坐标系变形:

最终总能量函数为:

edef=wroterot+wregereg+wconecon+wconepin;

式中,wrot=1,wreg=10,wcon=100,在所有节点上使用高斯-牛顿算法使总成本最小化,从而得到最优的变形结果,然后更新每一个面元m的参数,使其在最优位置;

步骤s44:为了将变形图应用到面元上,每个面元ms先识别变形图l(ms,g)中的一组节点,然后根据步骤s43的优化结果对每个面元位置坐标更新:

法向量更新:

式中,wn(ms)表示节点gn对面元ms的影响权值:

式中,dmax表示k+1个最邻近节点到面元ms的欧几里德距离,从而得到优化后的点云模型。

进一步地,所述步骤s42具体包括以下步骤:

步骤s421:从总体面元m中均匀分布采样,使得|g|≤|m|,g的空间密度反映m的空间密度;初始化一个新的变形图,将节点位置设为面元位置,即将节点时间戳设为面元初始化时间戳,即集合g使用n来排列,即

s422:为了计算变形图之间连通性以及防止时间不相关的模型表面区域相互影响(即活动区域和非活动区域),使用集合g的初始化时间顺序,将节点按顺序连接到最邻近计数k,定义:

进一步地,所述步骤s5具体包括以下步骤:

步骤s51:在重建过程中,不断融入模型的活动区域,同时逐渐标记一段时间内没有看到的区域为非活动状态区域,地图的非活动区域不用于传感器位姿估计和点云融合,直到活动模型和非活动模型之间存在回环,此时匹配的非活动区域再次变为活动状态;

步骤s52:产生一组表面约束集合q:

式中,其中,h∈se3为从θ到ψ的相对变换矩阵,将相对约束集合q带入步骤s43中用于对齐这两个视图的最终能量函数中,当etracking足够小且内部测量数量高于设定阈值时,完成将集合θ中的表面向集合ψ中的表面对齐,完成局部回环检测,从而重建出高精度的三维模型。

进一步地,步骤s51还包括:将点云模型中的面元集合分为两个不相交的集合θ和ψ,从而给定模型ms中每个面元的当前时间戳t,如果ms∈θ,t-ms<δt和ms∈ψ,t-ms≥δt,则使θ为有效集合,ψ为无效集合。

与现有技术相比,本发明有以下有益效果:本发明提供一种基于低成本rgb-d传感器的实时室内三维重建方法,用单个rgb-d传感器获取室内场景的深度图像和彩色图像,对获取的室内场景点云数据进行高效配准,实时生成精确的三维室内场景模型。本发明能够提供低成本、实时性好、易操作、快速的重建系统,产生高质量的点云。

附图说明

图1本发明实施例的方法流程示意图。

图2为本发明实施例构建的面元结构示意图。

图3为本发明实施例构建的变形图结构示意图。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

如图1至图3所示,本实施例提供了一种基于低成本rgb-d传感器的实时室内三维重建方法,具体包括以下步骤:

步骤s1:构建一个面元m的无序列表,来表示三维重建的场景;

步骤s2:定义一个时间窗口阈值δt,将步骤s1中构建的面元m分为活动模型和非活动模型,只有标记为活动模型的面元才能够用于传感器位姿估计和点云地图的融合;

步骤s3:由rgb-d传感器获取室内场景的深度图像和彩色图像,通过帧到模型的几何追踪和光度追踪的联合优化,得到最新帧的传感器位姿估计,完成初步三维重建;

步骤s4:为步骤s3获得的每一帧点云数据构建变形图,将变形图应用于当前帧的面元m中,优化变形图后使用非刚性变形,使每一帧面元模型表面精确配准,以提高整体三维重建精度;

步骤s5:当传感器重新扫过已重建区域时,将非活动区域激活为活动区域,使重建地图的活动模型与非活动模型进行强对齐,进一步估计当前帧传感器位姿和点云地图融合,确保重建地图的局部表面一致性,最终完成室内环境的实时三维重建。

在本实施例中,所述步骤s1具体包括以下步骤:

步骤s11:每一个面元m具有以下属性:位置p∈r3,法线n∈r3,颜色c∈n,权重w∈r,半径r∈r,初始化时间戳t0,更新时间戳t;

其中每个面元半径表示为:式中,d是点云深度,f是深度传感器的焦距,nz是输入的深度图像通过中心差异计算得到的点云法线的z分量;其中,权重w的初始化值为其中γ是距传感器中心的归一化径向深度测量值,σ=0.6;

步骤s12:每个面元m参数的更新规则如下:

其中,上标符号'(例如p′)表示在实时原始深度图配准后给面元的新测量值;帽符号^(例如)表示面元的更新值。

在本实施例中,所述步骤s2具体为:

步骤s21:在当前时间下,计算每个面元m距上次更新参数的时间差δt,其中,

δt=tcur-tlast;

式中,tcur为当前时刻,tlast为面元m上一更新时刻;若δt≤δt,则认为面元m为活动模型;若δt>δt,则认为面元m为非活动模型。

在本实施例中,所述步骤s3具体包括以下步骤:

步骤s31:定义给定深度图d的像素点u∈ω的重投影p(u,d)=k-1μd(u),其中μ是像素u的同质化,k是传感器的固有矩阵;定义给定彩色图像c的像素点u∈ω的光度值为i(u,c)=c(u)ti,其中i=[0.114,0.299,0.587]t,所有传感器位姿的变换矩阵表示为:

式中,旋转矩阵rt∈so3和位移向量tt∈r3

步骤s32:几何位姿估计:在当前帧的深度图像和上一帧的预测活动模型深度图像之间,找到最优运动参数ζ,使点云的重投影误差的能量函数最小化,其中点云的重投影误差的能量函数为:

式中,中第k个节点的重投影,vk和nk是在t-1时刻传感器坐标系下的节点和法线,t表示从前一时刻传感器位姿到当前位姿的变换矩阵,表示指数映射;

步骤s33:光度位姿估计:在当前帧的彩色图像和上一帧的预测活动模型彩色图像之间,找到最优运动参数ζ,使像素之间的光度误差的能量函数最小化,其中所述像素之间的光度误差的能量函数为:

式中,t表示从前一时刻传感器位姿到当前位姿的变换矩阵,表示指数映射;其他说明如步骤s31;

步骤s34:联合优化:最小化联合能量函数:

etracking=eicp+wrgbergb;

式中,wrgb=0.1;其中采用高斯-牛顿非线性最小二乘法和三级粗-细金字塔方法来最小化联合能量函数,为了解决每次迭代,计算最小二乘解:

进而产生改进的传感器变换估计:

式中,ζ=[wtxt]t,w∈r3,x∈r3,j表示几何和光度联合测量的雅克比矩阵;此计算结果为一个新的传感器位姿估计值其中,为更新后的传感器位姿估计值,为上一时刻更新后的传感器位姿估计值。

在本实施例中,所述步骤s4具体包括以下步骤:

步骤s41:变形图由分布在整个模型中的一组节点和边组成,每个节点gn具有时间戳位置和相邻节点集合n(gn),每个节点与邻近节点组成变形图的定向边;一个变形图都有一个邻近节点计数k,使得对于每个节点以一个3x3矩阵和一个3x1向量的形式储存仿射变换结果;

步骤s42:每一帧都为一组面元m构造一个新的变形图,从一组面元m中采样作为节点,以构成变形图;

步骤s43:在变形图上构建四个能量函数加权来优化变形图;

第一个能量函数是最大化变形刚度:

第二个能量函数是一个正则化项,用以确保整个图形变形平滑:

第三个能量函数是一个约束项,该约束条件使位置约束集合上的误差最小化:

式中,是每个面元更新后的参数,元组表示目标位置和变形前的原位置的一对点,每个点的时间戳分别存储在中;

第四个能量函数用于固定模型的非活动区域,用以确保算法始终将模型的活动区域向非活动坐标系变形:

最终总能量函数为:

edef=wroterot+wregereg+wconecon+wconepin;

式中,wrot=1,wreg=10,wcon=100,在所有节点上使用高斯-牛顿算法使总成本最小化,从而得到最优的变形结果,然后更新每一个面元m的参数,使其在最优位置;

步骤s44:为了将变形图应用到面元上,每个面元ms先识别变形图l(ms,g)中的一组节点,然后根据步骤s43的优化结果对每个面元位置坐标更新:

法向量更新:

式中,wn(ms)表示节点gn对面元ms的影响权值:

式中,dmax表示k+1个最邻近节点到面元ms的欧几里德距离,从而得到优化后的点云模型。

在本实施例中,所述步骤s42具体包括以下步骤:

步骤s421:从总体面元m中均匀分布采样,使得|g|≤|m|,g的空间密度反映m的空间密度;初始化一个新的变形图,将节点位置设为面元位置,即将节点时间戳设为面元初始化时间戳,即集合g使用n来排列,即

s422:为了计算变形图之间连通性以及防止时间不相关的模型表面区域相互影响(即活动区域和非活动区域),使用集合g的初始化时间顺序,将节点按顺序连接到最邻近计数k,定义:

在本实施例中,所述步骤s5具体包括以下步骤:

步骤s51:在重建过程中,不断融入模型的活动区域,同时逐渐标记一段时间内没有看到的区域为非活动状态区域,地图的非活动区域不用于传感器位姿估计和点云融合,直到活动模型和非活动模型之间存在回环,此时匹配的非活动区域再次变为活动状态;

步骤s52:产生一组表面约束集合q:

式中,其中,h∈se3为从θ到ψ的相对变换矩阵,将相对约束集合q带入步骤s43中用于对齐这两个视图的最终能量函数中,当etracking足够小且内部测量数量高于设定阈值时,完成将集合θ中的表面向集合ψ中的表面对齐,完成局部回环检测,从而重建出高精度的三维模型。

在本实施例中,步骤s51还包括:将点云模型中的面元集合分为两个不相交的集合θ和ψ,从而给定模型ms中每个面元的当前时间戳t,如果ms∈θ,t-ms<δt和ms∈ψ,t-ms≥δt,则使θ为有效集合,ψ为无效集合

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

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