Point-BERT  by Julie-tang00

PyTorch code for pre-training 3D point cloud transformers

created 3 years ago
617 stars

Top 54.2% on sourcepulse

GitHubView on GitHub
Project Summary

Point-BERT offers a novel pre-training approach for 3D point cloud Transformers, inspired by BERT's masked language modeling. It enables robust feature learning for downstream tasks like classification, few-shot learning, and part segmentation on point cloud data.

How It Works

Point-BERT employs a Masked Point Modeling (MPM) strategy. Input point clouds are divided into local patches, and a discrete Variational AutoEncoder (dVAE) tokenizes these patches into discrete tokens. During pre-training, random patches are masked, and the Transformer backbone learns to reconstruct the original tokens for these masked regions. This approach effectively captures local geometric information and semantic context within point clouds.

Quick Start & Requirements

  • Install: pip install -r requirements.txt and build custom PyTorch extensions for Chamfer Distance, PointNet++, and kNN using install.sh.
  • Prerequisites: PyTorch >= 1.7.0, Python 3.7, CUDA >= 10.2, GCC >= 4.9, torchvision, timm, open3d, tensorboardX.
  • Resources: Requires significant GPU resources for pre-training and fine-tuning. Pre-trained models and configuration files are available via Tsinghua Cloud/BaiduYun.
  • Links: arXiv, Project Page, Models

Highlighted Details

  • Achieves state-of-the-art performance on ModelNet40 (up to 93.76% accuracy with voting) and ScanObjectNN (up to 88.12% accuracy).
  • Provides pre-trained dVAE and Point-BERT models for various datasets.
  • Supports fine-tuning for classification, few-shot learning, transfer learning, and part segmentation.
  • Includes visualization of masked point cloud reconstruction.

Maintenance & Community

The project is associated with CVPR 2022 and has contributions from multiple researchers at Tsinghua University. Community interaction channels are not explicitly mentioned in the README.

Licensing & Compatibility

  • License: MIT License.
  • Compatibility: Permissive license allows for commercial use and integration with closed-source projects.

Limitations & Caveats

The setup requires compiling custom PyTorch extensions, which can be complex and may encounter compatibility issues with different CUDA or PyTorch versions. The README indicates specific versions for Python and PyTorch, suggesting potential fragility with newer releases.

Health Check
Last commit

4 months ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
24 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.