当前位置: 首页 > 专利查询>浙江大学专利>正文

基于深度相机的实时物体三维重建方法技术

技术编号:17542509 阅读:115 留言:0更新日期:2018-03-24 20:34
基于深度相机的实时物体三维重建方法,包括从深度相机中按顺序获取一帧深度图像作为当前帧并进行预处理;通过质心ICP算法估算出的当前帧和前一帧的相对位姿,用前一帧的精确位姿与当前帧和前一帧的相对位姿计算得到当前帧相机的精确位姿;利用相机的精确位姿将当前帧数据融合到局部TSDF中;从局部TSDF中获取步骤3中融合于局部TSDF的点云,以该点云作为前一帧的点云,或者将局部TSDF与全局TSDF进行匹配融合,并将局部TSDF初始化。本发明专利技术具有能够避免ICP匹配算法失效,降低累积误差提高模型精度的适用于重建指定物体或人的优点。

3D reconstruction of real time object based on depth camera

【技术实现步骤摘要】
基于深度相机的实时物体三维重建方法
本专利技术涉及三维成像领域,特别是一种能够实时地对物体或人体进行三维重建的方法。
技术介绍
三维重建技术一直是计算机图形学和计算机视觉领域的热点课题。三维重建就是从输入数据中建立3D模型。随着各种面向普通消费者的深度相机的出现,基于深度相机的三维扫描和重建技术得到了飞速发展。对于现实场景中的点,深度相机扫描得到的每一帧数据不仅包括了场景中的点的彩色RGB图像,还包括每个点到深度相机所在的垂直平面的距离值。这个距离值成为深度值(depth),这些深度值共同组成了这一帧的深度图像。深度图像可以看做是一幅灰度图像,图像中的每一个点的灰度值代表了这个点在现实中的位置到相机所在垂直平面的真实距离距离。RGB图像中的每个点都会对应一个在相机的局部坐标系中的三维点。因此,深度相机的每一帧的深度图像相当于一个在相机的局部三维坐标系中的点云模型。基于深度相机的三维重建技术所使用的输入数据是RGB图像和深度图像,因此,这类技术也被称为基于RGBD数据的三维重建技术(D表示深度值,Depth)。基于深度相机的三维重建的核心问题有:1、深度相机的数据量非常庞大,如何在重建过程中处理庞大的数据。并且,深度相机所得到的深度数据是存在误差的,即使相机位置固定,现实场景中的点在不同帧中的深度值也会有所区别,那么如何估计点的最终位置?2、相机位置的估计,即如何在位置环境中通过获取周围的环境数据来确定自己所在的位置?Newcombe等人于2011年发表的“KinectFusion:real-time3Dreconstructionandinteractionusingamovingdepthcamera”提出了三维重建的经典方法KinectFusion,使用迭代最近点(Iterativeclosestpoint,ICP)方法来解决上述核心问题。KinectFusion提出在世界坐标系中定义一个立方体,并把该立方体按照一定的分辨率切割成小立方体,使用截断有符号距离函数(truncatedsigneddistancefunction,TSDF)的方法来更新每个小网格中的一个数值,该数值代表该网格到模型表面的最近距离(TSDF值)。对于每个网格,在每一帧都会更新并记录TSDF值,通过TSDF值还原出重建模型。通过不断更新并“融合”TSDF值,来接近所需要的真实值。KinectFusion方法定义的立方体中的所有的网格中的TSDF都需要记录,即便这个网格在显示场景中根本没有点,这就造成极大的内存空间的浪费,并限制了扫描范围。ThomasWhelan等人在2015年发表Kintinuous“RobustReal-TimeVisualOdometryforDenseRGB-DMapping”是在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-1中的压缩公式为:其中,为向下取整函数,(u,v)表示像素点坐标,D(u,v)表示在像素点(u,v)上的原始深度值,Ds(u,v)表示在像素点(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)位置上的三维坐标;步骤1-3-2:对于点云中的每个点用N×N的窗口以点为中心获取与点最相近的k个相邻点,为这k个相邻点计算一个最小二乘意义上的局部平面Q,其中为平面Q的法向量,d为平面Q到坐标原点的距离;步骤1-3-3:获得平面Q上的质心对半本文档来自技高网
...
基于深度相机的实时物体三维重建方法

【技术保护点】
基于深度相机的实时物体三维重建方法,包括以下步骤:步骤1:从深度相机中按顺序获取一帧深度图像作为当前帧,对当前帧进行预处理,预处理包括在深度图像中将对象从场景中分割出来、将分割出来的对象数据去除边界噪声,将去噪后的对象数据生成有序点云和用PCA(主成分分析)计算点云法向量;步骤2:判断当前帧是否第一帧,若是,则获取相机的物理位姿作为相机的精确位姿,进入步骤3;若否,则通过质心ICP算法估算出的当前帧和前一帧的相对位姿,用前一帧的精确位姿与当前帧和前一帧的相对位姿计算得到当前帧相机的精确位姿,进入步骤3;步骤3:利用相机的精确位姿将当前帧数据融合到局部TSDF中;步骤4:判断是否有结束指令,若否,则从局部TSDF中获取步骤3中融合于局部TSDF的点云,以该点云作为前一帧的点云,重复步骤1‑4;若是,将局部TSDF与全局TSDF进行匹配融合,并将局部TSDF初始化;判断是否有程序结束指令,若是,从全局TSDF提取点云,并且使用贪婪三角化获得物体模型;若否,则从全局TSDF中获取在上一帧相机位姿下获取前一帧的点云,重复步骤1‑步骤4。

【技术特征摘要】
1.基于深度相机的实时物体三维重建方法,包括以下步骤:步骤1:从深度相机中按顺序获取一帧深度图像作为当前帧,对当前帧进行预处理,预处理包括在深度图像中将对象从场景中分割出来、将分割出来的对象数据去除边界噪声,将去噪后的对象数据生成有序点云和用PCA(主成分分析)计算点云法向量;步骤2:判断当前帧是否第一帧,若是,则获取相机的物理位姿作为相机的精确位姿,进入步骤3;若否,则通过质心ICP算法估算出的当前帧和前一帧的相对位姿,用前一帧的精确位姿与当前帧和前一帧的相对位姿计算得到当前帧相机的精确位姿,进入步骤3;步骤3:利用相机的精确位姿将当前帧数据融合到局部TSDF中;步骤4:判断是否有结束指令,若否,则从局部TSDF中获取步骤3中融合于局部TSDF的点云,以该点云作为前一帧的点云,重复步骤1-4;若是,将局部TSDF与全局TSDF进行匹配融合,并将局部TSDF初始化;判断是否有程序结束指令,若是,从全局TSDF提取点云,并且使用贪婪三角化获得物体模型;若否,则从全局TSDF中获取在上一帧相机位姿下获取前一帧的点云,重复步骤1-步骤4。2.如权利要求1所述的基于深度相机的实时物体三维重建方法,其特征在于:步骤3中的结束指令含程序结束指令和局部TSDF融合所需帧数到达预定数量是发出的指令。3.如权利要求2所述的基于深度相机的实时物体三维重建方法,其特征在于:步骤2中,估算出的当前帧和前一帧的相对位姿时先通过前一帧点云的质心和当前帧点云的质心获得相机初始平移量,再使用ICP算法获取前一帧和当前帧的相对位姿。4.如权利要求3所述的基于深度相机的实时物体三维重建方法,其特征在于:步骤1中,在深度图像中将对象从场景中分割出来的方法是:步骤1-1-1:压缩当前帧深度图像的深度图数据,压缩后的深度图数据的每一个数值代表一个区域的深度值;步骤1-1-2:计算压缩后的深度图的深度直方图,取前N个峰值的深度值;判断这N个峰值的深度值是否在物体的深度值范围内,物体的深度值范围人为设定,若否,则放弃当前帧深度图像;若有多个峰值的深度值在物体的深度值范围内、则将前N个峰值的最大值作为输出值,若只有一个峰值的深度值在物体的深度值范围内、则将该峰值的深度值作为输出值,记为单位为m;步骤1-1-3:将设为下阈值,设为上阈值,获得物体深度图:,表示在像素点上的原始深度值。5.如权利要求4所述的基于深度相机的实时物体三维重建方法,其特征在于:步骤1-1中的压缩公式为:,其中,为向下取整函数,表示像素点坐标,表示在像素点上的原始深度值,表示在像素点压缩之后的深度值。6.如权利要求5所述的基于深度相机的实时物体三维重建方法,其特征在于:步骤1中,将分割出来的对象数据去除边界噪声的方法为:采用7X7的窗口在整幅深度图像上进行滑窗,计算深度值与窗口中心的深度值的差值大于200mm的像素个数,像素个数记为count,若count>5时,就认为当前窗口中心是属于边界处或者噪点。7.如权利要求6所述的...

【专利技术属性】
技术研发人员:曹彦鹏许宝杯曹衍龙杨将新何泽威付贵忠官大衍叶张昱董亚飞
申请(专利权)人:浙江大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1