戴口罩人脸数据集和戴口罩人脸生成方法


目录

戴口罩人脸数据集和戴口罩人脸生成方法

1.戴口罩人脸数据集

(1)开源数据集-戴口罩人脸数据集

(2)生成戴口罩人脸的数据集

2.戴口罩人脸生成方法

(1)生成戴口罩人脸思路

(2)口罩模板

(3)戴口罩人脸生成Demo

(4)生成戴口罩人脸效果展示

3. 生成戴口罩数据集和源码下载

4. 戴口罩人脸检测和戴口罩识别(含Python Android源码)


目前网上已经开源了很多免费的人脸识别/人脸检测数据集,比如常见的LFW,FDDB,WIDER FACE,300W等,估计加起来都有好几个忆了。但这些人脸数据绝大部分都是不戴口罩的人脸,不能直接用于戴口罩识别中。网上也有少许开源的戴口罩人脸数据集,鄙人花了点时间,整理一下目前常见的戴口罩人脸数据集,以及戴口罩人脸数据的合成/生成方法。

  1. 包含5个数据集:  facemask-train1,  facemask-train2,facemask-train3,  synthetic-train1,synthetic-train2 ,facemask-test ,总共约有50000+的数据:
  2. 生成戴口罩人脸代码: python create_facemask.py

项目数据和生成戴口罩人脸源码下载地址:​​​​​​​戴口罩人脸数据集和生成戴口罩人脸数据


1.戴口罩人脸数据集

(1)开源数据集-戴口罩人脸数据集

一些开源的,免费的戴口罩人脸数据集,download下来,发现这些开源的数据比较脏,有挺多也是标注错误的,需求自己清洗一下哦~

数据集 说明
virus-mask-dataset
  • 数据集总共有三类标签:mask 此人佩戴了可预防病毒口罩;nomask 未佩戴口罩;wrongmask 此人佩戴了无预防病毒作用的口罩;
  • 标注方式为:标注人体全头部+肩膀上部
  • 地址:https://github.com/hikariming/virus-mask-dataset
MaskedFace-Net
  • 正确遮挡人脸数据集(CMFD),错误遮挡人脸数据集(IMFD)及其全局遮挡人脸检测(MaskedFace-Net)的组合。
  • 地址:https://github.com/cabani/MaskedFace-Net
 Real-World Masked Face Datase
  • 地址:https://github.com/X-zhangyang/Real-World-Masked-Face-Dataset
  • 说明:https://blog.csdn.net/HyperAI/article/details/105154132

(2)生成戴口罩人脸的数据集

网上绝大部分人脸数据都是不戴口罩的人脸,不能直接用于戴口罩识别中。鉴于此,我们可以考虑自己合成/生成戴口罩的人脸数据,以下是鄙人收藏和整理的戴口罩人脸数据集和合成的数据集,总共约有50000+的数据:

数据集 说明
facemask-train1
  • 从网上收集的戴口罩人脸数据集(如virus-mask-dataset),约7000+张图片,并清洗了部分标注错误的样本
  • 每张图片都被标注了mask(戴口罩)和nomask(未佩戴口罩)的检测框
  • 标注格式为标准的VOC xml格式,可用于人脸检测训练数据使用
  • 已经裁剪了人脸区域,并清洗了部分标注错误的样本;其中mask(戴口罩)人脸有3000+张,nomask(未佩戴口罩)人脸有10000+张,可作为分类训练数据集,
facemask-train2
  • 从网上收集的戴口罩人脸数据集,约3500+张图片,
  • 每张图片都被标注了mask(戴口罩)和nomask(未佩戴口罩)的检测框
  • 标注格式为标准的VOC格式,但标注的人脸框比较大,不建议用于人脸检测训练数据使用
  • 已经裁剪了人脸区域图像,并清洗了部分标注错误的样本;其中mask(戴口罩)人脸有2000+张,nomask(未佩戴口罩)人脸有6000+张,可作为分类训练数据集
facemask-train3
  • 从网上收集的戴口罩人脸数据集,其中mask(戴口罩)人脸有600+张,nomask(未佩戴口罩)人脸有1700+张,可作为分类训练数据集
  • 原始图片都被裁剪为人脸图像了,所以不合适用于人脸检测;可作为分类训练数据集
synthetic-train1
  • 这是合成的戴口罩人脸数据
  • 其中mask(戴口罩)人脸有7000+张,nomask(未佩戴口罩)人脸有7000+张,可作为分类训练数据集
synthetic-train2
  • 这是合成的戴口罩人脸数据
  • 其中mask(戴口罩)人脸有6000+张,nomask(未佩戴口罩)人脸有6000+张,可作为分类训练数据集
facemask-test
  • 这是戴口罩人脸测试集
  • 其中mask(戴口罩)人脸有300+张,nomask(未佩戴口罩)人脸有300+张,用于分类模型测试

2.戴口罩人脸生成方法

(1)生成戴口罩人脸思路

  1. 首先进行人脸检测和人脸关键点检测
  2. 根据人脸关键点,计算脸颊的宽度和鼻梁位置等位置信息,同理,需要计算出口罩模板的大小、方向和位置;
  3. 最后把口罩模板贴在人脸位置上,等到合成的戴口罩人脸图片

一些戴口罩生成代码参考:

GitHub - sevenHsu/FaceMask_CelebA: Simulated masked face with dataset CelebA

给人脸戴上口罩,Python实战项目来了_我爱Python数据挖掘的博客-CSDN博客

我测试了目前网上的生成戴口罩代码,对于已经矫正的人脸,生成效果还是不错的,但如果原始人脸本身就是倾斜(歪头),这时直接使用原始代码,合成的效果就很差了,在此基础上,我做了优化工作

  1. 增加了口罩模板,共有29种不同类型的口罩模板,提供合成口罩数据的多样性
  2. 优化了口罩倾斜角度,使得人脸倾斜(歪头)时,合成的效果也不错
  3. 优化了人脸检测,采用轻量化人脸检测,加速生成速度
原始图片 原始代码生成戴口罩 优化后生成戴口罩
对于已经矫正的人脸,生成效果还是不错的,但如果原始人脸本身就是倾斜(歪头),这时直接使用原始代码,合成的效果就很差了

(2)口罩模板

口罩模板即口罩Mask图像(PNG格式),可以通过Photoshop抠图的方式,把背景去除;目前已经提供了共有29种不同类型的口罩模板,保证了口罩数据的多样性。

(3)戴口罩人脸生成Demo

安装好python相关依赖包

pybaseutils
opencv-python==4.5.1.48
face_recognition
tqdm
torch
torchvision

代码已经自带了测试图片和数据,你也可以更换成自己的人脸数据集:

python create_facemask.py
# -*-coding: utf-8 -*-
"""@Author : panjq@E-mail : pan_jinquan@163.com@Date   : 2022-06-25 22:23:11@Brief  : 生成戴口罩人脸数据集
"""
import os
import syssys.path.insert(0, os.getcwd())
sys.path.insert(0, "libs")
from tqdm import tqdm
from facemask.wearmask import FaceMaskCreator
from pybaseutils import file_utils, image_utilsclass FaceMaskDemo(object):def __init__(self):self.mask_creator = FaceMaskCreator(detect_face=True, alignment=False)def create_wear_mask_faces(self, image_dir, out_dir=None, vis=True):"""生成戴口罩人脸数据集:param image_dir: 人脸图片目录:param out_dir:  生成戴口罩人脸输出目录:param vis: 是否可视化效果:return:"""image_list = file_utils.get_files_lists(image_dir)for image_path in tqdm(image_list):image_id = os.path.basename(image_path).split(".")[0]image = image_utils.read_image(image_path, size=(512, None), use_rgb=True)mask, face_rects = self.mask_creator.create_masks(image, mask_type="random", vis=vis)if out_dir:self.mask_creator.save_image(image, mask, face_rects, out_dir, image_id)if __name__ == '__main__':image_dir = "./facemask/test_image"  # 人脸图片out_dir = "./output"  # 生成戴口罩人脸输出目录fm = FaceMaskDemo()fm.create_wear_mask_faces(image_dir, out_dir, vis=True)

(4)生成戴口罩人脸效果展示

原图 合成带口罩图


3. 生成戴口罩数据集和源码下载

下载地址包含内容有:​​​​​​​戴口罩人脸数据集和生成戴口罩人脸数据

  1. 包含5个数据集:  facemask-train1,  facemask-train2,facemask-train3,  synthetic-train1,synthetic-train2 ,facemask-test ,总共约有50000+的数据:
  2. 生成戴口罩人脸代码: python create_facemask.py


4. 戴口罩人脸检测和戴口罩识别(含Python Android源码)

准备好人脸数据集和戴口罩人脸数据集,下一步就可以开始训练戴口罩识别模型,请参考:

https://panjinquan.blog.csdn.net/article/details/125428609https://panjinquan.blog.csdn.net/article/details/125428609

戴口罩人脸数据集和戴口罩人脸生成方法相关推荐

  1. Pytorch实现戴口罩人脸检测和戴口罩识别(含训练代码 戴口罩人脸数据集)

    Pytorch实现戴口罩人脸检测和戴口罩识别(含训练代码 戴口罩人脸数据集) 目录 Pytorch实现戴口罩人脸检测和戴口罩识别(含训练代码 戴口罩人脸数据集) 1.戴口罩识别的方法 (1)基于多类别 ...

  2. 万张PubFig人脸数据实现基于python+OpenCV的人脸特征定位程序(1)

    在最近刷今日头条以及其他媒体软件时,经常会发现一些AI换脸的视频,于是我想,可不可以自己实现一个可以进行人脸识别的软件程序.我的具体流程是先配合python网络爬虫先进行万张PubFig人脸公共图片的 ...

  3. 虹软人脸识别 - 采用数据库存取人脸特征数据

    虹软人脸识别 - 采用数据库存取人脸特征数据 前几天有个朋友遇到了个问题,他在使用虹软的人脸识别引擎时,想更换一下人脸识别的存储方式,原本demo中使用的是文件的方式进行存储,而他想要通过数据库的方式 ...

  4. vc中人脸识别数据导入mysql_虹软人脸识别 - 采用数据库存取人脸特征数据

    虹软人脸识别 - 采用数据库存取人脸特征数据 前几天有个朋友遇到了个问题,他在使用虹软的人脸识别引擎时,想更换一下人脸识别的存储方式,原本demo中使用的是文件的方式进行存储,而他想要通过数据库的方式 ...

  5. 智能抗疫 | 戴口罩人脸数据助力科技防疫

    新冠肺炎疫情防控牵动着国人的心,同时也是中国科技实力的一次临场考验."提升科技防控疫情力度,积极为打赢疫情防控阻击战作出贡献."1月29日,国资委主任郝鹏表示.帮助安检及医护人员提 ...

  6. 楚留香ai人脸识别_戴口罩居然也能人脸识别?这些AI黑科技真的藏不住了.........

    当人工智能遇见影像技术,将会释放出多少意想不到的巨大能量? 「喔图·知图实验室」瞄准当下的影像痛点,持续发力升级AI黑科技,带来两大必杀技--人脸识别再度升级.AI智能旋转校正. 戴口罩也能识别--人 ...

  7. 基于Python深度学习的人脸识别考勤(戴口罩、多人)

    该"基于深度识别的人脸识别线下课堂考勤"系统有"人脸识别考勤","考勤信息统计"等主要功能组成,其中戴口罩识别及多人识别均可成功实现.涉及& ...

  8. 戴眼镜检测和识别2:Pytorch实现戴眼镜检测和识别(含戴眼镜数据集和训练代码)

    Pytorch实现戴眼镜检测和识别(含戴眼镜数据集和训练代码) 目录 Pytorch实现戴眼镜检测和识别(含戴眼镜数据集和训练代码) 1.戴眼镜检测和识别方法 2.戴眼镜数据集 (1)戴眼镜数据集说明 ...

  9. 基于人脸识别的“带口罩”系统-python完整实现

    目录 0 前言 1 设计目的 2 任务与要求 3 设计原理 3.1 人脸检测与人脸识别概述 3.2人脸表征检测(五官定位) 3.3 dlib库的简介 3.4 Tkinter的简介 4 系统的建立 4. ...

  10. 《OpenCv视觉之眼》Python图像处理十九:Opencv图像处理实战四之通过OpenCV进行人脸口罩模型训练并进行口罩检测

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

最新文章

  1. TensorFlow实现多层感知机函数逼近
  2. 双显卡单独分辨率_CPU、GPU双重碾压!AMD RX 6000系列显卡正式发布 16G显存吊锤RTX 30...
  3. MySQL性能优化步骤
  4. Mysql 行转列,列转行
  5. 3. 机器学习中为什么需要梯度下降?梯度下降算法缺点?_一起学习西瓜书2
  6. .vue文件 转换成html,在vue中把含有html标签转为html渲染页面的实例
  7. Leetcode 好题
  8. 5G全息展示系统黑科技助力进博会,微美全息引领AR+AI全息通讯直播应用
  9. 【eoeAndroid社区索引】android数据存储之SQLite教程实例汇总
  10. 迅为4412开发平台Zigbee模块在物联网智能家居中的应用
  11. python爬取全球历年GDP数据
  12. 史上最全的程序员求职渠道总结
  13. win10如何关机时显示停止服务器,Win10系统关机时总提示此应用程序阻止关机如何解决...
  14. 个人日记-《学习究竟是什么》读后感-2020/6/21
  15. 西部数据推出10TB容量监控级硬盘
  16. ArcMap客户端——将shp属性表导出为excel
  17. project标签爆红:“unexpected markup <!d (position: START_DOCUMENT seen \r\n<!d... @2:4) maven依赖报错
  18. Shell中ls -l 与 ll 的区别
  19. 揭秘!杀毒软件公司的诱捕蜜罐
  20. Gingko Framework:session的使用

热门文章

  1. Disease Ontology:人类疾病分类数据库
  2. uboot开机logo
  3. 10月24日杨力祥老师谈话有感[转]
  4. 由于没有远程桌面授权服务器可以提供许可证,远程会话被中断。
  5. python抓取微博数据_技术入门 | python利用微博api获取数据
  6. 精讲贪吃蛇(c语言篇)(代码可直接取)
  7. pta c语言编程答案,PTA 程序设计 单选题-期末复习
  8. SRC漏洞挖掘之信息收集
  9. 收银系统 mysql数据库_解决哗啦啦收银系统数据库备份问题
  10. 创新创业_创业基础_课后作业