桌宠反馈 Skill。触摸屏表情显示(按情绪/状态切换)+ 语音反馈(TTS 合成并播放)+ 触摸检测与自动亮屏,构成"感知—分析—反馈"闭环的反馈端。
Coding
pet-camera-vision
Try it桌宠摄像头感知 Skill。截图并调用多模态模型识别人脸、颜色与表情,输出结构化 JSON(在场状态+情绪+颜色),供情绪分析、长期记忆与陪伴反馈使用。
What it does
桌宠摄像头感知 Skill。截图并调用多模态模型识别人脸、颜色与表情,输出结构化 JSON(在场状态+情绪+颜色),供情绪分析、长期记忆与陪伴反馈使用。
The skill document
pet-camera-vision — 桌宠摄像头感知 Skill
概述
本 Skill 是「多模态情绪陪伴桌宠系统」的感知端:负责拍照截图,并把"人脸的在场状态、颜色、表情"交给 OpenClaw 的多模态模型分析,最终输出结构化 JSON,供情绪分析、长期记忆与陪伴反馈(表情显示 / 灯光 / 动作)使用。
设计遵循项目约定:OpenClaw 负责"思考",Skill 负责"执行"。 本 Skill 只负责两件事:
- 稳定截图(多后端自动回退:libcamera-still → fswebcam → OpenCV)。
- 生成分析提示词、并把多模态模型的回答规范化为严格 JSON(容错解析 + 字段校验 + 兜底默认值)。
架构
用户靠近/做表情
│
▼
capture.py ──截图──► JPG 文件
│
▼
analyze.py --local ──► 本地辅助检测(在场状态 cv2 + 主色提取 PIL,离线可用)
│
▼
多模态模型(由 OpenClaw 调用,参考 prompts 里的提示词)
│
▼
analyze.py --model-output ──► 规范化 JSON:
{
"present": true, # 有没有人
"emotion": "happy", # 表情识别结果
"emotion_confidence": 0.9,
"colors": [{"name": "蓝色", "hex": "#3B82F6", "ratio": 0.42}],
"timestamp": "2026-08-31T13:47:00+08:00"
}
│
▼
OpenClaw 记忆 / 反馈(表情、灯光、动作)
文件说明
| 文件 | 作用 |
|---|---|
SKILL.md | 本说明文档 |
capture.py | 截图脚本,多后端自动回退,支持离线合成测试图 |
analyze.py | 本地辅助检测 + 多模态提示词生成 + 模型输出规范化 |
prompts/analyze_vision.md | 给多模态模型的提示词模板(中英双语) |
examples/example_output.json | 规范化输出的样例 |
examples/demo.md | 演示脚本(含离线演示方式) |
依赖与安装
- Python 3.9+(树莓派系统自带)
- 截图后端三选一即可(按顺序自动回退):
libcamera-still(树莓派 Camera Module,推荐)fswebcam(USB 摄像头,sudo apt install fswebcam)opencv-python(通用,pip install opencv-python,本机开发也能用)
- 本地辅助检测可选:
opencv-python(人脸级联)+Pillow(主色提取)
sudo apt install -y fswebcam # USB 摄像头时
pip install opencv-python Pillow # 通用/开发机
使用方法
1. 截图
python3 capture.py --outdir captures --resolution 1280x720
输出(stdout,JSON):
{"status": "ok", "path": "captures/20260831_134700.jpg", "backend": "libcamera-still", "timestamp": "2026-08-31T13:47:00+08:00"}
常用参数:--device 0|/dev/video0(指定摄像头)、--filename(自定义文件名)、--synthetic(无摄像头时生成合成测试图,用于离线演示)。
2. 本地辅助检测(离线,不调模型)
python3 analyze.py --image captures/xxx.jpg --local
输出在场状态(有人/无人,基于人脸级联)+ 主色 Top3(名称 + HEX + 占比),无需联网。
3. 生成多模态提示词
python3 analyze.py --image captures/xxx.jpg
打印可直接喂给多模态模型的提示词(见 prompts/analyze_vision.md),要求模型只返回 JSON。
4. 规范化模型输出
python3 analyze.py --image captures/xxx.jpg --model-output model_answer.txt
- 容错提取模型回答中的 JSON(支持代码块、前后缀杂文)
- 校验并补全字段(允许的情绪集合、置信度 0-1、颜色列表)
- 输出最终严格 JSON(单行,便于 OpenClaw 直接解析)
输出 JSON 格式
{
"present": true,
"present_method": "multimodal", // multimodal | cascade | unknown
"emotion": "happy",
"emotion_confidence": 0.92,
"colors": [
{"name": "蓝色", "hex": "#3B82F6", "ratio": 0.42},
{"name": "白色", "hex": "#F8FAFC", "ratio": 0.31}
],
"image_path": "captures/20260831_134700.jpg",
"timestamp": "2026-08-31T13:47:00+08:00"
}
present:true/false(有没有人)emotion:允许集合happy | sad | angry | surprised | fearful | disgusted | neutral | worried | sleepy | excitedcolors:画面主色 Top3,name为中文颜色名- 模型输出缺失字段时自动补默认值,保证 JSON 永远可解析
与 OpenClaw 的集成(示例流程)
1. OpenClaw 决定"看一眼用户"(定时轮询 / 用户靠近触发 / 对话中需要确认情绪)
2. 调用本 Skill:python3 capture.py --outdir captures
3. OpenClaw 读取截图路径,调用多模态模型(提示词见 prompts/analyze_vision.md)
4. 模型回答写入临时文件 → python3 analyze.py --image --model-output
5. OpenClaw 拿到结构化 JSON:
- present=false → 进入待机,屏幕熄屏等待
- present=true → 更新长期记忆"用户当前情绪=happy"
- emotion=消极 → 触发安慰反馈(冷色灯光 / 安慰表情 / 温柔语气)
- emotion=积极 → 暖色灯光 + 开心表情联动
演示样例
见 examples/demo.md,含:
- 在线演示:对着摄像头做表情 → 输出对应情绪 JSON → 触摸屏/灯光联动
- 离线演示:无摄像头时用
--synthetic生成测试图,走完整"截图→分析→JSON"链路
故障排查
| 现象 | 处理 |
|---|---|
| 提示找不到摄像头 | --device 指定 /dev/video0;检查 USB 权限;ls /dev/video* |
| 树莓派 libcamera 报错 | sudo apt install -y libcamera-apps;确认 Camera Module 已启用 |
| 分析结果总是不准 | 提高 --resolution;保证光线充足;让人脸占画面 1/4 以上 |
| 模型返回的不是 JSON | 使用 prompts/analyze_vision.md 里的严格提示词;--model-output 模式会自动容错提取 |
许可
按 ClawHub 规则,本 Skill 以 MIT-0 许可发布。
Related skills
Transform photos into interactive desktop pets — auto subject detection, background removal, Q-style cute makeover, 5+ animated actions, and interaction logic. Outputs a ready-to-install desktop pet application (.exe for Windows, .dmg for Mac). 将实拍照片转为可互动桌面萌宠,完成抠图、萌化、多动作动效生成、交互配置全流程,最终输出可安装的桌面宠物应用程序
把用户的照片生成为专属 AI 桌宠(ChatGPT/Codex Pet 资源包)、在对话里召唤会动的桌宠卡片、用一条命令让桌宠常驻桌面(跟随 WorkBuddy/Claude Code/CodeBuddy 的任务状态)、协助安装;也可免费安装 DeskPeto 共享广场的社区公开桌宠。当用户说「召唤桌宠」「显示我...
🐱🐶 AI宠物情绪识别技能。上传猫狗照片,自动识别宠物情绪(快乐/悲伤/愤怒/恐惧/放松/警觉6种),生成可视化HTML报告含情绪雷达图和AI解读。基于DashScope多模态大模型。Triggers: 拍照识别宠物情绪, 宠物情绪, 宠物表情, 猫咪心情, 狗狗情绪, 猫狗情绪, 宠物表情识别, 看看我家猫...
Translate cat and dog vocalizations into labeled emotions and behavioral intents via voiceprint AI.
Detect and identify cats and dogs from feeder or IPC camera views, enroll per-pet profiles, and pull historical reports from the cloud API.