分别用opencv和yolo3实现口罩佩戴的状态检测,附代码和数据集

分别用opencv和yolo3实现口罩佩戴的状态检测,附代码和数据集

  • 一、基于opencv实现口罩佩戴检测
    • 1.环境配置
    • 2.项目介绍
    • 3.相关源码
    • 4.相关补充
  • 二、基于yolo3实现口罩佩戴检测
    • 1. yolo3基本原理
      • 1.1 yolo3实现思路
      • 1.2 yolo3原论文翻译版
      • 1.3 yolo3教学视频
    • 2.环境配置
      • 环境的测试:
    • 3.相关源码和数据集
    • 4.用yolo3模型训练自己的数据集

很多小伙伴想要数据集,补上链接,包含佩戴口罩,未佩戴口罩以及不规范佩戴口罩的图片数据及其标签,大约3000张,标签分别为:have_mask,no_mask,incorrect_mask : 口罩数据集

因为疫情的原因,口罩佩戴成为人们出行重要方式,对于口罩的佩戴检测已经成为热题。趁着五一节假日呢待在学校把这个项目复现了一遍,实现了用opencv或yolo3对口罩的检测,注意是两种实现方式哦。网上有很多相关资源,但奈何资源分散,所以就在此将所有资源和实现过程放在一篇文章中,包含代码,数据集和各种环境配置,供大家参考。

一、基于opencv实现口罩佩戴检测

OpenCV是一个用于图像处理、分析、机器视觉方面的开源函数库。

1.环境配置

  1. python3.7.8(其实对于opencv来说哪个版本都行)
  2. opencv4.5.1,进入cmd里pip就好,下面这个命令自动就是4.5.1这个版本,至于其他的库函数少哪个pip哪个,注意PIL这个库是pip install pillow。
pip install opencv-python

2.项目介绍

该项目中,使用opencv里的dnn模块做深度学习向前推理,所需库函数少,无需安装其他深度学习库,简单易实现。如果你只是想要实现口罩检测的效果,对于yolo3等深度学习无需求,建议用opencv实现。

3.相关源码

源码参考github:
用opencv的dnn模块实现人脸口罩检测

4.相关补充

该代码有三种检验方式

  1. 如果对图片进行测试,则将标蓝的default值改为1,下方的default值改为本机图片路径即可。在这里插入图片描述
  2. 如果对视频进行测试,则将标蓝的default值改为0,最后一行parser中的default值改为视频路径,即path即可。
  3. 如果想用本机摄像头进行检测(首先你的电脑得有摄像头才行,如果没有可以用外置摄像头),则标蓝的default值保持为0,最后一行的default值修改为0。
  4. 运行 opencv_dnn_infer.py 文件。

二、基于yolo3实现口罩佩戴检测

1. yolo3基本原理

1.1 yolo3实现思路

分别用opencv和yolo3实现口罩佩戴的状态检测,附代码和数据集_第1张图片

  • 上面就是yolo3的原理图,最左侧的方框表示的是yolo3中主干特征提取网络,即Darknet53,每一个block中有多次卷积,每次向下采样时都会增加通道数,总体来说,Darknet53结构=下采样+残差网络的堆叠,最终提取特征得到特征层
  • Darknet53最下面的三个特征层输出结果到右边进行上采样操作,利用获取的特征构建特征金字塔,这样能使预测结果准确率大大提升。
  • 最终红色框框输出网络进行分类预测和回归预测的结果。

1.2 yolo3原论文翻译版

要对于yolo3有一个准确的理解,建议还是看看原论文You Look Only Once:
yolo3论文翻译版

1.3 yolo3教学视频

b站上有一位小哥讲yolo3的实现我觉得很棒啊,推荐大家看看:
Pytorch 搭建自己的YOLO3目标检测平台(Bubbliiiing 深度学习 教程)

2.环境配置

yolo3的环境配置相比于之前的opencv会稍微复杂那么亿丢丢,不过还好有我在不是么……

  • python3.7.8,还是老样子,当然pytorch版本yolo3的对于python版本没有要求,所以python什么版本都可。

  • pytorch,cuda,cudnn,anaconda环境以及vscode的安装,其实在python文件中的import torch指的就是pytorch,但是你不能直接pip。这里有一个写的比较好的博文,我就直接给大家附上链接了,所有的安装都按照博主说的来做就好:
    windows下的torch=1.2.0环境配置

  • ………假设你已经认真看了上面的环境配置并安装上了pytorch,cuda,cudnn…………

  • 1.如果你想用vscode的话,最好安装老版的anaconda,并在anaconda中切换环境启动vscode,如果是新版的anaconda是没有vscode启动项的,那么vscode要切换到pytorch环境会比较麻烦(亲测)。
    2.如果你和我一样喜欢用pycharm的话,这里给一个pycharm的百度网盘链接:
    pycharm2020.3.2
    提取码:clvz
    那么pycharm切换到新建的pytorch环境就好啦,以下是切换方法的链接:
    创建pytorch/tensorflow环境后如何在pycharm中切换

    环境的测试:

    进入cmder,输入activate pytorch(cmd或pycharm的terminal当然也可):
    分别用opencv和yolo3实现口罩佩戴的状态检测,附代码和数据集_第2张图片
    到了这一步离成功就不远了,毕竟现在环境就已经配置好了。

3.相关源码和数据集

Mask_detection_yolo3
最懂你们,借鉴吧……把代码下载下来,用pycharm打开,转到pytorch环境中去,然后运行video.py文件即可,大家安装过程中有什么问题欢迎在底下留言。

4.用yolo3模型训练自己的数据集

附上我写的另篇博文:
用yolo3模型训练自己的数据集

你可能感兴趣的:(计算机视觉,深度学习,人工智能,机器学习,计算机视觉)