102 lines
4.0 KiB
Markdown
102 lines
4.0 KiB
Markdown
# People Talking YOLOv8x v1
|
||
|
||
## 注册信息
|
||
|
||
| 字段 | 值 |
|
||
|---|---|
|
||
| Model ID | `people-talking-yolov8x@1` |
|
||
| 注册名称 | `People Talking YOLOv8x` |
|
||
| Backend | `ultralytics-yolo` |
|
||
| 任务 | 画面中人员正在打电话的行为检测 |
|
||
| 权重 | `models/detection/people-talking-yolov8x/v1/best.pt` |
|
||
| 权重格式 | PyTorch/Ultralytics `.pt` checkpoint |
|
||
| 权重大小 | `136694313` bytes |
|
||
| SHA256 | `86cd63926de1c69f70dd7f8755e4de9e382bbdeb0668821b7c3846b826471526` |
|
||
| 基础模型 | YOLOv8x(约 6815 万参数) |
|
||
| checkpoint Ultralytics | `8.0.196` |
|
||
| 当前部署 Ultralytics | `8.4.31` |
|
||
|
||
Model ID 的 `@1` 与本目录的 `v1` 对应。权重从用户提供的
|
||
`/home/xtkuang/Projects/cmvr/changan_robot/call_phone/best.pt` 复制;复制前后的大小和
|
||
SHA256 必须一致。不兼容的新权重应使用新版本目录和注册 ID,不能覆盖本文件记录的
|
||
`v1`。
|
||
|
||
## 有序标签
|
||
|
||
checkpoint 的类别编号必须与下表严格一致:
|
||
|
||
| ID | 标签 | 部署用途 |
|
||
|---:|---|---|
|
||
| 0 | `label` | 上游 checkpoint 中含义不清的通用类别;当前 Pipeline 不选择 |
|
||
| 1 | `talking on phone` | 电话使用行为告警 |
|
||
|
||
`label` 不是背景类,不能从注册信息中删除,否则类别编号会错位并导致模型加载失败。
|
||
生产配置通过 `detect_labels: [talking on phone]` 只请求 class 1。
|
||
|
||
## 输入与运行参数
|
||
|
||
- 输入必须是已经解码的 `BGR8` 或 `RGB8` 三通道图像;
|
||
- checkpoint 训练参数记录的 `imgsz` 为 `640`;
|
||
- 当前 CPU 部署从 `max_fps: 5`、`confidence: 0.50` 开始;
|
||
- 该权重由带 `dill` 的环境序列化,项目的 `yolo`/`yolo-cpu` extra 已显式包含
|
||
`dill`,不能依赖 Ultralytics 运行时临时联网安装;
|
||
- `.pt` 由 PyTorch pickle loader 读取,只应部署经过校验的可信制品。
|
||
|
||
配置示例:
|
||
|
||
```yaml
|
||
phone_detector:
|
||
uses: detection.model@1
|
||
with:
|
||
model: people-talking-yolov8x@1
|
||
detect_labels:
|
||
- talking on phone
|
||
confidence: 0.50
|
||
max_fps: 5
|
||
attach_frame: true
|
||
model_options:
|
||
weights: models/detection/people-talking-yolov8x/v1/best.pt
|
||
device: cpu
|
||
imgsz: 640
|
||
iou: 0.70
|
||
half: false
|
||
max_det: 100
|
||
```
|
||
|
||
## 来源与许可
|
||
|
||
- 上游项目:[`Anidipta/People-Talking`](https://github.com/Anidipta/People-Talking);
|
||
- 上游仓库根 `LICENSE` 标记为 Apache-2.0,但 README 的许可段落写为 MIT;
|
||
- 上游没有在模型卡中单独说明训练数据和权重的再分发许可。
|
||
|
||
因此在外部发布或商业部署前,需要进一步确认代码、权重和训练数据各自的授权范围,
|
||
不能把仓库 README 的一句许可描述直接当成全部资产的授权结论。仓库中的 `.pt` 作为
|
||
普通 Git blob 保存,克隆后会直接获得完整权重。
|
||
|
||
## 限制
|
||
|
||
- 这是视觉行为检测,不读取手机屏幕、通话音频或运营商状态;它不能判断来电/去电、
|
||
是否真正接通,也不能区分普通手持手机与真实通话的全部边界情况;
|
||
- 上游只提供曲线图片,未给出可复核的逐类 AP/precision/recall 数值;当前没有把
|
||
未知测试集上的指标写成部署承诺;
|
||
- 手部和手机被遮挡、远距离小目标、侧后视角、弱光以及相似手势都可能导致漏检或误检;
|
||
- 当前 adapter 是逐帧检测,不跟踪具体人员。`repeat_gate` 的 `scope: source` 只能表示
|
||
同一相机连续命中,不能证明连续命中来自同一个人;
|
||
- YOLOv8x 在 CPU 上较重,必须在目标设备测量推理延迟、内存和实际 FPS 后再调高
|
||
`max_fps`。
|
||
|
||
## 验证
|
||
|
||
从仓库根目录执行:
|
||
|
||
```bash
|
||
sha256sum models/detection/people-talking-yolov8x/v1/best.pt
|
||
uv run --no-sync cmvr-edge-ai models
|
||
uv run --no-sync cmvr-edge-ai validate \
|
||
--config configs/edge_ai.yaml \
|
||
--pipeline detection
|
||
```
|
||
|
||
`validate` 只检查配置和 DAG,不加载权重。发布前还必须执行真实模型加载和单帧推理
|
||
smoke test,确认日志或测试结果中模型 ID、标签顺序和推理输出均正确。
|