CN114187310A - 基于八叉树和PointNet++网络的大规模点云分割方法 - Google Patents
基于八叉树和PointNet++网络的大规模点云分割方法 Download PDFInfo
- Publication number
- CN114187310A CN114187310A CN202111390150.4A CN202111390150A CN114187310A CN 114187310 A CN114187310 A CN 114187310A CN 202111390150 A CN202111390150 A CN 202111390150A CN 114187310 A CN114187310 A CN 114187310A
- Authority
- CN
- China
- Prior art keywords
- point cloud
- cloud data
- scale
- segmentation
- dimensional
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/12—Edge-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/005—Tree description, e.g. octree, quadtree
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/162—Segmentation; Edge detection involving graph-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20072—Graph-based image processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Abstract
本发明公开了一种基于八叉树和PointNet++网络的大规模点云分割方法,包括步骤如下:获取物体原始的大规模三维点云数据;在PointNet++网络的输入端和输出端分别加入若干层八叉树模块,实现构建点云分割模型;将大规模点云数据输入点云分割模型进行迭代训练,先利用八叉树模块对大规模三维点云数据进行空间体素划分,提取特征点使大规模三维点云数据转化为小规模三维点云数据,然后输入PointNet++网络对点云数据进行分割,最后将分割的标记信息再通过八叉树模块在相同空间体素中进行共享,将分割结果还原回原始大规模三维点云数据;将待分割的大规模三维点云数据输入训练好的点云分割模型,实现对大规模三维点云数据进行自动化分割。
Description
技术领域
本发明涉及计算机图像处理技术领域,更具体的,涉及一种基于八叉树和PointNet++网络的大规模点云分割方法。
背景技术
点云分割是点云处理中的重要部分,现已广泛应用于三维视觉技术的各种场景。LIDAR扫描城市场景中,将建筑物、车辆、道路、行人、树木以及属于城市场景的元素分开,分别实现各部分三维几何场景数字化。
无接触获取牲畜三维点云实现体尺自动测量是目前计算机辅助牲畜育种、养殖等研究的一个热点。猪体点云散乱、数据密度大、处理效率低,通过点云分割区分猪体各部位,如头部、躯干、四条腿、尾部等将有助于快速准确定位猪体尺关键点,是高效进行牲畜骨架提取、以及各部分体积大小估测分析的基础。
基于深度学习点云分割方法是目前计算机视觉领域的研究热点,其主要分为三类。第一类是基于视图和投影的分割方法,该类方法从不同视角对三维点云进行投影,获得投影后的二维图像,运用成熟的二维深度学习网络对图像进行聚合,输出语义分割结果。第二类是基于体素化的分割方法,该类方法首先将点云数据转化为固定大小的体积网格,送入有监督的3D卷积神经网络进行分割。基于体素化以及基于视图和投影的分割方法在预处理阶段都会消耗大量的时间和计算资源进行格式转化。而第三类分割方法是直接对原始点云数据进行处理。PointNet架构是该类方法的开山之作,解决了点云无序性和几何旋转等问题,能够直接将原始点云作为输入进行分类和分割。但PointNet不会捕获由度量空间点所引发的局部结构,限制了细粒度模式识别能力和对复杂场景的普适性。为改进PointNet网络架构存在的不足,Qi等人提出了PointNet++网络架构,在新的网络架构中,加入分层神经网络,将PointNet递归地应用于输入点集的嵌套分区,通过利用度量空间距离,增加上下文比例来学习局部特征,取得了更好的分类和分割的效果。
目前研究PointNet++实现点云分类所采用的数据集主要是ModelNet40,实现点云部件分割所采用的数据集是ShapeNetCore,ShapeNetCore是ShapeNet的子集。其中ModelNet40包含了40个类别的总计12311个三维点云数据,每个点云数据包含有1万个三维点。ShapeNetCore包含了16个类别的总计16872个三维点云数据,每个点云数据包含了2048个三维点、法向量信息和标记信息。现有基于PointNet++的点云分割模型都是小规模点云数据,大规模的点云数据集消耗大量存储资源,影响计算效率,无法直接送入现有的PointNet++网络训练。而实际中,由深度传感器获取的大型物体或场景点云通常具有较大规模。因此,有必要进一步研究PointNet++网络对大规模点云的有效分割问题。
发明内容
本发明为了解决以上现有技术存在的不足和缺陷的问题,提供了一种基于八叉树和PointNet++网络的大规模点云分割方法。
为实现上述本发明目的,采用的技术方案如下:
一种基于八叉树和PointNet++网络的大规模点云分割方法,所述的方法包括步骤如下:
获取物体原始的大规模三维点云数据;
在PointNet++网络的输入端和输出端分别加入若干层八叉树模块,实现构建点云分割模型;
将大规模点云数据输入点云分割模型进行迭代训练,先利用八叉树模块对大规模三维点云数据进行空间体素划分,提取特征点使大规模三维点云数据转化为小规模三维点云数据,然后输入PointNet++网络对点云数据进行分割,最后将分割的标记信息再通过八叉树模块在相同空间体素中进行共享,将分割结果还原回原始大规模三维点云数据;
将待分割的大规模三维点云数据输入训练好的点云分割模型,实现对大规模三维点云数据进行分割。
优选地,在迭代训练点云分割模型之前,对大规模三维点云数据先标记定位点,标记出物体的各个特征,再连接分割线,计算点云法向量。
进一步地,采用基于局部表面拟合方法计算所述的点云法向量,具体如下:
求得的协方差矩阵C的3个特征值λ0≤λ1≤λ2,最小的特征值λ0对应的特征向量即为邻域点集拟合平面H的法向量。
再进一步地,所述的PointNet++网络在PointNet网络的基础上增加逐层抽象层,实现在不同尺度局部区域对小规模三维点云数据进行特征提取,再进行特征拼接;
所述的PointNet++网络包括分层点集特征学习子网络和集合分割点特征传播子网络。
再进一步地,所述的分层点集特征学习子网络包括两个集合抽象层,每个集合抽象层包括采样层、分组层、PointNet层;
其中,所述的采样层使用最远点采样选取点云数据的部分中心点;
所述的分组层按照邻域规则选取采样中心点的邻域点,将选出的各个子点云送入PointNet层;
所述的PointNet层运用局部区域的信息编码成特征向量。
再进一步地,所述的集合分割点特征传播子网络利用基于距离的插值和跨级的分层传播策略,将采样点的特征传递回特征点集;
其中,基于距离的插值的公式如下:
式中,f为插值的特征值,d(x,xi)为x,xi的距离,p为d(x,xi)的指数,k为邻域点的个数,wi为x,xi距离平方的倒数,j为点云的索引编号,C为任意常数。
再进一步地,所述的PointNet网络对输入的三维点云数据处理如下:
D1:输入[N×D]三维点云数据进行矩阵变换操作,得到易于计算的数据(N×D);
D2:变换后三维点云数据投影到64维空间中去,得到高维数据[N×64];
D3:高维数据[N×64]继续进行特征矩阵变换操作,得到数据(N×64);
D4:变换后的(N×64)投影到更高维的1024维空间中去,得到[N×1024]的数据;
D5:进行最大池化的操作,得到全局特征(1×1024);
D6:全局特征(1×1024)和64维空间上的点完成拼接,再经过MLP操作,以及全连接层的处理;
D7:最后,获得每个点在物体各个特征的得分,取得分最大值作为输出结果,完成三维点云数据分割。
再进一步地,所述的八叉树模块提取特征点过程步骤如下:
N1:设置最大递归深度即最多可细分的次数N,进行点云划分;
N2:依序将单位元素送入能被包含且没有子节点的立方体;
N3:若没有达到最大递归深度,则继续进行细分,并将立方体所装的单位元元素全部分担给8个子立方体;
N4:若子立方体所分配到的单位元元素数量不为零且跟父立方体是一样的,则该子立方体停止划分;
N5:重复步骤N2,直到达到最大递归深度;
N6:取最大递归深度的立方体中心点最近的点作为特征点。
再进一步地,所述的八叉树模块进行划分点云,具体如下:
设输入点云数据X、Y、Z三个方向的最值分别为Xmax、Xmin、Ymax、Ymin、Zmax、Zmin,则利用空间长方体盒将猪体点云包围;
设定初始八叉树划分间距Dx、Dy、Dz的大小为:
式中,dx、dy、dz为点云数据在X、Y、Z方向上的最短间距,其大小根据原始三维点云数据的密度选取;N表示初始间隔最多可细分的次数;
三维点云数据被划分成Nx×Ny×Nz个,其中Nx、Ny、Nz分别表示为:
再进一步地,采用八叉树模块将分割结果还原到大规模三维点云数据,具体如下:
在特征点完成分割后,构建与提取特征点时相同层数的八叉树结构,将与特征点通过八叉树结构最终划分在同一个立方体内的所有点视为相邻点,共享相同的分割标记,完成将小规模三维点云数据的分割结果还原到大规模三维点云数据的操作。
本发明的有益效果如下:
针对现有的基于深度学习的点云分割模型无法分割大规模点云数据的问题,本发明在PointNet++网络的输入输出端分别加入了八叉树模块,利用八叉树模块将大规模点云数据转化为小规模点云数据进行分割,再将小规模点云的分割结果通过八叉树模块还原到原始大规模点云,实现了对大规模猪体点云自动化分割,代替了费时且费力的人工标记方法。
附图说明
图1是实施例1所述的点云分割方法的步骤流程图。
图2是实施例1猪体三维点云数据的获取与预处理过程图。
图3是实施例1所述的点云分割模型的网络结构图。
图4是实施例1所述的八叉树模块的结构图。
图5是实施例1使用八叉树模块提取猪体点云特征点的示意图。
图6是实施例1使用不同层数的八叉树模块划分猪体点云的示意图。
图7是实施例1使用八叉树模块还原分割标记的示意图。
图8是实施例1所述的PointNet网络的升维和对称操作的示意图。
图9是实施例1所述的PointNet网络的矩阵变换过程图。
图10是实施例1所述的PointNet网络的点云分割过程图。
图11是实施例2所述的猪体点云人工标记过程图。
图12是实施例2基于局部表面拟合的法向量计算的示意图。
图13是实施例2猪体法向量的示意图。
图14是3D猪体点云数据图。
图15是训练点云分割模型的过程效果图。
图16是不同点云数量的训练过程对比图。
图17是经过5层八叉树模块还原数据图。
图18是经过6层八叉树模块还原数据图。
图19是经过7层八叉树模块还原数据图。
图20是人工数据图。
图21是否使用点云法向量信息对比图。
图22是部分残缺猪体点云数据图。
具体实施方式
下面结合附图和具体实施方式对本发明做详细描述。
实施例1
一种基于八叉树和PointNet++网络的大规模点云分割方法,所述的分割方法可以应用在猪、牛、羊、马等牲畜的点云分割,也可以应用在人体、盒子等具有大规模三维点云数据的其他物体上。本实施例以获取猪体的三维点云数据举例说明所述的分割方法的实施例方案及技术效果。
如图1所示,所述的方法包括步骤如下:
将3个Kinect V2深度相机分别于采集通道的上、左、右三个方向,当猪步入采集通道最佳采集区域时同步瞬间采集3方向局部点云,再经过目标点云提取、去噪和矩形静物配准融合[20、21]等预处理后,如图2所示,得到完整猪体原始的大规模三维点云数据,采集的猪体三维点云数据因猪体型不同,三维点云数据量也不同,完整的三维点云数据大约7万多个点,且数据无序。庞大的三维点云数据影响计算效率,消耗存储资源,且无法直接送入现有的PointNet++模型进行训练。
在PointNet++网络的输入端和输出端分别加入若干层八叉树模块,实现构建点云分割模型;所述的点云分割模型融合PointNet++网络和八叉树模块,先利用八叉树结构对原始大规模点云数据进行空间体素划分,提取特征点使其转化为小规模点云数据,然后送入深度网络训练模型,使用最佳的模型参数对点云数据进行分割,最后将分割的标记信息再通过八叉树结构在相同体素网格中进行共享,将分割结果还原回原始的大规模点云数据,完成对原始点云数据的分割。所述的点云分割模型的结构如图3所示。
所述的八叉树模块特征点提取及结果还原,具体如下:
大规模点云特征点的选取类似于下采样,基于八叉树模块的下采样方法也是经典的点云下采样方法之一。相比于随机采样法和最远点采样法等其他方法,八叉树模块的下采样法是基于空间结构的均匀采样方法,能够很好地保留点云的空间结构信息。而且,八叉树模块能划分出相邻点,这使我们能够很容易地将特征点的分割结果还原回原始点云中。
八叉树中的每个节点表示一个正方体的体积元素,每个节点可继续划分八个均匀大小的子节点,依次可不断划分到最大递归深度。八叉树结构通过对三维空间的几何实体进行划分,每个同层节点具有相同时间和空间复杂度,如图4所示。
在一个具体的实施例中,如图5所示,所述的八叉树模块提取特征点过程步骤如下:
N1:设置最大递归深度即最多可细分的次数N,进行点云划分;
N2:依序将单位元素送入能被包含且没有子节点的立方体;
N3:若没有达到最大递归深度,则继续进行细分,并将立方体所装的单位元元素全部分担给8个子立方体;
N4:若子立方体所分配到的单位元元素数量不为零且跟父立方体是一样的,则该子立方体停止划分;
N5:重复步骤N2,直到达到最大递归深度;
N6:取最大递归深度的立方体中心点最近的点作为特征点。
采用八叉树模块进行划分点云:具体如下:
设输入点云数据X、Y、Z三个方向的最值分别为Xmax、Xmin、Ymax、Ymin、Zmax、Zmin,则利用空间长方体盒将猪体点云包围;
设定初始八叉树划分间距Dx、Dy、Dz的大小为:
式中,dx、dy、dz为点云数据在X、Y、Z方向上的最短间距,其大小根据原始三维点云数据的密度选取;N表示初始间隔最多可细分的次数;
三维点云数据被划分成Nx×Ny×Nz个,其中Nx、Ny、Nz分别表示为:
在一个具体的实施例中,采用八叉树模块将分割结果还原到大规模三维点云数据,具体如下:
在特征点完成分割后,构建与提取特征点时相同层数的八叉树结构,将与特征点通过八叉树结构最终划分在同一个立方体内的所有点视为相邻点,共享相同的分割标记,如图7所示,特征点的分割结果代表了其邻近点的分割结果,每个特征点将其分割标记传递给相邻点,完成将小规模三维点云数据的分割结果还原到大规模三维点云数据的操作。
在一个具体的实施例中,所述的PointNet++网络在PointNet网络的基础上增加逐层抽象层,完备不同尺度下目标获取能力,代替了PointNet直接抽象整体点云的做法,实现能够在不同尺度局部区域对小规模三维点云数据进行特征提取,再进行特征拼接;
所述的PointNet++网络包括分层点集特征学习子网络和集合分割点特征传播子网络。所述的分层点集特征学习子网络包括两个集合抽象层,每个集合抽象层包括采样层、分组层、PointNet层;
其中,所述的采样层使用最远点采样选取点云数据的部分中心点;
所述的分组层按照邻域规则选取采样中心点的邻域点,将选出的各个子点云送入PointNet层;
所述的PointNet层运用局部区域的信息编码成特征向量。
所述的集合分割点特征传播子网络利用基于距离的插值和跨级的分层传播策略,将采样点的特征传递回特征点集;
其中,基于距离的插值的公式如下:
式中,f为插值的特征值,d(x,xi)为x,xi的距离,p为d(x,xi)的指数,k为邻域点的个数(在默认情况下我们使用p=2,k=3),wi为x,xi距离平方的倒数,j为点云的索引编号,C为任意常数。
所述的PointNet网络主要解决了点云数据的无序性、旋转不变性和无法直接对原始点云使用卷积操作的问题。首先,要解决点云的无序性问题须采用对称操作,即求最大值、平均值或者求和,使得点的顺序无论怎么样变化,最后得到的结果都相同。PointNet网络使用最大池化来实现此操作,而直接求最大值必会丢失大量的关键信息,PointNet网络先把点集通过多层共享感知机映射到高维空间,在更高维的空间上进行最大池化完成对称操作,避免损失信息,如图8所示。
对于点云数据旋转不变性问题,PointNet网络运用空间变换网络(T-Net),通过点云本身的位置信息学习到一个最有利于网络进行分割的D×D旋转矩阵(D代表特征维度,PointNet中D采用3和64),如图9所示。
如图10所示,所述的PointNet网络对输入的三维点云数据进行分割如下:
D1:输入[N×D]三维点云数据进行矩阵变换操作,得到易于计算的数据(N×D);
D2:变换后三维点云数据投影到64维空间中去,得到高维数据[N×64];
D3:高维数据[N×64]继续进行特征矩阵变换操作,得到数据(N×64);
D4:变换后的数据(N×64)投影到更高维的1024维空间中去,得到[N×1024]的数据;
D5:进行最大池化的操作,得到全局特征(1×1024);
D6:全局特征(1×1024)和64维空间上的点完成拼接,再经过MLP操作,以及全连接层的处理;
D7:最后,获得每个点在物体4个特征(腿部、头部、尾巴、身体)的得分,取得分最大值作为输出结果,完成三维点云数据分割。
将大规模点云数据输入点云分割模型进行迭代训练,直到完成设置迭代的次数,或客观性能指标总体准确率(overall accuracy,OA)和平均交并比(mean intersectionover union,mIoU)均超过设定的阈值,则完成训练。
在一个具体的实施例中,本实施例采用客观性能指标总体准确率(overallaccuracy,OA)和平均交并比(mean intersection over union,mIoU)评估所述的点云分割模型的性能。其中,OA是计算每一个随机样本的语义标注结果与真实数据标注类型相一致概率的最简单度量标准。OA的计算公式为:
mIoU表示分割后真值区域与预测区域的交叠率,用于衡量分割精度。mIoU的计算公式为:
pxy表示真实值为x,被预测为y的数量,k+1是类别个数(包含空类)。pii表示预测正确的数量,pij、pji则分别表示假负和假正的数量。mIoU一般是基于类进行计算的,将每一类的IoU计算后累加并求取平均值,得到基于全局的评价。
将待分割的大规模三维点云数据输入训练好的点云分割模型,实现对大规模三维点云数据进行分割。
实施例2
基于实施例1所述基于八叉树和PointNet++网络的大规模点云分割方法,本实施例提供的基于八叉树和PointNet++网络的大规模点云分割方法,还包括以下步骤:在迭代训练点云分割模型之前,对猪体原始的大规模三维点云数据标记定位点,标记出物体的各个特征,再连接分割线,计算点云法向量。
本实施例采用人工数据标记,但是人工数据标记受到主观因素和猪体点云不同姿态影响,猪体各个部分定位及分割边界可能产生细微差异。为减少这种差异,采用同一人标记数据,并按照先标记定位点,再连接分割线的方式进行,具体过程如图11所示。
按照关键点的定位,采用CloudCompare软件依次标记出腿部、头部、尾巴、身体,总共4个特征,腿部标记为“0”、头部标记为“1”、尾部标记“2”、身体标记为“3”。
在一个具体的实施例中,采用基于局部表面拟合方法计算所述的点云法向量,具体如下:
求得的协方差矩阵C的3个特征值λ0≤λ1≤λ2,最小的特征值λ0对应的特征向量即为邻域点集拟合平面H的法向量,如图12、图13所示。
在所述的PointNet网络对输入的三维点云数据进行分割过程中,步骤D1,输入[N×D]三维点云数据进行矩阵变换操作,得到易于计算的数据(N×D);若使用法向量信息则D=6;若不使用法向量信息则D=3。
为了进一步地证实本实施例所述的点云分割方法的技术效果,本实施例进行如下实验,本实施例用于实验的猪体点云数据为2020年5月19日到5月31日在广东省河源市温氏公司下属养殖场采集。本次实验总共采集了500组不同个体的猪体点云数据,筛选出了340组较为完整的点云数据,进行重构、去噪、标记、计算法向量等处理。将340组标记好的下采样数据按照8:1:1的比例划分为训练集(train)272组数据、验证集(val)34组数据和测试集(test)34组数据。在验证集上进行点云分割模型参数的调整,保存在验证集上取得最佳分割效果云分割模型参数,用于测试集数据进行预测。
采用不同层数八叉树模块提取特征点效果对比,如下:
原始三维点云数据通过5层、6层、7层的八叉树模块提取特征点的数量分别在1200、4200、17000左右。为保持训练数据的一致性,我们再通过随机采样到1024、4096、16384个点送入PointNet++网络进行100次迭代(Epoch)训练,每完成一次迭代后就对验证集上数据进行一次测试,训练过程可视化结果如图15所示,训练过程性能指标变化由图16所示。由图15和图16可知,在前期的训练中,点云分割模型并未将尾巴分割出来,而且会把部分头部点云标记成腿部;在中期的训练中,能够将尾巴标记出来,但仍然会将头部点云划分为腿部;在后期训练中,mIoU稳定在80%以上,OA稳定在90%以上,虽然数值上有提升,但可视化效果的差别并不大。保存在训练集上取得最佳效果的点云分割模型参数,用于对测试集数据做分割,结果如表1所示。由表1可知,提取特征点数量越多分割的结果越好,点云分割模型的泛化能力也越强,然而点数越多所需要的训练时间也越长。
表1不同点云数量的结果对比
如图17~20所示为在测试集34组数据中任意选取的同一只猪体在经过不同层数八叉树模块将分割结果还原到原始猪体点云的可视化效果。如图17所示,采用5层八叉树模块进行特征点提取时,由于点云过度稀疏化,会丢失部分猪体结构信息,如图17中所示前腿和尾巴部分;进行还原时,头部与身体的分割边界会呈现严重锯齿状,mIoU为86.12%。如图18所示,当采用6层八叉树模块进行特征点提取时,已经能够很好地获取猪体结构信息,还原到原始点云的效果也比较好,分割边界比较清晰自然,mIoU为87.23%。如图19所示,当采用7层八叉树进行特征点提取时,数据显得较为冗余,而且训练非常耗时,进行还原后mIoU为89.53%,7层也是我们本次实验硬件所能承载的最大数据量。从可视化的效果上看,采用6层和7层八叉树模块进行还原结果差不多。所以,本实施例优选采用6层的八叉树模块进行特征点的提取,在保证猪体点云空间信息的前提下,最大程度地提升计算效率,减小开销。
是否添加点云法向量信息对点云分割模型的影响,具体如下:
点云法向量信息是三维模型中不可或缺的重要属性,直接影响着点云模型的处理有效性。在PointNet++网络架构中,添加了点云法向量信息的点云数据训练的结果比没有添加法向量的数据准确率有所提升,并且训练速度更快,而且并没有过多消耗GPU内存。本次实验采用了基于局部表面拟合的方法对原始点云计算点云法向量,添加点云法向量信息后的点云数据训练结果如图21、表2所示。
表2添加法向量信息前后的数据训练效果对比
对点云分割模型的鲁棒性分析如下:
对比分析点云分割模型在对猪体点云数据不同残缺部分下的分割结果。实验将受障碍物遮挡和噪声影响的猪体点云数据分为头部、身体、腿部三类残缺数据,通过训练好的点云分割模型对残缺数据进行分割,可视化结果如图22所示,性能指标结果如表3所示。由图22、表3可知,猪体腿部和身体的部分点云空洞对分割的结果并没有太大影响;而头部点云的缺失会使分割精确度有一定下降,从可视化角度来看,整体效果不错,但是分割的边界会比较模糊。试验结果表明,即使在猪体点云数据存在一定残缺的情况下,点云分割模型依然具有良好的分割结果,证明点云分割模型在有障碍物遮挡和噪音干扰的情况下具有一定的鲁棒性。
表3残缺猪体点云数据分割结果
对比分析其他的基于深度学习的点云分割模型在我们数据集上的性能,表4所示。PointNet++的模型根据采样点分组规则的不同分为单尺度特征提取(Single-scalegrouping)版本,即把相同分组半径下的局部特征提取出来。以及多尺度特征提取(Multi-scale grouping)版本,即把不同分组半径下的局部特征都提取出来。Msg版本的准确度要优于Ssg版本。相比于PointNet直接提取整个输入点云特征的方法,PointNet++的分层学习架构显然具备更好的效果。3D Point in 2D Space是将3D点云数据转化为2D数据利用U-Net进行分割,DG-CNN则是先对点云数据构建图结构,再送入Edge-Conv进行分割,在猪体点云分割任务中,两者的性能均不如PointNet系列网络。
表4不同算法在我们数据集上的性能对比
针对现有的基于深度学习的点云分割模型无法大规模点云数据的问题,本实施例提出的点云分割方法融合了八叉树与PointNet++网络,在PointNet++网络的基础上加入了八叉树模块,它们能够将大规模点云数据转化为小规模点云数据进行分割,再将小规模点云的分割结果还原到原始大规模点云,实现了对大规模猪体点云自动化分割,代替了费时且费力的人工标记方法。在通过局部平面拟合的方法添加法向量信息后,分割的准确度有所提升。实验结果表明,本实施例所述的方法能够有效地分割现实中通过Kinect V2深度相机采集的3D猪体点云数据,可视化效果与人工标记几乎无异,并且具有一定的鲁棒性。很显然,所述的点云分割方法还可以拓展到其他牲畜例如牛、羊、马的点云分割上,还可以把分割的部分更加地精细化,例如在头部点云中在划分出耳朵,在腿部点云中划分出前后左右腿。
对猪体点云实现精准分割后,可以应用于以下几个方面:(1)修补猪体点云,由于栏杆遮挡、视角盲点等影响会导致猪体点云缺失,猪体不同部分的点云应该采取不同的修补策略,训练好的分割模型能快速自动地分割出腿部、身体、尾巴、头部,可针对不同部位点云采用不同点云修补方案。(2)计算猪的体尺数据,首先需要在点云上定位关键点,将猪体点云分割成不同部位后再进行定位会减少不同区域点云的干扰,使得定位关键点更为准确。(3)更为细致的获取猪体各部分体积信息,分割出的各个部分能计算出各部分体积,从而知道猪各部分占比,例如头部大小占比,腿部占比等。
实施例3
一种计算机系统,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述的处理器执行所述的计算机程序时,实现的方法步骤如下:
获取物体原始的大规模三维点云数据;
在PointNet++网络的输入端和输出端分别加入若干层八叉树模块,实现构建点云分割模型;
将大规模点云数据输入点云分割模型进行迭代训练,先利用八叉树模块对大规模三维点云数据进行空间体素划分,提取特征点使大规模三维点云数据转化为小规模三维点云数据,然后输入PointNet++网络对点云数据进行分割,最后将分割的标记信息再通过八叉树模块在相同空间体素中进行共享,将分割结果还原回原始大规模三维点云数据;
将待分割的大规模三维点云数据输入训练好的点云分割模型,实现对大规模三维点云数据进行分割。
实施例4
一种计算机可读存储介质,其上存储有计算机程序,所述的计算机程序被处理器执行时,实现的方法步骤如下:
获取物体原始的大规模三维点云数据;
在PointNet++网络的输入端和输出端分别加入若干层八叉树模块,实现构建点云分割模型;
将大规模点云数据输入点云分割模型进行迭代训练,先利用八叉树模块对大规模三维点云数据进行空间体素划分,提取特征点使大规模三维点云数据转化为小规模三维点云数据,然后输入PointNet++网络对点云数据进行分割,最后将分割的标记信息再通过八叉树模块在相同空间体素中进行共享,将分割结果还原回原始大规模三维点云数据;
将待分割的大规模三维点云数据输入训练好的点云分割模型,实现对大规模三维点云数据进行分割。
本发明的各实施方式可以任意进行组合,以实现不同的技术效果。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidStateDisk)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于八叉树和PointNet++网络的大规模点云分割方法,其特征在于:所述的方法包括步骤如下:
获取物体原始的大规模三维点云数据;
在PointNet++网络的输入端和输出端分别加入若干层八叉树模块,实现构建点云分割模型;
将大规模点云数据输入点云分割模型进行迭代训练,先利用八叉树模块对大规模三维点云数据进行空间体素划分,提取特征点使大规模三维点云数据转化为小规模三维点云数据,然后输入PointNet++网络对点云数据进行分割,最后将分割的标记信息再通过八叉树模块在相同空间体素中进行共享,将分割结果还原回原始大规模三维点云数据;
将待分割的大规模三维点云数据输入训练好的点云分割模型,实现对大规模三维点云数据进行自动化分割。
2.根据权利要求1所述的基于八叉树和PointNet++网络的大规模点云分割方法,其特征在于:在迭代训练点云分割模型之前,对大规模三维点云数据先标记定位点,标记出物体的各个特征,再连接分割线,计算点云法向量。
4.根据权利要求1~3任一项所述的基于八叉树和PointNet++网络的大规模点云分割方法,其特征在于:所述的PointNet++网络在PointNet网络的基础上增加了逐层抽象层,实现在不同尺度局部区域对小规模三维点云数据进行特征提取,再进行特征拼接;
所述的PointNet++网络包括分层点集特征学习子网络和集合分割点特征传播子网络。
5.根据权利要求4所述的基于八叉树和PointNet++网络的大规模点云分割方法,其特征在于:所述的分层点集特征学习子网络包括两个集合抽象层,每个集合抽象层包括采样层、分组层、PointNet层;
其中,所述的采样层使用最远点采样选取点云数据的部分中心点;
所述的分组层按照邻域规则选取采样中心点的邻域点,将选出的各个子点云送入PointNet层;
所述的PointNet层运用局部区域的信息编码成特征向量。
7.根据权利要求4所述的基于八叉树和PointNet++网络的大规模点云分割方法,其特征在于:所述的PointNet网络对输入的三维点云数据进行分割如下:
D1:输入[N×D]三维点云数据进行矩阵变换操作,得到易于计算的数据(N×D);
D2:变换后三维点云数据投影到64维空间中去,得到高维数据[N×64];
D3:高维数据[N×64]继续进行特征矩阵变换操作,得到数据(N×64);
D4:变换后的(N×64)投影到更高维的1024维空间中去,得到[N×1024]的数据;
D5:进行最大池化的操作,得到全局特征(1×1024);
D6:全局特征(1×1024)和64维空间上的点完成拼接,再经过MLP操作,以及全连接层的处理;
D7:最后,获得每个点在物体各个特征的得分,取得分最大值作为输出结果,完成三维点云数据分割。
8.根据权利要求7所述的基于八叉树和PointNet++网络的大规模点云分割方法,其特征在于:所述的八叉树模块提取特征点过程步骤如下:
N1:设置最大递归深度即最多可细分的次数N,进行点云划分;
N2:依序将单位元素送入能被包含且没有子节点的立方体;
N3:若没有达到最大递归深度,则继续进行细分,并将立方体所装的单位元元素全部分担给8个子立方体;
N4:若子立方体所分配到的单位元元素数量不为零且跟父立方体是一样的,则该子立方体停止划分;
N5:重复步骤N2,直到达到最大递归深度;
N6:取最大递归深度的立方体中心点最近的点作为特征点。
10.根据权利要求7所述的基于八叉树和PointNet++网络的大规模点云分割方法,其特征在于:采用八叉树模块将分割结果还原到大规模三维点云数据,具体如下:
在特征点完成分割后,构建与提取特征点时相同层数的八叉树结构,将与特征点通过八叉树结构最终划分在同一个立方体内的所有点视为相邻点,共享相同的分割标记,完成将小规模三维点云数据的分割结果还原到大规模三维点云数据的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111390150.4A CN114187310A (zh) | 2021-11-22 | 2021-11-22 | 基于八叉树和PointNet++网络的大规模点云分割方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111390150.4A CN114187310A (zh) | 2021-11-22 | 2021-11-22 | 基于八叉树和PointNet++网络的大规模点云分割方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114187310A true CN114187310A (zh) | 2022-03-15 |
Family
ID=80602329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111390150.4A Pending CN114187310A (zh) | 2021-11-22 | 2021-11-22 | 基于八叉树和PointNet++网络的大规模点云分割方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114187310A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115077437A (zh) * | 2022-05-13 | 2022-09-20 | 东北大学 | 基于声发射定位约束的岩石水力压裂裂缝形态表征方法 |
CN115222988A (zh) * | 2022-07-17 | 2022-10-21 | 桂林理工大学 | 激光雷达点云数据城市地物PointEFF精细分类方法 |
CN115311407A (zh) * | 2022-04-19 | 2022-11-08 | 北京和华瑞博医疗科技有限公司 | 一种特征点标记方法、装置、设备及存储介质 |
CN116882031A (zh) * | 2023-09-01 | 2023-10-13 | 临沂大学 | 一种基于点云的建筑模型构建方法及系统 |
CN117053875A (zh) * | 2023-10-10 | 2023-11-14 | 华南农业大学 | 一种家禽表型智能测定装置及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110986788A (zh) * | 2019-11-15 | 2020-04-10 | 华南农业大学 | 一种基于三维点云牲畜表型体尺数据的自动测量方法 |
CN111798475A (zh) * | 2020-05-29 | 2020-10-20 | 浙江工业大学 | 一种基于点云深度学习的室内环境3d语义地图构建方法 |
CN111862101A (zh) * | 2020-07-15 | 2020-10-30 | 西安交通大学 | 一种鸟瞰图编码视角下的3d点云语义分割方法 |
CN113378756A (zh) * | 2021-06-24 | 2021-09-10 | 深圳市赛维网络科技有限公司 | 一种三维人体语义分割方法、终端设备及存储介质 |
CN113627440A (zh) * | 2021-08-14 | 2021-11-09 | 张冉 | 一种基于轻量级神经网络的大规模点云语义分割方法 |
CN113724270A (zh) * | 2021-08-25 | 2021-11-30 | 华南农业大学 | 一种牲畜表面点云智能分割方法及其系统 |
-
2021
- 2021-11-22 CN CN202111390150.4A patent/CN114187310A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110986788A (zh) * | 2019-11-15 | 2020-04-10 | 华南农业大学 | 一种基于三维点云牲畜表型体尺数据的自动测量方法 |
CN111798475A (zh) * | 2020-05-29 | 2020-10-20 | 浙江工业大学 | 一种基于点云深度学习的室内环境3d语义地图构建方法 |
CN111862101A (zh) * | 2020-07-15 | 2020-10-30 | 西安交通大学 | 一种鸟瞰图编码视角下的3d点云语义分割方法 |
CN113378756A (zh) * | 2021-06-24 | 2021-09-10 | 深圳市赛维网络科技有限公司 | 一种三维人体语义分割方法、终端设备及存储介质 |
CN113627440A (zh) * | 2021-08-14 | 2021-11-09 | 张冉 | 一种基于轻量级神经网络的大规模点云语义分割方法 |
CN113724270A (zh) * | 2021-08-25 | 2021-11-30 | 华南农业大学 | 一种牲畜表面点云智能分割方法及其系统 |
Non-Patent Citations (6)
Title |
---|
CHARLES R. QI 等: "PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation", 《ARXIV》 * |
CHARLES R. QI 等: "PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space", 《ARXIV》 * |
FORLIN_: "高效计算点云平均间距(附Matlab代码)", 《HTTPS://BLOG.CSDN.NET/A316140383/ARTICLE/DETAILS/53749804》 * |
JUSTIN PETLUK 等: "Point Cloud Capture and Segmentation of Animal Images using Classification and Clustering", 《ACM》 * |
RAIN-JAY: "点云的降采样:八叉树采样(Octree)", 《HTTPS://BLOG.CSDN.NET/WEIXIN_43236428/ARTICLE/DETAILS/103454791》 * |
WEIXIN_30487201: "3D点云法向量估计(最小二乘拟合平面)", 《HTTPS://BLOG.CSDN.NET/WEIXIN_30487201/ARTICLE/DETAILS/96343024》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115311407A (zh) * | 2022-04-19 | 2022-11-08 | 北京和华瑞博医疗科技有限公司 | 一种特征点标记方法、装置、设备及存储介质 |
CN115311407B (zh) * | 2022-04-19 | 2023-09-12 | 北京和华瑞博医疗科技有限公司 | 一种特征点标记方法、装置、设备及存储介质 |
CN115077437A (zh) * | 2022-05-13 | 2022-09-20 | 东北大学 | 基于声发射定位约束的岩石水力压裂裂缝形态表征方法 |
CN115222988A (zh) * | 2022-07-17 | 2022-10-21 | 桂林理工大学 | 激光雷达点云数据城市地物PointEFF精细分类方法 |
CN116882031A (zh) * | 2023-09-01 | 2023-10-13 | 临沂大学 | 一种基于点云的建筑模型构建方法及系统 |
CN116882031B (zh) * | 2023-09-01 | 2023-11-17 | 临沂大学 | 一种基于点云的建筑模型构建方法及系统 |
CN117053875A (zh) * | 2023-10-10 | 2023-11-14 | 华南农业大学 | 一种家禽表型智能测定装置及方法 |
CN117053875B (zh) * | 2023-10-10 | 2023-12-19 | 华南农业大学 | 一种家禽表型智能测定装置及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | Automatic building information model reconstruction in high-density urban areas: Augmenting multi-source data with architectural knowledge | |
CN109655019B (zh) | 一种基于深度学习和三维重建的货物体积测量方法 | |
CN114187310A (zh) | 基于八叉树和PointNet++网络的大规模点云分割方法 | |
WO2024077812A1 (zh) | 基于点云语义分割与结构拟合的单体建筑三维重建方法 | |
CN110889318B (zh) | 利用cnn的车道检测方法和装置 | |
CN110111345B (zh) | 一种基于注意力网络的3d点云分割方法 | |
Hu et al. | Structure‐aware 3D reconstruction for cable‐stayed bridges: A learning‐based method | |
JP6980289B2 (ja) | 車線モデルを利用して車線を検出し得る学習方法及び学習装置そしてこれを利用したテスト方法及びテスト装置{learning method, learning device for detecting lane using lane model and test method, test device using the same} | |
US11861855B2 (en) | System and method for aerial to ground registration | |
CN110619299A (zh) | 基于网格的对象识别slam方法和装置 | |
Tran et al. | Pp-linknet: Improving semantic segmentation of high resolution satellite imagery with multi-stage training | |
Xiao et al. | 3D urban object change detection from aerial and terrestrial point clouds: A review | |
Bayu et al. | Semantic segmentation of lidar point cloud in rural area | |
Li et al. | Deep-learning-based 3D reconstruction: a review and applications | |
CN114120095A (zh) | 一种基于空中三维模型的移动机器人自主定位系统及方法 | |
CN116740077A (zh) | 一种基于三维点云的植物叶片分割方法 | |
Diaz et al. | Real-time ground filtering algorithm of cloud points acquired using Terrestrial Laser Scanner (TLS) | |
Li et al. | PointLAE: A Point Cloud Semantic Segmentation Neural Network via Multifeature Aggregation for Large-Scale Application | |
CN114494586A (zh) | 晶格投影的深度学习网络阔叶树枝叶分离与骨架重建方法 | |
Gonzalez-Huitron et al. | Jaccard distance as similarity measure for disparity map estimation | |
Fang et al. | Semantic supported urban change detection using ALS point clouds | |
Weinmann | Semantic segmentation of dense point clouds | |
Cao et al. | Understanding 3D point cloud deep neural networks by visualization techniques | |
Xiao | Detecting changes in trees using multi-temporal airborne LIDAR point clouds | |
CN115984583B (zh) | 数据处理方法、装置、计算机设备、存储介质和程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220315 |
|
RJ01 | Rejection of invention patent application after publication |