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

news/2024/12/18 18:25:04/

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


YOLOv8PTRKNN_6">一、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.ppmy.cn/news/1556177.html

相关文章

SpringCloud--SpringCloudAlibaba 对应的版本选择

SpringCloud--SpringCloudAlibaba 对应的版本选择 1、进入官网查看 输入Spring Cloud Alibaba官网_基于Springboot的微服务教程-阿里云 网址&#xff0c;选择文档->点击版本&#xff08;2023.x&#xff09; ​ 2、选择版本发布说明&#xff0c;可以看到Spring Cloud Ali…

禁用硬件合成 (Hardware Composer, HWC)

要禁用硬件合成 (Hardware Composer, HWC)&#xff0c;通常需要根据具体的设备平台和系统环境选择适合的方法。以下是通用的解决方案&#xff1a; 1. 修改系统属性 在 Android 系统中&#xff0c;可以通过设置系统属性来禁用 HWC 合成&#xff1a; a. 使用 setprop 命令临时禁…

3.2.1.2 汇编版 原子操作 CAS

基本原理说明 在 x86 和 ARM 架构上&#xff0c;原子操作通常利用硬件提供的原子指令来实现&#xff0c;比如 LOCK 前缀&#xff08;x86&#xff09;或 LDREX/STREX&#xff08;ARM&#xff09;。以下是一些关键的原子操作&#xff08;例如原子递增和比较交换&#xff09;的汇…

云计算HCIP-OpenStack03

书接上回&#xff1a; 云计算HCIP-OpenStack02-CSDN博客 10.KeyStone keystone-Openstack&#xff0c;IAM服务&#xff08;统一身份认证&#xff09;-云服务 建议先去了解Hadoop&#xff08;大数据生态系统&#xff09;中的kerberos&#xff08;LDAPkerberos的鉴权机制&#xf…

YOLOv11改进,YOLOv11添加DLKA-Attention可变形大核注意力,WACV2024 ,二次创新C3k2结构

摘要 作者引入了一种称为可变形大核注意力 (D-LKA Attention) 的新方法来增强医学图像分割。这种方法使用大型卷积内核有效地捕获体积上下文,避免了过多的计算需求。D-LKA Attention 还受益于可变形卷积,以适应不同的数据模式。 理论介绍 大核卷积(Large Kernel Convolu…

微积分复习笔记 Calculus Volume 2 - 4.2 Direction Fields and Numerical Methods

4.2 Direction Fields and Numerical Methods - Calculus Volume 2 | OpenStax

【机器学习】在向量的流光中,揽数理星河为衣,以线性代数为钥,轻启机器学习黎明的瑰丽诗章

文章目录 线性代数入门&#xff1a;机器学习零基础小白指南前言一、向量&#xff1a;数据的基本单元1.1 什么是向量&#xff1f;1.1.1 举个例子&#xff1a; 1.2 向量的表示与维度1.2.1 向量的维度1.2.2 向量的表示方法 1.3 向量的基本运算1.3.1 向量加法1.3.2 向量的数乘1.3.3…

Apache Commons Utils 类库使用

Apache Commons Utils 是一组开源的 Java 工具类库&#xff0c;提供了许多在开发中常用且实用的功能&#xff0c;涵盖了字符串处理、集合操作、日期时间处理、文件操作等多个方面。下面是对 Apache Commons Utils 中一些主要工具类的详细介绍和使用示例。 1. Commons Lang (or…