手把手教你制作自己的YOLOX目标检测docker部署环境

17 篇文章 0 订阅

YOLOX是2021年旷世所提出的目标检测方法,目前在学术界和工业界都应用的比较多。本篇主要是记录在Ubuntu系统中制作YOLOX目标检测docker部署环境的过程,以后可能还会用到。

paper:https://arxiv.org/abs/2107.08430

code:https://github.com/Megvii-BaseDetection/YOLOX


1、下载YOLOX源码

新建workspace路径,将YOLOX源码git到这个目录下面:

mkdir workspace
git clone https://github.com/Megvii-BaseDetection/YOLOX.git

2、编写Dockerfile

编写Dockerfile,也放在workspace目录下面。Dockerfile里面主要是安装了最新的pytorch以及YOLOX运行所需的一些依赖库,最后根据YOLOX目录下的setup.py文件来编译安装。

FROM pytorch/pytorch:latest
  
ADD . /

WORKDIR /YOLOX

RUN apt-get update && apt-get install -y build-essential libgl1-mesa-dev libglib2.0-dev
RUN pip3 install -U pip && pip3 install -r requirements.txt
RUN pip3 install -v -e .

WORKDIR /

如果需要安装其他版本的pytorch,也可以在以下链接中找到对应版本来替换。

Docker Hub[这里是图片001]https://hub.docker.com/r/pytorch/pytorch/tags3、创建镜像

创建docker镜像,名称为detector,标签为:v1.0,以方便使用和管理。在workspace目录下,执行如下命令:

docker build -t detector:v1.0 .

创建成功,提示如下:

Successfully built c1fcc8bf1647
Successfully tagged detector:v1.0

4、启动docker容器

-i:交互式操作;

-t:终端;

–gpus all:使用gpu;

/bin/bash:提供交互式的Shell。

docker run -it --name detector --gpus all detector:v1.0 /bin/bash

5、测试检测效果

下载官方提供的yolox-s模型,也放在workspace目录下面。

https://github.com/Megvii-BaseDetection/YOLOX/releases/download/0.1.1rc0/yolox_s.pth

使用官方的测试demo来验证模型在单张图像上的检测效果,如下:

python YOLOX/tools/demo.py image -n yolox-s -c /yolox_s.pth --path YOLOX/assets/dog.jpg --conf 0.25 --nms 0.45 --tsize 640 --save_result --device cpu

–device cpu:使用cpu计算;

–device gpu:使用gpu计算。需要注意的是,使用gpu计算的时候,在第一张图像上的计算时间会很长,这个是正常的。

命令行打印输出如下:

2022-03-11 10:05:40.699 | INFO     | __main__:main:259 - Args: Namespace(camid=0, ckpt='/yolox_s.pth', conf=0.25, demo='image', device='cpu', exp_file=None, experiment_name='yolox_s', fp16=False, fuse=False, legacy=False, name='yolox-s', nms=0.45, path='YOLOX/assets/dog.jpg', save_result=True, trt=False, tsize=640)
2022-03-11 10:05:41.001 | INFO     | __main__:main:269 - Model Summary: Params: 8.97M, Gflops: 26.81
2022-03-11 10:05:41.003 | INFO     | __main__:main:282 - loading checkpoint
2022-03-11 10:05:41.150 | INFO     | __main__:main:286 - loaded checkpoint done.
2022-03-11 10:05:41.256 | INFO     | __main__:inference:165 - Infer time: 0.0871s
2022-03-11 10:05:41.258 | INFO     | __main__:image_demo:202 - Saving detection result in ./YOLOX_outputs/yolox_s/vis_res/2022_03_11_10_05_41/dog.jpg

6、拷贝结果文件

可以将测试的检测结果从docker容器中拷贝出来:

docker cp detector:/YOLOX_outputs/yolox_s/vis_res/2022_03_11_10_05_41/dog.jpg /tmp

检测结果如下图所示:

7、docker容器的导出和导入

通过将容器导出,并在其他设备上导入之后,也可以很方便使用YOLOX模型。

# 导出docker容器
docker export -o /tmp/detector.tar detector

# 导入docker容器
docker import /tmp/detector.tar detector:v1.0

8、容器的停止、启动与进入

# 停止容器
docker stop detector

# 启动容器
docker start detector

# 进入容器
docker exec -it detector /bin/bash
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一个开源的容器化平台,用于快速构建、打包和发布应用程序。它可以将应用程序及其依赖项打包为一个独立的容器,并且可以在任何支持Docker环境中运行。Docker的主要优点是它的轻量级和可移植性,使得应用程序在不同的环境中具有一致的运行方式。 要部署Docker环境,首先需要安装Docker。在CentOS 7.5操作系统上,可以使用yum进行在线安装。使用以下命令查看可安装的Docker版本: ``` yum list docker ``` 然后,选择要安装的版本,并使用以下命令进行安装: ``` yum install docker ``` 安装完成后,可以使用以下命令启动Docker: ``` system start docker ``` 并设置开机自启动: ``` system enable docker ``` 可以使用以下命令检查已安装的Docker版本: ``` docker version ``` 此外,如果要部署其他应用程序或服务,可以使用Docker镜像。Docker镜像是一个轻量级、独立、可执行的软件包,它包含了运行应用程序所需的一切依赖项。可以从Docker Hub等镜像仓库下载现有的镜像,也可以通过Dockerfile自定义构建镜像。 在部署Docker镜像时,可以使用以下命令进行仓库管理: ``` docker login //登录 docker logout //登出 docker tag <镜像id> <镜像名>:<标签名> //设置标签 docker push <镜像名>:<标签名> //将本地镜像推送到仓库 ``` 通过以上步骤,您可以成功部署Docker环境并开始使用Docker进行应用程序的打包和发布。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值