云计算百科
云计算领域专业知识百科平台

【Point Cloud】3D Data Representations and PointNet(2)

在这里插入图片描述

文章目录

  • 3D 数据与 PointNet
  • 一、3D 数据应用领域与点云介绍
      • 第一步:求中心点
      • 第二步:计算协方差矩阵
      • 第三步:特征值分解
  • 二、点云数据可视化
  • 三、点云任务与数据特性
  • 四、PointNet 的出发点
  • 五、PointNet 网络架构
  • 参考

3D 数据与 PointNet

一、3D 数据应用领域与点云介绍

点云在自动驾驶和增强现实中的应用

注:点云为自动驾驶和增强现实提供场景几何信息,是许多 3D 感知任务的基础数据。

self-driving cars,augmented reality

传感器采集点云

注:激光雷达或深度传感器对物体表面采样,得到由离散三维点组成的点云。

如何获取 3D 数据:传感器扫描后得到的就是点云数据,如何利用点云数据呢?

点云数据集目录

注:示例包含 ModelNet40 分类数据和 ShapeNet 部件分割数据。

ModelNet40 类别目录

注:ModelNet40 按物体类别组织样本,如飞机、椅子、桌子和汽车等。

点云文本文件

注:该样本约含 1 万个点,每行保存一个点的坐标和法向量。

点云单点六维属性

注:此数据集中每个点由 X、Y、Z、Nx、Ny、Nz 六个数描述,后三项为法向量。

深度负责告诉你“点在哪里”,法向量告诉你“这个点所在表面朝哪里”。

法向量怎么计算?核心思想:

找这个点周围的一圈邻居点,拟合一个小平面,然后求这个平面的垂直方向。

数学上怎么求?通常使用 PCA(主成分分析)

假设某个点附近有 N 个点:

P

i

=

(

x

i

,

y

i

,

z

i

)

P_i=(x_i,y_i,z_i)

Pi=(xi,yi,zi)

第一步:求中心点

P

ˉ

=

1

N

P

i

\\bar{P}=\\frac{1}{N}\\sum P_i

Pˉ=N1Pi

第二步:计算协方差矩阵

C

=

1

N

(

P

i

P

ˉ

)

(

P

i

P

ˉ

)

T

C=\\frac1N\\sum(P_i-\\bar P)(P_i-\\bar P)^T

C=N1(PiPˉ)(PiPˉ)T

第三步:特征值分解

C

v

=

λ

v

Cv=\\lambda v

Cv=λv

得到三个方向:

最大特征值方向:
点云变化最大的方向

第二方向:
次大变化方向

最小特征值方向:
变化最小方向

变化最小方向就是:平面的法向量


例如一个桌面:

x方向变化很大
y方向变化很大
z方向几乎不变

所以:

最大:

第二:

最小:

最终:

Normal = (0,0,1)


点云法向量就是点云表面的朝向信息,通过分析一个点附近邻域的几何结构,找到该局部平面的垂直方向;它让点云从“只有位置”升级为“有几何形状的信息”。

桌面:

Normal:
向上

墙:

Normal:
水平

沙发:

多个方向

法向量可以作为几何特征。

点云矩阵结构

注:1 万个六维点可表示为 10000×6 的矩阵;点数和属性维数取决于具体数据集。


二、点云数据可视化

CloudCompare 导入字段设置

注:在 CloudCompare 中将六列依次指定为三维坐标 X、Y、Z 和法向量 Nx、Ny、Nz。

飞机点云

注:飞机由离散点的位置关系表示,即使没有纹理,也能看出机翼和机身轮廓。

椅子点云

注:椅子点云展示了座面、靠背和椅腿等几何结构。


三、点云任务与数据特性

PointNet 支持的三类任务

注:PointNet 可用于物体分类、部件分割和场景语义分割。

语义分割与部件分割示例

注:语义分割为场景中的每个点预测类别,部件分割则区分单个物体的不同组成部分。

多视图三维分类方法

注:传统多视图方法先把 3D 模型渲染为多张 2D 图像,再通过视图池化汇总特征进行分类。

计算上不高效

点云的主要特性

注:点云具有无序、非结构化和采样密度不均等特点,不能直接套用规则网格上的普通卷积。

点云特性具体表现对算法的影响
无序性 点的排列顺序没有实际意义 模型需要具备排列不变性
非结构化 不像图像具有规则网格,点之间没有固定邻接关系 需要通过 KNN、半径搜索、KD-Tree、体素等方式构建邻域
稀疏性 点主要分布在物体表面,三维空间中大量区域为空 适合使用稀疏卷积、体素化等方法降低计算量
密度不均匀 近处点密、远处点稀,不同表面(垂直、倾斜)采样密度不同 特征提取需要适应不同尺度和不同点密度
三维几何信息明确 每个点直接包含 (x,y,z) 坐标 可以直接计算距离、高度、形状、法向量和空间关系
局部结构明显 邻域内可能呈现平面、曲面、边缘或线状结构 可通过法向量、曲率和局部特征描述几何形态
噪声和离群点较多 受测距误差、反射、天气和传感器误差影响 通常需要滤波、去噪和离群点剔除
遮挡与缺失 只能采集传感器可见的物体表面 目标点云往往不完整,识别与配准难度增加
视角相关 不同传感器位置采集到的点云形态不同 需要考虑多视角融合、配准和坐标变换
对旋转和平移敏感 同一物体变换坐标系后,点坐标会发生变化 模型需要处理旋转、平移和尺度变化
属性多样 除坐标外,还可包含颜色、反射强度、时间戳和语义标签 能融合更多信息,但数据处理更加复杂
数据量大 单帧可能包含数万到数百万个点 带来较高的存储、邻域搜索和推理成本

同一物体上的采样差异

注:无序性,上图的点交换,点云没影响

近密远疏现象

注:受扫描距离和视角影响,近处点通常更密,远处或遮挡区域更稀疏。


四、PointNet 的出发点

PointNet 端到端处理点云

注:PointNet 直接接收原始点集,端到端完成分类、部件分割或场景解析。

当下深度学习的核心思想就是一条龙服务(End2End)

置换不变性

注:点的排列顺序不应改变输出,因此网络需要置换不变性;max 和求和都是对称函数。

直接对坐标做最大池化

注:直接对三维坐标取最大值只得到很少的统计量,会丢失大量几何信息。

能不能先升维再做 max 操作

h

(

x

)

h(x)

h(x): 特征升维函数(对应神经网络的隐层),将输入映射到更高维度的空间,eg 3->16->64->128->256->512->1024

g

g

g: 聚合函数(即图中的 Max 操作),用于整合高维特征。

γ

\\gamma

γ: 后续的复合变换或输出层,用于得到最终的结果。

升维后再做最大池化

注:PointNet 先用共享网络把每个点映射到高维特征,再用最大池化汇聚全局信息。

升维其实就是神经网络的 hidden layer


五、PointNet 网络架构

PointNet 基本模型

注:共享 MLP 逐点提取特征,对所有点做最大池化得到全局特征,最后由 MLP 输出结果。

PointNet 分类与分割架构

注:分类分支使用全局特征预测物体类别;分割分支结合全局特征与逐点特征,为每个点分类。

分类是上面蓝色区域所示

PointNet 的输入与特征变换

注:两个 T-Net 分别学习输入坐标和中间特征的对齐变换,提高模型对几何变换的适应性(便于理解整体流程,把 T-Net 抹去了)。

PointNet 特征维度变化

注:输入从 N×3 逐点映射到 N×64、N×1024,再经最大池化得到 1024 维全局特征。

PointNet 分类分支

注:分类分支把 1024 维全局特征送入多层感知机,最终输出 K 个类别分数。

eg:2048 个点云,每个点云 1024 维特征,max 后得到 1024,MLP 后 K-dimension 向量

PointNet 分割分支

注:分割分支将全局特征复制到每个点,与 64 维局部特征拼接成 N×1088,再输出每个点的 M 类分数。

1024 global feature 复制了 N 份和前面的 64 维局部特征 concat,64+1024 = 1088

参考

https://www.bilibili.com/video/BV1edjczQEcZ?spm_id_from=333.788.videopod.episodes&vd_source=a2337ee1e48dbaccac1746d36aed6c99&p=7

在这里插入图片描述

赞(0)
未经允许不得转载:网硕互联帮助中心 » 【Point Cloud】3D Data Representations and PointNet(2)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!