我构建了一个遵循 timm 标准的 PyTorch 3D 点云预训练模型库 [P]
摘要
torch-pointcloud 是一个遵循 timm 规范的 PyTorch 库,通过统一的 `create_model()` 工厂接口提供多种 3D 点云架构及其预训练权重(如 PointNeXt、Point Transformer、KPConv 等),支持分类、分割、检测和自监督预训练任务。该项目目前处于 alpha 阶段,所有模型均经过统一的重新基准测试,权重托管于 Hugging Face,支持通过 pip 直接安装。
我在过去几年的业余时间里一直在开发一个项目,今天很高兴与大家分享。当初我之所以启动这个项目,是因为无法正常使用 torch-points3d(安装时出现了太多错误)。请注意,该项目仍处于活跃开发阶段,目前为 alpha 版本。欢迎早期用户试用并提供反馈!
**它是什么?** torch-pointcloud 是一个纯 PyTorch 库,效仿 timm 的理念,将多种点云架构及其预训练权重统一在同一个 `create_model()` 工厂接口之下。该库专注于核心组件和层的可复用性与标准化,例如 KNN、FPS 以及其他 PointNetSetAbstraction 等模块不会被反复重复实现。在这个库中,所有模型共享同一套接口,复用相同的核心组件。
```python
import torch
import torch_pointcloud as tp
model = tp.create_model(
"pointnext-sm.scanobjectnn-hardest.openpoints",
task="classification",
pretrained=True,
).eval()
pos = torch.randn(2048, 3)
x = torch.cat([pos, pos[:, 1:2] - pos[:, 1].min()], dim=1) # xyz + height
batch = torch.zeros(2048, dtype=torch.long)
logits = model(x, pos, batch) # (1, 15)
```
**安装**(详见文档):
```bash
# 可选:为 torch 指定 CUDA 版本
pip install torch==2.10.0 --index-url https://download.pytorch.org/whl/cu128
pip install torch-pointcloud
# 安装与你的 CUDA 版本对应的 CUDA/CPU 内核
pip install pyg-lib -f https://data.pyg.org/whl/torch-2.10.0+cu128.html
```
我尽量让安装过程更加顺畅,没有自行维护 CUDA 内核(目前时间有限,因此尽可能复用已有的预编译 wheel 包)。
**支持范围:** 分类、语义分割、部件分割、检测和自监督预训练:
- PointNet++、DGCNN、KPConv、RandLA-Net、PointNeXt、PointMLP、Point Transformer v1/v2/v3、Sonata、PointMamba、VoteNet、3DETR、PointPillars、SECOND、PointRCNN、SPVCNN、OctFormer、Point-MAE/BERT/GPT 等。
- 权重托管在 Hugging Face 上。
- 数据集(ModelNet40、ScanObjectNN、S3DIS、ScanNet、SemanticKITTI、nuScenes、KITTI、SUN RGB-D 等)、数据增强变换、大规模分割的分块推理器。
- 打包批量张量(PyTorch Geometric 惯例)。
- 支持的任务和用例
**但是……为什么要另起炉灶?**
大多数点云库都建立在以配置文件为核心的研究代码库之上,依赖需要在本地编译的自定义算子和内核。此外,复现研究代码库中已发布的实验结果有时也很困难(通常与检查点关联的代码会在没有任何通知的情况下发生变化)。还有一些模型使用不同的策略进行评估(TTA、分块等),这使得对比不公平,因为它们并非在统一下评估的。
与之相反,我希望有一个可以通过 pip 轻松安装、复用来自不同仓库的预训练权重、并方便地进行基准测试的库。所有模型都经过了重新基准测试,并与原始论文报告的指标进行了对比。实测性能与原始数据的对比见文档。
**致谢:** 架构和预训练权重来自各自的原作者,特别是 Pointcept、OpenPoints、MIT Han Lab、FAIR、OpenMMLab 等。每个检查点名称的末尾都标注了来源作者(例如 `.pointcept`)。`THIRD_PARTY_NOTICES.md` 中列出了所有源仓库、许可证和数据集条款。
- **仓库:** https://github.com/arthurdjn/pytorch-pointcloud
- **文档 + 教程:** https://pytorch-pointcloud.org
相似文章
Reddit r/MachineLearning
LIDARLearn 是一个开源 PyTorch 库,用于 3D 点云深度学习,统一了 56 个预配置模型,内置交叉验证和自动生成出版级 LaTeX 报告的功能。该框架支持有监督学习、自监督学习和参数高效微调方法,适用于 ModelNet40、ShapeNet 和遥感基准等数据集。
Hugging Face Blog
TorchNeuron 作为 PyTorch 的原生 Trainium 后端发布公测,Hugging Face 的 Transformers、Diffusers 等库可直接将其作为普通设备使用,显著提升了模型支持率并取代 Optimum Neuron 的复杂封装。
OpenAI Blog
OpenAI推出Point-E,一个通过结合文本到图像和图像到3D的扩散模型,能在单个GPU上在1-2分钟内从文本提示生成3D点云的系统。该方法相比现有方法实现了显著的速度提升,同时发布了预训练模型和代码。
Hugging Face Models Trending
Pixal3D是由TencentARC和微软开发的高保真单图转3D模型,通过反向投影显式地将像素特征提升到3D,实现接近重建级别的几何结构和PBR纹理。该模型已被SIGGRAPH 2026接收,并提供推理代码和演示。
Hugging Face Blog
Hugging Face 发布了一个 torch-neuronx 模型支持查询 Space,可查看哪些 Hub 上的模型能在 AWS Trainium 上直接运行,并提供可复现的运行脚本和 NEFF 缓存以跳过编译。目前仅覆盖 text-generation 与 image-text-to-text 类 Transformers 模型,未来将扩展到 diffusers 和 sentence transformers。