主要内容

特征提取

从点云段中提取基于特征值的特征

描述

实例

特征=提取特征(云彩,标签)利用标签从点云中提取基于特征值的特征,标签,对应于被分割的点云。

基于特征值的特征描述了点云段的几何特征。这些功能可用于同步定位和映射(SLAM)应用程序中,用于目标映射中的环路闭合检测和定位。

特征=提取特征(节蛋白)从点云线段返回基于特征值的要素节蛋白。使用此语法可帮助在点云扫描中选择特定的线段,以进行局部特征提取。

[特征,分节索]=提取特征(___)另外,使用以前语法中的参数的任何组合返回从输入点云提取的段。使用此语法可促进段的可视化。

[___]=提取特征(___,NormalizeEigenvalues=tf)在计算特征之前规范化特征值,具体如下真正的错误的.集tf真正的当下一步是使用分类器将语义标签分配给三维点时。设置tf错误的当下一步是寻找匹配的特征。默认值为错误的

例子

全部折叠

加载一个有组织的激光雷达点云。

ld=负载(“drivingLidarPoints.mat”);ptCloud=ld.ptCloud;

分段并删除地平面。

groundPtsIdx=分段groundfromLidardata(ptCloud,“ElevationAngleDelta”,15);ptCloud=select(ptCloud,~groundPtsIdx,“输出大小”,“全部”);

将剩余的点数聚在一起,每组最少50点。

distThreshold = 0.5;%以米为单位minPoints = 50;[标签,numClusters] = segmentLidarData (ptCloud distThreshold,“NumClusterPoints”, minPoints);

计算eigenvalue-based特性。

特点= extractEigenFeatures (ptCloud、标签“NormalizeEigenvalues”,对)
特点=17×1物体16x1特征特征数组:特征质心⋮

创建一个Velodyne PCAP文件读取器。

veloReader=velodyneFileReader(“lidarData_ConstructionRoad.pcap”,“HDL32E”);

从文件中读取第一次和第四次扫描。

ptCloud1=readFrame(veloReader,1);ptCloud2=readFrame(veloReader,4);

从扫描中卸下接地层。

最大距离=1;%以米为单位referenceVector=[01];[~,~,selectIdx]=pcfitplane(ptCloud1,maxDistance,referenceVector);ptCloud1=select(ptCloud1,selectIdx,“输出大小”,“全部”); [~,~,selectIdx]=pcfitplane(ptCloud2,maxDistance,referenceVector);ptCloud2=select(ptCloud2,selectIdx,“输出大小”,“全部”);

对点云进行聚类,每个聚类至少有10个点。

minDistance = 2;%以米为单位minPoints = 10;labels1 = pcsegdist (ptCloud1 minDistance,“NumClusterPoints”, minPoints);labels2 = pcsegdist (ptCloud2 minDistance,“NumClusterPoints”, minPoints);

从每个点云中提取特征值特征和相应的线段。

[eigFeatures1,segments1]=提取特征(ptCloud1,labels1);[eigFeatures2,segments2]=提取特征(ptCloud2,labels2);

创建从每个点云提取的特征矩阵和质心,以进行匹配。

features1 = vertcat (eigFeatures1.Feature);features2 = vertcat (eigFeatures2.Feature);centroids1 = vertcat (eigFeatures1.Centroid);centroids2 = vertcat (eigFeatures2.Centroid);

找到假定的特征匹配。

indexPairs = pcmatchfeatures (features1 features2,...pointCloud (centroids1) pointCloud (centroids2));

获取匹配的片段和特征,以便可视化。

matchedSegments1=段s1(indexPairs(:,1));matchedSegments2=segments2(indexPairs(:,2));matchedFeatures1=EIGFeature1(索引(:,1));matchedFeatures2=eigFeatures2(索引(:,2));

想象比赛。

图pcshowMatchedFeatures (matchedSegments1 matchedSegments2、matchedFeatures1 matchedFeatures2)标题(“匹配段”)

图中包含一个轴对象。标题匹配线段的轴对象包含5个类型为“散布”、“直线”的对象。

输入参数

全部折叠

点云,指定为pointCloud对象。

群集标签,指定为M元素向量的数值为无组织的点云或M——- - - - - -N组织点云的数值矩阵。标签对应于分割输入点云的结果。点云中的每个点都有一个簇标签,由中的相应元素指定标签

你可以使用pcsegdist或者是利达达达函数返回标签。

点云段,指定为的向量pointCloud对象。输入中的每个点云段必须至少有两个点才能进行特征提取。对于只有一个点的输入段,不返回任何特征或段。

输出参数

全部折叠

基于特征值的特征,作为特征向量返回特征对象。从标记点云输入中提取特征时,此向量中的每个元素都包含从相应标记点簇中提取的特征。从分段输入中提取特征时,此向量中的每个元素都包含从分段向量中的相应元素中提取的特征。

从点云中提取的片段,指定为的向量pointCloud对象。段向量的长度对应于非零的、唯一的标号的数目。

参考文献

[1] Weinmann,M.,B.Jutzi和C.Mallet。“语义3D场景解释:将最佳邻域大小选择与相关特征相结合的框架。”ISPRS摄影测量、遥感和空间信息科学年鉴II-3(2014年8月7日):181-88。https://doi.org/10.5194/isprsannals - ii - 3 - 181 - 2014。

介绍了R2021a