IROS 2026

Enhancing Glass Surface Reconstruction via Depth Prior for Robot Navigation

Jiamin Zheng*  ·  Jingwen Yu*  ·  Guangcheng Chen  ·  Hong Zhang†

Shenzhen Key Laboratory of Robotics and Computer Vision, Southern University of Science and Technology, Shenzhen, China

Jingwen Yu is also with the CKS Robotics Institute, Hong Kong University of Science and Technology, Hong Kong SAR, China

*Equal contribution  ·  †Corresponding author

Four-column comparison on glass scenes: RGB input, raw sensor depth, ground-truth depth, and our method's depth (rows), plus 3D point clouds reconstructed from sensor depth versus our depth.
Our method, combined with Depth Anything 3 (DA3), achieves superior performance on glass surface (red bounding box) depth estimation compared to raw depth sensor measurements, providing accurate geometry for robot navigation in indoor environments. A 3D point cloud visualization of the scene in the last column is presented: (a) points reconstructed from the sensor depth, and (b) points from our estimated depth. In (a), the robot might misperceive the glass region as traversable, which leads to a collision.

Abstract

Indoor robot navigation is often compromised by glass surfaces, which severely corrupt depth sensor measurements. While foundation models like Depth Anything 3 provide excellent geometric priors, they lack an absolute metric scale.

We propose a training-free framework that leverages depth foundation models as a structural prior, employing a robust local RANSAC-based alignment to fuse it with raw sensor depth. This naturally avoids contamination from erroneous glass measurements and recovers an accurate metric scale. Furthermore, we introduce GlassRecon, a novel RGB-D dataset with geometrically derived ground truth for glass regions. Extensive experiments demonstrate that our approach consistently outperforms state-of-the-art baselines, especially under severe sensor depth corruption. The dataset and related code are available at github.com/jarvisyjw/GlassRecon.

1

Modular Pipeline

A robust, training-free depth completion method that combines monocular depth priors with local RANSAC alignment.

2

Benchmark Dataset

The GlassRecon dataset (~1K annotated images) with geometrically derived ground truth and easy / hard splits for standardized benchmarking.

3

SotA Performance

Our method consistently outperforms global alignment baselines and metric depth prediction networks, with particularly significant gains on hard examples.

Method

Glass surfaces are a particularly hazardous failure case for standard RGB-D sensors, which often produce invalid measurements or incorrectly capture background objects behind the glass. Modern monocular depth foundation models provide powerful structural priors, but they are affine-invariant — they carry no absolute metric scale.

Our pipeline bridges that gap with three stages, requiring no training and no glass-specific network.

Pipeline diagram: RGB image goes through a depth foundation model to produce affine-invariant depth; sensor depth and the prior both feed a RANSAC-based depth alignment module producing aligned metric depth, which is consumed by RGB-D dense mapping for reconstruction.
System pipeline. From RGB-D inputs, a foundation model (e.g., DA3) predicts affine-invariant depth. Our RANSAC-based depth alignment fuses this with raw sensor measurements to estimate the metric scale, yielding accurate dense mapping for robot navigation.
1

Monocular Depth Prior

Any affine-invariant network F predicts a relative depth map Dprior = F(I). It captures detailed scene structure but lacks metric scale and shift. Through exhaustive experiments on GlassRecon we found DA3 best preserves glass geometry while staying generalizable.

2

Affine Alignment

A global scale s and shift t map the prior to sensor depth, estimated by a RANSAC-based procedure that samples candidates from local image patches and selects the pair minimizing error over the whole image.

3

Downstream Reconstruction

The aligned depth drops into existing RGB-D pipelines — SLAM, dense mapping, reconstruction — benefiting semantic mapping, obstacle avoidance, and safe navigation where glass would otherwise be misperceived.

Affine depth alignment via local RANSAC

The alignment problem is to find the optimal scale s and shift t minimizing the discrepancy between the prior Dprior = {di} and the raw sensor depth Draw = {d*i}.

(s, t) = arg mins,t  Σi (s di + t − d*i)2

In challenging scenarios Draw contains outliers caused by glass surfaces, so directly optimizing this objective fails. We instead adopt a RANSAC-inspired strategy: sample candidate transformations from local image patches and select the one with the smallest error over the entire image. Reliable non-glass regions dominate the total pixel count, so the globally optimal transformation naturally fits those regions well while errors on glass are suppressed.

Left: an image overlaid with a red grid of patches and randomly sampled red points inside one patch. Right: a scatter plot of estimated scale and shift for ten images, forming distinct per-image clusters, with selected patches marked as stars.
Patch-wise sampling strategy. (a) The image and its depth map are divided into grid patches {pij} and within each patch, M pixels (red points) are randomly selected to compute sij and tij. (b) Ten images randomly sampled from the proposed dataset serve as representatives. The distributions of the estimated s and t over all partitions form distinct intra-image clusters (circles). The best selected (star) partition successfully anchors the geometric center of each image's distribution.

The image is divided into an N×N grid of patches. For each patch we run K iterations of: randomly select M pixel locations without filtering for glass; compute the least-squares solution for s and t; apply the candidate to the prior and measure the total absolute error over the entire image; and retain the parameter pair yielding the minimal error across all iterations and patches.

eij = Σ | D̂ij − Draw |,     D̂* = s* Dprior + t*

Conventional global alignment lets every pixel — including those on glass where sensor depth is invalid or corresponds to background objects — contribute to parameter estimation, biasing scale and shift. Since glass typically occupies a small fraction of the image, randomly selected pixels within a patch are likely to come from reliable non-glass areas, so candidates naturally fit the correct metric depth. Validating each candidate globally then implicitly discards the erroneous glass contributions.

Modularity and generality. The alignment module is entirely decoupled from the choice of depth prior, letting it serve as a versatile front-end for dense SLAM, 3D reconstruction, and visual navigation. As more advanced affine-invariant networks emerge, they can be integrated as plug-and-play components without any algorithmic modification.

The GlassRecon Dataset

We assume most glass structures in indoor environments — windows, glass doors, tabletops — are planar. Images are sourced from Matterport3D, which provides RGB-D data and camera intrinsics, and RGB-D GSD, which contains images with manually labeled glass surfaces selected from Matterport3D.

Based on the RGB-D data and glass masks, we construct the dataset through a multi-step processing pipeline that generates complete depth maps for glass regions. The raw sensor depth map fails to measure glass surfaces accurately, so further annotation is required.

Annotation pipeline: input RGB, depth sensor, and glass mask feed four steps — depth point annotation, annotation and mask matching, 3D plane fitting, and ray-plane intersection — producing a point cloud and corrected depth map.
Annotation pipeline. The complete annotation process takes original RGB, depth sensor measurements, and the glass mask as input, and produces a metrically aligned depth map.

i. Depth Point Annotation

For each glass instance we annotate depth points lying on the same physical plane as the glass. Three or more pixels on reliable regions coplanar with the glass (e.g., points on a window frame) define the true depth of the glass surface.

ii. Annotation & Glass Mask Matching

RGB-D GSD provides a binary mask per glass region. We compute the convex hull of the annotated points and measure its overlap with each mask; the mask with the highest intersection-over-hull ratio is matched to the instance.

iii. 3D Plane Fitting

Sampled 2D coordinates are lifted to 3D by inverse perspective projection using the intrinsics, yielding points Pi. The geometry is modelled by minimizing the algebraic distance nTPi + d = 0 under the unit-norm constraint.

iv. Depth via Ray-Plane Intersection

For every pixel {u,v} inside the glass mask we cast the ray vuv = Kc−1[u,v,1]T and intersect it with the fitted plane. Solving for λuv directly yields metric depth.

The computed depths replace the original values within the glass mask. Where a glass region lacks any depth point annotations, that area is masked and excluded from evaluation. To ensure reliability, each corrected depth map is converted to a 3D point cloud and manually inspected; only images where the glass plane appears geometrically consistent are retained.

917Annotated images
601Easy · AbsRel ≤ 0.03
316Hard · AbsRel > 0.03
5Annotations per image

The hard subset contains samples with larger glass regions exhibiting significant sensor error. Each image is accompanied by an RGB image, raw sensor depth map, binary glass mask, annotated ground-truth depth, and camera intrinsics.

Dataset structure
GlassRecon/
├── images/                  # RGB images (PNG)
├── intrinsics/              # JSON files with camera intrinsics & depth scale
├── masks/                   # Binary masks for glass regions (PNG)
├── sensor_depths/           # Raw sensor depth maps (PNG)
├── completed_depths/        # Completed depth maps (NPY)
└── evaluation_depths/
    ├── depths_npy/          # Filtered depth maps (NPY) – glass regions
    │                        #   that could not be completed are masked out
    ├── depths_vis/          # Visualizations (PNG)
    └── pointclouds/         # 3D point clouds (PLY) – back-projected from
                             #   depths_npy using intrinsics

Experimental Results

We evaluate depth accuracy with AbsRel and the accuracy at δ < 1.25, computed over the entire image. The 917 images are partitioned into easy (601, AbsRel ≤ 0.03) and hard (316, AbsRel > 0.03) subsets based on the AbsRel between Draw and DGT.

Comparison with affine-invariant depth methods

Our local RANSAC alignment consistently outperforms the global alignment baseline across almost all networks and subsets, with the most substantial gains on the hard subset. Among the three networks, DA3 achieves the best overall performance when combined with our method, reducing AbsRel on the hard subset by over 46% (0.323 → 0.172).

Depth alignment results with relative depth estimators. AbsRel ↓ / δ1 ↑ over All, Easy, and Hard splits of GlassRecon. Bold marks the better of Global vs. ours within each row.
Method Alignment All Easy Hard
AbsRel ↓δ1 ↑ AbsRel ↓δ1 ↑ AbsRel ↓δ1 ↑
DAV2 Global 0.1670.876 0.1120.937 0.2720.762
Ours (Local) 0.1580.906 0.1000.936 0.2690.849
MoGe Global 0.1660.874 0.0590.963 0.3690.703
Ours (Local) 0.1420.904 0.0550.964 0.3090.790
DA3 Global 0.1520.855 0.0610.962 0.3230.651
Ours (Local) 0.0950.937 0.0550.966 0.1720.883
Six rows of hard-subset samples comparing RGB, the error map of global alignment, and the error map of our local alignment. Global alignment shows large hot-colored errors across glass regions while ours is largely neutral.
Visualization of error maps for depth alignment results. Selective samples from the hard subset of GlassRecon. Global alignment is heavily biased by background depth returned on the glass, producing large errors across the glass region; our local RANSAC alignment recovers the correct planar structure, with substantially lower error.

Comparison with metric depth methods

Using DA3 as the depth prior, our method achieves the best overall performance with significant improvement on the hard split. On the easy subset it remains competitive with PriorDA, which is designed to refine raw sensor depth without accounting for potential measurement corruption. From the visualization of selective hard-subset samples, PriorDA remains anchored to the input sensor depth and fails to recover the true glass geometry, while Metric3Dv2 and UniDepthV2 similarly struggle. MoGe-2 achieves more plausible geometry but suffers from frequent depth scale misalignment.

Metric depth estimation result. AbsRel ↓ / δ1 ↑ over All, Easy, and Hard splits. Best, second-best, and third-best per column are highlighted.
Method Variant All Easy Hard
AbsRel ↓δ1 ↑ AbsRel ↓δ1 ↑ AbsRel ↓δ1 ↑
Metric3Dv2 w/o intrin. 0.2450.834 0.1680.897 0.3900.713
w/ intrin. 0.2580.819 0.1670.887 0.4320.690
UniDepthV2 w/o intrin. 0.3050.804 0.2040.865 0.4960.687
w/ intrin. 0.3090.808 0.2040.872 0.5090.686
MoGe-2 — 0.2400.540 0.2290.548 0.2620.524
PriorDA w/o geom. 0.1580.886 0.0370.970 0.3870.726
w/ geom. 0.1550.887 0.0370.972 0.3810.724
Ours (+ DA3) 0.0950.937 0.0550.966 0.1720.883
Best Second best Third best
Six rows comparing RGB, sensor depth, ground truth, Metric3Dv2, UniDepthV2, MoGe-2, PriorDA, and our method on glass scenes. Only our column matches the ground-truth planar glass geometry.
Comparison with metric depth prediction models. Metric3Dv2 and UniDepthV2 are demonstrated without intrinsic inputs, whereas PriorDA is shown with the geometry prior. Our method recovers a clean, planar glass surface with an accurate metric scale closely matching the ground truth.

Limitations & Failure Cases

Despite its effectiveness on the majority of glass surfaces, two primary scenarios still pose challenges.

(a) Limitations of the depth prior

Our approach scales the output of the depth prediction network to improve glass reconstruction. If the prior itself fails to predict glass geometry — for example, estimating the depth of background objects behind the glass instead of the glass surface — our method fails. This highlights the dependence on the quality of the underlying depth prior; emerging developments in DFMs would seamlessly benefit the framework.

(b) Corruption from erroneous sensor depth

Robustness stems from the assumption that randomly sampled pixels are mainly from regions where sensor depth is reliable. When the sensor returns erroneous but valid depth over a glass surface occupying most of the image, those corrupted pixels dominate the global error minimization, biasing scale and shift toward fitting the incorrect measurements.

Two rows of failure cases. Row (a) shows a window where the DA3 prior estimates background geometry behind the glass rather than the glass surface. Row (b) shows a large glass area where erroneous but valid sensor depth dominates the alignment.
Visualization of representative failure cases. (a) Limitations of the monocular depth prior. (b) Corruption from erroneous sensor depth.

One potential improvement is to modify the global error minimization to better handle dominant erroneous depths — for example by introducing per-pixel weighting or a revised validation strategy. Incorporating uncertainty estimation into the alignment process could likewise improve robustness by adaptively weighting pixels based on their reliability. We leave these directions for future work.

Citation

If you find our work useful, please cite:

BibTeX
@article{zheng2026enhancing,
  title={Enhancing Glass Surface Reconstruction via Depth Prior for Robot Navigation},
  author={Zheng, Jiamin and Yu, Jingwen and Chen, Guangcheng and Zhang, Hong},
  journal={arXiv preprint arXiv:2604.18336},
  year={2026}
}