Files
platform-prototype/营养秤多维状态矩阵.md
T
zhangyan 40e0b311c4 feat: 订餐终端设备概览新增餐线营养秤Tab + 净菜订单新增生成历史/生成方式列/就餐人数
- din-terminal.html: 设备概览新增「餐线营养秤」Tab(四维度子页切换),表头列筛选 + 人脸识别视频回放弹窗 + 运行日志报错详情
- prod-clean-order.html: 新增「净菜订单生成历史」按钮与弹窗、主列表「生成方式」列、详情抽屉自动订单「就餐人数」列
- 新增文档: 异常场景素材-秤体视角 / 加工厂硬件流程说明 / 角色场景流程图 / 营养秤多维状态矩阵
2026-08-27 09:00:12 +08:00

24 KiB
Raw Blame History

营养秤三硬件多维状态穷举矩阵

硬件能力边界

  • 压力传感器:只能输出重量增减数值(g),无法自行判断"合理/异常/超限"
  • 下方摄像头:人脸识别 + 上半身衣服颜色 + 扭头/转身检测 + 多人脸检测
  • 上方摄像头:腰部~臀部 + 袖子颜色 + 手部动作(夹取/放回/抬盆等)+ 夹子位置追踪 + 身体倚靠
  • 所有"场景判定"均由三端数据协同得出,任何单一硬件无法独立判定

铁律:下方摄像头未识别到人脸 + 压力有变化 = 异常取餐


一、压力减少

# 压力传感器 下方摄像头 上方摄像头 场景 三端协同判定理由
1 减少 X g 用户人脸A,衣服色=红 夹取食物取走,袖子色=红 正常取餐 重量减少+人脸识别+夹取动作,且上下颜色匹配确认为同一人
2 减少 X g(含滴落) 用户人脸A 夹取+汤汁滴落回盆 正常取餐(少量汤汁损失) 重量减少中有少量滴落损失,上方确认非人为异常
3 减少 X g 用户人脸A→扭头→短暂丢失→恢复,衣服色=红 夹取动作持续,袖子色=红 正常取餐(人脸短暂中断) 下方检测扭头=主动转身,上方袖子色不变确认同一人,三端协同判定同一周期
4 减少 X g(前段波动后终减) 用户人脸A 试探抖动→最终取走 正常取餐(犹豫后取走) 前段波动是手部试探,终态重量减少+夹取动作确认取走。典型场景:取炒面、粉丝等细长松散食物,需多次拨动试探才能夹稳
5 减少 X g 多人脸(衣服色=红+蓝) 多只手同时夹取(袖子色=红+蓝) ⚠️ 多人混取 下方多脸+上方多手+重量减少,需颜色映射确定谁取了什么
6 减少 X g 两人脸(衣服色=红+蓝) 一人夹+一人端盘(袖子色=红夹+蓝端) ⚠️ 双人协作 协作取餐模式,三端数据完整但需策略决定归属给夹的人还是端盘的人
7 减少 X g 用户人脸A→B出现,衣服色A→B 夹取手袖子色从A色变为B色 ⚠️ 身份交替取餐 下方衣服色切换+上方袖子色切换+重量持续减少,确认A→B换人
8 减少 X g 无人脸 有夹取动作(可见袖子色) 取餐无主 有行为+有重量变化但无人脸。若结合时间序列发现此前A刚离开且袖子色变化,可进一步判定为B逃逸识别
10 减少 X g 无人脸(画面全黑/模糊) 有夹取动作 下方摄像头故障+有人取餐 下方无输出+上方有动作+压力减少=下方被遮挡或故障
11 减少 X g 员工人脸 员工夹取食物(非补菜动作) ⚠️ 员工自取 员工身份+夹取动作+减少=员工个人取餐行为,非运营操作
12 减少 X g 人脸持续丢失(下方无扭头动作) 夹取动作持续(袖子色一致) ⚠️ 人脸被遮挡取餐 下方非扭头丢失(排除主动转身)+上方同一袖子持续取餐=疑似刻意遮挡
13 减少 X g 用户人脸A 夹取中手肘碰邻盆(邻盆同步波动) 正常取餐(邻盆误触) 本盆减少合理+邻盆无夹取但有重量波动=邻盆为误触
14 减少 X g(数值明显偏大) 用户人脸A 单人大量/多次堆叠夹取,袖子色一致 ⚠️ 超量取餐 减少量超过单人单次合理上限,但上方确认同一人连续夹取,非多人
15 减少 X g(数值明显偏大) 多人脸(衣服色=多色) 多只手同时夹取(袖子色=多色对应) 多人取餐 减少量大的原因=多人同时取同一盆,三端协同确认多人并发
16 减少量≈整盆重 员工人脸 服务员双手抬起波菲炉/食物盆 服务员换盆(抬走旧盆) 整盆级减少+员工脸+抬盆动作=正常换盆运营操作
17 减少量≈整盆重 用户人脸A 双手抬起波菲炉/食物盆 用户恶意减重 整盆级减少+用户脸+抬盆=用户故意抬盆干扰重量,非取餐行为
18 减少量≈整盆重 无人脸 有人抬起波菲炉/食物盆(可见袖子) 恶意取餐(未识别+抬盆) 整盆级减少+无人脸+抬盆动作=无人脸恶意规避+干扰重量
19 减少 X g(数值偏大) 无人脸 单人大量夹取 未识别超量取餐 超量减少+无人脸+单个夹取手=双重异常
20 减少 X g(数值偏大) 无人脸 多只手同时夹取 未识别多人取餐 超量减少+无人脸+多人手=三重异常
21 减少 X g(含跳变) 用户人脸A 夹取中身体碰撞秤体 ⚠️ 取餐+碰撞叠加 减少量可能含碰撞跳变分量,需协同上方碰撞检测校准取量
22 减少 X g(数值偏大) 多人脸 一人抬盆+一人遮挡 协同恶意取餐 多脸+抬盆+遮挡=有组织恶意操作
23 减少 ≈0(微量) 用户人脸A 空夹(夹子张开未夹到食物) 空夹 重量几乎不变但有夹取动作=空夹,上方确认为无效操作
24 减少 ≈0(微量) 用户人脸A 夹子刮盆边/拨动碎屑 碎屑级误判 微量变化+非夹取动作=不构成有效取餐
25 减少 ≈0(微量) 用户人脸A 夹取中汤汁滴落 汤汁滴落损失 夹物后滴落导致实际取量偏小,上方确认滴落事件
26 减少 ≈0(单次<分辨率,累计可能超标) 用户人脸A 极缓慢倾倒/逐克添加 ⚠️ 静默取餐 单次不触发阈值但上方确认持续微操作,需累积判定
27 减少 ≈0(微量) 无人脸 空夹动作 未识别空夹 有动作无人脸,无法追溯操作者
28 减少 ≈0(微量) 无人脸 有人拨动食物 未识别微量取餐 无人脸+微量变化+拨动动作=疑似逃逸
29 减少 ≈0(微量) 无人脸 汤汁/碎屑自然掉落 无主食物损失 自然损失非人为,无人脸合理
30 减少 ≈0(微量) 员工人脸 员工拨动/整理食物 员工整理食物 员工操作+微量变化=非取餐运营动作
31 减少→归零 员工人脸 服务员端走空盆 服务员收空盆 归零+员工脸+端盆=正常运营
32 减少→归零 无人脸 有人端走食物盆 非员工收盆 归零+非员工端盆=恶意或误操作
33 减少→归零 无人脸 无人(盆从画面消失) 食物盆被盗/掉落 归零+无人脸+上方无端盆动作=盆非正常移除或秤故障
34 减少→新值(整盆级) 员工人脸 换盆过渡(旧盆已抬走,新盆未放上) 服务员换盆过渡态 中间过渡状态,三端一致为换盆流程
35 减少→新值(整盆级) 用户人脸 用户抬盆后放下 用户抬盆干扰 用户抬盆形成虚假减少,上方确认抬盆行为
36 减少→新值(整盆级) 无人脸 有人抬盆 恶意抬盆 无人脸+抬盆=双重异常
37 减少 X g(≈夹子重量) 用户人脸A 夹子从盆边滑入盆内(无夹取动作) ⚠️ 夹子移位伪装取餐 减重=夹子重+上方无夹取+夹子位移=传感器看到"取餐"但实际是夹子动了

二、压力增加

# 压力传感器 下方摄像头 上方摄像头 场景 三端协同判定理由
38 增加 Y g 用户人脸A,衣服色=红 放回食物到盆,袖子色=红 用户退餐(部分回退) 增重+人脸+放回动作+上下颜色匹配=本人退餐
39 增加 Y g(≈此前减少量,净变化≈0) 用户人脸A 全部倒回,袖子色一致 完全反悔 先减后增回到原位,上方确认全部倒回
40 增加 Y g 用户人脸A,衣服色=红 放回动作,袖子色=蓝 身份冒用回退 下方A脸但上方袖子色不匹配=B替A放回
41 增加 Y g 用户人脸B B放回食物(袖子色=B色) 跨用户回退 A取走的菜B往回放,归属关系混乱
42 增加 Y g 无人脸 有人放回食物(可见袖子色) 匿名回退 有放回动作但无人脸,可通过袖子色辅助追踪但无法确认身份
43 增加 Y g 无人脸 无人(无任何放回动作) 异常增重(原因不明) 增重+无人脸+无动作=传感器异常或隐藏操作(如盆下塞物)
44 增加 Y g(≈夹子重量) 用户人脸A 夹子从手中/台面掉入食物盆 ⚠️ 夹子掉入盆 增重值=夹子克重+上方掉落轨迹确认=非回退
45 增加 Y g(≈夹子重量) 无人脸 夹子掉入食物盆 ⚠️ 夹子掉入(无人脸) 夹子事件成立但人脸缺失
46 增加 Y g(≈夹子重量) 用户人脸A 无掉落画面(夹子在盆内自行移位) ⚠️ 夹子移位伪装回退 增重=夹子重+无掉落+夹子位置变化=传感器以为是回退实则夹子动了
47 增加 Y g(小幅持续) 用户人脸A 身体倚靠台面/手撑 用户身体接触台面 持续小幅增重+上方倚靠/手撑姿态确认
48 增加 Y g(小幅持续) 用户人脸A 用户把餐盘/物品搁台面上 额外物品重量 持续增重+上方看到搁置物品=非食物重量
49 增加 Y g(小幅持续) 用户人脸A 小孩踮脚手撑台面 小孩手撑干扰 持续压力+手撑姿态=借助台面支撑
50 增加 Y g(小幅,初始偏高) 无人脸 无人(台面有遗留物) ⚠️ 遗留物品导致基准偏移 初始状态已有遗留物,后续取餐重量均偏移
51 增加 Y g(陡增) 员工人脸 服务员端菜倒入食物盆 服务员补菜 陡增+员工脸+补菜动作=正常运营
52 增加 Y g(陡增) 无人脸 服务员补菜动作 服务员补菜(下方未识别) 上方确认为补菜动作,下方未识别到脸不影响运营判定
53 增加 Y g(陡增) 用户人脸A 用户往盆里倒东西 用户反向加菜 用户+增重+倒物动作=非正常退餐,异常行为
54 增加 Y g(陡增) 无人脸 有人往盆里倒东西 非员工加菜 无人脸+加料=恶意嫌疑
55 增加≈整盆重(新值) 员工人脸 服务员放入新盆 服务员换盆(放入新盆) 整盆增重+员工脸+放盆=正常运营
56 增加≈整盆重(新值) 无人脸 服务员放入新盆 服务员换盆(下方未识别) 上方确认为运营操作
57 增加≈整盆重(新值) 用户人脸 用户放下重物 用户放置异物 用户+整盆级增重=异常行为
58 增加≈整盆重(新值) 无人脸 有人放下不明物体 不明物体放置 无人脸+放物=恶意或意外
59 增加+减少同时存在 用户人脸A+员工出现 用户取餐中服务员同步补菜 ⚠️ 取餐+补菜并发 增重和减少叠加,需分离两个独立事件
60 反复增减 用户人脸A 多次夹取→放回→夹取→放回,袖子色一致 ⚠️ 反复取回操作 频繁增减+同一人反复操作+袖子色始终一致
61 反复增减 用户人脸A→下方扭头丢失→恢复 反复取回,袖子色一致 ⚠️ 反复操作+人脸短暂丢失 下方扭头导致短暂丢失+上方袖子色不变=同一人
62 反复增减 无人脸 有人反复取回 匿名反复操作 反复+无人脸=无法追溯
63 反复增减 A脸→B脸(衣服色A→B 袖子色从A→B 跨用户反复回退 下方衣服色切换+上方袖子色切换=多端确认换人

三、压力无变化

# 压力传感器 下方摄像头 上方摄像头 场景 三端协同判定理由
64 无变化 用户人脸A 空夹(夹子张开未夹到食物) 空夹 压力无变化+有夹取动作+未夹到=空夹
65 无变化 用户人脸A 夹走又放回(取多补少,未离开盆范围) ⚠️ 净值抵消 有操作但净重不变,需上方行为记录补充
66 无变化 用户人脸A 夹起悬空→犹豫→放回 犹豫反悔(未取走) 夹起未离盆范围就放回,压力无净变化
67 无变化 用户人脸A 无取餐动作(站着不动) ⚠️ 占位阻塞 有人脸无动作无变化=纯占位
68 无变化 用户人脸A持续 无动作(已取完但不离开) ⚠️ 取后阻塞 历史有取餐记录+当前无操作+人脸仍在
69 无变化 用户人脸A(长时间面对下方,无扭头) 无动作 ⚠️ 长时间面向摄像头不取餐 下方无扭头排除自然等待,持续占位疑似阻塞
70 无变化 用户人脸A→转身→人脸消失 取餐动作停止(手离开台面) 正常离开 下方检测转身+上方无动作=标准离开
71 无变化 无人脸 有人取餐动作 传感器疑似故障 有动作+有脸(上方看到身体)+压力无响应=传感器可能异常
72 无变化 无人脸 无动作 空闲 三端一致无操作
73 无变化 无人脸 无动作(但夹盘无夹子) ⚠️ 夹子缺失 无人但夹子不齐,影响后续取餐
74 无变化 用户人脸A 有取餐动作 传感器故障 上下正常+压力无响应=传感器确认故障
75 无变化 员工人脸 员工检查/整理台面(不改变重量) 员工巡检 员工操作+无重量变化=检查性操作

四、压力瞬时跳变

# 压力传感器 下方摄像头 上方摄像头 场景 三端协同判定理由
76 瞬时跳变 用户人脸A 用户身体碰撞秤体 ⚠️ 取餐中碰秤 跳变+碰撞动作=冲击型非取餐信号
77 瞬时跳变 用户人脸A 夹子从手中滑落台面 ⚠️ 夹子滑落冲击 跳变+滑落轨迹=夹子掉落冲击,非取餐
78 瞬时跳变 用户人脸A 本秤无动作(邻秤有人操作) 邻秤串扰 本秤无操作+邻秤有动作+跳变同步=振动传导
79 瞬时跳变 无人脸 有人碰撞秤体 未识别碰撞 有碰撞+无人脸
80 瞬时跳变 无人脸 台面振动(推车/物品撞击) 外部振动干扰 振动型跳变+无人=环境因素
81 瞬时跳变 无人脸 无人/无振动 传感器自身异常跳变 排除所有外部因素=传感器硬件问题
82 瞬时跳变 员工人脸 员工推车/搬运碰撞 员工操作振动 员工操作导致的振动,正常运营干扰

五、压力缓慢漂移

# 压力传感器 下方摄像头 上方摄像头 场景 三端协同判定理由
83 缓慢漂移 无人脸 热食蒸汽升腾 蒸汽熏蒸漂移 蒸汽+无人+漂移=环境因素
84 缓慢漂移 无人脸 无蒸汽、无人 传感器温漂 排除蒸汽和人为=传感器自身漂移
85 缓慢漂移 无人脸 无蒸汽(秤体刚开机) 初始不稳定期 上电预热阶段,暂不用于取餐判定
86 缓慢漂移 用户人脸A 极缓慢倾倒/拨动,袖子色一致 ⚠️ 漂移式取餐 漂移速率低于阈值+上方确认持续取餐动作=慢速取餐
87 缓慢漂移 无人脸 有人极缓慢取餐 未识别漂移式取餐 漂移+取餐动作+无人脸=规避识别
88 缓慢漂移 用户人脸A(长时间) 无取餐动作 长时间占位+传感器漂移 人脸持续但无操作,漂移归因于传感器自身

六、多点同时变化

# 压力传感器 下方摄像头 上方摄像头 场景 三端协同判定理由
89 多盆同时减重 用户人脸A 跨多盆夹取,袖子色一致 ⚠️ 多菜品归属同一用户 多盆减少+同一人+跨盆动作=需合并归属
90 多盆同时减重 多人脸(衣服色各不同) 多人同时取不同盆(袖子色各对应) ⚠️ 多人并行取餐 多盆+多人+颜色可映射=可拆分归属
91 多盆同时减重 无人脸 多人取餐 多人取餐无主 多盆+多人+无人脸
92 多盆同时波动 用户人脸A 身体倚靠导致全秤多点联动 倚靠致多盆联动 身体压台面导致多盆同步波动,非取餐特征
93 多盆同时波动 无人脸 台面整体振动 外部振动全秤响应 振动性多盆同步+无人=环境因素
94 多盆同时波动 无人脸 有人晃动台面 恶意晃动台面 人为振动+无人脸

七、夹子异常(上方摄像头追踪,压力变化量与夹子重比对)

# 压力传感器 下方摄像头 上方摄像头 场景 三端协同判定理由
95 减少 X g(正常) 用户人脸A 夹子初始在夹盘→取后留在盆 ⚠️ 夹子归位错误 取餐正常但夹子未归位,上方追踪夹子最终位置
96 减少 X g(正常) 用户人脸A 夹子初始在盆→取后在盘 夹子位置(前用户遗留纠正) 前一位放错,当前用户无意中纠正了夹子位置
97 减少 X g(正常) 用户人脸A 夹子初始在夹盘/盆→取后消失 夹子被带走 夹子消失在画面外+取餐完成+用户离开
98 无变化 用户人脸A 夹子初始不在(用户发现无夹可用) ⚠️ 夹子缺失影响取餐 无夹=无法取餐,需运营补充
99 无变化 无人脸 夹盘无夹子 ⚠️ 夹子未配置/已丢失 开餐前未放或已被带走
100 瞬时跳变 用户人脸A 放夹时滑落到台面/盆 ⚠️ 夹子意外滑落 跳变+滑落轨迹=非取餐冲击
101 瞬时跳变 无人脸 夹子自然滑落(无人触碰) 夹子非人为滑落 放置不稳导致自然滑落
102 减少≈夹子重 用户人脸A 夹子从盆边滑入盆内(无夹取动作) ⚠️ 夹子移位伪装取餐 压力传感器报"取餐",但上方无夹取+夹子位移=伪取餐信号
103 增加≈夹子重 用户人脸A 夹子掉入盆内 ⚠️ 夹子掉入伪装回退 压力传感器报"回退",但上方确认是夹子掉落=伪回退信号
104 增加≈夹子重 无人脸 夹子掉入盆内 夹子掉入(无人脸) 夹子掉落成立但人脸未知

八、扭头/转身行为(下方独立检测,上方无法感知)

# 压力传感器 下方摄像头 上方摄像头 场景 三端协同判定理由
105 减少 X g 用户人脸A→下方检测扭头→人脸消失→回头恢复 取餐动作持续,袖子色一致 主动扭头(正常中断恢复) 下方扭头=主动行为,上方袖子色不变+动作持续=同一人正常取餐
106 减少 X g 用户人脸A→人脸消失(下方无扭头动作) 取餐动作持续,袖子色一致 ⚠️ 非主动人脸丢失(疑似遮挡) 下方未检测扭头=非转身,人脸丢失原因可能是摄像头被遮挡
107 减少 X g 用户人脸A→人脸消失(无扭头) 取餐动作持续,袖子色从A变B 人脸遮挡+换人取餐 下方非扭头丢失+上方袖子色切换=A刷脸后B替取
108 无变化 用户人脸→下方检测转身→人脸消失 取餐停止(手离开) 正常离开 下方转身+上方手离开+重量不变=标准离开

九、衣服颜色交叉验证(下方+上方协同判定身份一致性)

核心逻辑:下方人脸+上半身衣服色 ↔ 上方袖子色,颜色匹配=同一人,不匹配=身份异常。

# 压力传感器 下方摄像头 上方摄像头 场景 三端协同判定理由
109 减少 X g 人脸A+衣服色=红 夹取手+袖子色=红 颜色匹配→确认为A本人取餐 上下颜色一致=同一人,身份确认
110 减少 X g 人脸A+衣服色=红 夹取手+袖子色=蓝 身份冒用(A刷脸B取餐) 颜色不一致=A的脸+B的手,冒用确认
111 减少 X g 人脸A+衣服色=红 两对袖子(红+蓝)同时出现 ⚠️ A刷脸但两人操作 A的脸但两人手,需判定红袖子(A)还是蓝袖子(B)是真正取餐人
112 增加 Y g(回退) 人脸A+衣服色=红 放回手+袖子色=蓝 B替A回退 回退动作非A本人执行
113 增加 Y g(回退) 无人脸 放回手+袖子色=红 ⚠️ 疑似A回退(但A未识别) 袖子色匹配已知用户A,但下方未识别,无法确认
114 减少 X g 人脸A+衣服色=红 夹取手袖子色=红→中途变蓝 取餐中途换人 同一取餐周期内袖子颜色切换=A开始后B接替
115 减少 X g 人脸消失 袖子色从A色变B色 换人+人脸丢失叠加 袖子换色+下方丢失=疑似换人后刻意遮挡
116 多盆减少 多人脸(衣服色=红+蓝+绿) 多对袖子(红+蓝+绿) ⚠️ 多人身份可映射 颜色一一对应可实现归属分配

十、系统/环境异常(三端整体)

# 压力传感器 下方摄像头 上方摄像头 场景 三端协同判定理由
117 无数据 无数据 无数据 断电/重启 三端同时掉线
118 数据延迟/断点 数据延迟/断点 数据延迟/断点 网络断连 三端数据同时中断
119 持续有固定偏移(基准不准) 正常 台面有残留汤汁/食物 ⚠️ 初始未归零/未去皮 压力基准偏移+上方确认台面不干净=初始状态异常
120 持续有固定偏移 正常 台面有遗留物品(餐盘/手套等) ⚠️ 上轮遗留未清理 遗留物导致基准偏移
121 长期无变化→突发大量减少 无人→突然多人脸 无→多人取餐 有组织逃逸取餐 突发多人无人脸取餐,疑似组织性规避

快速检索(压力信号 × 下方人脸)

压力信号 用户人脸A 多人脸 员工人脸 无人脸 人脸丢失/切换
减少 #1-#4 / #13 / #14/#17 ⚠️ #5/#6 ⚠️ / #15/#22 #11 ⚠️ / #16/#30/#31/#34 #8/#9/#17-#19/#26/#27/#31/#32/#35 #3/#104 / #7/#12/#105 ⚠️ / #106
减少(微量≈0 #22-#25 #29 #26-#28
减少(≈夹子重) #36/#101 ⚠️
增加 #37/#38/#46-#48/#59 #62 #50/#54 #41/#42/#44/#49/#51/#53/#55/#57/#61 #39/#40 / #60 ⚠️
增加(≈夹子重) #43/#45/#102 ⚠️ #103
增加(整盆级) #56 #54 #55 / #57
增加+减少并发 #58 ⚠️ #58 ⚠️
无变化 #63-#68/#73 #74 #70-#72 #69/#107
瞬时跳变 #75-#77 ⚠️ #81 #78-#80
缓慢漂移 #85/#87 ⚠️ #82-#84/#86
多点同时 #88/#91 ⚠️ #89 ⚠️ #90/#92/#93
颜色交叉验证 #108 / #109/#113 #110/#115 ⚠️ #112 ⚠️ #114

图例 正常 | ⚠️ 需关注/需策略判定 | 异常取餐

硬件能力速查卡

能做什么 下方摄像头 上方摄像头 压力传感器
拍摄范围 人脸+上半身 腰部~臀部+手部
人脸识别
扭头/转身检测
衣服颜色 (上半身) (袖子)
夹取/放回动作
夹子位置追踪
身体倚靠检测
服务员动作识别 人脸判定(员工/用户) 动作类型判定(补菜/换盆/保洁) 变化量级判定(陡增/整盆/微量)
重量变化 (仅输出增减数值)
取量是否合理
场景综合判定 三端协同→ 三端协同→ 三端协同→