电力线和杆塔点的网格随机采样方法、系统及存储介质技术方案

技术编号:34797589 阅读:13 留言:0更新日期:2022-09-03 20:03
本发明专利技术实施例公开了一种电力线和杆塔点的网格随机采样方法、系统及存储介质,设置当前网格,在当前网格内设置网格内数据结构存储格式;遍历当前单帧点云所覆盖的当前点云,将当前点云的点云坐标(X,Y,Z)以适应所述网格内数据结构存储格式方式插入到当前网格内。通过在每个点云的数据结构添加时,都可以按照上述网格内数据结构存储格式方式进行;由于无人机在飞行过程中,在很短的时间内也就是连续两帧的点云数据场景变化很小,这样每个构建好的格网(或称网格)的内存基本都无需变动,仅仅需要极少量的插入和删除操作即可实现下一帧的点的存储,无需内存的反复释放与申请,极大的提高了效率,减少了内存占用。减少了内存占用。减少了内存占用。

【技术实现步骤摘要】
电力线和杆塔点的网格随机采样方法、系统及存储介质


[0001]本专利技术涉及输电线路巡检
,尤其涉及一种电力线和杆塔点的网格随机采样方法、系统及存储介质。

技术介绍

[0002]输电线路巡检是保障电力系统稳定运行基本措施,开发稳定可靠输电线路巡检系统具有重大意义。传统的电力线巡检方法主要通过人工巡检,劳动强度大,效率低,在复杂地形和环境下作业困难且容易发生危险,难以满足当前电网的安全、高效运维需要。
[0003]在进行点云采样过程中,需要选择相应算法处理实现对有需要的点云进行采样,然而不需要的点云应当尽量过滤:例如:主要是需要电力线点和杆塔点;一般来说,在激光器采集的一定时间原始点云之后,背景点(即此时的非电力线点和杆塔点)较多,显然上述背景点没有太大用途,可以通过采样方式减少点云数量,同时尽可能保留电力线点和杆塔点。由于在机载平台计算单元计算能力相对较低,需要尽可能满足高效率,减少较低的内存占用。因此,如何克服上述问题是本领域技术人员急需解决的问题。

技术实现思路

[0004]有鉴于此,本专利技术实施例提出一种电力线和杆塔点的网格随机采样方法、系统及存储介质,用以解决
技术介绍
中指出的问题。
[0005]本专利技术实施例提供了一种电力线和杆塔点的网格随机采样方法,包括:
[0006]设置当前网格,在当前网格内设置网格内数据结构存储格式;
[0007]遍历当前单帧点云所覆盖的当前点云,将当前点云的点云坐标(X,Y,Z)以适应所述网格内数据结构存储格式方式插入到当前网格内。
[0008]优先的,作为一种可实施方案;所述设置当前网格,在当前网格内设置网格内数据结构存储格式;遍历当前单帧点云所覆盖的当前点云,将当前点云的点云坐标(X,Y,Z)以适应所述网格内数据结构存储格式方式插入到当前网格内,具体包括如下操作:
[0009]步骤S100,获取输入的单帧点云,对当前单帧点云所覆盖的每个点进行遍历,记当前单帧点云的每个点在当前空间导航坐标系的坐标对应为点坐标(X,Y,Z),在当前空间导航坐标系的坐标查找其最小坐标(Xmin,Ymin,Zmin)的点,实现标记为最小坐标点(Xmin,Ymin,Zmin);
[0010]步骤S200,预设当前网格,设置当前网格为体积大小数值为d的立方体,将每个点转化投影到当前网格中,根据每个点坐标(X,Y,Z)与最小坐标点(Xmin,Ymin,Zmin)关系计算每个点坐标(X,Y,Z)在当前网格中的坐标(px,py,pz)并记为网格节点坐标(px,py,pz),所述网格节点坐标计算可表达为:
[0011]px=(X

Xmin)/d;
[0012]py=(Y

Ymin)/d;
[0013]pz=(Z

Zmin)/d;
[0014]步骤S300,在当前网格内设置网格内数据结构存储格式,包括;
[0015]设置当前网格的内存单元,所述内存单元用于通过C++标准库中List列表实现对当前网格节点的插入以及删除操作,并用于存储所述点坐标的数据结构PointXYZ;
[0016]其中,对当前网格节点的插入操作,包括:
[0017]设置每个点坐标的数据结构为PointXYZ,设置每个点坐标(X,Y,Z)在当前网格内存储的数据结构则记为Vector<PointXYZ>;其中Vector为C++标准库中的容器,所述C++标准库中的容器用于连续存储所述点坐标的数据结构PointXYZ;
[0018]利用哈希表建立每个网格节点坐标(px,py,pz)与C++标准库中List列表建立键值对,并存储所述键值对;所述C++标准库中List列表用于存储每个点坐标(X,Y,Z)在当前网格内存储的数据结构,以及当前网格内存储的数据结构对应的每个点;
[0019]所述键值对key的计算方法如下:key=px*py*pz+px*py+px;所述键值对key用于对网格节点的坐标以及C++标准库中List中的网格节点进行关联表达,由于key所关联的对象为List的迭代器,即在哈希表使用key便可以快速找到List中多对应的网格点云Vector<PointXYZ>;
[0020]遍历当前单帧点云所覆盖的所有点,在当前点云的点云坐标(X,Y,Z)以适应所述网格内数据结构存储格式方式插入到当前网格之前,首先利用步骤S300中的键值对key的计算方法计算每个当前点云转换对应的网格节点的键值对key,在当前哈希表中查找是否存在相同网格节点的键值对key,若不存在,在所述C++标准库中List列表中构建新的Vector<PointXYZ>,并将当前点云坐标(X,Y,Z)插入新建的Vector<PointXYZ>中,之后将新建的Vector<PointXYZ>插入到C++标准库中List列表的前端,同时采用上述步骤S200和步骤S300的方法计算网格节点对应的键值对key,在哈希表中插入键值对key,通过键值对key对当前网格节点的坐标以及C++标准库中List中的网格节点进行关联操作;若相同网格节点的键值对key已存在,则从C++标准库中List列表中找到对应的网格节点的Vector<PointXYZ>,将当前坐标(X,Y,Z)插入相同网格节点的键值对key对应的网格节点中;
[0021]其中,对当前网格节点的删除操作,包括:
[0022]通过C++标准库中List列表的列表内网格节点数量最大阈值进行设置;
[0023]实时对所述C++标准库中List列表的列表内网格节点的数量进行判断,当检测发现当前列表内网格节点的数量大于网格节点数量最大阈值时,则对当前C++标准库中List列表中队列列表末尾处的网格节点进行删除,并将对应的键值对key在哈希表中删除,此时,内存单元执行内存释放操作。
[0024]优先的,作为一种可实施方案;上述电力线和杆塔点的网格随机采样方法,还包括对当前网格节点清空操作;
[0025]步骤S400,检测当前单帧点云是否处理完毕,在当前单帧点云处理完毕后且连续两帧中下一个当前单帧点云进入之前,将所述C++标准库中List列表中Vector<PointXYZ>内的点全部清除;
[0026]且此时所述内存单元的内存并不执行释放操作。
[0027]优先的,作为一种可实施方案;上述还包括根据密度随机采样方式获得最终采样点云结果操作。
[0028]根据密度随机采样方式获得最终采样点云结果操作,包括:
[0029]步骤S510:在构建好的每个网格节点中保存了不同数量的原始点,所述原始点包括地面点,背景点、电力线点、杆塔点;
[0030]步骤S520:构造一个均匀分布的随机概率为p,对每个网格节点进行遍本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种电力线和杆塔点的网格随机采样方法,其特征在于,包括:设置当前网格,在当前网格内设置网格内数据结构存储格式;遍历当前单帧点云所覆盖的当前点云,将当前点云的点云坐标(X,Y,Z)以适应所述网格内数据结构存储格式方式插入到当前网格内。2.根据权利要求1所述的一种电力线和杆塔点的网格随机采样方法,其特征在于,设置当前网格,在当前网格内设置网格内数据结构存储格式;遍历当前单帧点云所覆盖的当前点云,将当前点云的点云坐标(X,Y,Z)以适应所述网格内数据结构存储格式方式插入到当前网格内,具体包括如下操作:步骤S100,获取输入的单帧点云,对当前单帧点云所覆盖的每个点进行遍历,记当前单帧点云的每个点在当前空间导航坐标系的坐标对应为点坐标(X,Y,Z),在当前空间导航坐标系的坐标查找其最小坐标(Xmin,Ymin,Zmin)的点,实现标记为最小坐标点(Xmin,Ymin,Zmin);步骤S200,预设当前网格,设置当前网格为体积大小数值为d的立方体,将每个点转化投影到当前网格中,根据每个点坐标(X,Y,Z)与最小坐标点(Xmin,Ymin,Zmin)关系计算每个点坐标(X,Y,Z)在当前网格中的坐标(px,py,pz)并记为网格节点坐标(px,py,pz),所述网格节点坐标计算可表达为:px=(X

Xmin)/d;py=(Y

Ymin)/d;pz=(Z

Zmin)/d;步骤S300,在当前网格内设置网格内数据结构存储格式,包括;设置当前网格的内存单元,所述内存单元用于通过C++标准库中List列表实现对当前网格节点的插入以及删除操作,并用于存储所述点坐标的数据结构PointXYZ;其中,对当前网格节点的插入操作,包括:设置每个点坐标的数据结构为PointXYZ,设置每个点坐标(X,Y,Z)在当前网格内存储的数据结构则记为Vector<PointXYZ>;其中Vector为C++标准库中的容器,所述C++标准库中的容器用于连续存储所述点坐标的数据结构PointXYZ;利用哈希表建立每个网格节点坐标(px,py,pz)与C++标准库中List列表建立键值对,并存储所述键值对;所述C++标准库中List列表用于存储每个点坐标(X,Y,Z)在当前网格内存储的数据结构,以及当前网格内存储的数据结构对应的每个点;所述键值对key的计算方法如下:key=px*py*pz+px*py+px;所述键值对key用于对网格节点的坐标以及C++标准库中List中的网格节点进行关联表达;遍历当前单帧点云所覆盖的所有点,在当前点云的点云坐标(X,Y,Z)以适应所述网格内数据结构存储格式方式插入到当前网格之前,首先利用步骤S300中的键值对key的计算方法计算每个当前点云转换对应的网格节点的键值对key,在当前哈希表中查找是否存在相同网格节点的键值对key,若不存在,在所述C++标准库中List列表中构建新的Vector<PointXYZ>,并将当前点云坐标(X,Y,Z)插入新建的Vector<PointXYZ>中,之后将新建的Vector<PointXYZ>插入到C++标准库中List列表的前端,同时采用上述步骤S200和步骤S300的方法计算网格节点对应的键值对key,在哈希表中插入键值对key,通过键值对key对当前网格节点的坐标以及C++标准库中List中的...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:深圳绿土智新科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1