Update LICENSE
基于 Jittor 框架的 PCT (Point Cloud Transformer) 三维点云分类模型,用于 ModelNet40 数据集的形状分类任务。
pip install jittor numpy
注意:Jittor 需要根据您的系统环境选择合适的版本。建议参考 Jittor 官方文档 进行安装。
本项目使用 ModelNet40 数据集,包含 40 个类别的三维 CAD 模型。
PointCloud/ ├── data/ │ ├── categories.txt # 40 个类别名称 │ ├── train_points.npy # 训练集点云数据 (N, 2048, 3) │ ├── train_labels.npy # 训练集标签 (N,) │ └── test_points.npy # 测试集点云数据 (M, 2048, 3) ├── pct.py # 主程序 ├── README.md # 本文件 ├── LICENSE # 许可证 └── .gitignore # Git 忽略文件
.npy
categories.txt
python pct.py --data_dir ./data --n_points 1024 --batch_size 32 --epochs 200 --lr 0.001 --seed 42
--data_dir
./data
--n_points
--batch_size
--epochs
--lr
--seed
训练过程中会输出:
pct_model.pkl
训练完成后,程序会自动对测试集进行预测并生成 result.json:
result.json
python pct.py --data_dir ./data --epochs 200
result.json 文件格式:
{ "0": 15, "1": 28, "2": 5, ... }
输入: (B, 3, N) 点云坐标 ↓ Conv1d(3 → 128) + BatchNorm + ReLU ↓ Conv1d(128 → 128) + BatchNorm + ReLU ↓ Self-Attention Layer × 4 # 多头自注意力机制 ↓ Concat([x1, x2, x3, x4]) # 特征融合 (B, 512, N) ↓ Conv1d(512 → 1024) + BatchNorm + LeakyReLU ↓ Max Pooling # (B, 1024) ↓ FC(1024 → 512) + BatchNorm + ReLU + Dropout(0.5) ↓ FC(512 → 256) + BatchNorm + ReLU + Dropout(0.5) ↓ FC(256 → 40) # 输出类别 logits
约 3.5M 可训练参数
在完整训练 (200 epochs) 后,预期可以达到:
代码中统一设置随机种子以确保结果可复现:
np.random.seed(args.seed) jt.set_global_seed(args.seed)
建议在训练时记录以下信息:
本项目采用 MIT 许可证,详见 LICENSE 文件。
本项目参考了以下工作:
欢迎提交 Issue 和 Pull Request 来改进本项目。
如有问题或建议,请通过 GitHub Issue 联系我们。
A Jittor implementation of Point Cloud Transformer(PCT) for ModelNet40 classification
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
ModelNet40 Point Cloud Classification - PCT (Point Cloud Transformer)
基于 Jittor 框架的 PCT (Point Cloud Transformer) 三维点云分类模型,用于 ModelNet40 数据集的形状分类任务。
环境安装
Python 版本
安装依赖
数据准备
数据集说明
本项目使用 ModelNet40 数据集,包含 40 个类别的三维 CAD 模型。
数据目录结构
数据格式
.npy格式,每个样本包含 2048 个三维点坐标 (x, y, z)categories.txt按行存储类别名称训练
基本训练命令
参数说明
--data_dir./data--n_points--batch_size--epochs--lr--seed训练过程
训练过程中会输出:
pct_model.pkl评测/推理
生成预测结果
训练完成后,程序会自动对测试集进行预测并生成
result.json:预测结果格式
result.json文件格式:模型结构
PCT (Point Cloud Transformer) 架构
模型参数
约 3.5M 可训练参数
结果说明
评估指标
预期性能
在完整训练 (200 epochs) 后,预期可以达到:
注意事项
result.json中可复现性
随机种子设置
代码中统一设置随机种子以确保结果可复现:
配置保存
建议在训练时记录以下信息:
pct_model.pkl)项目结构说明
核心文件
代码特点
许可证
本项目采用 MIT 许可证,详见 LICENSE 文件。
引用
本项目参考了以下工作:
贡献
欢迎提交 Issue 和 Pull Request 来改进本项目。
联系方式
如有问题或建议,请通过 GitHub Issue 联系我们。