基于Kinect的实物地质标本重建方法研究
2018-11-29朱迪吴晓红何小海张余强
朱迪,吴晓红,何小海,张余强
(1.四川大学电子信息学院图像信息研究所,成都610065;2.成都西图科技有限公司,成都 610065)
0 引言
实物地质标本作为珍贵的不可再生资源,在地质勘探、矿产开采等领域中具有重要的研究意义[1]。作为近年来计算机视觉领域的研究热点之一,三维重建技术能将实物地质标本进行数字化存储,有效地避免了实物地质资料遭到破坏后对后续研究造成的不良影响。目前,业界主流的方案有视觉和激光雷达两大类。其中,视觉类代表为Kinect[2],激光雷达类代表为三维扫描仪。三维扫描仪通过激光扫描技术[3]提供被测物体表面精确的三维点云数据,鲁棒性很高,但该技术在全扫描时计算速度慢,且价格非常昂贵。而Ki⁃nect能提供实时、精确和密集的三维测量数据,同时硬件成本比较低廉,未来发展前景广阔。
目前在Kinect上进行实时稠密重建最常用的算法是帝国理工和微软研究院在2012年提出的Kinect Fu⁃sion[4]。该算法首先采用双边滤波对原始深度信息进行平滑降噪,然后使用“最邻近迭代算法(Iterative Closest Point,ICP)”求解相机每次的相对位移与转动,把求解到的相机位姿融合到“截断符号距离场(Truncated Signed Distance Field,TSDF)”模型中,最后通过渲染和投影给TSDF模型赋予颜色纹理,使重建结果变得肉眼可见。虽然Kinect Fusion实现了基于廉价消费类相机的实时刚体重建,但是该算法依然存在很多缺陷。例如原始深度信息降噪采用的双边滤波器计算速度较慢,无法满足重建的实时性,以及点云配准采用的ICP算法会导致帧间误差随运行时间增加而累积,造成重建错位。对于ICP算法,J.Xie和Y.F.Hsu(2015)提出重建时先用“随机抽样一致算法(Random Sample Con⁃sensus,RANSAC)”[5]对点云进行粗配准,然后再用添加了“尺度不变特征变换(Scale-Invariant Feature Trans⁃form,SIFT)”算子的ICP进行精细配准,改进了Kinect Fusion对被建物体结构特征要求高的问题,但该方法依然无法消除配准累积误差。
针对上述问题,本文首先引入联合双边滤波[6]对深度图进行预处理,该联合双边滤波采用了快速高斯变换降低计算复杂度。然后利用全局校准减小了累积误差带来的重建错位,提高了重建质量和算法鲁棒性。最后采用局部最优投影法对点云进一步拟合,平滑了点云,减少了噪声,实现了一种针对实物地质标本高效率、高质量的重建方法。
1 实物地质标本三维重建
1.1 地质标本重建流程
基于实物地质标本的三维重建系统框图如图1所示:首先采用Kinect捕获目标物体的RGB图和深度图。接着用GrabCut[7]分割算法对RGB图进行分割,把前景目标从背景中提取出来,然后根据裁剪的RGB图像和深度图像形成当前视图的三维点云。各帧点云生成后,先采用RANSAC算法进行粗对准,再使用添加了SIFT算子的ICP算法进行精细配准,接着通过全局校准消除配准误差累积,然后用局部最优投影法拟合点云,对点云进一步降噪。
1.2 引入联合双边滤波预处理
Kinect Fusion采用的双边滤波[8]相比一些常用的滤波算法如均值滤波[9]、中值滤波[10]能很好地克服边界信息损失的问题。但它的核函数为高斯函数,计算速度较慢,无法满足重建系统的实时性。由于Kinect能同时采集目标物体的RGB图和深度图,两图的相似性很高,引入联合双边滤波,让彩色图作为导向图,对深度图中像素点间的欧式距离和彩色中强度值的相似性进行加权处理,补全深度图像中缺失的部分。改进后的深度图输出如式(1)所示:
公式(1)中的 p、q为图像中的两个相邻像素,Ip、Iq表示彩色图像灰度化后的像素值,k是归一化常量,f、g表示权重分布函数,是高斯函数。从公式(1)可以看出,在强度差距大的地方,权重会减小,滤波效应相应变小,所以在图像边缘等强度差较大的地方可以保持梯度。
图1 实物地质标本三维重建系统框图
1.3 全局校准
ICP配准过程中,随着点云不断被添加到模型里,帧与帧之间的配准错误逐渐积累[11],导致最后一帧和第一帧之间出现明显的错位,本文采用全局校准来消除这个影响。首先建立场景数据集,通过场景数据集检测闭环,然后将闭环的最后一帧与第一帧进行配准获取配准误差,最后把得到的误差均匀分配在其他帧之间,得到一致的回路。
(1)场景数据集的建立
在已有的研究中,闭环检测多采用一种叫词袋模型[12]的算法来进行场景建模。该算法先提取每张图像的特征,然后对所有特征向量进行聚类,得到K个聚类中心作为词典,每幅图像就能表示为一个有K个视觉词典的矢量。接着计算每幅图中各特征到K个词的距离,距离最小的单词数值加1,由此,每一幅图像就变成了一个与视觉词序列相对应的词频矢量。通过场景数据集获得每幅图像的词频表示后,计算两图的视觉词典间距就能确定两幅图的相似度,从而完成图像检索、识别、分类等任务。
(2)闭环检测
通过计算图像间的余弦距离来测量两幅图像之间的相似度。用一个n维的特征向量集合来表示图像Iu,图像中的每个特征向量di都关联到一个视觉单词dm。每幅图像都会包含很多不同权重的词汇,权重代表了这个词汇在图像集中出现的频率,单个词汇的权重计算如式(2)所示。
其中N表示所有图像的数量,ni表示所有图像中包含了dm的图像数量。得出每个词汇的权重后再利用相似函数计算两幅图像Iu与Iv间的相似度,相似函数如式(3)所示。
式中m为图像中包含的词汇数,根据式(3)就能计算出两图像间的相似矩阵,然后判断它们的相似程度。
(3)误差校准
检测到闭环后,首先用闭环中每一帧的代表顶点制定一个循环图,如图2展示了一个简单的循环图示例,图中顶点A为初始帧代表点,顶点E为末尾帧代表点,循环闭合到顶点A。ΔX为顶点A与顶点E对齐后的变换参数,令Ti为配准过程中各帧的位姿变换值,有T1T2...Tn=ΔX。然后将ΔX均匀分配到各个位姿中,最大化减小环路闭合不匹配的问题。通常,因为配准过程有误差,ΔX的值会各不相同,如果配准过程完全标准没有错误的话,ΔX的值应该是一个单位矩阵。
图2 包含5个顶点的循环示例图
为了获得一致的映射,误差校准需要计算顶点的权重,这些权重指定了ΔX在变换中需要改变的部分。例如图2,顶点E需要变换ΔX,而顶点A则保持不变。顶点vi的权重计算如式(4)所示。其中vs是闭环中的第一个顶点,ve是最后一个顶点。变换参数ΔX的计算公式如式(5)所示。误差校准后,每一帧图像最终修改转换为Tm,如式(6)所示。Tm就是修改后每帧的位姿变换值,整个过程会重复进行多次直到收敛。
(4)三维点云拟合
经过配准和全局校准后的点云依然存在内部高频噪声[13]以及系统自身和预处理过程中产生的离群点噪声,点云模型纹理不够连续、边缘参差不齐。因此,需要对配准后的离群点云进行进一步拟合,细化模型。
本文采用了一种基于投影的算法——局部最优投影法,来对点云进行局部拟合[14]。该方法的目的在于通过迭代投影把采样表面附近的点均匀拟合到采样表面上,实现高质量点云去噪。
其中:
G(Q)是本文需要分析的能量函数,如式(12)所示。式中能量项E1( )X,P,C表示了初始点云P与目标点云Q之间的拟合程度。
从式(9)的E1中可以看出这个公式把目标点云中每个点与初始点云各点的L1范数的高斯加权和都计算了一遍,可以看作是考察了初始点云与目标点云里每个点的拟合程度。但由于公式中存在高斯范数,与目标点相距较远的点云高斯权重很低,可以被忽略。所以能量项E1表示的其实是目标点云Q中每个点与其附近领域的初始点云P的拟合程度,是一个局部的算法。
能量项E2表示了目标点云Q各点间的相斥力,它是保证点云分布均匀的关键。E2计算了对每个目标点云qi∈Q与其他不同点云的距离的高斯加权和,与E1类似,由于存在高斯权重,E2中的求和项实际只有qi的邻域点起作用。可以把E2看作过近点云间的斥项,当两个点距离很近时,这两点间的E1能量会很大,这时候加入E2就可以有效避免这种情况的发生。
2 实验结果分析
2.1 实验平台
搭建的实物地质标本重建系统示意图如图3所示。平台包括一个Kinect传感器、一个电控旋转平台、一台计算机以及一块黑色吸光布,黑色吸光布均匀铺于旋转平台表面,以减少平台反光对地质标本成像的影响。整个改进算法利用C++实现,并在一台带有12GB RAM,处理器为 Intel Core i5-4590 CPU@3.30GHz 64位的计算机上进行测试。
图3 实物地质标本三重建系统平台示意图
2.2 实验分析
本文总共对6个形状、大小、纹理各不相同的实物地质标本进行了30余组重建对比实验,从中挑选了部分实验结果在下文进行展示。其中,图4中的(a)、(b)、(c)分别为地质标本1在重建图像为20帧时使用Kinect Fusion、J.Xie算法和本文算法的重建结果图;图(d)、(e)、(f)为标本 1 在重建图像为 40 帧时使用三种算法的结果图。
图4 标本1重建结果对比图
图 5 中的(a)、(b)、(c)分别为地质标本 2 在重建图像为20帧时使用Kinect Fusion、J.Xie算法和本文算法的重建结果图;图(d)、(e)、(f)为标本 2 在重建图像为40帧时使用三种算法的结果图。从图4(c)、(f)与(b)、(e)的对比中可以看出本文算法很好的消除了配准误差带来的重建错位。从图 5(c)、(f)与(b)、(e)的对比中可以看出本文算法很好地填补了孔洞、拟合了点云、去除了离群噪声。
图5 标本2重建结果对比图
此外,表1展示了两组标本的重建帧数与重建时间记录。从表中可以看出虽然在输入帧数相同的情况下本文算法耗费时间比Kinect Fusion与J.Xie算法略多,但从图4、图5中可以看出本文算法在输入图像20帧情况下的重建效果明显优于另外两种算法在输入图像40帧情况下的结果,所以从重建结果角度看,本文算法相比Kinect Fusion与J.Xie算法花费了更少的采集图像和运行时间重建出了更完整的地质实物标本,优化了重建效果,提升了重建速度。
表1 三组算法运行时间比较表
3 结语
本文基于Kinect,提出了一种用于实物地质标本的三维重建方法。首先,引入联合双边滤波器对深度数据进行优化;然后,对配准后点云进行全局校准消除配准中的累积误差;最后,采用局部最优投影法对离群点云进行拟合、平滑点云、去除噪声。在采用了多组具有代表性的标本进行实验后,最终结果表明:
(1)本文算法在大幅减少重建地质标本图像帧数时依然可以保持重建结果稳定,提升了重建效率,鲁棒性很高。
(2)本文算法有效地修复了配准累积误差、平滑了点云、填补了孔洞、去除了离群噪声,得到了更优的重建效果。