safesight-control/docs/project_info.md

6.7 KiB
Raw Permalink Blame History

工业安全生产视觉监测平台——项目信息

摘要

本平台由管理后台边缘计算节点两部分组成。管理后台基于 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.3HTTP 路由)
前端框架 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 buildAgent
交叉编译 Ubuntu 22.04 ARM64 工具链aarch64-linux-gnu-g++
IDE/编辑器 VS Code
版本控制 Git
开发/运行平台 Orange Pi 5 PlusRK3588、Ubuntu 22.04

2. 软件运行支撑环境/支持软件

类别 详情
操作系统 Ubuntu 22.04ARM64
硬件平台 瑞芯微 RK35888 核 CPU + 6 TOPS NPU + VPU + RGA
AI 推理框架 RKNN Toolkit 2Rockchip 官方 NPU 推理框架)
硬件加速 MPPMedia Process Platform硬编解码、RGA图像缩放/颜色转换)
视频协议 RTSP 输入、RTSP/HLS 输出
流媒体 FFmpeg软件编解码备选
存储 MinIO对象存储抓拍与录像片段
编译依赖 CMake、GCC/G++ARM64 交叉编译或本地编译)
进程管理 systemdmedia-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