Yolo V5简单上手 - 口罩识别

以下是仅使用个人笔记本电脑进行简单 yolo 项目的方法。

- 效果

Yolo V5简单上手 - 口罩识别_第1张图片Yolo V5简单上手 - 口罩识别_第2张图片

 首先准备数据集:https://drive.google.com/file/d/1UwbEjnZzSO7gwsUU85a-RpDSmLmHZyP6/view?usp=sharing

 Yolo V5简单上手 - 口罩识别_第3张图片

 该数据集构成为:训练653 :测试100 :验证100

首先先创建一个项目文件

Yolo V5简单上手 - 口罩识别_第4张图片

下载yolov5代码: GitHub - ultralytics/yolov5: YOLOv5 in PyTorch > ONNX > CoreML > TFLiteYOLOv5 in PyTorch > ONNX > CoreML > TFLite. Contribute to ultralytics/yolov5 development by creating an account on GitHub.https://github.com/ultralytics/yolov5

Yolo V5简单上手 - 口罩识别_第5张图片

 将其解压至项目文件夹中

Yolo V5简单上手 - 口罩识别_第6张图片

使用Anaconda创建yolov5的环境

Yolo V5简单上手 - 口罩识别_第7张图片

conda create -n yolov5 python==3.7.0

Yolo V5简单上手 - 口罩识别_第8张图片

Yolo V5简单上手 - 口罩识别_第9张图片

 将路径切换至项目路径,然后安装yolov5的依赖库

pip install -r requirements.txt

Yolo V5简单上手 - 口罩识别_第10张图片

 接下来使用各自喜欢的编辑器处理项目,可以用pycharm(推荐),

也可以用VScode(不推荐)(如果处理服务器上的项目的时候还是比较方便的)

这里使用VScode进行

使用VScode打开项目文件

Yolo V5简单上手 - 口罩识别_第11张图片

python 环境选择: ctrl + shift + p

>python: select Interpreter

 

 Yolo V5简单上手 - 口罩识别_第12张图片

 detect.py 运行尝试

Yolo V5简单上手 - 口罩识别_第13张图片

 如果在run/detect/exp 文件夹下出现该图片表示环境ok

Yolo V5简单上手 - 口罩识别_第14张图片

 环境构建成功的话,接下来开始训练自己的数据集了

首先在data文件夹下创建一个yaml文件填入数据集路径,类个数,类名信息

Yolo V5简单上手 - 口罩识别_第15张图片

 创建mask.yaml 输入相关内容

train: D:/yanglunfei/data/face_mask/yolov5_mask/images/train  
val: D:/yanglunfei/data/face_mask/yolov5_mask/images/val  
test: D:/yanglunfei/data/face_mask/yolov5_mask/images/test  
  
nc: 3  
  
names: ['without_mask', 'with_mask', 'mask_weared_incorrect']  

Yolo V5简单上手 - 口罩识别_第16张图片

 修改train.py中的代码,指定数据集

# parser.add_argument('--data', type=str, default=ROOT / 'data/coco128.yaml', help='dataset.yaml path')  
parser.add_argument('--data', type=str, default='mask.yaml', help='dataset.yaml path')  

Yolo V5简单上手 - 口罩识别_第17张图片

如果电脑不太好的话,就比如我,,会出现GPU容量不足的情况

Yolo V5简单上手 - 口罩识别_第18张图片

解决方法是尽量调整数据输入量和线程,减少电脑负担,

在train文件里调小workers、batch-size

这些参数,如果还是不行那需要调整num_workers值,调整如下

workers=4

batch-size=8

在utils文件夹下的dataloaders.py文件下,搜索num_workers,调整至合适的值,我电脑太差直接归零了,一般2、4也都行

num_workers=0

Yolo V5简单上手 - 口罩识别_第19张图片

 再次执行train文件就能训练了。

Yolo V5简单上手 - 口罩识别_第20张图片

 如果无法使用GPU那应该是yolov5提供的pytorch是cpu版本,可以查找yolo对应pytorch的gpu版本相关命令,试过好多次,直接在anaconda的环境里执行安装相应版本就行

Yolo V5简单上手 - 口罩识别_第21张图片

这是符合我电脑的

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

Yolo V5简单上手 - 口罩识别_第22张图片

 训练结束后在runs/train/ 文件夹下查看结果

Yolo V5简单上手 - 口罩识别_第23张图片

然后就可以修改detect文件的参数,指定自己训练好的权重、检测方式(摄像头)、data 这三个变量就行。

# parser.add_argument('--weights', nargs='+', type=str, default=ROOT / 'yolov5s.pt', help='model path(s)')  
parser.add_argument('--weights', nargs='+', type=str, default='runs/train/exp5/weights/best.pt', help='model path(s)')  
# parser.add_argument('--source', type=str, default=ROOT / 'data/images', help='file/dir/URL/glob, 0 for webcam')  
parser.add_argument('--source', type=str, default=0, help='file/dir/URL/glob, 0 for webcam')  
# parser.add_argument('--data', type=str, default=ROOT / 'data/coco128.yaml', help='(optional) dataset.yaml path')  
parser.add_argument('--data', type=str, default='data/yolov5_mask.yaml', help='(optional) dataset.yaml path')  

 另外,自带的detect代码没有结束的的设置,只是测试的话可以设置一个opencv的waitkey来结束进程。

 Yolo V5简单上手 - 口罩识别_第24张图片

实验效果如下

Yolo V5简单上手 - 口罩识别_第25张图片

Yolo V5简单上手 - 口罩识别_第26张图片

 每天一遍爱坤~

 

你可能感兴趣的:(yolo,python,目标检测)