端侧宠物行为识别
本项目目标是开发一款面向室内猫咪居家场景的端侧宠物行为识别摄像头产品。核心能力包括实时行为识别、异常场景告警、亮点抓取与结构化事件输出,最终在 500 元以内的硬件 BOM 成本约束下完成落地。
动作检测模块是整个产品的算法核心——它需要从持续视频流中准确识别猫咪的各种行为,区分常见活动与需要立即关注的异常场景,并在边缘设备上完成实时推理。
端侧模型需要识别的行为分为两大类:常见场景(日常行为,占视频流绝大多数)和异常场景(需要告警的特殊行为,出现频率低但重要性高)。
常见场景
| 行为 | 说明 | 识别难度 |
|---|---|---|
| 活动 | 走、跑、跳跃 | 中等 — 运动模式多样 |
| 进食 | 猫粮盆区域,低头咀嚼 | 低 — 场景固定 |
| 饮水 | 水盆区域,低头舔舐 | 低 — 场景固定 |
| 如厕 | 猫砂盆区域 | 低 — 区域触发 |
| 长时间静止 | 睡眠/休息,>5min 不移动 | 低 — 但需与异常区分 |
| 多宠追逐 | 两只或多只猫快速移动跟随 | 高 — 多目标 + 高速 |
| 多宠打闹 | 两只猫肢体接触、翻滚 | 高 — 动作复杂 |
| 舔毛 | 自我清洁行为 | 中等 — 动作细微 |
| 猫咪叫 | 发出叫声,可能伴随张嘴动作 | 中等 — 视觉线索弱 |
异常场景
异常场景按严重程度和响应优先级分为四类:
| 分类 | 行为 | 告警优先级 |
|---|---|---|
| 分类 1(紧急) | 呕吐、抽搐 | 立即推送 |
| 分类 2(破坏) | 用手拨东西/抓挠物品、啃咬东西 | 事件记录 |
| 分类 3(扰民) | 猫咪持续叫 | 事件记录 |
| 分类 4(安全) | 跳跃、跌落 | 条件推送 |
端云协同分级策略
当相近异常行为无法在端侧准确区分时(例如「抽搐」vs「剧烈翻身」),端侧只需标记「异常」+ 区分大类,将关键帧和短片段上报云端做进一步识别。这种分级策略可以在保证召回率的同时降低端侧模型复杂度。
端侧不只是跑模型,还需要完成完整的视频采集→分析→输出链路。以下功能要求直接约束了算法选型和系统设计:
| 功能 | 说明 | 算法约束 |
|---|---|---|
| 视频采集 | 持续采集室内猫居家场景 | 需要处理连续视频流,非图像级 |
| 夜视/低光拍摄 | 红外夜视,弱光环境可见 | 模型需适配红外/低光域 |
| 云台控制 | 水平旋转 + 上下俯仰 | 运动背景 → 背景减除法受限 |
| 异常场景提醒 | 实时告警推送 | 低延迟推理 + 异常检测分支 |
| 亮点抓取 | 基于 CV 特征规则 | 需要轻量级特征提取器 |
| 本地短时缓存 | 弱网/断网时缓存 | 事件队列 + 存储管理 |
| 结构化事件输出 | 向云端输出 | 标准化数据格式 |
结构化事件输出的数据格式规范:
{
"timestamp": "2026-06-29T14:30:00+08:00",
"cat_id": "cat_01",
"action": "vomiting",
"category": "abnormal_class1",
"confidence": 0.87,
"keyframe": "events/20260629_143000_keyframe.jpg",
"clip": "events/20260629_143000_clip.mp4",
"ptz_state": {"pan": 45.0, "tilt": -15.0}
}
第一阶段的核心目标是:搞清楚现有动作检测模型在动物(尤其是猫)行为识别上能做到什么程度,为后续的模型改进和数据策略提供 baseline。
分为三条并行推进的任务线:
flowchart LR T1["任务 1
模型调研"] --> T3["任务 3
Benchmark"] T2["任务 2
数据集搜集"] --> T3 T3 --> OUT["Baseline
+ 瓶颈分析"]
任务 1:现有模型调研与方法总结
目标
梳理当前动作检测领域的主要技术路线,理解每种方法的原理、适用场景和局限性,作为后续改进的基础。
调研范围
- mmaction2 工具链:OpenMMLab/mmaction2 是动作识别/检测的标准框架,内置了大量主流模型(TSN, TSM, SlowFast, TimeSformer, UniFormer 等),是验证的第一站。
- 其他人类动作检测模型:关注基于 RGB 的方法(3D-CNN 系列、Video Transformer 系列)和基于骨架的方法(ST-GCN 及变体)。
- 已有的动物动作检测模型:调研是否已有专门针对动物行为识别的开源模型或工作(如 Animal Kingdom 数据集附带的方法、AnimalPose 相关工作等)。
两条主要技术路线
| 维度 | RGB-based | Skeleton-based |
|---|---|---|
| 代表方法 | SlowFast, TimeSformer, VideoMAE, UniFormer | ST-GCN, AGCN, SkateFormer |
| 输入 | 原始 RGB 视频帧 | 骨架关键点序列 |
| 优势 | 信息完整,不依赖姿态估计 | 计算量小,对背景鲁棒 |
| 劣势 | 计算量大,光照敏感 | 依赖姿态估计质量,猫的关节点标注稀少 |
| 猫场景适配性 | 首选 — 猫姿态模型不成熟 | 需要先解决猫姿态估计问题 |
交付物
- 各模型的技术路线总结(架构、输入模态、时空建模方式)
- 优缺点对比表(精度、速度、显存占用、是否适合边缘部署)
- 初步选型建议:哪些模型最适合作为改进的基础
任务 2:动物动作数据集搜集
目标
为模型训练和 benchmark 测试准备充足的数据。人类动作检测模型迁移到动物场景需要领域适配,数据是关键。
三类数据来源
1. 真实动物动作视频数据集
| 数据集 | 物种 | 行为类别 | 模态 | 许可 |
|---|---|---|---|---|
| Animal Kingdom | 多物种(850+ 物种) | 140+ 行为 | 视频 | CC BY-NC |
| AP-10K | 23 种动物 | 姿态估计 | 图片 + 关键点 | CC BY 4.0 |
| AnimalPose | 5 种动物 | 姿态估计 | 图片 + 关键点 | 学术使用 |
| Pet-3K(待调研) | 猫/狗 | 行为分类 | 视频 | 待确认 |
2. 合成动物动作数据集
- 游戏引擎 / 3D 渲染生成的动物动作数据(如使用 Blender + 猫科 3D 模型 + 动画 capture)
- 优势:标注完美、可控、可覆盖长尾异常场景(呕吐、抽搐等真实采集极难覆盖的行为)
3. 动物动作合成世界模型
- 探索使用视频生成世界模型(Sora 类、条件视频生成模型)合成特定猫科行为片段
- 特别适用于覆盖呕吐、抽搐、跌落等难以在真实场景采集且标注的异常行为
- 可控性(行为类型、视角、光照)是关键评估指标
合成数据的域差异风险
合成数据与真实视频之间存在显著的域差异(domain gap)。使用合成数据训练的模型在真实场景上的表现可能大幅下降。Benchmark 中必须包含真实视频测试集来量化这一 gap。
交付物
- 数据集汇总表(名称、规模、物种覆盖、行为类别、模态、许可证)
- 数据缺口分析:哪些行为类别缺乏可用数据
- 数据合成可行性评估
任务 3:Benchmark 搭建与模型测试
目标
搭建一套针对猫咪行为识别的评测基准,量化现有模型在该任务上的表现,建立 baseline。
Benchmark 设计
标签空间——对齐项目行为分类体系:
- 常见场景 9 类(活动 / 进食 / 饮水 / 如厕 / 静止 / 追逐 / 打闹 / 舔毛 / 叫)
- 异常场景 4 大类(紧急 / 破坏 / 扰民 / 安全)
测试集构成:
- 真实猫咪行为视频(如有标注数据)
- 合成数据补充异常场景
- 不同光照条件(正常 / 低光 / 夜视红外)
评测指标:
| 指标 | 说明 | 关注点 |
|---|---|---|
| 逐帧 mAP | 时空动作检测 | 定位精度 |
| 视频级准确率 | 行为分类 | 整体识别效果 |
| 混淆矩阵 | 类别间混淆 | 常见 ↔ 异常 的误分 |
| 推理延迟 | 端侧部署 | 需 < 67ms/frame(15fps) |
| 显存占用 | 端侧部署 | 需适配 < 512MB |
实验计划
| 实验 | 模型 | 数据 | 目的 |
|---|---|---|---|
| Exp-1 | mmaction2 模型库(zero-shot) | 人类动作数据集预训练 | 测迁移效果下界 |
| Exp-2 | mmaction2 模型库(fine-tune) | 动物动作数据集微调 | 测 fine-tune 能拉多少 |
| Exp-3 | 骨架-based 模型 | 动物姿态估计数据 | 测骨架路线在猫上的可行性 |
| Exp-4 | Video Transformer | 混合数据(真实 + 合成) | 测 Transformer + 数据增强上限 |
交付物
- Benchmark 评测代码库(基于 mmaction2 或独立实现)
- 各模型在猫咪行为识别上的定量结果
- 分析报告:瓶颈在哪里(数据量?域差异?模型容量?时空建模能力?)
- 第二阶段改进方向建议
flowchart TD P1["第一阶段:模型验证
+ Benchmark 搭建"] --> P2["第二阶段:模型改进
+ 数据增强"] P2 --> P3["第三阶段:端侧部署
+ 系统集成"] P3 --> P4["第四阶段:产品化
+ 硬件 BOM 定型"]
时间线与依赖
- 任务 1(模型调研)与任务 2(数据集搜集)可以完全并行
- 任务 3(Benchmark)依赖任务 1 和 2 的部分产出(选定模型 + 准备好数据)
- 任务 3 的 Benchmark 设计本身可以先行启动,但跑实验需要前两者就绪
第一阶段关键里程碑
- 模型清单:完成 mmaction2 + 其他主要模型的调研,输出技术路线对比表
- 数据集清单:完成真实 + 合成数据源调研,输出数据缺口分析
- Benchmark v0.1:可运行的评测 pipeline,至少跑通 Exp-1(zero-shot baseline)
- Baseline 报告:各模型定量结果 + 瓶颈分析 + Phase 2 方向建议