Skip to content

Memory Geometric Closure

Tests whether feature correspondences between revisit frames agree with their ViPE-estimated camera geometry. This is a pose/feature consistency proxy, not an independent 3D ground-truth check.

For relative pose Tb−1Ta=(R,t)T_b^{-1} T_a = (R, t) and nonzero baseline, use unit translation direction to avoid arbitrary monocular translation scale in the epipolar calculation:

E=[t∥t∥]×RF=Kb−⊤EKa−1(1)E = \left[\frac{t}{\lVert t \rVert}\right]_\times R \qquad F = K_b^{-\top} E K_a^{-1} \tag{1} spair=fpos⋅exp⁡(−eepi/τepi)+exp⁡(−erep/τrep)2(2)s_{\mathrm{pair}} = f_{\mathrm{pos}} \cdot \frac{ \exp(-e_{\mathrm{epi}} / \tau_{\mathrm{epi}}) + \exp(-e_{\mathrm{rep}} / \tau_{\mathrm{rep}}) }{2} \tag{2}

SIFT matches are triangulated. Positive depth is required in both cameras; fposf_{\mathrm{pos}} is measured against all matches, so perfect reprojection behind cameras cannot earn full credit. Default pixel scales are τepi=4\tau_{\mathrm{epi}} = 4 px and τrep=8\tau_{\mathrm{rep}} = 8 px. Too few finite triangulations yield no measurement.

At zero/near-zero baseline, EE is degenerate, not evidence of success. Use the pose-induced rotation homography H=KbRKa−1H = K_b R K_a^{-1} and symmetric transfer error, with score exp⁡(−e/τrep)\exp(-e / \tau_{\mathrm{rep}}); epipolar error is not applicable. HH is not fitted to the same matches.

Higher is better. The rollout averages measured pairs subject to pair-support requirements. A failed return gate does not block scoring; nearest-pose fallback pairs are used when strict revisits are absent, with gate status and pair source recorded. Missing measurement is distinct from a measured zero. The near-zero baseline tolerance is numerical, not physically calibrated; feature overlap and estimator reliability are limitations. Backend: sift_epipolar.

Audit manifest: docs/assets/metric_examples/longseq_memory_60s_examples_20260909.json.

Input image: memory-dolly_loop-memory_pool_065
Input image
60s memory_loop · same benchmark case · gap 0.8982

memory-dolly_loop-memory_pool_065

Suite: memory_loopScene: photorealistic / outdoor / terrestrial_landscape
Benchmark prompt target

Move the camera forward through the scene, then back to where it started.

prompt source: memory_loop_prompt

The better loop still satisfies a two-view geometric explanation after the return; the weaker loop breaks layout and correspondences.

Model result videos will be available with the ModelScope release. / 模型推理视频将在 ModelScope 方案上线后提供。

Higher metric scoreScore 0.8982 · official

Model result videos will be available with the ModelScope release. / 模型推理视频将在 ModelScope 方案上线后提供。

Lower metric scoreScore 0.0000 · official
Input image: memory-double_yaw_loop-memory_pool_137
Input image
60s memory_loop · same benchmark case · gap 0.9150

memory-double_yaw_loop-memory_pool_137

Suite: memory_loopScene: photorealistic / outdoor / terrestrial_landscape
Benchmark prompt target

Turn away and back to the start twice in a row.

prompt source: memory_loop_prompt

The better loop still satisfies a two-view geometric explanation after the return; the weaker loop breaks layout and correspondences.

Model result videos will be available with the ModelScope release. / 模型推理视频将在 ModelScope 方案上线后提供。

Higher metric scoreScore 0.9151 · official

Model result videos will be available with the ModelScope release. / 模型推理视频将在 ModelScope 方案上线后提供。

Lower metric scoreScore 0.0001 · official
Input image: memory-yaw_loop_360-memory_pool_028
Input image
60s memory_loop · same benchmark case · gap 0.9203

memory-yaw_loop_360-memory_pool_028

Suite: memory_loopScene: photorealistic / outdoor / city
Benchmark prompt target

Rotate the camera a full turn in place and come back to the starting view.

prompt source: memory_loop_prompt

The better loop still satisfies a two-view geometric explanation after the return; the weaker loop breaks layout and correspondences.

Model result videos will be available with the ModelScope release. / 模型推理视频将在 ModelScope 方案上线后提供。

Higher metric scoreScore 0.9203 · official

Model result videos will be available with the ModelScope release. / 模型推理视频将在 ModelScope 方案上线后提供。

Lower metric scoreScore 0.0000 · official
Input image: memory-yaw_loop_180-memory_pool_377
Input image
60s memory_loop · same benchmark case · gap 0.9014

memory-yaw_loop_180-memory_pool_377

Suite: memory_loopScene: photorealistic / outdoor / verdant_landscape
Benchmark prompt target

Turn the camera to the right, then turn back to the starting view.

prompt source: memory_loop_prompt

The better loop still satisfies a two-view geometric explanation after the return; the weaker loop breaks layout and correspondences.

Model result videos will be available with the ModelScope release. / 模型推理视频将在 ModelScope 方案上线后提供。

Higher metric scoreScore 0.9014 · official

Model result videos will be available with the ModelScope release. / 模型推理视频将在 ModelScope 方案上线后提供。

Lower metric scoreScore 0.0000 · official
Input image: memory-dolly_loop-memory_pool_352
Input image
60s memory_loop · same benchmark case · gap 0.8918

memory-dolly_loop-memory_pool_352

Suite: memory_loopScene: photorealistic / outdoor / aquatic_landscape
Benchmark prompt target

Move the camera forward through the scene, then back to where it started.

prompt source: memory_loop_prompt

The better loop still satisfies a two-view geometric explanation after the return; the weaker loop breaks layout and correspondences.

Model result videos will be available with the ModelScope release. / 模型推理视频将在 ModelScope 方案上线后提供。

Higher metric scoreScore 0.8918 · official

Model result videos will be available with the ModelScope release. / 模型推理视频将在 ModelScope 方案上线后提供。

Lower metric scoreScore 0.0000 · official