2026-08-11 · egocentric 数据质量评估 · 第一人称视频运动模糊帧占比
需求条款:运动模糊帧占比不高于 10%。
本次目的:用新的复合检测规则对 4 个样本片段(2 个合格 / 2 个不合格)跑一遍, 生成带标注的视频供肉眼复核——判断检测器标的运动模糊段是否真的是模糊,以及标尺松紧是否合适。
数据来源:慧宇样本库(metrics 仓库 egocentric 校准用的同一批数据)。 视频仅内部参考,未发布到任何 Catalog。
为什么不用仓库现有的 blur_rate(var-Lap < 100 绝对阈值)?
三个已测量的问题:
新规则用 相对清晰度(除以片段自身 p90)解决跨相机问题,用 光流 区分运动模糊与散焦/空场景。
| 片段 | 厂方判定 | 时长 | fps | 仓库 blur_rate var-Lap<100 |
新规则 运动模糊帧率 |
暗帧率 | 模糊段数 | 模糊总时长 | @10% 规则 |
|---|---|---|---|---|---|---|---|---|---|
| 1_BAD 厨房制作食物(2) | 不合格 | 9:33 | 21 | 8.3% PASS | 24.8% | 0% | 204 | 2:30 | FAIL |
| 5_BAD 厨房制作食物(1) | 不合格 | 0:48 | 30 | 51.6% FAIL | 34.4% | 1.4% | 22 | 0:17 | FAIL |
| 6_OK 咖啡店调配配料 | 合格 | 1:59 | 30 | 9.2% PASS | 14.8% | 0% | 18 | 0:19 | FAIL |
| 14_OK | 合格 | 0:30 | 60 | 0.0% PASS | 4.7% | 0% | 5 | 0:01 | PASS |
新规则修复了什么:
未解决:6_OK 在 14.8% 仍超 10%,但厂方判了合格。看标注视频后我认为检测器是对的、标签可疑——wiki 之前也在 15/16 一致性处卡在这条上。需提交厂方裁定。
建议先看 reel(仅 flagged 段,快速判断精确率),再看 annotated(完整片段,判断召回率)。
HUD 读数:sharp_rel / flow / aniso / luma,底部色带红=模糊 / 琥珀=软但静止 / 蓝=过暗 / 白线=播放头。
⚠️ 1_BAD 的 24.8% 偏高——在不锈钢操作台上平移时,全局清晰度塌缩但帧其实是对焦的。已用 32×32 块 p90 替代全局均值,修好了一半假阳性,另一半仍在。这个数字方向对,但不是校准值。
这段是全库最差的片段。5–8 秒处 flow 高达 60 px/帧(手快速挥动),sharp_rel 跌到 0.007——几乎完全拖影。
厂方合格但检测判 FAIL。9.3–11.6 秒有 2.3 秒连续模糊段(sharp_rel 0.065,flow 30 px/帧)——手在快速调配时大幅拖影。这是边界争议片段,需要你判断:这个程度的模糊是否可接受?
60fps 干净控制组。只有 5 段共 1.3 秒被标——都是手快速运动时的轻度拖影。var-Lap 在这台相机上永远报 0.0%(绝对阈值打不穿 p90=3202 的高清晰度),相对阈值才能看到这些帧。
5_BAD 的操作员头伸进冰箱时,画面接近全黑。近黑帧的 Laplacian 方差趋近零 → sharp_rel 读到 0.01 → 被判为「最大运动模糊」。
和仓库已记录的 occlusion_rate 同一个 bug(「在任何暗场景上都会触发」)。
修复:亮度 < 25 的帧单独标为 DARK,不计入模糊率,标注视频中用蓝色显示。
1_BAD 在大面积拉丝不锈钢操作台上平移时,全局清晰度塌缩——但帧是对焦的,只是场景本身没有纹理。 已将清晰度从全局均值改为 32×32 块的 p90(「这个帧里最清晰的部分是否仍然清晰」),修好了一半假阳性,另一半仍在。 1_BAD 的 24.8% 因此偏高,方向正确但不是校准值。
根本原因:和仓库测过的 blur_rate_rel 同一个 framing confound(仅相机距离就能造成 8× 清晰度摆动)。
aniso(各向异性)列本来想解决这个——运动模糊是方向性的,空场景是各向同性的——但旋转模糊也没有单一方向,所以只记不判。
分析脚本:mblur.py(检测)、annotate.py(标注渲染)、reel.py(模糊段剪辑)——均在 session 目录。
关键设计:
未校准项:以上结果均未对手部可检测性校准。PhaseB 运动模糊剂量序列(×3 → WiLoR 66%)是把「标出」变成「手不可恢复」的锚点,跑它需要 4090。