跳转到内容

新显露区域保真

novel_region_fidelity 问的是:当参考相机视角暴露出第一帧中看不到的新区域时,预测是否把这些新显露区域合理地画出来了。

  • 随时间推移 newly visible 区域的保真度
  • 只在这些新暴露区域上做 prediction-vs-reference 的 masked 对比
  • 不是直接的 camera-control 指标,也不是纯粹的 hallucination 检测器
  1. 该指标要求参考视频至少有两帧采样结果。
  2. WorldAtlas 先通过第一帧参考图与后续参考图之间的前后向 Farneback 光流,推导出“已见区域”。
  3. 然后把膨胀后的 seen mask 取补集,得到 “novel region”,并且可选地去掉来自 mask_path 或 dyn_masks.npz 的动态前景区域。
  4. 对每个后续时刻,把 prediction resize 到 reference 分辨率,并且只在 novel mask 内比较 prediction 和 reference。
  5. 每帧分数是可用 masked 分量的平均值。masked PSNR 先算 mask 加权 MSE,再线性映射到 [0,1][0, 1]:
MSEt=1∣Mt∣ C∑p∈Mt∑c(Itpred(p,c)−Itref(p,c))2(1)\mathrm{MSE}_{t} = \frac{1}{|M_{t}|\,C} \sum_{p\in M_{t}} \sum_{c} \bigl( I^{\mathrm{pred}}_{t}(p,c) - I^{\mathrm{ref}}_{t}(p,c) \bigr)^{2} \tag{1} PSNRt=20log⁡10255−10log⁡10(MSEt)(2)\mathrm{PSNR}_{t} = 20\log_{10}255 - 10\log_{10}(\mathrm{MSE}_{t}) \tag{2} stpsnr=clamp[0,1] ⁣(PSNRt−1030)(3)s^{\mathrm{psnr}}_{t} = \mathrm{clamp}_{[0,1]}\!\left( \frac{\mathrm{PSNR}_{t}-10}{30} \right) \tag{3}
masked crop 上的 DINOv2 相似度使用同样的 $[0,1]$ 余弦映射:
stdino=clamp[0,1] ⁣(z(Ctpred)⋅z(Ctref)+12)(4)s^{\mathrm{dino}}_{t} = \mathrm{clamp}_{[0,1]}\!\left( \frac{\mathbf{z}(C^{\mathrm{pred}}_{t})\cdot\mathbf{z}(C^{\mathrm{ref}}_{t})+1}{2} \right) \tag{4} st=mean({stpsnr, stdino})(5)s_{t} = \mathrm{mean}\bigl(\{s^{\mathrm{psnr}}_{t},\,s^{\mathrm{dino}}_{t}\}\bigr) \tag{5}
缺失分量不进入均值。若 $\mathrm{MSE}_{t}\le 10^{-12}$,则 $s^{\mathrm{psnr}}_{t}=1$。

6. 帧分数按 novel 区域覆盖率 wtw_{t} 加权。 7. 原始指标是所有有效后续帧的加权平均:

Snovel=∑twt st∑twt(6)S_{\mathrm{novel}} = \frac{\sum_{t} w_{t}\,s_{t}}{\sum_{t} w_{t}} \tag{6}
  1. 当前默认归一化就是 [0,1][0, 1] 上的直接有界缩放。
项目当前实现
预测输入采样后的 prediction 视频帧
参考输入采样后的 reference 视频帧
标注输入来自 mask_path 或 dyn_masks.npz 的可选 ignore mask
原始输出一个 [0, 1] 范围内的加权平均标量
归一化输出默认配置下与原始值相同的有界标量
细节字段frame_scores,其中包含 frame_index、coverage、psnr_component、dino_component、score,以及帧索引元数据
失败形式如果无法形成有效的 novel-region 分数,则返回 raw = null、normalized = null 和错误字符串
  • 当前聚合状态:在 image_static、image_dynamic、video_static 中,只要成功产出数值就属于 official;纯 image reference 通常会因为没有多帧 reference 而为空。
  • 和 seen-region 指标一样,过小的 mask 会被跳过,而不是记为 0。