基于Kinect摄像头的3D建模
摘要:RGB-D(Kinect-style)摄像头是一种逐像素获取RGB图像深度信息的低成本传感系统。在这篇文章中我们调查了这种从一个实物的多种视点和获取多重图像并且完整的创建3D实物模型的相机的应用。这种模型在工业上已经被广泛应用。我们执行了一个完整的包括实物分割,注册,总体较准,模型去噪以及构造的3D实物模型创建程序,并且研究了这种3D实物建模函数的作用。我们还创建了一个进程来客观的评价这种3D实物建模的性能。我们收集了Roland Pieza LPX-600激光扫描仪的数据作为基本真实数据来与我们执行的3D模型产生的数据形成对比。
概论
3D实物模型是一种以数学语言创建一个描绘物体三维表面的进程。一个3D模型可以描绘一个使用了在已知3D空间作为一个点云收集点的3D实物。这些点也可以通过例如三角形,直线和曲面这样的集合物体收集。3D模型已经在媒体,电影,视觉游戏和工业中被过度使用。
激光扫描仪和立体摄像机可以被用于3D模型的创建。激光扫描仪虽然精确但是计算扫描结果缓慢且成本高。立体摄像机虽然便宜但需要复杂的程序来计算深度估计数据并且在相同领域中仅有少量的深度估计数据。Kinect摄像机在传送时机的准确度以及极度节省3D扫描的成本方面表现出色。然而,Kinect的局限性之一在于深度(详细)地图存在噪声,此外可能还会包含由于地表性质的不允许以及闭塞所造成的数据缺失(在地图上形成空洞)的地区。这使得建立一个高质量的基于Kinect的3D实物模型成为一项富有挑战性的工作。
一个显著的KinectFusion系统和它所创造的3D室内场景的重建只能使用Kinect实时获取的深度数据。这一系统依靠Kinect的慢镜头和高度混乱的环境来维持它的图像跟踪。KinectFusion利用空间实时平均值来降低噪声。根据3D局部点云从不同场景的记录,KinectFusion采用的是需要3D点云彼此相近的ICP(最近点迭代)。因此,场景不得不被缓慢扫描是为了确定相邻视野可以有效的重叠以便于降噪和记录可以很好的工作。另外一个可能问题是在记录中KinectFusion依赖于在记录上显著的结构特点,因此,在缺少显著结构特点,例如环形结构时,将很难处理目标物。CopyMe3D建议建立一个坐在转椅上旋转的同时被Kinect扫描的人物的3D模型。ReconstructMe和KScan是两个使用Kinect来建立物体3D模型的商业产品。
在这篇报告中,我们研究了一个仅局限于Kinect的视野的方案来应用于建立3D实物模型。然而只有相对少量的框架可以用,由于来自不同视野的框架之间的重叠区域相当局限,因此用于KinectFusion中的去噪和记录方式可能并不是那么的有效。此外,这种算法需要顾及到缺少显著结构特征的物体并提供一种好的建立3D实物模型的机构。我们提出了一种克服这些问题的结构。特别的,在记录过程中,我们在ICP良好记录之前加入了一条基于随机样本一致性(RANSAC)的首记录这一步。我们还修改了ICP的算法来使其可以包含结构特点以便于可以处理无显著结构特点的物体。我们尝试用闭环和全局对准运行来克服传输误差问题。我们还执行了模型去噪和重构来去除噪声并且赋予其3D实物模型的结构。
报告余下的部分将如下有序的介绍。在第二部分,给出一个Kinect的简短的综述。在第三部分,我们描述我们的3D实物模框架的细节。在第四部分,我们讨论去噪和重建3D实物模型。在第五部分,我们讨论对于3D实物模型的评价。这篇报告的总结在第六部分。
2.Kinect的综述
我们将集中讨论的是基于我们正在实施的Kinect v1,RGB图像有640*480像素的分辨率,每一个像素占8bit的存储空间。深度图像需要使用红外发射机和一个利用结构光成像的单色CMOS传感器。红外传感器现实的数据为11bit,其中包括分配给标记深度数据有效性的1bit。余下的10bit代表的价值为红外传感器有1024个灵敏度层级来存储视觉误差。在于毫厘之间描绘出真实世界后——深度图像的每个像素有13bit,其中低三位用于玩家索引。深度图像的分辨率为640*480像素。从相机平面上空间(x/y)分辨率以及深度分辨率都为2m距离内能识别3毫米。
一个关于Kinect摄像机捕捉的RGB和深度图像的例子在Figure 1上被登出。我们可以看到深度图像在数据缺失部分存在空洞并且噪声相对严重。Kinect相机深度测量的错误伴随着传感器距离的增加呈几何倍增长。一般来说,对于3D扫描程序来说,数据应该在距离传感器1-3米内获得。当超过最大距离时,数据的质量将会因为噪声和深度测量值的低分辨率而降低。
Kinect v2在2014年夏初发布并且它的SDK将会于2014年末被官方发表。新的Kinect使用了飞行时间(TOF)技术来获取深度图像。它的视野宽度提高了60%。产生的RGB画面有1920*1080的分辨率并且深度画面有512*424像素的分辨率。这使得画面质量比起Kinect v1提高了很多。我们未来的工作将会依照Kinect v2的研究结果进行。
一个3D实物模型的框架
图一列出了我们3D实物建模进程的流程图。在这个框架中,首先,同步RGB和深度实物图像被Kinect获取。物体的前景被从背景中分割出来并且以相应的使用RGB和深度数据的点云描绘。不同视野的部分3D点云然后被同时记录来形成一个完整的实物3D点云。
为了处理相邻视野间可能存在相对较小的重叠区域的情况,我们在使用ICP之前在注册表中加入了RANSAC来完成头记录以形成良好的记录。在完成一个循环后,由于传输错误,物体最后的视角可能不会于第一个视野的3D点云很好的匹配。我们完成了一全局对准来调整模型从而使得由于传输错误而造成的不匹配降到最小。在这之后,组合的3D点云模型是深度去噪而成为3D实物模型。例如多边形网络,体表示或者不同应用的面元。在下面的章节里,我们提供了每一个子流程的细节。
图一:(a)和(b)表示RGB和深度图像,连同物体边界分别独立的被一台Kinect相机采集,从强调掩膜分割获取。
3D模型
表面描绘
模型去噪
全局对准
记录
hellip;
点云1
点云2
点云N
图2:以3D实物模型程序为基础的Kinect流程图
从个别场景形成的部分3D点云
一般实物分割是一个病态的问题。自从3D实物建模可以在受控的环境中被控制,我们将实物放在一个绿色的表面和绿色的屏幕前并且用简单的低合成基色分割来将实物从RGB图像中分割出来。这一前景掩膜然后被用于深度图像。图1列举了一个分割结果的例子。一个视野的3D点云可以由裁切不齐的RGB与深度图像形成。
B. 记录
在KinectFusion和关系法中,初始校准并没有完成。这些方法使用了30帧的RGB和深度图像的视频流。两个相连的框架在视角上并没有重大的变化。这消除了数据前面初始验证的必要性并流入ICP算法中来匹配两个点云。然而,在我们的方案中我们的框架限制在重叠区域内。如果这些框架直接添加进去,那么ICP云可能会表现糟糕。基于这一原因,我们采用粗糙的底部描绘来完善记录程序。
对于RGB和深度图像,我们首先使用RANSAC算法来粗略的对齐。在粗糙的对其算法中,两个相邻视野的电云在RGB图像中被基于SIFT特征粗略的记录。
记录的第二阶段为基于精细记录的ICP。ICP算法标准通过关联相邻节点搜索和估计转换使用了均方差价值函数的参数完成点云的关联。、
当ICP算法被广泛用于稠密点云的匹配时,它受限于它处理缺乏结构特征时的精确结果的能力或者在相机视野中处理快速变化的能力。为了解决这一问题,我们使用了别人推荐给我们的精细配准算法。在这个基础上的筛选算法被加入到价值函数中来解决当物体缺乏结构特点时的情况。为了利用没有集中对每个3D像素点SIFT描述符号进行彻底估算的3D图点的结构信息,一个包括相似的一对SIFT特点的空间距离的约束条件被加入。除这个约束条件外,一个动态权重被用于适当的平衡结构的有效性和光影项目。它作为细节被提及。
C. 全局对准
在记录进程中,记录错误可能会积累更多的被加入到模型的点云。每一步记录中的微不足道的错误都会导致首尾框架很大的不重合。这个错误可以通过一个探测最后的闭环画面的一个整体校准程序来排除,通过前一帧和第一帧图像来记录这个画面,并且将错误平均的分到其他画面之中。
闭环检测
以前的技术使用每帧画面间的欧几里得距离和带有扫描介质最小数目的入口的上一帧画面来检测闭环。我们的闭环检测算法是基于摄像机是按照顺时针或者逆时针方向来获取物体图像的假设的。当我们获取数据时我们确定上一帧图像与第一帧图像有最大的重叠以至于边界会适当的封闭并且我们可以相对容易的探测封闭环。
全局对准
当一个封闭区域被检测时,我们会借助每一个顶点来形成一个饼图来代表3D点云的一个画面。连续画面间的边缘完成了连续画面间的手势转换。我们首先使用ICP借助封闭环来匹配第一和最后的画面并且得到转换因子∆Y。得到T1T2...TN=∆Y,Ti表示记录程序中的手势转换因子。如果这条记录没有任何错误,∆Y则应该形成一个单位矩阵。其他的∆Y由于记录中的错误而不具备同一性。使用∆X反过来表示∆Y,得∆XT1T2...TN=I,I表示单位矩阵。∆X可以表示环中的每一个手势来降低封闭环中的不协调。为了得到一致性的地图,我们需要计算指定的部分需要改变的转换因子∆X的最高点的权重。权重的计算方法如下:
(1)
当vs为环形首顶点并且ve尾顶点时。d(vl,vk)是沿路径vl到vk的边缘权重的总和。当加权因子wi位于区间[0,1]时如下:
(2)
最优化后的画面i的最终修正因子为:
(3)
Tirsquo;表示修正因子。整个进程被重复若干次直到成功收敛。
图三表示3D模型全局对准前后的结果。全局对准消除了首尾画面间的差别并用于建立3D模型。
图三:全局对准后的建模结果。(a)全局对准前(记录后)(b)全局对准进程后
模型的去噪和重组
- 3D实物模型降噪
在记录的全局对准后,3D模型已经被很好的记录了。然而,由于深度相机的摄影误差而存在大量噪声。因此3D点云需要通过精炼3D实物模型来实现降噪。
在这项工作中,我们使用了移动最小二乘(MLS)3D模型降噪法。MLS使用3D表面假设,用3D点集定义了一个复制品。MLS的目的是寻找输入3D点集定义的复制品。基于这个复制品的假想,我们可以通过一个函数来近似得到MLS表面。
令siisin;R3,iisin;{1,...M}表示有噪声的3D点云的点。目的是将点投射到近似si的二维平面上。对于点云上每一个小的局部邻域,我们通过局部切平面H来匹配。用ri表示si到H的高度,h是H定义的原始参考域,我们可以设定一个近似多项式以便于加权平方误差:
(4)
被降到最低,表示一个光滑单调的增函数,它的定义域为整个空间(e.g.,我们计划使用高斯估计)。(xi,yi)是si在H上的投影坐标。在函数极小化后,多项式函数的系数g可以计算出来。投影近似进程为了3D点集中的每一个点而运行并且由于它可以适当的维持复制品而被提出。
图4表示使用MLS前后的3D建模结果。从结果来看,3D盒子模型表面更加平滑并且异常的噪声被有效的抹除了。
图4.(a)3D降噪前(记录前)。(b)MLS降噪后
B.调协与重构
最初的3D模型用点云表示。完成调协和重新构图使得模型与真实物体在纹理上相似。为了这个目的我们使点云形成三角形以建立的网状表面然后将从RGB图像中提取的RGB色彩投射到网格中。
对于我们3D建模的应用,我们使用了狄洛尼三角剖分来完成3D点云到网格的转换。狄洛尼三角剖分在平面上去一点P作为一个三角DT(p),除非DT(p)范围内没有满足的点P。我们可以在三角形中插入一个空间来得到部分平整的平面。
建立网格后,我们给每个顶点涂上颜色并且在每个三角面元中简单的插入颜色。这种文理映射要求三角形的分辨率应该足够高以达到以假乱真的效果。以模型为基础建立3D点云可以被转用到其他的3D表现手法中。
5. 3D Kinect建模的评价
- 错误评价
为了调查建立3D模型时犯的错误,使用了上述的大致程序,与激光扫描仪获得的点云做了比较。激光扫描点云也可以通过有刻度的Roland PiczaLPX-600红外扫描仪在相同的物体上过的。这种激光扫描仪通过使用非触点式红外激光和高质量的部分采光模块会产生高分辨率的物体的点云。激光扫描仪的精确误差范围大约为 /-0.5毫米。这就是激光扫描的点云的精确性可以充分承担作为参照物来支持精确Kinect点云估计的原因。在缺乏任何系统错误的前体下两点云间的均方差的理想状态为零。
我们提出如下方法来计算3D模型构造和从反映地面状况的激光扫描仪中获得
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[141323],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。