readme
基于 Jittor 框架实现的点云分类模型,用于 ModelNet40 三维形状分类任务。
本项目实现了 Point Cloud Transformer (PCT) 模型,用于对 ModelNet40 数据集中的三维点云进行分类。模型采用自注意力机制处理点云数据,能够有效捕捉点云的全局特征。
PCT 模型主要包含以下组件:
使用 ModelNet40 数据集,包含 40 个类别的三维物体:
airplane, bathtub, bed, bench, bookshelf, bottle, bowl, car, chair, cone, cup, curtain, desk, door, dresser, flower_pot, glass_box, guitar, keyboard, lamp, laptop, mantel, monitor, night_stand, person, piano, plant, radio, range_hood, sink, sofa, stairs, stool, table, tent, toilet, tv_stand, vase, wardrobe, xbox
data/train_points.npy
data/train_labels.npy
data/test_points.npy
data/categories.txt
详见 https://github.com/Jittor/jittor
python pct.py
可选参数:
--data_dir
--n_points
--batch_size
--epochs
--lr
--seed
训练完成后会生成以下文件:
pct_model.pkl
result.json
{样本编号: 预测类别}
训练时采用了以下数据增强策略:
模型参数量约为 2.5M,在 ModelNet40 数据集上具有良好的分类性能。
. ├── pct.py # 主程序文件 ├── data/ # 数据目录 │ ├── train_points.npy │ ├── train_labels.npy │ ├── test_points.npy │ └── categories.txt ├── pct_model.pkl # 训练好的模型 └── result.json # 预测结果
本项目基于 Point Cloud Transformer 模型实现,相关论文请参考原始文献。
本项目仅用于课程作业目的。
A Jittor implementation of Point Cloud Transformer (PCT) for ModelNet40 classification
Point Cloud Transformer (PCT) for ModelNet40 Classification
基于 Jittor 框架实现的点云分类模型,用于 ModelNet40 三维形状分类任务。
项目简介
本项目实现了 Point Cloud Transformer (PCT) 模型,用于对 ModelNet40 数据集中的三维点云进行分类。模型采用自注意力机制处理点云数据,能够有效捕捉点云的全局特征。
模型架构
PCT 模型主要包含以下组件:
数据集
使用 ModelNet40 数据集,包含 40 个类别的三维物体:
数据格式
data/train_points.npy(N, 2048, 3) +data/train_labels.npy(N,)data/test_points.npy(N, 2048, 3)data/categories.txt环境要求、安装依赖
详见 https://github.com/Jittor/jittor
使用方法
训练模型
可选参数:
--data_dir: 数据目录路径(默认:./data)--n_points: 采样点数(默认:1024)--batch_size: 批次大小(默认:32)--epochs: 训练轮数(默认:200)--lr: 学习率(默认:0.01)--seed: 随机种子(默认:42)模型输出
训练完成后会生成以下文件:
pct_model.pkl: 训练好的模型权重result.json: 测试集预测结果,格式为{样本编号: 预测类别}数据增强
训练时采用了以下数据增强策略:
训练策略
模型性能
模型参数量约为 2.5M,在 ModelNet40 数据集上具有良好的分类性能。
项目结构
参考文献
本项目基于 Point Cloud Transformer 模型实现,相关论文请参考原始文献。
许可证
本项目仅用于课程作业目的。