[发明专利]一种基于结构分析的点云场景物体识别方法有效
申请号: | 201610055596.4 | 申请日: | 2016-01-27 |
公开(公告)号: | CN105740798B | 公开(公告)日: | 2019-07-23 |
发明(设计)人: | 郝雯;王映辉;宁小娟;石争浩;赵明华 | 申请(专利权)人: | 西安理工大学 |
主分类号: | G06K9/00 | 分类号: | G06K9/00 |
代理公司: | 西安弘理专利事务所 61214 | 代理人: | 李娜 |
地址: | 710048*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于结构分析的点云场景物体识别方法,步骤1:利用区域增长的方法以及基于距离的聚类算法对点云场景进行分割,并基于高斯球的性质提取点云场景中的平面;步骤2:对提取的平面,将单个平面由结点表示,平面间的连接关系由边表示,分析结点属性以及边属性,定义平面之间的连接类型;步骤3、对目标物体的结构进行分析,并记录目标物体的连接编码;步骤4、平面组合及目标识别,通过与目标物体的编码进行比对完成物体的识别。本发明一种基于结构分析的点云场景物体识别方法,解决了现有识别技术计算量大及点云数据不完整,且易受噪声影响,不适合大场景点云数据中物体的识别的缺陷。 | ||
搜索关键词: | 一种 基于 结构 分析 场景 物体 识别 方法 | ||
【主权项】:
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:
③相连两平面之间的夹角θijAvgNormi和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对目标物体结构的分析,从点云场景中选取一个符合目标物体特征的平面作为种子点,利用区域增长的方法,依次迭代找到符合特征的平面进行组合,记录“组合平面”的连接编码,通过与目标物体的编码进行比对完成物体的识别。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安理工大学,未经西安理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610055596.4/,转载请声明来源钻瓜专利网。