CoolFace
Datasetpublic

shijianjian/ZDPShift

ZDPShift: Beyond the Zero-Disparity Plane in Stereo Every public stereo benchmark assumes positive disparity valuesd = fB/Z ≥ 0. Mordern stereoscopic display — cinema 3D, VR, HMDs — actively uses d < 0. ZDPShift bridges the gap: the same artist-authored open-movie content rendered at five ZDP shifts Δ ∈ {−16, 0, +16, +24, +32} pixels, giving you a controlled continuum from textbook-positive to substantially-crossed disparities, with analytical ground truth at every pixel.… See the full description on the dataset page: https://huggingface.co/datasets/shijianjian/ZDPShift.

sourceHugging Facecc-by-sa-4.0updated 1mo agoView on Hugging Face
0likes4.4kdownloads
Dataset Card

ZDPShift: Beyond the Zero-Disparity Plane in Stereo

<p align="center"> <img src="images/teaser.png" alt="Same scene rendered at five ZDP shifts; anaglyph + GT disparity + error map" width="100%"/> </p>

Every public stereo benchmark assumes positive disparity valuesd = fB/Z ≥ 0. Mordern stereoscopic display — cinema 3D, VR, HMDs — actively uses d < 0. ZDPShift bridges the gap: the same artist-authored open-movie content rendered at five ZDP shifts Δ ∈ {−16, 0, +16, +24, +32} pixels, giving you a controlled continuum from textbook-positive to substantially-crossed disparities, with analytical ground truth at every pixel.

News:

  • [1st July] A technical report is on the way!

The problem in one plot

<p align="center"> <img src="images/sota_failure.png" alt="EPE of public SOTA stereo models vs ZDP shift" width="80%"/> </p>

Every public SOTA fails by 19–60× the instant disparity crosses zero. ZDPShift gives you the data to fix that.

What you get

SplitSourceScenesFramesPairsSize
train/6 Blender open movies304,13420,670318 GB
test/Caminandes Llamigos42711,35535 GB

Per pair: left.png + right.png (1920×1280 open-movie) + disparity.npy (signed float32) + meta.json (Δ, focal, baseline, KL, KR, % crossed).

Gallery

<p align="center"> <img src="images/gallery.png" alt="ZDPShift scene gallery across the 8 source franchises" width="100%"/> </p>

Geometry

d(Z, Δ) = f · B / Z − Δ                    baseline B = 0.10 m,   Δ ∈ {−16, 0, +16, +24, +32} px

Cameras stay physically parallel — only the principal points shift by ∓Δ/2. Multi-Δ self-consistency d(Δᵢ) − d(Δⱼ) = Δⱼ − Δᵢ holds to a median 0.04 px residual (sub-pixel Cycles noise).

rendered_datasets/<split>/<scene>/frame_<N>_<cam>/shift_{-16,+0,+16,+24,+32}/
                                                      ├── left.png
                                                      ├── right.png
                                                      ├── disparity.npy
                                                      └── meta.json

Render protocol

To keep ground truth well-defined at every pixel, three artist settings are overridden:

  • Aperture forced to f/64 — defocus blur kept below sub-pixel
  • Motion blur off — fast objects have crisp per-frame correspondences
  • Compositor bypassed — no grading / bloom / flare distortion after correspondence

Everything else (lighting, materials, scene composition, camera path, focal length per shot) is inherited from the original .blend unchanged. Cycles 32 spp + OPTIX denoising; sampler noise floor ≈ 0.005/255 per pixel.

License

CC-BY-SA-4.0, inherited from the Blender Studio open movies. Redistribute and adapt with attribution and share-alike.

shijianjian/ZDPShift · CoolFace