基于三维形状匹配的点云分割 下载: 1748次
1 引言
三维激光扫描技术的发展拓展了三维图形的应用领域,使得虚拟现实(VR)、增强现实(AR)技术得到了快速的发展。尤其是便携式三维数据采集设备的出现,例如Microsoft公司生产的Kinect和Hololens,促使了大量、多样的三维(3D)模型的涌现。在这种情况下,3D计算受到了人们的关注。
点云数据是三维扫描设备提供的最基础的数据形式,具有散乱、无序以及数据量大等特点。以Kinect V2为例,每秒可以采集到12MB的点云数据。面对海量的、散乱的点云数据,数据分析和数据处理都会消耗大量的系统资源和时间。因此,构建点云的拓扑结构并实现数据分割(将数据划分为独立的区域),是提高3D数据重建速度和质量的基础与保证。
点云数据分割算法是点云计算的基础。点云分割算法的实现效果和运行效率,在3D对象获取、对象识别以及目标跟踪等应用中起到至关重要的作用。通常,点云分割算法是利用点云特征提取技术获取数据的法向量[1-2]、颜色[3-4]以及反射光强弱度[5]等特征参数,依据特征参数实现分割。然而,随着3D数据量的增大,扩充了现有的3D数据模型,例如,Trimble 3D Warehouse 就包含了超过220万的3D 模型数据(https://3dwarehouse.sketchup.com/)。大量的3D数据模型为点云数据分割提供了新的方法和途径。与传统的方法不同,本文从数据模型的角度出发,通过计算点云数据和数据模型的形状特征,实现模型与数据的匹配,从而建立点云分割区域。基于模型的分割可以发现分割区域的几何规则,为数据精简提供帮助,进而加速数据重建和对象识别的速度。主要包含以下几个方面:
1) 创建了基于形状的点云数据分割(SS)方法。该方法以形状相关的特征为驱动,获取数据的结构信息,将点云数据分割成不同的部件,分割后的部件可以使用规则形状进行数学描述。
2) 点云数据的数据量大,为了提高算法的执行效率,改进了八叉树算法,并在此基础上构建了数据索引。首先,利用数据密度值的变化率,沿着两个线性方向向量重组数据。其次,利用重组后的数据参与点云分割,提高了算法的执行效率。此外,重组算法对多目标的场景中不同对象的边界数据敏感,可以有效提取某一对象的边界。
3) 在八叉树数据索引之上,建立了基于法向量参数的一致性分割算法。使用该算法可以提高分割区域内点的相似度,减少形状分割的迭代次数,提高形状分割的效率。此外,该算法可以提高分割区域形状参数估算的准确度。
4) 基于随机抽样一致性(RANSAC)[6]算法,定义了形状匹配算法的目标函数,并利用八叉树索引,迭代式地实现3D形状分割,进而提取区域形状参数。
2 相关工作
数据区域分割问题属于点云应用系统中的基础研究部分;分割算法的精度和速度起着关键的作用。目前,有关点云区域分割算法有很多,例如Edge-based算法、区域增长法、聚类分析、模型匹配方法等。Edge-based算法是在1987年由Fan等[7]提出,该算法复杂度大,而且边识别的准确度对分割效果影响很大,近几年与之相关的研究较少。
区域增长法,首先选取“种子”数据,通过曲面的平滑度,迭代式地调整区域大小,从而实现点云分割。胡怀宇等[8]利用曲率信息分割成七种不同的表面类型,通过区域增长的方法发现每一个种子区域中曲率近似平面的区域。庞世燕等[9]通过主成分分析(PCA)提出平面特征,并利用区域增长的方法提取凸壳,结合凸壳算法提取三角面片的轮廓数据。Dimitrov等[10]考虑了数据的多特征实现的分割。Nurunnabi等[11]利用最小协方差行列式(MCD)结合区域增长法实现分割;2015年提出利用最大一致性与最小距离(MCMD)测量区域数据一致性并实现分割[12]。Vo等[13]利用八叉树重采样技术结合区域增长法实现分割。区域增长法的优点是稳定性好,缺点是参数调整不够灵活,分割可控性差。
聚类分析法是多元统计学方法的一种,以“物以类聚”的原则进行划分。点云的聚类分割算法是将点云数据看作具有一定关联属性的多维度数据集合,按照多维度属性聚类划分,实现点云数据分割。Velmurugan等[14]利用
模型匹配方法也被称为体分割方法,该方式常用于man-made[21]的数据集。该类算法是利用数学表达式的方式描述分割区域集,例如圆柱、平面等。其中,以RANSAC和霍夫变换 (HT)算法应用最为广泛。RANSAC算法最早由Bolles等[6]于1981年提出,目前多应用于3D平面的检测和识别,识别效果较好,但效率不高。例如,文献[ 22-25]利用RANSAC方法分析点云的平面特征,实现平面的提取和分割。为了获得精准的分割效果,2010年Biegelbauer等[26]利用分层的RANSAC算法完成建筑物立体面的提取工作。该研究按照低分辨率到高分辨率的方式,分层完成分割,并通过投票和排名等方法给出最终分割结果。颜色属性作为分割的依据,提高了算法的精准度。例如,Zhang等[27]通过将Meanshift算法扩展到3D颜色树上,以聚类算法改进RANSAC迭代执行,使其找到更准确的分割区域。为了降低噪声对分割效果的影响,Kang等[28]提出利用Bayesian 采样一致性 (BaySAC)算法改进RANSAC,文献通过统计候选数据集的直方图表示分割原语,通过分层、并行化的方式完成数据分割。Li等[29]通过正态分布变换(NDT)提高了RANSAC算法对平面识别的正确性。
HT方法经常应用于图像中几何形状的识别。2004年,Overby等[30]通过3DHough变换实现了地面建筑物的分割工作。2005年,Rabbani等[31]又通过3DHough变换识别了众多物体中的圆柱。Tarsha-Kurdi等[32]比较了RANSAC和Hough在平面分割方面的性能,指出RANSAC时间消耗相对较低,此外,还通过实验证明了Hough算法对参数的依赖性较大。Liu等[33]利用Hough变换分析点云数据中直线的提取技术。Hulik等[34]提出利用Hough检测点云的连续平面,并将其和PCL的RANSAC算法对比,结果表明该算法可以得到更小的角度和距离误差。
与3DHough点云分割算法比较,RANSAC算法具有较高的稳健性;然而面对散乱的、不规则的数据时,RANSAC算法时间消耗较大。不幸的是,通过3D扫描仪采集获取的点云数据往往是不完整的、散乱的、并且无任何结构信息。另外,被测对象,尤其是自然对象,其形状是无规则的,很难通过数学的方式去描述与表达。因此,利用RANSAC算法完成形状提取和识别,不但成功率低,而且时间消耗大。为了将RANSAC算法应用到自然对象的点云数据集中,从而使得被测对象中满足或者近似满足规则形状的分割区域被获取,并参与点云的精简和重建过程。本文尝试建立形状模型库,提取点云数据与形状相关的几何特征,重新组织点云数据,并完成模型与数据集的匹配操作。在此基础之上,改进RANSAC算法,提高算法的执行效率以及提高形状识别的成功率。利用改进的RANSAC算法实现基于形状的数据分割,使得分割区域的形状特征可以用数据的方法描述,从而为点云精简和重建提供理论支撑。
3 问题描述和方法概览
3.1 问题描述
点云分割作为点云数据的一个核心计算,其应用范围相当广泛。例如提取被测对象,即在扫描场景将某一个或多个目标对象从背景中提取出来。此外,针对某单一对象实现点云分割也是很有意义的。例如,针对斯坦福大学著名的扫描数据集bunny、dragon等。将其分割成有意义的部件,从而为数据精简、数据重建服务。本文分割算法的目的就是将数据划分为有意义的部件,其部件的特征可以使用数学方式进行描述。
1996年,Hoover等[35]提出三维点云分割的形式化描述。点云数据分割的形式化定义中,假设点云数据集用
设计基于形状的点云分割,需提取数据集中与形状相关的点云属性,计算与形状相关的数据特征。因此,在文献[
35]的基础上,按照形状分割的要求,对基于形状的点云分割进行了形式化描述。假设点云数据为
1)
2)
3)
4)
5)
6) 不同的两个子集满足特征属性不相同。
3.2 方法概览
SS根据形状信息,完成散乱点云数据的部件分割。首先通过点云数据的几何特征,提取并计算点云数据的形状特征。其次建立形状模型,并提出了形状模型与点云数据之间的模型匹配算法。最后,在此基础上,实现基于形状的点云数据分割,从而为精简和重建提供规则。如
1) 数据预处理。首先对数据归一化处理,通过损失函数,自动过滤离群点,从而避免噪声对分割效果的干扰。其次,实现数据配准并建立规范化的、统一的坐标系;提取点云数据的主成分方向,根据主成分方向建立坐标系,并将点云数据投影到此坐标系中,从而实现数据方向的调整。
2) 初始化分割。沿着主成分方向,依据数据之间的近邻关系,建立初始化分割盒子。如
3) 依据
4) 建立规则图形的3D形状库。按照3D形状库中的模型,建立与尺度无关的几何特征,包括曲率方差、法向的方向向量的余弦距离等,实现基于几何特征的一致性分割。
5) 建立快速RANSAC算法,从而实现基于3D形状的分割,并提取匹配参数用于指导点云精简和重建等应用。
图 1. 基于3D形状匹配的区域分割方法概览
Fig. 1. Schematic of region segmentation based on 3D shape matching
综上所述,SS首先根据规则形状,建立了形状的模型库作为分割的依据。其次,利用形状库的模型特征
4 SS分割方法
SS目的是将点云数据按照数据的形状特征相似性进行分割,分割成不同的区域,分割区域的特征可以用规则形状的几何描述来近似表示。本节详细介绍了SS关键步骤,包括数据预处理、基于密度的双向线性八叉树数据组织算法以及参数一致性分割和基于形状约束的分割算法。
4.1 数据预处理
三维激光扫描设备采集获取的数据是一系列距离值的集合,为了实现采集对象的逆向重建,不得不将其转换成点云的数据形式,并变换到统一的坐标系中,使其参与点云分割、点云重建等过程。统一坐标系后的数据,由于数据尺度的不同,给数据处理,尤其是参数调整,制造了很大的困难。因此,首先对数据进行归一化处理,并通过数据过滤技术去除噪声的干扰。此外,通常三维激光扫描设备所建立的坐标系是以设置中心为坐标原点,而数据分割算法是在数据对象自身基础上展开的。为了实现高精度的计算,本文通过PCA提取数据对象的主成分方向,并利用数据投影技术调整数据方向。
4.2 基于密度的双向线性八叉树数据组织方法
点云数据的数据量大,在实现形状特征提取和数据区域分割时,算法执行耗时很大。因此,为了提高算法的执行效率,在已有的八叉树算法基础上,提出了基于密度的双向线性八叉树数据组织方法,并建立数据索引。该方法的目的是发现数据集之间的近邻关系,并利用近邻关系建立数据索引,减少SS执行时间。基于密度的双向线性八叉树数据组织方法按照包围盒组织数据集,设定坐标系的原点为整个数据的中心,按照坐标系三个正交方向以及数据中心建立包围盒。
假设点云数据集合为
针对
通过包围盒
按照八叉树的规则构建下一层子结点。假设子节点的中心坐标表示为
式中B表示二进制数。
中心坐标
子节点
式中
利用八叉树中包围盒的相邻关系,通过双方向线性的方式获取初始化分割数据集。分为以下几个步骤来完成。
1)按照(7)式估算每一个包围盒的数据密度:
式中
2) 根据包围盒的数据密度
3) 通过双方向线性的方式,合并相邻且密度相近的包围盒。
4) 找到密度值小或区域面积变化率大的区域作为初始化分割的边界盒子。
5) 生成若干初始化分割盒子,将盒子的中心点作为数据的索引。
图 3. 边界盒与原图对应位置的对比
Fig. 3. Comparison of the position of the boundary box and the original image
4.3 SS点云分割算法
通过上述步骤,点云数据可以实现噪声过滤、建立投影以及数据索引等预处理。预处理后的点云数据减少了噪声的干扰,并具有相对一致的方向向量。除此之外,利用4.2节建立的数据索引,能够获取数据之间空间距离的相近度,为SS的实施奠定了基础。SS的目的是通过规则形状模型去近似地描述分割区域。因此,SS要求能够用数学方法来表达规则模型,并且这些规则模型能够描述足够全面的分割区域。然而,自然对象是多样的,满足上述要求的规则模型很难找到。
Várady等[36]根据多数计算机辅助设计/计算机辅助工程 (CAD/CAM) 系统中所提供的曲面设计手段,将曲面分为主要曲面和次要曲面两类。主要曲面决定了对象的主体部分以及基本形状特征,主要曲面包括简单曲面和自由曲面两部分。最常出现的简单曲面为二次曲面;其中,球面、圆柱面和圆锥面被称为自然二次曲面。在实际工程应用中,产品的表面通常是由平面和自然二次曲面构成的,一般二次曲面很少出现。
为了实现满足上述要求的规则模型,主要以自然二次曲面作为点云分割的形状库。SS与其他分割算法最大的不同在于,SS目的是建立分割区域与规则模型之间的对应关系,从而利用规模模型指导点云精简和重建等。因此,SS依赖于形状特征的检测和匹配。现实中,对象表面形状变化多样,极少有规则形状的对象模型。在进行规则形状检测和匹配之前,SS先提取形状特征的关键点,并对对象模型的连续性和参数一致性进行检查和一致性分割,之后利用RANSAC算法确定分割区域,并提取分割区域的形状参数。
4.3.1 模型的一致性分割
与曲面不同,点云数据是散乱的、离散的。点云数据不适合用曲面、曲线的光滑度参数(
图 4. 点云参数不一致示例图。(a)点云数据;(b)重组后的数据;(c)曲面
Fig. 4. Diagram of inconsistent point cloud parameters. (a) Point clouds data; (b)reorganized data; (c) curved surface
为了满足准确的基于形状的区域分割,本节计算点云数据特征点,按照特征点和主成分方向建立一致性分割线,并对数据集进行一致性分割。在上述基于密度约束的八叉树数据组织基础之上,依据相邻数据集的法向量夹角,检测分割后模型的连续性和一致性,如
1) 一致性分割算法随机选取
2) 设定扇形的角度
3) 算法通过
式中
4.3.2 基于RANSAC的形状分割算法
SS算法在一致性分割后,可以获取的分割模型用
1)
式中
目标函数
2) 除
式中
目标函数
5 SS算法实验及实验分析
5.1 实验环境及数据集介绍
实验环境:CPU,Intel(R) Core(TM) i5-5200U,频率为2.3 GHZ,系统内存8.0 G。软件平台采用QT5.6.2+PCL1.8+VS2015。数据集使用MySql管理。实验选择三种数据集,分别是单对象、多对象以及模型数据,具体数据信息如
5.2 基于形状的分割实验的执行
5.2.1 基于密度的双向线性八叉树数据组织算法的实验
本实验验证了基于密度的双向线性八叉树数据组织算法的可行性。本实验利用数据集Buuny和Dragon建立数据组织{
表 1. 实验数据集介绍
Table 1. Experiment data set
|
照{
本实验验证了基于密度的双向线性八叉树点云数据组织算法的执行效果。本实验利用八叉树算法建立数据索引如
图 8. 基于密度的双向线性八叉树数据组织实验效果展示。(a) Bunny={BBoxi};(b) Bunny: {Ncenterboxi};(c) Dragon={BBoxi};(d) Dragon: {Ncenterboxi}
Fig. 8. Effect of bidirectional linear octree data organization. (a) Bunny={BBoxi}; (b) Bunny: {Ncenterboxi}; (c) Dragon={BBoxi}; (d) Dragon: {Ncenterboxi}
图 9. 数据预处理前、后密度对比图。(a) Voxel;(b) box
Fig. 9. Comparison of density before and after data preprocessing. (a) Voxel; (b) box
针对多场景数据,本实验使用基于密度的双向线性八叉树点云数据组织算法,发现满足边界条件的盒子集合采用红色区域标识。效果如
采用基于密度的双向八叉树算法应用于多对象的点云数据应用场景,数据密度参数对不相同的数据对象较为敏感。
图 10. 多目标场景中不同对象的分界盒子。(a)不同对象的分界盒子;(b)原始图片
Fig. 10. Boundary box for different objects in a multi-object scenario. (a) Boundary box for different objects; (b) original image
5.2.2 SS与其他分割算法对比实验
1) 分割效果对比实验
本实验使用区域增长法、
图 11. Bunny数据集分割效果图。 (a)区域增长法;(b) RANSAC(平面);(c) RANSAC(球体);(d) RANSAC(圆柱体);(e) K-means;(f) SS
Fig. 11. Results of segmentation algorithms using Bunny data set. (a) Region growing; (b) RANSAC (plane); (c) RANSAC (sphere); (d) RANSAC (cylinder); (e) K-means; (f) SS
图 12. Coal数据集分割效果图。(a)区域增长法;(b) RANSAC(平面);(c) RANSAC(球体);(d) RANSAC(圆柱体);(e) K-means;(f) SS;(g)被测对象
Fig. 12. Results of segmentation algorithms using Coal data set. (a) Region growing; (b) RANSAC (plane); (c) RANSAC (sphere); (d) RANSAC (cylinder); (e) K-means; (f) SS; (g) measured object
2) 分割区域曲面曲率方差对比实验
为了量化基于形状的区域分割算法的执行效果,本实验分别利用
3) 分割区域形状相似度对比实验
实验验证了SS算法分割区域内数据集的形状相似性。实验采用SS算法,
4) 算法运行时间对比实验
对不同算法的运行时间进行了对比,如
6 结论
从三维形状分析的角度出发,对点云对象实施分割,使得分割后的数据包含3D形状信息,而该形状信息可用于指导点云数据的精简和重建,从而提高点云数据的计算速度和准确度。为了达到点云分割的要求,需定义3D形状特征,并在此形状特征基础上实现点云数据分割。由于点云数据的散乱性,通过数据之间的近邻关系和数据密度,提出了基于密度的双向线性八叉树的点云据组织算法,利用线性八叉树的结构重新组织点云数据;重组后的数据集使用{
提出的基于形状的区域分割算法可以有效提取出被测对象的形状特征。分割区域内的数据具有一定的形状相似度。因此,在对点云精简和压缩过程中,可以通过形状模型的特征,有针对性地识别出精简部分。同时,形状参数可以作为先验知识,提高曲面重建的效率。
本文算法存在一定的局限性。建立的规则形状库有限,分割区域与形状的映射关系少。此外算法的分割是以点云的位置关系作为依据而实施的,并未涉及到颜色等其他信息。今后的工作:1) 扩展3D规则形状模型,使得形状更为丰富,与真实的被测对象更接近,提高分割的精准度;2) 为了减少算法的执行时间,将在分割算法的并行化方面进行优化;3)基于形状的3D点云分割算法在点云精简和重建等应用上进行更多的探索和尝试。
[2] 赵宗泽, 张永军. 基于植被指数限制分水岭算法的机载激光点云建筑物提取[J]. 光学学报, 2016, 36(10): 1028002.
[5] MiyakeS, TodaY, KubotaN, et al.Intensity histogram based segmentation of 3D point cloud using growing neural gas[C]∥International Conference on Intelligent Robotics and Applications, Springer International Publishing, 2016: 335- 345.
[6] Bolles RC, Fischler MA. ARANSAC-based approach to model fitting and its appliAcation to finding cylinders in range data[C]∥International Joint Conference on Artificial Intelligence, 1981: 637- 643.
[8] 胡怀宇, 崔汉国, 代星. 基于区域生长法的散乱点云分区方法[J]. 计算机应用, 2009, 29(10): 2716-2718.
[9] 庞世燕, 刘亚文, 左志奇, 等. 结合区域增长法和TIN边缘分割的建筑物立面几何特征提取[J]. 武汉大学学报(信息科学版), 2015, 40(1): 102-106.
[11] NurunnabiA, BeltonD, WestG. Robust segmentation in laser scanning 3D point cloud data[C]∥International Conference on Digital Image Computing Techniques and Applications (DICTA), 2012: 1- 8.
[14] Velmurugan T, Santhanam T. Computational complexity between K-means and K-medoids clustering algorithms for normal and uniform distributions of data points[J]. Journal of Computer Science, 2010, 6(3): 363-368.
[15] 王帅, 孙华燕, 郭惠超, 等. 激光点云的混合流形谱聚类自适应分割方法[J]. 光学学报, 2017, 37(10): 1011001.
[16] 熊风光, 霍旺, 韩燮, 等. 三维点云中关键点误匹配剔除方法[J]. 光学学报, 2018, 38(2): 0210003.
[17] Yan JZ, Qi MY, Fang LY, et al. Forecast the distribution of urban water point by using improved DBSCAN algorithm[C]∥International Conference on Intelligent System Design and Engineering Applications, 2013: 784- 786.
[18] ZhangX, ZangA, AgamG, et al. Learning from synthetic models for roof style classification in point clouds[C]∥ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems, 2014: 263- 270.
[21] Boulch A. Guerry J, le Saux B, et al. SnapNet: 3D point cloud semantic labeling with 2D deep segmentation networks[J]. Computers & Graphics, 2018, 71: 189-198.
[23] PapazovC, BurschkaD. Anefficient RANSAC for 3D object recognition in noisy and occluded scenes[C]∥Asian Conference on Computer Vision, 2010, 6492( 1): 135- 148.
[24] ZulianiM, Kenney CS, Manjunath B S. The multi RANSAC algorithm and its application to detect planar homographies[C]∥IEEE International Conference on Image Processing, 2005, 3: III-153.
[27] Zhang XM, Wan WG, XiaoL, et al. Mean shift clustering segmentation and RANSAC simplification of color point cloud[C]∥International Conference on Audio, Language and Image Processing, 2014: 837- 841.
[30] Overby J, Bodum L, Kjems E, et al. Automatic 3D building reconstruction from airborne laser scanning and cadastral data using Hough transform[J]. International Archives of Photogrammetry, Remote Sensing and Spatial Information Sciences, 2004, 34(Part B3): 296-301.
[31] Rabbani T, von den Heuvel F. Efficient Hough transform for automatic detection of cylinders in point clouds[J]. ISPRS Workshop on Laser Scanning, 2005, 3: 60-65.
[32] Tarsha-Kurdi F, Landes F, Grussenmeyer P. Extended RANSAC algorithm for automatic detection of building roof planes from LiDAR data[J]. The Photogrammetric Journal of Finland, 2008, 21(1): 97-109.
[33] Liu YE, Li ZR, HaywardR, et al. Classification of airborne LIDAR intensity data using statistical analysis and Hough transform with application to power line corridors[C]∥Digital Image Computing: Techniques and Applications, 2009: 462- 467.
Article Outline
张坤, 乔世权, 周万珍. 基于三维形状匹配的点云分割[J]. 激光与光电子学进展, 2018, 55(12): 121011. Kun Zhang, Shiquan Qiao, Wanzhen Zhou. Point Cloud Segmentation Based on Three-Dimensional Shape Matching[J]. Laser & Optoelectronics Progress, 2018, 55(12): 121011.