CN105740798B - 一种基于结构分析的点云场景物体识别方法 - Google Patents
一种基于结构分析的点云场景物体识别方法 Download PDFInfo
- Publication number
- CN105740798B CN105740798B CN201610055596.4A CN201610055596A CN105740798B CN 105740798 B CN105740798 B CN 105740798B CN 201610055596 A CN201610055596 A CN 201610055596A CN 105740798 B CN105740798 B CN 105740798B
- Authority
- CN
- China
- Prior art keywords
- point
- plane
- node
- connection
- point cloud
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于结构分析的点云场景物体识别方法,步骤1:利用区域增长的方法以及基于距离的聚类算法对点云场景进行分割,并基于高斯球的性质提取点云场景中的平面;步骤2:对提取的平面,将单个平面由结点表示,平面间的连接关系由边表示,分析结点属性以及边属性,定义平面之间的连接类型;步骤3、对目标物体的结构进行分析,并记录目标物体的连接编码;步骤4、平面组合及目标识别,通过与目标物体的编码进行比对完成物体的识别。本发明一种基于结构分析的点云场景物体识别方法,解决了现有识别技术计算量大及点云数据不完整,且易受噪声影响,不适合大场景点云数据中物体的识别的缺陷。
Description
技术领域
本发明属于计算机视觉与模式识别相结合的交叉学科技术领域,具体涉及一种基于结构分析的点云场景物体识别方法。
背景技术
三维物体识别一直都是计算机视觉与模式识别的一个重要研究领域。人类具有强大的识别能力,可以从复杂场景中迅速地识别物体。但是如何使计算机像人类一样,能够自动地识别出场景中的物体,仍有很大的困难。
目前,基于图像的物体识别已经有很多成果,但是二维图像的成像过程是从三维空间映射到二维空间,这个过程会丢失大量的信息。而且一个无法忽视的事实是,最好的视觉系统应该是面向三维世界的。随着激光扫描技术的快速发展,获取场景的三维坐标数据已经非常便捷。同时,三维点云数据的采集不受光照影响,没有光照的阴影以及纹理的困扰,所以基于三维点云数据的物体识别也引起了人类的重视。
目前,已有的物体识别方法可以分为两类:基于特征分析的物体识别方法和基于机器学习的物体识别方法。
①基于特征分析的物体识别方法
基于特征分析的物体识别方法主要思想是通过比对局部特征来识别物体。该类方法无需对处理数据进行分割,通过提取对象的特征点,边缘或者是面片等局部特征,进行局部特征比对,从而完成物体的识别。
旋转图像法(Spin Image)也是一种典型的基于点的特征描述方法,它是Johnson等人在1999年提出的一种利用二维数据表征三维特征的自旋图方法。旋转图像主要思想是一个图像绕法向量旋转360°,以图像中每个像素栅格所遇到的点云数作为其灰度值。Frome提出三维形状上下文方法(3D shape context)完成物体的识别。该方法将特征点邻域划分为三维球形栅格,通过统计栅格内的点云数据量得到三维形状上下文特征信息,通过比对特征信息完成物体的识别。但是该方法只定义了Z轴方向。Zhong提出了一种新的三维形状描述符(Intrinsic Shape Signatures,ISS)描述点云局部/半局部的特征。通过矩阵计算得到姿态的放置和变换,并将其直接代入识别检索表中,作为识别正确性的参数值,避免只定义Z轴带来的方位模糊。上述方法容易受到噪声以及点云数据分布不均匀的影响,导致特征鲁棒性不强。魏先将三维物体投影到二维,然后将测地距离和矢量夹角的变化引入到曲面片特征的描述中并形成模型库,通过比对曲面片的描述完成物体的识别。该方法把三维识别转化为二维识别,会造成三维信息的丢失,导致识别不准确。
②基于机器学习的物体识别方法
基于机器学习的物体识别方法是建立在已经知道场景中包含有哪些对象的基础上,通过学习,将场景分为多个类别。
Anguelov提出一种基于马尔可夫随机场的点云场景分类方法。该方法认为整个场景是一个马尔可夫随机场,根据特征将场景分为地面、建筑物、树木和灌木四类。Kim认为室内场景通常包含高密度的重复物体,如桌子、椅子和显示器等。根据场景中包含物体的重复性,将每类物体看作是基本形状的组合,提取每类对象不同姿态下的特征,通过马尔可夫随机场进行学习,完成场景中物体的识别。Zhao首先利用扫描线算法对点云场景进行分割,然后通过提取每个分割面片的最大/最小高度、法向量分布方差等特征,利用支持向量机进行学习,将场景分为建筑物、地面、树木和行人等。基于扫描线的分割方法在沿扫描剖面进行处理时,只能提取出沿扫描剖面方向曲率变化大的特征点,不能顾及到物体的细节特征。庄将三维点云数据转化为二维Bearing Angle图,利用区域扩张算法提取场景中的平面。将物体碎片及其相对于物体中心的位置作为特征,利用一种基于Gentleboost算法的有监督学习方法,完成对室内场景中屋顶、墙壁、房门以及地面物体的认知。
在真实的三维点云场景中,由于扫描过程中遮挡、噪声的干扰或者由于单侧扫描,单个物体的完整点云数据很难获得,再加上点云数据的海量性以及场景中物体的多样性,导致已有的方法不适用于点云场景中物体的识别。
发明内容
本发明的目的是提供一种基于结构分析的点云场景物体识别方法,解决了现有技术中存在的由于三维物体点云数据量大以及点云数据不完整,导致三维物体识别不准确的问题。
本发明所采用的技术方案是,一种基于结构分析的点云场景物体识别方法,具体按照以下步骤实施:
步骤1:利用区域增长的方法以及基于距离的聚类算法对点云场景进行分割,并基于高斯球的性质提取点云场景中的平面;
步骤2:对步骤1提取的平面,将单个平面由结点表示,平面间的连接关系由边表示,分析结点属性以及边属性,定义平面之间的连接类型;
步骤3、利用步骤2中对结点属性及边属性的定义,对目标物体的结构进行分析,并记录目标物体的连接编码;
步骤4、根据步骤3对目标物体结构的分析,从点云场景中选取一个符合目标物体特征的平面作为种子点,利用区域增长的方法,依次迭代找到符合特征的平面进行组合,记录“组合平面”的连接编码,通过与目标物体的编码进行比对完成物体的识别。
本发明的特点还在于,
步骤1具体为:
步骤1.1:利用主元分析法计算点云的法向量
点云场景中的任意一点p,找到点p的k个邻近点 点p的三阶协方差矩阵M为:
其中,为点p的k个邻近点的平均位置,
通过奇异值分解对点p的三阶协方差矩阵M进行特征值分解,得到协方差矩阵M的特征值λ3>λ2>λ1>0,点p的法向量为最小特征值λ1所对应的特征向量对于点云数据中的任意一点p,利用k-d树找出与点p最近的点q,如果将点p的法向量方向反转;
步骤1.2:用区域增长的方法对点云场景进行分割
步骤1.2.1:遍历点云场景中每一点,如果点pi未被标记,则将其设置为种子点,遍历其它未被标记的点pj,如果则将点pi和pj分为一类,并对点pj进行标记,其中,和为点pi和pj的法向量;否则,对点pj不予标记,继续遍历下一个点;
步骤1.2.2:如果点云场景中所有点都被标记,结束遍历;否则,返回步骤1.2.1继续遍历;
步骤1.3:对于每个具有相似法向量的点云簇中的每一点pi,利用k-d树找出点pi的k个邻近点,筛选与点pi距离小于阈值r的点集NN;
步骤1.4:遍历具有相似法向量的点云数据,如果点pi是被遍历的第一个点,标记点集NN中所有的点label=1;如果点pi不是被遍历的第一个点,则遍历点集NN中的每一点是否已经被标记,如果点集NN中所有的点均未被标记,则label++,将点集NN中所有的点标记为label;如果点集NN中存在已经被标记的点,找出被标记的点中最小的标记值mLabel,将点集NN中所有的点标记为mLabel;
步骤1.5:重复步骤1.3、步骤1.4,直到点云数据中所有点均被标记;
步骤1.6:经过分割后的点云数据集合分别为F1,F2...Fm,将F1,F2...Fm进行高斯映射后的数据集分别为G(F1),G(F2)...G(Fm),根据步骤1.1中点p的法向量通过下式获得点p在高斯球上的映射位置:
将球坐标映射到直角坐标,其转换公式为:
点云数据的法向量进行高斯映射后,具有相同法向量的点会映射到高斯球上同一位置,根据高斯球的性质对平面进行识别:
首先,利用下式计算G(Fi)的中心
其中,fi为点云数据集合Fi中的任意一点,N为该点云数据集合Fi点的个数;
其次,利用下式计算出每一点云数据集合的法向量的方差var(G(Fi)):
如果方差var(G(Fi))小于阈值ε,判断点云数据集合Fi为平面,如果方差var(G(Fi))大于阈值ε,点云数据集合Fi不为平面;
步骤2具体为:
步骤2.1:将单个平面由结点表示,定义结点的属性
将每一个平面利用一个单独的结点表示,即每一个结点是一个平面的抽象,针对分割后的平面S1,S2,...Sn,利用公式(7)计算出平面Si的中心点的位置,利用该中心点Ci代表平面Si:
其中,N为每个平面中点的个数,(xj,yj,zj)为平面Si中任意一点的坐标值;
①面积Areai
计算平面Si的面积Areai,由于平面的厚度为0,所以利用公式(8)计算平面的面积:
Areai=lengthi×widthi (8)
其中,lengthi是平面Si的长度,widthi是平面的宽度;
②平均法向量AvgNorm
利用公式(9)计算每个平面Si的平均法向量
其中,(nxi,nyi,nzi)是平面Si中任意一点的法向量,N为平面Si中点的个数;
如果某一个平面Sj的平均法向量近似为(0,0,1.0),即和接近为0,接近为1,则Sj为与水平面垂直的平面;
③高度差DeltZi
高度差DeltZi是平面Si中z值最大值Zimax与z值最小值Zimin的差值:
DeltZi=Zimax-Zimin (10)
步骤2.2:平面间的连接关系由边表示,分析边的属性
①连接类型
根据平面与水平面的关系,将平面分为:与水平面平行的平面称为水平面,与水平面垂直的平面称为垂直面,既不与水平面平行又不与水平面垂直的平面称为倾斜面,根据平面的不同类型,将结点连接类型分为七类:
a.一个水平面结点与一个垂直面结点相连接且相互垂直,连接类型Typeij=1;
b.一个水平面结点与一个倾斜的结点相连接,两个结点不垂直,连接类型Typeij=2;
c.两个垂直面结点相连接,且两个结点相互垂直,连接类型Typeij=3;
d.两个倾斜的结点相连接,同时两个结点不垂直,连接类型Typeij=4;
e.两个垂直面结点相连接,且两个结点相互不垂直,连接类型Typeij=5;
f.一个倾斜的结点与一个垂直面结点相连接,两个结点不垂直,连接类型Typeij=6;
g.两个倾斜的结点相连接,同时两个结点相互垂直,连接类型Typeij=7;
②长度Distij
利用公式(11)计算平面Si的中心点与平面Sj的中心点之间的距离即长度Distij:
③相连两平面之间的夹角θij
AvgNormi和AvgNormj分别为平面Si和Sj的平均法向量,利用公式(12)计算两个平面之间的夹角θij:
步骤3具体为:
步骤3.1:确定构成目标物体的平面之间的连接类型
为了提高程序的运行效率,在判定平面间是否相连时,不需要遍历平面中的每一个点,只需要遍历每个平面的边界点,寻找边界点的邻近点,判断邻近点中是否包含有其它平面的点;
提取每个平面的边界点:
pi是平面S1中的一点,利用k-d树找出pi的k个邻近点,找出与pi距离小于r的点的集合Pr-distace={{pi,pj,dij}|dij≤r},i≠j,c为Pr-distace的中心点,m为Pr-distace中距离pi最大的点,如果pi是边界点,则|pic|/|pim|较大,其中,|pic|为点pi和点c的距离;
对于每一个边界点pm,利用k-d树寻找pm的k个邻近点,如果邻近点中存在某点pk∈Sj,其距离|pmpk|<τ&&pm∈Si,则标记平面Si和Sj相连接,根据结点的平面类别,判断结点间的连接类型,断定Typeij的值;
步骤3.2:记录目标物体的连接编码
步骤3.2.1:将构成目标物体的所有平面按照高度z进行排序,将z值最高的平面Si当作根结点;
步骤3.2.2:对于根结点Si,将与其连接的结点S1,S2,…Si-1,Si+1,…Sn按高度从高到低进行连接,作为Si的子结点;
步骤3.2.3:对于根结点Si的每个子结点Sj∈S1,S2,…Si-1,Si+1,…Sn,将与结点Sj相连接的结点从高到低排列连接,作为结点Sj的子结点;
步骤3.2.4:将Sj的子结点作为子树的父结点,将与之相连接的结点从高到低排列连接;
步骤3.2.5:利用广度优先遍历编码树,记录结点之间连接边的类型,获得目标物体的连接编码。
步骤3.2.5中记录结点之间连接边的类型时,已经记录过的连接边不再重复记录。
步骤4具体为:
步骤4.1:遍历场景中的每个结点,选择一个符合条件的结点作为种子点Si;
步骤4.2:找出与种子点Si相连接并且符合条件的结点Sj进行组合,并将Sj作为种子点,重新对场景中的结点进行遍历,寻找其他符合条件并且未被遍历的结点,循环往复,直至找不到合适的结点为止;
步骤4.3:根据连接类型分类,分析结点间的连接类型构造“组合平面”的连接编码,通过比对连接编码完成对象的识别,如果编码正确,则目标对象识别成功;否则,重新执行步骤4.1。
步骤4.1及步骤4.2中的符合条件的结点均为:①平面的面积Areai小于一定阈值或②平面高度差DeltZi小于一定的阈值或③两个平面间的夹角θij是否符合目标物体的特征或④最高平面的类型符合目标物体的特征中的任意一个条件。
平面的类型为水平面或垂直面或倾斜面中的任意一种。
本发明的有益效果是:本发明一种基于结构分析的点云场景物体识别方法,解决了现有识别技术计算量大及点云数据不完整,且易受噪声影响,不适合大场景点云数据中物体的识别的缺陷。
附图说明
图1是本发明点云场景物体识别方法中点云场景数据图;
图2是本发明点云场景物体识别方法中不同平面连接类型示意图;
图3是本发明点云场景物体识别方法中楼梯的示意图;
图4是本发明点云场景物体识别方法中边界点的提取示意图;
图5是图1中点云场景中每个平面的轮廓点提取效果图;
图6是图3中楼梯不同平面之间的连接示意图;
图7是采用本发明构造的图3中楼梯的编码树示意图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明点云场景数据如图1所示,本发明一种基于结构分析的点云场景物体识别方法,具体实施步骤为:
步骤1:通过观察发现,城市场景中包含许多人造对象,这些对象可以看作是由多个平面构成的。利用区域增长的方法以及基于距离的聚类算法对点云场景进行分割,并基于高斯球的性质提取点云场景中的平面,具体为:
步骤1.1:利用主元分析法计算点云的法向量
点云场景中的任意一点p,找到点p的k个邻近点 点p的三阶协方差矩阵M为:
其中,为点p的k个邻近点的平均位置,
通过奇异值分解对点p的三阶协方差矩阵M进行特征值分解,得到协方差矩阵M的特征值λ3>λ2>λ1>0,点p的法向量为最小特征值λ1所对应的特征向量对于点云数据中的任意一点p,利用k-d树找出与点p最近的点q,如果将点p的法向量方向反转;
步骤1.2:用区域增长的方法对点云场景进行分割
利用区域增长的思想对点云场景进行分割,将具有相似法向量的点分割为一类。
步骤1.2.1:遍历点云场景中每一点,如果点pi未被标记,则将其设置为种子点,遍历其它未被标记的点pj,如果则将点pi和pj分为一类,并对点pj进行标记,其中,和为点pi和pj的法向量;否则,对点pj不予标记,继续遍历下一个点;
步骤1.2.2:如果点云场景中所有点都被标记,结束遍历;否则,返回步骤1.2.1继续遍历;
步骤1.3:对于每个具有相似法向量的点云簇中的每一点pi,利用k-d树找出点pi的k个邻近点,筛选与点pi距离小于阈值r的点集NN;
步骤1.4:遍历具有相似法向量的点云数据,如果点pi是被遍历的第一个点,标记点集NN中所有的点label=1;如果点pi不是被遍历的第一个点,则遍历点集NN中的每一点是否已经被标记,如果点集NN中所有的点均未被标记,则label++,将点集NN中所有的点标记为label;如果点集NN中存在已经被标记的点,找出被标记的点中最小的标记值mLabel,将点集NN中所有的点标记为mLabel;
步骤1.5:重复步骤1.3、步骤1.4,直到点云数据中所有点均被标记;
步骤1.6:经过分割后的点云数据集合分别为F1,F2...Fm,将F1,F2...Fm进行高斯映射后的数据集分别为G(F1),G(F2)...G(Fm),根据步骤1.1中点p的法向量通过下式获得点p在高斯球上的映射位置:
将球坐标映射到直角坐标,其转换公式为:
点云数据的法向量进行高斯映射后,具有相同法向量的点会映射到高斯球上同一位置,根据高斯球的性质对平面进行识别:
首先,利用下式计算G(Fi)的中心
其中,fi为点云数据集合Fi中的任意一点,N为该点云数据集合Fi点的个数;
其次,利用下式计算出每一点云数据集合的法向量的方差var(G(Fi)):
如果方差var(G(Fi))小于阈值ε,判断点云数据集合Fi为平面,如果方差var(G(Fi))大于阈值ε,点云数据集合Fi不为平面;
步骤2:对步骤1提取的平面,将单个平面由结点表示,平面间的连接关系由边表示,分析结点属性以及边属性,定义平面之间的连接类型,具体为:
步骤2.1:将单个平面由结点表示,定义结点的属性
将每一个平面利用一个单独的结点表示,即每一个结点是一个平面的抽象,针对分割后的平面S1,S2,...Sn,利用公式(7)计算出平面Si的中心点的位置,利用该中心点Ci代表平面Si:
其中,N为每个平面中点的个数,(xj,yj,zj)为平面Si中任意一点的坐标值;
①面积Areai
计算平面Si的面积Areai,由于平面的厚度为0,所以利用公式(8)计算平面的面积:
Areai=lengthi×widthi (8)
其中,lengthi是平面Si的长度,widthi是平面的宽度;
②平均法向量AvgNorm
利用公式(9)计算每个平面Si的平均法向量
其中,(nxi,nyi,nzi)是平面Si中任意一点的法向量,N为平面Si中点的个数;
如果某一个平面Sj的平均法向量近似为(0,0,1.0),即和接近为0,接近为1,则Sj为与水平面垂直的平面;
③高度差DeltZi
高度差DeltZi是平面Si中z值最大值Zimax与z值最小值Zimin的差值:
DeltZi=Zimax-Zimin (10)
步骤2.2:平面间的连接关系由边表示,分析边的属性
①连接类型
根据平面与水平面的关系,将平面分为:与水平面平行的平面称为水平面,与水平面垂直的平面称为垂直面,既不与水平面平行又不与水平面垂直的平面称为倾斜面,图2(a)~图2(g)为不同平面连接类型示意图,根据平面的不同类型,将结点连接类型分为七类:
a.一个水平面结点与一个垂直面结点相连接且相互垂直,连接类型Typeij=1;
b.一个水平面结点与一个倾斜的结点相连接,两个结点不垂直,连接类型Typeij=2;
c.两个垂直面结点相连接,且两个结点相互垂直,连接类型Typeij=3;
d.两个倾斜的结点相连接,同时两个结点不垂直,连接类型Typeij=4;
e.两个垂直面结点相连接,且两个结点相互不垂直,连接类型Typeij=5;
f.一个倾斜的结点与一个垂直面结点相连接,两个结点不垂直,连接类型Typeij=6;
g.两个倾斜的结点相连接,同时两个结点相互垂直,连接类型Typeij=7;
②长度Distij
利用公式(11)计算平面Si的中心点与平面Sj的中心点之间的距离即长度Distij:
③相连两平面之间的夹角θij
AvgNormi和AvgNormj分别为平面Si和Sj的平均法向量,利用公式(12)计算两个平面之间的夹角θij:
步骤3、利用步骤2中对结点属性及边属性的定义,对目标物体的结构进行分析,并记录目标物体的连接编码,具体为:
步骤3.1:确定构成目标物体的平面之间的连接类型
图3为楼梯的示意图,楼梯是建筑物的重要组成部分,它可以近似地看作是由多个平面连接而成的,每两个连接的平面相互垂直。
场景中的很多人造物体都由平面构成,对构成目标物体的平面间的连接类型进行分析。为了提高程序的运行效率,在判定平面间是否相连时,不需要遍历平面中的每一个点,只需要遍历每个平面的边界点,寻找边界点的邻近点,判断邻近点中是否包含有其它平面的点;
提取每个平面的边界点,图4为边界点的提取示意图:
pi是平面S1中的一点,利用k-d树找出pi的k个邻近点,找出与pi距离小于r的点的集合Pr-distace={{pi,pj,dij}|dij≤r},i≠j,c为Pr-distace的中心点,m为Pr-distace中距离pi最大的点,如果pi是边界点,则|pic|/|pim|较大,其中,|pic|为点pi和点c的距离,图5为图1中点云场景提取的每个平面的边界点;
对于每一个边界点pm,利用k-d树寻找pm的k个邻近点,如果邻近点中存在某点pk∈Sj,其距离|pmpk|<τ&&pm∈Si,则标记平面Si和Sj相连接,根据结点的平面类别,判断结点间的连接类型,断定Typeij的值;图6为楼梯不同平面之间的连接示意图。
步骤3.2:记录目标物体的连接编码
根据平面间的连接关系构造目标物体的编码树,然后利用广度优先遍历编码树,获得目标物体的连接编码。
步骤3.2.1:将构成目标物体的所有平面按照高度z进行排序,将z值最高的平面Si当作根结点;
步骤3.2.2:对于根结点Si,将与其连接的结点S1,S2,…Si-1,Si+1,…Sn按高度从高到低进行连接,作为Si的子结点;
步骤3.2.3:对于根结点Si的每个子结点Sj∈S1,S2,…Si-1,Si+1,…Sn,将与结点Sj相连接的结点从高到低排列连接,作为结点Sj的子结点;
步骤3.2.4:将Sj的子结点作为子树的父结点,将与之相连接的结点从高到低排列连接;
步骤3.2.5:利用广度优先遍历编码树,记录结点之间连接边的类型,获得目标物体的连接编码。但是,在记录结点之间连接边的类型时,已经记录过的连接边不再重复记录。
图7为楼梯的编码树,利用广度遍历记录平面之间的连接编码,楼梯的连接编码为:“111111”,1的个数与楼梯的层数有关。
步骤4、根据步骤3对目标物体结构的分析,从点云场景中选取一个符合目标物体特征的平面作为种子点,利用区域增长的方法,依次迭代找到符合特征的平面进行组合,记录“组合平面”的连接编码,通过与目标物体的编码进行比对完成物体的识别,具体为:
步骤4.1:遍历场景中的每个结点,选择一个符合条件的结点作为种子点Si;
步骤4.2:找出与种子点Si相连接并且符合条件的结点Sj进行组合,并将Sj作为种子点,重新对场景中的结点进行遍历,寻找其他符合条件并且未被遍历的结点,循环往复,直至找不到合适的结点为止;
步骤4.3:根据连接类型分类,分析结点间的连接类型构造“组合平面”的连接编码,通过比对连接编码完成对象的识别,如果编码正确,则目标对象识别成功;否则,重新执行步骤4.1。
上述符合条件的结点为:①平面的面积Areai小于一定阈值或②平面高度差DeltZi小于一定的阈值或③两个平面间的夹角θij是否符合目标物体的特征或④最高平面的类型(即水平面或垂直面或倾斜面)符合目标物体的特征中的任意一个条件。
本发明一种基于结构分析的点云场景物体识别方法,解决了现有识别技术计算量大及点云数据不完整,且易受噪声影响,不适合大场景点云数据中物体的识别的缺陷。
Claims (6)
1.一种基于结构分析的点云场景物体识别方法,其特征在于,具体按照以下步骤实施:
步骤1:利用区域增长的方法以及基于距离的聚类算法对点云场景进行分割,并基于高斯球的性质提取点云场景中的平面,具体按照下述步骤进行:
步骤1.1:利用主元分析法计算点云的法向量
点云场景中的任意一点p,找到点p的k个邻近点 点p的三阶协方差矩阵M为:
其中,为点p的k个邻近点的平均位置,
通过奇异值分解对点p的三阶协方差矩阵M进行特征值分解,得到协方差矩阵M的特征值λ3>λ2>λ1>0,点p的法向量为最小特征值λ1所对应的特征向量对于点云数据中的任意一点p,利用k-d树找出与点p最近的点q,如果将点p的法向量方向反转;
步骤1.2:用区域增长的方法对点云场景进行分割
步骤1.2.1:遍历点云场景中每一点,如果点pi未被标记,则将其设置为种子点,遍历其它未被标记的点pj,如果则将点pi和pj分为一类,并对点pj进行标记,其中,和为点pi和pj的法向量;否则,对点pj不予标记,继续遍历下一个点;
步骤1.2.2:如果点云场景中所有点都被标记,结束遍历;否则,返回步骤1.2.1继续遍历;
步骤1.3:对于每个具有相似法向量的点云簇中的每一点pi,利用k-d树找出点pi的k个邻近点,筛选与点pi距离小于阈值r的点集NN;
步骤1.4:遍历具有相似法向量的点云数据,如果点pi是被遍历的第一个点,标记点集NN中所有的点label=1;如果点pi不是被遍历的第一个点,则遍历点集NN中的每一点是否已经被标记,如果点集NN中所有的点均未被标记,则label++,将点集NN中所有的点标记为label;如果点集NN中存在已经被标记的点,找出被标记的点中最小的标记值mLabel,将点集NN中所有的点标记为mLabel;
步骤1.5:重复步骤1.3、步骤1.4,直到点云数据中所有点均被标记;
步骤1.6:经过分割后的点云数据集合分别为F1,F2...Fm,将F1,F2...Fm进行高斯映射后的数据集分别为G(F1),G(F2)...G(Fm),根据步骤1.1中点p的法向量通过下式获得点p在高斯球上的映射位置:
将球坐标映射到直角坐标,其转换公式为:
点云数据的法向量进行高斯映射后,具有相同法向量的点会映射到高斯球上同一位置,根据高斯球的性质对平面进行识别:
首先,利用下式计算G(Fi)的中心
其中,fi为点云数据集合Fi中的任意一点,N为该点云数据集合Fi点的个数;
其次,利用下式计算出每一点云数据集合的法向量的方差var(G(Fi)):
如果方差var(G(Fi))小于阈值ε,判断点云数据集合Fi为平面,如果方差var(G(Fi))大于阈值ε,点云数据集合Fi不为平面;
步骤2:对步骤1提取的平面,将单个平面由结点表示,平面间的连接关系由边表示,分析结点属性以及边属性,定义平面之间的连接类型,具体按照下述步骤进行:
步骤2.1:将单个平面由结点表示,定义结点的属性
将每一个平面利用一个单独的结点表示,即每一个结点是一个平面的抽象,针对分割后的平面S1,S2,...Sn,利用公式(7)计算出平面Si的中心点的位置,利用该中心点Ci代表平面Si:
其中,N为每个平面中点的个数,(xj,yj,zj)为平面Si中任意一点的坐标值;
①面积Areai
计算平面Si的面积Areai,由于平面的厚度为0,所以利用公式(8)计算平面的面积:
Areai=lengthi×widthi (8)
其中,lengthi是平面Si的长度,widthi是平面的宽度;
②平均法向量AvgNorm
利用公式(9)计算每个平面Si的平均法向量
其中,(nxi,nyi,nzi)是平面Si中任意一点的法向量,N为平面Si中点的个数;
如果某一个平面Sj的平均法向量近似为(0,0,1.0),即和接近为0,接近为1,则Sj为与水平面垂直的平面;
③高度差DeltZi
高度差DeltZi是平面Si中z值最大值Zimax与z值最小值Zimin的差值:
DeltZi=Zimax-Zimin (10)
步骤2.2:平面间的连接关系由边表示,分析边的属性
①连接类型
根据平面与水平面的关系,将平面分为:与水平面平行的平面称为水平面,与水平面垂直的平面称为垂直面,既不与水平面平行又不与水平面垂直的平面称为倾斜面,根据平面的不同类型,将结点连接类型分为七类:
a.一个水平面结点与一个垂直面结点相连接且相互垂直,连接类型Typeij=1;
b.一个水平面结点与一个倾斜的结点相连接,两个结点不垂直,连接类型Typeij=2;
c.两个垂直面结点相连接,且两个结点相互垂直,连接类型Typeij=3;
d.两个倾斜的结点相连接,同时两个结点不垂直,连接类型Typeij=4;
e.两个垂直面结点相连接,且两个结点相互不垂直,连接类型Typeij=5;
f.一个倾斜的结点与一个垂直面结点相连接,两个结点不垂直,连接类型Typeij=6;
g.两个倾斜的结点相连接,同时两个结点相互垂直,连接类型Typeij=7;
②长度Distij
利用公式(11)计算平面Si的中心点与平面Sj的中心点之间的距离即长度Distij:
③相连两平面之间的夹角θij
AvgNormi和AvgNormj分别为平面Si和Sj的平均法向量,利用公式(12)计算两个平面之间的夹角θij:
步骤3、利用步骤2中对结点属性及边属性的定义,对目标物体的结构进行分析,并记录目标物体的连接编码,具体按照下述步骤进行:
步骤3.1:确定构成目标物体的平面之间的连接类型
为了提高程序的运行效率,在判定平面间是否相连时,不需要遍历平面中的每一个点,只需要遍历每个平面的边界点,寻找边界点的邻近点,判断邻近点中是否包含有其它平面的点;
提取每个平面的边界点:
pi是平面S1中的一点,利用k-d树找出pi的k个邻近点,找出与pi距离小于r的点的集合Pr-distace={{pi,pj,dij}|dij≤r},i≠j,c为Pr-distace的中心点,m为Pr-distace中距离pi最大的点,如果pi是边界点,则|pic|/|pim|较大,其中,|pic|为点pi和点c的距离;
对于每一个边界点pm,利用k-d树寻找pm的k个邻近点,如果邻近点中存在某点pk∈Sj,其距离|pmpk|<τ&&pm∈Si,则标记平面Si和Sj相连接,根据结点的平面类别,判断结点间的连接类型,断定Typeij的值;
步骤3.2:记录目标物体的连接编码
步骤3.2.1:将构成目标物体的所有平面按照高度z进行排序,将z值最高的平面Si当作根结点;
步骤3.2.2:对于根结点Si,将与其连接的结点S1,S2,…Si-1,Si+1,…Sn按高度从高到低进行连接,作为Si的子结点;
步骤3.2.3:对于根结点Si的每个子结点Sj∈S1,S2,…Si-1,Si+1,…Sn,将与结点Sj相连接的结点从高到低排列连接,作为结点Sj的子结点;
步骤3.2.4:将Sj的子结点作为子树的父结点,将与之相连接的结点从高到低排列连接;
步骤3.2.5:利用广度优先遍历编码树,记录结点之间连接边的类型,获得目标物体的连接编码;
步骤4、根据步骤3对目标物体结构的分析,从点云场景中选取一个符合目标物体特征的平面作为种子点,利用区域增长的方法,依次迭代找到符合特征的平面进行组合,记录“组合平面”的连接编码,通过与目标物体的编码进行比对完成物体的识别。
2.根据权利要求1所述的一种基于结构分析的点云场景物体识别方法,其特征在于,所述阈值ε的范围为0.1-0.2。
3.根据权利要求1所述的一种基于结构分析的点云场景物体识别方法,其特征在于,所述步骤3.2.5中记录结点之间连接边的类型时,已经记录过的连接边不再重复记录。
4.根据权利要求1所述的一种基于结构分析的点云场景物体识别方法,其特征在于,所述步骤4具体为:
步骤4.1:遍历场景中的每个结点,选择一个符合条件的结点作为种子点Si;
步骤4.2:找出与种子点Si相连接并且符合条件的结点Sj进行组合,并将Sj作为种子点,重新对场景中的结点进行遍历,寻找其他符合条件并且未被遍历的结点,循环往复,直至找不到合适的结点为止;
步骤4.3:根据连接类型分类,分析结点间的连接类型构造“组合平面”的连接编码,通过比对连接编码完成对象的识别,如果编码正确,则目标对象识别成功;否则,重新执行步骤4.1。
5.根据权利要求4所述的一种基于结构分析的点云场景物体识别方法,其特征在于,所述步骤4.1及步骤4.2中的符合条件的结点均为:①平面的面积Areai小于一定阈值或②平面高度差DeltZi小于一定的阈值或③两个平面间的夹角θij是否符合目标物体的特征或④最高平面的类型符合目标物体的特征中的任意一个条件。
6.根据权利要求5所述的一种基于结构分析的点云场景物体识别方法,其特征在于,所述平面的类型为水平面或垂直面或倾斜面中的任意一种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610055596.4A CN105740798B (zh) | 2016-01-27 | 2016-01-27 | 一种基于结构分析的点云场景物体识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610055596.4A CN105740798B (zh) | 2016-01-27 | 2016-01-27 | 一种基于结构分析的点云场景物体识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105740798A CN105740798A (zh) | 2016-07-06 |
CN105740798B true CN105740798B (zh) | 2019-07-23 |
Family
ID=56246685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610055596.4A Active CN105740798B (zh) | 2016-01-27 | 2016-01-27 | 一种基于结构分析的点云场景物体识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105740798B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107146280B (zh) * | 2017-05-09 | 2020-11-17 | 西安理工大学 | 一种基于切分的点云建筑物重建方法 |
CN107330903B (zh) * | 2017-06-29 | 2020-01-14 | 西安理工大学 | 一种人体点云模型的骨架提取方法 |
CN107330901B (zh) * | 2017-06-29 | 2020-03-27 | 西安理工大学 | 一种基于骨架的物体构件分解方法 |
CN107369161B (zh) * | 2017-07-19 | 2020-09-11 | 无锡信捷电气股份有限公司 | 一种基于改进欧式聚类的散乱工件点云分割方法 |
CN107831484B (zh) * | 2017-09-29 | 2021-11-19 | 深圳市行者机器人技术有限公司 | 一种基于激光雷达的阶梯数据获取方法及装置 |
CN108629315B (zh) * | 2018-05-07 | 2020-09-25 | 河海大学 | 一种针对三维点云的多平面识别方法 |
CN109102535B (zh) * | 2018-07-27 | 2021-11-16 | 西安理工大学 | 一种基于构件提取的室内场景重建方法 |
CN109410238B (zh) * | 2018-09-20 | 2021-10-26 | 中国科学院合肥物质科学研究院 | 一种基于PointNet++网络的枸杞识别计数方法 |
CN109614857B (zh) * | 2018-10-31 | 2020-09-29 | 百度在线网络技术(北京)有限公司 | 基于点云的杆状物识别方法、装置、设备及存储介质 |
CN109889840B (zh) * | 2019-03-20 | 2022-11-22 | 北京大学深圳研究生院 | 点云编码和解码的方法、编码设备和解码设备 |
CN109978800B (zh) * | 2019-04-23 | 2021-01-19 | 武汉惟景三维科技有限公司 | 一种基于阈值的点云阴影数据去除方法 |
CN110443836B (zh) * | 2019-06-24 | 2022-03-18 | 中国人民解放军战略支援部队信息工程大学 | 一种基于平面特征的点云数据自动配准方法及装置 |
CN111126211B (zh) * | 2019-12-13 | 2023-08-29 | 北京四维图新科技股份有限公司 | 标牌识别方法和装置、电子设备 |
CN111259958B (zh) * | 2020-01-15 | 2024-04-16 | 北京市商汤科技开发有限公司 | 物体识别方法及装置、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101877128A (zh) * | 2009-12-23 | 2010-11-03 | 中国科学院自动化研究所 | 一种三维场景中不同物体的分割方法 |
CN104298971A (zh) * | 2014-09-28 | 2015-01-21 | 北京理工大学 | 一种3d点云数据中的目标识别方法 |
CN104392486A (zh) * | 2014-11-25 | 2015-03-04 | 西安理工大学 | 一种点云场景重建方法 |
CN104504709A (zh) * | 2014-12-28 | 2015-04-08 | 大连理工大学 | 一种基于特征球的室外场景三维点云数据的分类方法 |
CN104700398A (zh) * | 2014-12-31 | 2015-06-10 | 西安理工大学 | 一种点云场景物体提取方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9547901B2 (en) * | 2013-11-05 | 2017-01-17 | Samsung Electronics Co., Ltd. | Method and apparatus for detecting point of interest (POI) in three-dimensional (3D) point clouds |
-
2016
- 2016-01-27 CN CN201610055596.4A patent/CN105740798B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101877128A (zh) * | 2009-12-23 | 2010-11-03 | 中国科学院自动化研究所 | 一种三维场景中不同物体的分割方法 |
CN104298971A (zh) * | 2014-09-28 | 2015-01-21 | 北京理工大学 | 一种3d点云数据中的目标识别方法 |
CN104392486A (zh) * | 2014-11-25 | 2015-03-04 | 西安理工大学 | 一种点云场景重建方法 |
CN104504709A (zh) * | 2014-12-28 | 2015-04-08 | 大连理工大学 | 一种基于特征球的室外场景三维点云数据的分类方法 |
CN104700398A (zh) * | 2014-12-31 | 2015-06-10 | 西安理工大学 | 一种点云场景物体提取方法 |
Non-Patent Citations (3)
Title |
---|
AUTOMATIC SEGMENTATION OF URBAN POINT CLOUDS BASED ON THE GAUSSIAN MAP;Yinghui WANG等;《The Photogrammetric Record》;20131209;第28卷(第144期);第342-361页 |
大场景内建筑物点云提取及平面分割算法;卢维欣等;《中国激光》;20150910(第09期);第344-350页 |
机载LiDAR点云数据平面特征提取;艾效夷等;《辽宁工程技术大学学报(自然科学版)》;20150215(第02期);第212-216页 |
Also Published As
Publication number | Publication date |
---|---|
CN105740798A (zh) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105740798B (zh) | 一种基于结构分析的点云场景物体识别方法 | |
Yang et al. | An individual tree segmentation method based on watershed algorithm and three-dimensional spatial distribution analysis from airborne LiDAR point clouds | |
Yang et al. | A shape-based segmentation method for mobile laser scanning point clouds | |
CN107093205B (zh) | 一种基于无人机图像的三维空间建筑物窗户检测重建方法 | |
CN105389569B (zh) | 一种人体姿态估计方法 | |
CN105469388B (zh) | 基于降维的建筑物点云配准方法 | |
CN102938066B (zh) | 一种基于多元数据重建建筑物外轮廓多边形的方法 | |
Xiong et al. | 3-D scene analysis via sequenced predictions over points and regions | |
CN109872397A (zh) | 一种基于多目立体视觉的飞机零件的三维重建方法 | |
CN105787933B (zh) | 基于多视角点云配准的岸线三维重建装置及方法 | |
Li et al. | A three-step approach for TLS point cloud classification | |
CN106485740B (zh) | 一种结合稳定点和特征点的多时相sar图像配准方法 | |
CN110490912A (zh) | 基于局部灰度顺序模型描述符的3d-rgb点云配准方法 | |
CN110992341A (zh) | 一种基于分割的机载LiDAR点云建筑物提取方法 | |
CN106023298A (zh) | 基于局部泊松曲面重建的点云刚性配准方法 | |
CN103136525B (zh) | 一种利用广义Hough变换的异型扩展目标高精度定位方法 | |
CN104700398A (zh) | 一种点云场景物体提取方法 | |
CN110222642A (zh) | 一种基于全局图聚类的平面建筑构件点云轮廓提取方法 | |
Wu et al. | Automatic 3D reconstruction of electrical substation scene from LiDAR point cloud | |
CN110047036B (zh) | 基于极坐标格网的地面激光扫描数据建筑物立面提取方法 | |
CN112084871B (zh) | 一种基于弱监督学习的高分遥感目标边界提取方法 | |
CN108182705A (zh) | 一种基于机器视觉的三维坐标定位方法 | |
CN103854290A (zh) | 一种结合骨架特征点和分布场描述子的扩展目标跟踪方法 | |
Zheng et al. | Pole-like object extraction from mobile lidar data | |
CN110348478B (zh) | 一种基于形状分类与组合的室外点云场景中树木提取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230719 Address after: 4126, Floor 4, Building 3, No. 50 Xiuxi Road, Binhu District, Wuxi City, Jiangsu Province, 214000 Patentee after: Wuxi Yishun Information Technology Co.,Ltd. Address before: 710048 No. 5 Jinhua South Road, Shaanxi, Xi'an Patentee before: XI'AN University OF TECHNOLOGY |
|
TR01 | Transfer of patent right |