CN107833270B - 基于深度相机的实时物体三维重建方法 - Google Patents
基于深度相机的实时物体三维重建方法 Download PDFInfo
- Publication number
- CN107833270B CN107833270B CN201710893987.8A CN201710893987A CN107833270B CN 107833270 B CN107833270 B CN 107833270B CN 201710893987 A CN201710893987 A CN 201710893987A CN 107833270 B CN107833270 B CN 107833270B
- Authority
- CN
- China
- Prior art keywords
- tsdf
- value
- depth
- frame
- camera
- 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
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 26
- 238000009616 inductively coupled plasma Methods 0.000 claims abstract description 13
- 230000004927 fusion Effects 0.000 claims abstract description 7
- 238000007781 pre-processing Methods 0.000 claims abstract description 7
- 238000009826 distribution Methods 0.000 claims abstract description 3
- 239000013598 vector Substances 0.000 claims description 19
- 238000013519 translation Methods 0.000 claims description 14
- 239000011159 matrix material Substances 0.000 claims description 12
- 238000000513 principal component analysis Methods 0.000 claims description 8
- 239000000126 substance Substances 0.000 claims description 8
- 238000007906 compression Methods 0.000 claims description 5
- 230000006835 compression Effects 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 5
- 238000000354 decomposition reaction Methods 0.000 claims description 3
- 230000003287 optical effect Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 12
- 230000011218 segmentation Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 4
- 238000005266 casting Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 2
- 230000036544 posture Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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 using two or more images, e.g. averaging or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/136—Segmentation; Edge detection involving thresholding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
基于深度相机的实时物体三维重建方法,包括从深度相机中按顺序获取一帧深度图像作为当前帧并进行预处理;通过质心ICP算法估算出的当前帧和前一帧的相对位姿,用前一帧的精确位姿与当前帧和前一帧的相对位姿计算得到当前帧相机的精确位姿;利用相机的精确位姿将当前帧数据融合到局部TSDF中;从局部TSDF中获取步骤3中融合于局部TSDF的点云,以该点云作为前一帧的点云,或者将局部TSDF与全局TSDF进行匹配融合,并将局部TSDF初始化。本发明具有能够避免ICP匹配算法失效,降低累积误差提高模型精度的适用于重建指定物体或人的优点。
Description
技术领域
本发明涉及三维成像领域,特别是一种能够实时地对物体或人体进行三维重建的方法。
背景技术
三维重建技术一直是计算机图形学和计算机视觉领域的热点课题。三维重建就是从输入数据中建立3D模型。随着各种面向普通消费者的深度相机的出现,基于深度相机的三维扫描和重建技术得到了飞速发展。对于现实场景中的点,深度相机扫描得到的每一帧数据不仅包括了场景中的点的彩色RGB图像,还包括每个点到深度相机所在的垂直平面的距离值。这个距离值成为深度值(depth),这些深度值共同组成了这一帧的深度图像。
深度图像可以看做是一幅灰度图像,图像中的每一个点的灰度值代表了这个点在现实中的位置到相机所在垂直平面的真实距离距离。RGB图像中的每个点都会对应一个在相机的局部坐标系中的三维点。因此,深度相机的每一帧的深度图像相当于一个在相机的局部三维坐标系中的点云模型。基于深度相机的三维重建技术所使用的输入数据是RGB图像和深度图像,因此,这类技术也被称为基于RGBD数据的三维重建技术(D表示深度值,Depth)。
基于深度相机的三维重建的核心问题有:1、深度相机的数据量非常庞大,如何在重建过程中处理庞大的数据。并且,深度相机所得到的深度数据是存在误差的,即使相机位置固定,现实场景中的点在不同帧中的深度值也会有所区别,那么如何估计点的最终位置?2、相机位置的估计,即如何在位置环境中通过获取周围的环境数据来确定自己所在的位置?
Newcombe等人于2011年发表的“KinectFusion:real-time 3D reconstructionand interaction using a moving depth camera”提出了三维重建的经典方法KinectFusion,使用迭代最近点(Iterative closest point,ICP)方法来解决上述核心问题。KinectFusion提出在世界坐标系中定义一个立方体,并把该立方体按照一定的分辨率切割成小立方体,使用截断有符号距离函数(truncated signed distance function,TSDF)的方法来更新每个小网格中的一个数值,该数值代表该网格到模型表面的最近距离(TSDF值)。对于每个网格,在每一帧都会更新并记录TSDF值,通过TSDF值还原出重建模型。通过不断更新并“融合”TSDF值,来接近所需要的真实值。KinectFusion方法定义的立方体中的所有的网格中的TSDF都需要记录,即便这个网格在显示场景中根本没有点,这就造成极大的内存空间的浪费,并限制了扫描范围。
Thomas Whelan等人在2015年发表Kintinuous“Robust Real-Time VisualOdometry for Dense RGB-D Mapping”是在KinectFusion的基础上加入移动TSDF的技巧从而达到大范围场景重建,并且提出ICP+RGBD匹配算法提高点云匹配精度,加入回环检测从而平摊累积误差,提高估计的相机位姿精度。
但是无论是KinectFusion还是Kintinuous,都存在以下缺点:
1、未将物体或人从场景中分割出来,在重建对象为场景中的物体或人时,需要在重建后的三维模型中分割对象,分割的复杂度高,因此,不适合用于重建对象为场景中的物体或人的情况。
2、由于相机拍照的帧率是固定的,当扫描速度较快时,前后两帧相机位姿相差较大,导致KinectFusion以及Kintinuous使用的ICP+RGBD匹配算法匹配失败。
3、累积误差导致三维物体模型精度下降,虽然Kintinuous中已经加入回环检测并且对于场景重建时能够有效的检测出回环并进行回环优化从而修正模型,但是在人体扫描过程中此种回环检测方式经常会出现错误的回环或者无回环。
发明内容
本发明的目的在于提供一种能够避免ICP匹配算法失效,降低累积误差提高模型精度的适用于重建指定物体或人的基于深度相机的实时物体三维重建方法。
基于深度相机的实时物体三维重建方法,包括以下步骤:
步骤1:从深度相机中按顺序获取一帧深度图像作为当前帧,对当前帧进行预处理,预处理包括在深度图像中将对象从场景中分割出来、将分割出来的对象数据去除边界噪声,将去噪后的对象数据生成有序点云和用PCA(主成分分析)计算点云法向量;
步骤2:判断当前帧是否第一帧,若是,则获取相机的物理位姿作为相机的精确位姿,进入步骤3;若否,则通过质心ICP算法估算出的当前帧和前一帧的相对位姿,用前一帧的精确位姿与当前帧和前一帧的相对位姿计算得到当前帧相机的精确位姿,进入步骤3;
步骤3:利用相机的精确位姿将当前帧数据融合到局部TSDF中;
步骤4:判断是否有结束指令,若否,则从局部TSDF中获取步骤3中融合于局部TSDF的点云,以该点云作为前一帧的点云,重复步骤1-4;
若是,将局部TSDF与全局TSDF进行匹配融合,并将局部TSDF初始化;判断是否有程序结束指令,若是,从全局TSDF提取点云,并且使用贪婪三角化获得物体模型;若否,则从全局TSDF中获取在上一帧相机位姿下获取前一帧的点云,重复步骤1-步骤4。
进一步,步骤3中的结束指令含程序结束指令和局部TSDF融合所需帧数到达预定数量是发出的指令。
进一步,步骤2中,估算出的当前帧和前一帧的相对位姿时先通过前一帧点云的质心和当前帧点云的质心获得相机初始平移量,再使用ICP算法获取前一帧和当前帧的相对位姿。
进一步,步骤1中,在深度图像中将对象从场景中分割出来的方法是:
步骤1-1-1:压缩当前帧深度图像的深度图数据,压缩后的深度图数据的每一个数值代表一个区域的深度值;
步骤1-1-2:计算压缩后的深度图的深度直方图,取前N个峰值的深度值;判断这N个峰值的深度值是否在物体的深度值范围内,物体的深度值范围人为设定,若否,则放弃当前帧深度图像;若有多个峰值的深度值在物体的深度值范围内、则将前N个峰值的最大值作为输出值,若只有一个峰值的深度值在物体的深度值范围内、则将该峰值的深度值作为输出值,记为DH单位为m;
步骤1-1-3:将DH-0.2设为下阈值,DH+0.2设为上阈值,获得物体深度图Do:
表示在像素点(u,v)上的原始深度值。
进一步,步骤1中,将分割出来的对象数据去除边界噪声的方法为:采用7X7的窗口在整幅深度图像上进行滑窗,计算深度值与窗口中心的深度值的差值大于200mm的像素个数,像素个数记为count,若count>5时,就认为当前窗口中心是属于边界处或者噪点。
进一步,步骤1中,生成点云的方法为:
步骤1-3-1:有序点云有相机的针孔模型获得,相机的针孔模型为:得到xc=zc(u-u0)/fx,yc=zc(v-v0)/fy,zc=D(u,v),为有序点云在第i帧数据在(u,v)位置上的三维坐标;
进一步,步骤2中,质心ICP算法为:
步骤2-3:使用ICP算法估算出第k帧与第k-1帧相机的相对位姿。
进一步,步骤3中,将当前帧数据融合到局部TSDF中的方法为:
每个体素通过TSDF(截断符号距离函数)存储该体素到真实场景表面的截断距离;体素位于真实场景表面之前时,TSDF值为正;体素被真实场景表面遮挡时,TSDF值为负;体素在真实场景表面上的点时,TSDF值为零;
步骤3-2:TSDF值为:其中,其中:表示点在第k-1帧的权重值,为在像素坐标下第k帧深度值,Dk使用步骤1获得去除边界噪点后的物体深度图,λ表示深度值为1时、光线方向上点与相机光心之间的距离,π(·)表示将点投影到像素平面的函数,μ表示截断距离;
进一步,步骤4中局部TSDF与全局TSDF进行匹配融合的方法为:
步骤4-1:提取局部TSDF中零表面的点云,记为L;
步骤4-2:最小化点云L中的点到全局TSDF零表面距离的平方来获得局部TSDF与全局TSDF的相对位姿;
其中,n表示的总点数,表示中第i个点,表示将映射到全局TSDF坐标上,表示在全局TSDF的坐标上的TSDF值,Voxel_x,Voxel_y,Voxel_z分别表示一个体素在x,y,z方向上所占据的空间大小,Volumeminx,Volumeminy,Volumeminz分别表示全局TSDF在x,y,z方向上的最小值,ξ=(β,γ,α,tx,ty,tz)T∈R6表示局部TSDF与全局TSDF之间的相对位姿;
步骤4-4:融合公式为:
本发明的技术构思是:再设置一个局部TSDF和一个全局TSDF,实时获取深度相机的深度图像,将每N帧组深度图像经预处理后匹配融合到局部TSDF中,N帧深度图像匹配融合形成的局部TSDF已去除噪点且信息丰富。再将局部TSDF匹配融合到全局TSDF后,将局部TSDF初始化,再将下一组N帧深度图像的融合形成局部TSDF中。在形成局部TSDF时即对每一帧深度图像进行了一次降噪和匹配,在将局部TSDF融合到全局TSDF中时又进行了一次匹配,因此本发明与直接将每帧深度图像融入全局TSDF相比具有更高的精度。
本发明的优点在于:
1.先将物体进行分割后再重建,减少后期将物体与周围环境分离的复杂操作,并且对后期的跟踪相机的位姿也有一定的辅助作用;本文提出一种自适应阈值分割法来提取物体,利用物体在前景部分及深度值的光滑连续性,使用深度直方图选取阈值,分割方法简单、速度快等优势,并且对扫描的方式不苛刻。
2.本文利用前后两帧点云之间的质心位置相近,从而得到相机平移量的初始值,再进行ICP匹配算法得到相机的位姿。此方法能够解决扫描速度快时,扫描过程中采集数据平台出现卡顿等问题,使得前后两帧之间的相机平移量较大从而导致ICP算法匹配失效。
3.本文在发现frame to modal的匹配方式在帧数较小且相机位姿变化不大的情形下能够得到较为精确的物体模型,使用两个TSDF容器,一个用来存储全局TSDF(即全局TSDF),另一个用来作为局部重建的缓存器(即全局TSDF),本文采用每隔50帧将局部缓存器中的TSDF与全局TSDF进行匹配融合,再将局部缓存器中的TSDF进行初始化。因此能够实现:1.在使用frame to modal的匹配方式在指定数量的帧内能够重建出精确的物体模型;2.在进行TSDF融合的过程中有均值除噪的效果,减少噪声对匹配算法精度的影响;3.此方法利用指定数量帧数据再进行匹配,具有更多的信息,有助于提高匹配的精确度。
附图说明
图1是算法流程图。
图2是步骤1的预处理过程图。
图3是提取TSDF为0的体素的示意图。
具体实施方式
物体三维重建算法总体流程如下:
步骤1.从深度相机中获取深度图,经过预处理中的物体分割、去边界除噪点和生成点云及利用PCA计算点云法向量得到去边界除噪点后的物体深度图和物体点云数据及法向量。
步骤2.利用前后两帧点云的质心得到相机平移量的初始值,再利用ICP算法估计出相机的精确姿态。
步骤3.利用估计出的相机精确位姿将该帧数据融合到局部TSDF中。
步骤4.判断是否有结束指令,结束指令指的是程序结束指令和局部TSDF融合所需帧数到达预定数量是发出的指令;如果不成立,利用Ray casting算法从局部TSDF中预测上一相机位姿下的点云,作为下一次第2步骤的输入;否则将局部TSDF与全局TSDF进行匹配融合,并将局部TSDF初始化,再判断是否有程序结束指令,如果成立,从全局TSDF提取点云,并且使用贪婪三角化获得物体模型,否则利用Ray casting算法从全局TSDF中预测上一相机位姿下的点云,作为下一次第2步骤的输入。
步骤1中,对深度图像的预处理过程如下:
1)物体分割
在扫描过程中,物体处于相机视场内的前景部分,所以本文采用阈值分割法来分割出物体。由于在扫描过程中,无法保证让物体离相机的深度值在一定值上,所以若阈值为定值时,容易导致分割不稳定。本文提出一种自适应阈值分割法来提取物体。
首先,将深度图0~8000mm(由于Kinect最高只能测8000mm的距离)数据压缩到0~255之间,使用进行数据压缩,式子中为向下取整函数,(u,v)表示像素点坐标,D(u,v)表示在像素点(u,v)上的原始深度值,Ds(u,v)表示在像素点(u,v)压缩之后的深度值;接着,计算压缩后的深度图Ds的深度直方图,取出前三个峰值的深度值,因为在扫描过程中,知道物体离深度相机的深度值为0.5m~1.5m,所以本文查看前三个峰值的深度值是否在此范围内,如果有多个峰值在此范围内,我们将这几个峰值的最大值作为此步骤的输出值,记为DH单位为m,如果没有峰值在此范围内,我们放弃此深度数据;最后,将DH-0.2设为下阈值,DH+0.2设为上阈值。
式中Do为物体深度图。
2)去边界除噪点
由于Kinect的扫描精度较低,尤其是在边界处,本文将噪声较大的点进行滤除。采用7X7的窗口在整副图像上进行滑窗,计算深度值与窗口中心的深度值的差值大于200mm的像素个数count,若count>5时,就认为窗口的中心点是属于边界处或者噪点。
3)生成点云并计算法向量
根据相机的针孔模型:
假设点云的采样平面是处处光滑的,因此,任何点的局部邻域都可以用平面进行很好的拟合;为此,对于点云中的每个点获取与其最相近的k个相邻点,由于本文所提供的点云属于有序点云,所以寻找点的相邻点比较简单,本文选取的窗口为7x7,然后为这些点计算一个最小二乘意义上的局部平面Q。此平面可以表述如下:
1.跟踪相机的位姿
本文通过刚体变换矩阵来表示第k帧6DOF相机姿态:
要将第k帧深度数据融合到TSDF中,我们必须要知道第k帧深度相机相对于全局坐标系的姿态Tg,k。为了减小累积误差对重建模型精度的影响,本文使用frame-to-modal的匹配方式进行跟踪相机位姿,利用Ray casting算法从TSDF中获得上一帧相机姿态下的点云与法向量。本文使用ICP(最邻近点迭代)算法估计相机姿态,最小化当前帧中的顶点到前一帧中表面的距离误差:
式中表示第k-1帧第i点在全局坐标系下的坐标,表示第k帧第i点在第k帧相机坐标系下的坐标,与为匹配点,表示第k-1帧第i点在全局坐标系下的法向量,Tg,k-1表示第k-1帧相机姿态,表示第k帧与第k-1帧相机的相对姿态,ξ=(β,γ,α,tx,ty,tz)T∈R6为第k帧与第k-1帧相机的相对旋转矢量和平移量,是需要求解的参数,假设相邻两帧之间转动的角度较小,我们将上述能量函数进行线性化,得到:
在进行ICP算法之前先寻找匹配点,即寻找最邻近点。寻找匹配点的方式:由于本文使用的点云都是有序点云,所以寻找最邻近点的方式为将当前帧的点云转换到上一帧坐标系下,并将其投影到图像坐标系下得到相对应的像素坐标,上一帧点云此像素坐标的点就是此点的对应点,计算两点之间的距离及法向量的夹角,若是超过阈值则不认为是匹配点,否则认为是匹配点。
试验发现当扫描速度较快时,ICP算法匹配失败。经测试发现当我们扫描速度较快时,相邻两帧之间相机的转动量增幅较小,平移量增幅较大。当两帧之间相机平移量较大时,一开始得到的匹配点对较少,容易掉入局部最优或者直接匹配失效。并且发现相邻两帧之间匹配之后的质心基本在同一个位置上。所以本文利用这一特性,得到平移量的初始值。式中为第k-1帧点云的质心,为第k帧点云的质心,(tx0,ty0,tz0)T为第k帧与第k-1帧相机的相对平移量的初始值。接着再进行上述的ICP算法计算出第k帧与第k-1帧相机的相对姿态。
2.更新TSDF
本文通过构造一个立方体来表示特定尺寸的三维空间。而后对该立方体进行细分为小的三维体素栅格(5123),每个体素通过截断符号距离函数(TSDF)来存储其到真实场景表面的相对距离。如果体素位于表面之前,则符号距离函数值为正,若在表面遮挡的一侧,那么函数值为负,而符号函数值的过零点(zero-crossing)即为真实场景表面上的点。通过以上操作,深度数据帧对应的三维点云即可通过符号距离函数计算映射到立方体体素中。每个体素上包含TSDF值和权重值 为该体素在全局坐标系下的坐标值。
式中为在像素坐标下第k帧深度值,Dk使用第一步骤中去边界除噪点后得到的物体深度图,λ表示深度值为1时,光线方向上点与相机光心之间的距离,π(·)表示将点投影到像素平面函数,μ表示截断距离,本文设置为0.03m。本文设利用下列公式更新TSDF值和权重值
式中Wη表示权重值的最大值。
3.局部TSDF与全局TSDF匹配融合
匹配:
首先,提取局部TSDF中零表面的点。在体素(x,y,z)((x,y,z)为该体素在局部坐标系下的坐标)处,检查图中三条红线上是否存在TSDF为0的点,即(x,y,z)与(x+1,y,z),(x,y,z)与(x,y+1,z)和(x,y,z)与(x,y,z+1)之间。首先,检查在体素(x,y,z)上tsdf(x,y,z)=1是否成立,如果成立,说明在这三条边上不可能存在TSDF为0的点;其次,以(x,y,z)与(x+1,y,z)这条边为例,检查tsdf(x,y,z)tsdf(x+1,y,z)≤0是否成立,如果成立,则在这条边上存在着TSDF为0的点;最后利用线性插值的方式将边上TSDF为0的点提取出来:
y′=y
z′=z
式子中(x′,y′,z′)为在(x,y,z)与(x+1,y,z)这条边上的TSDF为0的点,如图3所示。
通过上述方法提取出局部TSDF中零表面的点云,记为L。因为我们知道L中的点都是在局部TSDF零表面上,所以本文通过匹配L与全局TSDF得到局部TSDF与全局TSDF的相对位姿。本文通过最小化L中的点到全局TSDF零表面距离的平方来获得局部TSDF与全局TSDF的相对位姿。
式子中n表示L的总点数,表示将映射到TSDF坐标上,表示在位置上的TSDF值,Vosel_x,Vosel_y,Vosel_z分别表示一个体素在x,y,z方向上所占据的空间大小,Volumeminx,Volumeminy,Volumeminz分别表示TSDF在x,y,z方向上的最小值,ξ=(β,γ,α,tx,ty,tz)T∈R6表示局部TSDF与全局TSDF之间的相对位姿。
本文利用高斯-牛顿法求解上述最优化问题。假设局部TSDF与全局TSDF之间的相对位姿较小,化简得到:
融合:
通过匹配局部TSDF与全局TSDF之后得到两者之间的相对位姿Tl,g。将局部TSDF的每个体素转换成Lx=xVoxel_x+Volumeminx,Ly=yVoxel_y+Volumeminy,Lz=zVoxel_z+Volumeminz。再通过将L转换到全局坐标系下,再反映射到TSDF空间上得到最后利用下述公式进行融合:
Claims (3)
1.基于深度相机的实时物体三维重建方法,包括以下步骤:
步骤1:从深度相机中按顺序获取一帧深度图像作为当前帧,对当前帧进行预处理,预处理包括在深度图像中将对象从场景中分割出来、将分割出来的对象数据去除边界噪声,将去噪后的对象数据生成有序点云和用PCA计算点云法向量;
在深度图像中将对象从场景中分割出来的方法是:
步骤1-1-1:压缩当前帧深度图像的深度图数据,压缩后的深度图数据的每一个数值代表一个区域的深度值;
步骤1-1-2:计算压缩后的深度图的深度直方图,取前N个峰值的深度值;判断这N个峰值的深度值是否在物体的深度值范围内,物体的深度值范围人为设定,若否,则放弃当前帧深度图像;若有多个峰值的深度值在物体的深度值范围内、则将前N个峰值的最大值作为输出值,若只有一个峰值的深度值在物体的深度值范围内、则将该峰值的深度值作为输出值,记为DH单位为m;
步骤1-1-3:将DH-0.2设为下阈值,DH+0.2设为上阈值,获得物体深度图Do:
将分割出来的对象数据去除边界噪声的方法为:采用7X7的窗口在整幅深度图像上进行滑窗,计算深度值与窗口中心的深度值的差值大于200mm的像素个数,像素个数记为count,若count>5时,就认为当前窗口中心是属于边界处或者噪点;
生成点云的方法为:
步骤1-3-1:有序点云有相机的针孔模型获得,相机的针孔模型为:得到xc=zc(u-u0)/fx,yc=zx(v-v0)/fy,zc=D(u,v), 为有序点云在第i帧数据在(u,v)位置上的三维坐标;
步骤2:判断当前帧是否第一帧,若是,则获取相机的物理位姿作为相机的精确位姿,进入步骤3;若否,则通过质心ICP算法估算出的当前帧和前一帧的相对位姿,用前一帧的精确位姿与当前帧和前一帧的相对位姿计算得到当前帧相机的精确位姿,进入步骤3;
则通过质法ICP算法估算出的当前帧和前一帧的相对位姿具体包括:
步骤2-3:使用ICP算法估算出第k帧与第k-1帧相机的相对位姿;
步骤3:利用相机的精确位姿将当前帧数据融合到局部TSDF中;
将当前帧数据融合到局部TSDF中的方法为:
每个体素通过TSDF(截断符号距离函数)存储该体素到真实场景表面的截断距离;体素位于真实场景表面之前时,TSDF值为正;体素被真实场景表面遮挡时,TSDF值为负;体素在真实场景表面上的点时,TSDF值为零;
步骤3-2:TSDF值为:其中,其中:表示点在第k-1帧的权重值,为在像素坐标下第k帧深度值,Dk使用步骤1获得去除边界噪点后的物体深度图,λ表示深度值为1时、光线方向上点与相机光心之间的距离,π(·)表示将点投影到像素平面的函数,μ表示截断距离;
步骤4:判断是否有结束指令,若否,则从局部TSDF中获取步骤3中融合于局部TSDF的点云,以该点云作为前一帧的点云,重复步骤1-4;
若是,将局部TSDF与全局TSDF进行匹配融合,并将局部TSDF初始化;判断是否有程序结束指令,若是,从全局TSDF提取点云,并且使用贪婪三角化获得物体模型;若否,则从全局TSDF中获取在上一帧相机位姿下获取前一帧的点云,重复步骤1-步骤4;
局部TSDF与全局TSDF进行匹配融合的方法为:
步骤4-1:提取局部TSDF中零表面的点云,记为L;
步骤4-2:最小化点云L中的点到全局TSDF零表面距离的平方来获得局部TSDF与全局TSDF的相对位姿;
其中,n表示的总点数,表示中第i个点,表示将映射到全局TSDF坐标上,表示在全局TSDF的坐标上的TSDF值,Voxel_x,Voxel_y,Voxel_z分别表示一个体素在x,y,z方向上所占据的空间大小,Volumeminx,Volumeminy,Volumeminz分别表示全局TSDF在x,y,z方向上的最小值,ξ=(β,γ,α,tx,ty,tz)T∈R6表示局部TSDF与全局TSDF之间的相对位姿;
步骤4-4:融合公式为:
2.如权利要求1所述的基于深度相机的实时物体三维重建方法,其特征在于:步骤3中的结束指令含程序结束指令和局部TSDF融合所需帧数到达预定数量是发出的指令。
3.如权利要求2所述的基于深度相机的实时物体三维重建方法,其特征在于:步骤2中,估算出的当前帧和前一帧的相对位姿时先通过前一帧点云的质心和当前帧点云的质心获得相机初始平移量,再使用ICP算法获取前一帧和当前帧的相对位姿。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710893987.8A CN107833270B (zh) | 2017-09-28 | 2017-09-28 | 基于深度相机的实时物体三维重建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710893987.8A CN107833270B (zh) | 2017-09-28 | 2017-09-28 | 基于深度相机的实时物体三维重建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107833270A CN107833270A (zh) | 2018-03-23 |
CN107833270B true CN107833270B (zh) | 2020-07-03 |
Family
ID=61643684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710893987.8A Active CN107833270B (zh) | 2017-09-28 | 2017-09-28 | 基于深度相机的实时物体三维重建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107833270B (zh) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108120473B (zh) * | 2017-11-23 | 2019-07-16 | 浙江大学 | 基于深度相机的温室作物三维形态监测装置及监测方法 |
CN108876897B (zh) * | 2018-04-20 | 2022-10-18 | 杭州电子科技大学 | 快速运动下的场景三维重建方法 |
CN110415328B (zh) * | 2018-04-26 | 2024-03-26 | 清华大学 | 三维场景图生成方法、装置和机器人 |
CN108665537B (zh) * | 2018-05-15 | 2020-09-25 | 清华大学 | 联合优化人体体态与外观模型的三维重建方法及*** |
CN108734772A (zh) * | 2018-05-18 | 2018-11-02 | 宁波古德软件技术有限公司 | 基于Kinect fusion的高精度深度图像获取方法 |
CN108961390B (zh) * | 2018-06-08 | 2020-05-19 | 华中科技大学 | 基于深度图的实时三维重建方法 |
CN109255801B (zh) * | 2018-08-03 | 2022-02-22 | 百度在线网络技术(北京)有限公司 | 视频中三维物体边缘追踪的方法、装置、设备及存储介质 |
CN109035305B (zh) * | 2018-08-10 | 2021-06-25 | 中北大学 | 一种基于rgb-d低视角情况下的室内人体检测与跟踪方法 |
CN111666935B (zh) * | 2019-03-06 | 2024-05-24 | 北京京东乾石科技有限公司 | 物品中心定位方法、装置以及物流***和存储介质 |
CN109961506B (zh) * | 2019-03-13 | 2023-05-02 | 东南大学 | 一种融合改进Census图的局部场景三维重建方法 |
US11107249B2 (en) * | 2019-03-18 | 2021-08-31 | Sony Group Corporation | Point cloud global tetris packing |
CN110047144A (zh) * | 2019-04-01 | 2019-07-23 | 西安电子科技大学 | 一种基于Kinectv2的完整物体实时三维重建方法 |
CN111951325B (zh) * | 2019-05-14 | 2024-01-12 | 虹软科技股份有限公司 | 位姿跟踪方法、位姿跟踪装置及电子设备 |
CN112150529B (zh) * | 2019-06-28 | 2023-09-01 | 北京地平线机器人技术研发有限公司 | 一种图像特征点的深度信息确定方法及装置 |
CN110695990A (zh) * | 2019-09-23 | 2020-01-17 | 江苏理工学院 | 一种基于Kinect手势识别的机械臂控制*** |
CN110706332B (zh) * | 2019-09-25 | 2022-05-17 | 北京计算机技术及应用研究所 | 一种基于噪声点云的场景重建方法 |
CN110874864B (zh) * | 2019-10-25 | 2022-01-14 | 奥比中光科技集团股份有限公司 | 获取对象三维模型的方法、装置、电子设备及*** |
CN110793441B (zh) * | 2019-11-05 | 2021-07-27 | 北京华捷艾米科技有限公司 | 一种高精度物体几何尺寸测量方法及装置 |
CN112819700B (zh) * | 2019-11-15 | 2023-04-25 | 阿里巴巴集团控股有限公司 | 一种点云数据的去噪方法、装置及可读存储介质 |
CN111292326A (zh) * | 2019-11-29 | 2020-06-16 | 北京华捷艾米科技有限公司 | 一种基于3d深度相机的体积测量方法及*** |
CN111243093B (zh) * | 2020-01-07 | 2023-05-12 | 腾讯科技(深圳)有限公司 | 三维人脸网格的生成方法、装置、设备及存储介质 |
CN111260713B (zh) * | 2020-02-13 | 2023-04-14 | 青岛联合创智科技有限公司 | 一种基于图像的深度计算方法 |
CN111340960B (zh) * | 2020-02-21 | 2021-06-04 | 北京五一视界数字孪生科技股份有限公司 | 图像的建模方法、装置、存储介质和电子设备 |
CN113362382A (zh) * | 2020-03-04 | 2021-09-07 | 华为技术有限公司 | 三维重建方法和三维重建装置 |
CN113643342B (zh) * | 2020-04-27 | 2023-11-14 | 北京达佳互联信息技术有限公司 | 一种图像处理方法、装置、电子设备及存储介质 |
CN111754573B (zh) * | 2020-05-19 | 2024-05-10 | 新拓三维技术(深圳)有限公司 | 一种扫描方法及*** |
CN112053435A (zh) * | 2020-10-12 | 2020-12-08 | 武汉艾格美康复器材有限公司 | 一种自适应的实时人体三维重建方法 |
CN113205605B (zh) * | 2021-05-29 | 2022-04-19 | 浙江大学 | 一种从深度图像中获取手部三维参数化模型的方法 |
CN113706707B (zh) * | 2021-07-14 | 2024-03-26 | 浙江大学 | 一种基于多源信息融合的人体三维表面温度模型构建方法 |
CN113436242B (zh) * | 2021-07-22 | 2024-03-29 | 西安电子科技大学 | 基于移动深度相机的获取静态物体高精度深度值方法 |
CN113902847B (zh) * | 2021-10-11 | 2024-04-16 | 岱悟智能科技(上海)有限公司 | 基于三维特征约束的单目深度图像位姿优化方法 |
CN113902846B (zh) * | 2021-10-11 | 2024-04-12 | 岱悟智能科技(上海)有限公司 | 一种基于单目深度相机和里程传感器的室内三维建模方法 |
CN113689503B (zh) * | 2021-10-25 | 2022-02-25 | 北京市商汤科技开发有限公司 | 目标对象的姿态检测方法、装置、设备及存储介质 |
CN113989434A (zh) * | 2021-10-27 | 2022-01-28 | 聚好看科技股份有限公司 | 一种人体三维重建方法及设备 |
CN114700949B (zh) * | 2022-04-25 | 2024-04-09 | 浙江工业大学 | 基于体素抓取网络的机械臂灵巧抓取规划方法 |
CN114812540B (zh) * | 2022-06-23 | 2022-11-29 | 深圳市普渡科技有限公司 | 一种建图方法、装置和计算机设备 |
CN115311424B (zh) * | 2022-08-02 | 2023-04-07 | 深圳市华赛睿飞智能科技有限公司 | 一种目标场景的三维重建方法、装置、无人机及存储介质 |
CN116824070B (zh) * | 2023-08-31 | 2023-11-24 | 江西求是高等研究院 | 一种基于深度图像的实时三维重建方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106688A (zh) * | 2013-02-20 | 2013-05-15 | 北京工业大学 | 基于双层配准方法的室内三维场景重建方法 |
CN106803275A (zh) * | 2017-02-20 | 2017-06-06 | 苏州中科广视文化科技有限公司 | 基于相机位姿估计和空间采样的2d全景视频生成 |
CN106803267A (zh) * | 2017-01-10 | 2017-06-06 | 西安电子科技大学 | 基于Kinect的室内场景三维重建方法 |
CN106910242A (zh) * | 2017-01-23 | 2017-06-30 | 中国科学院自动化研究所 | 基于深度相机进行室内完整场景三维重建的方法及*** |
-
2017
- 2017-09-28 CN CN201710893987.8A patent/CN107833270B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106688A (zh) * | 2013-02-20 | 2013-05-15 | 北京工业大学 | 基于双层配准方法的室内三维场景重建方法 |
CN106803267A (zh) * | 2017-01-10 | 2017-06-06 | 西安电子科技大学 | 基于Kinect的室内场景三维重建方法 |
CN106910242A (zh) * | 2017-01-23 | 2017-06-30 | 中国科学院自动化研究所 | 基于深度相机进行室内完整场景三维重建的方法及*** |
CN106803275A (zh) * | 2017-02-20 | 2017-06-06 | 苏州中科广视文化科技有限公司 | 基于相机位姿估计和空间采样的2d全景视频生成 |
Also Published As
Publication number | Publication date |
---|---|
CN107833270A (zh) | 2018-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107833270B (zh) | 基于深度相机的实时物体三维重建方法 | |
CN109544456B (zh) | 基于二维图像和三维点云数据融合的全景环境感知方法 | |
EP3695384B1 (en) | Point cloud meshing method, apparatus, device and computer storage media | |
CN109242873B (zh) | 一种基于消费级彩色深度相机对物体进行360度实时三维重建的方法 | |
CN106910242B (zh) | 基于深度相机进行室内完整场景三维重建的方法及*** | |
US8385630B2 (en) | System and method of processing stereo images | |
Mattoccia | Stereo vision: Algorithms and applications | |
CN118212141A (zh) | 用于混合深度正则化的***和方法 | |
Long et al. | Adaptive surface normal constraint for depth estimation | |
US20160321838A1 (en) | System for processing a three-dimensional (3d) image and related methods using an icp algorithm | |
CN108564616A (zh) | 快速鲁棒的rgb-d室内三维场景重建方法 | |
CN109448045B (zh) | 基于slam的平面多边形物体测量方法及机器可读存储介质 | |
CN109961506A (zh) | 一种融合改进Census图的局部场景三维重建方法 | |
CN108776989B (zh) | 基于稀疏slam框架的低纹理平面场景重建方法 | |
WO2013029675A1 (en) | Method for estimating a camera motion and for determining a three-dimensional model of a real environment | |
CN111160291B (zh) | 基于深度信息与cnn的人眼检测方法 | |
Ummenhofer et al. | Point-based 3D reconstruction of thin objects | |
Xu et al. | Survey of 3D modeling using depth cameras | |
CN113744337A (zh) | 一种融合视觉、imu与声纳的同步定位与建图方法 | |
WO2018133119A1 (zh) | 基于深度相机进行室内完整场景三维重建的方法及*** | |
CN114782628A (zh) | 基于深度相机的室内实时三维重建方法 | |
EP3149707A1 (en) | Method and apparatus for object tracking and segmentation via background tracking | |
CN112365516B (zh) | 一种增强现实中虚实遮挡处理方法 | |
Johannsen et al. | Variational Separation of Light Field Layers. | |
Zhao et al. | 3D object tracking via boundary constrained region-based model |
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 |