基于yolov5的人脸口罩检测
基于docker部署pytorch的训练和运行环境,借助yolov5检测算法实现人脸口罩的检测,并通过nvidia-cuda技术进行加速。
我是在Ubuntu 20x系统上使用。
在ubuntu上只需要执行以下命令就可以自动安装N卡驱动。
$ ubuntu-drivers autoinstall
安装完成后重启系统,并输入以下命令验证驱动是否安装成功。
$ nvidia-smi
按顺序执行以下命令即可在Ubuntu上完成docker的安装。
$ apt-get update
$ apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
$ add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
$ apt-get update
$ apt-get install docker-ce
如果ubuntu驱动掉了需要删除旧驱动重新安装
apt-get remove --purge nvidia*
apt-get update
ubuntu-drivers devices
apt install nvidia-driver-470
reboot
按顺序执行以下命令即可在Ubuntu上完成nvidia-docker的安装。
$ curl -sL https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -sL https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
$ sudo apt-get update
$ sudo apt-get install nvidia-docker2
如果是第二次安装,需要将/etc/apt/sources.list.d目录下nvidia开头的文件删掉,不然无法更新apt。
安装完成后使用vim编辑/etc/docker/daemon.json文件添加default-runtime设置为nvidia。
"default-runtime":"nvidia",
重启docker服务
$ systemctl daemon-reload
$ systemctl restart docker
clone仓库中的代码,然后下载
torch-1.7.1+cu110-cp37-cp37m-linux_x86_64.whl
torchaudio-0.7.2-cp37-cp37m-linux_x86_64.whl
torchvision-0.8.2+cu110-cp37-cp37m-linux_x86_64.whl
Anaconda3-5.3.0-Linux-x86_64.sh
这四个文件放在项目根目录,目的是加快环境构建。
请注意一定要下载版本号一致的文件,或者使用我整理的百度云提取码:ac6n
文件列表如下图所示:
完成所有所需文件的准备后,使用终端进入FaceMaskDetect目录,然后通过docker build命令构建pytorch环境镜像。
$ docker build -t detect/pytorch:nvidia-cuda .
完成后通过docker images命令查看detect/pytorch:nvidia-cuda镜像。
运行pytorch容器,并将项目中detect目录映射到容器内,将需要检测的图片都放在【detect】-【inference】-【images】目录中。
$ docker run -it -v /home/showye/FaceMaskDetect/detect/:/home/showye/FaceMaskDetect/detect/ detect/pytorch:nvidia-cuda /bin/bash
容器启动成功后会自动进入容器的bash终端,通过cd进入/home/showye/FaceMaskDetect/detect/目录,然后执行以下命令即可完成人脸口罩的检测。
$ python detect.py
完成检测后图片会生成在【detect】-【inference】-【output】目录中。
MIT