README.md

October 20, 2025 · View on GitHub

Robust 3D Object Detection using Probabilistic Point Clouds from Single-Photon LiDARs

ICCV 2025
Arxiv   Project

teaser

Bhavya Goyal, Felipe Gutierrez-Barragan, Wei Lin, Andreas Velten, Yin Li, Mohit Gupta

University of Wisconsin-Madison

Abstract

LiDAR-based 3D sensors provide point clouds, a canonical 3D representation used in various scene understanding tasks. Modern LiDARs face key challenges in several real-world scenarios, such as long-distance or low-albedo objects, producing sparse or erroneous point clouds. These errors, which are rooted in the noisy raw LiDAR measurements, get propagated to downstream perception models, resulting in potentially severe loss of accuracy. This is because conventional 3D processing pipelines do not retain any uncertainty information from the raw measurements when constructing point clouds.

We propose Probabilistic Point Clouds (PPC), a novel 3D scene representation where each point is augmented with a probability attribute that encapsulates the measurement uncertainty (or confidence) in the raw data. We further introduce inference approaches that leverage PPC for robust 3D object detection; these methods are versatile and can be used as computationally lightweight drop-in modules in 3D inference pipelines. We demonstrate, via both simulations and real captures, that PPC-based 3D inference methods outperform several baselines using LiDAR as well as camera-LiDAR fusion models, across challenging indoor and outdoor scenarios involving small, distant, and low-albedo objects, as well as strong ambient light.

Installation

Follow the Installation steps for mmdetection3d framework. Or use my conda setup.

My conda setup
conda create -n openmmlab python=3.8
conda activate openmmlab
pip install torch==2.0.0 torchvision==0.15.1 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu118
pip install mmcv==2.0.1 -f  https://download.openmmlab.com/mmcv/dist/cu118/torch2.0.0/index.html
pip install mmdet==3.1.0
pip install -v -e .

Dataset

Download and extract the dataset (~12GB) file. Download the validation labels file. Use the following directory structure to organize the dataset.

.
.
└── data/          
|   └── sunrgbd/
|   |   └── sunrgbd_points_ppc/
|   |   |   └── sunrgbd_infos_val.pkl 
|   |   |   └── clean/
|   |   |   |   └── 0000001.bin
|   |   |   └── 1_100/
|   |   |   └── 1_50/
.
.
|   └── kitti/
|   |   └── kitti_points_ppc/
|   |   |   └── kitti_infos_val.pkl 
|   |   |   └── clean/
|   |   |   |   └── 0000000.bin
|   |   |   └── 5_1000/
.
.

If you need to evaluate on all SBR levels, you can download all sunrgbd_points_ppc_* files here.

If you need to simulate PPCs yourself using different simulation parameters, or evaluate on a different dataset, you can use my simulation scripts.
  • Follow the original dataset instructions to prepare clean point cloud dataset.

  • Use ppc_simulate.sh to simulate 3D temporal waveforms. matlab is required.

    cd tools/ppc_simulation
    ./ppc_simulate.sh 0 10
    
  • Use gen_points.sh to create probabilistic point clouds from the 3D waveforms.

    ./gen_points.sh 0 10
    
  • Use create_pkl.py to create label files for the whole dataset.

    python create_pkl.py
    
  • Convert clean point clouds to ppc by adding probability 1 attribute.

    python create_clean_ppc.py
    
  • Edit the dataset field in the scripts to simulate for KITTI dataset. Increase 10 to the size of the dataset to simulate all scenes.

Evaluation

Evaluate PPC model using ppc_test_votenet.sh script.

./ppc_test_votenet.sh 1_100 <model_weights.pth>

Use ppc_test_pvrcnn.sh and ppc_test_imvotenet.sh for PV-RCNN and ImVoteNet evaluation. Uncomment lines in the scripts for baseline evaluations.

Training

Train PPC model using ppc_train_votenet.sh script.

./ppc_train_votenet.sh

Uncomment lines in the scripts for baselines training.

Models

VoteNet

Evaluated on SUN RGBD validation dataset.

MethodAP@25Download
Clean0.10.050.020.01
Matched Filtering51.3442.4338.7716.9511.34model | log
Thresholding57.1151.2746.4429.5816.47model | log
PPC58.6154.2952.4638.4929.42model | log
PV-RCNN

Pedestrian mAP for PV-RCNN (3 class) model. Evaluated on KITTI val split using 11 recall positions for moderate difficulty.

MethodmAPDownload
Clean0.050.020.010.005
Matched Filtering60.1155.7650.0347.0637.01model | log
Thresholding61.6257.7254.8049.2338.62model | log
PPC58.7059.1259.0455.3949.51model | log
ImVoteNet

Evaluated on SUN RGBD validation dataset.

MethodAP@25Download
Clean0.10.050.020.01
Matched Filtering63.3753.8953.2337.5433.17model | log
Thresholding64.2559.5758.8242.4339.51model | log
PPC64.3661.5160.1953.2146.84model | log



Citation

@InProceedings{Goyal_2025_ICCV,
    author    = {Goyal, Bhavya and Gutierrez-Barragan, Felipe and Lin, Wei and Velten, Andreas and Li, Yin and Gupta, Mohit},
    title     = {Robust 3D Object Detection using Probabilistic Point Clouds from Single-Photon LiDARs},
    booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
    month     = {October},
    year      = {2025},
    pages     = {28417-28427}
}