Initial commit
基于 Jittor 框架实现的 PCT(Point Cloud Transformer) 模型,用于 ModelNet40 三维点云形状分类任务。
本项目实现了 PCT 模型对 ModelNet40 数据集的 40 类三维形状分类。PCT 是一种基于自注意力机制的点云处理网络,通过多层 Self-Attention 捕获点云中点与点之间的全局依赖关系,从而实现高效的形状特征提取与分类。
Input (B, 3, 1024) │ ├── Conv1d(3→128) + BN + ReLU ├── Conv1d(128→128) + BN + ReLU │ ├── SA_Layer(128) → x1 ├── SA_Layer(128) → x2 ├── SA_Layer(128) → x3 ├── SA_Layer(128) → x4 │ ├── Concat(x1,x2,x3,x4) → (B, 512, N) ├── Conv1d(512→1024) + BN + LeakyReLU ├── MaxPool → (B, 1024) │ ├── Linear(1024→512) + BN + ReLU + Dropout(0.5) ├── Linear(512→256) + BN + ReLU + Dropout(0.5) └── Linear(256→40) → logits
x = x + ReLU(BN(Conv(x - Attention(x))))
PA3/ ├── data/ │ ├── categories.txt # 40 个类别名称 │ ├── train_points.npy # 训练集点云 (9843, 2048, 3) │ ├── train_labels.npy # 训练集标签 (9843,) │ └── test_points.npy # 测试集点云 (2468, 2048, 3) ├── pct.py # 主程序(模型 + 训练 + 推理) ├── pct_best.pkl # 最佳模型权重 ├── pct_model.pkl # 最终模型权重 ├── result.json # 测试集预测结果 └── README.md # 项目说明文档
pip install jittor numpy
# 使用默认参数训练(250 epochs, SGD + Cosine Annealing) python pct.py # 自定义参数 python pct.py --epochs 250 --batch_size 32 --lr 0.01 --n_points 1024
训练完成后,程序将自动:
pct_best.pkl
pct_model.pkl
result.json
--data_dir
./data
--n_points
1024
--batch_size
32
--epochs
250
--lr
0.01
--seed
42
训练时对每个点云样本施加以下增强:
result.json 格式为 {样本编号: 预测类别},类别为 0-39 的整数,对应 categories.txt 中的 40 个类别:
{样本编号: 预测类别}
categories.txt
{ "0": 0, "1": 5, "2": 12, ... }
本项目是 PCT 模型对 ModelNet40 数据集的 40 类三维形状分类的实现。PCT 是一种基于自注意力机制的点云处理网络,通过多层 Self-Attention 捕获点云中点与点之间的全局依赖关系,从而实现高效的形状特征提取与分类。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
PCT: Point Cloud Transformer for ModelNet40 Classification
基于 Jittor 框架实现的 PCT(Point Cloud Transformer) 模型,用于 ModelNet40 三维点云形状分类任务。
项目简介
本项目实现了 PCT 模型对 ModelNet40 数据集的 40 类三维形状分类。PCT 是一种基于自注意力机制的点云处理网络,通过多层 Self-Attention 捕获点云中点与点之间的全局依赖关系,从而实现高效的形状特征提取与分类。
核心思路
模型架构
SA_Layer(自注意力层)
x = x + ReLU(BN(Conv(x - Attention(x))))项目结构
快速开始
环境依赖
安装
训练与预测
训练完成后,程序将自动:
pct_best.pklpct_model.pklresult.json命令行参数
--data_dir./data--n_points1024--batch_size32--epochs250--lr0.01--seed42训练策略
优化器与学习率
数据增强
训练时对每个点云样本施加以下增强:
预测策略
模型参数
输出格式
result.json格式为{样本编号: 预测类别},类别为 0-39 的整数,对应categories.txt中的 40 个类别: