# RK3588双板视觉系统技术方案 ## 版本信息 | 版本 | 日期 | 变更说明 | |------|------|----------| | V1.0 | 2026-05-14 | 初始方案定稿 | ## 一、项目概述 ### 1.1 需求背景 基于两块瑞芯微RK3588开发板构建分布式视觉系统,实现第三方平面相机图像采集、算法检测、实时视频传输与远程控制功能。系统需充分利用RK3588硬件加速能力,满足低延迟、高稳定性、低CPU占用的工业级要求。 ### 1.2 核心功能 - **板一(采集处理端)**:通过第三方相机SDK采集图像,运行目标检测算法,将处理后的图像进行硬件编码并推流 - **板二(显示控制端)**:拉取板一的视频流并硬件解码显示,支持远程控制板一的检测启停 - **双向通信**:控制指令和检测结果通过轻量可靠协议传输,保证不丢包、低延迟 ### 1.3 硬件环境 - 核心板:Firefly RK3588(两块) - 相机:第三方平面相机(支持USB/MIPI/GigE接口) - 网络:千兆局域网(直连或交换机) - 显示:HDMI显示器(板二) ## 二、整体架构设计 ### 2.1 系统总架构 ```mermaid flowchart LR subgraph 板一[板一(采集处理端)] A[相机SDK] --> B[算法处理] B --> C[FFMedia RGA格式转换] C --> D[FFMedia H.264硬件编码] E[ZeroMQ服务端] end subgraph 板二[板二(显示控制端)] F[控制界面] --> G[ZeroMQ客户端] H[FFMedia RTSP拉流解码] --> I[FFMedia DRM/X11显示] end D -- RTSP视频流 --> H G -- ZeroMQ控制/结果 --> E ``` ### 2.2 数据流设计 #### 2.2.1 图像数据流(单向) ```mermaid flowchart LR subgraph 板一[板一(采集处理端)] direction TD A1[相机SDK采集] B1[算法检测] C1[绘制检测框] D1[RGA转NV12格式] E1[FFMedia内存输入] F1[MPP硬件编码H.264] G1[RTSP推流(板一)] end subgraph 板二[板二(显示控制端)] direction TD H1[RTSP拉流(板二)] I1[MPP硬件解码H.264] J1[RGA适配显示分辨率] K1[DRM/X11硬件显示] end A1 --> B1 B1 --> C1 C1 --> D1 D1 --> E1 E1 --> F1 F1 --> G1 G1 --> H1 H1 --> I1 I1 --> J1 J1 --> K1 ``` #### 2.2.2 控制指令流(双向) ```mermaid flowchart LR A2[板二控制界面点击] B2[ZeroMQ REQ发送指令] C2[板一ZeroMQ REP接收] D2[执行启停操作] E2[返回执行结果] F2[板二更新界面状态] A2 --> B2 B2 --> C2 C2 --> D2 D2 --> E2 E2 --> F2 ``` #### 2.2.3 检测结果流(单向) ```mermaid flowchart LR A3[板一算法输出检测结果] B3[Protobuf结构化序列化] C3[ZeroMQ PUB发布结果] D3[板二ZeroMQ SUB接收结果] E3[界面叠加显示检测框] A3 --> B3 B3 --> C3 C3 --> D3 D3 --> E3 ``` ## 三、技术选型 ### 3.1 核心技术栈 | 功能模块 | 技术方案 | 选型理由 | |----------|----------|----------| | 视频编解码 | FFMedia + RKMPP | 瑞芯微官方封装,原生支持硬件编解码,零拷贝,低延迟 | | 视频传输 | FFMedia RTSP | 内置RTSP服务器/客户端,无需额外开发,支持UDP低延迟模式 | | 控制与结果传输 | ZeroMQ C++ | 轻量高性能,原生支持REQ-REP/PUB-SUB模式,ARM平台占用极低,无第三方依赖 | | 数据序列化 | Google Protobuf | 结构化数据体积小,C++支持好,跨平台 | | 图像预处理 | FFMedia RGA | 硬件加速缩放、裁剪、格式转换,CPU占用极低 | | 显示 | FFMedia DRM/X11 | 硬件加速渲染,零拷贝显示,延迟最低 | ## 四、性能指标 ### 4.1 端到端延迟(1080P 30fps) | 环节 | 延迟范围(ms) | |------|----------------| | 相机采集 | 8~15 | | 算法处理 | 10~40(取决于模型复杂度) | | RGA格式转换 | 2~5 | | MPP硬件编码 | 5~8 | | 网络传输 | 3~10 | | RTSP解封装 | 10~20(低延迟模式) | | MPP硬件解码 | 4~7 | | 显示输出 | 1~3 | | **总延迟** | **60~120(含算法处理)** | ### 4.2 资源占用 - 板一CPU占用:<15%(不含算法) - 板二CPU占用:<10% - 网络带宽:约4Mbps(1080P 30fps H.264) - 内存占用:<512MB ## 五、优化方向 ### 5.1 延迟优化 - 关闭不必要的网络缓冲,启用RTSP低延迟模式 - 全程使用DMA内存,避免内存拷贝 - 优化编码参数,降低GOP大小 - 优先使用UDP传输协议 - ZeroMQ启用TCP_NODELAY选项,减少小包延迟 ### 5.2 稳定性优化 - 实现ZeroMQ自动重连机制 - 增加异常处理逻辑,支持相机断连、网络异常自动恢复 - 完善资源管理,避免内存泄漏 - 建立完善的日志系统,便于问题定位 ---