|
米联客自研异构开发板 YOLOv5s 实时目标识别部署全流程 前言 在嵌入式 AI 应用中,目标检测是最核心的视觉任务之一。本文基于 RK3576 开发板,讲解如何离线部署 YOLOv5s-Relu 模型并实现实时推理的完整方案,包含文件部署、依赖环境配置、模型运行全流程,帮助开发者在端侧快速搭建 AI 视觉识别应用。 1 开发环境前置条件 本文需要开发板已完成基础系统烧录,满足以下条件: 开发板运行 Linux 桌面系统,具备 Python 3.11 环境 FPGA bit 已正确烧录 USB 摄像头排线已连接 已拷贝 rock 附件文件夹到开发板(包含 yolo 和 whls 两个子目录) 2 安装 Python 依赖 cd /home/rock/whls # 逐个解压安装(可一次性粘贴执行) unzip -o numpy-2.2.6-cp311-*.whl -d /usr/local/lib/python3.11/dist-packages/ unzip -o ruamel_yaml_clib-0.2.15-cp311-*.whl -d /usr/local/lib/python3.11/dist-packages/ unzip -o ruamel_yaml-0.19.1-*.whl -d /usr/local/lib/python3.11/dist-packages/ unzip -o psutil-7.2.2-*.whl -d /usr/local/lib/python3.11/dist-packages/ unzip -o rknn_toolkit_lite2-2.3.0-cp311-*.whl -d /usr/local/lib/python3.11/dist-packages/ 3 安装 OpenCV 完整版 开发板预装的通常是 OpenCV headless 版本(无 GUI 显示功能),必须替换为完整版才能支持摄像头画面实时显示: # 删除旧的 headless 版 rm -rf /usr/local/lib/python3.11/dist-packages/cv2 rm -rf /usr/local/lib/python3.11/dist-packages/opencv_python_headless* # 安装完整版 unzip -o opencv_python-5.0.0.93-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl \ -d /usr/local/lib/python3.11/dist-packages/ 4 运行程序 cd /home/rock/yolo export DISPLAY=:0 python3 rk3576_yolov5s_relu.py 5 程序分析 5.1 程序整体架构 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml17984/wps3.png 5.2 常量与配置 DEVICE = '/dev/video22' # MIPI 摄像头设备节点 WIDTH = 1920 # 摄像头采集宽度 HEIGHT = 1080 # 摄像头采集高度 FPS = 30 # 目标帧率 MODEL_PATH = 'yolov5s_relu.rknn' # RKNN 格式模型文件 IMG_SIZE = 640 # 模型输入尺寸(640×640) OBJ_THRESH = 0.35 # 目标置信度阈值 NMS_THRESH = 0.45 # NMS(非极大值抑制)阈值 SAVE_EVERY = 30 # 每30帧保存一次检测结果图 SAVE_PATH = '/home/rock/yolo/det.jpg' # 保存路径 5.3 核心函数 letterbox — 等比缩放+填充 xywh2xyxy — 坐标格式转换 process — 特征图解码(核心算法) filter_boxes — 阈值过滤 nms_boxes — 非极大值抑制 postprocess_yolov5s — 后处理总调度 draw_results — 检测结果绘制 FPSCounter — 帧率计算 center_window — 窗口管理
|