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

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手把手教你制作自己的YOLOX目标检测docker部署环境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

测试结果如下图所示:

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

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)
青葱年少的头像青葱年少普通用户
上一篇 2022年3月15日 下午10:02
下一篇 2022年3月15日 下午10:17

相关推荐