基于KINECT FUSION 的室内目标三维重建系统*

2023-09-29 05:51
计算机与数字工程 2023年6期
关键词:三维重建栅格摄像机

杜 航 牟 莉

(西安工程大学计算机科学学院 西安 710600)

1 引言

Kinect 传感器相对与传统扫描设备更加廉价而且便捷,基于Kinect Fusion 三维重建技术可以对物体进行实时的扫描以及三维建模[1~2]。Kinect Fusion 在获取物体一个角度的深度图像后,再通过移动Kinect 传感器得到该物体其他角度的深度图像数据[3],可以将该物体各方位的三维表面分别采集,然后进行融合处理[4]。这时Kinect 传感器会记录该位置信息并保存,并对此后对每一帧图像的姿势以及帧与帧之间的关联进行分析。这些从不同角度采集的深度数据能够融合成经过重建后的三维图像[5],用于完成三维目标的重建。

本文将使用Kinect 对物体各个角度进行深度图像数据的采集,然后通过Kinect Fusion 相关算法,进行匹配定位与融合,最终实现三维目标的重建[6]。

2 基本原理

2.1 深度数据处理

完成3D 重建的第一步就是对采集到的深度图像数据进行处理。Kinect 获取深度图像的原理,是利用其红外激光发射器和红外接收摄像机组成的一组红外结构光视觉设备,进而计算空间中点相对于红外接收摄像机的深度[7]。

首先,红外激光发射器会向物体所在的环境中发射随机的红外点结构光,然后红外摄像机会对物体反射的红外点结构光进行接收[8],利用大小为9*9 像素或者7*7 像素的图像在每一个像素周围的±64 像素范围内进行修补,接下来通过对图像随机点进行匹配获得现有状态下的原始视差,进而利用红外接收摄像机的内参数,结合基线长度以取得该环境下的三维点的深度信息,如式(1)所示。

其中:ZIR为深度图像的数据值;b为基线长度;fIR为红外接收摄像机的焦距;d为原始视差。同时可以获得红外摄像机的内参数矩阵KIR,如式(2)所示。

可知红外接收摄像机的焦距为(fuIR,fvIR),红外接收摄像机的主点坐标为(u0IR,v0IR)。

2.2 空间位置追踪

得到经过处理深度图像数据后,接下来就必须确定该深度图像在整个三维空间中的位置。在Kinect Fusion 中,是通过RGB 相机和IR 相机的相互协作来获取深度图像的具体位置的。Kinect 的RGB 摄像头采集到的是环境的彩色图像,RGB 彩色摄像头的内参数矩阵KRGB,如式(3)所示。

式中(fuRGB,fvRGB)为RGB摄像机的焦距,(u0RGB,v0RGB)为RGB 摄像机的光心。RGB 摄像机和IR 摄像机的变换关系如式(4)所示。

对于空间中的一点P,该点的视差d可以由Kinect 获得,其深度ZIR可以根据式(1)计算得到,接下来P点在红外接收摄像机下的三维坐标就可以通过红外接收摄像机的内参数取得,如式(5)所示。

那么P点在RGB摄像机坐标下的三维坐标,则可以通过IR摄像机与RGB摄像机的旋转平移关系得到。最后,要获得图像坐标(uRGB,vRGB),可以引入RGB 摄像机内参数进行计算,如式(6)和式(7)所示。

2.3 ICP定位

通过Kinect Fusion 算法,可以获得目标物体表面每个采样点的空间坐标,若干个点的坐标就可以构成一个集合,这些点的集合就是所谓的“点云”(Point Cloud)。通过相机位置数据可以确定出图像的特征点,从而判断出两个深度图像之间的最佳变换矩阵,以此来实现深度图像的配准。点云的配准完成之后,由于各个角度所获取到的点云数据有所差异,要将点云中的位置确定下来,就需要使用ICP(Iterative Closest Point)定位算法[9]。ICP 定位算法就是将当前画面帧中的点云与经过预测所得到的点云使用ICP 算法进行匹配[10],这一过程的实现如下:

1)阶段:使用投影法确定对应点关系。摄像机会在连续的两个位置分别对目标边缘进行采样和预测,随即将两个时刻的点云转换到当前画面帧的摄像机坐标系下,再向当前像平面上投影,最后找出两个点云中具有相同的像平面投影点的点集合[11~13]。ICP算法还使用对应点间的欧氏距离和法方向夹角进行计算,用于筛选对应点。

2)阶段:对当前相对位姿的准确度进行检测,由误差机制来计算点到平面的误差。

3)阶段:将相对位姿进行优化调整,使用线性化的方法可以将优化问题转变为数学问题。该优化方法实际上就是一个最小二乘优化的方程[14]。设其最优解为x,得到线性方程组如式(8)所示,解方程即可计算出x。

4)阶段:将1)阶段~2)阶段的过程迭代10次。经过上述步骤之后,可使点云之间的匹配满足一定条件下的最优解。

2.4 TSDF点云融合

有了二维空间的ICP 定位方法,要实现三维空间的重建就需要用到TSDF(Truncated Signed Distance Function)算法进行点云融合[15]。该方法能够模拟出一个虚拟的三维空间,利用已获取的点云进行计算及处理,还可以将这些点云数据进一步融合,使不同角度获取的点云数据展示在同一个三维空间坐标系下[16]。

在TSDF 算法中,三维空间是利用一个立方体栅格来模拟的,物体模型表面到该栅格的距离存放在这个立方体栅格中,物体表面被遮挡一侧和可见一侧分别使用正负加以区别,表面上的点则由过零点来表示。如图1 中左侧的立方体栅格中的某物体模型。每当有新的数据需要加入模型时,会依照式(9)进行融合处理,该公式中原有的立方体栅格距离值为i,当前点云对应的立方体栅格距离值则为i+1,同一个立方体栅格的距离值由权重W来进行融合,新的权重等于两个权重之和。

图1 初始获取的椅子的点云图像

可见TSDF融合算法也是具有最小二乘优化性质的,但是在其融合过程中使用了权重值W,这种优化算法同样可以对图像进行去噪处理。

在点云融合过程完成后,Kinect Fusion 会使用光线跟踪的方法显示融合后的图像,以便可以实时地、动态地观察融合后的三维图像,有关光照效果的体现都可以使用光线追踪的方法来实现[17]。

至此,Kinect Fusion 对目标的三维重建完成。在下一章将完成这一具体过程,进行实验并分析。

3 实验分析

为验证Kinect Fusion 算法的有效性,将依据Kinect Fusion 的基本原理对室内目标进行三维重建。实验中选取椅子作为实验对象,通过使用Kinect传感器来对室内目标进行三维扫描及重建,以便更全面地了解Kinect Fusion 的构造过程[18],实验分为以下几个步骤进行。

步骤一:首先对实验目标使用Kinect 进行扫描,通过Kinect Fusion 获取到的初始点云如图1 所示。Kinect Fusion第一次对三维点云的构造具有较多的噪点,而且由于扫描的角度问题,有些像素点并不能被获取到,因此图像中还存在一些空洞部分。

步骤二:这时先不移动Kinect,让Kinect 持续对目标的同一角度进行扫描,经过对图像部分的去噪和点云多次的获取,图像中空洞部分不断被填补,如图2 所示。虽然空洞部分已经被填补,但点云图像中仍然存在许多波纹状噪点,这是由于像素的获取有限,每个像素的位置不能确定所致。

图2 静置后获取的椅子的点云图像

步骤三:然后我们不断微调Kinect对目标进行扫描,使获取到的三维点云图像不断融合,获取到的三维点云图像如图3 所示。经过位置的调整,目标的各个像素点相对于三维空间的位置得到了进一步确定,图像中的波纹也逐渐平缓,物体的三维点云也相对清晰起来。

图3 微调扫描位置后获取的椅子的点云图像

步骤四:接下来通过变换Kinect传感器位置对物体的各个方位进行扫描,经过不同角度的图像采集,每个像素对应的点进一步得到确定,三维点云的融合越来越精确,即可观察到清晰的三维点云图像,如图4所示。

图4 最终获取的椅子的点云图像

经过多个角度对三维点云的获取,使用Kinect Fusion 算法对图像进行进一步处理后,最终得到的点云相较于最初获取的点云图像,整体效果有了较大的提升。且该点云数据是构建于三维空间坐标系中的,可以通过不同角度观察。

使用Kinect Fusion 进行三维重建的整个过程操作便利,只需要移动Kinect对物体各个角度进行扫描即可。最终构建的椅子的三维点云图像较为精确,椅子的整体结构得到了较高的还原。而且在移动摄像机的过程中可以清楚地观察到点云融合的过程,可见Kinect Fusion算法的效率之高。

4 结语

Kinect 传感器将传统彩色摄像机与深度摄像机相结合,可以同时获得物体的彩色图像信息和深度图像信息。使用Kinect Fusion 对物体进行三维重建的优势在于其采集速度较快、精度相对较高且成本低廉,在现有条件下对室内目标的三维重建能够满足绝大部分需求。Kinect Fusion 算法使用的是深度信息,通过设计高效的并行算法,满足一定条件后即可在显存中构造三维图像信息,在进行场景建立时有良好的用户体验。同时,Kinect Fusion采用了基于TSDF 模型的点云融合方法,构建的点云模型冗余点较少。

猜你喜欢
三维重建栅格摄像机
基于邻域栅格筛选的点云边缘点提取方法*
基于Mimics的CT三维重建应用分析
摄像机低照成像的前世今生
新安讯士Q6155-E PTZ摄像机
基于关系图的无人机影像三维重建
三维重建结合3D打印技术在腔镜甲状腺手术中的临床应用
多排螺旋CT三维重建在颌面部美容中的应用
如何消除和缓解“摄像机恐惧症”
不同剖面形状的栅格壁对栅格翼气动特性的影响
基于CVT排布的非周期栅格密度加权阵设计