点云实战--二维PCA处理

TASK:Perform PCA for the 40 objects, visualize it

使用MODELNET40数据集,选择数据集中的几张图片,使用PCA方法处理,并可视化。

MODELNET40数据集下载可去官方网站下载,或者别人的Gethub项目下载,本文使用的其中的几个模型文件。

一、MODELNET40数据集

ModelNet40 是一个广泛使用的三维计算机视觉和机器学习领域的数据集,专为3D形状分类任务设计。该数据集由 Princeton 大学的学者创建并发布,主要用于评估和训练算法在识别和分类不同三维几何形状方面的性能。

关键特性:

  • 类别数量:ModelNet40 包含了40种不同的室内家具和日常物品类别,每个类别都有大量的三维模型实例。
  • 数据形式:模型通常以点云或网格的形式提供,原始数据可能包含.off.ply等格式文件,也有研究者将其转化为.hdf5格式方便快速加载和处理(本文使用的是txt文件格式的数据,每一个模型的点为文本中的一行,每行数据由6个数组成,前三个为三维坐标,后三个为颜色r,g,b归一化到[-1,1])。

根据之前的PCA原理分析,我们为了求得点云的主成分,只需要计算一个坐标的协方差矩阵 X . X T X.X^T X.XT(具体到本文使用的数据集是计算 X T . X X^T.X XT.X)的特征向量。最大特征值对应的特征向量为第一主成分,第二主成分为第二大的特征值对应的特征向量。

二、处理流程

开始 → 数据预处理 ↓

  1. 加载数据 → 中心化数据

  2. 计算协方差矩阵/相关矩阵

  3. 求解特征值与特征向量 → 选择主成分(PCA方向)

  4. 进行数据投影 → 得到降维后的主成分数据

  5. 可视化PCA结果:
    → PCA得分散点图(前两个主成分)
    → 主成分载荷图(变量在主成分上的权重分布)
    → 残差图(原始数据与PCA重构数据的差异)

    结束

三、python实现,不使用PCA库

1.1 加载数据,中心化

def load_point_cloud(file_path):
    # 读取txt文件
    with open<
  • 19
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值