YOLO5目标检测方案-基于米尔RK3576开发板

本文基于米尔MYD-LR3576开发板,详细记录了如何利用500万像素USB摄像头实现640×640分辨率的YOLO5s目标检测,并将结果实时输出至1080P屏幕的全流程。通过系统级的软硬件协同优化,最终将端到端延迟控制在40ms以内,实现了 20FPS的稳定实时检测性能。文章重点剖析了摄像头特性分析、显示通路选择、RGA硬件加速、RKNN NPU集成等关键技术环节,为嵌入式AI视觉系统的开发与调优提供了一套完整的思路与实践方案。

PART 01 系统架构与性能目标

1.1 硬件平台

  • 主控芯片:Rockchip RK3576(四核A72+四核A53,6TOPS NPU,RGA,GPU,VPU)

  • 摄像头:500万像素USB摄像头(支持MJPEG/YUYV格式)

  • 显示器:4K HDMI显示屏(通过Weston桌面环境显示)

  • 开发板:米尔MYD-LR3576

米尔基于RK3576核心板开发板

1.2 软件平台

使用米尔官方V2.0.0 SDK提供的buildroot镜像,内核版本为6.1.118。系统信息如下:

复制代码
root@myd-lr3576-buildroot:/# uname -a
Linux myd-lr3576-buildroot 6.1.118 #1 SMP Fri Sep 2602:34:15 UTC 2025 aarch64 GNU/Linux

1.3 性能目标

  • 实时性:完成从摄像头采集→NPU推理→屏幕显示的完整流程,耗时不超过摄像头一帧的时间。

  • 输入/输出:尽可能提高摄像头采集帧率,并在显示端支持更高的输出分辨率。

  • 功能:实现YOLO5s目标检测,并在视频画面中实时绘制检测框。

PART 02 数据处理流程与优化实践

摄像头数据需要经历哪些过程才能到显示端输出,参考下图

2.1 CPU处理方案及其瓶颈

如果把摄像头数据直接显示到屏幕上,先了解清楚它们输入输出关系。

摄像头输出可以用v4l2-ctl -D -d /dev/videoxx --list-formats-ext

Display输出可用用cat /sys/kernel/debug/dri/0/state查看

根据实时性来说,需要选择最高fps分辨率对应输出,这里选择640x480 20fps,那么它需要把YUYV格式替换成RGBA8888才能显示。

显示大小不超过屏幕最大分辨率3840x2160即可。

CPU处理是如下过程

若要将摄像头采集的YUYV格式数据直接显示到屏幕,需先转换为RGBA8888格式。在CPU上进行格式转换与缩放的性能如下(输入为640×480 YUYV):

可见,CPU在处理1080P分辨率时已接近能力上限,更高分辨率则无法满足实时性要求。

2.2 引入RGA进行硬件加速

RGA作为RK3576 2D处理芯片模块,它的作用是对图片做旋转,缩放,旋转,镜像以及格式转换。

根据手册信息,它能处理数据的性能是物理地址>DMA>虚拟地址。那么用RGA来替换CPU的格式转换和缩放。

RGA是一次进行转换和缩放,下面是对比CPU运算的对比图

使用RGA替代CPU进行格式转换与缩放后,性能对比如下:

RGA的引入带来了数量级的性能提升,尤其是DMA模式,大幅降低了处理延迟。

2.3 GPU直接显示方案

调试阶段常使用OpenCV的imshow显示图像,但其依赖CPU参与,无法满足实时性要求。系统实际采用DRM显示框架与Weston桌面环境,因此我们选用Wayland-client方案进行直接显示,实现GPU直显。

不同输入模式下的显示耗时对比:

2.4 NPU推理流程与耗时分析

通用模型,通过rknn-toolkit2转换成rknn后就可以通过RKNN API来调用和推导。

使用rknn_model_zoo yolo5模型进行转换后生成模型,yolov5s-640-640.rknn和coco80labels_list.txt,以及一些调用参考代码。

它的输入必须是640x640RGB格式。

rknn推理虚拟地址关键步骤如下:

实际测试后rknn_run这个阶段大概耗时26~31ms之间

rknnoutputsget获取数据后即可进行内部处理,检测出目标,坐标,信心指数,根据实际需求绘制在屏幕上,这一步可以多进程异步处理,不算在串行时间内,笔者测试大概会多花8ms左右。

因此总计一下摄像头实时采集NPU推理到显示整个过程耗时情况

结论 :NPU推理阶段(T2)仍是系统的主要耗时环节。但通过DMA+RGA+直接显示的优化组合,系统整体延迟大幅降低,且在高分辨率输出下仍能保持稳定的帧率。

2.5 多摄像头系统资源占用分析

  • 虚拟内存方案

1个摄像头

4个摄像头

  • Dma方案

1路摄像头输出

2路摄像头输入

PART 03总结

在嵌入式AI视觉系统中,NPU的算力是决定性能上限的关键因素。然而,要达到这一上限,必须构建高效的数据流水线。本文实践表明,通过RGA硬件加速、DMA零拷贝数据传输以及GPU直接显示的协同优化,能够彻底释放 RK3576平台的异构计算潜力,将端到端延迟控制在数十毫秒内,实现高清、实时的目标检测应用。这一优化思路同样适用于其他具备类似硬件加速单元的嵌入式AI平台。

相关推荐
虾壳云管家18 小时前
OpenClaw 2.6.6 从部署到技能使用一站式攻略
人工智能·windows·openclaw·openclaw一键部署教程·openclaw安装教程
某先森不吃鱼18 小时前
工程日志——离轴编码器矫正与磁场串扰解决
嵌入式硬件
小妖同学学AI18 小时前
云原生AI服务新范式:Jina Serve框架,让多模态大模型落地像搭积木一样简单
人工智能·云原生·jina
FreeGo~18 小时前
LLM系列:2.pytorch入门:7.深层神经网络第一篇
人工智能·深度学习·神经网络
志摩凛18 小时前
领导亲手打造的“技术屎山连环套”:Figma→React→Vue→MCP调用毒瘤UI库,半成品Design Token让我们生不如死|五一节前的噩梦
人工智能·程序员
zfh2005062818 小时前
【保姆级教程】Open Claw 2.6.4 本地部署步骤+常见问题解答
人工智能·open claw·小龙虾·open claw安装
俊哥V18 小时前
每日 AI 研究简报 · 2026-05-01
人工智能·ai
irpywp18 小时前
苦于AI生成的网页千篇一律且粗糙?design-md-chrome :一款网页样式提取插件 ,将任意网站的视觉规范转化为大模型可读的代码指令!
前端·人工智能·chrome·开源·github
victory043118 小时前
论文规划框架和实验设计2
人工智能
聚铭网络18 小时前
【一周安全资讯0425】网安标委技术文件《人工智能应用伦理安全指引》1.0版公开征求意见;Vercel遭第三方OAuth劫持入侵
人工智能·安全