一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于点云数据的建模方法

2022-07-22 22:14:37 来源:中国专利 TAG:


1.本发明涉及扫描建模方法,具体地涉及一种基于点云数据的建模方法。


背景技术:

2.随着智能移动设备(如送餐机器人等)的发展,越来越多的智能移动设备已经较多 的涉及室内使用的场景,且室内环境下对智能移动设备的移动路径准确度需求也较高, 因此需要能够获取精确的室内结构。
3.近年来,激光雷达技术因其精度高、成本低、便携性好、应用范围广等优点得到了 迅速发展,且随着室内导航技术的日益成熟,从点云中数据获取精确的建筑物内部结构 对实现精确的室内导航具有重要意义。
4.然而,从无序、高密度的点云数据中提取室内结构难度大、耗时长,且由于算法和 扫描环境产生的噪声,大大增加了数据处理的复杂性,且现有技术中对点云数据的提取, 或是数据处理量大效率低下,或是会造成数据的丢失,难以及时且准确地实现激光雷达 扫描数据的提取以及室内结构的复原。
5.有鉴于此,需要提供一种基于点云数据的建模方法。


技术实现要素:

6.本发明所要解决的技术问题是提供一种基于点云数据的建模方法,其能够提高三维 建模复原扫描物结构的效率以及准确度。
7.为了解决上述技术问题,本发明提供了一种基于点云数据的建模方法,包括如下步 骤:a)对待建模物体进行激光探测,以得到该待建模物体的激光雷达扫描数据;
8.b)利用pca算法分离所述激光雷达扫描数据,以得到目标数据;
9.c)基于网格半径滤波器对所述目标数据进行滤波,以得到滤波数据;
10.d)利用卷积模型去除所述滤波数据中的毛刺(即噪点:不规则的离群点),并利用 骨架提取算法提取所述滤波数据中图像的单像素骨架;
11.e)计算所述单像素骨架上各像素点与相邻像素点之间的斜率,以基于所述斜率将 所述单像素骨架分段,得到不同斜率的单像素骨架段,计算斜率相同的两段所述单像素 骨架段上两个临近端点之间的间距值,并将该间距值与设定的阈值对比,以在所述间距 值小于所述阈值时将两段所述单像素骨架段连接合并为同一段单像素骨架段;计算斜率 相垂直的两段所述单像素骨架段上两个临近端点之间的间距值,并将该间距值与设定的 阈值对比,以在所述间距值小于所述阈值时将两段所述单像素骨架段延长连接;
12.f)基于所述优化单像素骨架复原所述待建模物体的三维结构。
13.具体地,步骤a)中所述激光雷达扫描数据为点云数据。
14.进一步具体地,步骤b)中所述pca算法分离所述激光雷达扫描数据的步骤包括:
15.b1)建立所述激光雷达扫描数据的拟合平面;
16.b2)将该拟合平面上部的所述激光雷达扫描数据以及该拟合平面下部的所述激光
图16-b-1为图16-a-1经骨架提取算法提取后的单像素骨架图,图16-b-2为图16-b-1中框 选区域处的放大图,图16-c-1为单像素骨架图中单像素骨架所对应的二维点云数据图, 图16-c-2为图16-c-1中框选区域的放大图;
54.图17是本发明的基于点云数据的建模方法中邻点的斜率取值示意图;
55.图18是本发明的基于点云数据的建模方法中像素点斜率赋值过程示意图;
56.图19是本发明的基于点云数据的建模方法中像素点斜率更新原理示意图;
57.图20是本发明的基于点云数据的建模方法中基于斜率的寻线过程示意图;
58.图21是本发明的基于点云数据的建模方法中单像素骨架段更新原理示意图;
59.图22是本发明的基于点云数据的建模方法中斜率为1的单像素骨架段的端点更新 原理示意图;
60.图23是本发明的基于点云数据的建模方法中斜率为0的单像素骨架段的端点更新 原理示意图;
61.图24是本发明的基于点云数据的建模方法中斜率为2的单像素骨架段的端点更新 原理示意图;
62.图25是本发明的基于点云数据的建模方法中单像素骨架复原直线的结果示意图, 其中,图25-a为待处理数据,图25-a-1和图25-a-2为图25-a中的两处放大图,图25-b 为图25-a经端点更新后的数据图,图25-b-1和图25-b-2为图25-b中的两处放大图;
63.图26是本发明的基于点云数据的建模方法中提取的目标数据与原始的激光雷达扫 描数据的对比图;
64.图27是本发明的基于点云数据的建模方法中基于图4中的数据复原的墙体;
65.图28是本发明的基于点云数据的建模方法中场景1的示意图;
66.图29是本发明的基于点云数据的建模方法中场景1的结构示意图以及扫描路线示 意图;
67.图30是本发明的基于点云数据的建模方法中场景1的扫描数据;
68.图31是本发明的基于点云数据的建模方法中场景1的墙体结构复原结果图;
69.图32是本发明的基于点云数据的建模方法中场景2的扫描数据;
70.图33是本发明的基于点云数据的建模方法中场景2的墙体结构复原结果图;
71.图34是本发明的基于点云数据的建模方法中场景2的结构示意图以及扫描路线示 意图;
72.图35是本发明的基于点云数据的建模方法的场景2中第一区域内支撑柱与房门的 位置关系示意图;
73.图36是本发明的基于点云数据的建模方法场景2第一区域内的墙体结构复原结果 中撑柱与房门的位置关系示意图;
74.图37是本发明的基于点云数据的建模方法的场景2中第二区域内支撑柱与房门的 位置关系示意图;
75.图38是本发明的基于点云数据的建模方法场景2第二区域内的墙体结构复原结果 中撑柱与房门的位置关系示意图。
具体实施方式
76.下面结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述 的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
77.如图1所示,在本发明所提供的基于点云数据的建模方法的一种实施例中,该方法 包括如下步骤:
78.a)对待建模物体进行激光探测,以得到该待建模物体的激光雷达扫描数据;
79.b)利用pca算法(principal component analysis,主成分分析算法)分离所述激光 雷达扫描数据,以得到目标数据;
80.c)基于网格半径滤波器对所述目标数据进行滤波,以得到滤波数据;
81.d)利用卷积模型去除所述滤波数据中的毛刺,并利用骨架提取算法提取所述滤波 数据中图像的单像素骨架;
82.e)计算所述单像素骨架上各像素点与相邻像素点之间的斜率,以基于所述斜率将 所述单像素骨架分段,得到不同斜率的单像素骨架段,计算斜率相同的两段所述单像素 骨架段上两个临近端点之间的间距值,并将该间距值与设定的阈值对比,以在所述间距 值小于所述阈值时将两段所述单像素骨架段连接合并为同一段单像素骨架段;计算斜率 相垂直的两段所述单像素骨架段上两个临近端点之间的间距值,并将该间距值与设定的 阈值对比,以在所述间距值小于所述阈值时将两段所述单像素骨架段延长连接;
83.f)基于所述优化单像素骨架复原所述待建模物体的三维结构。
84.通过上述技术方案,本发明的基于pca算法的激光扫描点云数据建模方法利用激 光扫描待建模复原的物体,精度高、成本低、便携性好,便于进行扫描作业;利用pca 算法能够将目标数据与非目标数据进行分离,将分离出的目标数据利用半径滤波器并进 一步结合网格半径滤波器进行滤波,能够实现数据的规则化以及简化,从而能够有效地 减少数据的处理难度以及数据的处理量,从而能够提高三维建模复原扫描物结构的效率; 利用卷积模型取出滤波数据中的毛刺,利用骨架提取算法提取滤波数据中图像的单像素 骨架,从而进一步计算单像素骨架上各像素点的斜率,得出不同斜率的单像素骨架段, 再通过计算相间的两段单像素骨架段上两个临近端点之间的间距值,并将其与设定的阈 值对比,能够判相间的两段单像素骨架段中间的骨架段是否为非线骨架段,并将非线骨 架段进行投影以将两段单像素骨架段连接,得到优化单像素骨架,并在该优化单像素骨 架的基础上对待建模复原的物体进行复原,能够在不缺失数据的基础上,提高三维建模 复原探测物结构的准确度。
85.具体地,以利用激光设备探测教学楼内部的结构为例,激光探测设备如图2所示, 包括激光雷达、惯性测量单元、无线传输模块和上位机,其中,激光雷达可以是16线机 械激光雷达,并可以以0.5秒的频率感知周围环境,探测周围物体的表面信息;惯性测量 单元用于测量激光雷达的姿态信息,并通过上位机的机器人操作系统将其与每一帧点云 融合,形成点云数据,处理后得到的激光雷达扫描数据(点云数据)通过无线传输模块 传输到计算机上进行数据提取及以及建模复原,具体地,在激光探测的过程中可采用 lego-loam(面向复杂情况的轻量级优化地面的雷达里程计)实现数据的配准,其能 够根据地面特征获取姿态[tz,θ
roll
,θ
pitch
],其中,tz为z方向的平移量,θ
roll
为滚转角,θ
pitch
为俯仰角,根据剩余点云特征计算姿态[t
x
,ty,θ
yaw
],其中,t
x
为x方向的平移量,。因此, 匹配误差是由于地面特征太
少造成的,或者是由于欧拉角在短时间内旋转过快造成的, 在后续的建模结果中,上述两个方面可能是造成误差的原因。
[0086]
具体地,在本发明所提供的基于点云数据的建模方法的一种实施例中,由于激光雷 达扫描数据中包括了天花板数据、墙体数据和地面数据,因此,可优选将这三种数据进 行划分,进行分块建模,如图2所示,步骤b)中pca算法分离激光雷达扫描数据的步 骤包括:
[0087]
b1)建立激光雷达扫描数据的拟合平面,具体地,记激光雷达扫描数据为si,si是 三维点云数据,计算点云的平均值μ。对于点pi∈si,计算pi和μ的偏差pj,偏差矩阵s
p
由 pj组成。然后用偏差矩阵sp计算协方差矩阵γ,协方差矩阵γ将通过奇异值分解(svd) 得到变换矩阵v=[v1,v2,v3],其中,v1和vx作为拟合平面的拟合平面向量,v3作为该 拟合平面的法向量。最后,通过矩阵运算so=si[v1,v2]将原始的三维激光雷达扫描数 据投影为二维数据,则该二维数据为拟合平面,记为plane0,具体运算程序如下:
[0088]
input:si(n
×
3points);
[0089]
output:so(n
×
2points);
[0090][0091]
2:for pi=(xi,yi,zi)∈si,i=1,2,,,n do;
[0092]
3:pj=p
i-μ;
[0093]
4:end for;
[0094]
5:pj=(xi,yi,zi)∈s
p
,j=1,2,,,n;
[0095][0096]
7:u∑v
t
=svd(γ);
[0097]
8:v=[v1,v2,v3];
[0098]
9:so=si[v1,v2]。
[0099]
其中,n
×
3points表示三维点云数据数据,n
×
2points表示二维点云数据,n表示 点云中点的数量,(xi,yi,zi)表示点i的坐标;
[0100]
b2)利用拟合平面plane0将激光雷达扫描数据si分为上下两部分,即以探测教学楼 内部的结构为例,则拟合平面plane0是将激光雷达扫描数据si分为上部数据s1和下部数 据s2,随后将上部数据s1和下部数据s2向该拟合平面plane0投影(即是降维处理)以形 成上部数据s1和下部数据s2的二维投影数据(p1和p2);
[0101]
b3)将二维投影数据p1和p2进行网格划分,并分别分析二维投影数据p1和p2在网格 中的特征,以设定阈值进行数据筛选,筛选出符合特征数据,将筛选出的特征数据由半 径滤波器(sor)进行滤波,滤波后由pca算法将特征数据进行拟合以得到天花板平面 plane1和地面平面plane2,从而以天花板平面plane1为基准,并设定合适的距离阈值, 以在激光雷达扫描数据si中筛选出天花板数据sc;以地面平面plane2为基准,并设定合 适的距离阈值,以在激光雷达扫描数据si中筛选出地面数据sg,再从激光雷达扫描数据si中分离出天花板数据sc以及地面数据sg即可得到墙体数据sw(即目标数据),具体地,步 骤b2)和步骤b3)的运算程序如下:
[0102]
input:si(n
×
3points);
[0103]
output:sc(n1×
3points),sg(n2×
3points),sw(n3×
3points);
小,而墙体大多是垂直于拟合平面plane0的,因此,墙体的数据点投影到拟合平面plane0 时,其投影数据点的密度后及剧增加,因此可通过观察网格中包含的数据点的数量来判 断该网格所对的是墙体还是地面,如图7所示,深色的网格中均只含有一个数据点,因 此深色的网格中的点是地面部分的点,深色的网格也即是对应为地面部分,但是由于噪 声物体的干扰,可进一步使用sor滤波器来获得精确的平面点,并将这些平面点通过pca 拟合到一个平面上,p1和p2对应于以下平面:
[0130]
plane1:a1x b1y c1z d1=0
[0131]
plane2:a2x b2y c2z d2=0
[0132]
因为天花板和地面是平行的,故可以取两个平面法向量的平均值作为新的法向量:
[0133][0134][0135]
最后,设置点到天花板平面plane1的距离阈值以及点到地面平面plane2的距离阈值, 以确定天花板数据sc以及地面数据sg,墙体数据sw是激光雷达扫描数据si中除天花板数 据sc以及地面数据sg以外的数据,具体地,如图8所示,以图3所示的激光雷达扫描数 据为例,提取墙体数据的过程,是将初始数据(激光雷达扫描数据si)投影到一个平面 (拟合平面plane0)上,然后利用网格阈值法对天花板数据sc以及地面数据sg进行筛选, 接着将天花板以及地面恢复到三维,并使用统计滤波进行处理,再把地面和天花板拟合, 然后通过设置平面阈值得到墙体数据sw。
[0136]
进一步地,在本发明所提供的基于点云数据的建模方法的一种实施例中,由于点云 是密集和无序的,因此从中提取信息是十分困难的,且点云切片会导致轮廓丢失,会增 加后续处理的难度。因此,为了提高算法的性能,可优选将墙体投影到地面上并进行网 格划分,并进行滤波处理,从而获得滤波数据,墙体数据sw投影在地面平面plane2上的 点云图像如图10所示,具体流程如图9所示,即对应步骤c),步骤c)具体可包括:
[0137]
c1)使用网格半径滤波器,基于目标数据(即墙体数据sw投影在地面平面plane2) 的网格中的像素大小以及搜索半径确定相邻网格的数量,以得到搜索区域,具体地,如 图11所示,记划分网格的分辨率为x
grid
和y
grid
,要处理的网格为gridi,nc为相邻网格的 个数,nc确定搜索区域ω1,r0为邻居搜索的半径。具体过程为:
[0138]
首先,将墙体数据sw投影在地面平面plane2上的数据进行网格划分,两个方向的分 辨率分别为x
grid
和y
grid
,每个网格中的点被搜索以寻找它们最近的邻居,如果只使用网 格中的点作为搜索范围,则网格边缘会丢失一些最近邻点,因此,需要扩大搜索范围, 以确保搜索的准确性。对于网格(i
grid
,j
grid
),使用相邻网格的数量nc来扩展区域。nc由 搜索半径r0和分辨率决定:
[0139][0140]
即是nc由半径r0除以最小分辨率并向上取整得到,因此,网格(i
grid
,j
grid
)的搜索区 域ω1为:
[0141][0142]
由于网格尺寸n
grid
×ngrid
是固定的,因此需要添加边缘抑制,以防止对网格外部进 行搜索,边缘抑制如下:
[0143][0144]
最后,删除邻居数小于3的点,去除干扰数据后即可得到点云数据集sw′

[0145]
c2)扩大所述搜索区域中各点云点的坐标,并在取整后还原,以得到简化点云数据, 以减少需要运算处理的数据量。具体地,为了让数据的细节更加明显,可扩大点云数据 集sw′
中点(xi,yi)的坐标,例如放大na倍
[0146]
(xi,yi)=((xi,yi)-(x
min
,y
min
))
×
na[0147]
对于每个点(xi,yi)∈sw′
,我们减去点的最小值(x
min
,y
min
),以确保点的数值是 正的,并使用倍数na来扩大这些点的坐标。由于坐标扩大后需要经四舍五入处理后再恢 复,所以扩大坐标使细节可以更好的体现,同时误差更小。假设一个点是xs=a0.a1a2a3, 当它扩大100倍变成xs=a0a1a2.a3,再四舍五入为xs=a0a1a2,然后恢复到xs=a0.a1a2, 前后误差小于0.01。
[0148]
c3)基于目标数据(即简化点云数据)设定点云的整数点坐标,将所述简化点云数 据置入所述整数点坐标,并将所述简化点云数据中各所述点云点的坐标取整,以得到下 采样滤波数据。即是对坐标进行四舍五入,消除相同位置的重复坐标,如图12所示,其 原理是给定整数点的坐标,并将原始数据中的每个点都更新为最近的整数点,具体地, 对于原始数据(xi,yi)∈sw′
和整数点(x
iint
,y
iint
)∈s
int eger
,用最接近(xi,yi)的点 (x
iint
,y
iint
)对点(xi,yi)进行替换,然后去除重叠点,可得到下采样滤波数据s
p
。对于 每一个点(xi,yi)∈s
p
,我们需要将0替换为1,如下所示:
[0149][0150]
c4)将下采样滤波数据替换为网格图像,以得到滤波数据,由于下采样滤波数据s
p
的坐标都是正整数,所以可以将下采样滤波数据s
p
转换为网格图像,以便于后续提取图 像的骨架。转化过程如图13所示。网格图像s
image
的大小m0×
n0由点(xi,yi)∈s
p
两个 方向坐标的最大值决定,即m0=max(xj∈s
p
),n0=max(yj∈s
p
),并将网格图 像s
image
中对应s
p
中整数点位置的像素替换为α:
[0151]simage
(xj,yj)=α
[0152]
参数α与背景相反,例如,参数α为0,则背景为1。
[0153]
上述的基于半径滤波器并结合网格半径滤波器对目标数据进行滤波,并将滤波数据 投影为图像的方法,能够使得数据变得有规律,同时数据量大大减少,能够降低数据处 理的难度,减少数据处理的时间。
中单像素骨架段的获取步骤可包括:
[0181]
e1-1)选取单像素骨架ss上的任意一点作为起始点(xi,yi)(即是种子点),并计算 与该起始点(xi,yi)相邻的邻点(x
il
,y
il
)与该起始点(xi,yi)之间连线段的斜率值,并将 该斜率值k作为该起始点(xi,yi)以及邻点(x
il
,y
il
)的斜率,斜率值k为:
[0182][0183]
由于图像中的像素位置都是整数,所以,如图17所示,两个相邻点的斜率只有四 种情况:0、1、-1以及斜率不存在,为了方便数据处理,将斜率不存在用2表示;
[0184]
e1-2)以各邻点(x
il
,y
il
)作为新起始点,并计算与该新起始点(x
il
,y
il
)相邻的新邻 点(x
il

,y
il

)与该新起始(x
il
,y
il
)点之间连线段的斜率值k

,并将该斜率值k

作为新邻点 (x
il

,y
il

)的斜率,需要注意的是,新邻点需要是未标记斜率的邻点;
[0185]
e1-3)重复步骤e1-2),直至新邻点无新的邻点(即该新邻点的所有邻点均已被标 记了斜率),若此时单像素骨架上仍存在未计算斜率值的像素点,则重复步骤e1-1)和 e1-2),也即是在未被标记斜率的像素点中随机挑选新的种子点,以该种子点为起点重复 上述步骤,直至单像素骨架不存在未计算斜率值的像素点,具体可如图18所示,图中虚 像箭头表示选择邻点的方向,例如,选取图中的种子1作为起始点并分别向上以及向下 寻找邻点,并求得与该种子1同处于一条垂线段上的像素点斜率均为2,该垂线段上的像 素点均搜索结束后,在未被赋予斜率的像素点中随机挑选有点作为种子2,种子2可同时 向左右两侧寻找邻点,也可以只向右侧寻找邻点,直至搜索到种子1所在的垂线段为止, 并继续选择行的种子点,直至单像素骨架不存在未计算斜率值的像素点,在完成斜率的 计算后,可将单像素骨架进行简单的排错处理,以图19所示的单像素骨架为例,对于每 一个像素点,如果它只有两个邻点而且这两个邻点的斜率k1=k2,则可将这个点的斜率 更新为k1;
[0186]
e1-4)将斜率值一致的相邻像素点相连接以形成单像素骨架段,需要注意的是,选 取单像素骨架段的起点时,该起点需要满足如下条件中的任意一条:1、该起点的邻点数 量是2,且两个邻点的斜率不同。2、邻点数量为1。3、没有邻点,满足这些条件的点(xj,yj) 被认为是种子点。随后从种子开始提取同一条线的点,以基于图18排错处理后的单像素 骨架为例,该过程如图20所示,对于一条直线,在种子(xj,yj)的8邻域内找一个斜率 与该种子相同的点(x
j0
,y
j0
)。在8邻域内,符合条件的点(x
j0
,y
j0
)的数量只有1或0, 如果数量为1,则该点(x
j0
,y
j0
)是下一个新种子,原始点(xj,yj)将被删除,也即是继续 向下寻找斜率相同的像素点;如果数量为0,则将该点(xj,yj)以及之前进行搜索判定的 同斜率的点组成一条单像素骨架段,并继续挑选新的种子点,直到所有的点都被划分成 单像素骨架段。
[0187]
当所有的线都被划分后,会存在一些较短的折线段,因此,需要设置阈值来消除非 线点,使得两段较长的单像素骨架段相连接,两段较长的单像素骨架段的连接步骤包括:
[0188]
e2-1)判断两段较长的单像素骨架段的斜率关系,斜率关系包括垂直和非垂直;
[0189]
e2-2)若斜率关系为垂直,则将两段较长的单像素骨架段上相邻的两端延长相交, 实现连接;
[0190]
e2-3)若斜率关系为非垂直,则将两个较长的单像素骨架段中的一者设为基准骨架 段,并将另一者上的与该基准骨架段相邻的端点向该基准骨架段所在的直线上投影,以 形成投影点,从而将该投影点作为两个较长的单像素骨架段的交点,并将该单像素骨架 段
移动至该交点处与基准骨架段连接。
[0191]
具体地,如图21所示,对于每条单像素骨架段的两个端点(p
j1
,p
j2
),只要两个端 点的距离小于阈值,且两条单像素骨架段的斜率相同,则两条单像素骨架段被认为是同 一条单像素骨架段。对于线单像素骨架段li,我们将单像素骨架段l1与单像素骨架段l2、 l3、...ln进行比较,然后将单像素骨架段l2与单像素骨架段l3、...ln进行比较,直到最 后,将单像素骨架段l
n-1
与单像素骨架段ln进行比较。当所有的单像素骨架段都被更新 后,重复上述步骤直到单像素骨架段不再更新,若以阈值为5为例,则图21中原始的单 像素骨架段l1、l2和l3将被更新合并为l1。
[0192]
对于如图19所示的两个单像素骨架段,虽然两者被判定为处于同一条直线上,但 由于组成两条单像素骨架段的点不在一条直线上,因此,需要计算出它们的斜率和端点 来更新单像素骨架段,具体地,如图22、图23和图24示,已知需要更新的单像素骨架 段的参数:两个端点(x
il
,y
il
),(x
i2
,y
i2
),中点和斜率ki, 若ki=1或-1,则新端点为:
[0193][0194]
若ki=0,则新端点为:
[0195][0196]
若ki=0,则新端点为:
[0197][0198]
相似地,对于相垂直的两段单像素骨架段,同样是先求出两个相邻端点之间的间距, 并将该间距值与设定的阈值进行对比,若间距值大于等于设定的阈值,则将两段单像素 骨架段之间的非线骨架段保留,若间距值小于设定的阈值,则将两段单像素骨架段之间 的非线骨架删除,并将两个相邻端点定义为交点,以将两端相垂直的单像素骨架段连接。
[0199]
以上去毛刺以及对端点进行更新的程序如下:
[0200]
input:s
image
(m0×
n0)(background is 0and others are 1);
[0201]
output:lines;
[0202]
1:s
con

convolve the s
image with kernel1;
[0203]
2:for each pixel(x
p
,y
p
)∈s
con do;
[0204]
3:s
image
(x
p
,y
p
)=0if s
con
(x
p
,y
p
)<4;
[0205]
4:s
image
(x
p
,y
p
)=1if s
con
(x
p
,y
p
)>4;
[0206]
5:end for;
[0207]
6:ss←simage do skeleton extracting;
[0208]
7:for random(xi,yi)∈s
s do;
[0209]
8:calculate the nearest neighbor((x
il
,y
il
));
[0210][0211]
10:k(x
il
,y
il
)is the next seed;
[0212]
11:end for;
[0213]
12:iftwo neighbors of k(xi,yi)is satisfied with k1=k2;
[0214]
13:k(xi,yi)=k1;
[0215]
14:end if;
[0216]
15:for(xi,yi)∈s
s do;
[0217]
16:if(xj,yj)is(two neighbors&k1≠k2)or(one neighbor)or(no neighbor);
[0218]
17:(xj,yj)is the seeds;
[0219]
18:end if;
[0220]
19:for seed1(xj,yj)∈line
j do;
[0221]
20:(x
j0
,y
j0
)is the neighbor of(xj,yj)&k(x
j0
,y
j0
)=k(xj,yj);
[0222]
21:linej←
(x
j0
,y
j0
);
[0223]
22:(x
j0
,y
j0
)is the new seed1;
[0224]
23:end for;
[0225]
24:end for;
[0226]
25:for each line
j1
,line
j2
∈lines do;
[0227]
26:endpoint(p
j1
,p
j2
)∈line
j1
,line
j2

[0228]
27:if only one endpoint is satiefied with distance(p
j1
,p
j2
)&
[0229]
28:same line

line
j1
,line
j2

[0230]
29:end if;
[0231]
30:end for;
[0232]
31:for each line
j do;
[0233]
32:endpoint(x1,y1),(x2,y2),slope kj;
[0234][0235][0236]
35:end if;
[0237]
36:lines

each endpoin(x1′
,y1′
),(x2′
,y2′
)。
[0238]
以上对端点的更新即相当于,以某一单像素骨架段作为基准,将需要进行更新的端 点向该单像素骨架段垂直投影,以图3所示的激光雷达扫描数据为例,将单像素骨架段 按照上述步骤更新的效果如图25所示,由图25可见由于噪声和算法等因素的影响,原 本属于同一条线的点被分成了多条线,线条之间断开的部分可根据各线条的斜率将线条 进行延长并相交,实现单像素骨架段的连接,形成墙体的单像素骨架。各单像素骨架段 连接后形成墙体的单像素骨架,将其还原为如图26中的白线所示的三维平面,图中白线 下的黑色背景为原始的激光雷达扫描数据,以方便将两者进行比较。
[0239]
最后将每个二维线段(单像素骨架段)中心点指定半径内的二维点通过逆矩阵v=
[v1, v2,v3]还原成三维,将这些点的最大高度作为该墙体的高度,从而能够根据点云中的点 的坐标确定各处墙体的高度,以基于得出的墙体高度对单像素骨架的三维平面进行复原, 复原后的墙体如图27所示。
[0240]
利用上述的建模方法对如图28所示的场景1以及如图32所示的场景2进行复原建 模,两个场景中的重要参数(天花板和地面的网格数量n
fac
,gror滤波(网格半径滤 波器)的半径r
gror
和阈值n
gror
,坐标的放大倍数na,连接平行线段距离d
p
以及连接垂 直线段的距离dv如表1所示:
[0241][0242]
表1
[0243]
在利用激光雷达对场景1以及场景2进行探测时,是操作员将激光探测设备背上, 激光雷达距离地面约1.8米,或者使用稳定的移动平台搭载激光探测设备,对场景1以及 场景2进行探测使得行进路线分别如图29以及图34所示,即沿墙壁行进,并在移动时 保持设备的稳定。
[0244]
场景1:场景1是提取了一个房间的结构,该房间的尺寸为7.69m
×
6.35m
×
3m(长
ꢀ×

×
高)。场景1的二维平面图如图29所示,为了更好的展示室内结构,复原数据中 的天花板部分不显示,实测点云数据如图30所示,最终复原的建模结果如图31所示。 从图31所示的实验结果与图29所示的场景1的二维平面图对比可以看出,房间的基本 结构得到了还原,对于图28中浅色方框内的窗帘之间的间隙以及深色方框中的窗台结构 都进行了还原。
[0245]
场景2:场景2是提取了建筑的一个楼层,楼层的结构示意图如图34所示,收集的 点云数据如图32所示,为了更好的展示室内结构,复原数据中的天花板部分不显示,因 此,算法的结果如图33所示。由图35、图36、图37和图38可知,楼层中的支撑柱以 及教室打开的房门均得到了良好的还原。
[0246]
本发明是要在保证数据真实性和有效性的前提下,通过减少数据的处理量来减少数 据的处理时间,因此,为了证明方法的有效性,对以下时间进行了计算:天花板和地面 的拟合时间t
c-g
,投影、滤波和网格化的时间t
f-v
,以及图像到三维重建的时间t
i-r
。为 了反映过程中数据量的变化,对初始的激光雷达扫描数据中的点个数n
raw
、墙的点云个 数n
wall
、投影和网格化后的二维点个数n
vaxel
以及图像大小i
image
×jimage
进行了统计,具 体如表2和表3所示:
[0247][0248]
表2
[0249][0250]
表3
[0251]
为了验证算法的准确性和有效性,将复原建模的结果与实际测量的数据进行了以下 几个方面的比较:天花板方程acx bcy ccz dc=0和地面方程agx bgy cgz dg=0,平 面的数量n
plane
,仿真数据的长度ls,宽度ws,高度hs,真实数据的长度lr,宽度wr,高 度hr,在这三个方面实际值与预测值之间的误差σ
l
,σw,σh,以及平均精度ξ,分别如表 4和表5所示:
[0252][0253]
表4
[0254][0255]
表5
[0256]
在相同的数据来源的情况下,本发明的基于点云数据的建模方法能够在不考虑激光 雷达姿态等条件的情况下,提取地面作为基准面,从而能够减少数据分析时的变量,其 经过数据的规则化处理之后,能够极大地减少数据量从而能够减少数据处理的时间,具 有较高的数据处理性能,且能够准且地找到建筑中所有的墙面,并对门窗等能够实现良 好的复原,具有极高的稳定性以及准确性。
[0257]
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于此。在本 发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,包括各个具体技 术特征以任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合 方式不再另行说明。但这些简单变型和组合同样应当视为本发明所公开的内容,均属于 本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献