CN110706332B - 一种基于噪声点云的场景重建方法 - Google Patents
一种基于噪声点云的场景重建方法 Download PDFInfo
- Publication number
- CN110706332B CN110706332B CN201910908114.9A CN201910908114A CN110706332B CN 110706332 B CN110706332 B CN 110706332B CN 201910908114 A CN201910908114 A CN 201910908114A CN 110706332 B CN110706332 B CN 110706332B
- Authority
- CN
- China
- Prior art keywords
- noise
- point
- point cloud
- depth map
- matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration by the use of more than one image, e.g. averaging, subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
Abstract
本发明提供了一种基于深度相机的场景建模方法,属于图像处理技术领域,使用基于噪声点云的方法来表达模型,并构建包含噪声的位姿估计以及模型聚合方法,提高模型建模质量,提高环境感知的能力。本发明根据深度相机获取深度图数据,基于采用带概率的噪声点云模型,设计相应的位姿计算和聚合算法,减少噪声数据影响,从而可以提升模型质量和位姿准确性,得到更好的建模效果。
Description
技术领域
本发明属于图像处理技术领域,涉及一种基于深度相机的场景建模方法。
背景技术
随着Kinect的出现,廉价的深度相机变得触手可及,使得基于深度相机的三维重建算法的广泛运用成为可能。基于深度相机,Newcombe利用TSDF三维模型表示方法,提出KinectFusion算法。TSDF是一种非参数化的模型表示方法,使用空间中点到平面的距离函数和权重函数表示整个模型,对于点云融合,TSDF算法使用位姿将点云进行注册,通过加权算法对函数进行更新,由于加权函数的引入,TSDF算法对于数据噪声有一定程度上的鲁棒性。
有学者针对TSDF模型重建算法精度和广度不可兼得,且不适用动态场景重建的问题,提出了一种基于面片模型的重建方法,直接使用输入的深度图进行重建,避免了TSDF算法中模型转换的过程,同时使用标准图形管线处理位姿估计、杂点去除、模型聚合等关键步骤,提高了重建的效率。
在近几年,基于点云的模型表示方法逐渐流行起来。相对于TSDF模型表示方法,点云模型占用空间更小,对噪声的表达能力更强,预处理步骤耗时更短。
在位姿估计方面,过去的工作多使用迭代最近邻算法(Iterative closestpoint,ICP)来计算深度图位姿,然后根据位姿进行聚合,得到三维场景模型。
背景技术的缺陷:
从目前基于深度相机的场景建模方法来看,首先在模型表达方法方面,传统的TSDF模型表达方法占用空间大,对于大场景重建缺乏灵活性;基于面片的表达方法,虽然可以提高重建效率,但仍存在扩展性不足,应用场景受限的问题;目前使用较多的点云模型存在构网方面灵活性差的问题,同时存在噪声模型描述不足,导致噪声处理不够准确。在位姿估计方面,传统的ICP方法对于深度噪声图的处理不够完善,当采集数据噪声过大时,位姿的误差导致模型细节失真。
发明内容
本发明的目的是提出一种基于噪声点云模型的三维重建方法,使用基于噪声点云的方法来表达模型,并构建包含噪声的位姿估计以及模型聚合方法,提高模型建模质量,提高环境感知的能力。用于增强现实系统中的环境感知,改善虚拟信息与显示环境的交互能力。
本发明根据深度相机获取深度图数据,基于采用带概率的噪声点云模型,设计相应的位姿计算和聚合算法,减少噪声数据影响,从而可以提升模型质量和位姿准确性,得到更好的建模效果,
本发明针对当前三维重建中法对噪声处理不足,建模效果不够精细的缺点,使用带概率的噪声点云表示模型,并充分考虑噪声对位姿的的影响,通过CUDA加速的高斯牛顿法最小化马氏距离进行位姿求解。构建全局的注册方法,将多帧同时进行求解,增加算法的并行度同时提高了GPU的利用率。最终实现了带噪声的点云融合算法,提高了建模效率和建模质量。
本发明的技术方案是:一种基于噪声点云模型的三维重建方法,其特征在于,包括以下步骤:
S1、确定噪声点云模型的表达方法;考虑深度图的两方面噪声:表面采样噪声和测量噪声;
S2、在通过深度相机获取深度图数据后,先对深度图进行预处理;
1)将深度图像素,通过两次降采样,再得到两种像素的图像,共构成三级像素图像;
2)通过深度图计算得到点云图;
3)求得点云图中每个点的法向量
4)不考虑深度图中的噪声数据,求出每张深度图的位姿,该位姿为粗略位姿,作为第5)步协方差矩阵的计算提供输入;
5)根据每张深度图的粗略位姿求出表面采样噪声和测量噪声对应的协方差矩阵;
S3、然后利用预处理结果进行全局位姿估计,得到点云数据;
输入连续的两帧深度图,记对应的点云为Vs和Vt,得到Vs、Vt之间的对应关系;即到Vs到Vt的变换矩阵T;求出第i帧和i-1帧之间的变换矩阵;得到帧与帧之间的位姿关系;
S4、最终基于点云数据,设计点云聚合算法将多个注册后的点云融合的点云,生成建模模型;
采用哈希表记录帧坐标和模型中点索引的对应关系,根据在位姿估计算法中得到的当前帧和上一帧之间点的对应关系,求得当前帧和当前模型的对应关系。
一种基于噪声点云模型的三维重建方法,其特征在于,步骤如下
S1、确定噪声点云模型的表达方法;考虑深度图的两方面噪声:表面采样噪声和测量噪声;
u、v、d的加上下标σ2分别表示u、v和d数据的方差;
其中:
fx、fy分别表示x、y方向上缩放与相机焦距的乘积,ux、uy分别表示像素在x、y轴方向的平移量;
测量点pk同时受表面采样噪声和测量噪声影响,使用混合高斯分布描述,如公式4所示:
S2.深度图预处理
在进行位姿估计前,对深度图进行预处理
1)将深度图像素,通过两次降采样,再得到两种像素的图像,共构成三级像素图像;
2)通过深度图计算得到点云图
根据深度图中像素坐标,求得对应点云图中像素的值;
3)求得点云图中每个点的法向量
对点云的每个点处得到拟合平面,求拟合平面法向量,即为该点处的法向量;
4)不考虑深度图中的噪声数据,求出每张深度图的位姿,该位姿为粗略位姿,作为第5)步协方差矩阵的计算提供输入;
5)协方差矩阵的计算:指求出表面采样噪声和测量噪声对应的协方差矩阵
根据每张深度图的粗略位姿求出表面采样噪声和测量噪声对应的协方差矩阵;
S3.基于噪声点云模型的全局位姿估计
1)输入连续的两帧深度图,记对应的点云为Vs和Vt,得到Vs、Vt之间的对应关系;即到Vs到Vt的变换矩阵T;
11)对于Vs中的点ps,Vt中离ps最近的点pt,为相应的对应点;设Vs到Vt的变换矩阵为T,其中旋转部分为R,平移部分为t,则对应点之间的误差,为公式5所示;
Δp=Rps+t-pt (公式5)
12)使用误差协方差矩阵作为能量函数的权重;
求出误差和误差协方差矩阵后,使用误差协方差矩阵的逆矩阵作为能量函数的权重,得到马氏距离,结果如公式7所示;
13)使用高斯牛顿法最小化马氏距离求得变换矩阵;
Δp=e(x)+JΔx (公式8)
其中J为雅各比矩阵(公式2中的Jf),将e(x)简记为e,把公式8带入公式7,得到:
Ek=ck+2bkΔx+ΔxTHkΔx (公式9)
其中ck=eTΣ-1e,bk=eT∑-1J,Hk=JTΣ-1J,k表示点云Vs中的第k个点;
通过以上k个点与对应点之间的马氏距离,得到点云Vs中所有点与对应点之间马氏距离,即求解得到:
令c=∑ck,b=∑bk,H=∑Hk,其中b为1x3维矩阵,H为3x3维矩阵;
进行求和得到方程HΔx=-bT,并求解方程HΔx=-bT得到本次迭代的步长Δx;
2)对N帧的位姿进行估计,记其中一帧为第i帧;第i帧和i-1帧作为连续的两帧深度图,采用上述步骤,求出第i帧和i-1帧之间的变换矩阵;得到帧与帧之间的位姿关系;
S4.点云聚合
用F表示哈希函数,
(1)初始化哈希表;
输入第一帧时,初始化点云模型,使用当前帧作为点云模型;同时初始化哈希表,设深度图的尺寸为W×H【实际值为640×480】,以深度图的像素坐标(u,v)为哈希表中的键,该健对应的哈希值设为u×W+v,作为F(u,V)的初始值,其中u∈[0,H),v∈[0,W)。
(2)查询哈希表
根据当前帧和上一帧之间的匹配关系,求当前帧和点云模型中的点的匹配关系:
(3)更新哈希表;
通过深度图中坐标为(u,v)的点在点云中的对应点的索引p更新哈希表,
使用哈希表得到输入帧和当前点云中的点的对应关系,对于在当前点云中没有对应值的点,直接加入点云,对于匹配点,将两个点融合成一个;令连续两深度图对应点云模型Vs、Vt中的对应点的坐标为ps和pt,聚合后新的点的坐标为的初始值为pt,通过优化到ps,pt的马氏距离之和进行求解,目标函数如公式11所示;
到此,完成一对对应点的聚合;
通过将以上对于一对对应点的聚合方法扩展到当前帧中n对对应点聚合过程中,将n对点联合优化,利用GPU加速求解过程,求解得到新的聚合点优化得到后求出对应的表面采样噪声和测量噪声,用于下一迭代计算过程,重新计算协方差矩阵求得表面采样噪声,对于测量噪声,使用简单的加权函数得到:
经过不断的聚合迭代过程,得到并更新基于噪声数据的点云模型。
本发明的效果:
与传统场景建模方法相比,本发明所提出的位姿估计与聚合重建方法,采用噪声点云模型作为模型表达方法,在建模过程中误差累积较小。本发明所提出重建方法的局部建模成果如图3和4所示,相较于传统方法在模型拐角处产生畸变以及部分区域模型缺失问题,本发明所提出重建方法的建模成果细节更好,基本不会产生模型畸变和模型缺失现象,具有更好的建模质量。
优化建模速度,改善虚拟信息与现实环境交互的实时性。
附图说明
图1本发明中的位姿估计与聚合方案流程图
图2本发明中的基于噪声点云的模型聚合流程图
图3“转角位置”局部建模成果:其中:(a)本发明建模成果(b)传统建模方法
图4完整平面的建模成果:其中:(a)本发明建模成果(b)传统建模方法
具体实施方式
一种基于噪声点云模型的三维重建方法,在通过深度相机获取深度图数据后,先对深度图进行预处理,然后利用预处理结果进行全局位姿估计,得到点云数据,最终基于点云数据,设计点云聚合算法将多个注册后的点云融合成全局、统一的点云,生成建模模型。具体描述如下:
一种基于噪声点云模型的三维重建方法,包括以下步骤:
S1、确定噪声点云模型的表达方法;
考虑深度图的两方面噪声:表面采样噪声和测量噪声;
u、v、d的加上下标σ2分别表示u、v和d数据的方差;
其中:
fx、fy分别表示x、y方向上缩放与相机焦距的乘积,ux、uy分别表示像素在x、y轴方向的平移量;
测量点pk同时受表面采样噪声和测量噪声影响,使用混合高斯分布描述,如公式4所示:
S2.深度图预处理
在进行位姿估计前,对深度图进行预处理,预处理分为五个部分:构建图片金字塔、计算点云图、法线估计、位姿预估计和协方差矩阵计算
1)将深度图像素,通过两次降采样,再得到两种像素的图像,共构成三级像素图像;
进一步的,深度图输入分辨率尺寸为640*480像素,通过两次降采样,得到320*240像素和160*120像素两种尺寸;即构成三级图像金字塔;
2)通过深度图计算得到点云图
根据深度图中像素坐标,求得对应点云图中像素的值;
进一步地,为了平衡读取速度和程序的复杂度,使用内存对齐的方法,将点云图的每个像素值交叉存储在内存。
进一步地,同时为了提高写入速度,在生成点云图时,使用寄存器将像素的三个分量进行缓存,然后一次性写入显存,减少写入次数。
3)求得点云图中每个点的法向量
对点云的每个点处得到拟合平面,求拟合平面法向量,即为该点处的法向量;
进一步地,用对应点上下左右四个点拟合平面,垂直于平面的向量即为法向量;
4)不考虑深度图中的噪声数据,求出每张深度图的位姿,该位姿为粗略位姿,作为第5)步协方差矩阵的计算提供输入;
进一步,以每21张深度图为一组,使用ICP算法粗略的求出每张深度图到第10张深度图的粗略位姿。
协方差矩阵的计算:指求出表面采样噪声和测量噪声对应的协方差矩阵
根据每张深度图的粗略位姿求出表面采样噪声和测量噪声对应的协方差矩阵;
进一步地,对于表面采样噪声协方差矩阵的求解,使用点云图中以对应点为中心,N为边长的矩形内的点作为输入求出协方差矩阵,同时采用CUDA的纹理内存对点云矩阵进行缓存,加快求解过程的访问速度。
进一步地,对于测量噪声对应的协方差矩阵的求解,分为三个步骤。第一步求深度图的协方差,将邻近帧根据位姿预估计步骤中得到的位姿进行注册,求出相同坐标深度值的协方差。第二步根据每个像素的坐标,通过公式2求出雅各比矩阵。第三步使用每一个像素对应的协方差,通过公式3求出该像素对应三维点的协方差矩阵。
S3.基于噪声点云模型的全局位姿估计
【根据深度图预处理结果,采用SLAM算法中图优化的思想,考虑点云的噪声,通过最小化马氏距离的方法进行全局位姿求解;】
1)输入连续的两帧深度图,记对应的点云为Vs和Vt,得到Vs、Vt之间的对应关系;即到Vs到Vt的变换矩阵T;
11)对于Vs中的点ps,Vt中离ps最近的点pt,为相应的对应点;设Vs到Vt的变换矩阵为T,其中旋转部分为R,平移部分为t,则对应点之间的误差,为公式5所示;
Δp=Rps+t-pt (公式5)
12)使用误差协方差矩阵作为能量函数的权重;
求出误差和误差协方差矩阵后,使用误差协方差矩阵的逆矩阵作为能量函数的权重,得到马氏距离,结果如公式7所示;
E=(Δp)T∑-1(Δp) (公式7)
13)使用高斯牛顿法最小化马氏距离求得变换矩阵;
Δp=e(x)+JΔx (公式8)
其中J为雅各比矩阵(公式2中的Jf),将e(x)简记为e,把公式8带入公式7,得到:
Ek=ck+2bkΔx+ΔxTHkΔx (公式9)
其中ck=eT∑-1e,bk=eT∑-1J,Hk=JTΣ-1J,k表示点云Vs中的第k个点;
通过以上k个点与对应点之间的马氏距离,得到点云Vs中所有点与对应点之间马氏距离,即求解得到:
E=∑Ek=∑ck+2∑bkΔx+ΔxT∑HkΔx (公式10)
令c=∑ck,b=∑bk,H=∑Hk,其中b为1x3维矩阵,H为3x3维矩阵;
进行求和得到方程HΔx=-bT,并求解方程HΔx=-bT得到本次迭代的步长Δx;
【由于公式10求和过程中的耦合度较低】进一步地,直接用CUDA加速的算法进行矩阵的求和;得到并求解方程HΔx=-bT得到本次迭代的步长Δx,使用步长更新x;
3)对N帧的位姿进行估计,记其中一帧为第i帧;第i帧和i-1帧作为连续的两帧深度图,采用上述步骤,求出第i帧和i-1帧之间的变换矩阵;得到帧与帧之间的位姿关系;
S4.点云聚合
所设计聚合算法,采用哈希表记录帧坐标和模型中点索引的对应关系,根据在位姿估计算法中得到的当前帧和上一帧之间点的对应关系,求得当前帧和当前模型的对应关系;
具体操作如下:
(1)初始化哈希表;
输入第一帧时,初始化点云模型,使用当前帧作为点云模型;同时初始化哈希表,设深度图的尺寸为W×H【实际值为640×480】,以深度图的像素坐标(u,v)为哈希表中的键,该健对应的哈希值设为u×W+v,作为F(u,V)的初始值,其中u∈[0,H),v∈[0,W)。
(2)查询哈希表
根据当前帧和上一帧之间的匹配关系,求当前帧和点云模型中的点的匹配关系:
(3)更新哈希表;
通过深度图中坐标为(u,v)的点在点云中的对应点的索引p更新哈希表,
使用哈希表得到输入帧和当前点云中点的对应关系,对于在当前点云中没有对应值的点,直接加入点云,对于匹配点,将两个点融合成一个;令连续两深度图对应点云模型Vs、Vt中的对应点的坐标为ps和pt,聚合后新的点的坐标为的初始值为pt,通过优化到ps,pt的马氏距离之和进行求解,目标函数如公式11所示。
完成一对对应点的聚合;
通过将以上对于一对对应点的聚合方法扩展到当前帧中n对对应点聚合过程中,将n对点联合优化,利用GPU加速求解过程,求解得到新的聚合点优化得到后求出对应的表面采样噪声和测量噪声,用于下一迭代计算过程,重新计算协方差矩阵求得表面采样噪声,对于测量噪声,使用简单的加权函数得到:
经过不断的聚合迭代过程,得到并更新基于噪声数据的点云模型。
本发明所描述的相机位姿估计与聚合设计方案如图1所示,在通过深度相机获取深度图数据后,先对深度图进行预处理,然后利用预处理结果进行全局位姿估计,得到点云数据,最终基于点云数据,设计点云聚合算法将多个注册后的点云融合成全局、统一的点云,生成基于深度数据的环境建模模型。
1、噪声点云模型
在进行位姿估计和聚合算法设计前,首先应确定点云模型的表达方法。在本发明的应用场景中,深度图的噪声主要由两方面来源:表面采样噪声和测量噪声。
设相机坐标系内点的坐标为:pk=(x,y,z)T,根据射影关系,得到深度图内的点到三维点的变换关系,结果如公式1所示。
综合以上结果,测量点pk同时受表面采样噪声和测量点噪声影响,使用混合高斯分布描述,如公式4所示。
2.深度图预处理
在进行位姿估计前,对深度图进行预处理,为位姿估计提供数据。预处理分为五个部分:构建图片金字塔、计算点云图、法线估计、位姿预估计和协方差矩阵计算。
在本发明中,深度图输入尺寸为640*480,通过两次降采样,得到320*240和160*120两种尺寸,构成三级图像金字塔。采用CUDA对降采样进行加速,为了加快访存速度,使用纹理内存对图片进行缓存。
点云图属于结构化的点云,用二维矩阵表示,矩阵中的每一个元素表示一个三维点的坐标。设深度图中坐标为(u,v)的的深度为d,根据公式1求得对应点云图中像素的值。为了平衡读取速度和程序的复杂度,本发明使用内存对齐的方法,将点云图的每个像素交叉存储。同时为了提高写入速度,在生成点云图时,使用寄存器将像素的三个分量进行缓存,然后一次性写入显存,减少写入次数。
法线估计指通过点云图估计得到法线图,通过对点云的平面进行拟合,求拟合平面在每个点处的法线得到法线图。法线图同样用二维矩阵表示,矩阵的每个元素为对应点的法线。为了加快速度,采用一种近似的平面拟合方法,用对应点上下左右四个点拟合平面,垂直于平面的向量即为法线,坐标为(u,v)的点对应的法线为:(V(u+1,v)-V(u,v))×(V(u,v+1)-v(u,v))。对于每个平面,法线存在两个方向,指向平面内部或者指向平面外部,为了保证法线方向的一致性,对法线方向进行调整,使用与光心和对应点连线为锐角的方向作为法向量。
为了求得测量噪声,需要将邻近帧进行注册。为了加快算法的速度,不考虑数据中的噪声,使用ICP算法粗略的求出位姿。以每21张深度图为一组,位姿预估计指求出每张深度图到第10张深度图的粗略位姿,为协方差矩阵的计算提供输入。使用基于图片金字塔的icp算法进行注册,使用L3级图片求得位姿,将此位姿作为初始值用于L2级图片的icp算法,依次类推。在icp算法中,欧式距离最近的点为对应点。由于点云具有结构性,使用近似最近邻算法求点与点之间的对应关系。
协方差矩阵的计算指求出表面采样噪声和测量噪声对应的协方差矩阵。对于表面采样噪声,使用点云图中以对应点为中心,N(本发明中N取10)为边长的矩形内的点作为输入求出协方差矩阵。为了利用数据的空间局部性,使用CUDA的纹理内存对点云矩阵进行缓存,加快访存速度。对于测量噪声的求解,分为三个步骤。第一步求深度图的协方差,将邻近帧根据位姿预估计步骤中得到的位姿进行注册,求出相同坐标深度值的协方差。第二步根据每个像素的坐标,通过公式2求出雅各比矩阵。第三步使用每一个像素对应的协方差,通过公式3求出该像素对应三维点的协方差矩阵。
3.基于噪声点云模型的全局位姿估计
本发明根据深度图预处理结果,采用SLAM算法中图优化的思想,充分考虑点云的噪声,通过最小化马氏距离的方法进行全局位姿求解。
输入连续的两帧深度图,记对应的点云为Vs和Vt,计算两者中点的对应关系。对于Vs中的点ps,Vt中离ps最近的点pt为相应的对应点,使用近似最近邻算法得到。优化算法中使用的能量函数为对应点之间的欧式距离,设Vs到Vt的变换矩阵为T,其中旋转部分为R,平移部分为t,则对应点之间的误差如公式5所示。
Δp=Rps+t-pt (公式5)
求出误差公式和协方差矩阵后,使用协方差矩阵的逆作为权重,得到马氏距离,结果如公式7所示。
E=(Δp)TΣ-1(Δp) (公式7)
使用高斯牛顿法或者LM法[37,38]最小化马氏距离求得变换矩阵。由于旋转矩阵R属于特殊正交群,不构成子空间,优化算法中增加步长的步骤会导致求得的R不满足旋转矩阵的条件,使用指数映射的方法,引入3维向量令其中为旋转矩阵的初始值,的初始值为0,将对R的优化转化为对的优化。令Δp(T)=e(x+Δx),其中x为T的初始值,为6维向量。在x处对Δp进行线性展开得到:
Δp=e(x)+JΔx (公式8)
其中J为雅各比矩阵。将e(x)简记为e,把公式8带入7,得到:
Ek=ck+2bkΔx+ΔxTHkΔx (公式9)
其中ck=eT∑-1e,bk=eT∑-1J,Hk=JT∑-1J。
以上是对一对对应点之间的马氏距离的推导以及相应的线性化,实际优化的目标为所有对应点之间的马氏距离:
E=∑Ek=∑ck+2∑bkΔx+ΔxT∑HkΔx (公式10)
令c=∑ck,b=∑bk,H=∑Hk,其中b为1x3维矩阵,H为3x3维矩阵。由于公式10求和过程中的耦合度较低,直接用CUDA加速的算法进行矩阵的求和。求解方程HΔx=-bT得到本次迭代的步长Δx,使用步长更新x。
为了提高建模过程中GPU的利用率,使用一种全局的注册方法,将所有帧的位姿同时优化,增加GPU数据的吞吐量,提高硬件的使用效率。设需要对N帧的位姿进行估计,第i帧记为Di,求出第i帧和i-1帧之间点的对应关系,使用Di到Di-1的位姿关系Ti,i-1作为约束。优化目标函数为所有对应点之间的马氏距离之和,使用高斯牛顿法对能量函数进行优化,得到帧与帧之间的位姿关系,进而通过累乘得到帧与模型之间的位姿关系。这种全局的注册方法使用累乘计算位姿,但是帧与帧之间的位姿变化通过全局优化得到,不存在累积误差的问题。
4.点云聚合
通过位姿估计算法得到每一帧的位姿,将点云变换到世界坐标系中。为了减少点云的冗余度,使用聚合算法将多个注册后的点云融合成全局、统一的点云,从而得到基于点云的建模模型。
聚合算法中关键步骤是根据在位姿估计算法中得到的当前帧和上一帧之间点的对应关系,求得当前帧和当前模型的对应关系,使用哈希表记录帧坐标和模型中点索引的对应关系。本发明中用表示哈希函数,所采用的哈希表键的类型为二元组(u,v),表示深度图中像素的坐标;值的类型为整型,表示对应点在点云模型中的索引。哈希表具体操作如下:
(1)初始化哈希表。
输入第一帧时,初始化点云模型,使用当前帧作为点云模型。同时初始化哈希表,设深度图的尺寸为W×H(实际值为640×480),将哈希表中键为(u,v)的项对应的值设为u×W+v,即其中u∈[0,H),v∈[0,W)。
(2)查询哈希表。
(3)更新哈希表。
点云聚合算法中有两种情况,一种是输入帧中的点在点云模型中有对应点,一种是没有对应点。在任意一种情况下,在聚合完成后,都可以得到深度图中坐标为(u,v)的点在点云中有索引为p的点与之对应,更新哈希表,使得
使用哈希表得到输入帧和当前点云中点的对应关系,对于在当前点云中没有对应值的点,直接加入点云,对于匹配点,使用优化的思想进行聚合,将两个点融合成一个,减少冗余度同时增强模型的质量。令对应点的坐标为ps,pt,聚合后新的点的坐标为的初始值为pt,通过优化到ps,pt的马氏距离之和进行求解,目标函数如公式11所示。
使用简单的累积和作为权重:以上讨论的是一对点的情况,设当前帧中一共有n对对应点,将n对点联合优化,提高GPU的利用率,则优化对象为n×3维的向量,使用高斯牛顿法进行优化,在求步长的步骤中使用cublas库对大矩阵进行计算,利用GPU加速求解过程。优化得到后需要求出对应的表面采样噪声和测量噪声。重新计算协方差矩阵求得表面采样噪声,对于测量噪声,使用简单的加权函数得到:
基于噪声点云的聚合算法流程图如图2所示,根据本发明所设计点云融合算法,在深度图预处理和全局位姿估计的基础上,可以减少噪声影响,完成高效率建模,提高模型细节质量。
Claims (8)
1.一种基于噪声点云模型的三维重建方法,其特征在于,步骤如下
S1、确定噪声点云模型的表达方法;考虑深度图的两方面噪声:表面采样噪声和测量噪声;
u、v、d的加上下标σ2分别表示u、v和d数据的方差;
其中:
fx、fy分别表示x、y方向上缩放与相机焦距的乘积,ux、uy分别表示像素在x、y轴方向的平移量;
测量点pk同时受表面采样噪声和测量噪声影响,使用混合高斯分布描述,如公式4所示:
S2.深度图预处理
在进行位姿估计前,对深度图进行预处理
1)将深度图像素,通过两次降采样,再得到两种像素的图像,共构成三级像素图像;
2)通过深度图计算得到点云图
根据深度图中像素坐标,求得对应点云图中像素的值;
3)求得点云图中每个点的法向量
对点云的每个点处得到拟合平面,求拟合平面法向量,即为该点处的法向量;
4)不考虑深度图中的噪声数据,求出每张深度图的位姿,该位姿为粗略位姿,作为第5)步协方差矩阵的计算提供输入;
5)协方差矩阵的计算:指求出表面采样噪声和测量噪声对应的协方差矩阵
根据每张深度图的粗略位姿求出表面采样噪声和测量噪声对应的协方差矩阵;
S3.基于噪声点云模型的全局位姿估计
1)输入连续的两帧深度图,记对应的点云为Vs和Vt,得到Vs、Vt之间的对应关系;即Vs到Vt的变换矩阵T;
11)对于Vs中的点ps,Vt中离ps最近的点pt,为相应的对应点;设Vs到Vt的变换矩阵为T,其中旋转部分为R,平移部分为t,则对应点之间的误差,为公式5所示;
Δp=Rps+t-pt (公式5)
12)使用误差协方差矩阵作为能量函数的权重;
求出误差和误差协方差矩阵后,使用误差协方差矩阵的逆矩阵作为能量函数的权重,得到马氏距离,结果如公式7所示;
E=(Δp)T∑-1(Δp) (公式7)
13)使用高斯牛顿法最小化马氏距离求得变换矩阵;
Δp=e(x)+JΔx (公式8)
其中J为雅各比矩阵,采用公式2中的Jf,将e(x)简记为e,把公式8带入公式7,得到:
Ek=ck+2bkΔx+ΔxTHkΔx (公式9)
其中ck=eT∑-1e,bk=eT∑-1J,Hk=JT∑-1J,k表示点云Vs中的第k个点;
通过以上k个点与对应点之间的马氏距离,得到点云Vs中所有点与对应点之间马氏距离,即求解得到:
E=∑Ek=∑ck+2∑bkΔx+ΔxT∑HkΔx (公式10)
令c=∑ck,b=∑bk,H=∑Hk,其中b为1x3维矩阵,H为3x3维矩阵;
进行求和得到方程HΔx=-bT,并求解方程HΔx=-bT得到本次迭代的步长Δx;
2)对N帧的位姿进行估计,记其中一帧为第i帧;第i帧和i-1帧作为连续的两帧深度图,采用上述步骤,求出第i帧和i-1帧之间的变换矩阵;得到帧与帧之间的位姿关系;
S4.点云聚合
(1)初始化哈希表;
输入第一帧时,初始化点云模型,使用当前帧作为点云模型;同时初始化哈希表,设深度图的尺寸为640×480,以深度图的像素坐标(u,v)为哈希表中的键,该键对应的哈希值设为u×W+v,作为F(u,v)的初始值,其中u∈[0,H),v∈[0,W);
(2)查询哈希表
根据当前帧和上一帧之间的匹配关系,求当前帧和点云模型中的点的匹配关系:
(3)更新哈希表;
通过深度图中坐标为(u,v)的点在点云中的对应点的索引p更新哈希表,
使用哈希表得到输入帧和当前点云中的点的对应关系,对于在当前点云中没有对应值的点,直接加入点云,对于匹配点,将两个点融合成一个;令连续两深度图对应点云模型Vs、Vt中的对应点的坐标为ps和pt,聚合后新的点的坐标为 的初始值为pt,通过优化到ps,pt的马氏距离之和进行求解,目标函数如公式11所示;
到此,完成一对对应点的聚合;
通过将以上对于一对对应点的聚合方法扩展到当前帧中n1对对应点聚合过程中,将n1对点联合优化,利用GPU加速求解过程,求解得到新的聚合点优化得到后求出对应的表面采样噪声和测量噪声,用于下一迭代计算过程,重新计算协方差矩阵求得表面采样噪声,对于测量噪声,使用简单的加权函数得到:
经过不断的聚合迭代过程,得到并更新基于噪声数据的点云模型。
2.根据权利要求1所述的一种基于噪声点云模型的三维重建方法,其特征在于,根据深度图中像素坐标,求得对应点云图中像素的值,将点云图的每个像素值交叉存储在内存。
3.根据权利要求1所述的一种基于噪声点云模型的三维重建方法,其特征在于,根据深度图中像素坐标,求得对应点云图中像素的值,在生成点云图时,使用寄存器将像素的三个分量进行缓存,然后一次性写入显存,减少写入次数。
4.根据权利要求1所述的一种基于噪声点云模型的三维重建方法,其特征在于,不考虑深度图中的噪声数据,求出每张深度图的位姿,该位姿为粗略位姿,作为第5)步协方差矩阵的计算提供输入时,以每21张深度图为一组,使用ICP算法粗略的求出每张深度图到第10张深度图的粗略位姿。
5.根据权利要求1所述的一种基于噪声点云模型的三维重建方法,其特征在于,对于表面采样噪声协方差矩阵的求解,使用点云图中以对应点为中心,N为边长的矩形内的点作为输入求出协方差矩阵,同时采用CUDA的纹理内存对点云矩阵进行缓存,加快求解过程的访问速度。
6.根据权利要求1所述的一种基于噪声点云模型的三维重建方法,其特征在于,深度图输入分辨率尺寸为640*480像素,通过两次降采样,得到320*240像素和160*120像素两种尺寸,共构成三级像素图像。
7.根据权利要求1所述的一种基于噪声点云模型的三维重建方法,其特征在于,协方差矩阵的计算中,对于测量噪声对应的协方差矩阵的求解,分为三个步骤。第一步求深度图的协方差,将邻近帧根据位姿预估计步骤中得到的位姿进行注册,求出相同坐标深度值的协方差,第二步根据每个像素的坐标,通过公式2求出雅各比矩阵;第三步使用每一个像素对应的协方差,通过公式3求出该像素对应三维点的协方差矩阵。
8.根据权利要求1所述的一种基于噪声点云模型的三维重建方法,其特征在于,由于公式10求和过程中,用CUDA加速的算法进行矩阵的求和;得到并求解方程HΔx=-bT得到本次迭代的步长Δx,使用步长更新x。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910908114.9A CN110706332B (zh) | 2019-09-25 | 2019-09-25 | 一种基于噪声点云的场景重建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910908114.9A CN110706332B (zh) | 2019-09-25 | 2019-09-25 | 一种基于噪声点云的场景重建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110706332A CN110706332A (zh) | 2020-01-17 |
CN110706332B true CN110706332B (zh) | 2022-05-17 |
Family
ID=69195619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910908114.9A Active CN110706332B (zh) | 2019-09-25 | 2019-09-25 | 一种基于噪声点云的场景重建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110706332B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111598946B (zh) * | 2020-03-16 | 2023-03-21 | 华南理工大学 | 一种物体位姿测量方法、装置及存储介质 |
CN112766037B (zh) * | 2020-12-14 | 2024-04-19 | 南京工程学院 | 基于最大似然估计法的3d点云目标识别和定位方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107230225A (zh) * | 2017-04-25 | 2017-10-03 | 华为技术有限公司 | 三维重建的方法和装置 |
CN108765548A (zh) * | 2018-04-25 | 2018-11-06 | 安徽大学 | 基于深度相机的三维场景实时重建方法 |
CN109242959A (zh) * | 2018-08-29 | 2019-01-18 | 清华大学 | 三维场景重建方法及系统 |
CN109544677A (zh) * | 2018-10-30 | 2019-03-29 | 山东大学 | 基于深度图像关键帧的室内场景主结构重建方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914874B (zh) * | 2014-04-08 | 2017-02-01 | 中山大学 | 一种无特征提取的紧致sfm三维重建方法 |
US10573018B2 (en) * | 2016-07-13 | 2020-02-25 | Intel Corporation | Three dimensional scene reconstruction based on contextual analysis |
CN106780576B (zh) * | 2016-11-23 | 2020-03-17 | 北京航空航天大学 | 一种面向rgbd数据流的相机位姿估计方法 |
CN107833270B (zh) * | 2017-09-28 | 2020-07-03 | 浙江大学 | 基于深度相机的实时物体三维重建方法 |
CN108876897B (zh) * | 2018-04-20 | 2022-10-18 | 杭州电子科技大学 | 快速运动下的场景三维重建方法 |
-
2019
- 2019-09-25 CN CN201910908114.9A patent/CN110706332B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107230225A (zh) * | 2017-04-25 | 2017-10-03 | 华为技术有限公司 | 三维重建的方法和装置 |
CN108765548A (zh) * | 2018-04-25 | 2018-11-06 | 安徽大学 | 基于深度相机的三维场景实时重建方法 |
CN109242959A (zh) * | 2018-08-29 | 2019-01-18 | 清华大学 | 三维场景重建方法及系统 |
CN109544677A (zh) * | 2018-10-30 | 2019-03-29 | 山东大学 | 基于深度图像关键帧的室内场景主结构重建方法及系统 |
Non-Patent Citations (2)
Title |
---|
Geometry-Aware ICP for Scene Reconstruction from RGB-D Camera;Bo Ren 等;《JOURNAL OF COMPUTER SCIENCE AND TECHNOLOGY》;20190531;第581-593页 * |
Robust 3D Reconstruction With an RGB-D Camera;Kangkan Wang 等;《IEEE TRANSACTIONS ON IMAGE PROCESSING》;20141130;第23卷(第11期);第4893-4906页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110706332A (zh) | 2020-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109387204B (zh) | 面向室内动态环境的移动机器人同步定位与构图方法 | |
CN109859296B (zh) | Smpl参数预测模型的训练方法、服务器及存储介质 | |
CN108898630B (zh) | 一种三维重建方法、装置、设备和存储介质 | |
CN108509848B (zh) | 三维物体的实时检测方法及系统 | |
CN109544677B (zh) | 基于深度图像关键帧的室内场景主结构重建方法及系统 | |
WO2019170164A1 (zh) | 基于深度相机的三维重建方法、装置、设备及存储介质 | |
CN110853075B (zh) | 一种基于稠密点云与合成视图的视觉跟踪定位方法 | |
JP6011102B2 (ja) | 物体姿勢推定方法 | |
CN103649998B (zh) | 确定为确定照相机的姿态和/或为确定至少一个真实对象的三维结构而设计的参数集的方法 | |
EP3367334B1 (en) | Depth estimation method and depth estimation apparatus of multi-view images | |
JP2024510265A (ja) | 高解像度ニューラル・レンダリング | |
KR20120093063A (ko) | 이미지들로부터의 빠른 스테레오 재구성을 위한 기술들 | |
CN112001926B (zh) | 基于多维语义映射rgbd多相机标定方法、系统及应用 | |
CN110706332B (zh) | 一种基于噪声点云的场景重建方法 | |
CN109613974B (zh) | 一种大场景下的ar家居体验方法 | |
CN114913552A (zh) | 一种基于单视角点云序列的三维人体稠密对应估计方法 | |
CN117315372A (zh) | 一种基于特征增强的三维感知方法 | |
JP3629243B2 (ja) | モデリング時の距離成分を用いてレンダリング陰影処理を行う画像処理装置とその方法 | |
Splietker et al. | Directional TSDF: Modeling surface orientation for coherent meshes | |
CN116704112A (zh) | 一种用于对象重建的3d扫描系统 | |
CN106548507A (zh) | 三维重建对象的方法和设备 | |
CN115423854A (zh) | 一种基于多尺度特征提取的多视角点云配准及点云融合方法 | |
CN115423852A (zh) | 一种点云数据配准方法、系统、电子设备及存储介质 | |
CN114049423A (zh) | 一种自动的真实感三维模型纹理映射方法 | |
Kolhatkar et al. | Real-time virtual viewpoint generation on the GPU for scene navigation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |