e3d-bench-eval
E3D-Bench: A Benchmark for End-to-End 3D Geometric Foundation Models — Wenyan Cong et al. (2025) (arXiv:2506.01933, 2025)
What this evaluates
Evaluates the effectiveness, robustness, and inference efficiency of end-to-end 3D Geometric Foundation Models across sparse-view depth estimation, video depth estimation, and multi-view relative pose estimation. It probes models' ability to generalize across diverse domains including indoor, outdoor, aerial, and highly dynamic scenes under both normalized and metric-scale settings.
Datasets
- DTU — total ?; splits: test (-1)
- ETH3D — total ?; splits: test (-1)
- KITTI — total ?; splits: test (-1)
- Tanks and Temples — total ?; splits: test (-1)
- ScanNet — total ?; splits: test (-1)
- Bonn — total ?; splits: test (-1)
- TUM Dynamics — total ?; splits: test (-1)
- Sintel — total ?; splits: test (-1)
- PointOdyssey — total ?; splits: val (-1)
- Syndrome — total ?; splits: test (-1)
- CO3Dv2 — total ?; splits: test (-1)
- RealEstate10K — total ?; splits: test (-1)
- ScanNet-eval — total ?; splits: test (-1)
- KITTI Odometry — total ?; splits: test (-1)
- ADT — total ?; splits: test (-1)
- ACID — total ?; splits: test (-1)
- ULTRRA — total ?; splits: test (-1)
Metrics
AbsRel (primary) — range: other
- Measures the average relative error between model output and ground truth: mean(|pred - gt| / gt). Lower is better.
δ < 1.03 — range: percent
- Captures the percentage of pixels within 3% relative error (max(pred/gt, gt/pred) < 1.03). Higher is better.
δ < 1.25 — range: percent
- Captures the percentage of pixels within 25% relative error (max(pred/gt, gt/pred) < 1.25). Higher is better.
ATE — range: other
- Absolute Translation Error between predicted and ground-truth trajectories after Sim(3) alignment. Lower is better.
RPE-trans — range: other
- Relative Translation Error between consecutive predicted and ground-truth poses after Sim(3) alignment. Lower is better.
RPE-rot — range: other
- Relative Rotation Error between consecutive predicted and ground-truth poses after Sim(3) alignment. Lower is better.
Input / output format
Input: Sparse-view image pairs or triplets with minimal/no overlap for depth estimation; monocular video sequences for video depth estimation; multi-view image collections for relative pose estimation.
Output: Per-pixel depth maps (extracted from the z-coordinate of predicted point maps or via confidence-weighted averaging); relative camera pose trajectories (translation and rotation matrices).
Scoring recipe
def compute_depth_metrics(pred_depth, gt_depth, delta_threshold=1.03):
abs_rel = np.mean(np.abs(pred_depth - gt_depth) / gt_depth)
delta = np.mean(np.maximum(pred_depth / gt_depth, gt_depth / pred_depth) < delta_threshold)
return abs_rel, delta
def compute_pose_metrics(pred_traj, gt_traj):
pred_aligned = align_sim3(pred_traj, gt_traj)
ate = np.mean(np.linalg.norm(pred_aligned - gt_traj, axis=-1))
rpe_trans = np.mean(np.linalg.norm(np.diff(pred_aligned, axis=0) - np.diff(gt_traj, axis=0), axis=-1))
rpe_rot = np.mean(np.arccos(np.clip(np.einsum('ij,ij->i', np.diff(pred_aligned, axis=0), np.diff(gt_traj, axis=0)), -1, 1)))
return ate, rpe_trans, rpe_rot
Common pitfalls
- Confusing normalized vs. metric-scale evaluation protocols; normalized models require median depth scaling, while metric models should be evaluated on raw outputs or with an extra median-aligned setting.
- Failing to upsample all predictions to full resolution before computing metrics, which inflates error values.
- Not handling video padding or frame repetition for models that require fixed input lengths (e.g., padding sequences <16 frames for Geo4D, or using default 41-frame outputs for Aether).
- Applying a single Sim(3) alignment to datasets with separate coordinate systems (e.g., ULTRRA aerial/ground trajectories), which requires alternative metrics.
Evidence (verbatim from paper)
Evaluation Metrics: Two widely used metrics to evaluate depth estimation performance: Absolute Relative Error (AbsRel) measures the average relative error between model output and ground truth; the Inlier Ratio δ < 1.03 [36, 37] captures the percentage of pixels within 3% relative error.
Citation
@misc{cong2025e3dbench,
title={E3D-Bench: A Benchmark for End-to-End 3D Geometric Foundation Models},
author={Wenyan Cong et al. (2025)},
year={2025},
note={arXiv:2506.01933}
}
1---2name: e3d-bench-eval3description: Evaluates the effectiveness, robustness, and inference efficiency of end-to-end 3D Geometric Foundation Models across sparse-view depth estimation, video depth estimation, and multi-view relative pose estimation. It probes models' ability to generalize across diverse domains including indoor, outdoor, aerial, and highly dynamic scenes under both normalized and metric-scale settings. Use when the user wants to benchmark on DTU, ETH3D, KITTI, Tanks and Temples, ScanNet, Bonn, TUM Dynamics, Sintel, PointOdyssey, Syndrome, CO3Dv2, RealEstate10K, ScanNet-eval, KITTI Odometry, ADT, ACID, ULTRRA, or asks about evaluating this task. Reports AbsRel.4---56# e3d-bench-eval78> E3D-Bench: A Benchmark for End-to-End 3D Geometric Foundation Models — Wenyan Cong et al. (2025) (arXiv:2506.01933, 2025)910## What this evaluates1112Evaluates the effectiveness, robustness, and inference efficiency of end-to-end 3D Geometric Foundation Models across sparse-view depth estimation, video depth estimation, and multi-view relative pose estimation. It probes models' ability to generalize across diverse domains including indoor, outdoor, aerial, and highly dynamic scenes under both normalized and metric-scale settings.1314## Datasets1516- **DTU** — total ?; splits: test (-1)17- **ETH3D** — total ?; splits: test (-1)18- **KITTI** — total ?; splits: test (-1)19- **Tanks and Temples** — total ?; splits: test (-1)20- **ScanNet** — total ?; splits: test (-1)21- **Bonn** — total ?; splits: test (-1)22- **TUM Dynamics** — total ?; splits: test (-1)23- **Sintel** — total ?; splits: test (-1)24- **PointOdyssey** — total ?; splits: val (-1)25- **Syndrome** — total ?; splits: test (-1)26- **CO3Dv2** — total ?; splits: test (-1)27- **RealEstate10K** — total ?; splits: test (-1)28- **ScanNet-eval** — total ?; splits: test (-1)29- **KITTI Odometry** — total ?; splits: test (-1)30- **ADT** — total ?; splits: test (-1)31- **ACID** — total ?; splits: test (-1)32- **ULTRRA** — total ?; splits: test (-1)3334## Metrics3536- `AbsRel` **(primary)** — range: other37 - Measures the average relative error between model output and ground truth: mean(|pred - gt| / gt). Lower is better.38- `δ < 1.03` — range: percent39 - Captures the percentage of pixels within 3% relative error (max(pred/gt, gt/pred) < 1.03). Higher is better.40- `δ < 1.25` — range: percent41 - Captures the percentage of pixels within 25% relative error (max(pred/gt, gt/pred) < 1.25). Higher is better.42- `ATE` — range: other43 - Absolute Translation Error between predicted and ground-truth trajectories after Sim(3) alignment. Lower is better.44- `RPE-trans` — range: other45 - Relative Translation Error between consecutive predicted and ground-truth poses after Sim(3) alignment. Lower is better.46- `RPE-rot` — range: other47 - Relative Rotation Error between consecutive predicted and ground-truth poses after Sim(3) alignment. Lower is better.4849## Input / output format5051**Input**: Sparse-view image pairs or triplets with minimal/no overlap for depth estimation; monocular video sequences for video depth estimation; multi-view image collections for relative pose estimation.5253**Output**: Per-pixel depth maps (extracted from the z-coordinate of predicted point maps or via confidence-weighted averaging); relative camera pose trajectories (translation and rotation matrices).5455## Scoring recipe5657```python58def compute_depth_metrics(pred_depth, gt_depth, delta_threshold=1.03):59 abs_rel = np.mean(np.abs(pred_depth - gt_depth) / gt_depth)60 delta = np.mean(np.maximum(pred_depth / gt_depth, gt_depth / pred_depth) < delta_threshold)61 return abs_rel, delta6263def compute_pose_metrics(pred_traj, gt_traj):64 pred_aligned = align_sim3(pred_traj, gt_traj)65 ate = np.mean(np.linalg.norm(pred_aligned - gt_traj, axis=-1))66 rpe_trans = np.mean(np.linalg.norm(np.diff(pred_aligned, axis=0) - np.diff(gt_traj, axis=0), axis=-1))67 rpe_rot = np.mean(np.arccos(np.clip(np.einsum('ij,ij->i', np.diff(pred_aligned, axis=0), np.diff(gt_traj, axis=0)), -1, 1)))68 return ate, rpe_trans, rpe_rot69```7071## Common pitfalls7273- Confusing normalized vs. metric-scale evaluation protocols; normalized models require median depth scaling, while metric models should be evaluated on raw outputs or with an extra median-aligned setting.74- Failing to upsample all predictions to full resolution before computing metrics, which inflates error values.75- Not handling video padding or frame repetition for models that require fixed input lengths (e.g., padding sequences <16 frames for Geo4D, or using default 41-frame outputs for Aether).76- Applying a single Sim(3) alignment to datasets with separate coordinate systems (e.g., ULTRRA aerial/ground trajectories), which requires alternative metrics.7778## Evidence (verbatim from paper)7980> Evaluation Metrics: Two widely used metrics to evaluate depth estimation performance: Absolute Relative Error (AbsRel) measures the average relative error between model output and ground truth; the Inlier Ratio δ < 1.03 [36, 37] captures the percentage of pixels within 3% relative error.8182## Citation8384```bibtex85@misc{cong2025e3dbench,86 title={E3D-Bench: A Benchmark for End-to-End 3D Geometric Foundation Models},87 author={Wenyan Cong et al. (2025)},88 year={2025},89 note={arXiv:2506.01933}90}91```9293- arXiv: 2506.01933