Kami Fall Detection — Kami 跌倒检测
v1.0.0使用KamiClaw云API从RTSP摄像头流中检测跌倒事件,无需本地GPU。
运行时依赖
安装命令
点击复制本土化适配说明
Kami Fall Detection — Kami 跌倒检测 安装说明: 安装命令:["openclaw skills install kami-fall-detection"]
技能文档
Kami Fall Detection (Cloud) 使用KamiClaw云API从RTSP摄像头流中检测跌倒事件。无需本地GPU —— 所有推理都在服务器端运行。
工作原理 阶段1 —— 变化检测(本地,CPU-only):在128×128灰度图像上进行轻量级帧差分。保持一个滚动预缓冲区(默认4s)。当检测到显著的时间变化时,触发阶段2。 阶段2 —— KamiClaw云分析:收集过渡后帧(默认4s),将剪辑重置为360×360,写入临时文件,并将其发送到KamiClaw API(detectType:FALL,detectSubType:SK_FALL_DETECTION)。如果检测到跌倒,输出一个JSON警报行,并可选地保存剪辑。然后重置并返回到阶段1。 自动重新连接:如果RTSP流断开,该技能将自动每5秒重试连接,并无缝地恢复监控。
API密钥设置指南 该技能需要KamiClaw API密钥来验证云服务。 步骤1 —— 注册 前往https://kamiclaw-skill.kamihome.com并创建一个账户。选择一个适合您的使用计划。 步骤2 —— 获取API密钥 注册后,从仪表板复制您的API密钥。它的格式如下:sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 步骤3 —— 提供API密钥和RTSP URL 告诉代理您的API密钥和RTSP URL。代理将自动将它们保存到config.json中。
代理指令: 在运行该技能之前,阅读config.json并检查api_key和rtsp_url是否都非空。如果任意一个为空,请要求用户提供缺失的值(们)。在两个值都提供之前,请勿继续。 如果api_key为空: "请提供您的KamiClaw API密钥。请在https://kamiclaw-skill.kamihome.com注册以获取一个。" 如果rtsp_url为空: "请提供您的RTSP摄像头URL(例如rtsp://192.168.1.100/live/stream)或本地视频文件路径。" 还要询问: "您是否希望在检测到跌倒时保存视频剪辑?(是/否, 默认:是)" —— 根据用户的回答设置save_alarm_clips为true或false。 询问飞书通知: "您是否希望通过飞书接收跌倒警报?(是/否)" 如果是: 引导用户创建一个飞书群机器人并获取Webhook URL 在config.json中用Webhook URL(例如https://open.feishu.cn/open-apis/bot/v2/hook/xxx)填充feishu_webhook_url 如果否: 将feishu_webhook_url留空字符串 "" 一旦用户提供所有值,请将它们写入config.json(读取现有值,合并,写回)。然后运行该技能。请勿要求用户手动编辑config.json。始终为他们写入。
安装 bash setup.sh 这将: 检测系统Python(python3 → python → 自动安装) 创建 .venv/ 虚拟环境 安装: requests, opencv-python-headless, numpy 无需GPU或重型ML库。
运行 .venv/bin/python fall_detect_cloud_skill.py \ --rtsp_url rtsp://192.168.1.100/live/stream \ --api_key sk_live_xxxxxxxx 或在config.json中设置值并运行无参数: .venv/bin/python fall_detect_cloud_skill.py
配置 所有参数都在config.json中。代理在用户提供聊天值时自动填充此文件。 字段 默认值 描述 api_key "" KamiClaw API密钥(作为X-API-Key头发送) rtsp_url "" RTSP流URL或视频文件路径 run_time 0 最大运行时间(秒);0 = 无限制 pre_seconds 4.0 过渡前缓冲秒数 post_seconds 4.0 过渡后收集秒数 save_alarm_clips true 保存警报视频剪辑到logs/clips/ feishu_webhook_url "" 飞书Bot Webhook URL用于警报通知
飞书通知设置(Webhook) 要启用自动警报通知通过飞书Webhook: 步骤1:在您的群组中创建一个飞书Bot 打开您的飞书群聊 点击群组设置(⋮)→ 添加Bot 选择自定义Bot 设置一个名称(例如"Fall Detection Alert") 复制Webhook URL(格式:https://open.feishu.cn/open-apis/bot/v2/hook/xxx) 步骤2:添加到config.json { "feishu_webhook_url": "https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" } 步骤3:测试通知 .venv/bin/python fall_detect_cloud_skill.py 系统将发送一个测试消息以确认Webhook是否有效。
代理指令: 在配置该技能时,请询问用户是否希望飞书警报通知。如果是,请引导他们创建一个飞书群机器人并提供Webhook URL。 CLI args和env vars仍然可以覆盖(优先级:CLI > env > config.json > 默认值)。 代理:如果config.json中的api_key或rtsp_url为空,您必须要求用户提供两个值,然后才能运行。永远不要在两个字段任意一个为空时运行该技能。
输出格式(stdout JSON) 当警报触发时: { "alarm": true, "type": "fall", "fall_type": "active_falling", "num_persons": 1, "confidence": 0.92, "reason": "Person collapsed from standing to floor near bed", "frame": 87, "source": "rtsp://192.168.1.100/live/stream", "clip": "logs/clips/alarm_fall_20260429_143201.mp4" } 代理:当检测到跌倒警报(alarm:true)时,您必须通过连接的聊天通知用户。