目录

jittor-冬日-点云分类

计图比赛热身赛 · 战队「冬日」· 点云分类项目

基于 Jittor 框架实现 PCT(Point Cloud Transformer),对 ModelNet40 风格的 点云数据进行 40 类分类,并生成比赛提交文件 result.zip

目录结构

├── configs/            # 训练配置(记录实际使用的超参数)
├── src/                # 核心代码
│   ├── model.py        #   PCT / SA_Layer 模型定义
│   └── dataset.py      #   ModelNet40Dataset 数据集定义
├── scripts/            # 运行脚本
│   ├── train.py        #   训练(含日志、曲线、分析)
│   └── predict.py      #   推理并生成 result.json + result.zip
├── tools/              # 工具脚本
│   └── check_submission.py  # 校验提交文件格式
├── data/               # 数据目录(只放说明,大文件不入库,见 data/README.md)
├── outputs/            # 训练产物:权重/日志/曲线(默认不提交)
├── result.json         # 最终预测结果(2468 个测试样本)
└── result.zip          # 比赛提交文件

环境安装

  • Python >= 3.8
  • NVIDIA GPU + CUDA(Jittor 需要;脚本顶层设置 jt.flags.use_cuda = 1
pip install -r requirements.txt

matplotlibscikit-learn 为可选依赖,缺失时训练仍可运行 (自动跳过绘图、混淆矩阵、t-SNE)。

数据准备

将比赛数据放入 data/ 目录(数据下载自比赛官方页面,不入库):

data/
├── train_points.npy    # (9843, 2048, 3) 训练点云
├── train_labels.npy    # (9843,) 训练标签,int 0-39
├── test_points.npy     # (2468, 2048, 3) 测试点云(无标签)
└── categories.txt      # 40 个类别名,每行一个

数据根目录默认为 ./data,可用 --data_dir 修改。详见 data/README.md

训练

python scripts/train.py --seed 42 --epochs 200 --lr 0.01 --batch_size 32 --output_dir outputs
  • 所有超参数均有命令行参数,默认值与 configs/train_config.json 一致; 命令行参数优先。
  • 每次运行会在 outputs/ 下落盘:config.json(实际配置)、 command.txt(运行命令)、training_log.csv(日志)、 每 10 epoch 的 checkpoint、pct_baseline_best.pkl(按训练准确率最优保存)。

评测/推理

# 单次推理
python scripts/predict.py --model_path outputs/pct_baseline_best.pkl

# 多次采样投票(更稳定,最终提交使用的方式)
python scripts/predict.py --model_path outputs/pct_baseline_best.pkl --num_votes 5

输出 result.jsonresult.zip(zip 内文件名必须为 result.json)。 可用工具单独校验格式:

python tools/check_submission.py result.json

结果说明

  • 指标:分类准确率(accuracy)= 预测正确样本数 / 总样本数。
  • 比赛测试集不提供标签data/test_labels.npy 不存在),本地无法计算 测试准确率;pct_baseline_best.pkl 是按训练准确率最优保存的 (本仓库训练记录:200 epochs 后最佳训练准确率 89.25%,见 outputs/training_log.csv),线上成绩以评测平台为准。
  • 测试集点云为随机子采样(2048 → 1024),多次推理结果会有小幅波动, 使用 --num_votes 5 投票可提高稳定性,最终成绩与单次推理可能存在 合理差异。

第三方引用与声明

  • 模型结构改写自 PCT 官方实现:https://github.com/MenghaoGuo/PCT (论文:PCT: Point Cloud Transformer, 2021),训练/推理流程基于 比赛官方基线的 Jittor 版本整理。
  • 框架:Jittor(清华大学计图团队)。
关于
49.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

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