本指标测量一次已完成回访内,出程与回程点云的重叠程度 。它与 scene_memory_f1 共用 score_point_cloud_memory 内核,但切分点取该回访事件内估计位姿的最远离开点,而不是 GT 动作段边界。它不是光度相似度;像素复现见 memory_revisit_fidelity 。
比较未按共享可见区域筛选,估计器独立性也未经验证:common_visibility_conditioned=false、estimator_independence_verified=false。新出现的可见表面、遮挡、采样与 ViPE 误差都可能改变重叠;没有对应点不能直接归因为遗忘或幻觉。
memory_return_gate 未通过也继续计算点云测量。独立的榜单任务分仍将有效输入下的 gate 失败计为 0 ,因为模型未完成离开再返回的任务。需要 ViPE depth_metric.npy、depth_valid_mask.npz 与 intrinsics.npy;真正缺失输入或测量不可用不补零。在检测到的回访对中,选择切分后两段各至少有两个位姿帧、且时间间隔最长的事件 ( i ⋆ , j ⋆ ) (i^\star,j^\star) ( i ⋆ , j ⋆ ) ;并列时优先选端点较早者,不按场景得分挑选。转折点取事件内部距离首个视点最远的帧,并列时取最早者:
t ⋆ = arg max i ⋆ < t < j ⋆ d ( T i ⋆ , T t ) (1) t^\star
=
\arg\max_{i^\star<t<j^\star}\, d(\mathbf{T}_{i^\star},\mathbf{T}_t)
\tag{1} t ⋆ = arg i ⋆ < t < j ⋆ max d ( T i ⋆ , T t ) ( 1 )
出程为 [ i ⋆ , t ⋆ ) [i^\star,t^\star) [ i ⋆ , t ⋆ ) ,回程为 [ t ⋆ , j ⋆ + 1 ) [t^\star,j^\star+1) [ t ⋆ , j ⋆ + 1 ) 。不纳入这次完整回访之后的无关片段;全局最远点仅保留为轨迹诊断,不作为切分边界。gate 失败且没有满足支持条件的事件时,按位姿轨迹中点切成互不重叠的前后半段,每段至少两个位姿帧(split_source=temporal_midpoint_fallback、measurement_scope=temporal_halves_point_cloud_overlap)。gate 通过时仍采用事件切分(split_source=longest_supported_revisit_episode);分段或深度支持不足时仍不可用。每段最多采样 max_frames_per_segment 帧(默认 8 8 8 ),每帧最多反投影 max_points_per_frame 个点(默认 4096 4096 4096 ),得到 P o b s P_{\mathrm{obs}} P obs 与 P r e v P_{\mathrm{rev}} P rev 。默认用 trimmed ICP 对齐回程点云(alignment = trimmed_icp,centroid_align = false),再按场景对角线比例取距离阈值 τ d = 0.02 ⋅ d i a g \tau_d = 0.02\cdot\mathrm{diag} τ d = 0.02 ⋅ diag 。
反投影使用 x = ( u − c x ) z / f x x=(u-c_x)z/f_x x = ( u − c x ) z / f x 、y = ( v − c y ) z / f y y=(v-c_y)z/f_y y = ( v − c y ) z / f y ,保留输入焦距的符号和非零数值(preserve_signed_nonzero_focal);焦距为零或内参非有限时无法计算。这只是正确执行投影公式,不修复也不认证 ViPE 的标定质量。结果记录 split_source=longest_supported_revisit_episode 及所选事件边界。
令 d ( p , P ) d(p,P) d ( p , P ) 为点到点云的最近邻距离。历史字段“保留率 ”是出程点在回程中有最近邻支持的比例,“幻觉率 ”是回程点缺乏出程支持的比例,后者在 F1 聚合前先转为 precision。这些名称表示点云重叠统计,不是因果归因:
R m e m = ∣ { p ∈ P o b s : d ( p , P r e v ) < τ d } ∣ ∣ P o b s ∣ , R h a l l = ∣ { q ∈ P r e v : d ( q , P o b s ) ≥ τ d } ∣ ∣ P r e v ∣ (2) R_{\mathrm{mem}}
=
\frac{
|\{p \in P_{\mathrm{obs}}: d(p, P_{\mathrm{rev}}) < \tau_d\}|
}{
|P_{\mathrm{obs}}|
},
\qquad
R_{\mathrm{hall}}
=
\frac{
|\{q \in P_{\mathrm{rev}}: d(q, P_{\mathrm{obs}}) \ge \tau_d\}|
}{
|P_{\mathrm{rev}}|
}
\tag{2} R mem = ∣ P obs ∣ ∣ { p ∈ P obs : d ( p , P rev ) < τ d } ∣ , R hall = ∣ P rev ∣ ∣ { q ∈ P rev : d ( q , P obs ) ≥ τ d } ∣ ( 2 )
P m e m = 1 − R h a l l (3) P_{\mathrm{mem}} = 1 - R_{\mathrm{hall}}
\tag{3} P mem = 1 − R hall ( 3 )
最终分数对 retention 与 precision 做对称组合:
S s c e n e = 2 P m e m R m e m P m e m + R m e m (4) S_{\mathrm{scene}}
=
\frac{2\, P_{\mathrm{mem}}\, R_{\mathrm{mem}}}{P_{\mathrm{mem}} + R_{\mathrm{mem}}}
\tag{4} S scene = P mem + R mem 2 P mem R mem ( 4 )
S s c e n e S_{\mathrm{scene}} S scene 越高表示采样并对齐后的两组点云重叠越多;不能独立证明记忆持续、没有幻觉或绝对米制重建准确。
WorldAtlas 中本算法对应正式指标 memory_scene_f1 (point_cloud_f1 后端);归一化配置下 raw 与 normalized 均为 [ 0 , 1 ] [0,1] [ 0 , 1 ] ,越高越好 。memory_loop 上,当分段有足够支持且深度 sidecar 齐全时为 official,包括 gate 未通过的样本。旧探针 scene_memory_f1 只留在 experimental:它按 GT 动作段切分,在非闭环轨迹上测到的是两段之间的 3D 一致性,不是记忆。
令 g i g_i g i 为固定回访门控,F i F_i F i 为上述条件点云 F1。有效输入下,g i = 0 g_i=0 g i = 0 的样本任务分 T i = 0 T_i=0 T i = 0 ;g i = 1 g_i=1 g i = 1 且 F1 可测时 T i = F i T_i=F_i T i = F i 。输入缺失、后端失败或通过门控但无足够点云支持时,任务分缺测,不自动补零。
S t a s k = ∑ i ∈ M T i ∣ M ∣ , c o v e r a g e = ∣ M ∣ N . S_{\mathrm{task}}=\frac{\sum_{i\in M}T_i}{|M|},\qquad
\mathrm{coverage}=\frac{|M|}{N}. S task = ∣ M ∣ ∑ i ∈ M T i , coverage = N ∣ M ∣ .
M M M 包括有测量的回访和门控失败计零样本。榜单 memory_scene_f1 显示此任务均值,条件 F1 与门控通过率仅为辅助诊断。覆盖不满时显示实测分母(例如 479/480),完整套件分留空;其范围为 [ ∑ T i / N , ( ∑ T i + N − ∣ M ∣ ) / N ] [\sum T_i/N,(\sum T_i+N-|M|)/N] [ ∑ T i / N , ( ∑ T i + N − ∣ M ∣ ) / N ] 。这是任务完成与场景重叠的联合分,不是只在成功回访模型子集上的条件均值。不与旧条件均值混排,也不据此认证其他指标列。
Audit manifest: docs/assets/metric_examples/longseq_memory_60s_examples_20260909.json.
输入图像
60 秒 memory_loop · 同一 benchmark case · gap 0.9006
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
对比去程与回程几何:较好的结果保留墙面与地标,较差的结果在返回时换成了另一处场景。
较高指标分 分数 0.9749 · official
较低指标分 分数 0.0743 · official
输入图像
60 秒 memory_loop · 同一 benchmark case · gap 0.9435
memory-double_yaw_loop-memory_pool_348
套件: memory_loop 场景: photorealistic / outdoor / verdant_landscape
基准 prompt target
Turn away and back to the start twice in a row.
prompt source: memory_loop_prompt
对比去程与回程几何:较好的结果保留墙面与地标,较差的结果在返回时换成了另一处场景。
较高指标分 分数 0.9972 · official
较低指标分 分数 0.0536 · official
输入图像
60 秒 memory_loop · 同一 benchmark case · gap 0.9492
memory-yaw_loop_180-memory_pool_249
套件: memory_loop 场景: photorealistic / outdoor / verdant_landscape
基准 prompt target
Turn the camera to the right, then turn back to the starting view.
prompt source: memory_loop_prompt
对比去程与回程几何:较好的结果保留墙面与地标,较差的结果在返回时换成了另一处场景。
较高指标分 分数 0.9492 · official
较低指标分 分数 0.0000 · official
输入图像
60 秒 memory_loop · 同一 benchmark case · gap 0.8678
memory-palindrome_loop-memory_pool_397
套件: memory_loop 场景: stylized / indoor / public_spaces
基准 prompt target
Move forward, turn and continue, then retrace the whole path back.
prompt source: memory_loop_prompt
对比去程与回程几何:较好的结果保留墙面与地标,较差的结果在返回时换成了另一处场景。
较高指标分 分数 0.9928 · official
较低指标分 分数 0.1250 · official
输入图像
60 秒 memory_loop · 同一 benchmark case · gap 0.8650
memory-double_yaw_loop-memory_pool_367
套件: memory_loop 场景: photorealistic / outdoor / terrestrial_landscape
基准 prompt target
Turn away and back to the start twice in a row.
prompt source: memory_loop_prompt
对比去程与回程几何:较好的结果保留墙面与地标,较差的结果在返回时换成了另一处场景。
较高指标分 分数 0.9172 · official
较低指标分 分数 0.0522 · official