Update README.md
本项目基于 Jittor 实现 PCT(Point Cloud Transformer)点云分类模型,用于 ModelNet40 风格的三维点云分类任务。代码在官方示例基础上加入了更完整的数据增强、label smoothing 和测试时 voting,以提高预测稳定性。
jittor-match/ ├── pct.py ├── data/ │ ├── train_points.npy │ ├── train_labels.npy │ ├── test_points.npy │ └── categories.txt ├── pct_model.pkl ├── result.json └── README.md
推荐环境:
Python 3.9 Jittor 1.3.10.0 NumPy 1.26.4 CUDA 12.2 GCC/G++ 12
安装依赖:
pip install jittor numpy
如果 Jittor 编译 CUDA 扩展时遇到系统 GCC 版本过高的问题,可以在 conda 环境中安装 GCC/G++ 12,并指定编译器:
conda install -c conda-forge gcc_linux-64=12 gxx_linux-64=12 export cc_path=$CONDA_PREFIX/bin/x86_64-conda-linux-gnu-g++
数据文件放在 data/ 目录下:
data/
train_points.npy: 训练点云,形状为 (N, 2048, 3) train_labels.npy: 训练标签,形状为 (N,) test_points.npy: 测试点云,形状为 (M, 2048, 3) categories.txt: 40 个类别名称
测试集不提供标签,模型会对测试集生成 result.json 用于提交评测。
result.json
训练并生成预测结果:
CUDA_VISIBLE_DEVICES=4 python pct.py --data_dir ./data --epochs 200 --batch_size 32 --n_points 1024
如需快速检查流程是否能跑通,可以使用较小配置:
CUDA_VISIBLE_DEVICES=4 python pct.py --data_dir ./data --epochs 1 --batch_size 2 --n_points 128
训练完成后会生成:
pct_model.pkl result.json
其中 result.json 为测试集预测结果,格式为:
{ "0": 12, "1": 4, "2": 36 }
键为测试样本编号,值为预测类别编号。
模型主体为 PCT 点云分类网络:
Conv1d
在官方示例基础上,本项目做了以下轻量改进:
baseline 在官方测试集上的提交分数约为 0.85。当前版本在保持 PCT 主体不变的基础上加入稳定性优化,用于稳定达到比赛要求的 0.8 以上准确率。
本仓库是第六届人工智能挑战赛热身赛二的开源项目
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
ImPCT
本项目基于 Jittor 实现 PCT(Point Cloud Transformer)点云分类模型,用于 ModelNet40 风格的三维点云分类任务。代码在官方示例基础上加入了更完整的数据增强、label smoothing 和测试时 voting,以提高预测稳定性。
项目结构
环境依赖
推荐环境:
安装依赖:
如果 Jittor 编译 CUDA 扩展时遇到系统 GCC 版本过高的问题,可以在 conda 环境中安装 GCC/G++ 12,并指定编译器:
数据说明
数据文件放在
data/目录下:测试集不提供标签,模型会对测试集生成
result.json用于提交评测。运行方法
训练并生成预测结果:
如需快速检查流程是否能跑通,可以使用较小配置:
训练完成后会生成:
其中
result.json为测试集预测结果,格式为:键为测试样本编号,值为预测类别编号。
方法说明
模型主体为 PCT 点云分类网络:
Conv1d提取逐点特征;在官方示例基础上,本项目做了以下轻量改进:
训练结果
baseline 在官方测试集上的提交分数约为 0.85。当前版本在保持 PCT 主体不变的基础上加入稳定性优化,用于稳定达到比赛要求的 0.8 以上准确率。
注意事项