说明:本教程为将yolov5制作为docker镜像,通过容器实现yolov5的调用。
一、建立包含yolov5所需库的dockerfile,基于普通深度学习dockerfile修改,具体dockerfile文件内容如下:
# 继承PyTorch的cuda镜像
FROM pytorch/pytorch:1.11.0-cuda11.3-cudnn8-develLABEL maintainer = "787255035@qq.com"
LABEL version = "0.2"
LABEL description = "prepare deep learning environment"# 指定docker镜像中,默认的工作路径是/PD
WORKDIR /home/lwf/PD/yolov5COPY ./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