套餐

reCamera 2002

一台 reCamera 2002 在设备本地判断有没有人摔倒,并通过 MQTT 发出事件。

重要提示: 这是辅助告警,不是经过认证的医疗或人身安全系统。远景、遮挡、低光以及看起来像跌倒的地面动作仍是弱项。

1

更新 reCamera 控制台

安装 0.5.5 控制台,它负责管理相机应用。已经是该版本会自动跳过。

前置条件
  1. 用 USB 连接 reCamera,或让它和这台电脑处于同一网络。
  2. USB 连接的地址是 192.168.42.1;走 Wi-Fi 时用路由器上显示的 IP。
  3. 默认密码是 recamera(较早期的设备用 recamera.2)。
  4. 下一步安装跌倒检测需要该版本控制台。
故障排查
现象处理
连不上确认设备已开启 SSH,IP 和密码填写正确
装完后控制台页面打不开等待 30 秒让它重启,然后重新加载 http://<摄像头 IP>/
密码被拒绝试试 recamera.2,出厂固件较早的设备用这个密码

2

安装跌倒检测

安装姿态模型和跌倒检测应用,并在相机上启动它。

接线

机位示意:2–3 m 的侧向或斜角机位可用;垂直俯拍、远景和被遮挡的机位不可用。

  1. 把摄像头固定安装,让它能完整、开阔地看到要覆盖的区域。
  2. 在可能发生跌倒的路径上,保证整个人体——尤其是肩部和髋部——始终可见。
  3. 优先用侧向或斜角俯视地面区域的机位,不要垂直向下拍。
  4. 对着通行区域,不要主要对着床或健身区域——除非你单独验证过,那里的日常地面动作会被当成跌倒。
  5. 它检测的是倒地这个过程,不是倒地后的结果:如果启动时人已经躺着,它会报告姿态但不会产生事件。
故障排查
现象处理
服务启动后立刻退出还有别的相机应用在占用摄像头;同一时间只能有一个程序占用,重启设备后重试
装完后 Node-RED 不工作了属于预期——安装会把摄像头从 Node-RED 和其他视觉应用手里接管过来
跌倒漏报拉大视野、改善照明,保证倒地前后肩部和髋部都可见
做俯卧撑触发告警这是已知的类跌倒动作,换个机位或在下游加人工确认
收不到 MQTT 消息确认电脑能访问 1883 端口,主题为 recamera/fall-detection/results

3

查看跌倒状态

点击 连接,实时看到骨架、当前状态和事件编号。

故障排查
现象处理
叠加层比视频先出现MQTT 比 RTSP 连得快,等几秒即可
人贴近地面时骨架消失重新构图;落地后的短暂遮挡可以容忍,长时间遮挡无法判定
完全没有叠加层确认 1883 端口可达,且主题填写一致

部署完成后

告警发往 recamera/fall-detection/results,Home Assistant 自动发现会生成跌倒状态、事件编号和有人存在实体。

快速验证

  1. 点击 连接,等待视频出现。
  2. 走进画面——骨架应当跟随你移动,状态卡显示 NORMAL
  3. 有意识地躺到地面上。大约两秒内状态卡应当变红,并显示一个新的事件编号。

下一步

  • 把摄像头接入 Home Assistant——只要 broker 是共享的,实体会自动出现。
  • 在启用任何通知流程之前,用有代表性的跌倒动作和日常动作做一次现场验收测试。
4

安装告警面板(可选)

跳过这一步部署即告完成:摄像头照旧发 MQTT 事件,其余什么都不变。

做这一步,则在另一台主机上安装告警面板:站点总览、在实时画面上画识别区域、每个区域的无人超时与静止超时、值班人确认或驳回告警、审计记录,以及不含视频的 webhook。

前置条件

面板装在与摄像头同网段的另一台机器上,不需要 AI 算力:reComputer R1000 系列,或已有的一台 Linux 机器。

  • 摄像头同网段的一台 x86_64 或 arm64 Linux 主机,装好 Docker 与 compose 插件 (docker compose version 必须能跑通),并可 SSH 登录。
  • 摄像头实际发布的主题。开始前先在那台主机上确认: mosquitto_sub -h <摄像头或 broker 地址> -t '#' -v。reCamera 2002 发布在 <设备名>/fall-detection/results,单流,无流编号后缀。
  • 该主机的 8080 与 1883 端口空闲,或在表单里填别的端口。
故障排查
现象处理
部署停在「Port 8080 is already in use」在表单里换一个面板端口,或停掉提示里指出的那个服务。
结尾出现「no message on ... within 20 s」告警面板已起来但没收到检测结果。用 mosquitto_sub -t '#' -v 重新核对主题,并确认摄像头发布到的是这里填的 broker 地址。
告警列表一直为空,无人告警从不触发画面里没人时摄像头也要发消息,这个超时才有输入。跌倒告警不受影响。
eldercare-alarm-*pull access denied检查主机能否访问镜像仓库。
远程设备

通过 SSH 部署到面板主机。

部署时需要填写(在 SenseCraft Solution 应用里填)
  • 面板主机 IP*

    跑面板的那台机器——reComputer R1000,或任意已装 Docker 的现有 Linux 服务器

  • SSH 用户名*默认 recomputer
  • SSH 密码*
  • 摄像头型号*默认 fall_result_v1
    2 项可选
    • · reCamera 2002
    • · reCamera Pro

    摄像头发布的是哪种负载。reCamera 2002 发 fall_result_v1;reCamera Pro 发自己的状态消息,需要 Pro 适配器。

  • 检测结果主题*默认 recamera/fall-detection/results

    摄像头实际发布的主题。部署前用 `mosquitto_sub -h <broker> -t '#' -v` 确认——2002 是 <设备名>/fall-detection/results,Pro 是 <base>/fall-detection/state。用 + 通配符可覆盖多台摄像头。

  • MQTT Broker 地址*默认 mosquitto

    保持 mosquitto 就使用本套栈在这台机器上启动的 broker,并把摄像头指向本机;填摄像头或你自己的 broker 地址则订阅已有的那个。

  • MQTT Broker 端口*默认 1883

    面板连接的端口。使用内置 broker 时与下面发布的 broker 端口填同一个值。

  • MQTT 用户名

    使用内置 broker 时留空——它在局域网内允许匿名连接

  • MQTT 密码

    不支持引号和反斜杠——这个值会写进生成配置里的带引号字段

  • 本机对外的 Broker 端口*默认 1883

    内置 broker 在本机绑定的端口。若本机 1883 已被占用就改这里——部署会提前失败并给出占用它的进程。

  • 面板端口*默认 8080

    面板页面对外的端口。本机 8080 已被占用就改这里。

  • 区域名称*默认 bedroom

    这些摄像头看护的区域。部署会建立一个覆盖整幅画面的区域;若一台摄像头覆盖两个房间,之后在主机上把它拆成多个矩形。

  • 无人超时(分钟)*默认 60

    区域内允许持续无人多久才告警。要设得高于正常的离开时长——卫生间区域应远短于卧室。

  • 静止超时(分钟)*默认 30

    区域内有人但持续不动多久才告警。睡眠时段会触发它,除非区域排除床位或阈值覆盖一次午睡。

  • Webhook 地址

    确认后的告警 POST 到哪里。负载只含告警 id、类型、区域、流、时间戳与操作者,不含快照或视频。留空则只在面板里记录。

5

打开告警面板

只有装了面板才需要这一步。

故障排查
现象处理
页面打不开核对面板端口与部署步骤里填的一致,并确认主机防火墙放行。
出现登录页部署设置了 ELDERCARE_API_TOKEN。输入该口令与操作者姓名——姓名会写进确认/驳回回执。
某个房间显示「未知 + 断流」面板主机连不上那台摄像头,检查网络;卡片上的「最近一帧」是最后收到画面的时间。
部署完成后

快速验证

  • 总览页会列出你填的那个房间,带摄像头数与区域数。
  • 现场无事时告警列表为空即为正常——说明服务已经起来并能应答。
  • 要端到端验证接收链路,在主机上把该区域的无人超时临时改成 1 分钟 (改 config/alarm-panel.yaml,再执行 docker compose restart alarm-panel), 让该区域空置,确认出现一条告警。验证完把原值改回去。

下一步

  • 在实时画面上把识别区域画出来,替换部署时创建的那个覆盖整幅画面的矩形。
  • 之前留空的话,把 webhook 指向你自己的告警系统。
  • 语音确认默认关闭,需要一个 OpenVoiceStream 实例,以及接在这台主机上的 USB 麦克风与扬声器,见步骤 6。
6

语音确认(可选)

可选,默认关闭。跌倒告警触发后,服务出声询问住户是否安好,并按回答处置;关闭后告警链路不变。

回答如何影响告警:

回答结果
求救("救命"、"help"、"我起不来")立即确认,跳过剩余的人工窗口
完全没有回答立即确认
听不明白立即确认
"我没事"默认 on_ok: needs_review——告警保持原有时序,只打上待复核标记。要直接结案就设 on_ok: dismiss
前置条件

同一局域网内有一个 OpenVoiceStream 实例,USB 麦克风与扬声器接在运行它的那台机器上,不接在摄像头上。

故障排查
现象处理
每条告警都是 no_answer要么提示音听不见,要么没有采到音。先查扬声器,再在告警主机上跑 arecord -l
每条告警都是 unclearASR 返回的文本没命中词表。在控制台里看转写内容,把住户实际的说法加进 ok_keywords / help_keywords
告警自己结案了on_ok 被设成了 dismiss。除非确实有人在复核这些驳回,否则改回 needs_review
服务起来了但从不出声确认告警主机的音频设备已接入容器,在 docker compose logs eldercare-alarm 里查看 TTS 或播放报错。
部署完成后

同一句话里同时有求救词和安全词时按求救处理。

隐私: 音频不落盘。审计保存判定结果、置信度、耗时与转写文本;把 store_transcript 设为 false 则不存转写文本。通知不含快照和视频。

快速验证

  1. curl -sf http://<ovs 地址>:8621/readyz 返回 200。
  2. 站在可能跌倒的位置能听清合成出来的提示音。