开云优惠体育网页版入口

开云优惠体育网页版入口:基于点云数据的建模方法发明专利

更新时间:2026-06-22
基于点云数据的建模方法发明专利 专利申请类型:发明专利;
地区:湖南-长沙;
源自:长沙高价值专利检索信息库;

专利名称:基于点云数据的建模方法

专利类型:发明专利

专利申请号:CN202111346784.X

专利申请(专利权)人:中南大学
权利人地址:湖南省长沙市岳麓区中南大学校本部

专利发明(设计)人:赵党军,程东阳,张俊超,陈溅来

专利摘要:本发明公开了一种基于点云数据建模方法,包括如下步骤:A)对待建模物体进行激光探测,得到激光雷达扫描数据;B)利用PCA算法得到目标数据;C)基于半径滤波器结合网格半径滤波器对目标数据进行滤波,得到滤波数据;D)利用卷积模型去除滤波数据中的毛刺,并利用骨架提取算法提取单像素骨架;E)计算单像素骨架上各像素点的斜率,得出不同斜率的单像素骨架段,计算两段斜率相同或斜率相垂直的单像素骨架段上两个临近端点之间的间距值,并与设定的阈值对比,以在所述间距值小于所述阈值时将两段所述单像素骨架段连接;F)基于优化单像素骨架复原三维结构。本发明建模复原的效率高且精度高。

主权利要求:
1.一种基于点云数据的建模方法,其特征在于,包括如下步骤:
A)对待建模物体进行激光探测,以得到该待建模物体的激光雷达扫描数据;
B)利用PCA算法分离所述激光雷达扫描数据,以得到目标数据;
C)基于网格半径滤波器对所述目标数据进行滤波,以得到滤波数据;
D)利用卷积模型去除所述滤波数据中的毛刺,并利用骨架提取算法提取所述滤波数据中图像的单像素骨架;
E)计算所述单像素骨架上各像素点与相邻像素点之间的斜率,以基于所述斜率将所述单像素骨架分段,得到不同斜率的单像素骨架段,计算斜率相同的两段所述单像素骨架段上两个临近端点之间的间距值,并将该间距值与设定的阈值对比,以在所述间距值小于所述阈值时将两段所述单像素骨架段连接合并为同一段单像素骨架段;计算斜率相垂直的两段所述单像素骨架段上两个临近端点之间的间距值,并将该间距值与设定的阈值对比,以在所述间距值小于所述阈值时将两段所述单像素骨架段延长连接,得到优化单像素骨架;
F)基于所述优化单像素骨架复原所述待建模物体的三维结构;
步骤E)中所述相邻像素点的斜率以及所述单像素骨架段的获取步骤包括:E1?1)选取所述单像素骨架上的任意一点作为起始点,并计算与该起始点相邻的邻点与该起始点之间连线段的斜率值,并将该斜率值作为所述邻点的斜率;
E1?2)以各所述邻点作为新起始点,并计算与该新起始点相邻的新邻点与该新起始点之间连线段的斜率值,并将该斜率值作为所述新邻点的斜率;
E1?3)重复步骤E1?2),直至所述新邻点无新的邻点,若此时所述单像素骨架上仍存在未计算斜率值的像素点,则重复步骤E1?1)和E1?2),直至所述单像素骨架不存在未计算斜率值的像素点;
E1?4)将所述斜率值一致的相邻像素点相连接以形成所述单像素骨架段;
步骤E)中两段所述单像素骨架段的连接步骤包括:
E2?1)判断两段所述单像素骨架段的斜率关系,所述斜率关系包括垂直和非垂直;
E2?2)若所述斜率关系为垂直,则将两段所述单像素骨架段相邻的两端延长相交;
E2?3)若所述斜率关系为非垂直,则将两个所述单像素骨架段中的一者设为基准骨架段,并将两个所述单像素骨架段中的另一者上的与该基准骨架段相邻的端点向该基准骨架段所在的直线上投影,以形成投影点,并将该投影点作为两个所述单像素骨架段的交点,并将该单像素骨架段移动至该交点处与所述基准骨架段连接。
2.根据权利要求1所述的基于点云数据的建模方法,其特征在于,步骤A)中所述激光雷达扫描数据为点云数据。
3.根据权利要求2所述的基于点云数据的建模方法,其特征在于,步骤B)中所述PCA算法分离所述激光雷达扫描数据的步骤包括:B1)建立所述激光雷达扫描数据的拟合平面;
B2)将该拟合平面上部的所述激光雷达扫描数据以及该拟合平面下部的所述激光雷达扫描数据向该拟合平面投影,形成二维投影数据;
B3)将所述二维投影数据进行网格划分,以依据各网格中的点数对所述二维投影数据进行划分,以得到所述目标数据。
4.根据权利要求3所述的基于点云数据的建模方法,其特征在于,步骤B1)中所述拟合平面的拟合平面向量,由所述激光雷达扫描数据中各点与该激光雷达扫描数据中点云平均值之间的偏差组成的偏差矩阵经协方差处理以及奇异值分解后得到的变换矩阵得出。
5.根据权利要求4所述的基于点云数据的建模方法,其特征在于,步骤B2)中所述拟合平面上部的所述激光雷达扫描数据以及下部的所述激光雷达扫描数据经由所述拟合平面向量组成的投影矩阵向所述拟合平面投影。
6.根据权利要求2所述的基于点云数据的建模方法,其特征在于,所述步骤C)包括:C1)基于所述目标数据的网格中的像素大小以及搜索半径确定相邻网格的数量,以得到搜索区域;
C2)扩大所述搜索区域中各点云点的坐标,并在取整后还原,以得到简化点云数据;
C3)基于所述目标数据设定点云的整数点坐标,将所述简化点云数据置入所述整数点坐标,并将所述简化点云数据中各所述点云点的坐标取整,以得到下采样滤波数据;
C4)将所述下采样滤波数据替换为网格图像,以得到所述滤波数据。
7.根据权利要求6所述的基于点云数据的建模方法,其特征在于,所述步骤D)中去毛刺的过程包括:设定所述网格图像中的背景像素为0,图像像素为1,并将所述卷积模型的卷积核置入所述网格图像中进行卷积,以通过卷积后各像素的卷积值大。运鐾裢枷裰械南袼氐憬杏伤霰尘跋袼刂了鐾枷裣袼氐谋浠,或者进行由所述图像像素至所述背景像素的变换,去除毛刺后的所述网格图像经由骨架提取算法提取出所述单像素骨架。
8.根据权利要求4所述的基于点云数据的建模方法,其特征在于,所述单像素骨架的高度数据由步骤B3)中被划分移除的数据经所述变换矩阵的逆变换得出。 说明书 : 基于点云数据的建模方法技术领域[0001] 本发明涉及扫描建模方法,具体地涉及一种基于点云数据的建模方法。背景技术[0002] 随着智能移动设备(如送餐机器人等)的发展,越来越多的智能移动设备已经较多的涉及室内使用的场景,且室内环境下对智能移动设备的移动路径准确度需求也较高,因此需要能够获取精确的室内结构。[0003] 近年来,激光雷达技术因其精度高、成本低、便携性好、应用范围广等优点得到了迅速发展,且随着室内导航技术的日益成熟,从点云中数据获取精确的建筑物内部结构对实现精确的室内导航具有重要意义。[0004] 然而,从无序、高密度的点云数据中提取室内结构难度大、耗时长,且由于算法和扫描环境产生的噪声,大大增加了数据处理的复杂性,且现有技术中对点云数据的提。蚴鞘荽砹看笮实拖,或是会造成数据的丢失,难以及时且准确地实现激光雷达扫描数据的提取以及室内结构的复原。[0005] 有鉴于此,需要提供一种基于点云数据的建模方法。发明内容[0006] 本发明所要解决的技术问题是提供一种基于点云数据的建模方法,其能够提高三维建模复原扫描物结构的效率以及准确度。[0007] 为了解决上述技术问题,本发明提供了一种基于点云数据的建模方法,包括如下步骤:A)对待建模物体进行激光探测,以得到该待建模物体的激光雷达扫描数据;[0008] B)利用PCA算法分离所述激光雷达扫描数据,以得到目标数据;[0009] C)基于网格半径滤波器对所述目标数据进行滤波,以得到滤波数据;[0010] D)利用卷积模型去除所述滤波数据中的毛刺(即噪点:不规则的离群点),并利用骨架提取算法提取所述滤波数据中图像的单像素骨架;[0011] E)计算所述单像素骨架上各像素点与相邻像素点之间的斜率,以基于所述斜率将所述单像素骨架分段,得到不同斜率的单像素骨架段,计算斜率相同的两段所述单像素骨架段上两个临近端点之间的间距值,并将该间距值与设定的阈值对比,以在所述间距值小于所述阈值时将两段所述单像素骨架段连接合并为同一段单像素骨架段;计算斜率相垂直的两段所述单像素骨架段上两个临近端点之间的间距值,并将该间距值与设定的阈值对比,以在所述间距值小于所述阈值时将两段所述单像素骨架段延长连接;[0012] F)基于所述优化单像素骨架复原所述待建模物体的三维结构。[0013] 具体地,步骤A)中所述激光雷达扫描数据为点云数据。[0014] 进一步具体地,步骤B)中所述PCA算法分离所述激光雷达扫描数据的步骤包括:[0015] B1)建立所述激光雷达扫描数据的拟合平面;[0016] B2)将该拟合平面上部的所述激光雷达扫描数据以及该拟合平面下部的所述激光雷达扫描数据向该拟合平面投影,形成二维投影数据;[0017] B3)将所述二维投影数据进行网格划分,以依据各网格中的点数对所述二维投影数据进行划分,以得到所述目标数据。[0018] 进一步具体地,步骤B1)中所述拟合平面的拟合平面向量,由所述激光雷达扫描数据中各点与该激光雷达扫描数据中点云平均值之间的偏差组成的偏差矩阵经协方差处理以及奇异值分解后得到的变换矩阵得出。[0019] 进一步具体地,步骤B2)中所述拟合平面上部的所述激光雷达扫描数据以及下部的所述激光雷达扫描数据经由所述拟合平面向量组成的投影矩阵向所述拟合平面投影。[0020] 进一步具体地,所述步骤C)包括:[0021] C1)基于所述目标数据的网格中的像素大小以及搜索半径确定相邻网格的数量,以得到搜索区域;[0022] C2)扩大所述搜索区域中各点云点的坐标,并在取整后还原,以得到简化点云数据;[0023] C3)基于所述目标数据设定点云的整数点坐标,将所述简化点云数据置入所述整数点坐标,并将所述简化点云数据中各所述点云点的坐标取整,以得到下采样滤波数据;[0024] C4)将所述下采样滤波数据替换为网格图像,以得到所述滤波数据。[0025] 进一步具体地,所述步骤D)中去毛刺的过程包括:设定所述网格图像中的背景像素为0,图像像素为1,并将所述卷积模型的卷积核置入所述网格图像中进行卷积,以通过卷积后各像素的卷积值大。运鐾裢枷裰械南袼氐憬杏伤霰尘跋袼刂了鐾枷裣袼氐谋浠,或者进行由所述图像像素至所述背景像素的变换,去除毛刺后的所述网格图像经由骨架提取算法提取出所述单像素骨架。[0026] 进一步具体地,步骤E)中所述相邻像素点的斜率以及所述单像素骨架段的获取步骤包括:[0027] E1?1)选取所述单像素骨架上的任意一点作为起始点,并计算与该起始点相邻的邻点与该起始点之间连线段的斜率值,并将该斜率值作为所述邻点的斜率;[0028] E1?2)以各所述邻点作为新起始点,并计算与该新起始点相邻的新邻点与该新起始点之间连线段的斜率值,并将该斜率值作为所述新邻点的斜率;[0029] E1?3)重复步骤E1?2),直至所述新邻点无新的邻点,若此时所述单像素骨架上仍存在未计算斜率值的像素点,则重复步骤E1?1)和E1?2),直至所述单像素骨架不存在未计算斜率值的像素点;[0030] E1?4)将所述斜率值一致的相邻像素点相连接以形成所述单像素骨架段。[0031] 进一步具体地,步骤E)中两段所述单像素骨架段的连接步骤包括:[0032] E2?1)判断两段所述单像素骨架段的斜率关系,所述斜率关系包括垂直和非垂直;[0033] E2?2)若所述斜率关系为垂直,则将两段所述单像素骨架段相邻的两端延长相交;[0034] E2?3)若所述斜率关系为非垂直,则将两个所述单像素骨架段中的一者设为基准骨架段,并将两个所述单像素骨架段中的另一者上的与该基准骨架段相邻的端点向该基准骨架段所在的直线上投影,以形成投影点,并将该投影点作为两个所述单像素骨架段的交点,并将该单像素骨架段移动至该交点处与所述基准骨架段连接。[0035] 进一步具体地,所述单像素骨架的高度数据由步骤B3)中被划分移除的数据经所述变换矩阵的逆变换得出。[0036] 通过上述技术方案,本发明的基于点云数据的建模方法,利用激光扫描待建模复原的物体,精度高、成本低、便携性好,便于进行扫描作业;利用PCA算法,能够将目标数据与非目标数据进行分离,将分离出的目标数据利用半径滤波器并进一步结合网格半径滤波器进行滤波,能够实现数据的规则化以及简化,从而能够有效地减少数据的处理难度以及数据的处理量,从而能够提高三维建模复原扫描物结构的效率;利用卷积模型取出滤波数据中的毛刺,利用骨架提取算法提取滤波数据中图像的单像素骨架,从而进一步计算单像素骨架上各像素点的斜率,得出不同斜率的单像素骨架段,再通过计算相间的两段单像素骨架段上两个临近端点之间的间距值,并将其与设定的阈值对比,能够判相间的两段单像素骨架段中间的骨架段是否为非线骨架段,并将非线骨架段进行投影以将两段单像素骨架段连接,得到优化单像素骨架,并在该优化单像素骨架的基础上对待建模复原的物体进行复原,能够在不缺失数据的基础上,提高三维建模复原扫描物结构的准确度。[0037] 本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。附图说明[0038] 图1是本发明的基于点云数据的建模方法的原理图;[0039] 图2是本发明的基于点云数据的建模方法中分离激光雷达扫描数据的原理图;[0040] 图3是本发明的基于点云数据的建模方法中的一个激光雷达扫描数据图;[0041] 图4是本发明的基于点云数据的建模方法中的理想化点云空间示意图;[0042] 图5是图3中拟合平面的示意图;[0043] 图6是图3中拟合平面分割激光雷达扫描数据的示意图;[0044] 图7是本发明的基于点云数据的建模方法中网格阈值法筛选目标数据的原理示意图;[0045] 图8是提取图3所示的激光雷达扫描数据中的墙体数据的结果示意图,其中,图8?a?1为原始激光雷达扫描数据中的上部数据,图8?b?1为原始激光雷达扫描数据中的下部数据,图8?c为提取的墙体数据;[0046] 图9是本发明的基于点云数据的建模方法中网格半径滤波的原理示意图;[0047] 图10是本发明的基于点云数据的建模方法中墙体数据在地面平面上的投影;[0048] 图11是本发明的基于点云数据的建模方法中网格半径滤波器寻找邻点的原理示意图;[0049] 图12是本发明的基于点云数据的建模方法中下采样的原理示意图;[0050] 图13是本发明的基于点云数据的建模方法中下采样结果转化为网格图像的原理示意图;[0051] 图14是本发明的基于点云数据的建模方法中墙体数据的滤波过程、网格转化结果示意图,其中,图14?a为原始的墙体数据,图14?a?1和图14?a?2为图14?a中的两处放大图,图14?b为图14?a转化为的网格图像,图14?b?1和图14?b?2为图14?b中的两处放大图;[0052] 图15是本发明的基于点云数据的建模方法中网格图像卷积去毛刺过程的示意图;[0053] 图16是本发明的基于点云数据的建模方法中单像素骨架的提取过程以及结果示意图,其中,图16?a?1为原始网格图像数据,图16?a?2为图16?a?1中框选区域处的放大图,图16?b?1为图16?a?1经骨架提取算法提取后的单像素骨架图,图16?b?2为图16?b?1中框选区域处的放大图,图16?c?1为单像素骨架图中单像素骨架所对应的二维点云数据图,图16?c?2为图16?c?1中框选区域的放大图;[0054] 图17是本发明的基于点云数据的建模方法中邻点的斜率取值示意图;[0055] 图18是本发明的基于点云数据的建模方法中像素点斜率赋值过程示意图;[0056] 图19是本发明的基于点云数据的建模方法中像素点斜率更新原理示意图;[0057] 图20是本发明的基于点云数据的建模方法中基于斜率的寻线过程示意图;[0058] 图21是本发明的基于点云数据的建模方法中单像素骨架段更新原理示意图;[0059] 图22是本发明的基于点云数据的建模方法中斜率为1的单像素骨架段的端点更新原理示意图;[0060] 图23是本发明的基于点云数据的建模方法中斜率为0的单像素骨架段的端点更新原理示意图;[0061] 图24是本发明的基于点云数据的建模方法中斜率为2的单像素骨架段的端点更新原理示意图;[0062] 图25是本发明的基于点云数据的建模方法中单像素骨架复原直线的结果示意图,其中,图25?a为待处理数据,图25?a?1和图25?a?2为图25?a中的两处放大图,图25?b为图25?a经端点更新后的数据图,图25?b?1和图25?b?2为图25?b中的两处放大图;[0063] 图26是本发明的基于点云数据的建模方法中提取的目标数据与原始的激光雷达扫描数据的对比图;[0064] 图27是本发明的基于点云数据的建模方法中基于图4中的数据复原的墙体;[0065] 图28是本发明的基于点云数据的建模方法中场景1的示意图;[0066] 图29是本发明的基于点云数据的建模方法中场景1的结构示意图以及扫描路线示意图;[0067] 图30是本发明的基于点云数据的建模方法中场景1的扫描数据;[0068] 图31是本发明的基于点云数据的建模方法中场景1的墙体结构复原结果图;[0069] 图32是本发明的基于点云数据的建模方法中场景2的扫描数据;[0070] 图33是本发明的基于点云数据的建模方法中场景2的墙体结构复原结果图;[0071] 图34是本发明的基于点云数据的建模方法中场景2的结构示意图以及扫描路线示意图;[0072] 图35是本发明的基于点云数据的建模方法的场景2中第一区域内支撑柱与房门的位置关系示意图;[0073] 图36是本发明的基于点云数据的建模方法场景2第一区域内的墙体结构复原结果中撑柱与房门的位置关系示意图;[0074] 图37是本发明的基于点云数据的建模方法的场景2中第二区域内支撑柱与房门的位置关系示意图;[0075] 图38是本发明的基于点云数据的建模方法场景2第二区域内的墙体结构复原结果中撑柱与房门的位置关系示意图。具体实施方式[0076] 下面结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。[0077] 如图1所示,在本发明所提供的基于点云数据的建模方法的一种实施例中,该方法包括如下步骤:[0078] A)对待建模物体进行激光探测,以得到该待建模物体的激光雷达扫描数据;[0079] B)利用PCA算法(principalcomponentanalysis,主成分分析算法)分离所述激光雷达扫描数据,以得到目标数据;[0080] C)基于网格半径滤波器对所述目标数据进行滤波,以得到滤波数据;[0081] D)利用卷积模型去除所述滤波数据中的毛刺,并利用骨架提取算法提取所述滤波数据中图像的单像素骨架;[0082] E)计算所述单像素骨架上各像素点与相邻像素点之间的斜率,以基于所述斜率将所述单像素骨架分段,得到不同斜率的单像素骨架段,计算斜率相同的两段所述单像素骨架段上两个临近端点之间的间距值,并将该间距值与设定的阈值对比,以在所述间距值小于所述阈值时将两段所述单像素骨架段连接合并为同一段单像素骨架段;计算斜率相垂直的两段所述单像素骨架段上两个临近端点之间的间距值,并将该间距值与设定的阈值对比,以在所述间距值小于所述阈值时将两段所述单像素骨架段延长连接;[0083] F)基于所述优化单像素骨架复原所述待建模物体的三维结构。[0084] 通过上述技术方案,本发明的基于PCA算法的激光扫描点云数据建模方法利用激光扫描待建模复原的物体,精度高、成本低、便携性好,便于进行扫描作业;利用PCA算法能够将目标数据与非目标数据进行分离,将分离出的目标数据利用半径滤波器并进一步结合网格半径滤波器进行滤波,能够实现数据的规则化以及简化,从而能够有效地减少数据的处理难度以及数据的处理量,从而能够提高三维建模复原扫描物结构的效率;利用卷积模型取出滤波数据中的毛刺,利用骨架提取算法提取滤波数据中图像的单像素骨架,从而进一步计算单像素骨架上各像素点的斜率,得出不同斜率的单像素骨架段,再通过计算相间的两段单像素骨架段上两个临近端点之间的间距值,并将其与设定的阈值对比,能够判相间的两段单像素骨架段中间的骨架段是否为非线骨架段,并将非线骨架段进行投影以将两段单像素骨架段连接,得到优化单像素骨架,并在该优化单像素骨架的基础上对待建模复原的物体进行复原,能够在不缺失数据的基础上,提高三维建模复原探测物结构的准确度。[0085] 具体地,以利用激光设备探测教学楼内部的结构为例,激光探测设备如图2所示,包括激光雷达、惯性测量单元、无线传输模块和上位机,其中,激光雷达可以是16线机械激光雷达,并可以以0.5秒的频率感知周围环境,探测周围物体的表面信息;惯性测量单元用于测量激光雷达的姿态信息,并通过上位机的机器人操作系统将其与每一帧点云融合,形成点云数据,处理后得到的激光雷达扫描数据(点云数据)通过无线传输模块传输到计算机上进行数据提取及以及建模复原,具体地,在激光探测的过程中可采用LeGO?LOAM(面向复杂情况的轻量级优化地面的雷达里程计)实现数据的配准,其能够根据地面特征获取姿态[tz,θroll,θpitch],其中,tz为z方向的平移量,θroll为滚转角,θpitch为俯仰角,根据剩余点云特征计算姿态[tx,ty,θyaw],其中,tx为x方向的平移量,。因此,匹配误差是由于地面特征太少造成的,或者是由于欧拉角在短时间内旋转过快造成的,在后续的建模结果中,上述两个方面可能是造成误差的原因。[0086] 具体地,在本发明所提供的基于点云数据的建模方法的一种实施例中,由于激光雷达扫描数据中包括了天花板数据、墙体数据和地面数据,因此,可优选将这三种数据进行划分,进行分块建模,如图2所示,步骤B)中PCA算法分离激光雷达扫描数据的步骤包括:[0087] B1)建立激光雷达扫描数据的拟合平面,具体地,记激光雷达扫描数据为SI,SI是三维点云数据,计算点云的平均值μ。对于点Pi∈SI,计算Pi和μ的偏差Pj,偏差矩阵SP由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:forPi=(xi,yi,zi)∈SI,i=1,2,,,ndo;[0092] 3:Pj=Pi?μ;[0093] 4:endfor;[0094] 5:Pj=(xi,yi,zi)∈SP,j=1,2,,,n;[0095][0096] 7:U∑VT=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);[0104] 1:plane0←SIdoPCA(fit);[0105] 2:S1←SIonplane0;[0106] 3:S2←SIunderplane0;[0107] 4:P1,P2←S1,S2doPCA(dimensionreduction);[0108] 5:P1,P2domesh(m×ngrid);[0109] 6:foreachgirddo;[0110] 7:reserve←numberofgird=1;[0111] 8:remove←others;[0112] 9:endfor;[0113] 10:P1,P2doSOR;[0114] 11:plane1,plane2←P1,P2doPCA;[0115] 12:Sc←(distancefromplane1)<threshold1inSI;[0116] 13:Sg←(distancefromplane2)<threshold1inS2;[0117] 14:Sw←others。[0118] 具体地,以如图3所示的激光雷达扫描数据为例,拟合平面plane0:Ax+By+Cz+D=0,是要使得激光雷达扫描数据内所有的点(xi,yi,zi)到该平面的距离之和S最小的平面,即:[0119][0120] 因此,如图4所示,教学楼的室内空间可理想化为对称的点云空间Ω中,拟合平面plane0(即平面Φ)位于点云空间Ω的中间位置,但由于室内有一些诸如窗帘等的不规则物体(噪声物体),会使得拟合平面plane0的位置会发生变化,但点云空间Ω的数据也分为上下两部分,具体参见图5和图6。上部数据S1(包含天花板)和下部数据S2(包含地面);[0121] 随后,将上部数据S1和下部数据S2投影到拟合平面plane0上转化为二维投影数据P1和P2,以二维投影数据P2(包含地面)为例,如图7所示,网格阈值法即是将二维投影数据P2投影为网格数据,然后设置网格的个数为ngrid,根据P2两个方向上的最大值Xmax和Ymax计算网格的水平分辨率Δx和垂直分辨率Δy,如下所示:[0122][0123] 同一网格中的点被分配相同的编号:[0124][0125] 其中i和j表示网格的横纵坐标,round表示四舍五入;[0126] 有些边缘问题是由编号的四舍五入导致的,对此,可采取了以下措施:[0127][0128] 即是对于每个点的编号(igrid,jgrid),也即是网格像素的坐标编号,用1替换0,用ngrid替换大于ngrid的值。[0129] 经上述处理后,点云中的点将会落在网格中,而由于地面与拟合平面plane0几乎是平行的,因此地面上的数据点投影到拟合平面plane0上时,其投影数据点的密度变化很。教宕蠖嗍谴怪庇谀夂掀矫鎝lane0的,因此,墙体的数据点投影到拟合平面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所示,记划分网格的分辨率为xgrid和ygrid,要处理的网格为gridi,nc为相邻网格的个数,nc确定搜索区域Ω1,r0为邻居搜索的半径。具体过程为:[0138] 首先,将墙体数据Sw投影在地面平面plane2上的数据进行网格划分,两个方向的分辨率分别为xgrid和ygrid,每个网格中的点被搜索以寻找它们最近的邻居,如果只使用网格中的点作为搜索范围,则网格边缘会丢失一些最近邻点,因此,需要扩大搜索范围,以确保搜索的准确性。对于网格(igrid,jgrid),使用相邻网格的数量nc来扩展区域。nc由搜索半径r0和分辨率决定:[0139][0140] 即是nc由半径r0除以最小分辨率并向上取整得到,因此,网格(igrid,jgrid)的搜索区域Ω1为:[0141][0142] 由于网格尺寸ngrid×ngrid是固定的,因此需要添加边缘抑制,以防止对网格外部进行搜索,边缘抑制如下:[0143][0144] 最后,删除邻居数小于3的点,去除干扰数据后即可得到点云数据集Sw′。[0145] C2)扩大所述搜索区域中各点云点的坐标,并在取整后还原,以得到简化点云数据,以减少需要运算处理的数据量。具体地,为了让数据的细节更加明显,可扩大点云数据集Sw′中点(xi,yi)的坐标,例如放大na倍[0146] (xi,yi)=((xi,yi)?(xmin,ymin))×na[0147] 对于每个点(xi,yi)∈Sw′,我们减去点的最小值(xmin,ymin),以确保点的数值是正的,并使用倍数na来扩大这些点的坐标。由于坐标扩大后需要经四舍五入处理后再恢复,所以扩大坐标使细节可以更好的体现,同时误差更小。假设一个点是xs=a0.a1a2a3,当它扩大100倍变成xs=a0a1a2.a3,再四舍五入为xs=a0a1a2,然后恢复到xs=a0.a1a2,前后误差小于0.01。[0148] C3)基于目标数据(即简化点云数据)设定点云的整数点坐标,将所述简化点云数据置入所述整数点坐标,并将所述简化点云数据中各所述点云点的坐标取整,以得到下采样滤波数据。即是对坐标进行四舍五入,消除相同位置的重复坐标,如图12所示,其原理是给定整数点的坐标,并将原始数据中的每个点都更新为最近的整数点,具体地,对于原始int int int int数据(xi,yi)∈Sw′和整数点(xi ,yi )∈Sinteger,用最接近(xi,yi)的点(xi ,yi )对点(xi,yi)进行替换,然后去除重叠点,可得到下采样滤波数据Sp。对于每一个点(xi,yi)∈Sp,我们需要将0替换为1,如下所示:[0149][0150] C4)将下采样滤波数据替换为网格图像,以得到滤波数据,由于下采样滤波数据Sp的坐标都是正整数,所以可以将下采样滤波数据Sp转换为网格图像,以便于后续提取图像的骨架。转化过程如图13所示。网格图像Simage的大小m0×n0由点(xi,yi)∈Sp两个方向坐标的最大值决定,即m0=max(xj∈Sp),n0=max(yj∈Sp),并将网格图像Simage中对应Sp中整数点位置的像素替换为α:[0151] Simage(xj,yj)=α[0152] 参数α与背景相反,例如,参数α为0,则背景为1。[0153] 上述的基于半径滤波器并结合网格半径滤波器对目标数据进行滤波,并将滤波数据投影为图像的方法,能够使得数据变得有规律,同时数据量大大减少,能够降低数据处理的难度,减少数据处理的时间。[0154] 步骤C1)至步骤C4)的具体运算程序如下:[0155] Input:Sw(n3×3points);[0156] Output:Sp(n4×3points),Simage(m0×n0image);[0157] 1:Sw1←Sw(projected);[0158] 2:Sw1domesh;[0159] 3:foreachgirddo;[0160] 4:neighborssearchbyradius;[0161] 5:endfor;[0162] 6:Sw′←removenoisebythreshold3;[0163] 7:for(xi,yi)∈Sw′do;[0164] 8:(xi,yi)′=((xi,yi)?(xmin,ymin))×na;[0165] 9:endfor;[0166] 10:Sw′domesh;[0167] 11:for(xi,yi)∈Sw′do;[0168] 12:(xj,yj)=round(xi,yi);[0169] 13:endfor;[0170] 14:Sp←(xj,yj),j=1,2,...ngrid,[0171] 15:m0=max(xj∈Sp),n0=max(yj∈Sp);[0172] 16:Simage←m0×n0image;[0173] 17:for(xj,yj)∈Spd0;[0174] 18:Simage(xj,yj)=0or1(againstthebackground);[0175] 19:endfor。[0176] 以图3所示的激光雷达扫描数据为例,对目标数据滤波并投影转换的效果如图14所示,由图14可知,滤波后的数据图像噪点少,清晰度高。[0177] 进一步地,在本发明所提供的基于点云数据的建模方法的一种实施例中,步骤D)中去毛刺的过程可包括:设定网格图像Simage中的背景像素为1,图像像素为0,并将所述卷积模型的卷积核置入所述网格图像中进行卷积,以通过卷积后各像素的卷积值大。酝裢枷馭image中的像素点进行由背景像素至图像像素的变换,或者进行由图像像素至背景像素的变换。具体地,如图15所示,将卷积核置入网格图像Simage中进行卷积,卷积后的将各像素中所得的卷积值Scon的大小与4进行比较:[0178][0179] 即是将卷积值Scon大于4的像素更新为图像像素,将卷积值Scon小于4的像素更新为背景像素,若卷积值Scon等于4,则该像素的属性保持不变,取出毛刺后的数据能够进一步地减少噪点,使得图像数据更为清晰准确。随后再将去除毛刺后的网格图像利用现有的骨架提取算法提取单像素骨架,以图3所示的激光雷达扫描数据为例,对目标数据提取单像素骨架的效果如图16所示,在得到单像素骨架后,可根据该单像素骨架进行反推,直至反推到进行下采样步骤前,从而可以得到与该单像素骨架相对应的骨架二维点。[0180] 进一步地,在本发明所提供的基于点云数据的建模方法的一种实施例中,步骤E)中单像素骨架段的获取步骤可包括:[0181] E1?1)选取单像素骨架Ss上的任意一点作为起始点(xi,yi)(即是种子点),并计算与该起始点(xi,yi)相邻的邻点(xil,yil)与该起始点(xi,yi)之间连线段的斜率值,并将该斜率值K作为该起始点(xi,yi)以及邻点(xil,yil)的斜率,斜率值K为:[0182][0183] 由于图像中的像素位置都是整数,所以,如图17所示,两个相邻点的斜率只有四种情况:0、1、?1以及斜率不存在,为了方便数据处理,将斜率不存在用2表示;[0184] E1?2)以各邻点(xil,yil)作为新起始点,并计算与该新起始点(xil,yil)相邻的新邻点(xil′,yil′)与该新起始(xil,yil)点之间连线段的斜率值K′,并将该斜率值K′作为新邻点(xil′,yil′)的斜率,需要注意的是,新邻点需要是未标记斜率的邻点;[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邻域内找一个斜率与该种子相同的点(xj0,yj0)。在8邻域内,符合条件的点(xj0,yj0)的数量只有1或0,如果数量为1,则该点(xj0,yj0)是下一个新种子,原始点(xj,yj)将被删除,也即是继续向下寻找斜率相同的像素点;如果数量为0,则将该点(xj,yj)以及之前进行搜索判定的同斜率的点组成一条单像素骨架段,并继续挑选新的种子点,直到所有的点都被划分成单像素骨架段。[0187] 当所有的线都被划分后,会存在一些较短的折线段,因此,需要设置阈值来消除非线点,使得两段较长的单像素骨架段相连接,两段较长的单像素骨架段的连接步骤包括:[0188] E2?1)判断两段较长的单像素骨架段的斜率关系,斜率关系包括垂直和非垂直;[0189] E2?2)若斜率关系为垂直,则将两段较长的单像素骨架段上相邻的两端延长相交,实现连接;[0190] E2?3)若斜率关系为非垂直,则将两个较长的单像素骨架段中的一者设为基准骨架段,并将另一者上的与该基准骨架段相邻的端点向该基准骨架段所在的直线上投影,以形成投影点,从而将该投影点作为两个较长的单像素骨架段的交点,并将该单像素骨架段移动至该交点处与基准骨架段连接。[0191] 具体地,如图21所示,对于每条单像素骨架段的两个端点(pj1,pj2),只要两个端点的距离小于阈值,且两条单像素骨架段的斜率相同,则两条单像素骨架段被认为是同一条单像素骨架段。对于线单像素骨架段Li,我们将单像素骨架段L1与单像素骨架段L2、L3、...Ln进行比较,然后将单像素骨架段L2与单像素骨架段L3、...Ln进行比较,直到最后,将单像素骨架段Ln?1与单像素骨架段Ln进行比较。当所有的单像素骨架段都被更新后,重复上述步骤直到单像素骨架段不再更新,若以阈值为5为例,则图21中原始的单像素骨架段L1、L2和L3将被更新合并为L1。[0192] 对于如图19所示的两个单像素骨架段,虽然两者被判定为处于同一条直线上,但由于组成两条单像素骨架段的点不在一条直线上,因此,需要计算出它们的斜率和端点来更新单像素骨架段,具体地,如图22、图23和图24示,已知需要更新的单像素骨架段的参数:两个端点(xil,yil),(xi2,yi2),中点 和斜率Ki,若Ki=1或?1,则新端点为:[0193][0194] 若Ki=0,则新端点为:[0195][0196] 若Ki=0,则新端点为:[0197][0198] 相似地,对于相垂直的两段单像素骨架段,同样是先求出两个相邻端点之间的间距,并将该间距值与设定的阈值进行对比,若间距值大于等于设定的阈值,则将两段单像素骨架段之间的非线骨架段保留,若间距值小于设定的阈值,则将两段单像素骨架段之间的非线骨架删除,并将两个相邻端点定义为交点,以将两端相垂直的单像素骨架段连接。[0199] 以上去毛刺以及对端点进行更新的程序如下:[0200] Input:Simage(m0×n0)(backgroundis0andothersare1);[0201] Output:lines;[0202] 1:Scon←convolvetheSimagewithkernel1;[0203] 2:foreachpixel(xp,yp)∈Scondo;[0204] 3:Simage(xp,yp)=0ifScon(xp,yp)<4;[0205] 4:Simage(xp,yp)=1ifScon(xp,yp)>4;[0206] 5:endfor;[0207] 6:Ss←Simagedoskeletonextracting;[0208] 7:forrandom(xi,yi)∈Ssdo;[0209] 8:Calculatethenearestneighbor((xil,yil));[0210][0211] 10:K(xil,yil)isthenextseed;[0212] 11:endfor;[0213] 12:iftwoneighborsofK(xi,yi)issatisfiedwithK1=K2;[0214] 13:K(xi,yi)=K1;[0215] 14:endif;[0216] 15:for(xi,yi)∈Ssdo;[0217] 16:if(xj,yj)is(twoneighbors&K1≠K2)or(oneneighbor)or(noneighbor);[0218] 17:(xj,yj)istheseeds;[0219] 18:endif;[0220] 19:forseed1(xj,yj)∈linejdo;[0221] 20:(xj0,yj0)istheneighborof(xj,yj)&K(xj0,yj0)=K(xj,yj);[0222] 21:linej←(xj0,yj0);[0223] 22:(xj0,yj0)isthenewseed1;[0224] 23:endfor;[0225] 24:endfor;[0226] 25:foreachlinej1,linej2∈linesdo;[0227] 26:endpoint(pj1,pj2)∈linej1,linej2;[0228] 27:ifonlyoneendpointissatiefiedwithdistance(pj1,pj2)&[0229] 28:sameline←linej1,linej2;[0230] 29:endif;[0231] 30:endfor;[0232] 31:foreachlinejdo;[0233] 32:endpoint(x1,y1),(x2,y2), slopeKj;[0234][0235][0236] 35:endif;[0237] 36:lines←eachendpoin(x1′,y1′),(x2′,y2′)。[0238] 以上对端点的更新即相当于,以某一单像素骨架段作为基准,将需要进行更新的端点向该单像素骨架段垂直投影,以图3所示的激光雷达扫描数据为例,将单像素骨架段按照上述步骤更新的效果如图25所示,由图25可见由于噪声和算法等因素的影响,原本属于同一条线的点被分成了多条线,线条之间断开的部分可根据各线条的斜率将线条进行延长并相交,实现单像素骨架段的连接,形成墙体的单像素骨架。各单像素骨架段连接后形成墙体的单像素骨架,将其还原为如图26中的白线所示的三维平面,图中白线下的黑色背景为原始的激光雷达扫描数据,以方便将两者进行比较。[0239] 最后将每个二维线段(单像素骨架段)中心点指定半径内的二维点通过逆矩阵V=[V1,V2,V3]还原成三维,将这些点的最大高度作为该墙体的高度,从而能够根据点云中的点的坐标确定各处墙体的高度,以基于得出的墙体高度对单像素骨架的三维平面进行复原,复原后的墙体如图27所示。[0240] 利用上述的建模方法对如图28所示的场景1以及如图32所示的场景2进行复原建模,两个场景中的重要参数(天花板和地面的网格数量nfac,GROR滤波(网格半径滤波器)的半径rGROR和阈值nGROR,坐标的放大倍数na,连接平行线段距离dp以及连接垂直线段的距离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] 本发明是要在保证数据真实性和有效性的前提下,通过减少数据的处理量来减少数据的处理时间,因此,为了证明方法的有效性,对以下时间进行了计算:天花板和地面的拟合时间tc?g,投影、滤波和网格化的时间tf?v,以及图像到三维重建的时间ti?r。为了反映过程中数据量的变化,对初始的激光雷达扫描数据中的点个数nraw、墙的点云个数nwall、投影和网格化后的二维点个数nvaxel以及图像大小iimage×jimage进行了统计,具体如表2和表3所示:[0247][0248] 表2[0249][0250] 表3[0251] 为了验证算法的准确性和有效性,将复原建模的结果与实际测量的数据进行了以下几个方面的比较:天花板方程Acx+Bcy+Ccz+Dc=0和地面方程Agx+Bgy+Cgz+Dg=0,平面的数量nplane,仿真数据的长度ls,宽度ws,高度hs,真实数据的长度lr,宽度wr,高度hr,在这三个方面实际值与预测值之间的误差σl,σw,σh,以及平均精度ξ,分别如表4和表5所示:[0252][0253] 表4[0254][0255] 表5[0256] 在相同的数据来源的情况下,本发明的基于点云数据的建模方法能够在不考虑激光雷达姿态等条件的情况下,提取地面作为基准面,从而能够减少数据分析时的变量,其经过数据的规则化处理之后,能够极大地减少数据量从而能够减少数据处理的时间,具有较高的数据处理性能,且能够准且地找到建筑中所有的墙面,并对门窗等能够实现良好的复原,具有极高的稳定性以及准确性。[0257] 以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于此。在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,包括各个具体技术特征以任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。但这些简单变型和组合同样应当视为本发明所公开的内容,均属于本发明的保护范围。

专利地区:湖南

专利申请日期:2021-11-15

专利公开日期:2024-11-29

专利公告号:CN114782511B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
该专利所有权非本平台所有,我方无法提供专利权所有者联系方式,请勿联系我方。
电话咨询
到底部
搜本页
回顶部
开云优惠体育(中国)官网 — 开云优惠体育app下载