feat: initialize cold display guard
This commit is contained in:
56
README_zh.md
Normal file
56
README_zh.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# 冷藏展示柜食品批次计时报警
|
||||
|
||||
这是一个独立项目,用于单摄像头监控冷藏展示柜和同画面垃圾桶,记录每个展示区域内食品批次的放置时长,并发现 3 小时到期后的违规行为。
|
||||
|
||||
## 已确认业务规则
|
||||
|
||||
- 摄像头同时看到展示柜和垃圾桶。
|
||||
- 展示柜初始布局为横向 4 列、竖向 2 行。
|
||||
- 布局后期可以通过配置调整。
|
||||
- 每个区域可以放多份食品,但这些食品按同一批次计时。
|
||||
- 同一区域不允许混批,必须清空后才能放入新批次。
|
||||
- 食品放入区域时记录开始时间。
|
||||
- 区域清空时记录结束时间。
|
||||
- 未满 3 小时清空视为正常消耗。
|
||||
- 超过 3 小时清空后必须在确认窗口内看到垃圾桶投放动作。
|
||||
- 超过 3 小时的食品拿出后又放回展示柜,触发报警。
|
||||
|
||||
## 当前实现范围
|
||||
|
||||
当前版本先实现纯业务状态机,不依赖摄像头模型。后续视觉模块只需要输出标准观察数据:
|
||||
|
||||
```json
|
||||
{
|
||||
"ts": "2026-04-27T10:00:00+08:00",
|
||||
"zone_counts": {
|
||||
"r1c1": 3,
|
||||
"r1c2": 0
|
||||
},
|
||||
"trash_deposit": false
|
||||
}
|
||||
```
|
||||
|
||||
程序会输出 JSONL 事件,例如:
|
||||
|
||||
- `batch_started`
|
||||
- `batch_consumed`
|
||||
- `batch_pending_disposal`
|
||||
- `batch_discarded`
|
||||
- `mixed_batch_violation`
|
||||
- `overdue_return_violation`
|
||||
- `missing_disposal_violation`
|
||||
|
||||
## 配置
|
||||
|
||||
示例配置在 `config/example.toml`。
|
||||
|
||||
默认阈值:
|
||||
|
||||
- 最大放置时间:`10800` 秒,也就是 3 小时
|
||||
- 垃圾桶投放确认窗口:`120` 秒
|
||||
|
||||
## 本地测试
|
||||
|
||||
```bash
|
||||
python3 -m unittest discover -s tests -v
|
||||
```
|
||||
Reference in New Issue
Block a user