主要内容

pcregistericp

采用ICP算法对两个点云进行配准

描述

例子

tform= pcregistericp (移动固定返回一个刚性转换,该转换将一个移动点云注册为一个固定点云。

配准算法基于“迭代最接近点”(ICP)算法。这个迭代过程的最佳性能需要调整数据的属性。考虑使用下采样点云pcdownsample使用前pcregistericp提高登记的准确性和效率。

点云法线是配准算法所要求的“pointToPlane”指标。因此,如果输入点云的正常的属性为空,则函数将其填充。当函数填充正常的属性,它使用6个点来拟合本地平面。6分并非在所有情况下都适用。如在“pointToPlane”度量失败时,考虑调用pcnormals函数,该函数允许您选择要使用的点数。

tformmovingReg= pcregistericp(移动固定另外,返回与固定点云对齐的转换后的点云。

___rmse= pcregistericp(移动固定额外返回的欧几里得距离的均方根误差的内线对齐点之间,使用任何前面的语法。

___= pcregistericp(移动固定名称,值使用一个或多个指定的其他选项名称,值对参数。

例子

全部折叠

加载点云数据。

ptCloud = pcread(“teapot.ply”);pcshow (ptCloud);标题(“茶壶”);

图中包含一个轴对象。标题为Teapot的axes对象包含一个类型为scatter的对象。

创建一个旋转30度的变换对象z-轴和平移[5,5,10]。

A = [cos(/6) sin(/6) 0 0;...-sin(/6) cos(/6) 0 0...0 0 10 0;...5 5 10 1];tform1 = affine3d(A);

变换点云。

ptcloudtform = pctransform(ptCloud,tform1);pcshow (ptCloudTformed);标题(把茶壶的);

图中包含一个轴对象。标题为Transformed Teapot的axes对象包含一个类型为scatter的对象。

应用刚性配准。

tform = pcregistericp(ptCloudTformed,ptCloud,“推断”,真正的);

将结果与真实变换进行比较。

disp (tform1.T);
0.8660 0.5000 00 -0.5000 0.8660 0000 0 1.0000 0 5.0000 10.0000 1.0000
Tform2 =反转(tform);disp (tform2.T);
0.8660 0.5000 0.0000 -0.5000 0.8660 0.0000 0.000 -0.0000 1.0000 0 5.0000 5.0000 10.0000 1.0000

输入参数

全部折叠

移动点云,指定为apointCloud对象。

定点云,指定为apointCloud对象。

名称-值参数

的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“指标”“点到点”将ICP算法的度量设置为“点到点”特征向量。

最小化度量,指定为逗号分隔的对,由'度规’然后“点到点”“pointToPlane”特征向量。利用迭代最近邻点(ICP)算法估计了运动点云与静止点云之间的刚性变换。ICP算法根据给定的度量使两个点云之间的距离最小化。

设置”度规“pointToPlane”可以减少要处理的迭代次数。然而,这个指标在每次迭代中都需要额外的算法步骤。的“pointToPlane”度量提高了平面表面的配准。

下样方法选择
下采样点云使用pcdownsample函数。使用“随机”“gridAverage”的输入pcdownsample函数根据度规下面的表。

度规 移动PointCloud下样方法 定点云下采样法
“点到点” “随机” “随机”
“gridAverage” “gridAverage”
“pointToPlane” “gridAverage” “gridAverage”
“随机” “nonuniformGridSample”

外推,指定为逗号分隔的对,由'推断和布尔值真正的.当您将此属性设置为真正的,该函数添加了一个外推步骤,该步骤跟踪注册状态空间中的路径,在[2].将此属性设置为真正的可以减少迭代收敛的次数。

内嵌的百分比,指定为逗号分隔的对,由'InlierRatio'和一个标量值。使用此值可将匹配对的百分比设置为内线。如果一对匹配点的欧几里得距离落在匹配距离的百分比集内,则认为它是一个inlier。缺省情况下,使用所有匹配的配对。

最大迭代次数,指定为逗号分隔的对,由'MaxIterations'和一个正整数。该值指定ICP停止前的最大迭代次数。

连续ICP迭代之间的公差,指定为逗号分隔的对,由'宽容'和一个2元向量。2元向量,[TdiffRdiff],表示连续ICP迭代估计的平移和旋转绝对差的容差。Tdiff测量两个平移向量之间的欧氏距离。Rdiff以度为单位测量角差。当最近三个连续迭代中估计的刚性变换之间的平均差值低于指定的公差值时,算法停止。

初始刚性变换,指定为逗号分隔的对,由'InitialTransform和arigid3d对象。当你提供一个外部粗略估计时,初始刚性变换是有用的。

rigid3d对象包含将移动点云的中心移动到固定点云的中心的转换。

显示进度信息,指定为逗号分隔的对,由'详细的和一个逻辑标量。集详细的真正的显示进度信息。

输出参数

全部折叠

刚性变换,返回为arigid3d对象。刚性变换将一个移动的点云注册为一个固定的点云。的rigid3d对象描述刚性三维变换。迭代最近邻点(ICP)算法估计运动点云与静止点云之间的刚性变换。

转换后的点云,返回为apointCloud对象。变换后的点云与不动点云对齐。

均方根误差,返回为一个正数值,表示较近的对齐点之间的欧氏距离。

算法

全部折叠

提示

兼容性的考虑

全部展开

R2020a的行为发生了变化

参考文献

[1]陈,Y., G. Medioni。多距离图像配准的对象建模图像视觉计算.Butterworth-Heinemann。第10卷,第3期,1992年4月,第145-155页。

[2]贝斯,保罗·J., n·d·麦凯。3-D形状的注册方法模式分析与机器智能汇刊.加州洛斯阿拉米托斯:IEEE计算机学会。第14卷,1992年第2期,第239-256页。

在R2018a中引入