calib3d-eval
Calib3D: Calibrating Model Preferences for Reliable 3D Scene Understanding — Kong et al. (2024) (arXiv:2403.17010, 2024)
What this evaluates
Evaluates the calibration quality of 3D scene understanding models by measuring the discrepancy between predicted confidence and actual accuracy. It probes reliability under both in-domain conditions and out-of-domain stressors like adverse weather, sensor failures, and domain shifts.
Datasets
- nuScenes — total ?; splits: train (-1), val (-1)
- SemanticKITTI — total ?; splits: train (-1), val (-1)
- Waymo Open — total ?; splits: train (-1), val (-1)
- SemanticPOSS — total ?; splits: train (-1), val (-1)
- SemanticSTF — total ?; splits: train (-1), val (-1)
- ScribbleKITTI — total ?; splits: train (-1), val (-1)
- Synth4D — total ?; splits: train (-1), val (-1)
- S3DIS — total ?; splits: train (-1), val (-1)
Metrics
ECE (primary) — range: percent
- Expected Calibration Error: the weighted average of the absolute difference between predicted confidence and actual accuracy across confidence bins. Lower is better.
mIoU — range: percent
- Mean Intersection-over-Union: the average of the IoU scores computed per semantic class across the validation set.
mRR — range: percent
- Mean Resilience Rate: measures robustness by comparing IoU under various corruption types to the clean IoU, averaged across corruption categories.
Input / output format
Input: 3D LiDAR point clouds (provided as raw points, voxels, or range images) with ground-truth semantic segmentation labels.
Output: Per-point/voxel predicted semantic class probabilities (or logits) and the corresponding predicted class label.
Scoring recipe
def compute_ece(predictions, labels, num_bins=15):
confidences = np.max(predictions, axis=-1)
preds = np.argmax(predictions, axis=-1)
accuracies = (preds == labels).astype(float)
bin_boundaries = np.linspace(0, 1, num_bins + 1)
ece = 0.0
for i in range(num_bins):
mask = (confidences >= bin_boundaries[i]) & (confidences < bin_boundaries[i+1])
if np.sum(mask) == 0: continue
bin_acc = np.mean(accuracies[mask])
bin_conf = np.mean(confidences[mask])
ece += np.sum(mask) * abs(bin_acc - bin_conf)
return ece / len(labels) * 100
Common pitfalls
- Models are frequently overconfident in mid-to-far depth regions where LiDAR point density drops significantly.
- Training on synthetic data yields deceptively low ECE scores that do not generalize to real-world distributions.
- Weak supervision (e.g., scribble annotations) restricts model capacity, artificially inflating predictive uncertainty compared to dense labels.
Evidence (verbatim from paper)
The expected calibration error (ECE) metric, as depicted in Eq. (2), is the primary benchmark indicator. We also use class-wise Intersection-over-Union (IoU) and mean IoU (mIoU) to measure 3D segmentation accuracy. For robustness probing, we adopt corruption-wise IoU scores and the mean Resilience Rate (mRR) from Robo3D [59] to measure the 3D robustness.
Citation
@misc{kong2024calib3d,
title={Calib3D: Calibrating Model Preferences for Reliable 3D Scene Understanding},
author={Kong et al. (2024)},
year={2024},
note={arXiv:2403.17010}
}
1---2name: calib3d-eval3description: Evaluates the calibration quality of 3D scene understanding models by measuring the discrepancy between predicted confidence and actual accuracy. It probes reliability under both in-domain conditions and out-of-domain stressors like adverse weather, sensor failures, and domain shifts. Use when the user wants to benchmark on nuScenes, SemanticKITTI, Waymo Open, SemanticPOSS, SemanticSTF, ScribbleKITTI, Synth4D, S3DIS, or asks about evaluating this task. Reports ECE.4---56# calib3d-eval78> Calib3D: Calibrating Model Preferences for Reliable 3D Scene Understanding — Kong et al. (2024) (arXiv:2403.17010, 2024)910## What this evaluates1112Evaluates the calibration quality of 3D scene understanding models by measuring the discrepancy between predicted confidence and actual accuracy. It probes reliability under both in-domain conditions and out-of-domain stressors like adverse weather, sensor failures, and domain shifts.1314## Datasets1516- **nuScenes** — total ?; splits: train (-1), val (-1)17- **SemanticKITTI** — total ?; splits: train (-1), val (-1)18- **Waymo Open** — total ?; splits: train (-1), val (-1)19- **SemanticPOSS** — total ?; splits: train (-1), val (-1)20- **SemanticSTF** — total ?; splits: train (-1), val (-1)21- **ScribbleKITTI** — total ?; splits: train (-1), val (-1)22- **Synth4D** — total ?; splits: train (-1), val (-1)23- **S3DIS** — total ?; splits: train (-1), val (-1)2425## Metrics2627- `ECE` **(primary)** — range: percent28 - Expected Calibration Error: the weighted average of the absolute difference between predicted confidence and actual accuracy across confidence bins. Lower is better.29- `mIoU` — range: percent30 - Mean Intersection-over-Union: the average of the IoU scores computed per semantic class across the validation set.31- `mRR` — range: percent32 - Mean Resilience Rate: measures robustness by comparing IoU under various corruption types to the clean IoU, averaged across corruption categories.3334## Input / output format3536**Input**: 3D LiDAR point clouds (provided as raw points, voxels, or range images) with ground-truth semantic segmentation labels.3738**Output**: Per-point/voxel predicted semantic class probabilities (or logits) and the corresponding predicted class label.3940## Scoring recipe4142```python43def compute_ece(predictions, labels, num_bins=15):44 confidences = np.max(predictions, axis=-1)45 preds = np.argmax(predictions, axis=-1)46 accuracies = (preds == labels).astype(float)47 bin_boundaries = np.linspace(0, 1, num_bins + 1)48 ece = 0.049 for i in range(num_bins):50 mask = (confidences >= bin_boundaries[i]) & (confidences < bin_boundaries[i+1])51 if np.sum(mask) == 0: continue52 bin_acc = np.mean(accuracies[mask])53 bin_conf = np.mean(confidences[mask])54 ece += np.sum(mask) * abs(bin_acc - bin_conf)55 return ece / len(labels) * 10056```5758## Common pitfalls5960- Models are frequently overconfident in mid-to-far depth regions where LiDAR point density drops significantly.61- Training on synthetic data yields deceptively low ECE scores that do not generalize to real-world distributions.62- Weak supervision (e.g., scribble annotations) restricts model capacity, artificially inflating predictive uncertainty compared to dense labels.6364## Evidence (verbatim from paper)6566> The expected calibration error (ECE) metric, as depicted in Eq. (2), is the primary benchmark indicator. We also use class-wise Intersection-over-Union (IoU) and mean IoU (mIoU) to measure 3D segmentation accuracy. For robustness probing, we adopt corruption-wise IoU scores and the mean Resilience Rate (mRR) from Robo3D [59] to measure the 3D robustness.6768## Citation6970```bibtex71@misc{kong2024calib3d,72 title={Calib3D: Calibrating Model Preferences for Reliable 3D Scene Understanding},73 author={Kong et al. (2024)},74 year={2024},75 note={arXiv:2403.17010}76}77```7879- arXiv: 2403.17010