目录

PCT - Point Cloud Transformer for ModelNet40 Classification

基于 Jittor 框架实现的 PCT (Point Cloud Transformer) 模型,用于 ModelNet40 三维点云形状分类任务。

参考论文: PCT: Point Cloud Transformer (Guo et al., 2021)

环境安装

  • Python >= 3.7
  • 安装依赖:
pip install -r requirements.txt

数据准备

  1. 下载 ModelNet40 预处理数据,解压后确保 data/ 目录结构如下:
data/
├── train_points.npy    # 训练点云 (N_train, 2048, 3)
├── train_labels.npy    # 训练标签 (N_train,)
├── test_points.npy     # 测试点云 (N_test, 2048, 3)
└── categories.txt      # 类别名称 (40类)
  1. 数据路径可通过 --data_dir 参数或配置文件 configs/default.yaml 中的 data.data_dir 字段指定。

训练

python scripts/train.py --config configs/default.yaml

关键参数可通过命令行覆盖配置文件:

python scripts/train.py --config configs/default.yaml --epochs 100 --batch_size 64 --lr 0.001

训练输出(默认保存到 outputs/):

  • pct_model.pkl — 模型权重
  • config.yaml — 本次实际使用的配置
  • command.txt — 本次运行的命令
  • train.log — 训练日志

评测 / 推理

python scripts/eval.py --ckpt outputs/pct_model.pkl

输出 result.json,格式为 {"样本编号": 预测类别},其中类别编号 0-39 对应 data/categories.txt 中的 40 个类别。

结果说明

  • 指标: 分类准确率 (Accuracy),即预测类别与真实标签一致的比例。
  • 训练集: 9,843 个样本,测试集: 2,468 个样本。
  • 本代码为比赛基线实现,线上提交结果可能因数据划分、数据增强策略、超参数等因素与本机复现结果存在合理差异。

项目结构

├── README.md
├── LICENSE
├── .gitignore
├── requirements.txt
├── configs/
│   └── default.yaml         # 默认训练配置
├── src/
│   ├── model.py             # PCT 模型定义
│   ├── dataset.py           # 数据加载与增强
│   └── scheduler.py         # 学习率调度器
├── scripts/
│   ├── train.py             # 训练脚本
│   └── eval.py              # 评测/推理脚本
├── data/
│   └── categories.txt       # 类别名称
└── outputs/                 # 输出目录(不提交)

引用

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

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