stereospace_web / index.html
toshas's picture
Add Huggingface Space Header (#1)
8d7605b verified
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="description"
content="StereoSpace: Depth-Free Synthesis of Stereo Geometry via End-to-End Diffusion in a Canonical Space">
<meta name="keywords" content="stereo generation, diffusion models, image processing, computer vision">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="twitter:card" content="summary">
<meta name="twitter:image:src" content="http://marigoldmonodepth.github.io/images/marigold_logo_square.jpg">
<meta name="twitter:title" content="StereoSpace">
<meta name="twitter:description" content="StereoSpace: Depth-Free Synthesis of Stereo Geometry via End-to-End Diffusion in a Canonical Space">
<meta name="twitter:creator" content="@AntonObukhov1">
<title>StereoSpace: Depth-Free Synthesis of Stereo Geometry via End-to-End Diffusion in a Canonical Space</title>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-1FWSVCGZTG"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-1FWSVCGZTG');
</script>
<!-- Huggingface Space Header -->
<script type="module">
import { init } from "https://cdn.jsdelivr.net/npm/@huggingface/space-header/+esm";
init("prs-eth/stereospace_web");
</script>
<link href="https://fonts.googleapis.com/css?family=Google+Sans|Noto+Sans|Castoro"
rel="stylesheet">
<link rel="stylesheet" href="./css/bulma.min.css">
<link rel="stylesheet" href="./css/bulma-carousel.min.css">
<link rel="stylesheet" href="./css/bulma-slider.min.css">
<link rel="stylesheet" href="./css/twentytwenty.css">
<link rel="stylesheet" href="./css/index.css">
<link rel="icon" href="./images/favicon.svg">
<link rel="stylesheet" href="./css/comparison-widget.css?v=1">
<script src="./js/jquery-3.2.1.min.js"></script>
<script src="./js/jquery.event.move.js"></script>
<script src="./js/jquery.twentytwenty.js"></script>
<script src="./js/bulma-carousel.min.js"></script>
<script src="./js/bulma-slider.min.js"></script>
<script src="./js/fontawesome.all.min.js"></script>
<script src="./js/comparison-widget.js"></script>
<!--MathJax-->
<script>
window.MathJax = {
tex: {
inlineMath: [['$', '$'], ['\\(', '\\)']]
},
svg: {
fontCache: 'global'
}
};
</script>
<script type="text/javascript" id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
</head>
<body>
<section class="hero">
<div class="hero-body">
<div class="container is-max-desktop">
<div class="columns is-centered">
<div class="column has-text-centered">
<h1 class="title is-1 publication-title">StereoSpace: Depth-Free Synthesis of Stereo Geometry via End-to-End Diffusion in a Canonical Space</h1>
<div class="is-size-5 publication-authors">
<span class="author-block"><a href="https://scholar.google.com/citations?user=5tfQSGkAAAAJ" target="_blank">Tjark Behrens</a><sup>1</sup>,</span>
<span class="author-block"><a href="https://www.obukhov.ai/" target="_blank">Anton Obukhov</a><sup>3</sup>,</span>
<span class="author-block"><a href="https://www.kebingxin.com/" target="_blank">Bingxin Ke</a><sup>1</sup>,</span>
<span class="author-block"><a href="https://fabiotosi92.github.io/" target="_blank">Fabio Tosi</a><sup>2</sup>,</span>
<span class="author-block"><a href="https://mattpoggi.github.io/" target="_blank">Matteo Poggi</a><sup>2</sup>,</span>
<span class="author-block"><a href="https://scholar.google.com/citations?user=FZuNgqIAAAAJ" target="_blank">Konrad Schindler</a><sup>1</sup></span>
</div>
<div class="is-size-5 publication-authors">
<span class="author-block"><sup>1</sup>ETH Zürich</span>
<span class="author-block"><sup>2</sup>University of Bologna</span>
<span class="author-block"><sup>3</sup>HUAWEI Bayer Lab</span>
</div>
<div class="column has-text-centered">
<div class="publication-links">
<!-- Paper -->
<span class="link-block">
<a href="https://arxiv.org/abs/2512.10959" target="_blank" rel="noopener noreferrer"
class="external-link button is-normal is-rounded is-dark">
<span class="icon">
<i class="fas fa-file-pdf" style="color: orangered"></i>
</span>
<span>Paper</span>
</a>
</span>
<!-- Code -->
<span class="link-block">
<a href="https://github.com/prs-eth/stereospace" target="_blank" rel="noopener noreferrer" class="external-link button is-normal is-rounded is-dark">
<span class="icon">
<i class="fab fa-github"></i>
</span>
<span>
Code
</span>
</a>
</span>
<!-- Demo -->
<span class="link-block">
<a href="https://hf.co/spaces/toshas/stereospace" target="_blank" rel="noopener noreferrer" class="external-link button is-normal is-rounded is-dark">
<span class="icon">
&#129303;
</span>
<span>
Demo
</span>
</a>
</span>
<!-- Model -->
<span class="link-block">
<a href="https://hf.co/prs-eth/stereospace-v1-0" target="_blank" rel="noopener noreferrer" class="external-link button is-normal is-rounded is-dark">
<span class="icon">
&#129303;
</span>
<span>
Model
</span>
</a>
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="hero teaser">
<div class="is-max-desktop">
<div class="hero-body">
<!-- Desktop version (full-width image) -->
<div id="teaser-desktop">
<img src="./images/teaser.jpg" alt="Teaser image" style="width:100%;"/>
<div class="content has-text-justified">
We present <span class="methodname">StereoSpace</span>, a method for generating stereo from monocular images.
<b>Left</b>: Built on a foundational LDM, our framework efficiently leverages learned priors for end-to-end view synthesis. The target baseline in world units acts as conditioning for precise view control.
Images featuring the dragon are illustrative examples. <b>Right</b>: Implicit scene understanding allows us to tackle the most complex cases
where geometry cues alone are insufficient for novel view synthesis. Best viewed zoomed-in. Legend: <i>squares</i> — warping, <i>circles</i> — breaks, <i>lines</i> — bends,
<i>arrows</i> — ghosting. StereoSpace consistently outperforms recent monocular competition, including generative 3DGS models like Lyra.
</div>
</div>
<!-- Mobile version (two halves) -->
<div id="teaser-mobile">
<div class="teaser-half teaser-half-left mb-4">
<img src="./images/teaser.jpg" alt="Teaser left half">
</div>
<div class="content has-text-justified">
We present <span class="methodname">StereoSpace</span>, a method for generating stereo from monocular images.
Built on a foundational LDM, our framework efficiently leverages learned priors for end-to-end view synthesis. The target baseline in world units acts as conditioning for precise view control.
Images featuring the dragon are illustrative examples.
</div>
<div class="teaser-half teaser-half-right mb-4">
<img src="./images/teaser.jpg" alt="Teaser right half">
</div>
<div class="content has-text-justified">
Implicit scene understanding allows us to tackle the most complex cases
where geometry cues alone are insufficient for novel view synthesis. Best viewed zoomed-in. Legend: <i>squares</i> — warping, <i>circles</i> — breaks, <i>lines</i> — bends,
<i>arrows</i> — ghosting. StereoSpace consistently outperforms recent monocular competition, including generative 3DGS models like Lyra.
</div>
</div>
</div>
</div>
</section>
<section class="section pt-0">
<div class="container is-max-desktop">
<!-- Abstract. -->
<div class="columns is-centered has-text-centered">
<div class="column is-four-fifths">
<h2 class="title is-3">Abstract</h2>
<div class="content has-text-justified">
<p>
<span class="methodname">StereoSpace</span> is a diffusion-based framework for monocular-to-stereo synthesis that models geometry purely through viewpoint conditioning,
without explicit depth or warping. A canonical rectified space and the conditioning guide the generator to infer correspondences and fill disocclusions
end-to-end. To ensure fair and leakage-free evaluation, we introduce an end-to-end protocol that excludes any ground truth or proxy geometry estimates
at test time. The protocol emphasizes metrics reflecting downstream relevance: iSQoE for perceptual comfort and MEt3R for geometric consistency.
StereoSpace surpasses other methods from the warp & inpaint, latent-warping, and warped-conditioning categories, achieving sharp parallax and strong
robustness on layered and non-Lambertian scenes. This establishes viewpoint-conditioned diffusion as a scalable, depth-free solution for stereo generation.
</p>
</div>
</div>
</div>
</div>
</section>
<section class="section pt-0 pb-4">
<div class="container is-max-desktop">
<div class="columns is-centered has-text-centered">
<div class="column is-four-fifths">
<h2 class="title is-3">Gallery</h2>
</div>
</div>
</div>
</section>
<!-- Results Carousel. -->
<section class="hero is-light is-small mt-4">
<div class="hero-body">
<div class="content has-text-justified">
<p>
<span class="methodname">StereoSpace</span> shows strong generalization on in-the-wild imagery.
The examples in this gallery include challenging reflective surfaces that never appear during training,
yet the model produces consistent, high-quality results, indicating robust out-of-distribution behavior.
We show the outputs in two common stereo formats: anaglyph and side-by-side, using the two components below.
</p>
<p>
Use anaglyph glasses to watch the results of <span class="methodname">StereoSpace</span> in stereo:
</p>
</div>
<div id="results-carousel-horizontal" class="carousel results-carousel">
<div class="twoitem">
<div class="twentytwenty-container twentytwenty-container-top">
<div class="cmpcontent">
<img alt="" src="./images/comparison/bakery_source.png">
</div>
<div class="cmpcontent">
<img alt="" src="./images/comparison/bakery_anaglyph.png">
</div>
</div>
</div>
<div class="twoitem">
<div class="twentytwenty-container twentytwenty-container-top">
<div class="cmpcontent">
<img alt="" src="./images/comparison/cafe_source.png">
</div>
<div class="cmpcontent">
<img alt="" src="./images/comparison/cafe_anaglyph.png">
</div>
</div>
</div>
<div class="twoitem">
<div class="twentytwenty-container twentytwenty-container-top">
<div class="cmpcontent">
<img alt="" src="./images/comparison/car_wheel_source.png">
</div>
<div class="cmpcontent">
<img alt="" src="./images/comparison/car_wheel_anaglyph.png">
</div>
</div>
</div>
<div class="twoitem">
<div class="twentytwenty-container twentytwenty-container-top">
<div class="cmpcontent">
<img alt="" src="./images/comparison/dog_source.png">
</div>
<div class="cmpcontent">
<img alt="" src="./images/comparison/dog_anaglyph.png">
</div>
</div>
</div>
<div class="twoitem">
<div class="twentytwenty-container twentytwenty-container-top">
<div class="cmpcontent">
<img alt="" src="./images/comparison/entrance_source.png">
</div>
<div class="cmpcontent">
<img alt="" src="./images/comparison/entrance_anaglyph.png">
</div>
</div>
</div>
<div class="twoitem">
<div class="twentytwenty-container twentytwenty-container-top">
<div class="cmpcontent">
<img alt="" src="./images/comparison/misty_train_source.png">
</div>
<div class="cmpcontent">
<img alt="" src="./images/comparison/misty_train_anaglyph.png">
</div>
</div>
</div>
<div class="twoitem">
<div class="twentytwenty-container twentytwenty-container-top">
<div class="cmpcontent">
<img alt="" src="./images/comparison/museum_source.png">
</div>
<div class="cmpcontent">
<img alt="" src="./images/comparison/museum_anaglyph.png">
</div>
</div>
</div>
<div class="twoitem">
<div class="twentytwenty-container twentytwenty-container-top">
<div class="cmpcontent">
<img alt="" src="./images/comparison/park_cart_source.png">
</div>
<div class="cmpcontent">
<img alt="" src="./images/comparison/park_cart_anaglyph.png">
</div>
</div>
</div>
<div class="twoitem">
<div class="twentytwenty-container twentytwenty-container-top">
<div class="cmpcontent">
<img alt="" src="./images/comparison/pharaoh_source.png">
</div>
<div class="cmpcontent">
<img alt="" src="./images/comparison/pharaoh_anaglyph.png">
</div>
</div>
</div>
<div class="twoitem">
<div class="twentytwenty-container twentytwenty-container-top">
<div class="cmpcontent">
<img alt="" src="./images/comparison/phone_booth_source.png">
</div>
<div class="cmpcontent">
<img alt="" src="./images/comparison/phone_booth_anaglyph.png">
</div>
</div>
</div>
<div class="twoitem">
<div class="twentytwenty-container twentytwenty-container-top">
<div class="cmpcontent">
<img alt="" src="./images/comparison/store_source.png">
</div>
<div class="cmpcontent">
<img alt="" src="./images/comparison/store_anaglyph.png">
</div>
</div>
</div>
<div class="twoitem">
<div class="twentytwenty-container twentytwenty-container-top">
<div class="cmpcontent">
<img alt="" src="./images/comparison/store_front_source.png">
</div>
<div class="cmpcontent">
<img alt="" src="./images/comparison/store_front_anaglyph.png">
</div>
</div>
</div>
</div>
</div>
</section>
<section class="hero is-light is-small">
<div class="hero-body pt-0">
<div class="content has-text-justified">
<p>
Use VR or any SBS (side-by-side) compatible viewer to watch the results of <span class="methodname">StereoSpace</span> in stereo:
</p>
</div>
<div id="results-carousel-vertical" class="carousel results-carousel">
<div class="twoitem">
<div class="cmpcontent">
<img alt="" src="./images/comparison/bakery_sbs.png">
</div>
</div>
<div class="twoitem">
<div class="cmpcontent">
<img alt="" src="./images/comparison/cafe_sbs.png">
</div>
</div>
<div class="twoitem">
<div class="cmpcontent">
<img alt="" src="./images/comparison/car_wheel_sbs.png">
</div>
</div>
<div class="twoitem">
<div class="cmpcontent">
<img alt="" src="./images/comparison/dog_sbs.png">
</div>
</div>
<div class="twoitem">
<div class="cmpcontent">
<img alt="" src="./images/comparison/entrance_sbs.png">
</div>
</div>
<div class="twoitem">
<div class="cmpcontent">
<img alt="" src="./images/comparison/misty_train_sbs.png">
</div>
</div>
<div class="twoitem">
<div class="cmpcontent">
<img alt="" src="./images/comparison/museum_sbs.png">
</div>
</div>
<div class="twoitem">
<div class="cmpcontent">
<img alt="" src="./images/comparison/park_cart_sbs.png">
</div>
</div>
<div class="twoitem">
<div class="cmpcontent">
<img alt="" src="./images/comparison/pharaoh_sbs.png">
</div>
</div>
<div class="twoitem">
<div class="cmpcontent">
<img alt="" src="./images/comparison/phone_booth_sbs.png">
</div>
</div>
<div class="twoitem">
<div class="cmpcontent">
<img alt="" src="./images/comparison/store_sbs.png">
</div>
</div>
<div class="twoitem">
<div class="cmpcontent">
<img alt="" src="./images/comparison/store_front_sbs.png">
</div>
</div>
</div>
</div>
</section>
<!-- Baseline Comparison Title -->
<section class="section pt-6 pb-4">
<div class=" is-max-desktop">
<div class="columns is-centered has-text-centered">
<div class="column is-four-fifths">
<h2 class="title is-3">Qualitative Comparison with Other Recent Methods</h2>
</div>
</div>
</div>
</section>
<!-- Combined Gallery and Comparison Widget with Light Background -->
<section class="hero is-light is-small mt-4">
<div class="hero-body">
<div class="is-max-desktop">
<div class="content has-text-justified">
<p>
The component below provides a qualitative comparison with several recent methods on the same scenes.
You can switch between scenes using the previews at the top and compare methods by selecting them with the buttons inside the main view.
</p>
</div>
<!-- Image Gallery -->
<div class="ws-gallery-grid mb-5">
<div class="ws-gallery-item is-active" data-scene="215">
<img src="./images/teaser_subfigures/215/tgt.png" alt="215" />
</div>
<div class="ws-gallery-item" data-scene="249">
<img src="./images/teaser_subfigures/249/tgt.png" alt="249" />
</div>
<div class="ws-gallery-item" data-scene="252">
<img src="./images/teaser_subfigures/252/tgt.png" alt="252" />
</div>
<div class="ws-gallery-item" data-scene="285">
<img src="./images/teaser_subfigures/285/tgt.png" alt="285" />
</div>
<div class="ws-gallery-item" data-scene="297">
<img src="./images/teaser_subfigures/297/tgt.png" alt="297" />
</div>
</div>
<!-- Comparison Widget -->
<div class="columns is-variable is-2-desktop">
<!-- StereoSpace vs Baseline comparison with slider -->
<div class="column">
<div class="ws-card">
<div class="ws-card-body ws-card-body-relative">
<div class="twentytwenty-container twentytwenty-container-top" id="ws-comparison-slider">
<div class="cmpcontent">
<img
id="ws-image-left"
src="./images/teaser_subfigures/215/tgt.png"
alt="Ground Truth"
/>
</div>
<div class="cmpcontent">
<img
id="ws-image-right"
src="./images/teaser_subfigures/215/stereospace.png"
alt="StereoSpace (ours)"
/>
</div>
</div>
<!-- Model selector for baseline comparison -->
<div class="ws-model-selector-overlay">
<button class="ws-model-pill is-active" data-model="stereospace">StereoSpace (ours)</button>
<button class="ws-model-pill" data-model="lyra">Lyra</button>
<button class="ws-model-pill" data-model="genstereo">GenStereo</button>
<button class="ws-model-pill" data-model="stereodiffusion">StereoDiffusion</button>
<button class="ws-model-pill" data-model="zerostereo">ZeroStereo</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="section">
<div class="container is-max-desktop">
<!-- Method. -->
<div class="columns is-centered has-text-centered">
<div class="column is-four-fifths">
<h2 class="title is-3">Our Approach</h2>
<div class="content has-text-justified">
<h3 class="title has-text-centered mt-4">
Idea
</h3>
<p>
Unlike recent methods grouped under "warp-and-inpaint", "latent warping", or "warped conditioning", each relying
on explicit monocular geometry estimates that are difficult and error-prone, we instead let the foundation
diffusion model infer 3D structure implicitly and train stereo generation end-to-end.
The resulting model outperforms all these categories and even surpasses Lyra, a strong generative 3DGS-based competitor.
Qualitative examples are shown in the slider above.
</p>
<h3 class="title has-text-centered mt-4">
Contributions
</h3>
<ul>
<li>
Single-image conditional generation of counterpart views, free from explicit geometric shortcuts;
</li>
<li>
End-to-end training procedure for efficient transfer of the rich task-agnostic foundation prior to the task at hand;
</li>
<li>
A novel perceptual and geometry-aware evaluation.
</li>
</ul>
<h3 class="title has-text-centered mt-4">
Model Architecture for End-to-End View Synthesis
</h3>
<p>
To produce the right view, our model uses a dual U-Net initialized from Stable Diffusion v2.0.
The top branch operates on the source view latent as well as the viewpoint condition.
The target baseline is encoded similarly and is concatenated with the latent code of the counterpart view.
Latent and pixel-space losses supervise fine-tuning, wherein target view synthesis leverages source view features through end-to-end cross attention.
Red arrows denote operations at training time only.
</p>
<img id="method_inference" src="./images/method.jpg" alt="Method"/>
<h3 class="title has-text-centered mt-5">
Quantitative Comparison with Other Recent Methods
</h3>
<p>
We compare the baselines using two complementary metrics: iSQoE, which reflects stereo viewing comfort and
perceptual coherence, and MEt3R, which captures geometric consistency across the rendered views.
Interpreted together, these metrics make the performance differences clear.
Diffusion-based inpainting methods score worse in both perceptual and geometric metrics, reflecting their
tendency toward smooth but structurally unreliable completions. Warping-based models improve geometry but
still struggle in occluded regions, which the metrics reveal. Depth-conditioned GenStereo performs more
stably, especially on simpler scenes. Across datasets, StereoSpace is the only method improving both
perceptual comfort and geometric consistency simultaneously, indicating that integrating geometry directly
into generation in an end-to-end fashion is most effective.
</p>
<img id="comparison" src="./images/tables.png" alt="Quantitative Comparison with Other Recent Methods"/>
<p class="mt-4 mb-0 pb-0">
Refer to the pdf paper linked above for more details on qualitative, quantitative, and ablation studies.
</p>
</div>
</div>
</div>
<!--/ Method. -->
</div>
</section>
<script>
$(window).on('load', function() {
bulmaCarousel.attach('#results-carousel-horizontal', {
slidesToScroll: 1,
slidesToShow: 3,
loop: true,
autoplay: true,
});
bulmaCarousel.attach('#results-carousel-vertical', {
slidesToScroll: 1,
slidesToShow: 1,
loop: true,
autoplay: true,
});
bulmaCarousel.attach('#results-carousel-testimonials', {
slidesToScroll: 1,
slidesToShow: 3,
loop: true,
autoplay: true,
});
$(".twentytwenty-container-top").twentytwenty({
before_label: 'Input',
after_label: 'StereoSpace (ours)',
default_offset_pct: 0.4,
});
// Initialize comparison widget slider with different labels
$("#ws-comparison-slider").twentytwenty({
before_label: 'StereoSpace (ours)',
after_label: 'Ground Truth',
default_offset_pct: 0.33,
});
$('.results-carousel').css({
'max-height': '2000px',
'visibility': 'visible'
});
});
</script>
<section class="section mt-0 pt-0" id="BibTeX">
<div class="container is-max-desktop content">
<h2 class="title">Citation</h2>
<pre class="selectable">
@misc{behrens2025stereospace,
title = {StereoSpace: Depth-Free Synthesis of Stereo Geometry via End-to-End Diffusion in a Canonical Space},
author = {Tjark Behrens and Anton Obukhov and Bingxin Ke and Fabio Tosi and Matteo Poggi and Konrad Schindler},
year = {2025},
eprint = {2512.10959},
archivePrefix= {arXiv},
primaryClass = {cs.CV},
url = {https://arxiv.org/abs/2512.10959},
}
</pre>
</div>
</section>
<footer class="footer pt-4 pb-0">
<div class="container">
<div class="columns is-centered">
<div class="column is-8">
<div class="content">
<p>
Website template based on
<a href="https://github.com/nerfies/nerfies.github.io">
Nerfies
</a>
and licensed under
<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">
CC-BY-SA-4.0
</a>.
</p>
</div>
</div>
</div>
</div>
</footer>
</body>
</html>