本指标用于判断闭环 rollout 是否真正离开锚点视点,并在之后回到先前访问过的视点。它是 long_sequence 维度闭环族的正式指标。gate 未通过也继续计算后续 memory 指标,并在 details 中保留 gate_passed=false 和 gate_failure_reason。配对全部从估计位姿读出,不依赖 GT 动作索引。
从预测视频旁的 ViPE sidecar 读取 camera-to-world 轨迹 {Tt}t=0T−1⊂SE(3)。缺失时整条 memory 链路记 not_applicable。记 pt 为平移、Rt 为旋转。先用轨迹自身相对锚点的最大平移幅度 E=maxt∥pt−p0∥ 把平移归一化,再与测地旋转角 θ(i,j)=∠(Ri,Rj)(单位:度)组合成无尺度位姿距离:
d(i,j)=E∥pi−pj∥+λ⋅180θ(i,j)(1)
默认 λ=1(rotation_weight)。当 E 退化(原地旋转回路)时,平移项置零,距离退化为纯旋转。
离开要求锚点到轨迹上最远帧的距离至少是配对阈值的若干倍:
ddep=tmaxd(0,t)≥α⋅τ,α=3, τ=0.15(2)
即 min_departure_factor * max_pair_distance。返回则对每个帧 j,在至少 Δtmin 秒(默认 1 秒,对应 g=⌈Δtmin⋅fps⌉ 帧)之前的窗口里取几何最近的 i⋆=argmini≤j−gd(i,j)。若 d(i⋆,j)≤τ,且中间行程满足
e(i⋆,j)=i⋆<k<jmaxd(i⋆,k)≥β⋅τ,β=3(3)
则记为一对回访(min_excursion_factor * max_pair_distance)。excursion 判据防止连续缓慢运动把每一帧都和自己的近期过去配上对。走不回去的模型被记为「没有回访」,而不是「忘了场景」。
门控分数为指示函数乘积:
Sgate=1[ddep≥ατ]⋅1[∃(i,j): d(i,j)≤τ ∧ e(i,j)≥βτ](4)
Sgate∈{0,1}。WorldAtlas 中本算法对应正式指标 memory_return_gate(pose_loop_gate 后端);归一化配置下 raw 与 normalized 均为 {0,1}。它作为正式指标报告 gate 通过率;组合权重遵循榜单公布的聚合规则。没有严格回访对时,后续评分使用满足相同最小时间间隔的最近历史位姿配对,不再要求返回距离和中间 excursion 达标(pair_source=nearest_pose_fallback)。Scene F1 优先使用有支持的回访事件;gate 失败且没有可用事件时,比较位姿轨迹的前后半段(split_source=temporal_midpoint_fallback),每段至少两个位姿帧。回退分数可能包含视点和控制差异,应结合 gate 阅读。输入缺失、后端不可用、帧对支持不足或半衰期拟合不可靠时,仍明确记录不可用原因。
Audit manifest: docs/assets/metric_examples/longseq_memory_60s_examples_20260909.json.
输入图像
60 秒 memory_loop · 同一 benchmark case · gap 1.0000
memory-dolly_loop-memory_pool_002
套件: memory_loop场景: photorealistic / outdoor / city
基准 prompt target
Move the camera forward through the scene, then back to where it started.
prompt source: memory_loop_prompt
请看镜头是否真正离开起点并在之后回到已访问视点。回不到起点是控制失败,不应记成记忆失败。
较高指标分分数 1.0000 · official
较低指标分分数 0.0000 · official
输入图像
60 秒 memory_loop · 同一 benchmark case · gap 1.0000
memory-double_yaw_loop-memory_pool_090
套件: memory_loop场景: photorealistic / outdoor / terrestrial_landscape
基准 prompt target
Turn away and back to the start twice in a row.
prompt source: memory_loop_prompt
请看镜头是否真正离开起点并在之后回到已访问视点。回不到起点是控制失败,不应记成记忆失败。
较高指标分分数 1.0000 · official
较低指标分分数 0.0000 · official
输入图像
60 秒 memory_loop · 同一 benchmark case · gap 1.0000
memory-yaw_loop_360-memory_pool_478
套件: memory_loop场景: photorealistic / outdoor / terrestrial_landscape
基准 prompt target
Rotate the camera a full turn in place and come back to the starting view.
prompt source: memory_loop_prompt
请看镜头是否真正离开起点并在之后回到已访问视点。回不到起点是控制失败,不应记成记忆失败。
较高指标分分数 1.0000 · official
较低指标分分数 0.0000 · official
输入图像
60 秒 memory_loop · 同一 benchmark case · gap 1.0000
memory-yaw_loop_180-memory_pool_471
套件: memory_loop场景: photorealistic / indoor / living_spaces
基准 prompt target
Turn the camera to the right, then turn back to the starting view.
prompt source: memory_loop_prompt
请看镜头是否真正离开起点并在之后回到已访问视点。回不到起点是控制失败,不应记成记忆失败。
较高指标分分数 1.0000 · official
较低指标分分数 0.0000 · official
输入图像
60 秒 memory_loop · 同一 benchmark case · gap 1.0000
memory-square_loop-memory_pool_476
套件: memory_loop场景: stylized / indoor / workspaces
基准 prompt target
Walk a closed square around the scene and return to the starting view.
prompt source: memory_loop_prompt
请看镜头是否真正离开起点并在之后回到已访问视点。回不到起点是控制失败,不应记成记忆失败。
较高指标分分数 1.0000 · official
较低指标分分数 0.0000 · official