目录

PCT_Jittor

A Jittor implementation of Point Cloud Transformer (PCT) for ModelNet40 classification.

项目简介

本项目是基于 Jittor 深度学习框架实现的 Point Cloud Transformer (PCT),用于 ModelNet40 三维形状分类任务。PCT 是一种面向点云数据的分类网络,通过自注意力机制建模点与点之间的全局关系,实现高精度的三维点云分类。

主要特性

  • 完整的 PCT 网络实现,包含 4 个自注意力模块
  • 基于 Jittor 框架,支持高效训练和推理
  • 包含数据增强策略(随机旋转、缩放、抖动等)
  • 提供完整的训练、评估和推理流程

环境要求

  • Python 3.7+
  • Jittor 1.3+
  • NumPy
  • Linux/Windows (WSL) 操作系统
  • C++ 编译器 (g++ 或 clang)

安装指南

  1. 安装 Jittor:
    pip install jittor

详细安装教程请参考:https://cg.cs.tsinghua.edu.cn/jittor/download/

  1. 克隆仓库:

    git clone https://gitlink.org.cn/paddioven/pct-jittor.git
    cd pct-jittor
  2. 下载数据集: 将 ModelNet40 数据集下载并解压到 data/ 文件夹下,包括:

  • train_points.npy
  • train_labels.npy
  • test_points.npy
  • categories.txt

使用方法

训练模型

python pct.py --epochs 100 --batch_size 32 --lr 0.001

主要参数说明:

  • --epochs: 训练轮数
  • --batch_size: 批次大小
  • --lr: 学习率
  • --optimizer: 优化器(可选 adam/sgd)
  • --n_points: 输入点数量(默认 1024)
  • --tta_num: 测试时增强次数

推理与预测

训练完成后,程序会自动生成 result.json 文件,包含测试集的预测结果。

网络架构

PCT 网络结构包括:

  1. 特征嵌入:使用两个 Conv1d 层将 3D 坐标映射到高维特征空间
  2. 自注意力模块:4 个 SA_Layer,用于建模点云的全局关系
  3. 特征融合:拼接 4 个自注意力模块的输出
  4. 全局池化:最大池化获取全局特征向量
  5. 分类头:3 层全连接层完成 40 类分类

项目结构

pct-jittor/
├── pct.py          # 主程序文件
├── README.md       # 项目说明文档
├── .gitignore      # Git忽略文件
└── result.json     # 测试集预测结果

许可证

本项目仅供学习和研究使用。

关于

A Jittor implementation of Point Cloud Transformer(PCT) for ModelNet40 classification

44.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号