目录

ModelNet40 Point Cloud Classification with PCT

本项目基于 Jittor 框架,实现了 Point Cloud Transformer (PCT) 的 ModelNet40 三维形状分类示例代码。

项目结构

  • pct.py:主示例程序,包含数据加载、PCT 模型定义、模型训练和测试集预测结果生成。
  • data/
    • train_points.npy:训练点云数据,shape (9843, 2048, 3)
    • train_labels.npy:训练集标签,shape (9843,)
    • test_points.npy:测试点云数据,shape (2468, 2048, 3)
    • categories.txt:40 个类别名称。
  • .venv/:项目虚拟环境目录(WSL 下可用)。

目标

训练一个点云分类模型,并生成测试集预测结果文件 result.json,提交格式为:

{
  "0": 4,
  "1": 35,
  "2": 10,
  ...
}

其中 key 是测试集样本编号(字符串),value 是预测类别(0-39 的整数)。

环境要求

建议在 WSL(Ubuntu)环境中运行,使用项目目录下的虚拟环境:

cd /mnt/c/Users/Lenovo/Desktop/计算机图形学/PA3/code
source .venv/bin/activate

如果没有安装依赖,可先安装:

pip install jittor numpy

注意:Jittor 依赖 CUDA 环境和对应驱动,若使用 CPU 运行需根据 Jittor 文档调整配置。

运行方式

训练并生成 result.json

python3 pct.py

程序默认训练 PCT 模型并保存 pct_model.pkl,然后对测试集进行预测,输出结果到 result.json

仅生成测试集预测

若已有训练好的模型文件,可直接加载模型并运行预测。

输出文件

  • pct_model.pkl:训练后的模型参数文件(若已保存)。
  • result.json:测试集预测结果,符合提交格式。

说明

  • 训练集样本数:9843
  • 测试集样本数:2468
  • 点云点数:2048
  • 类别数:40
关于

A Jittor implementation of Point Cloud Transformer(PCT) for ModelNet40 classification

244.7 MB
邀请码