kitti-depth-eval
SUB-Depth: Self-distillation and Uncertainty Boosting Self-supervised Monocular Depth Estimation — Zhou et al. (2021) (arXiv:2111.09692, 2021)
What this evaluates
Evaluates self-supervised monocular depth estimation models on outdoor driving scenes, measuring both the geometric accuracy of predicted depth maps and the reliability of associated uncertainty estimates.
Datasets
- KITTI — total ?; splits: train (39810), val (4424)
Metrics
Abs Rel (primary) — range: [0, 1]
- Mean absolute relative error: (1/N) Σ |d_pred - d_gt| / d_gt. Lower is better.
Sq Rel — range: [0, 1]
- Mean squared relative error: (1/N) Σ (d_pred - d_gt)² / d_gt. Lower is better.
RMSE — range: [0, inf)
- Root mean squared error: sqrt((1/N) Σ (d_pred - d_gt)²). Lower is better.
RMSE log — range: [0, inf)
- Root mean squared error of log-depth: sqrt((1/N) Σ (log d_pred - log d_gt)²). Lower is better.
δ1 — range: [0, 1]
- Accuracy threshold: (1/N) Σ I(max(d_pred/d_gt, d_gt/d_pred) < 1.25). Higher is better.
δ2 — range: [0, 1]
- Accuracy threshold: (1/N) Σ I(max(d_pred/d_gt, d_gt/d_pred) < 1.25²). Higher is better.
δ3 — range: [0, 1]
- Accuracy threshold: (1/N) Σ I(max(d_pred/d_gt, d_gt/d_pred) < 1.25³). Higher is better.
AUSE — range: [0, 1]
- Area Under the Sparsification Error curve. Measures how quickly uncertainty estimates correlate with actual error. Lower is better.
AURG — range: [0, 1]
- Area Under the Random Gain curve. Measures uncertainty calibration quality. Higher is better.
Input / output format
Input: RGB image frames resized to 640×192. Monocular frame triplets with a universal camera intrinsic matrix.
Output: Predicted dense depth map and per-pixel depth uncertainty map.
Scoring recipe
def compute_depth_metrics(pred, gt):
valid = gt > 0
p, g = pred[valid], gt[valid]
abs_rel = np.mean(np.abs(p - g) / g)
sq_rel = np.mean(((p - g) ** 2) / g)
rmse = np.sqrt(np.mean((p - g) ** 2))
rmse_log = np.sqrt(np.mean((np.log(p) - np.log(g)) ** 2))
thresh = np.maximum((p / g), (g / p))
d1 = np.mean(thresh < 1.25)
d2 = np.mean(thresh < 1.25 ** 2)
d3 = np.mean(thresh < 1.25 ** 3)
return abs_rel, sq_rel, rmse, rmse_log, d1, d2, d3
Common pitfalls
- Confusing the Eigen split with other KITTI splits (e.g., Geiger) changes train/val/test sizes.
- AUSE and AURG have opposite optimization directions: lower AUSE is better, higher AURG is better.
- Photometric loss weighting is often confused with uncertainty weighting in ablation studies; the paper explicitly compares 1:1 fixed weighting vs. learned uncertainty weighting.
Evidence (verbatim from paper)
Depth metrics described by Eigen [9] are the most common used metrics for evaluating depth estimation accuracy. They include four error metrics: the Absolute Relative Error (Abs Rel), Squared Relative Error (Sq Rel), Root Mean Squared Error (RMSE), and the log of RMSE; accuracy metric: δ1, δ2, δ3.
Citation
@misc{zhou2021subdepth,
title={SUB-Depth: Self-distillation and Uncertainty Boosting Self-supervised Monocular Depth Estimation},
author={Zhou et al. (2021)},
year={2021},
note={arXiv:2111.09692}
}
1---2name: kitti-depth-eval3description: Evaluates self-supervised monocular depth estimation models on outdoor driving scenes, measuring both the geometric accuracy of predicted depth maps and the reliability of associated uncertainty estimates. Use when the user wants to benchmark on KITTI, or asks about evaluating this task. Reports Abs Rel.4---56# kitti-depth-eval78> SUB-Depth: Self-distillation and Uncertainty Boosting Self-supervised Monocular Depth Estimation — Zhou et al. (2021) (arXiv:2111.09692, 2021)910## What this evaluates1112Evaluates self-supervised monocular depth estimation models on outdoor driving scenes, measuring both the geometric accuracy of predicted depth maps and the reliability of associated uncertainty estimates.1314## Datasets1516- **KITTI** — total ?; splits: train (39810), val (4424)1718## Metrics1920- `Abs Rel` **(primary)** — range: [0, 1]21 - Mean absolute relative error: (1/N) Σ |d_pred - d_gt| / d_gt. Lower is better.22- `Sq Rel` — range: [0, 1]23 - Mean squared relative error: (1/N) Σ (d_pred - d_gt)² / d_gt. Lower is better.24- `RMSE` — range: [0, inf)25 - Root mean squared error: sqrt((1/N) Σ (d_pred - d_gt)²). Lower is better.26- `RMSE log` — range: [0, inf)27 - Root mean squared error of log-depth: sqrt((1/N) Σ (log d_pred - log d_gt)²). Lower is better.28- `δ1` — range: [0, 1]29 - Accuracy threshold: (1/N) Σ I(max(d_pred/d_gt, d_gt/d_pred) < 1.25). Higher is better.30- `δ2` — range: [0, 1]31 - Accuracy threshold: (1/N) Σ I(max(d_pred/d_gt, d_gt/d_pred) < 1.25²). Higher is better.32- `δ3` — range: [0, 1]33 - Accuracy threshold: (1/N) Σ I(max(d_pred/d_gt, d_gt/d_pred) < 1.25³). Higher is better.34- `AUSE` — range: [0, 1]35 - Area Under the Sparsification Error curve. Measures how quickly uncertainty estimates correlate with actual error. Lower is better.36- `AURG` — range: [0, 1]37 - Area Under the Random Gain curve. Measures uncertainty calibration quality. Higher is better.3839## Input / output format4041**Input**: RGB image frames resized to 640×192. Monocular frame triplets with a universal camera intrinsic matrix.4243**Output**: Predicted dense depth map and per-pixel depth uncertainty map.4445## Scoring recipe4647```python48def compute_depth_metrics(pred, gt):49 valid = gt > 050 p, g = pred[valid], gt[valid]51 abs_rel = np.mean(np.abs(p - g) / g)52 sq_rel = np.mean(((p - g) ** 2) / g)53 rmse = np.sqrt(np.mean((p - g) ** 2))54 rmse_log = np.sqrt(np.mean((np.log(p) - np.log(g)) ** 2))55 thresh = np.maximum((p / g), (g / p))56 d1 = np.mean(thresh < 1.25)57 d2 = np.mean(thresh < 1.25 ** 2)58 d3 = np.mean(thresh < 1.25 ** 3)59 return abs_rel, sq_rel, rmse, rmse_log, d1, d2, d360```6162## Common pitfalls6364- Confusing the Eigen split with other KITTI splits (e.g., Geiger) changes train/val/test sizes.65- AUSE and AURG have opposite optimization directions: lower AUSE is better, higher AURG is better.66- Photometric loss weighting is often confused with uncertainty weighting in ablation studies; the paper explicitly compares 1:1 fixed weighting vs. learned uncertainty weighting.6768## Evidence (verbatim from paper)6970> Depth metrics described by Eigen [9] are the most common used metrics for evaluating depth estimation accuracy. They include four error metrics: the Absolute Relative Error (Abs Rel), Squared Relative Error (Sq Rel), Root Mean Squared Error (RMSE), and the log of RMSE; accuracy metric: δ1, δ2, δ3.7172## Citation7374```bibtex75@misc{zhou2021subdepth,76 title={SUB-Depth: Self-distillation and Uncertainty Boosting Self-supervised Monocular Depth Estimation},77 author={Zhou et al. (2021)},78 year={2021},79 note={arXiv:2111.09692}80}81```8283- arXiv: 2111.09692