摘要

要调查森林资源,必须确定树种。然而,使用通过光探测和测距 (LiDAR) 收集的树木的 3D 点云来识别树种是一项挑战。PointNet++是一种点云深度学习网络,可以有效地对3D对象进行分类。在应用 PointNet++ 识别树种时,建立高质量的单个树点云数据集非常重要。但是,生成示例数据集有不同的数据处理方法,并且过程繁琐。在这项研究中,我们建议如何通过设计比较实验来选择合适的方法。我们使用背包激光扫描(BLS)系统收集了三个地区总共八种树种的点云数据。采用不同点云归一化方法探究树高对树种分类精度的影响,并通过分离单个树点云的叶子和木材,分析叶点云对分类精度的影响。使用了五种下采样方法:最远点采样 (FPS)、K 均值、随机、网格平均采样和非均匀网格采样 (NGS)。为实验设计了不同采样点的数据。结果表明,使用点云深度学习方法进行树种分类时,树高特征并不重要。对于单季采集的数据,叶点云对分类精度影响不大。我们筛选的两种合适的点云下采样方法是FPS和NGS,当单个树点云的数量在2048-5120范围内时,深度学习网络可以提供最准确的树种分类。我们的研究进一步说明了基于点的端到端深度学习方法可用于对树种进行分类并识别单个树点云。结合低成本、高效率的BLS系统,可有效提高森林资源调查的效率。

关键词:树种;分类;深度学习;点云;背包激光扫描

1.简介

介绍意义+激光雷达+ALS/TLS/MLS+BLS

单个树点云对树种分类——①SVM②RF③其他机器学习方法

点云的深度学习——pointnet和pointnet++——需要大量的训练数据,而公开的点云数据集仅限少量的地面数据——树种分类研究较少

  1. Pointnet++对ALS点云进行语义注释【18】
  2. PointNet++网络结合基于ALS的数据和多光谱图像对三种不同的树种和死树冠进行分类【19】
  3. PointNet++方法对TLS获得的九种树种的单个树点云进行分类【20】

然而:

  1. 使用 PointNet++ 的研究都将单个树点云的 3D 坐标归一化为半径为 1 的单位球面内,从而剥夺了数据的高度特征。没有考虑树高对树种分类精度影响的相关研究。
  2. 大多数对PointNet++模型的研究将单个树点云的点数输入为1024或2048。每个样本需要具有相同的点数才能满足模型输入要求,但没有研究指定样本点云中点数的值,以获得树种的最佳分类精度。要获得样本的固定点数,需要对原始点云进行缩减采样。PointNet++ 中使用的默认方法是最远的点采样。
  3. 【20】使用了2048个点,通过k-means方法聚类获得每棵树;树木的点云数据应采用哪种缩减采样方法仍有待探索。当使用PointNet++网络对单个树点云进行树种分类时,点云归一化的影响、下采样方法的选择、样本中包含的点数以及是否需要去除叶点云对模型分类精度存在不确定性。澄清这些问题的答案以获得更高的分类准确性非常重要。

因此:

为了解决当前研究存在的问题和不足,本研究设计了一系列比较试验。采用两种标准化方法探讨了树高对模型分类精度的影响。对单个树点云进行叶木分离,分析叶片对树种分类精度的影响对比分析了5种点云下采样方法对模型分类精度的影响,选择了适用于单个树种点云树种分类研究的下采样方法。还设计了单个树点云样本的不同采样点的对比测试,以获得合适的点数,以满足PointNet++的模型输入。上述所有问题的解决是使用点云深度学习方法进行树种分类相关研究的重要指南。

2.材料

树种——【1】白桦、落叶松;【2】柳树、杨树、榆树;【3】桉树、中国冷杉

3.方法

完整的实验过程由四个部分组成。

3.1 数据预处理

(1)通过去噪和地面点分离获得植被点云;

在复杂的森林场景中,采用改进的渐进式TIN致密化(IPTD)算法[26]可以获得高精度的地面点云分类结果。利用初始种子点构造初始TIN,然后对TIN进行迭代致密化。迭代角度和迭代距离参数分别设置为8和1.4

(2)分割点云,得到单个树木的点云;

[27]受生态学基础和经典代谢生态学理论的启发,提出了一种比较最短路径(comparative shortest path, CSP)算法,对TLS和MLS数据进行个体树分割。CSP算法采用自底向上的方法对单树进行识别,在检测到树干后,对树冠的点云进行分割。

(3)创建样本数据集来组织样本数据。

3.2 规范化算法

3.3 叶子和木材分离算法

[29]使用深度卷积神经网络方法对两组机载LiDAR数据进行了针叶树和落叶树的分类,分别对有叶和无叶情况进行了单独的树木分割。他们发现,当使用ALS点云进行树种分类时,树叶实验获得了更高的分类精度,这表明树叶提供的信息微不足道。为了探究叶木分离是否会影响BLS采集的LiDAR点云数据的分类精度,设计了叶木分离前后两组数据的对比实验

3.4 缩减采样算法

为了探究PointNet++模型输入的每个树中的点N数可以在树种分类问题中达到较高的分类精度,每种下采样方法设计了九组实验,N等于1024、2048、3072、4096、5120、6144、7168、8192、9216等。

3.5 pointnet++

由于使用BLS获得的现实场吸引云在不同位置具有不同的密度,因此采用多尺度分组(MSG)方法进行本实验。选择多尺度点邻域根据不同的比例大小对图层进行分组,并使用PointNet提取每个比例的要素。

用于实验的深度学习框架是PyTorch(1.10.0 + CUDA 11.3)。Windows 10用于实验,计算机配置如下:Intel Core™ i7-10700KF CPU @ 3.80 GHz,32 GB RAM和NVIDIA GeForce RTX 3070(8 GB)。表 3 显示了本实验中使用的模型超参数和一些优化的配置参数。

4.结果

总共设计了180个实验(2个归一化×2个原始或木材×5个下采样算法×9个样本采样点),以探索和选择模型的最佳输入参数和适用于BLS树种分类的最有效的数据预处理方法。

4.1 不同归一化算法对精度的影响

通过90组对比实验的结果,验证了我们提出的归一化方法与原有的点云模型处理方法是否合理。实验结果如图所示。图中蓝色条的高度表示我们使用固定的归一化比例因子20 (alpha1)设计的实验的分类精度橙色条的高度表示所有点归一化到平均值为零且在一个单位球(alpha2)内的实验的分类精度。从图可以看出,alpha2所有实验的精度都高于alpha1。alpha1实验的分类精度均值为0.81,alpha2实验的分类精度均值为0.96。随着alpha1实验精度的降低,alpha2实验精度变化不大,保持在较高的精度范围内(0.93±0.06)。

4.2 不同降采样方法对应的树种分类精度统计参数

分析了不同降采样方法得到的点云数据中树叶对分类精度的影响。从均值来看,采用NGS方法处理后,原始数据和木材数据的模型分类精度差异最大(为0.0262)。随机抽样方法处理后的模型分类精度差值次之,其他三种方法处理后的实验结果精度差值均小于0.01。图中的最大值表示每种降采样方法的最高分类精度。FPS和NGS方法的最大差异分别为0.0114和0.0142。

4.3 不同降采样方法下的树种分类精度:(a)没有叶木分离的点云数据;(b)木材点云数据。

采用不同降采样方法获得的点云数据的树木三维表示存在差异。重图显示了采用不同降采样方法对叶木分离前后的点云数据进行树种分类的精度。对于没有叶木分离的点云,NGS方法总体分类精度较高,而一些使用随机和K-means方法进行树种分类的实验精度较低。使用木材点云数据进行树种分类,FPS方法总体上获得了更高的精度。

4.4 样本的采样点对分类精度的影响

在点云深度学习模型中,不同样本点的输入对模型精度的影响是不同的。为了探究样本点对分类精度的影响,绘制了各降采样方法在不同点的分类精度曲线。

采样点数量的增加并没有显著提高树种的分类精度。相反,一些实验表明,随着采样点的增加,树种的分类精度降低。从图a可以看出,NGS方法在对原始数据点云处理进行下采样后,整体精度最高,FPS第二高。GAS、random和K-means方法的分类准确率分别在4096点、1024点和2048点达到最高,之后均呈现下降趋势。在小于或等于6144的采样点范围内,所有方法的精度变化不大,6144点之后有不同程度的振荡。所有降抽样方法的精度在7168点处最小,在8192点精度值增加,特别是k均值和随机方法,然后所有方法的精度又开始下降。从图b可以看出,在对木材数据点云进行降采样后,FPS方法的总体趋势是平坦的,对采样点个数的敏感性最低,当采样点个数为3072时,该方法的分类准确率最高。当样本数量小于等于4096时,GAS方法也显示出较高的分类准确率。当采样点数超过2048个时,K-means方法的精度开始下降。

对每种采样方法分别对原始数据和木材数据进行处理后,我们记录的实验结果精度最高(图10)。NGS方法需要更多的采样点来达到最大的分类精度,而K-means和random两种下采样方法所需的采样点较少。

5 讨论

考虑到不同树种的树高差异,设计了一种归一化方法(alpha1),该方法保留了树高信息,但降低了树木分类精度。研究表明,使用树高特征并不能提高模型的分类精度。

在使用FPS方法的实验中,分类精度普遍较高,特别是对于木材数据。当采样点数小于5120时,使用FPS和NGS方法进行原始数据处理可以获得类似的分类精度。K均值方法保留的关键点不能完全表达物体的三维结构特征。FPS和NGS是两种推荐的方法,都可以在原始数据的实验中选择。但是,在木材数据实验中,FPS方法是更好的选择。

        研究表明,过多的采样点并不能显著提高模型的分类精度,甚至可能降低准确率。因此,在相关研究中,与其保留过多的点,不如选择能够完全保留点云细节的缩减采样方法。根据本研究的实验结果,考虑到效率和准确性,我们建议将单个树的采样点数量保持在2048-5120范围内。

6 结论

点云深度学习方法可以高度准确地对树种进行分类。改进数据处理方法,进一步提高分类精度非常重要。通过将点云归一化为单位球面,深度学习模型可以更有效地提取树木的局部特征。使用单个树点云进行树种识别时,树高信息并不重要。当采集的样本数据不受季节因素影响时,叶点云对分类精度的影响较小。使用FPS和NGS下采样方法,可以有效保留树的详细特征,有利于深度学习提取特征。当采样点数在 2048–5120 范围内时,可以获得最高的分类精度。样本数据的质量是深度学习准确性的重要因素。研究结果为样本数据处理方法提供了一系列建议,可以提高分类精度,为进一步构建完整的BLS点云树种分类系统提供技术支持。这些建议对学者今后开展相关研究具有重要的现实意义和参考价值。此外,相关的建议和方法可以扩展到其他类型的点云数据的使用。

【论文阅读】基于PointNet++点云深度学习的背包激光扫描数据的树种分类相关推荐

  1. 【论文速读】点云深度学习论文综述

    点云PCL免费知识星球,点云论文速读. 文章:Deep Learning for 3D Point Clouds: A Survey 作者:Yulan Guo , Hanyun Wang , Qing ...

  2. Patchwork++论文阅读——基于3D点云的快速鲁棒地面分割算法

    文章目录 摘要 1. 介绍 2. 相关工作 A. 基于学习的地面分割方法 B. 传统的地面分割方法 C. 地面分割的应用 3. PATCHWORK++:快速.稳健.自适应的地面分割 A. 问题定义 B ...

  3. 点云深度学习系列博客(二): 点云配准网络PCRNet

    目录 一. 简介 二. 基础结构 三. 项目代码 四. 实验结果 总结 Reference 今天的点云深度学习系列博客为大家介绍一个用于点云配准的深度网络:PCRNet [1].凡是对点云相关应用有些 ...

  4. 点云深度学习:多一维看世界【VALSE Webinar】Panel实录

    编者按:随着深度学习技术的进展,如何通过深度学习对三维数据进行学习并提高几何处理方法的智能性成为近期研究工作的热点.三维技术的发展和应用正在受到学术界和工业界越来越多的关注.VALSE Webinar ...

  5. 打造企业级云深度学习平台——小米云深度学习平台的架构设计与实现

    作者:陈迪豪,小米深度学习工程师,负责小米云深度学习平台的架构和实现,目前专注于TensorFlow和Kubernetes社区. 责编:何永灿,欢迎人工智能领域技术投稿.约稿.给文章纠错,请发送邮件至 ...

  6. 小米云深度学习平台的架构设计与实现

    深度学习服务介绍 机器学习与人工智能,相信大家已经耳熟能详,随着大规模标记数据的积累.神经网络算法的成熟以及高性能通用GPU的推广,深度学习逐渐成为计算机专家以及大数据科学家的研究重点.近年来,无论是 ...

  7. 阿里云深度学习存储解决方案

    介绍 现如今在谈论数据的价值的时候,经常提到的概念之一就是深度学习,或者更广泛的说是人工智能.深度学习系统通常通过大规模的数据集和神经网络算法来训练和完善应用模型,这就需要强大的计算集群,高性能可扩展 ...

  8. 国防科技大学发布最新「3D点云深度学习」综述论文

    点击上方"深度学习技术前沿",选择"星标"公众号 资源干货,第一时间送达 3D点云学习( Point Clouds)作为近年来的研究热点之一,受到了广泛关注,每 ...

  9. 综述 | 国防科技大学发布最新「3D点云深度学习」综述论文

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 编辑:Sophia 计算机视觉联盟  报道  | 公众号 CVLianMeng 转载于 :专知 [人工智能资源(书籍 ...

最新文章

  1. python 导出mysql 视图_【Python基础】mysql数据库视图是什么
  2. MyBatis开发入门二:一对多连表查询
  3. 鱼佬:我的数据挖掘之路!
  4. MongoDB进阶系列(11)——“改”的那些事(二)文档的keyvalue为数组的修改方法...
  5. 【控制】《多智能体系统一致性与复杂网络同步控制》郭凌老师-第9章-结论与展望
  6. 【JavaScript】正则表达式
  7. Android BaseAdapter与ListView的使用
  8. springboot dubbo引入包_spring boot 集成 dubbo 企业完整版
  9. 构建meteor应用程序_我如何在一个月内构建一个复杂的文本分析应用程序
  10. 安工大计算机学院肖维民,安工大路由器实验报告.docx
  11. java中static关键字的理解(转载)
  12. 1486mysql,mysql_error.md
  13. 常用Windows快捷键大全
  14. Matlab实现圆孔夫琅和费衍射
  15. 运行sh文件(pycharm上);pycharm出现错误[: ==: unary operator expected;出错为: If memory is >> allocated;Vm tools安装
  16. MySQL深翻页、MySQL跳页
  17. SEO流量变现,看这个项目就够了!
  18. matlab plot大小,Matlab 修改plot大小
  19. sqlite3, IntegrityError: UNIQUE constraint failed when inserting a value
  20. golang之gorm的事务操作 事务不成功原因

热门文章

  1. 如何理解无偏估计量?
  2. Jenkins由英文界面改成中文界面
  3. curry-function
  4. MySQL数据库——数据查询(三)
  5. 第五章 kubernetes创建kubeconfig 文件
  6. 【论文笔记】Spatiotemporal Residual Networks for Video Action Recognition
  7. php常见的语法错误
  8. 魔兽争霸 / 星际争霸 无法使用 CTRL + 1 进行编队
  9. linux中datanode无法启动【已解决】
  10. 批量去掉或替换文本中的换行符(notepad++、sublime text)