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