# 工业安全生产视觉监测平台——项目信息 ## 摘要 本平台由**管理后台**和**边缘计算节点**两部分组成。管理后台基于 **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 |