主要内容

pcregistercorr

使用相位相关注册两个点云

描述

例子

tform= pcregistercorr (移动固定gridSizegridStep计算登记移动点云的刚性变换移动,到定点云固定,采用基于图像的相位相关算法。

函数通过首先将两个点云转换为二维占用网格来执行配准X-Y圆心在原点(0,0,0)的平面。属性确定每个网格单元的占用情况Z-网格内点的坐标值。

tformrmse= pcregistercorr(___另外返回对齐点云之间的欧几里得距离的均方根误差。

tformrmse= pcregistercorr(___另外返回两个占用网格之间相位差的峰值相关值。

___= pcregistercorr(___名称=值使用一个或多个名称-值参数以及以前语法中的参数组合指定选项。例如,窗口= false设置窗口参数的名称-值禁止使用窗口。

例子

全部折叠

从Velodyne包捕获(PCAP)文件读取数据到工作区。

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

从激光雷达数据帧中读取固定点云和移动点云。

frameNumber = 1;skipFrame = 5;fixed = readFrame(veloReader,frameNumber);移动= readFrame(veloReader,frameNumber + skipFrame);

找到移动点云和固定点云的地平面。设置最大距离,单位为米。

maxDistance = 0.4;referenceVector = [0 0 1];groundMoving = pcfitplane(移动,maxDistance,referenceVector);groundFixed = pcfitplane(fixed,maxDistance,referenceVector);

变换点云,使它们的地平面平行于X-Y飞机。

tformMoving = normalRotation(groundMoving,referenceVector);tformFixed = normalRotation(groundFixed,referenceVector);movingCorrected = pctransform(移动,tformMoving);fixedCorrected = pctransform(fixed,tformFixed);

将移动的点云注册到固定的点云上。占用网格大小设置为100 × 100米,每个网格单元大小设置为0.5 × 0.5米。

gridSize = 100;gridStep = 0.5;tform = pcregistercorr(movingCorrected,fixedCorrected,gridSize,gridStep);

利用估计的刚性变换对运动点云进行变换。

combinedTform = rigidtform3d(tformFixed。A * tformMoving。A);movingReg = pctransform(移动,组合tform);

可视化注册。

图subplot(121) pcshowpair(移动,固定)标题(之前注册的pcshowpair(movingReg,fixed)注册后的)视图(2)

输入参数

全部折叠

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

定点云,指定为apointCloud对象。

正方形占用网格的大小,在世界单位中指定为标量值。占用网格的宽度和高度都等于这个值。占用网格以原点(0,0,0)为中心,占用网格的空间范围为[-]gridSize/ 2,gridSize/ 2)。

每个网格单元的大小,以世界单位的标量值指定。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

例子:Zlimit = [0 3)设置Z-轴下限为0的上限3.

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

Z-axis限制来计算网格单元的占用情况,指定为形式为[的向量zminzmax),zmin而且zmax都是数值标量。函数用a缩放点Z-轴值fromzminzmax到[0,1]范围内的概率。值小于zmin被分配的占用值为0.值大于zmax被分配的占用值为1

使用窗口来抑制频率域中的频谱泄漏效应是合乎逻辑的,指定为数值或逻辑0)或1真正的).当你设置窗口真正的,该函数使用Blackman窗口来增加配准结果的稳定性。如果将在占用网格中对齐的共同特征沿边缘定向,则设置窗口可以提供优越的注册结果。

输出参数

全部折叠

刚性变换,返回为arigidtform3d对象。的rigidtform3d对象描述了将移动点云注册到固定点云的刚性三维转换。

均方根误差,返回为对齐点云之间的欧氏距离。一个低rmseValue表示更准确的注册。

两个占用网格之间相位差的峰值相关值,作为标量返回。小于的峰值0.03表示注册结果较差。

提示

  • 相位相关方法最好用于注册点云时,转换可以描述的翻译在X-Y平面和一个旋转Z设在。例如,一辆装有水平安装激光雷达的地面车辆在平面上移动。

  • 相位相关算法期望运动仅沿X-Y平面,如地平面如果运动不完全在X-Y飞机,你可以使用normalRotation函数变换点云。例如,在车辆行驶时,你可以使用normalRotation函数。

  • 增加占用网格的大小会增加该函数的计算需求。控件控制占用网格的大小gridSize而且gridStep参数。

  • 如果您获得较差的注册结果和相关值小于0.03,尝试设置窗口参数

参考文献

Dimitrievski, Martin, David Van Hamme, Peter Veelaert和Wilfried Philips。“用于自动驾驶汽车里程测量的占用地图的鲁棒匹配。”在第11届计算机视觉、成像与计算机图形学理论与应用联合会议论文集, 626 - 633。意大利罗马:SCITEPRESS -科学技术出版物,2016。

Reddy, b.s.和B.N. Chatterji。一种基于fft的平移、旋转和尺度不变图像配准技术。IEEE图像处理汇刊5,不。8(1996年8月):1266-71。https://doi.org/10.1109/83.506761。

版本历史

R2020b中介绍

全部展开