APP下载

基于RGB-D树状结构物体三维重建

2018-12-20陈国军张清伟李开悦

计算机技术与发展 2018年12期
关键词:树状曲率物体

陈国军,张清伟,李开悦,曹 岳

(中国石油大学(华东) 计算机与通信工程学院,山东 青岛 266000)

0 引 言

随着计算机视觉技术的发展,三维重建技术的应用越来越广泛,可应用于军事、生活等各个领域。通常三维重建更多的是以人体、地形、室内环境等为目标,其形状规整,特征突出,重建相对容易。但是相对于树状结构物体,其颜色单调,结构复杂,特征提取困难,而且枝干较细的部位测得的深度数据不完整,重建的模型精度差。树状物体是大自然中普遍存在的事物,对于农业、林业等领域有重要的研究价值。树状物体的三维模型能够更好、更方便地应用于各方面的研究,因此对树状物体进行三维重建有着重要的研究意义。

1 相关工作

三维重建的方法主要有基于图片的方法和基于深度数据的方法。Martin提出使用物体轮廓的方法进行三维重建[1],该方法通过多个角度的轮廓图像获取三维模型,因为没有深度信息,所以无法重建带有凹面的物体;立体相机的出现解决了无法重建凹面的问题,立体视觉法[2-4]需要通过计算两幅图像的视差才能得到物体与相机的距离,计算量大。微软推出的Kinect深度相机可以直接得到物体的深度,而不需要通过复杂的计算,而且Kinect SDK可以直接将获取的深度数据转化为三维点云模型,操作方便。但是Kinect获取的深度数据存在大量噪声,要进行数据预处理后才能使用。基于深度数据的三维重建包括深度数据的获取、深度数据预处理、点云配准等步骤。通常数据预处理的方法是对深度图像应用双边滤波[4]及其改进算法[5-7]进行滤波处理后再重新映射到空间进行修复,但是由于树状物体噪声分布广泛,而且对于枝干部位数据丢失问题应用上述方法不能达到预处理的目的。何东健等[8]使用密度分析的方法对植物点云进行去噪,该方法可以去除离群点噪声和高频噪声,但是没有解决枝干数据缺失的问题。

ICP算法[9]是由Besl和Mckay提出的一种经典配准算法,如今依然应用广泛。由于ICP算法是一个最小迭代的过程,直接使用ICP算法进行点云配准容易达到局部最优[10-11],从而导致配准不准确,所以配准通常分为粗配准和精确配准两部分。粗配准可以使两个点云模型拥有较大的重叠区域,为精确配准提供一个良好的初始位置,精确配准时才能够达到全局最优。基于特征点匹配算法是常用的粗配准算法,针对不同的重建物体,特征点的提取方式不同。曲率与法向量是常用的特征提取的约束条件。严剑锋等[12]根据拟合曲面的曲率提取特征点,杨小青等[13]通过主曲率特征获取初始对应点集,用高斯曲率和点间距离双重约束查找精确匹配点对。使用曲率与法向量提取普通物体的特征能够达到很好的效果,但是对于树状物体,由于其结构相似,使用该方法效果不明显。郑立华等[14]使用FPFH特征描述子对苹果树进行特征点提取,并使用RANSAC算法进行特征匹配,该方法同样是以法向量与曲率作为属性进行特征提取,针对于叶片较大的植物配准效果差。邵小宁[15]使用圆形标定物作为配准时的特征点对树状物体进行粗配准,该方法需要额外的标定物,操作复杂。

综上,文中使用Kinect深度相机,针对树状物体深度数据的缺失问题,提出应用彩色目标图像修复深度数据的方法。借助于彩色图像,该方法能够解决枝干部位数据间断的问题,同时也可以修复物体的边界噪声,使数据更完整。针对树状物体粗配准过程中的特征点提取问题,提出使用物体边界点作为特征点进行配准,该方法能够为ICP精确配准提供良好的初始位置,从而提高配准精度。

2 数据预处理

由于相机的精度问题,采集到的数据中含有大量的离群点和孔洞。尤其对于树状结构物体,其枝叶连接部分经常出现数据的缺失问题,使得重建出的模型不完整。所以数据预处理是三维重建的首要过程。

2.1 目标提取

由于重建目标是单个物体,而非整个场景,所以目标提取是一个重要的过程。目标提取包括彩色图像目标提取与深度数据的目标提取。

2.1.1 彩色图像目标提取

彩色图像目标提取是指将待重建的目标物体从彩色图像中分离出来。文中使用Grab Cut算法[16]进行目标提取,该方法需要指定物体外围的矩形边框并进行初始化,然后通过迭代算法优化GMM模型得到最终的提取结果,如图1所示,记点集C为提取目标的像素集合。

图1 彩色图像目标提取结果

2.1.2 深度数据目标提取

深度数据目标提取是指将待重建的点云模型从场景中提取出来。文中使用直通滤波器[17]进行目标提取,该方法需要设置一个深度值d0作为截断阈值,利用式1进行点云目标提取计算,提取效果如图2所示。

(1)

图2 深度数据目标提取结果

2.2 点云数据修复

由于Kinect深度相机测量不准确,点云模型中会出现一些孤立点,也称作离群点。这些离群点在点云修复及后期的配准阶段都会产生负面影响。文中使用RadiusOutlierRemoval滤波器[17]去除离群点,滤波器要设置两个参数,一个是搜索半径,另一个是阈值参数。如果在搜索半径范围内拥有的邻域点个数小于阈值参数,则这个点就被当作离群点去掉。

去除离群点之后,使用彩色目标图像来优化目标点云模型。如果彩色图像中存在目标像素值而深度数据不存在,可以通过映射矩阵将彩色图像坐标映射到空间坐标,映射矩阵可以通过相机标定的方法计算得到,具体步骤如下:

(1)获取彩色目标像素点集C与目标点云模型P;

(2)遍历C和P中的每一个点ci和pi,根据对应坐标关系进行判断,如果ci存在而pi不存在,则pi作为待修复点存入点集Q;

(3)计算Q中每点的深度值zc,zc可由该点的邻域点通过线性插值得到;

(4)计算映射矩阵M,根据Q中每点的深度值及对应的彩色坐标计算该点在空间坐标系中的坐标,通过式2~4计算映射矩阵M。

Zc=

(2)

(3)

消去Zc后得到两个方程:

(4)

令m34=1,方程一共有11个未知数,使用最小二乘法求解超定方程组,得到11个未知参数的解,最终得到空间坐标与像素坐标的转换关系。通过式5可以计算像素坐标对应的空间坐标。

(5)

通过以上方法,可以对原始深度数据进行修复。修复效果如图3所示。可以看出,该方法修复了枝干部位缺失的数据,同时解决了边界噪声产生的数据丢失问题,提高了数据的完整性。

图3 深度数据修复结果

3 点云配准

由于深度相机每次只能获取一个面的数据,所以如果要得到完整的表面数据需要获取多个视角的数据,然后将不同视角的数据经过点云配准匹配到同一视角坐标系中,得到完整的点云模型。为了提高配准的精度,点云配准通常需要经过粗配准和精确配准两个步骤。

3.1 粗配准

粗配准是配准过程中重要的一步,如果粗配准能够为精确配准提供一个良好的初始位置,才能避免精确配准时的局部最优问题。粗配准主要通过特征点匹配来计算变换矩阵,特征点的选取直接影响粗配准的精度。文中针对树状结构物体的特性,提出使用边界点作为特征点进行匹配,然后使用匹配的特征点对计算变换矩阵。

3.1.1 计算曲率

点云中每一点的曲率都可以根据其邻域点计算得到。首先根据邻域点通过最小二乘拟合局部二次曲面,然后根据拟合得到的曲面方程计算该点的两个主曲率k1、k2,平均曲率H与高斯曲率K。

K=k1·k2

(6)

(7)

3.1.2 点云边界提取

通常点云边界区域相邻点的深度值有较大的深度差,而非边界区域相邻点的深度值具有连续性,变化不明显,根据这一特征可以提取点云模型的边界,具体步骤如下:

(1)针对点云模型P中的每一个点pi(i=1,2,…,n),其中n为P中点的个数,获取pi的四邻域点集Ni中每一点的坐标,其中i=1,2,3,4;

(2)计算pi到其四邻域点距离的最大值pmaxi;

(3)设定阈值α,如果pmaxi>α,则将pi作为边界点进行提取。

应用上述方法对点云模型进行边界提取,效果如图4所示。

图4 点云边界提取

3.1.3 点云边界特征点匹配

由于一点处的曲率并不会随着旋转平移变换而改变,所以应用曲率属性进行特征点匹配。应用上述算法将B1、B2作为提取的两个点云模型的边界点集,B1、B2中的任意点为b1i、b2j(i=1,2,…,m;j=1,2,…,n),其中m、n分别为B1、B2中点的个数。由于平均曲率与高斯曲率不会因为坐标的改变而变化,保证了特征点对的存在,可以计算其平均曲率与高斯曲率,并规定向量s为两个曲率共同组成的一个二维的属性向量。计算B1、B2中所有点的属性向量s1i、s2j(i=1,2,…,m;j=1,2,…,n)。Tonimoto距离不仅考虑了两个向量的角度相似性,而且考虑了两个向量的距离相似性。对B1中每个点的属性向量s1i,通过式8逐个计算其与B2中每个点的属性向量的Tonimoto系数Toi。设定一个阈值,计算B1中每个点的最小Tonimoto系数min(Toi),如果min(Toi)在阈值范围内,则提取对应的特征点作为匹配点对,否则继续B1中下一个匹配点的搜索,一直到遍历完B1中所有的点。最后根据得到的匹配点对通过单位四元数法求取旋转矩阵R与平移矩阵T。

(8)

3.2 精确配准

经过粗配准之后,两个点云模型有了很大的重叠区域,这时使用ICP算法进行精确配准可以得到最终的平移变换矩阵。但是由于点云模型分辨率高,点云比较密集,直接使用所有点去做配准会影响配准的效率,可以对原始点云模型先进行精简然后再进行配准。为了提高效率,文中采用体素网格的精简方法[18]对点云进行精简。将点云模型划分成n*n*n的网格模型,计算其每个网格中所有点的平均坐标值,用这一点的坐标来代替网格中所有点的坐标,这样就达到了精简的目的。应用精简后的点云模型通过ICP算法进行精确配准得到最终的旋转平移矩阵。

4 实验结果与分析

为了检验该算法的实验效果,使用的设备配置为I7 6700CPU,32 G内存,GTX1080显卡,Kinect 2.0深度相机;使用的开发工具有VS2013,PCL开发库,OpenCV开发库;实验1使用的数据为玉兰树数据,实验2使用的数据为桂花树数据。

应用以上设备及提出的方法对原始点云进行目标提取后的结果如图5(1)所示,可以看出两个点云模型差别很大。使用文中方法对两个不同视角的点云进行粗配准后得到旋转矩阵R与平移矩阵T,点云模型的配准结果如图5(2)所示,可以看出两个点云模型已经有了很大的重叠区域。传统方法使用曲率的极值点作为特征点进行粗配准,使用文中的实验数据,应用传统方法进行配准后得到旋转矩阵Rt与平移矩阵Tt。图5(3)所示为传统方法粗配准结果,可以看出应用传统粗配方法配准后的两片点云的重合度很差,而应用文中提出的粗配准方法配准后的结果有更大的重叠区域,配准精度更高。进行粗配准之后,两个点云模型已经有了较好的初始位置,此时使用ICP算法对模型进行精确配准,得到最终的旋转矩阵R'和平移矩阵T',点云模型最终的配准效果如图5(4)所示。

图5 玉兰树实验结果

实验1采用的数据叶子大而且少。实验2采用叶子更为复杂的树状物体,应用文中方法同样也得到了较好的结果。图6(1)所示为实验2采集的原始数据。应用文中提出的粗配准方法对两个不同视角模型进行配准,结果如图6(2)所示。应用ICP配准算法对粗配准后的模型进行精确配准,结果如图6(3)所示。为了得到完整的三维模型,对多个角度的点云模型进行配准。图6(4)为具有颜色信息的完整的三维点云模型。

图6 桂花树实验结果

5 结束语

针对树状结构物体,由于Kinect深度相机测量的深度数据存在大量的噪声与数据的丢失问题,文中提出一种彩色图像优化深度数据的方法,能够解决边界的噪声问题,同时对枝干连接处丢失的数据进行修复,提高数据的完整性。

由于树状结构形状相似,应用传统的方法提取特征困难,文中提出将边界点作为特征点,使用曲率等属性信息进行特征点匹配,提高了粗配准的精度,进而提高精确配准精度。但是该算法运行时间较长,后续研究将集中在提高重建的时间效率上,应用GPU的并行运算来提高重建的速度。

猜你喜欢

树状曲率物体
树状月季的栽培管理及园林应用
一类具有消失χ 曲率的(α,β)-度量∗
儿童青少年散瞳前后眼压及角膜曲率的变化
面向复杂曲率变化的智能车路径跟踪控制
蓬勃能力之树 奠基生命成长
不同曲率牛顿环条纹干涉级次的选取
列表画树状图各有所长
树状图为概率题做导航
揭开物体沉浮的秘密
为什么同一物体在世界各地重量不一样?