154 lines
4.7 KiB
Markdown
Raw Normal View History

2026-06-26 17:55:15 +08:00
# 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%
- 网络带宽约4Mbps1080P 30fps H.264
- 内存占用:<512MB
## 五、优化方向
### 5.1 延迟优化
- 关闭不必要的网络缓冲启用RTSP低延迟模式
- 全程使用DMA内存避免内存拷贝
- 优化编码参数降低GOP大小
- 优先使用UDP传输协议
- ZeroMQ启用TCP_NODELAY选项减少小包延迟
### 5.2 稳定性优化
- 实现ZeroMQ自动重连机制
- 增加异常处理逻辑,支持相机断连、网络异常自动恢复
- 完善资源管理,避免内存泄漏
- 建立完善的日志系统,便于问题定位
---