系列编排日期为 2026 年 8 月;正文依据 2026-10-12 核对的实现整理。历史实测保留真实日期,教学数字不代表实测;本次未重新执行板端推理。
返回系列目录 · 本篇为 14 章+4 份附录中的一篇。
样例的性质
本附录使用人为构造的数字演示规则,便于手工核算,不是板端识别截图,也不是准确率测试集。所有示例默认鼻嘴可见阈值 60%、弱点比例门槛 25%、持续两秒且至少三次观测;除特别说明外,ROI 有效且不触发姿态分流。
样例一:无遮挡,响应偏弱仍然放行
头部与人脸检测成功,PIPNet 提供有效鼻嘴凸包。鼻 ROI 有 100 个像素,其中 90 个可见;嘴 ROI 有 200 个像素,其中 170 个可见。两覆盖率分别为 90% 和 85%。即使嘴部有六个弱点,响应弱点比例 6/20=30%,仍输出 VISIBLE/UNET_CLEAR。
鼻嘴 response_checked=false,表示响应不否决覆盖达标。World 跳过,原因 visible_passthrough。连续重复该状态不会形成异常确认。
样例二:手遮嘴,局部证据一致
鼻覆盖 90%,嘴覆盖 20%;鼻弱点 0/9,嘴弱点 8/20=40%。鼻放行,嘴同时低覆盖与弱响应,所以为 MOUTH_OCCLUSION_SUSPECT。
同一轨迹在 0.0、1.2、2.4 秒三次观测都得到该状态。第三次 duration_seconds=2.4、observations=3、confirmed=true。随后 World 检出手,分数 0.72,手框覆盖嘴 mask 的 80%,局部点稳定,得到 review.status=supported,objects 包含手。
原状态与确认标记保留。物体证据附加在原结论之上,没有把状态名改成 HAND_OCCLUSION。
样例三:只有鼻部遮挡
鼻覆盖 20%、鼻弱点 3/9≈33.3%;嘴覆盖 85%、嘴弱点 0/20。区域融合得到 NOSE_OCCLUSION_SUSPECT。World 只针对鼻部匹配证据。
假设纸巾检测分数 0.7,但纸巾框只覆盖鼻 ROI 的 30%,未达到 60%,就不能形成充分证据。如果它确实与区域有重叠,可得到 candidate;原鼻部疑似状态仍然保留。
这里分数高不弥补覆盖不足;分类信心与是否覆盖目标部位是两个独立条件。
样例四:纸巾使分割变低,关键点却稳定
鼻覆盖 85%,嘴覆盖 15%,嘴弱点仅 1/20=5%。低覆盖与正常响应冲突,主状态 UNCERTAIN。由于两 ROI 均有效且至少一个低覆盖,World 仍会运行。
纸巾分数 0.8、嘴覆盖 90%、局部点稳定,可以得到 supported;review.final_state 仍为 UNCERTAIN。界面应同时表达“不确定的原判定”和“纸巾物体证据”,不能擅自将主状态改成已确认遮挡。
如果没有检出纸巾,status 可以是 unverified,但主状态也不能改成 VISIBLE。
样例五:侧向贴边与倾斜
鼻、嘴覆盖不足;左侧中心距离分别为 0.02 和 −0.01,处于接触带 −0.15~0.04;鼻组、嘴组接触比例分别为 6/9、12/20;两组可靠且无过远点,右侧不满足。主状态成为 SIDE_LEFT_CANDIDATE,即使分割融合原本有遮挡候选。
同方向持续两秒且至少三次后显示 SIDE_LEFT_SUSPECTED。默认 observe 下 side_sustained=true、confirmed=false,World 不因纯 SIDE 状态触发。若中途变为右侧,则重新计时。
如果同一帧鼻嘴覆盖都达到 60%,优先级更高的可见放行会输出 VISIBLE;pose_state 仍可记录 SIDE_LEFT。可靠倾斜也服从这个可见优先顺序。
样例六:有头无脸
头部模型有框,YuNet 没有中心落在原头框内的合格人脸,输出 NO_FACE。不运行 PIPNet/U-Net,不应显示鼻嘴覆盖 0%。默认时序可以确认持续 NO_FACE,但其含义仍是持续未找到脸,不能自动说已经识别出后脑或遮挡。
若本帧连头框也没有,heads=[],对应旧轨迹被移除;不能虚构一个 NO_FACE 记录接着累计。
样例七:区域无效与错误放行的区别
情况 A:外唇某点映射到 x=258,超出 256 输入范围,嘴区域无效。最终 UNCERTAIN/INVALID_REGION,World 不运行。把该点钳位到 255 再计数会改变算法,应拒绝而不是补造像素。
情况 B:所有嘴点漂到脸颊,凸包面积、边界和像素数检查都通过;脸颊又被分割为可见皮肤,所以嘴覆盖 95%,鼻覆盖 90%。当前规则会输出 VISIBLE,World 随之跳过。这是已知的潜在误放行路径,不是系统已经解决的问题。
两种情况说明,数值和采样几何有效并不等于解剖位置正确。后续改进需用真实样本验证定位约束,而不是把所有不稳定标记重新无条件变成遮挡。
样例八:调参导致状态变化
固定原图和模型,鼻覆盖 90%、嘴覆盖 62%,嘴响应弱。mouth_visible=0.60 时放行;改为 0.65 后嘴覆盖不足,并因响应弱进入遮嘴候选。
直播应用新参数时,旧轨迹时序被重置。不能沿用参数 0.60 时已经播放的时间立刻确认新状态。新参数即使用于直播,也需要另行写入配置并重启 Stream,才影响正常业务启动配置。
用一条记录串起完整检查
每次复现按以下顺序保存:原图和哈希 → 模型指纹与参数版本 → 头脸框 → crop → 98 点及响应 → 鼻嘴 mask 指标 → segmentation_state/pose/state/source → track 与 persistence → World 调用与匹配 → 耗时和错误。
找到第一个与预期不符的环节,再决定检查模型、预处理、几何还是策略。若只保留最后一句“疑似遮挡”,以后几乎无法说明它为什么出现。
