工业安全生产视觉监测平台——项目信息
摘要
本平台由管理后台和边缘计算节点两部分组成。管理后台基于 Go 1.23 开发,部署于 Windows 环境,采用 SQLite 嵌入式数据库,前端使用 Tabler CSS 框架及服务端模板渲染。边缘节点运行于 RK3588 ARM Linux,核心分析引擎用 C++17 实现,通过 NPU/VPU/RGA 硬件加速进行实时视频 AI 推理;设备管理代理用 Go 1.21 开发,负责与管理后台通信。平台总代码量 109,924 行,覆盖设备管理、AI 模型部署、人脸识别、劳保用品合规检测、告警联动等完整功能链路。
一、管理后台(managerd)
1. 软件开发环境/开发工具
| 类别 |
详情 |
| 编程语言 |
Go 1.23.3 |
| IDE/编辑器 |
VS Code / Cursor |
| 构建工具 |
Go build + PowerShell 脚本(scripts/managerd.ps1) |
| 版本控制 |
Git |
| 开发操作系统 |
Windows 11 |
2. 软件运行支撑环境/支持软件
| 类别 |
详情 |
| 运行时 |
Go 编译为单一可执行文件(managerd.exe),无需额外运行时 |
| 操作系统 |
Windows(服务端) |
| 数据库 |
SQLite(嵌入式数据库,modernc.org/sqlite 纯 Go 驱动) |
| Web 框架 |
go-chi/chi v5.2.3(HTTP 路由) |
| 前端框架 |
Tabler CSS + 原生 JavaScript(服务端模板渲染) |
| 浏览器 |
Chrome / Edge / Firefox 等现代浏览器 |
| 依赖库 |
chi(路由)、cors(跨域)、uuid(标识生成) |
3. 编程语言
Go(版本 1.23.3)
4. 代码行数
| 类型 |
文件数 |
总行数 |
| Go 源码 |
59 个 |
23,500 行 |
| 前端模板(HTML/CSS) |
62 个 |
6,675 行 |
| JSON 配置文件 |
19 个 |
— |
核心文件 internal/web/ui.go |
1 个 |
4,861 行 |
5. 软件架构
cmd/managerd/main.go —— 组装入口,手动依赖注入
internal/api/ —— HTTP API 处理器(chi router)
internal/web/ —— Web UI 处理器 + 嵌入式前端模板
internal/service/ —— 业务逻辑层
internal/storage/ —— SQLite 数据持久层
internal/config/ —— JSON 配置文件加载
internal/models/ —— 核心领域模型
templates/ —— 本地 JSON 模板文件
6. 主要模块
| 模块 |
说明 |
| 仪表盘 |
设备统计、在线率、告警概览、异常设备、最近任务 |
| 管控台 |
设备能力矩阵、视频源分配、通道管理 |
| 设备管理 |
局域网设备发现、注册、在线监控、批量操作 |
| 设备控制 |
配置预览、应用下发、服务控制、模型上传 |
| 告警中心 |
告警采集、分页查询、规则中文翻译 |
| 人脸库 |
人员注册、照片管理、人脸库构建与下发 |
| 视频监控 |
多路视频推流代理(HLS/RTSP) |
| 任务中心 |
批量任务创建、执行、状态追踪 |
| 配置中心 |
模板/场景/视频源/第三方服务/调试参数管理 |
| 模型管理 |
AI 模型概览与设备同步 |
| 场景管理 |
场景配置编辑、视频通道、通道部署 |
| 系统设置 |
数据备份恢复、服务状态、日志审计 |
二、边缘计算节点(RK3588)
1. 软件开发环境/开发工具
| 类别 |
详情 |
| 编程语言 |
C++17(媒体分析引擎)、Go 1.21(设备代理) |
| 构建系统 |
CMake 3.20+(C++)、Go build(Agent) |
| 交叉编译 |
Ubuntu 22.04 ARM64 工具链,aarch64-linux-gnu-g++ |
| IDE/编辑器 |
VS Code |
| 版本控制 |
Git |
| 开发/运行平台 |
Orange Pi 5 Plus(RK3588)、Ubuntu 22.04 |
2. 软件运行支撑环境/支持软件
| 类别 |
详情 |
| 操作系统 |
Ubuntu 22.04(ARM64) |
| 硬件平台 |
瑞芯微 RK3588(8 核 CPU + 6 TOPS NPU + VPU + RGA) |
| AI 推理框架 |
RKNN Toolkit 2(Rockchip 官方 NPU 推理框架) |
| 硬件加速 |
MPP(Media Process Platform,硬编解码)、RGA(图像缩放/颜色转换) |
| 视频协议 |
RTSP 输入、RTSP/HLS 输出 |
| 流媒体 |
FFmpeg(软件编解码备选) |
| 存储 |
MinIO(对象存储,抓拍与录像片段) |
| 编译依赖 |
CMake、GCC/G++(ARM64 交叉编译或本地编译) |
| 进程管理 |
systemd(media-server.service、rk3588-agent.service) |
3. 编程语言
- C++17(媒体分析引擎,核心 AI 推理管线)
- Go 1.21(设备管理代理 rk3588-agent)
- Python(模型训练、数据预处理、模型转换工具)
4. 代码行数
| 组件 |
语言 |
文件数 |
行数 |
| 媒体分析引擎 |
C++17 |
200+ |
61,531 行 |
| 设备管理代理 |
Go 1.21 |
41 个 |
7,251 行 |
| 工具脚本 |
Python |
51 个 |
10,967 行 |
| 合计 |
|
300+ |
79,749 行 |
5. 软件架构
agent/ —— Go 设备代理:HTTP API、进程管理、度量采集
internal/
httpapi/ —— REST API 服务(端口 9100)
mediaserver/ —— 媒体服务管理(启动/停止/状态)
metrics/ —— CPU/NPU/内存/磁盘指标采集
modelstore/ —— AI 模型文件管理
procctl/ —— 进程控制
tasks/ —— 任务执行
src/ —— C++ 媒体分析引擎
plugins/ —— AI 分析插件(人脸检测/识别、人员检测/跟踪、工鞋检测等)
ai_scrfd_sliding/ —— 滑窗人脸检测
ai_face_recog/ —— 人脸识别
ai_yolo/ —— YOLO 目标检测
ai_shoe_det/ —— 劳保鞋检测
tracker/ —— ByteTrack 多目标跟踪
logic_gate/ —— 业务规则(人鞋关联、颜色判定)
alarm/ —— 告警上报
osd/ —— 画面叠加
publish/ —— 视频推流
6. AI 分析管线
| 管线 |
说明 |
| 人脸识别 |
RTSP 输入 → 预处理 → SCRFD 滑窗人脸检测 → MobileFaceNet 人脸识别 → OSD → HLS/RTSP 输出 |
| 劳保鞋检测 |
RTSP 输入 → YOLO 人员检测 → ByteTrack 跟踪 → 动态 ROI 鞋检测 → 人鞋关联 → 颜色判定 → 告警 |
| 全功能车间 |
人脸检测 + 人脸识别 + 人员检测 + 跟踪 + 劳保鞋合规 + OSD + 视频发布 + 告警上报 + 抓拍存证 |
三、系统总览
| 项目 |
管理后台 |
边缘节点 |
合计 |
| 语言 |
Go |
C++17 + Go + Python |
3 种 |
| 代码行数 |
30,175 行 |
79,749 行 |
109,924 行 |
| 文件数 |
140 个 |
300+ 个 |
440+ 个 |
| 运行平台 |
Windows |
Ubuntu ARM64 |
— |
| 数据库 |
SQLite |
— |
SQLite |