在linux中使用Docker部署yolov8(cpu版)

一、安装docker

安装docker

sudo apt install docker

登录docker

docker login

二、下载镜像

下载 Conda 镜像
使用 Docker 搜索 miniconda3:

docker search miniconda3

查看结果:

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

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

docker pull conda/miniconda3

三、创建容器并运行

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

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

四、 配置 Conda 环境

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

conda create -n yolov8 python=3.9

创建完成检查一下:

conda env list

检查结果:

(base) root@7a34289c9fea:conda env list
conda environments:
#
base                  *  /usr/local
yolov8                   /usr/local/envs/yolov8

然后进入 base 环境

source activate

激活 Conda 环境
创建 yolov8 运行:

conda activate yolov8

此时进入 yolov8 成功:

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

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

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

进入官网,在里面找合适的版本,文中使用的是 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 模型

下载 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

遇到报错了

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 模型对图片进行目标识别
识别结果如下:
在这里插入图片描述
识别结果保存,保存形式为图片
Results saved to runs/detect/predict

七、下载测试结果

我们使用了wsl,我们尝试把识别结果下载下来。
退出容器

exit

如果想再次进入容器,先查看docker id,再用start和attach指令进入

docker ps -a 
docker start 7a34289c9fea
docker attach 7a34289c9fea

把容器内文件复制到宿主机

docker cp 7a34289c9fea:/usr/local/envs/yolov8/lib/python3.9/site-packages/ultralytics/runs/detect/predict/bus.jpg /home

下载图片到本地
如图,在宿主机 home 目录下找到 bus.jpg,选择下载即可在本机桌面查看图片。
使用eog 查看

eog bus.jpg

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@M_J_Y@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值