Skip to content

Pointcept

Perceive the world with sparse points, a codebase for point cloud perception research. Latest works: Concerto (NeurIPS'25), Sonata (CVPR'25 Highlight), PTv3 (CVPR'24 Oral)

PTv3, Sonata, Concerto 등을 통합 지원하는 point cloud perception 연구 프레임워크

Implementations

It is also an official implementation of the following paper:

  • 🚀 Utonia - Toward One Encoder for All Point Clouds
  • Concerto - Joint 2D-3D Self-Supervised Learning Emerges Spatial Representations
  • Sonata - Self-Supervised Learning of Reliable Point Representations
  • Point Transformer V3 - Simpler, Faster, Stronger
  • OA-CNNs - Omni-Adaptive Sparse CNNs for 3D Semantic Segmentation
  • Towards Large-scale 3D Representation Learning with Multi-dataset Point Prompt Training
  • Masked Scene Contrast - A Scalable Framework for Unsupervised 3D Representation Learning
  • Learning Context-aware Classifier for Semantic Segmentation (3D Part)
  • Point Transformer V2 - Grouped Vector Attention and Partition-based Pooling
  • Point Transformer

Additionally, Pointcept integrates the following excellent work (contain above):

  • Backbone: MinkUNet, SpUNet, SPVCNN, OACNNs, PTv1, PTv2, PTv3, StratifiedFormer, OctFormer, Swin3D
  • Semantic Segmentation: Mix3d, CAC
  • Instance Segmentation: PointGroup
  • Pre-training: PointContrast, Contrastive Scene Contexts, Masked Scene Contrast, Point Prompt Training, Sonata, Concerto
  • Datasets: ScanNet, ScanNet200, ScanNet++, S3DIS, ArkitScene, HM3D, Matterport3D, Structured3D, SemanticKITTI, nuScenes, ModelNet40, Waymo

Requirements

  • Ubuntu: 18.04 and above.
  • CUDA: 11.3 and above.
  • PyTorch: 1.10.0 and above.

uv 초기화 방법

내가 conda 계열을 싫어함. 그래서 uv로 설정한다.

System prerequisites

  • CUDA 12.4 toolkit + cuDNN (명령행에서 nvcc 를 실행할 수 있게 셋팅 하자)
  • gcc-13 / g++-13
  • libsparsehash-dev (apt install libsparsehash-dev)
  • uv python version: 3.10

requirements.cu124.txt

requirements.cu124.txt 파일을 만들고 다음과 같이 추가한다:

--extra-index-url https://download.pytorch.org/whl/cu124

# PyTorch (CUDA 12.4)
torch==2.5.0
torchvision==0.20.0
torchaudio==2.5.0

# PyG (CUDA 12.4)
--find-links https://data.pyg.org/whl/torch-2.5.0+cu124.html
torch-cluster
torch-scatter
torch-sparse
torch-geometric

# spconv (SparseUNet)
spconv-cu124

# Core
ninja
h5py
pyyaml
sharedarray
tensorboard
tensorboardx
wandb
yapf
addict
einops
scipy
plyfile
termcolor
timm

# CLIP
ftfy
regex
tqdm
clip @ git+https://github.com/openai/CLIP.git

# Optional
open3d

uv-install-cu124.sh

설치 스크립트:

#!/bin/bash
set -e

PYTHON_VERSION="3.10"
VENV_DIR=".venv"

echo "=== Pointcept GPU (CUDA 12.4) Installation ==="

# Check system prerequisites
echo "[1/5] Checking system prerequisites..."
if ! command -v nvcc &> /dev/null; then
    echo "WARNING: nvcc not found. CUDA toolkit may not be installed."
    echo "  Install: conda install nvidia/label/cuda-12.4.1::cuda conda-forge::cudnn -y"
    echo "  Or: https://developer.nvidia.com/cuda-12-4-1-download-archive"
    read -p "Continue anyway? [y/N] " -r
    [[ $REPLY =~ ^[Yy]$ ]] || exit 1
fi

if ! dpkg -s libsparsehash-dev &> /dev/null 2>&1; then
    echo "WARNING: libsparsehash-dev not found."
    echo "  Install: sudo apt install libsparsehash-dev"
    read -p "Continue anyway? [y/N] " -r
    [[ $REPLY =~ ^[Yy]$ ]] || exit 1
fi

# Create virtual environment
if [ ! -d "$VENV_DIR" ]; then
    echo "[2/5] Creating virtual environment (Python $PYTHON_VERSION)..."
    uv venv --python "$PYTHON_VERSION"
else
    echo "[2/5] Virtual environment already exists, skipping..."
fi

# Activate
source "$VENV_DIR/bin/activate"

# Install dependencies
echo "[3/5] Installing Python dependencies..."
uv pip install -r requirements.cu124.txt

# Build C++ extensions
echo "[4/5] Building pointops..."
cd libs/pointops
python setup.py install
cd ../..

# Verify
echo "[5/5] Verifying installation..."
python -c "
import torch
print(f'PyTorch {torch.__version__}')
print(f'CUDA available: {torch.cuda.is_available()}')
if torch.cuda.is_available():
    print(f'CUDA version: {torch.version.cuda}')
    print(f'GPU: {torch.cuda.get_device_name(0)}')
"

echo "=== Installation complete ==="
echo "Run 'source $VENV_DIR/bin/activate' to activate the environment."

See also

Favorite site