首页 > 系统相关 >YOLOv8 测试 4:在 Linux 中使用 Docker 部署 YOLOv8 模型,并使用简单的命令行脚本测试模型

YOLOv8 测试 4:在 Linux 中使用 Docker 部署 YOLOv8 模型,并使用简单的命令行脚本测试模型

时间:2024-04-09 13:33:39浏览次数:31  
标签:模型 ultralytics yolov8 conda 测试 Docker YOLOv8 下载

一、前言

记录时间 [2024-4-9]

系列文章简摘:

YOLOv8 模型的简单测试,Windows 环境下安装部署(Python+PyTorch+Conda+cpu+CLI)
YOLOv8 模型的简单测试 2,PyCharm 集成开发环境安装使用(Windows+Python+PyTorch+Conda+cpu)
Win11中安装虚拟化软件VMware,以及Linux虚拟机的详细安装配置
Docker 学习笔记(二):在 Linux 中部署 Docker(Centos7 下安装 docker、环境配置,以及镜像简单使用)
Docker 学习笔记(三):Centos7 中 Docker 使用,镜像、容器,以及操作等常用命令小结


本文主要讲述如何在 Linux 中使用 Docker 部署 YOLOv8 模型,并使用简单的命令行脚本测试模型

准备工作:


二、实现思路

  • 准备 Linux 服务器/虚拟机,在 Centos7 中部署 Docker
  • 参考 Windows 下,我们安装了 Conda 环境,那么在 Docker 中也部署 Conda 环境
  • 下载 YOLOv8 模型
  • 进行简单的命令行脚本测试

整理完思路是不是发现变简单啦?动手操作一下吧。


三、部署 Docker

在 Centos7 中部署 Docker

  1. 准备 Linux 服务器/虚拟机,虚拟机安装详细步骤,参考这篇文章
  2. 在 Centos7 中部署 Docker,参考这篇文章
  3. 了解 Docker 的常用命令和简单使用,参考这篇文章

查看下 Docker 版本,检查是否安装成功

docker version

四、部署 Conda

在 Docker 中部署 Conda 环境

1. 下载 Conda 镜像

使用 Docker 搜索 miniconda3

docker search miniconda3

查看结果:

[root@localhost ~]# docker search miniconda3
NAME                                          DESCRIPTION                                      STARS     OFFICIAL
datajoint/miniconda3                          A minimal base docker image with conda.          2         
continuumio/miniconda3                        Powerful and flexible package manager            475       
conda/miniconda3                              Ready to use, debian-based, miniconda3 docke…   53

我们选择 conda/miniconda3镜像下载:

docker pull conda/miniconda3

2. 创建容器并运行

-it是交互式方式,运行命令后,我们能直接进入 yolopy02 容器

docker run -it --name yolopy02 conda/miniconda3 /bin/bash

3. 配置 Conda 环境

进入 yolopy02 容器后,创建虚拟环境:

conda create -n yolov8 python=3.9
# Proceed ([y]/n)? y

创建完成检查一下:

conda env list

检查结果:

root@5267608bda3f:/# conda env list
# conda environments:
#
base                  *  /usr/local
yolov8                   /usr/local/envs/yolov8

然后进入 base 环境

source activate

4. 激活 Conda 环境

创建 yolov8 运行:

conda activate yolov8

此时进入 yolov8 成功:

(base) root@5267608bda3f:/# conda activate yolov8
(yolov8) root@5267608bda3f:/# 

5. 配置清华源镜像

升级 pip 到最新的版本 (>=10.0.0) 后进行配置:

想了解更多,点击这里

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

6. 安装PyTorch

进入官网,在里面找合适的版本,文中使用的是 Windows 下的 CPU only 版本,没有特殊要求的话,直接复制安装即可。

注意:命令中的斜杠\是在一条命令没写完但是要进行换行情况下使用,如果命令写在同一行就不需要斜杠。

pip install torch==1.13.1+cpu torchvision==0.14.1+cpu torchaudio==0.13.1 \
--extra-index-url https://download.pytorch.org/whl/cpu

五、部署 YOLOv8 模型

此处使用 pip 方式,更多方式请参考YOLOv8 官方文档

1. 下载 YOLOv8 模型

检查下 Python 环境是否正确,我们下载的是 3.9 版本

python --version

下载 YOLOv8 模型

pip install ultralytics

查看下载信息可知,ultralytics下载在 /usr/local/envs/yolov8/lib/python3.9/site-packages目录中,进入该目录。

cd /usr/local/envs/yolov8/lib/python3.9/site-packages/ultralytics

2. 重置 YOLO

如果之前有其他项目使用过 YOLO,可能会导致 YOLOv8 训练时生成的 runs 文件不在项目根目录中而在其他项目路径中的问题。

解决办法是重置一下:

yolo settings reset

呜呜呜,遇到报错了

ImportError: libGL.so.1: cannot open shared object file: No such file or directory

原因分析:所用的 Docker 镜像中,Opencv 所需依赖 libGL.so.1 缺失

解决一下吧,更新下 opencv-python 依赖

pip uninstall opencv-python -y
pip install opencv-python-headless -i https://pypi.tuna.tsinghua.edu.cn/simple

再试试重置,成功啦!


六、命令行脚本测试

好啦,进入测试环节。

参考参考YOLOv8 官方文档,用命令行脚本(CLI)测试一下:

yolo predict model = yolov8n.pt source=assets/bus.jpg
  • bus.jpg 是模型自带的测试图片,存放在 ultralytics/assets/ 目录下
  • yolov8n.pt 模型对图片进行目标识别

识别结果如下:

# 第一次使用 yolov8n.pt 需要下载,它会自动从官网下载
Downloading https://github.com/ultralytics/assets/releases/download/v8.1.0/yolov8n.pt to 'yolov8n.pt'...

# 下载完成后,对图片进行目标识别
# 识别结果:图片中有 4 persons, 1 bus, 1 stop sign
image 1/1 /usr/local/envs/yolov8/lib/python3.9/site-packages/ultralytics/assets/bus.jpg: 640x480 4 persons, 1 bus, 1 stop sign, 302.0ms
Speed: 12.0ms preprocess, 302.0ms inference, 231.8ms postprocess per image at shape (1, 3, 640, 480)

# 识别结果保存,保存形式为图片
Results saved to runs/detect/predict

标签:模型,ultralytics,yolov8,conda,测试,Docker,YOLOv8,下载
From: https://blog.csdn.net/Sareur_1879/article/details/137546702

相关文章

  • Dify开源大语言模型(LLM) 应用开发平台如何使用Docker部署与远程访问
    文章目录1.Docker部署Dify2.本地访问Dify3.Ubuntu安装Cpolar4.配置公网地址5.远程访问6.固定Cpolar公网地址7.固定地址访问本文主要介绍如何在LinuxUbuntu系统以Docker的方式快速部署Dify,并结合cpolar内网穿透工具实现公网远程访问本地Dify!Dify是一款开......
  • 最新语言大模型综述 Large Language Models A Survey
    文章目录摘要I.引言II.大型语言模型A.早期预训练神经语言模型B.大型语言模型家族C.其他代表性LLMsIII.LLM是如何构建的A.主要LLM架构B.数据清洗C.分词D.位置编码E.模型预训练F.微调和指令微调G.对齐H.解码策略I.成本效益的训练/推理/适应/压缩IV.LLM如......
  • 肖sir__ 接口测试面试题(12.2)
    1.postman接口测试,它有一个功能可以设置参数化,你有用过吗1、创建数据文件,支持数据格式文件分别为csv和json、txt等,这里我们以创建txt文档为例2、请求中对应位置替换参数变量:请求参数中用{{参数名}}替换,代码中通过:data.参数名来进行替换,注意这里的变量名要和txt文档中的变量名一......
  • “最新趋势:R语言lavaan结构方程模型(SEM)的实践应用与技巧”
    结构方程模型(SructuralEquationModeling,SEM)是分析系统内变量间的相互关系的利器,可通过图形化方式清晰展示系统中多变量因果关系网,具有强大的数据分析功能和广泛的适用性,是近年来生态、进化、环境、地学、医学、社会、经济等众多领域应用十分广泛的统计方法。在R语言结构方程程......
  • 2024年第 6 期《Python 测试平台开发》进阶课程(4月23号开学)
    2024年第6期《Python测试平台开发》进阶课程主讲老师:上海-悠悠上课方式:微信群视频在线教学,方便交流本期上课时间:4月23号(周二、四晚上21:00-22:30)报名费:报名费3800一人(之前学过《python接口+测试开发》课程的同学可优惠!)联系微信/QQ:283340479课程环境:1.pycharm+python3.......
  • Web测试和APP测试的侧重点和区别
    1、Web测试的重点是UI、功能、性能、兼容、安全、资源链接2、APP测试的重点是安装卸载、资源占用、软件升级和用户数据保存、按钮功能、机器按键、注册登录和展示内容限制,打开和退出3、二者区别兼容性不同:Web考虑不同浏览器和分辨率;APP考虑不同机型和和版本......
  • SpringBoot——测试
    SpringBoot测试源码在test-springboot测试无非就是设定预期值与真实值比较,相同则测试通过,不同则测试失败Ctrl+鼠标左键看源码,再按ctrl:f12查看方法0、环境<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://ww......
  • 开源模型应用落地-qwen1.5-7b-chat与sglang实现推理加速的正确姿势(二)
    一、前言  经过开源模型应用落地-qwen1.5-7b-chat与sglang实现推理加速的正确姿势(一)的实践,相信大家已经成功地运行起一个性能良好的sglangAPI服务。现在,在充裕的服务器资源配置下,接下来可以继续进行一些优化工作。二、术语2.1.sglang  SGLangisastructuredge......
  • 强!推荐一款API 接口自动化测试平台!
    在项目开发,迭代交付过程中开发人员,测试人员需要针对系统微服务API做调试,回归测试,性能测试。自动化测试,一个好的平台本质上需要解决API测试的5大基本问题。1.支持不同的项目,角色,技术人员多人协作2.支持定义多个不同的测试环境3.支持定义各种被测系统,API,功能,性能用例4.支持功能......
  • 面试必问!鸿蒙开发中的FA模型和Stage模型是什么?他们分别有什么区别?
    鸿蒙OS(HarmonyOS)是面向全场景的分布式操作系统,它通过创新的应用模型,为开发者提供了强大的应用开发框架。在HarmonyOS的发展过程中,FA模型(FeatureAbility)和Stage模型是两种重要的应用模型。今天来跟大家聊一聊,鸿蒙开发中的FA模型和Stage模型。这个问题是鸿蒙应用开发面试......