yolov5制作docker镜像并在容器中使用

说明:本教程为将yolov5制作为docker镜像,通过容器实现yolov5的调用。

一、建立包含yolov5所需库的dockerfile,基于普通深度学习dockerfile修改,具体dockerfile文件内容如下:

# 继承PyTorch的cuda镜像
FROM pytorch/pytorch:1.11.0-cuda11.3-cudnn8-devel

LABEL maintainer = "[email protected]"
LABEL version = "0.2"
LABEL description = "prepare deep learning environment"

# 指定docker镜像中,默认的工作路径是/PD
WORKDIR /home/lwf/PD/yolov5

COPY ./yolov5/ /home/lwf/PD/yolov5/

RUN rm /etc/apt/sources.list.d/cuda.list \
    && rm /etc/apt/sources.list.d/nvidia-ml.list \
    && apt-get update \
    && pip config set global.index-url https://pypi.douban.com/simple/ \
    && apt install -y libgl1-mesa-glx \
    && apt-get install -y libglib2.0-dev \
    && pip install gitpython>=3.1.30 \
    && pip install pandas==2.0.0 \
    && pip install seaborn==0.12.2 \
    matplotlib>=3.3 \
    numpy>=1.18.5 \
    opencv-python==4.6.0.66 \
    #    opencv-python-headless \
    Pillow>=7.1. \
    psutil  # system resources \
    PyYAML>=5.3.1 \
    requests>=2.23.0 \
    scipy>=1.4.1 \
    thop>=0.1.1  # FLOPs computation \
    torch>=1.7.0  # see https://pytorch.org/get-started/locally (recommended) \
    torchvision>=0.8.1 \
    tqdm>=4.64.0 \
    setuptools>=65.5.1 # Snyk vulnerability fix \
        prefetch_generator

以上文件中COPY ./yolov5/ /home/lwf/PD/yolov5/实现将本地dockerfile所在当前文件夹下的yolov5工程拷贝至镜像中,为后期实现数据与代码互相隔离。

二、在当前文件夹下开启终端,运行以下指令制作镜像:

docker build -t lwf/pd:1.0 .

需要对库进行下载,等待镜像制作完成,使用docker images指令查看是否制作成功。

三、创建容器,对需要宿主机链接的文件进行链接:

docker run -it --gpus all -v /home/nvidia/Liuwf/docker_work/PestDetection/input_img:/home/lwf/PD/yolov5/input_img -v /home/nvidia/Liuwf/docker_work/PestDetection/output_path:/home/lwf/PD/yolov5/output_path -v /home/nvidia/Liuwf/docker_work/PestDetection/weights:/home/lwf/PD/yolov5/weights lwf/pd:1.0

四、在相应文件夹下放置对应文件后,指令运行代码:

python detect.py --save-txt  #需要保存坐标文件传入此参数--save-txt

对应链接宿主机目录下可查看工程运行后文件。

五、补充:已有容器查看指令

docker ps -a

你可能感兴趣的:(docker,docker,YOLO,容器)