本发明涉及高压线塔数据处理技术领域,具体涉及一种基于机载lidar点云的高压线塔中心坐标提取编号方法及存储介质。
背景技术:
激光雷达(lightdetectionandranging,简称lidar)是集激光、全球定位系统(globalpositioningsystem,简称gps)和惯性导航系统(intertialnavigationsystem,简称ins)技术于一身,可以快速获取地面及地面目标三维信息,lidar技术与成像光谱、合成孔径雷达一起被列为对地观测系统(eos)计划最核心的信息获取与处理技术。它以激光器为发射光源,向探测目标发射高频率激光脉冲来获取目标反射回波,经过系统处理生成大量离散的点——点云,每个点包含x,y,z坐标信息。
原始的高压线塔点云未进行归档分类,多个高压线塔点云无序存储在一个文件中,不便于进行系统化管理和处理。为了获取每个高压线塔的结构信息,需要从原始高压线塔文件中提取每个高压线塔点云。由于提取后的单个高压线塔点云仅具有结构信息,不具有塔号,不便于查询其台账信息。因此,需通过拟合其中心,然后基于其中心坐标和给定的线路起始点位与编号,自动获取线路中每个线塔的塔号。
技术实现要素:
鉴于以上技术问题,本发明的目的在于提供一种基于机载lidar点云的高压线塔中心坐标提取编号方法及介质,解决现有技术提取单个高压线塔点云仅具有结构信息,不具有塔号,不便于查询其台账信息的问题。
本发明采用技术方案如下:
基于机载lidar点云的高压线塔中心坐标提取编号方法,包括:
步骤s10:获取各个高压线塔点云;
步骤s20:根据所有高压线塔点云,计算各个高压线塔中心坐标;
步骤s30:以某个高压线塔某点位为起点,所述起点坐标为s1,起点所在的高线塔塔号为s;设定高压线塔编号的设定线路,根据高压线塔编号的设定线路获取终点,所述终点坐标为s2;基于所述各个高压线塔中心坐标、起点、终点和起点所在的高线塔的塔号,获取各个高压线塔对应的塔号。
进一步的,所述获取各个高压线塔点云的步骤包括:
建立2维格网;将所有高压线塔点云投影在xy平面,并在xy平面进行格网划分;创建元素为0的队列deque;
提取单个高压线塔点云;
对某一格网及其周围领域的点云提取;选定存在点云的任一格网为初始种子点,并将该格网并向该格网周围领域的格网进行遍历,将其中存在点云的格网依次存入队列deque,并移除队列deque中的第一个元素;当队列deque中的元素不为0时,继续进行遍历其周围邻域的格网,并将其存在点云的格网依次存入队列deque,然后移除队列deque中的第一个元素,直到队列deque中的元素为0;当队列deque中的元素为0时,完成单个高压线塔点云的提取;
完成所有高压线塔点云的提取;继续对其他格网及其周围领域的点云提取,直到将所有格网进行遍历。
进一步的,获取单个高压线塔中心坐标的步骤包括:
将单个高压线塔点云沿z方向按设定划分间隔进行划分;
将每个划分间隔内的点云投影至xy平面,并采用pca算法计算每个划分间隔的投影点的两个特征值λ1、λ2,计算特征值比值,所述特征值比值r=max(λ1、λ2)/min(λ1、λ2);
遍历每个划分间隔,若划分间隔特征值比值r小于预设值,将该划分间隔内的点云存在vector容器;
获取vector容器点云中x坐标的最大值xmax和最小值xmin,以及y坐标的最大值ymax和最小值ymin;则单个高压线塔中心点位pi的坐标xaver=(xmin xmax)/2,yaver=(ymin ymax)/2。
进一步的,所述设定划分间隔为1m。
进一步的,基于所述各个高压线塔中心坐标、起点、终点和起点所在的高线塔的塔号,获取各个高压线塔对应的塔号的步骤包括:
计算起点和终点的水平距离dxy,以起点到终点的连线为基准矢量v;
获取起点与各个高压线塔中心点位pi的连线,并分别计算起点与各个连线在基准矢量v上的投影长度li,所述投影长度li满足:li=((pix-s1x)(s2x-s1x) (piy-s1y)(s2y-s1y))/dxy;
其中pix为中心点位pi在x轴上的坐标,piy为中心点位pi在y轴上的坐标,s1x为起点在x轴上的坐标,s1y为起点在y轴上的坐标,s2x为终点在x轴上的坐标,s2y为终点在y轴上的坐标;
将所有投影长度li按大小进行排序,并根据投影长度li在排序队列中的位置进行依次编号,各个高压线塔对应的塔号=起点s1的塔号s 该高压线塔对应投影长度li的编号。
一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现所述的基于机载lidar点云的高压线塔中心坐标提取编号方法。
相比现有技术,本发明的有益效果在于:
本发明通过获取各个高压线塔点云,根据所有高压线塔点云,计算各个高压线塔中心坐标,能实现对输电走廊3维高压线塔点云数据进行单个高压线塔点云分割且提取每个高压线塔的特征面用于拟合其中心,然后基于高压线塔中心坐标和给定的起始坐标与编号,能实现塔号自动匹配,便于高压线塔的系统化管理,为后续的数据处理奠定基础。
附图说明
图1为本发明基于机载lidar点云的高压线塔中心坐标提取编号方法的流程示意图;
图2为本发明实施例中创建2维格网的示意图;
图3为本发明实施例中获取各个高压线塔点云的流程示意图;
图4为本发明实施例中获取高压线塔中心坐标的流程示意图;
图5为本发明实施例中获取各个高压线塔对应的塔号的流程示意图;
图6为本发明实施例中高压线塔未进行编号前的数据示意图;
图7为本发明实施例中自动进行塔号匹配后各个高压线塔对应的塔号示意图。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
实施例:
请参考图1-7所示,基于机载lidar点云的高压线塔中心坐标提取编号方法,如图1所示,包括:
步骤s1:获取各个高压线塔点云;
步骤s2:根据所有高压线塔点云,计算各个高压线塔中心坐标;
步骤s3:以某个高压线塔某点位为起点,所述起点坐标为s1,起点所在的高线塔塔号为s;设定高压线塔编号的设定线路,根据高压线塔编号的设定线路获取终点,所述终点坐标为s2;基于所述各个高压线塔中心坐标、起点、终点和起点所在的高线塔的塔号,获取各个高压线塔对应的塔号。
进一步的,获取单个高压线塔中心坐标的步骤包括:
将单个高压线塔点云沿z方向按设定划分间隔进行划分;
将每个划分间隔内的点云投影至xy平面,并采用pca算法计算每个划分间隔的投影点的两个特征值λ1、λ2,计算特征值比值,所述特征值比值r=max(λ1、λ2)/min(λ1、λ2);
遍历每个划分间隔,若划分间隔特征值比值r小于预设值,将该划分间隔内的点云存在vector容器;
获取vector容器点云中x坐标的最大值xmax和最小值xmin,以及y坐标的最大值ymax和最小值ymin;则单个高压线塔中心点位pi的坐标xaver=(xmin xmax)/2,yaver=(ymin ymax)/2。
进一步的,所述设定划分间隔为1m。
进一步的,基于所述各个高压线塔中心坐标、起点、终点和起点所在的高线塔的塔号,获取各个高压线塔对应的塔号的步骤包括:
计算起点和终点的水平距离dxy,以起点到终点的连线为基准矢量v;
获取起点与各个高压线塔中心点位pi的连线,并分别计算起点与各个连线在基准矢量v上的投影长度li,所述投影长度li满足:li=((pix-s1x)(s2x-s1x) (piy-s1y)(s2y-s1y))/dxy;
其中pix为中心点位pi在x轴上的坐标,piy为中心点位pi在y轴上的坐标,s1x为起点在x轴上的坐标,s1y为起点在y轴上的坐标,s2x为终点在x轴上的坐标,s2y为终点在y轴上的坐标;
将所有投影长度li按大小进行排序,并根据投影长度li在排序队列中的位置进行依次编号,各个高压线塔对应的塔号=起点s1的塔号s 该高压线塔对应投影长度li的编号。
作为具体实施例,本发明包括以下步骤:
1、基于区域增长算法自动提取单个高压线塔点云
此算法采用2维格网区域增长算法,将高压线塔点云投影在xy平面进行格网划分,然后以任意存在点云的格网为初始种子点,向其周围8个格网进行区域增长,直至结束,完成第一个塔的点云提取。然后在剩余的格网中继续选择新的种子点,重复进行区域增长,直至遍历所有格网,完成每个高压线塔点云提取。通过进行格网聚类,既能抵抗高压线塔结构缺失的干扰,又能加快聚类速度。
具体的,包括以下步骤:
s11、将高压线塔点云读入内存,计算点云在x、y方向的最大最小值([xmin,xmax],[ymin,ymax])。
s12、将点云投影在xy平面,创建2维格网,如图2所示,格网宽度为5m(5m为经验值)。将所有的点云存放在对应的格网内。
s13、请参照图3所示,遍历格网,以第一个存在点云的格网为初始种子点,并将其存入队列deque,遍历其周围邻域的8个格网,将其中存在点云的格网依次存入队列deque,然后移除队列deque中的第一个元素。继续以队列deque中的第一个元素为种子点,遍历其周围邻域的8个格网,并将其存在点云的格网依次存入队列deque,然后移除队列deque中的第一个元素。循环往复,直至队列deque为空,完成第一个杆塔的点云提取。然后在剩余的格网中继续选择存在点云的格网为初始种子点,重复上述过程,直至遍历所有的格网,完成所有杆塔点分割。
2、优化的高压线塔中心拟合算法
传统的高压线塔中心计算方法大致可分为两种:一是以所有点的x、y坐标的平均值作为塔中心,计算量大且易受局部点密度不均衡的干扰;二是以塔的外包围盒中心为塔中心,易受塔的上部结构的干扰。此算法是剔除杆塔上部复杂结构和底部不均衡结构的干扰,以中部四棱台结构的外包围盒的中心为塔中心。
具体的,请参照图4所示,包括以下子步骤:
s21、将单个高压线塔点云沿z方向进行划分,划分间隔为1m(1m为通过经验而采取的最佳值);
s22、将每个划分间隔内的点云投影至xy平面,并采用pca算法计算每个划分间隔的投影点的两个特征值λ1和λ1,然后计算特征值比值r=max(λ1、λ2)/min(λ1、λ2)。若r<1.4(1.4为经验值),则将该划分间隔内的点云存在容器vector中。
其中,pca算法的具体过程如下:先计算所有划分间隔的x、y坐标的均值;
再进行归一化处理;
接着,计算协方差矩阵的特征值(λ)和特征向量(v);
sstv=λv
对上式进行λ求解,得到特征值λ1和λ2,就是最终的特征值。
s23、遍历每个划分间隔,并计算r值。若划分间隔特征值比值r<1.4(1.4为经验值),则将该划分间隔内的点云存在容器vector中。
s24、计算容器vector中点云的外包围盒([xmin,xmax],[ymin,ymax]),则单个高压线塔中心坐标xaver=(xmin xmax)/2,yaver=(ymin ymax)/2。
3、高压线塔自动编号算法
在高压线塔未进行编号前,如图6所示,高压线塔没有编号,数据比较杂乱,不便于查询其台账信息。高压线塔编号传统的高压线塔编号方法为手动输入,而本发明设计的高压线塔自动编号算法,各个高压线塔对应的塔号都可自动进行匹配,如图7所示,各个高压线塔对应的塔号均清晰的显示出来,能实现自动获取线路中每个线塔的塔号,相对于传统方法,可极大地加快工作效率。具体的,请参照图5所示,包括以下子步骤:
s31、基于设定线路的起点和终点,计算两点的水平距离dxy,并以起点到终点的连线方向为基准矢量v。
s32、计算起点与每个高压线塔中心点位pi连线在矢量v上的投影长度li:
投影长度li=((pix-s1x)(s2x-s1x) (piy-s1y)(s2y-s1y))/dxy;
其中pix为中心点位pi在x轴上的坐标,piy为中心点位pi在y轴上的坐标,s1x为起点在x轴上的坐标,s1y为起点在y轴上的坐标,s2x为终点在x轴上的坐标,s2y为终点在y轴上的坐标.
s33、对投影长度li按从小到大排序,则各个高压线塔对应的塔号=起点s1的塔号s 该高压线塔对应投影长度li的编号。
本发明通过获取各个高压线塔点云,根据所有高压线塔点云,计算各个高压线塔中心坐标,能实现对输电走廊3维高压线塔点云数据进行单个高压线塔点云分割且提取每个高压线塔的特征面用于拟合其中心,然后基于高压线塔中心坐标和给定的起始坐标与编号,能实现塔号自动匹配,便于高压线塔的系统化管理,为后续的数据处理奠定基础。
本发明还提供一种计算机存储介质,其上存储有计算机程序,本发明的方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在该计算机存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机存储介质不包括电载波信号和电信信号。
对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。
1.基于机载lidar点云的高压线塔中心坐标提取编号方法,其特征在于,包括:
获取各个高压线塔点云;
根据所有高压线塔点云,计算各个高压线塔中心坐标;
以某个高压线塔某点位为起点,所述起点坐标为s1,起点所在的高线塔塔号为s;设定高压线塔编号的设定线路,根据高压线塔编号的设定线路获取终点,所述终点坐标为s2;基于所述各个高压线塔中心坐标、起点、终点和起点所在的高线塔的塔号,获取各个高压线塔对应的塔号。
2.根据权利要求1所述的基于机载lidar点云的高压线塔中心坐标提取编号方法,其特征在于,所述获取各个高压线塔点云的步骤包括:
建立2维格网;将所有高压线塔点云投影在xy平面,并在xy平面进行格网划分;创建元素为0的队列deque;
提取单个高压线塔点云;
对某一格网及其周围领域的点云提取;选定存在点云的任一格网为初始种子点,并将该格网并向该格网周围领域的格网进行遍历,将其中存在点云的格网依次存入队列deque,并移除队列deque中的第一个元素;当队列deque中的元素不为0时,继续进行遍历其周围邻域的格网,并将其存在点云的格网依次存入队列deque,然后移除队列deque中的第一个元素,直到队列deque中的元素为0;当队列deque中的元素为0时,完成单个高压线塔点云的提取;
完成所有高压线塔点云的提取;继续对其他格网及其周围领域的点云提取,直到将所有格网进行遍历。
3.根据权利要求1所述的基于机载lidar点云的高压线塔中心坐标提取编号方法,其特征在于,获取单个高压线塔中心坐标的步骤包括:
将单个高压线塔点云沿z方向按设定划分间隔进行划分;
将每个划分间隔内的点云投影至xy平面,并采用pca算法计算每个划分间隔的投影点的两个特征值λ1、λ2,计算特征值比值,所述特征值比值r=max(λ1、λ2)/min(λ1、λ2);
遍历每个划分间隔,若划分间隔特征值比值r小于预设值,将该划分间隔内的点云存在vector容器;
获取vector容器点云中x坐标的最大值xmax和最小值xmin,以及y坐标的最大值ymax和最小值ymin;则单个高压线塔中心点位pi的坐标xaver=(xmin xmax)/2,yaver=(ymin ymax)/2。
4.根据权利要求3所述的基于机载lidar点云的高压线塔中心坐标提取编号方法,其特征在于,所述设定划分间隔为1m。
5.根据权利要求1所述的基于机载lidar点云的高压线塔中心坐标提取编号方法,其特征在于,基于所述各个高压线塔中心坐标、起点、终点和起点所在的高线塔的塔号,获取各个高压线塔对应的塔号的步骤包括:
计算起点和终点的水平距离dxy,以起点到终点的连线为基准矢量v;
获取起点与各个高压线塔中心点位pi的连线,并分别计算起点与各个连线在基准矢量v上的投影长度li,所述投影长度li满足:li=((pix-s1x)(s2x-s1x) (piy-s1y)(s2y-s1y))/dxy;
其中pix为中心点位pi在x轴上的坐标,piy为中心点位pi在y轴上的坐标,s1x为起点在x轴上的坐标,s1y为起点在y轴上的坐标,s2x为终点在x轴上的坐标,s2y为终点在y轴上的坐标;
将所有投影长度li按大小进行排序,并根据投影长度li在排序队列中的位置进行依次编号,各个高压线塔对应的塔号=起点s1的塔号s 该高压线塔对应投影长度li的编号。
6.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-5任一项所述的基于机载lidar点云的高压线塔中心坐标提取编号方法。
技术总结