Rebucca
语言 / Language: 简体中文 | English
开源协议: MIT License,可自由商用。详见 LICENSE。
功能
- 视频接入:RTSP / GB28181 拉流,ZLMediaKit 转发,ONVIF 发现
- 智能分析:YOLO-PyTorch / ONNX / OpenVINO 小模型 + 可选大模型复核
- 布控报警:多边形区域、7 种后处理规则(入侵/越线/计数/方向/密度/滞留/离岗)
- 运维:控制面板监控、流媒体启停、录像、多语言(7 种)
环境要求
- Python 3.10+
- FFmpeg(PATH 或
config.json 配置)
- ZLMediaKit(流媒体,端口与
config.json 一致)
- GPU 可选
如果是Linux系统,需要手动进入到zlm/bin.x86.gcc9.4 或 zlm/bin.arm.gcc9.4 ,确保可以正确执行 ./rebucca_zlm
如果执行./rebucca_zlm失败了,可以参考下面的两种方式解决安装环境问题
(1)解决方式一
sudo chmod -R a+x *
echo "export LD_LIBRARY_PATH=\"$(pwd):\$LD_LIBRARY_PATH\"" >> ~/.bashrc && source ~/.bashrc
(2)解决方式二
sudo apt update
sudo apt install -y libsrtp2-1
//下载ubuntu20的libssl1.1包
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.24_amd64.deb
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.24_amd64.deb
//修复依赖
sudo apt -f install
安装依赖:
# Windows
pip install -r requirements-windows.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
或
pip install -r requirements-windows.txt
# Linux
pip install -r requirements-linux.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
或
pip install -r requirements-linux.txt
快速开始
python manage.py runserver 0.0.0.0:10001
浏览器访问 http://<host>:10001/,默认账号 admin,默认密码 admin888。
首次部署请编辑 config.json(端口、ZLM、FFmpeg 等)和 settings.json(界面品牌)。启动配置页保存后多数项热更新生效;改管理端口或调试日志需重启服务。
使用顺序
视频管理 → 小模型 → 大模型 → 业务算法 → 布控管理 → 启动分析 → 报警管理
- 添加摄像头并确认拉流正常
- 上传/配置小模型(流程 1/3)和大模型(流程 2/3)
- 创建业务算法,在布控页画区域并绑定算法
- 点击「启动分析」(重启服务后需手动再点)
- 在报警管理查看结果
只有业务算法规则命中才会报警;单纯检测到目标或画面运动不会产生报警记录。
常见问题
| 问题 |
处理 |
| 没有报警 |
确认拉流正常、布控已绑算法、已启动分析、检测类别匹配 |
| 改配置不生效 |
布控/算法可热更新;换小模型需重启分析;改端口需重启服务 |
| 端口占用 |
结束残留 python.exe 后重新启动 |
日志目录:log/。版本号见 framework/settings.py。
更新日志
v1.005
- 2026/09/24
- 新增「离岗检测」后处理规则(第 7 种业务规则)
- 与密度报警相反的反向区域规则:密度是「区域内目标数 ≥ 阈值」报警,离岗是「区域内连续 N 秒无目标」报警。
- 在业务算法页选择「离岗检测」,在布控区域配置离岗阈值(秒)即可使用;区域内连续无匹配目标达到阈值触发报警,目标回岗后自动重新武装、可再次触发。
- 检测目标类别沿用业务算法的「检测目标」配置(如 person),只有匹配类别的目标才算「在岗」。
- 适用场景:机房值守、收银台离岗、值班岗在岗监测、工地值班、客服工位监督等。
- 实现:
models.py 新增 POST_ABSENCE 与 ZoneModel.absence_threshold;biz_rules.py 新增 ABSENCE 规则匹配与离岗报警文案;pipeline.py 新增区域级离岗判定(在场计时/回岗重新武装);schema_upgrade.py 老库自动补列,无需手动迁移。
- 补齐密度报警阈值配置入口(重要修复)
- 此前密度报警(DENSITY)的
density_threshold 只有后端字段,布控区域编辑界面没有配置入口,导致密度报警阈值恒为 0、永远无法触发。
- 现已在布控区域弹框中增加「密度阈值」「离岗阈值」两个输入项,新建/编辑均可配置并随布控保存。
- 报警管理支持密度/离岗类型筛选
- 报警列表新增「密度报警」「离岗检测告警」筛选选项与类型显示。
- 区域级报警快照优化
- 密度/离岗等区域级报警本身没有具体目标框,快照不再在左上角绘制 0×0 空检测框,仅保留区域多边形与事件角标。
- 国际化
- 新增离岗/密度相关翻译键并补齐至全部 7 种语言;补齐简体中文缺失的
zone_state_enabled / zone_state_disabled。
v1.004
- 2026/09/02
- 修复布控报警快照识别框位置异常(重要)
- 共享推理池链路(默认开启)发送帧前会将长边降采样至 ≤1280 以节省传输,推理返回的检测框 / 关键点 / 分割多边形坐标属于缩放后小图坐标系,此前未经还原直接画到原始分辨率快照上,导致报警管理图片中识别框整体偏左上、尺寸偏小,分辨率越高错位越明显。
- 现已按缩放比例将检测结果坐标还原回原图坐标(
remote_detector.py),未降采样时零开销直通;同时修正了区域命中判断(点在多边形内)使用错位坐标导致的潜在误报 / 漏报。
- 修复编辑用户提交报错(
int() argument ... not 'NoneType')
- 数据库返回的
is_active 为布尔值,前端直接赋给状态下拉框导致值匹配失败,提交时序列化为 null,后端 int(None) 抛出原始异常。
- 前后端双重修复:前端将状态归一化为
'1' / '0'(user/index.html);后端对 is_active 做布尔 / 字符串兼容归一化,id 缺失时返回业务错误提示(UserView.py)。
- 修复业务算法编辑弹框不回显已选检测目标
- 打开编辑弹框时,已选检测目标先被正确填充,但随后触发的
onSmallModelChange() 以空选中集重绘下拉框,把回显项全部清空,表现为「选了多少项,打开编辑却一个都没选中」。
- 现改为保留当前已选项重绘(与检测+ReID 流程的
onDetectorModelChange 行为一致);真实切换小模型时,不属于新模型标签列表的旧选中项仍会被自然过滤(algorithm/index.html)。
v1.003
- 2026/08/06
- 业务算法选择大模型相关修复(重要)
- 大模型配置新增「名称」字段,可留空;新增 / 编辑时若名称为空,自动以「模型名称」兜底(
name = model_name),避免大模型配置出现空名称。
- 业务算法列表 / 编辑中,绑定大模型的显示名现在会回退到「模型名称」(
llm_name 兜底 name or model_name),不再显示空白。
- 修复业务算法编辑时,绑定的大模型若已被禁用,下拉框无法回显、看似「配置丢失 / 选不中」的问题:现在自动补一个带「[禁用]」标记的回显项,且每次打开编辑会清理上一次的回显项。
- 业务算法「大模型」下拉选项 label 改为
name || model_name || #id,确保只填了模型名称时也能正确显示。
- 新增「统计看板」(报警态势总览)
- 报警管理新增「统计看板」页面(
/alarm/dashboard),一站式掌握报警态势。
- 4 张核心统计卡:今日报警、近 7 天报警、累计报警、涉及摄像头数(均可点击下钻到对应列表)。
- 报警趋势图:支持近 7 天 / 近 30 天切换。
- 报警类型分布、报警 TOP 摄像头排行。
- 新增接口
alarm/openStats,左侧导航新增「统计看板」入口。
- 国际化补全
- 补齐统计看板相关 16 个翻译键至全部 7 种语言(es / ko / ru / vi / zh-hk / zh / en),修复此前仅 zh / en 有译、其余语言界面显示原始 key 的问题。
版本号见 framework/settings.py 的 PROJECT_VERSION。
评论