/X-3D

X-3D: Explicit 3D Structure Modeling for Point Cloud Recognition (CVPR2024)

Primary LanguagePythonMIT LicenseMIT

X-3D

This is a official implementation of X-3D proposed by our paper X-3D: Explicit 3D Structure Modeling for Point Cloud Recognition (CVPR 2024).

News

  • Feb, 2024: X-3D accepted by CVPR 2024.
  • Mar, 2024: Code Release.

Install

source install.sh

Please change the version of the relevant package in install.sh according to your CUDA version.

Dataset

Please refer to PointNeXt tutorial to download the datasets.

Usage & Model Zoo

S3DIS

Model Area-5 mIoU/OA 6-fold mIoU/OA Params (M) FLOPs (G)
PointMetaBase-L 69.723/90.702 75.6/90.6 2.7 2.0
+X-3D 71.8/91.2 76.7/91.1 3.8 2.2
PointMetaBase-XL 71.597/90.551 76.3/91.0 15.3 9.2
+X-3D 72.1/91.4 77.7/91.6 18.1 9.8

Train

CUDA_VISIBLE_DEVICES=0 bash script/main_segmentation.sh cfgs/s3dis/pointmetabase-l-x-3d.yaml wandb.use_wandb=True

Test

CUDA_VISIBLE_DEVICES=0 bash script/main_segmentation.sh cfgs/s3dis/pointmetabase-l-x-3d.yaml wandb.use_wandb=False mode=test --pretrained_path path/to/pretrained/model

Profile Parameters, FLOPs, and Throughput

CUDA_VISIBLE_DEVICES=0 python examples/profile.py --cfg cfgs/s3dis/pointmetabase-l-x-3d.yaml batch_size=16 num_points=15000 flops=True timing=True

ScanNet

Model Val mIoU Test mIoU Params (M) FLOPs (G) TP (ins./sec.)
PointMetaBase-L 71.0 - 2.7 2.0 187
+X-3D 71.8 3.8 2.2
PointMetaBase-XL 71.8 - 15.3 9.2 104
+X-3D 72.8 18.1 9.8

Train

CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python examples/segmentation/main.py --cfg cfgs/scannet/pointmetabase-l-x3d.yaml wandb.use_wandb=True

Test

CUDA_VISIBLE_DEVICES=0  python examples/segmentation/main.py --cfg cfgs/scannet/pointmetabase-l-x3d.yaml mode=test dataset.test.split=val --pretrained_path path/to/pretrained/model

Profile Parameters, FLOPs, and Throughput

CUDA_VISIBLE_DEVICES=0 python examples/profile.py --cfg cfgs/scannet/pointmetabase-l-x3d.yaml batch_size=16 num_points=15000 flops=True timing=True

Acknowledgment

This repository is built on reusing codes of OpenPointsPointNeXt and PointMetaBase