# RK3588-based Embedded AI Vision Edge Device **Repository Path**: pomimi/monitoring-system ## Basic Information - **Project Name**: RK3588-based Embedded AI Vision Edge Device - **Description**: Qt, RKNN Zoo, MPP, RGA, GLES, GStreamer - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-11 - **Last Updated**: 2026-04-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RK3588-based Embedded AI Vision Edge Device #### 介绍 本项目是一个基于瑞芯微 RK3588 平台的嵌入式 AI 视觉边缘计算设备软件框架。项目深度整合了 Qt、RKNN Zoo、MPP、RGA、GLES 和 GStreamer 等核心技术,旨在为边缘侧提供高性能的机器视觉、视频流处理与硬件级深度学习推理能力。系统具备极高的稳定性和数据吞吐能力,适用于智能安防、工业缺陷检测、自动化设备等严苛的高性能边缘计算场景。 #### 软件架构 本项目采用多进程混合架构与多级守护机制,以保障系统的高可用性及跨平台部署的灵活性: * **主控与展示层 (C++ / Qt)**:使用 Qt 构建图形用户界面与主控逻辑,结合 GStreamer 处理复杂视频流的获取与路由,并利用 GLES 进行高效渲染。MPP 与 RGA 负责底层的硬件加速视频编解码与图像格式转换。 * **AI 推理与数据层 (Python)**:独立的 Python 进程(如 `ocr_server.py`)负责处理 OCR 等 AI 视觉任务,通过集成 RKNN Zoo 实现 NPU 硬件加速推理。同时,该进程内置 SQLite 数据库用于业务数据持久化,有效规避了 C++ 环境下的交叉编译复杂性。项目内配套提供了 `view_sqlite.py` 辅助工具脚本,用于快捷的数据库审查与维护。 * **进程间通信 (IPC)**:C++ 主进程与 Python 推理进程之间通过 POSIX 共享内存 (POSIX Shared Memory) 进行高吞吐量、低延迟的图像帧与数据交互。 * **高可用守护机制 (Watchdog)**:采用三级看门狗策略保障设备全天候无休稳定运行: 1. **应用级**:Qt 侧通过 `QTimer` 监控 Python 子进程心跳,防范 OCR/NPU 任务挂死。 2. **服务级**:Systemd (`WatchdogSec`) 监控 Qt 主进程,防范 UI 或 GStreamer 管道死锁。 3. **系统级**:Systemd 全局配置 (`RuntimeWatchdogSec`) 接管硬件看门狗 (`/dev/watchdog`),防范底层内核级崩溃 (Kernel Panic)。 #### 安装教程 1. **环境准备**:准备 RK3588 交叉编译工具链(如 `aarch64-linux-gnu-`)及对应的目标板 SDK(包含 MPP、RGA 等库文件)。 2. **编译主程序**:在宿主机配置 Qt 交叉编译环境,执行编译构建生成 C++ 主程序可执行文件。 3. **部署 Python 环境**:在 RK3588 目标板上配置 Python 3 运行环境,并安装推理相关依赖(包含 `rknn-toolkit-lite2` 等)。 4. **系统服务配置**:将编译产物拷贝至目标板,配置对应的 Systemd Service 文件以接管应用自启,并启用系统的看门狗守护机制。 #### 使用说明 1. **启动系统**:通过 Systemd 启动应用服务(例如 `systemctl start `),系统将自动拉起 Qt 主进程及关联的 Python 推理进程。 2. **运行监控**:主程序与推理进程启动后,将自动建立共享内存通信。运维人员可通过系统日志(如 `journalctl -u -f`)实时查看各个模块的运行状态与看门狗的“喂狗”情况。 3. **数据管理与查看**:系统的 AI 识别结果与关键日志数据安全存储于本地 SQLite 数据库中。您可以直接在目标板终端运行数据审查工具 `python3 view_sqlite.py`,从而快速进行离线数据的验证、查询与导出。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request