禁区入侵与越线告警 — 部署指南

AI 辅助通道

还没定硬件?还是设备已到手准备安装?

不想在网页上手动勾选或敲命令?你可以让 AI 助手根据现场情况自动核算主机与配件,或者在设备通电后一键运行脚本自动安装。

方案自助咨询与部署
套餐

Jetson 单机部署

一台 Jetson Orin 运行全部服务:MQTT broker、告警工作台和人体检测器(TensorRT 推理、NVDEC 硬解),不需要第二台机器。

  • 摄像头: 一路 H.264 RTSP 摄像头,先用 VLC 测通地址。
  • 首次部署: 会在设备上构建 TensorRT 引擎,约五到六分钟,只构建一次。
1

部署安防服务栈

填入这台机器的地址和摄像头 RTSP 地址,构建引擎并启动三个容器。

检查内容

  • 引擎构建结束时打印 Engine written:,中途不要打断。
  • 部署输出中 mqtt_connected 为 true,解码为 "decode": "hw"。
  • 首次启动时会打印管理员登录信息。
前置条件

📖 工程与技术参考: 现场工勘约束与物理接线细节,请参阅 工程 Wiki · 现场部署规范。

  • JetPack 6.x 的 Jetson Orin,自带 TensorRT;其他机器上部署会直接停止。
  • Docker 已注册 nvidia 容器运行时。若缺失:sudo apt-get install -y nvidia-container-toolkit && sudo nvidia-ctk runtime configure --runtime=docker && sudo systemctl restart docker。
  • 8090(工作台)、1883(broker)、8099(摄像头预览)端口空闲。
  • 约 6 GB 可用磁盘。
故障排查

💡 参数与深度排障: 多路接入容量、置信度阈值调优与判定时序,详见 工程 Wiki · 参数实测与已知退化。

现象处理
部署停在「This preset is Jetson-only」目标机器不是 JetPack 系统,改用 RK3588 套餐或换一台 Jetson。
部署停在「The nvidia container runtime is not registered」按前置条件安装 nvidia-container-toolkit,重启 Docker 后重新部署。
引擎构建失败查看失败位置上方的 trtexec 输出,通常是磁盘不足。
检测器日志出现 deserialize_cuda_engine returned None删掉 models/yolov8n_fp16.orin.engine 后重新部署,引擎会重建。
检测器因硬解不可用退出确认 nvidia 容器运行时已注册,重新部署。
8090 无响应执行 docker compose logs hub,通常是端口被占用。
detector 容器反复重启执行 docker compose logs detector,通常是 RTSP 地址不通,在同一台机器上用 VLC 验证。
工作台里看不到设备等 30 秒;再确认 config/detector.yaml 里的 mqtt_host 是 mosquitto。
一个人站着不动却连续报警两次先检查摄像头和网络是否卡顿。
远程设备
部署时需要填写(在 SenseCraft Solution 应用里填)
  • 设备 IP*

    同时写入检测器配置,作为工作台访问预览画面的地址

  • SSH 用户名*默认 recomputer

    常见默认值:recomputer(Seeed reComputer J30 / J40 系列)、nvidia 或 ubuntu。

  • SSH 密码*
  • 检测器名称*默认 site-01

    MQTT 主题的第二段,也是工作台设备列表里显示的名字

  • 流编号*默认 cam-0

    拼在主题后面,用于区分同一检测器上的多路摄像头

  • 摄像头 RTSP 地址*

    仅支持 H.264——NVDEC 解码路径按 H.264 构建。先用 VLC 测一下这个地址,路径或用户名密码写错是最常见的失败原因。

2

打开告警工作台

登录、画一条边界,走过去看第一条告警。

故障排查
现象处理
登录时密码不对执行 docker compose logs hub | grep -i admin 查看生成的密码。
规则编辑器只有灰底、没有画面把 config/detector.yaml 里的 preview_advertise_host 改成机器的局域网地址,不要用 127.0.0.1。
告警没有快照缩略图查看检测器日志。
越线时不报警在设备页确认检测速率正常,人被持续检测到。
部署完成后

broker、hub 和检测器已在这台机器上运行。

首次登录

  1. 打开 http://<机器地址>:8090。
  2. 用户名 admin,密码是部署步骤打印的随机密码。输出被截断时,在机器上执行 docker exec <hub 容器> cat /data/initial-password.txt,第二行是密码。首次登录需修改密码。
  3. 打开设备页,检测器应显示在线,解码为 hw。

画第一条规则

  1. 打开规则页,编辑器以检测器的实时画面为底图。
  2. 画一个多边形作为禁区,或画一条线作为越线规则;越线可限定方向 forward、backward 或 any。
  3. 区域可以设滞留时长,停留超时会另出一条滞留告警。
  4. 保存后走进该区域,告警会在一秒内出现在工作台页,并附现场快照。

视频墙

工作台 → 视频墙。 可选 1、2、4、6、9 格或「自动」,每格叠加检测框和该路的禁区、越线。按 F 全屏,Esc 退出。设备离线或流重连时,格子转灰并显示原因。

不重启就改置信度

1、2、4 格布局下每格有置信度滑块,拖动后从下一帧生效,重启后保留。调低更灵敏、误报更多;调高更保守。界面提示结果未知时,到设备页刷新查看检测器上报的值。

在浏览器里加一路摄像头

视频墙 → 添加摄像头。 选择检测器,粘贴 RTSP 地址并命名,按钮显示完成即该路已出图。加一路后在设备页查看检测器 CPU 占用,有余量再加下一路。格子上的垃圾桶图标可移除摄像头,已有告警保留。

处理告警列表

每条告警可标记为已确认或误报,支持撤销、批量处理和导出 CSV。界面支持中英文。

对外输出的内容

主题内容
sensecraft/security/<device_id>/detections/<stream_id>逐帧人体检测框,带跟踪编号
sensecraft/security/<device_id>/status在线状态和解码方式
sensecraft/security/<device_id>/events/<stream_id>hub 判定的告警事件

本套餐的 1883 端口只允许本机访问。需要其他机器订阅时:把 compose 文件里 mosquitto 端口映射从 127.0.0.1:1883:1883 改成 1883:1883,同时在 config/mosquitto.conf 加 password_file、在 config/detector.yaml 配上对应凭据。不加密码直接开放端口,网络内任何设备都能发送伪造告警。

增加第二路摄像头

可以在视频墙添加摄像头,或在这台机器上再起一个检测器容器(各自配置 device_id、stream_id 和 preview_port),也可以用 RK3588 套餐部署一块独立板卡。