本发明涉及图像识别,具体地,涉及一种随机正交结构点云的直线段识别与拟合方法及系统。
背景技术:
1、绝大多数视觉算法是针对图像的,适用于点云数据的算法研究极少。
2、因此,现有技术中,公开号为cn108776776b的发明专利,公开了一种针对图像中水平垂直线段的识别方法,该算法仅用于水平和垂直线段,不能用于有一定倾斜角度的正交线段的识别。
3、公开号为cn102819743b的发明专利,公开了一种快速识别数字图像中直线段的检测方法,该方法适用于二值图像中直线段的检测,但是不能处理点云数据。而本技术公布方法将二值图像转为行程编码格式,压缩了图像的数据量,在运算效率上具有优势。
4、申请号为cn113793354b的发明专利,公开了一种基于霍夫变换的自适应直线检测方法,该方法可用于图像中直线段的识别,同样不能处理点云数据。而本技术公布方法的鲁棒性优于霍夫变换,在有噪声的情况下能获得更好效果。
技术实现思路
1、针对现有技术中的缺陷,本发明提供一种随机正交结构点云的直线段识别与拟合方法及系统。
2、根据本发明提供的一种随机正交结构点云的直线段识别与拟合方法及系统,所述方案如下:
3、第一方面,提供了一种随机正交结构点云的直线段识别与拟合方法,所述方法包括:
4、步骤s1:设定分辨率,并根据分辨率构造能够完整覆盖随机正交结构点云的矩形单元组成的网格,将随机正交结构点云投影至网格,位于矩形单元内的点成为该矩形单元的对应点a,记录全部矩形单元和对应点a,获得投影结果a;
5、步骤s2:将所述投影结果a转化为与网格尺寸相同的二值图像a;
6、步骤s3:对所述二值图像a进行连通域分割,获取连通域分组记录组成连通域分组结果;
7、步骤s4:遍历所述连通域分组结果,将连通域进行行程编码,通过邻接行程投票统计,得出对应的特征方向;
8、步骤s5:遍历所述连通域分组结果,根据所述特征方向,逐组旋转连通域的对应点a,将特征方向对齐坐标轴作为对应点b,然后分别将对应点b投影至网格,得到投影结果b;
9、步骤s6:遍历所述投影结果b,转化为二值图像b,然后进行行程编码,设定长度阈值筛选行程,并生成点云分组结果;
10、步骤s7:遍历点云分组结果,分组进行最小二乘法拟合直线段,并根据每个连通域的特征方向还原至随机正交结构点云的对应位置,生成直线段识别与拟合结果。
11、优选地,所述步骤s3包括:对二值图像a进行连通域分割,并遍历所有面积大于阈值的连通域,统计组成连通域的矩形单元对应点,称为连通域分组记录,所有面积大于阈值的连通域分组记录组成连通域分组结果。
12、优选地,所述步骤s4包括:
13、步骤s4.1:选择一个连通域分组记录,将连通域逐列分解为连续像素组成的列行程a,记录全部列行程a的起点行号与终点行号;
14、步骤s4.2:遍历全部列行程a,检查与当前列行程a相邻的邻接列行程a,计算当前列行程a与邻接列行程a的起点行号之差和终点行号之差,计算结果为列台阶数,记录全部的非零列台阶数;
15、步骤s4.3:统计每种非零列台阶数的频率×台阶数绝对值,将计算结果最大的作为列行程投票结果,计算其列台阶数的反余切函数值,该值为特征方向与竖直坐标轴的夹角;
16、步骤s4.4:保持当前连通域分组记录,将连通域逐行分解为连续像素组成的行行程a,记录全部行行程a的起点列号与终点列号;
17、步骤s4.5:遍历全部行行程a,检查与当前行行程相邻的邻接行行程a,计算当前行行程与邻接行行程a的起点列号之差和终点列号之差,计算结果为行台阶数,记录全部的非零行台阶数;
18、步骤s4.6:统计每种非零行台阶数的频率×台阶数绝对值,将计算结果最大的作为行行程投票结果,计算其行台阶数的反余切函数值,该值为特征方向与水平坐标轴的夹角;
19、步骤s4.7:比较列行程投票结果与行行程投票结果,保留频率×台阶数绝对值更大的结果作为连通域的特征方向;
20、步骤s4.8:选择下一个连通域分组记录,重复步骤s4.1,直到遍历全部的连通域分组结果。
21、优选地,所述步骤s6包括:遍历所述投影结果b,将每组对应点b转化为二值图像b,对二值图像b进行行程编码,记录大于等于用户设定长度阈值的行程,按照行程对应的矩形单元进行点云分组,生成与点云图像中直线段对应的点云分组结果。
22、优选地,所述步骤s6包括:
23、步骤s6.1:选择一组对应点b的投影结果b,同步骤s2转化为二值图像b;
24、步骤s6.2:将二值图像b逐列分解为连续像素组成的列行程b,记录下所有长度大于等于长度阈值的列行程b;
25、步骤s6.3:遍历全部列行程b,每个列行程b的对应点作为一个点云分组记录;
26、步骤s6.4:将二值图像b逐列分解为连续像素组成的行行程b,记录下所有长度大于等于长度阈值的行行程b;
27、步骤s6.5:遍历全部行行程b,每个行行程b的对应点作为一个点云分组记录;
28、步骤s6.6:选择下一组对应点b,重复步骤s6.1,直至遍历全部对应点b,全部点云分组记录构成点云分组结果。
29、第二方面,提供了一种随机正交结构点云的直线段识别与拟合系统,所述系统包括:
30、模块m1:设定分辨率,并根据分辨率构造能够完整覆盖随机正交结构点云的矩形单元组成的网格,将随机正交结构点云投影至网格,位于矩形单元内的点成为该矩形单元的对应点a,记录全部矩形单元和对应点a,获得投影结果a;
31、模块m2:将所述投影结果a转化为与网格尺寸相同的二值图像a;
32、模块m3:对所述二值图像a进行连通域分割,获取连通域分组记录组成连通域分组结果;
33、模块m4:遍历所述连通域分组结果,将连通域进行行程编码,通过邻接行程投票统计,得出对应的特征方向;
34、模块m5:遍历所述连通域分组结果,根据所述特征方向,逐组旋转连通域的对应点a,将特征方向对齐坐标轴作为对应点b,然后分别将对应点b投影至网格,得到投影结果b;
35、模块m6:遍历所述投影结果b,转化为二值图像b,然后进行行程编码,设定长度阈值筛选行程,并生成点云分组结果;
36、模块m7:遍历点云分组结果,分组进行最小二乘法拟合直线段,并根据每个连通域的特征方向还原至随机正交结构点云的对应位置,生成直线段识别与拟合结果。
37、优选地,所述模块m3包括:对二值图像a进行连通域分割,并遍历所有面积大于阈值的连通域,统计组成连通域的矩形单元对应点,称为连通域分组记录,所有面积大于阈值的连通域分组记录组成连通域分组结果;
38、所述模块m4包括:
39、模块m4.1:选择一个连通域分组记录,将连通域逐列分解为连续像素组成的列行程a,记录全部列行程a的起点行号与终点行号;
40、模块m4.2:遍历全部列行程a,检查与当前列行程a相邻的邻接列行程a,计算当前列行程a与邻接列行程a的起点行号之差和终点行号之差,计算结果为列台阶数,记录全部的非零列台阶数;
41、模块m4.3:统计每种非零列台阶数的频率×台阶数绝对值,将计算结果最大的作为列行程投票结果,计算其列台阶数的反余切函数值,该值为特征方向与竖直坐标轴的夹角;
42、模块m4.4:保持当前连通域分组记录,将连通域逐行分解为连续像素组成的行行程a,记录全部行行程a的起点列号与终点列号;
43、模块m4.5:遍历全部行行程a,检查与当前行行程相邻的邻接行行程a,计算当前行行程与邻接行行程a的起点列号之差和终点列号之差,计算结果为行台阶数,记录全部的非零行台阶数;
44、模块m4.6:统计每种非零行台阶数的频率×台阶数绝对值,将计算结果最大的作为行行程投票结果,计算其行台阶数的反余切函数值,该值为特征方向与水平坐标轴的夹角;
45、模块m4.7:比较列行程投票结果与行行程投票结果,保留频率×台阶数绝对值更大的结果作为连通域的特征方向;
46、模块m4.8:选择下一个连通域分组记录,重复触发模块m4.1,直到遍历全部的连通域分组结果。
47、优选地,所述模块m6包括:遍历所述投影结果b,将每组对应点b转化为二值图像b,对二值图像b进行行程编码,记录大于等于用户设定长度阈值的行程,按照行程对应的矩形单元进行点云分组,生成与点云图像中直线段对应的点云分组结果;
48、所述模块m6包括:
49、模块m6.1:选择一组对应点b的投影结果b,同模块m2转化为二值图像b;
50、模块m6.2:将二值图像b逐列分解为连续像素组成的列行程b,记录下所有长度大于等于长度阈值的列行程b;
51、模块m6.3:遍历全部列行程b,每个列行程b的对应点作为一个点云分组记录;
52、模块m6.4:将二值图像b逐列分解为连续像素组成的行行程b,记录下所有长度大于等于长度阈值的行行程b;
53、模块m6.5:遍历全部行行程b,每个行行程b的对应点作为一个点云分组记录;
54、模块m6.6:选择下一组对应点b,重复触发模块m6.1,直至遍历全部对应点b,全部点云分组记录构成点云分组结果。
55、第三方面,提供了一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现所述随机正交结构点云的直线段识别与拟合方法中的步骤。
56、第四方面,提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现所述随机正交结构点云的直线段识别与拟合方法中的步骤。
57、与现有技术相比,本发明具有如下的有益效果:
58、1、通过将点云投影至矩阵单元组成的网格,解决了点云数据无法进行图形运算的问题,达到了使用二值图像代替点云数据参与运算,显著降低计算量的效果;
59、2、通过采用行程编码矩阵的邻接行程投票的方法,解决了直线段检测算法易受噪声干扰、结果不稳定的问题,达到了随机正交结构的识别结果契合人眼观测结果的效果。
60、本发明的其他有益效果,将在具体实施方式中通过具体技术特征和技术方案的介绍来阐述,本领域技术人员通过这些技术特征和技术方案的介绍,应能理解所述技术特征和技术方案带来的有益技术效果。