下载代码:
代码的下载地址是:[YOLOV5-mask-42: 基于YOLOV5的口罩检测系统-提供教学视频 (gitee.com)](https://github.com/ultralytics/yolov5)
配置环境:
打开yolov5-mask-42-master文件夹,在输入栏输入cmd打开命令行界面,使得以下命令均在当前文件夹下执行
创建python3.8的虚拟环境并激活虚拟环境,请在命令行中执行下列操作:
conda create -n yolo5 python==3.8.5
conda activate yolo5
相关包的安装:
pytorch安装(gpu版本和cpu版本的安装)
需要注意以下几点:
- 安装之前一定要先更新你的显卡驱动,去官网下载对应型号的驱动安装
- 30系显卡只能使用cuda11的版本
- 一定要创建虚拟环境,这样的话各个深度学习框架之间不发生冲突
conda install pytorch==1.8.0 torchvision torchaudio cudatoolkit=10.2 # 注意这条命令指定Pytorch的版本和cuda的版本
conda install pytorch==1.10.0 torchvision torchaudio cudatoolkit=11.3 # 30系列以上显卡gpu版本pytorch安装指令
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cpuonly # CPU的小伙伴直接执行这条命令即可
其他依赖包的安装
pip install pycocotools-windows
pip install -r requirements.txt
pip install pyqt5
pip install labelme
测试上述步骤是否成功
python detect.py --source data/images/bus.jpg --weights pretrained/yolov5s.pt
测试结果在runs\detect\exp下找到
支持不同流的检测
python detect.py --source 0 # webcam
file.jpg # image
file.mp4 # video
path/ # directory
path/*.jpg # glob
'https://youtu.be/NUsoVlDFqZg' # YouTube video
'rtsp://example.com/media.mp4' # RTSP, RTMP, HTTP stream
数据标注:
pip install labelimg -i https://mirror.baidu.com/pypi/simple
labelimg #启动
这里标注格式选择yolo
这里选择自动保存
这是一些快捷键,方便提高效率
数据集格式:
标注格式:
txt文件中每一行表示一个目标,以空格进行区分,分别表示目标的类别id,归一化处理之后的中心点x坐标、y坐标、目标框的w和h。【原博主未对使用labelimg生成的标签做处理,这里需要读者自己写代码对数据标签做处理】
配置格式:
YOLO_Mask
└─ score
├─ images
│ ├─ test # 下面放测试集图片
│ ├─ train # 下面放训练集图片
│ └─ val # 下面放验证集图片
└─ labels
├─ test # 下面放测试集标签
├─ train # 下面放训练集标签
├─ val # 下面放验证集标签
模型训练
代码运行
python train.py --data mask_data.yaml --cfg mask_yolov5s.yaml --weights pretrained/yolov5s.pt --epoch 100 --batch-size 4 --device cpu
模型使用
# 检测摄像头
python detect.py --weights runs/train/exp_yolov5s/weights/best.pt --source 0 # webcam
# 检测图片文件
python detect.py --weights runs/train/exp_yolov5s/weights/best.pt --source file.jpg # image
# 检测视频文件
python detect.py --weights runs/train/exp_yolov5s/weights/best.pt --source file.mp4 # video
# 检测一个目录下的文件
python detect.py --weights runs/train/exp_yolov5s/weights/best.pt path/ # directory
# 检测网络视频
python detect.py --weights runs/train/exp_yolov5s/weights/best.pt 'https://youtu.be/NUsoVlDFqZg' # YouTube video
# 检测流媒体
python detect.py --weights runs/train/exp_yolov5s/weights/best.pt 'rtsp://example.com/media.mp4' # RTSP, RTMP, HTTP stream