【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务

【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务

文章目录

  • 1、下载YOLOV5的代码
  • 2、准备数据
  • 3、修改配置文件
  • 4、模型训练
  • 5、模型测试
  • 其他问题
    • 如何提高精度?
    • 关于为什么detect文件运行后,预测结果没有框框出的问题

1、下载YOLOV5的代码

打开项目地址https://github.com/ultralytics/yolov5,根据流程下载,在命令行中输入

  • git clone https://github.com/ultralytics/yolov5
  • cd yolov5
  • pip install -r requirements.txt

注意:本地进行项目运行的话需要自行创建好wandbtensorboard以及clearml的账户(都是记录运行过程的库),并在命令行中登录。(不知道怎么创建的可以先运行一遍train.py训练,然后根据报错信息进入不同的官网进行注册和登录)
包括有:

  • https://wandb.ai/home
  • https://app.clear.ml/dashboard

2、准备数据

打开roboflow官网 https://app.roboflow.com/ 根据新手教程创建自己的数据集

【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务_第1张图片

【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务_第2张图片

然后上传数据时,我使用的是网上的公开的口罩以及面部数据,上传图片以及label标签的文件夹
【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务_第3张图片
【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务_第4张图片

如果没有labels数据也没有关系,在roboflow网站上也可以自己标注数据,上传一张照片,点击照片进行标注

【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务_第5张图片
【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务_第6张图片

标注完成自己的数据后点击Finish Uploading完成上传,并选择划分数据集的比例
【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务_第7张图片

之后,可以自定义选择数据增强的方式(如旋转,噪音,模糊等)
【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务_第8张图片

然后点击生成数据集

然后选择导出数据,可选择将数据下载到电脑也可以复制下载代码在项目中进行下载

【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务_第9张图片
将下载好的数据解压到YOLOV5的项目里(本地使用的话推荐直接下载到电脑)

【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务_第10张图片

3、修改配置文件

打开data.yaml配置文件,修改路径为自己的包名,
nc表示分类个数
name就是分类的名称
【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务_第11张图片

4、模型训练

train.py文件中,找到parse_opt解析命令行参数的方法,创建一个自定义的默认参数字典,并修改对应位置的参数(首次测试运行的话,建议将epochs的默认值改为50)

注意:这个weights参数对应的文件是会自动下载的,所以直接修改参数值即可(包括yolov5s,yolov5m, yolov5l, yolov5x,具体差距看下文中“如何提高精度”的相关内容)
【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务_第12张图片

第一次运行,报了这个错,点进去这个文件,将这段代码注释掉
【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务_第13张图片

训练好后,会在runs/exp/weights下生成训练好的权重模型
【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务_第14张图片

注意:这个best.pt是你最重要的文件,该权重文件用于模型预测,所以,也可以在别的地方训练好(比如在kaggle,colab等网站训练好),下载好这个权重文件后在此项目也可继续运用(前提是分类项目的数据都一致)。

5、模型测试

打开detect.py文件,与train.py的修改类似,
【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务_第15张图片

修改完后,运行detect.py代码,查看运行结果,可以看到结果保存在什么地方

【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务_第16张图片

这里我用我的自拍照测试了以下,效果还不错
【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务_第17张图片

其他问题

如何提高精度?

  1. 提高训练轮次epochs

  2. 在生成数据集时,选择数据增强Data Augmentation

  3. 选用其他的权重模型的pt文件

    直接在train.py文件的解析参数的方法中修改文件名。
    【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务_第18张图片

    效果的话,可以参考这篇文章:https://zhuanlan.zhihu.com/p/399104828

    具体来说就是yolov5s< yolov5m< yolov5l< yolov5x,所含的残差结构的个数依次增多,网络的特征提取、融合能力不断加强,检测精度得到提高,但相应的时间和资源花费也在增加。

关于为什么detect文件运行后,预测结果没有框框出的问题

提高自己的训练轮次,因为权重模型训练的效果不好或者是过拟合了,或者是首先模型训练的效果不好而且之前在detect文件里设置置信度太高了,建议刚开始训练的置信度调低,跑通以后调优的时候再提高这个置信度
【Object Detection】YOLOV5应用案例——口罩检测(mask destection)手把手教你从零开始搭建一个目标检测任务_第19张图片

你可能感兴趣的:(人工智能,1024程序员节,目标检测,机器学习,计算机视觉,人工智能)