当前位置: 首页 > article >正文

RK3588平台上YOLOv8模型转换与CentOS 7.8 Docker镜像拉取超时问题解决指南

RK3588平台上YOLOv8模型转换与CentOS 7.8 Docker镜像拉取超时问题解决指南


一、RK3588平台上YOLOv8模型从PT转换为RKNN

背景介绍

YOLOv8的原生模型包含了后处理步骤,其中一些形状超出了RK3588的矩阵计算限制,因此需要对输出层进行一些裁剪。本文将详细介绍如何在RK3588平台上将YOLOv8模型从PyTorch格式(.pt)转换为Rockchip的RKNN格式,以便在RK3588设备上高效运行。

步骤一:从PT转换为ONNX

  1. 克隆Ultralytics YOLOv8仓库并拉取Docker镜像

    首先,你需要克隆Ultralytics的YOLOv8仓库,并拉取一个专门用于PT到ONNX转换的Docker镜像。

    docker pull kaylor/rk3588_pt2onnx
    git clone https://github.com/airockchip/ultralytics_yolov8.git
    cd ultralytics_yolov8
    git checkout 5b7ddd8f821c8f6edb389aa30cfbc88bd903867b
    
  2. 下载最新的模型文件

    从YOLOv8的GitHub仓库下载最新的模型文件,例如yolov8n.pt

    wget https://github.com/ultralytics/assets/releases/download/v8.1.0/yolov8n.pt
    
  3. 修改配置文件

    编辑./ultralytics/cfg/default.yaml文件,将模型路径从yolov8m-seg.pt替换为yolov8n.pt

    model: yolov8n.pt # (str, optional) path to model file, i.e. yolov8n.pt, yolov8n.yaml
    
  4. 执行PT到ONNX的转换

    在主机上运行Docker容器,并在容器内执行转换脚本。

    # 在主机上运行
    docker run -it -v ${PWD}:/root/ws kaylor/rk3588_pt2onnx bash
    
    # 在容器内运行
    cd /root/ws
    export PYTHONPATH=./ 
    python ./ultralytics/engine/exporter.py
    exit
    

步骤二:从ONNX转换为RKNN

  1. 克隆RK3588转换到RKNN的仓库并拉取Docker镜像

    接下来,你需要克隆一个专门用于ONNX到RKNN转换的仓库,并拉取相应的Docker镜像。

    cd ../
    docker pull kaylor/rk3588_onnx2rknn # 用于YOLOv8
    # docker pull kaylor/rk3588_onnx2rknn:beta # 用于YOLOv10(如果需要)
    git clone https://github.com/kaylorchen/rk3588-convert-to-rknn.git
    cp ultralytics_yolov8/yolov8n.onnx rk3588-convert-to-rknn
    cd rk3588-convert-to-rknn
    
  2. 执行ONNX到RKNN的转换

    在主机上运行Docker容器,并在容器内执行转换脚本。

    # 在主机上运行(根据YOLO版本选择合适的镜像)
    docker run -it -v ${PWD}:/root/ws kaylor/rk3588_onnx2rknn bash # 用于YOLOv8
    # docker run -it -v ${PWD}:/root/ws kaylor/rk3588_onnx2rknn:beta bash # 用于YOLOv10(如果需要)
    # docker run -it -v ${PWD}:/root/ws kaylor/rk3588_onnx2rknn:2.3.0 bash # 适用于所有YOLO版本(如果需要)
    
    # 在容器内运行
    cd /root/ws
    python convert.py yolov8n.onnx rk3588 i8 yolov8n.rknn
    exit
    

二、CentOS 7.8 上 Docker 镜像拉取超时问题解决指南

问题描述

在 CentOS 7.8 系统上安装并配置完 Docker 服务后,很多用户会遇到一个常见的问题:直接尝试从 Docker Hub 拉取镜像时,经常因为网络原因而导致超时,无法成功获取镜像。这个问题通常是由于 Docker 默认使用的是国外的镜像源,而国内的网络环境在访问这些源时可能会遇到访问速度慢或无法访问的情况。

解决思路

为了解决这个问题,用户通常需要修改 Docker 的镜像源,将其设置为国内的镜像源,以加快访问速度并避免网络问题。选择一个稳定且可靠的镜像源至关重要。

具体操作步骤

  1. 编辑 Docker 配置文件

    你需要编辑 Docker 的配置文件 daemon.json。这个文件通常位于 /etc/docker/ 目录下。如果该文件不存在,你可以手动创建一个。

    使用你喜欢的文本编辑器(如 vinano 等)打开或创建 daemon.json 文件,并添加以下内容:

    {
       "registry-mirrors": [
           "https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com",
           "https://docker.m.daocloud.io",
           "https://hub-mirror.c.163.com",
           "https://mirror.baidubce.com",
           "https://your_preferred_mirror",
           "https://dockerhub.icu",
           "https://docker.registry.cyou",
           "https://docker-cf.registry.cyou",
           "https://dockercf.jsdelivr.fyi",
           "https://docker.jsdelivr.fyi",
           "https://dockertest.jsdelivr.fyi",
           "https://mirror.aliyuncs.com",
           "https://dockerproxy.com",
           "https://mirror.baidubce.com",
           "https://docker.m.daocloud.io",
           "https://docker.nju.edu.cn",
           "https://docker.mirrors.sjtug.sjtu.edu.cn",
           "https://docker.mirrors.ustc.edu.cn",
           "https://mirror.iscas.ac.cn",
           "https://docker.rainbond.cc"
           ]
    }
    

    注意:由于加速器地址可能会随时间变化或失效,我无法在此直接提供一个固定的加速器地址。你可以从可信的第三方镜像源提供商(如阿里云、腾讯云、DaoCloud 等)获取最新的加速器地址。

  2. 重新加载 Docker 配置

    编辑完 daemon.json 文件后,你需要重新加载 Docker 的配置。这可以通过运行以下命令来完成:

    systemctl daemon-reload
    
  3. 重启 Docker 服务

    接下来,你需要重启 Docker 服务以使新的配置生效。运行以下命令:

    systemctl restart docker
    
  4. 拉取 Docker 镜像

    现在,你可以尝试再次拉取 Docker 镜像。运行以下命令:

    docker pull <镜像名称>:<标签>
    

    例如,要拉取官方的 Nginx 镜像,你可以运行:

    docker pull nginx:latest
    

    如果一切顺利,你应该能够成功拉取到镜像,而不会遇到超时问题。

总结

通过上述步骤,你可以成功地将YOLOv8模型从PyTorch格式转换为RKNN格式,并在RK3588设备上运行。同时,你也能够解决 CentOS 7.8 上 Docker 镜像拉取超时的问题。这两个过程分别涉及到了Docker的使用、模型的下载与配置、模型的格式转换以及Docker配置文件的修改等步骤。希望这篇博客能帮助你在RK3588平台上顺利部署YOLOv8模型,并解决Docker镜像拉取问题。如果你有任何问题或建议,请随时在评论区留言。


http://www.kler.cn/a/445285.html

相关文章:

  • 数智化转型是什么?
  • 部署开源大模型的硬件配置全面指南
  • 浅谈目前我开发的前端项目用到的设计模式
  • PC寄存器(Program Counter Register) jvm
  • 面试题整理9----谈谈对k8s的理解2
  • ubuntu,自动休眠后,程序自动暂停。如何破?
  • TDengine 新功能 从 CSV 批量创建子表
  • Ubuntu22.04上安装esp-idf
  • Scalable Io-NIO实践
  • 使用 DeepSpeed 微调 OPT 基础语言模型
  • 【新版】阿里云ACP大数据工程师模拟试题(含答案解析)
  • wepack的各个版本差异?
  • 生产环境kafka升级过程
  • RadiAnt DICOM - 基本主题 :从 PACS 服务器打开研究
  • 彻底理解如何优化接口性能
  • 【Python】Selenium模拟滚动鼠标,向下拖动下拉按钮,直至网页页面向下滑的方法
  • vue3+vite 引入动画组件库 Inspira UI
  • Python机器学习算法KNN、MLP、NB、LR助力油气钻井大数据提速参数优选及模型构建研究...
  • flask-admin+Flask-WTF 实现实现增删改查
  • HTMLCSS:酷炫的3D开关控件
  • 设计模式详解(十一):模板方法——Template Method
  • 数字化供应链:背景特点
  • <论文>初代GPT长什么样?
  • es-head安装使用以及常见问题
  • Spring框架(1)——IOC(控制权反转)的实现
  • 深度比较:OpenNI2 SDK与Orbbec SDK的功能、优势和选择指南