香橙派rk3588的rknn多线程推理逐帧检测5路1080P@30
演示视频
香橙派rk3588的rknn多线程推理逐帧检测5路1080P@30_哔哩哔哩_bilibili
一、应用场景与功能架构
核心场景:
- 输入:拉取 RTSP 流
- 处理:多线程推理逐帧检测
- 输出:RTSP 流服务
功能模块拆解:
- 拉流 RTSP
- 工具:FFmpeg
- 配置:RTSP over TCP(提升传输稳定性)
- 目标:解封装264 码流
- 解码
- 实现:MPP 解码例程
- 输出:NV12 格式图像
- 预处理
- 目标:减少 CPU 占用,提升帧率
- 工具:RGA(替代 OpenCV)
- 关键处理:
- Letterbox 方式:宽高等比缩放,黑边填充,图像居中(需位移填充与坐标处理)
- RGA 注意事项:限定 RGA3 核、使用专用内存分配器(避免 4G 内存报错、图像抖动)
- 推理
- 模式:多线程(每个 NPU 核独立线程,轮流输入图像)
- 模型:例程内置 YOLOv5s(未修改,便于性能对比)
- 后处理
- 功能:NMS 过滤、画框、打标签
- 实现细节:
- 画框:CPU 直接在 NV12 图像操作(跳过 NV12→RGB 转换),实测 CPU 耗时 3.39ms vs RGA 耗时 7.8ms,优先选择 CPU
- 打标签:OpenCV 生成 RGB 文字图像,转换为 NV12 后 CPU 填充(轻量级操作,无需 RGA)
- 画面拼接
- 工具:RGA2(因 RGA3 高负载)
- 配置:使用 4G 内存分配器(满足 RGA2 内存需求)
- 编码
- 实现:MPP 编码例程
- 输入 / 输出:NV12 图像→H.264 码流
- RTSP 流服务
- 工具:开源项目rtsp_demo
- 功能:封装264 为 RTSP 流,支持外部拉流
二、测试环境与数据
- 测试视频参数
- 分辨率:1080P
- 帧率:30 FPS
- 码率:2554 kbps
- 播放与验证
- 工具:PC 端 VLC 拉取 RTSP 流
- 资源占用率(峰值)
|
资源类型 |
应用程序 |
系统总计 |
|
CPU |
127%(满载 800%) |
163.5% |
|
内存(Mem) |
7%(555 MB) |
4.01 GB |
|
NPU |
Core0:75% / Core1:79% / Core2:77% |
— |
|
RGA |
RGA3 Core0:38% / Core1:16% / RGA2:9% |
— |
|
温度 |
59℃ |
— |
三、关键优化点总结
- 预处理与后处理:
- 优先使用 RGA 硬件加速(除轻量级 CPU 操作)。
- Letterbox 工艺结合内存分配策略,避免 RGA 性能瓶颈。
- 多线程推理:
- 充分利用 NPU 多核特性,线程与核心绑定提升并行效率。
- 资源分配:
- 分离 RGA2 与 RGA3 负载,搭配专用内存分配器优化 4G 内存管理。


浙公网安备 33010602011771号