使用Python实现戴口罩人脸识别

YOLOV3:You Only Look Once 目标检测模型在 Pytorch 当中的实现 2021 年 10 月 12 日更新: 进行了大幅度的更新

本文包含相关资料包-----> 点击直达获取<-------

YOLOV3:You Only Look Once 目标检测模型在 Pytorch 当中的实现


2021 年 10 月 12 日更新: 进行了大幅度的更新,对代码的模块进行修改,加了大量注释。

目录

  1. 性能情况 Performance
  2. 所需环境 Environment
  3. 文件下载 Download
  4. 训练步骤 How2train
  5. 预测步骤 How2predict
  6. 评估步骤 How2eval
  7. 参考资料 Reference

性能情况

训练数据集 权值文件名称 测试数据集 输入图片大小 mAP 0.5:0.95 mAP 0.5
COCO-Train2017 yolo_weights.pth COCO-Val2017 416x416 38.0 67.2

所需环境

torch == 1.2.0 详情请看 requirements.txt,文件具有一定兼容性,已测试 pytorch1.7 和 1.7.1 可以正常运行。

文件下载

训练所需的 yolo_weights.pth 可以在百度云下载。 链接: https://pan.baidu.com/s/1ncREw6Na9ycZptdxiVMApw 提取码: appk

VOC 数据集下载地址如下,里面已经包括了训练集、测试集、验证集(与测试集一样),无需再次划分: 链接: https://pan.baidu.com/s/1YuBbBKxm2FGgTU5OfaeC5A 提取码: uack

训练步骤

a、训练 VOC07+12 数据集

  1. 数据集的准备 本文使用 VOC 格式进行训练,训练前需要下载好 VOC07+12 的数据集,解压后放在根目录
  2. 数据集的处理 修改 voc_annotation.py 里面的 annotation_mode=2,运行 voc_annotation.py 生成根目录下的 2007_train.txt 和 2007_val.txt。
  3. 开始网络训练 train.py 的默认参数用于训练 VOC 数据集,直接运行 train.py 即可开始训练。
  4. 训练结果预测 训练结果预测需要用到两个文件,分别是 yolo.py 和 predict.py。我们首先需要去 yolo.py 里面修改 model_path 以及 classes_path,这两个参数必须要修改。 model_path 指向训练好的权值文件,在 logs 文件夹里。 classes_path 指向检测类别所对应的 txt。 完成修改后就可以运行 predict.py 进行检测了。运行后输入图片路径即可检测。

b、训练自己的数据集

  1. 数据集的准备 本文使用 VOC 格式进行训练,训练前需要自己制作好数据集, 训练前将标签文件放在 VOCdevkit 文件夹下的 VOC2007 文件夹下的 Annotation 中。 训练前将图片文件放在 VOCdevkit 文件夹下的 VOC2007 文件夹下的 JPEGImages 中。
  2. 数据集的处理 在完成数据集的摆放之后,我们需要利用 voc_annotation.py 获得训练用的 2007_train.txt 和 2007_val.txt。 修改 voc_annotation.py 里面的参数。第一次训练可以仅修改 classes_path,classes_path 用于指向检测类别所对应的 txt。 训练自己的数据集时,可以自己建立一个 cls_classes.txt,里面写自己所需要区分的类别。 model_data/cls_classes.txt 文件内容为:

python cat dog ...

修改 voc_annotation.py 中的 classes_path,使其对应 cls_classes.txt,并运行 voc_annotation.py。

  1. 开始网络训练 训练的参数较多,均在 train.py 中,大家可以在下载库后仔细看注释,其中最重要的部分依然是 train.py 里的 classes_path。 classes_path 用于指向检测类别所对应的 txt,这个 txt 和 voc_annotation.py 里面的 txt 一样!训练自己的数据集必须要修改! 修改完 classes_path 后就可以运行 train.py 开始训练了,在训练多个 epoch 后,权值会生成在 logs 文件夹中。
  2. 训练结果预测 训练结果预测需要用到两个文件,分别是 yolo.py 和 predict.py。在 yolo.py 里面修改 model_path 以及 classes_path。 model_path 指向训练好的权值文件,在 logs 文件夹里。 classes_path 指向检测类别所对应的 txt。 完成修改后就可以运行 predict.py 进行检测了。运行后输入图片路径即可检测。

预测步骤

a、使用预训练权重

  1. 下载完库后解压,在百度网盘下载 yolo_weights.pth,放入 model_data,运行 predict.py,输入

python img/street.jpg

  1. 在 predict.py 里面进行设置可以进行 fps 测试和 video 视频检测。

b、使用自己训练的权重

  1. 按照训练步骤训练。
  2. 在 yolo.py 文件里面,在如下部分修改 model_path 和 classes_path 使其对应训练好的文件; model_path 对应 logs 文件夹下面的权值文件,classes_path 是 model_path 对应分的类

python _defaults = { #--------------------------------------------------------------------------# # 使用自己训练好的模型进行预测一定要修改model_path和classes_path! # model_path指向logs文件夹下的权值文件,classes_path指向model_data下的txt # 如果出现shape不匹配,同时要注意训练时的model_path和classes_path参数的修改 #--------------------------------------------------------------------------# "model_path" : 'model_data/yolo_weights.pth', "classes_path" : 'model_data/coco_classes.txt', #---------------------------------------------------------------------# # anchors_path代表先验框对应的txt文件,一般不修改。 # anchors_mask用于帮助代码找到对应的先验框,一般不修改。 #---------------------------------------------------------------------# "anchors_path" : 'model_data/yolo_anchors.txt', "anchors_mask" : [[6, 7, 8], [3, 4, 5], [0, 1, 2]], #---------------------------------------------------------------------# # 输入图片的大小,必须为32的倍数。 #---------------------------------------------------------------------# "input_shape" : [416, 416], #---------------------------------------------------------------------# # 只有得分大于置信度的预测框会被保留下来 #---------------------------------------------------------------------# "confidence" : 0.5, #---------------------------------------------------------------------# # 非极大抑制所用到的nms_iou大小 #---------------------------------------------------------------------# "nms_iou" : 0.3, #---------------------------------------------------------------------# # 该变量用于控制是否使用letterbox_image对输入图像进行不失真的resize, # 在多次测试后,发现关闭letterbox_image直接resize的效果更好 #---------------------------------------------------------------------# "letterbox_image" : False, #-------------------------------# # 是否使用Cuda # 没有GPU可以设置成False #-------------------------------# "cuda" : True, }

  1. 运行 predict.py,输入

python img/street.jpg

  1. 在 predict.py 里面进行设置可以进行 fps 测试和 video 视频检测。

评估步骤

a、评估 VOC07+12 的测试集

  1. 本文使用 VOC 格式进行评估。VOC07+12 已经划分好了测试集,无需利用 voc_annotation.py 生成 ImageSets 文件夹下的 txt。
  2. 在 yolo.py 里面修改 model_path 以及 classes_path。 model_path 指向训练好的权值文件,在 logs 文件夹里。classes_path 指向检测类别所对应的 txt。
  3. 运行 get_map.py 即可获得评估结果,评估结果会保存在 map_out 文件夹中。

b、评估自己的数据集

  1. 本文使用 VOC 格式进行评估。
  2. 如果在训练前已经运行过 voc_annotation.py 文件,代码会自动将数据集划分成训练集、验证集和测试集。如果想要修改测试集的比例,可以修改 voc_annotation.py 文件下的 trainval_percent。trainval_percent 用于指定(训练集 + 验证集)与测试集的比例,默认情况下 (训练集 + 验证集):测试集 = 9:1。train_percent 用于指定(训练集 + 验证集)中训练集与验证集的比例,默认情况下 训练集:验证集 = 9:1。
  3. 利用 voc_annotation.py 划分测试集后,前往 get_map.py 文件修改 classes_path,classes_path 用于指向检测类别所对应的 txt,这个 txt 和训练时的 txt 一样。评估自己的数据集必须要修改。
  4. 在 yolo.py 里面修改 model_path 以及 classes_path。 model_path 指向训练好的权值文件,在 logs 文件夹里。classes_path 指向检测类别所对应的 txt。
  5. 运行 get_map.py 即可获得评估结果,评估结果会保存在 map_out 文件夹中。

Reference

https://github.com/qqwweee/keras-yolo3 https://github.com/eriklindernoren/PyTorch-YOLOv3 https://github.com/BobLiu20/YOLOv3_PyTorch

参考文献

  • 基于深度学习的人脸口罩佩戴正确性检测研究(重庆邮电大学·卢玥蒙)
  • 局部遮挡三维人脸识别系统设计与实现(北京邮电大学·邓宇)
  • 基于web的人脸识别登陆和管理系统设计与实现(郑州大学·王哲)
  • 视频中人脸表情识别关键技术与应用(电子科技大学·黄弋)
  • 基于MQTT的智能门禁物联平台设计与实现(华中科技大学·库博)
  • 智慧社区人脸识别系统的设计与实现(华中科技大学·刘合鑫)
  • 人脸识别布控系统的设计与实现(武汉邮电科学研究院·邓锋)
  • 基于大余量余弦损失函数的口罩人脸识别算法研究(太原理工大学·冯子坚)
  • 人脸识别算法及其在视频剪切中的应用研究(辽宁科技大学·刘旭)
  • 基于改进YOLOv5的公共场景下口罩佩戴检测算法(广西民族大学·陈云)
  • 基于深度学习口罩佩戴检测算法的研究与系统实现(青岛科技大学·宋金秋)
  • 基于深度学习的戴口罩人脸识别研究(青岛科技大学·苏海涛)
  • 视频中人脸表情识别关键技术与应用(电子科技大学·黄弋)
  • 基于web的人脸识别登陆和管理系统设计与实现(郑州大学·王哲)
  • 基于人脸聚类的图片管理系统的设计与实现(首都经济贸易大学·王子涛)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码工坊 ,原文地址:https://bishedaima.com/yuanma/35785.html

相关推荐

  • 基于python的中文聊天机器人

    基于python的中文聊天机器人 前言 发布这篇 Chat 的初衷是想和各位一起分享一下动手来做聊天机器人的乐趣,因此本篇文章适合用于深度机器学习的研究和兴趣发展
    2024年05月14日
    2 1 1
  • 基于JavaWeb的师资管理系统源码SSM框架实现

    这是一个🔥🔥基于JavaWeb的师资管理系统源码SSM框架实现🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 师资管理系统源码SSM框架实现开发技术栈为SSM项目
    2024年05月23日
    4 1 1
  • 新手python简单的飞机游戏

    game 一个新手做的python简单的飞机游戏 参考文献 基于Java EE的个人博客管理系统的设计和实现(内蒙古大学·闫伟光) 深度可定制的工具化爬虫系统的设计与实现(北京邮电大学·李笑语) 航空订票服务器爬虫检测技术研究(杭州电子科技大学·陈万烤) 主题爬虫关键技术研究(哈尔滨工程大学·黄正德) 机票票价预测系统设计与实现(大连理工大学·陈岩松) 深度可定制的工具化爬虫系统的设计与实现(北京邮电大学·李笑语) 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航) 基于B/S架构的酷跑社区系统的设计与实现(内蒙古大学·张晓乐) 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航) 机票票价预测系统设计与实现(大连理工大学·陈岩松) 山东航空货运业务管理系统的设计与实现(山东大学·高辉) 飞行情报资料管理信息系统设计与实现(中国地质大学(北京)·张晓琴) 山东航空货运业务管理系统的设计与实现(山东大学·高辉) 豆玩手机游戏平台的设计与实现(吉林大学·李天明) 面向高职信息技术教育的严肃游戏设计与实施(大连理工大学·王晓姝)
    2024年05月14日
    1 1 1
  • 基于JSP和MySQL的汽车销售管理系统

    基于JSP和MySQL的汽车销售管理系统 一,系统开发平台 1,1 数据库应用的基本框架 本汽车销售管理系统采用B/S架构, 服务器端是一个Web服务器和数据库服务器的组合体
    2024年05月14日
    19 1 4
  • 基于SSM框架的保险理赔管理系统源码

    基于SSM框架的保险理赔管理系统源码 随着互联网的快速发展,保险行业也在不断创新和发展,为了更好地适应市场需求和提升服务质量,保险理赔管理系统应运而生,本系统采用SSM(Spring+SpringMVC+MyBatis)框架
    2024年05月07日
    6 1 3
  • 基于SSH框架的在线宠物商城网站源码+论文

    这是一个🔥🔥基于SSH框架的在线宠物商城网站源码+论文🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 在线宠物商城开发技术栈为SSH项目,可以作为毕业设计课程设计作业基于SSH框架实现一个宠物网站或者一个宠物在线商城
    2024年05月23日
    10 1 4
  • python数据分析

    python数据分析(1)——数据质量分析 1, 前言 数据质量分析是数据挖掘中数据预处理的前提,主要任务是检查脏数据, 脏数据包括: 缺失值 异常值 不一致的值 重复数据或者含有特殊符号(#
    2024年05月14日
    1 1 1
  • 基于Python实现聚类算法

    一,理论知识 1,1 K-Means 给定一组数据集,聚类算法将它们分成不同的子组,我们希望类内实例高度相似,类间实例低相似, 在样本集中,随机选取K个点作为中心$\bold \mu_k$
    2024年05月14日
    3 1 1
  • 植物大战僵尸之Python

    植物大战僵尸 项目主要内容与目标 模仿设计并实现基于面向对象思想的一个简单版控制台植物大战僵尸, 植物设计包含向日葵, 普通豌豆射手, 双发豌豆射手, 寒冰豌豆射手
    2024年05月14日
    1 1 1
  • 基于Jsp和MySQL实现的爱看电影网网站

    基于Jsp和MySQL实现的爱看电影网网站 1,引言 1,1 编写目的 本说明书在概要设计的基础上,对影片管理系统的各模块,程序,子系统分别进行了实现层面上的要求和说明
    2024年05月14日
    18 1 3

发表回复

登录后才能评论