菜品识别画面稳定重新布防修复方案

日期:2026-07-23 目标:菜品识别 问题:稳定后无法再次触发 方案:双基准状态机
稳定门禁通过后,银歌菜品识别 SDK 能正常接受请求并返回结果。 问题位于稳定判定器没有正确重新布防,不在人脸识别或 datalibrary

根因

  1. 只比较相邻帧。慢速移动时单步差异较小,即使累计变化明显也不会重新布防。
  2. 每个 8×8 分区只取一个固定像素,局部菜品变化可能完全避开采样点。

修复设计

相邻帧差异判断稳定 + 上次成功触发画面判断累计变化
基准用途
previousHash判断当前画面是否重新稳定
lastTriggeredHash判断画面相对上次成功识别是否发生累计变化
  1. 首次稳定后产生识别候选。
  2. SDK 接受请求后确认本次触发基准。
  3. 累计变化超过灵敏度时锁存“画面已变化”。
  4. 相邻帧重新稳定后再次触发。
  5. SDK 拒绝或请求超时时保持重新布防并自动重试。

分区平均哈希

实施任务

一、补充回归测试

覆盖慢速累计变化、避开旧采样点的局部变化、请求失败自动重试。

二、改造稳定判定器

分离两种差异,增加请求接受/拒绝确认,并改为分区平均亮度。

三、接入菜品识别请求结果

DishRecognitionActivity 中处理 SDK 接受、失败、超时和暂停恢复。

验证方案

变更边界

只修改菜品识别稳定判定组件、菜品识别页面接入点和对应单元测试;不修改设置页、人脸识别、datalibrary、支付契约和相机配置。

结论

双基准状态机解决慢速移动的累计变化漏检,分区平均亮度降低固定采样点漏检。自动化验证完成后仍需在目标菜品识别设备上进行现场灵敏度回归。