[feat] enhance
基于 PCT (Point Cloud Transformer) 和 Jittor 框架的 ModelNet40 三维点云分类项目。
在 ModelNet40 数据集上训练点云分类模型,对测试集中的 2468 个点云样本预测其所属类别(共 40 类)。测试集准确率 ≥ 80% 即为通过。
. ├── main.py # 主入口(训练 / 推理) ├── baseline_code.py # 官方 baseline 参考代码 ├── requirements.txt # Python 依赖 ├── data/ # 数据目录 │ ├── train_points.npy # 训练集点云 (9843, 2048, 3) │ ├── train_labels.npy # 训练集标签 (9843,) 值域 0-39 │ ├── test_points.npy # 测试集点云 (2468, 2048, 3) │ └── categories.txt # 40 个类别名称 ├── models/ │ └── pct.py # PCT 模型定义(SA_Layer + PCTClassifier) ├── utils/ │ ├── dataset.py # ModelNet40 数据集加载器 │ ├── augmentor.py # 数据增强(旋转、缩放、平移、抖动) │ ├── trainer.py # 训练管理器(含早停、余弦退火 LR) │ ├── inferencer.py # 推理模块 │ └── result_generator.py # 生成 result.json 并打包 result.zip ├── checkpoints/ # 模型检查点保存目录 ├── survey/ # 相关论文调研笔记 └── tasks/ # 赛题说明
conda create -n jittor python=3.9 -y conda activate jittor
conda install -c conda-forge gcc=10 gxx=10 -y conda install -c conda-forge libgomp -y
Windows 用户需确保已安装 MSVC 或 MinGW 编译工具链。
pip install -r requirements.txt
requirements.txt 内容:
requirements.txt
jittor numpy
将数据文件放入 data/ 目录下,确保包含以下文件:
data/
data/train_points.npy
data/train_labels.npy
data/test_points.npy
data/categories.txt
数据下载地址:https://cloud.tsinghua.edu.cn/f/f003de5a2e914d1e9e0e/?dl=1
Jittor 默认使用 CUDA,请确保已安装 NVIDIA 驱动和 CUDA Toolkit。首次运行时 Jittor 会进行 JIT 编译,可能需要等待 1-5 分钟。
python main.py --mode train --epochs 250 --lr 0.01
常用参数:
--mode
train
test
--epochs
250
--lr
0.01
--batch_size
16
--n_points
512
--patience
20
--checkpoint_dir
checkpoints
--seed
42
训练过程中会自动保存:
checkpoints/best_model.pkl
checkpoints/last_model.pkl
python main.py --mode test --checkpoint checkpoints/best_model.pkl
推理完成后会在项目根目录生成:
result.json
result.zip
将生成的 result.zip 上传到比赛平台即可。
PCTClassifier 基于 Point Cloud Transformer:
训练时自动应用以下增强(见 utils/augmentor.py):
utils/augmentor.py
result.zip └── result.json
result.json 示例:
{ "0": 4, "1": 35, "2": 10, ... }
key 为样本编号(字符串,从 “0” 开始),value 为预测类别(整数,0-39)。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
PCT 点云分类 — 第六届计图挑战赛热身赛二
基于 PCT (Point Cloud Transformer) 和 Jittor 框架的 ModelNet40 三维点云分类项目。
赛题简介
在 ModelNet40 数据集上训练点云分类模型,对测试集中的 2468 个点云样本预测其所属类别(共 40 类)。测试集准确率 ≥ 80% 即为通过。
项目结构
环境配置
1. 创建 Conda 环境
2. 安装编译依赖(Linux)
3. 安装 Python 依赖
requirements.txt内容:4. 准备数据
将数据文件放入
data/目录下,确保包含以下文件:data/train_points.npy— 训练集点云data/train_labels.npy— 训练集标签data/test_points.npy— 测试集点云data/categories.txt— 类别名称5. 确认 GPU 可用
Jittor 默认使用 CUDA,请确保已安装 NVIDIA 驱动和 CUDA Toolkit。首次运行时 Jittor 会进行 JIT 编译,可能需要等待 1-5 分钟。
快速开始
训练
常用参数:
--modetraintrain或test--epochs250--lr0.01--batch_size16--n_points512--patience20--checkpoint_dircheckpoints--seed42训练过程中会自动保存:
checkpoints/best_model.pkl— 最佳模型(训练准确率最高)checkpoints/last_model.pkl— 最终模型推理 & 生成提交文件
推理完成后会在项目根目录生成:
result.json— 预测结果result.zip— 可直接提交的压缩包提交
将生成的
result.zip上传到比赛平台即可。模型架构
PCTClassifier 基于 Point Cloud Transformer:
数据增强策略
训练时自动应用以下增强(见
utils/augmentor.py):优化方向
提交格式
result.json示例:key 为样本编号(字符串,从 “0” 开始),value 为预测类别(整数,0-39)。
参考