目录

计图挑战赛赛道二热身赛 —— PCT 点云分类(ModelNet40)

使用 Jittor 训练 PCT(Point Cloud Transformer)模型,在 ModelNet40 三维形状数据集上完成点云分类任务。

结果

指标 数值
内部验证集 Best Val Acc **86.60%**(第 171 / 200 epoch)
通过线 80.00%

题面说明 baseline 准确率”在 80% 通过线附近浮动”,本仓库在官方示例基础上做了三处改动,把结果稳定推高到通过线以上约 6.6 个百分点:

  1. 内部验证集:从 9843 个训练样本里按类别比例分层划出 10% 作验证集(sklearn.model_selection.train_test_split(..., stratify=labels)),而不是简单随机切片——40 个类别中样本数最少的只有 64 个,随机切片可能导致稀有类别在验证集里样本过少。
  2. 加强数据增强:在官方示例的随机绕 Y 轴旋转基础上,新增随机各向异性缩放(0.8~1.25 倍)和随机高斯抖动(std=0.01,裁剪至 ±0.05)。
  3. 验证集最优 checkpoint:训练过程中持续跟踪每个 epoch 的验证集准确率,最终预测使用验证集最优权重,而不是训练结束时最后一轮的权重(官方示例默认用最后一轮)。

模型与训练配置

  • PCT:4 层 Self-Attention(SA_Layer,channels=128)+ 特征融合卷积 + 3 层 FC 分类头,参数量 1.37M
  • 输入点数:每样本采样 1024 点(原始点云 2048 点)
  • 优化器:SGD(lr=0.01, momentum=0.9, weight_decay=1e-4) + 余弦退火,训练 200 epoch,batch_size=32

环境

  • 操作系统:Ubuntu 22.04.5 LTS
  • Python:3.10.12(venv)
  • GPU:NVIDIA RTX 4090(CUDA 12.2,由 Jittor 自动下载运行时)
  • Jittor:1.3.11.0,安装自 pip install git+https://github.com/Jittor/jittor.git
  • 完整依赖版本见 requirements.txtpip freeze 导出)

复现步骤

# 1. 创建虚拟环境并安装 Jittor
python3 -m venv jittor-venv
source jittor-venv/bin/activate
pip install git+https://github.com/Jittor/jittor.git
python -m jittor.test.test_example

# 2. 安装其余依赖(本题不需要 JittorGeometric)
pip install numpy scikit-learn

# 3. 放置数据集
# 将赛事提供的 ModelNet40 点云数据解压到本仓库的 data/ 目录下:
#   data/train_points.npy   (9843, 2048, 3)
#   data/train_labels.npy   (9843,)
#   data/test_points.npy    (2468, 2048, 3)
#   data/categories.txt

# 4. 训练并生成结果
python pct.py --epochs 200

单个 epoch(1024 点、batch=32,RTX 4090)约 16-20 秒,200 epoch 全程约 55 分钟。成功标志:日志中 Val Acc 稳定在 80% 以上,脚本末尾打印”自校验通过”,并生成 result.json(2468 个 key,编号 “0”“2467”,取值 039)。

数据集

  • 训练集 9843 个样本 / 测试集 2468 个样本,每个样本 2048 个三维点(已归一化到单位球)
  • 40 个类别(飞机、椅子、桌子等常见物体),类别分布不均衡(每类 64~889 个样本)
  • 测试集不提供标签

提交文件

result.zip 顶层直接包含 result.json,不含子文件夹、不含代码(按本题赛制要求)。

License

MIT

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

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