logo资料库

关于3DGNN框架的探讨研究文章(文末附项目主要代码).pdf

第1页 / 共35页
第2页 / 共35页
第3页 / 共35页
第4页 / 共35页
第5页 / 共35页
第6页 / 共35页
第7页 / 共35页
第8页 / 共35页
资料共35页,剩余部分请下载后查看
绪论
研究背景
研究目的及意义
国内外研究现状
理论基础
深度信息编码
K最近邻(K-Nearest Neighbor,KNN)算法
有向图
图卷积神经网络
图信号处理
图傅里叶变换
图滤波器
图卷积网络
方法介绍
数据集与预处理
有向图构建
传播模型
预测模型
精度评定
可视化
实验结果与分析
结果展示与说明
总结
结论与展望
结论
展望
参考文献
论文补充代码
Python代码
训练精度统计代码块
GIF生成代码块
Matlab代码
分割结果可视化代码块
写在最后
摘 要 近年来,图神经网络(Graph Neural Network)作为一类新兴的图学习技术,因 其采用图类型数据,可以接收指定领域节点特征信息的状态,从而具备了丰富的 信息承载能力,逐渐成为学术界的研究风向之一,使得将其应用于点云数据的分 割成为可能。本文将以基于 RGB­D 数据集的图神经网络语义分割方法为例 [1],借 鉴 3DGNN 网络模型的思想,将 RGB­D 数据 HHA 编码后,生成三维点云数据,再 通过 KNN 算法对三维点云进行图同构,应用于图神经网络中,实现三维点云数据 的语义分割。 关键词:图神经网络;点云;RGB­D;语义分割
ABSTRACT In recent years, graph neural network (GNN), as a new kind of graph learning tech­ nology, has become one of the research directions in the academic circle because it can receive the state of the characteristic information of the specified domain nodes by using graph type data, thus it has rich information carrying capacity, which makes it possible to apply it to the segmentation of point cloud data. This paper will take the semantic segmentation method of graph neural network based on rgb­d data set as an example[1], draw lessons from the idea of 3dgnn network model, encode rgb­d data to HHA, gener­ ate three­dimensional point cloud data, and then use KNN algorithm to isomorphize the three­dimensional point cloud, and apply it to graph neural network to realize the semantic segmentation of three­dimensional point cloud data. Key words: graph neural network; point cloud ; RGB­D ;semantic segmentation
目 录 1 绪论 ················································································· 1.1 研究背景 ······································································ 1.2 研究目的及意义······························································ 1.3 国内外研究现状······························································ 2 理论基础··········································································· 2.1 深度信息编码 ································································ 2.2 K 最近邻 (K­Nearest Neighbor,KNN) 算法 ································ 2.3 有向图········································································· 2.4 图卷积神经网络······························································ 2.4.1 图信号处理································································· 2.4.2 图傅里叶变换 ······························································ 2.4.3 图滤波器 ··································································· 2.4.4 图卷积网络································································· 3 方法介绍··········································································· 3.1 数据集与预处理······························································ 3.2 有向图构建 ··································································· 3.3 传播模型 ······································································ 3.4 预测模型 ······································································ 3.5 精度评定 ······································································ 3.6 可视化········································································· 4 实验结果与分析 ································································· 4.1 结果展示与说明······························································ 4.2 总结 ··········································································· 5 结论与展望 ······································································· 5.1 结论 ··········································································· 1 1 2 2 4 4 4 6 7 8 8 9 10 13 13 14 15 15 16 17 18 18 20 22 22
5.2 展望 ··········································································· 参考文献················································································ 附录 A 论文补充代码 ····························································· A.1 Python 代码 ··································································· A.1.1 训练精度统计代码块······················································ A.1.2 GIF 生成代码块···························································· A.2 Matlab 代码 ··································································· A.2.1 分割结果可视化代码块··················································· A.3 写在最后 ······································································ 22 23 26 26 26 27 28 28 31
1.1 研究背景 1 绪论    近年来,图神经网络(Graph Neural Network)[2] 作为一类新兴的图学习技 术,因具备了处理非规则结构数据的能力,逐渐成为学术界的研究风向之一。图神 经网络的出现并非偶然,深度神经网络技术兴起于上世纪 90 年代,随后图像、文 本、语音等形式的规则化数据在深度学习中被很好得应用,诞生了如人脸识别、目 标检测与识别等实用技术。但是现实世界的信息并不都以此类数据呈现,例如人 际社交网络、网络节点图、化学分子结构等大量网络型数据,无法用传统的规则 结构化数据类型承载这些信息,即传统的深度学习框架无法有效的对这类关系或 非结构化信息适配。因此,将图数据与深度学习有机结合,是一种十分自然和必 须的趋势。    图神经网络通过图节点之间的信息传递来获取整体的图数据模型,它不同于 标准神经网络的地方在于:图神经网络保留了一种可以以任意深度来表示来自节 点领域的信息的状态。这使得在图上可以便捷地执行拓扑结构和连接性分析、群 体检测分析、节点类别分析、缺失的节点或边预测分析等。 遥感是社会发展中信息革命的产物,数据采集方式正向着多维度、多角度、多 元化发展,因此,十分有必要找到一种可以将多维度数据重构成包含因果信息的 数据的方法,来挖掘遥感数据中无法通过常规方法获取的拓扑信息。三维点云数 据包括了颜色信息(RGB)、空间信息(XYZ)、激光回波强度信息等 [3],蕴藏着 丰富的逻辑推理信息、几何结构信息和空间拓扑信息等,传统的点云信息提取普 遍存在过分割、欠分割、效率低、分割尺度单一、参数统计量单一的问题,对点 云数据的多种类型基元的描述表达、多尺度分割、同一尺度不同基元的三维空间 拓扑关系建立和描述、不同尺度基元的上下文关系建立和描述、多尺度特征提取 和选择等核心问题还缺乏深入的研究。原始点云采集信息是非规则化、非结构化、 无序的,目前广泛使用的卷积神经网络是对这类信息进行预处理、重采样后再输 入网络进行学习,并不能直接应用于这类数据。如何实现三维大场景点云精准语 义分割是当前一大难题。 因此本文将以基于 RGB­D 数据集的图神经网络语义分割方法为例,借鉴 3DGNN 一文中的方法思路 [1],将三维点云数据应用于图神经网络中,进行图网络学习,并 1
提出改进的思路和优化策略,以实现 3D 点云数据实例分割。 1.2 研究目的及意义 本文将利用 3DGNN 的思想和基本路线,发展出一种适合于遥感影像的低空/高 空影像点云数据分割的网络模型。通过研究 RGB­D 的构成以及 HHA 编码的原理, 对 3D 点云数据进行类似的编码操作,之后构建图数据用以深度学习,并将此方法 应用于遥感中的场景识别和目标检测与分类等。 利用 RGB­D 数据位置特征 (XYZ) 和颜色特征(RGB),通过 HHA 编码,生 成更加精确的深度图像,大幅度提高地面物体识别和分割的准确率,为遥感领域 下的语义分割、场景分析等方面提供技术支持。 1.3 国内外研究现状 在 PointNet[4] 提出之前,传统的基于人工特征和机器学习的分割算法层出不 穷,如:随机抽样一致算法(Ran Sac)[5]、基于临近信息(KD Tree、八叉树 OC Tree)分割算法 [6]、基于凹凸型的分割算法 [7] 以及聚类算法等。但这些算法十分 依赖 GPU 加速、降采样处理等方法,所提取的特征对点云密度具有一定的耦合性, 缺乏模块扩展与场景迁移应用的能力,在应对复杂多变场景和超大点云数据时力 不从心;并且,对大范围场景下出现物体被遮挡或者重叠通常表现较差;此外,这 些方法无法满足实时性应用。 点云分割的发展总趋势是从二维视图到三维立体空间,从需要提取特征、预 处理、降采样到端对端直接输入式学习,由于思路来源不同,出现了五类基本发展 方向 [8, 9]:分别是基于投影和视图的方法、基于体素的方法、基于无序点云的方 法、基于有序点云的方法、无监督学习的方法。由于本文所采用的网络框架和思 路方法大体属于基于投影和视图的方法,这里将详细说明一下。 第一类是基于投影和视图的方法, 如图所示是该类方法的基本介绍 1.1,该类 方法为了利用基于 CNN 的网络框架,将点云光栅转化为 2.5D 结构化图像阵列,按 照一定方式展开,将三维对象投影至二维空间上。该方法避免了复杂的 3D 处理, 并且可以借鉴摄影测量中成熟的图像处理技术,进行模型预训练。近年来,随着各 类 RGB­D 传感器的广泛应用,越来越多的研究倾向于设计 RGB­D 图像的网络架 构,这是因为 Boulch 等人提出的 SnapNet 网络架构 [10] 很好地解决了 RGB­D 数 2
据和点云数据的结构类型不一致问题,该网络生成的图像包括了点云的几何特征 的融合图像。该类方法虽然会损失摄影轴方向的维度信息,但可以较好的应用于 小型和特定的场景,具有实用性强的优势。 图 1.1 几种基于投影和视图的方法 此外,基于无序点云的方法(也称点方法)是目前点云分割的主流发展方向,其 特点是直接输入原始数据,不对点云数据做任何变换,直接作为输入数据,符合深度 学习的端到端结构的思想。最早进行直接输入点云数据的网络是 PointNet[4],该网 络没用卷积核预先提取特征等预处理,网络由全连接层组成,虽然引入了大量待解 参数,但可以解决点云无序性、几何旋转的问题,之后业内又提出了 PointNet++[11]、 Pointconv[12] 作为改进,但这三类网络都在做数据预处理时,将场景分割为 1m*1m 的点云块,丢失了大量整体几何结构信息,无法有效学习空间的几何结构知识。为 解决以上问题,Qingyong Hu 等人在 2020 年提出 RandLA­Net[13], 该网络基于随机 降采样和局部特征聚合方法,在 Semantic3D、SemanticKITTI 数据集上取得了很不 错的效果,提高了分割精度,为解决大场景点云分割问题提供了一种思路。 3
2.1 深度信息编码 2 理论基础 深度特征信息在室内场景分割与识别问题中承担着重要角色, 它可以极大地 提高机器学习的认知水平。深度信息编码,最简单的方法是把 Kinect 深度相机获 得的深度图线性重定标到 0­255,在输入层中增加一个通道。另一种方法是使用三 个通道对深度图重新编码,这三个通道分别是水平视差、高于地面的高度和像素 的局部表面与推断重力方向的倾角,然后把 HHA 编码得到的 3 类数据,线性重定 标到 0 255(8 比特位)转化为 RGB 图像,这种编码方式称为 HHA[14]。 本文使用 HHA 编码方法,下面介绍 HHA 编码方法。 第一步:通过深度图像和双目相机定标参数等指标获取点云数据。根据像素 坐标与相机中心点和物象点的共线关系,将深度图上的点转为相机坐标系中的三 维点,然后将三维点组成新图像的三个通道。 第二步:计算点的法向 [15]。通过对原点的周围 R 个点进行计算,得出每个 点位对应的三维点的法向方向 N(原点到三维点的连线)。 第三步:估算重力的方向。思路是根据三维坐标信息找到适当的“平行边”和 “垂直边”的集合。 第四步:构造 HHA。 1. 第一个 H 为点云的 Z 轴上的数据(原始图的深度,horizontal disparity 水平差 异); 2. 第二个 H 为点云的 Y 轴的数据(点相对于地面的高度,height above ground); 3. 第三个 A 为根据配准后的法向,计算出的每个点的法向和重力方向所构成的 角度; HHA 编码的目的在于通过焦距以及投影坐标矩阵修正坐标投影,便于通过 KNN 算法来构建有向图。 2.2 K 最近邻 (K­Nearest Neighbor,KNN) 算法 K 最近邻 (K­Nearest Neighbor,KNN) 算法,是一种模式识别中十分简单有效的 统计方法,在机器学习分类算法中占有相当大的地位。在本次实验中,我们将使 4
分享到:
收藏