当前位置:网站首页>戴口罩人臉數據集和戴口罩人臉生成方法
戴口罩人臉數據集和戴口罩人臉生成方法
2022-06-29 00:38:00 【pan_jinquan】
戴口罩人臉數據集和戴口罩人臉生成方法
目錄
4. 戴口罩人臉檢測和戴口罩識別(含Python Android源碼)
目前網上已經開源了很多免費的人臉識別/人臉檢測數據集,比如常見的LFW,FDDB,WIDER FACE,300W等,估計加起來都有好幾個憶了。但這些人臉數據絕大部分都是不戴口罩的人臉,不能直接用於戴口罩識別中。網上也有少許開源的戴口罩人臉數據集,鄙人花了點時間,整理一下目前常見的戴口罩人臉數據集,以及戴口罩人臉數據的合成/生成方法。
- 包含5個數據集: facemask-train1, facemask-train2,facemask-train3, synthetic-train1,synthetic-train2 ,facemask-test ,總共約有50000+的數據:
- 生成戴口罩人臉代碼: python create_facemask.py
項目數據和生成戴口罩人臉源碼下載地址:戴口罩人臉數據集和生成戴口罩人臉數據
1.戴口罩人臉數據集
(1)開源數據集-戴口罩人臉數據集
一些開源的,免費的戴口罩人臉數據集,download下來,發現這些開源的數據比較髒,有挺多也是標注錯誤的,需求自己清洗一下哦~
| 數據集 | 說明 |
| virus-mask-dataset |
|
| MaskedFace-Net |
|
| Real-World Masked Face Datase |
(2)生成戴口罩人臉的數據集
網上絕大部分人臉數據都是不戴口罩的人臉,不能直接用於戴口罩識別中。鑒於此,我們可以考慮自己合成/生成戴口罩的人臉數據,以下是鄙人收藏和整理的戴口罩人臉數據集和合成的數據集,總共約有50000+的數據:
| 數據集 | 說明 |
| facemask-train1 |
|
| facemask-train2 |
|
| facemask-train3 |
|
| synthetic-train1 |
|
| synthetic-train2 |
|
| facemask-test |
|
2.戴口罩人臉生成方法
(1)生成戴口罩人臉思路
- 首先進行人臉檢測和人臉關鍵點檢測
- 根據人臉關鍵點,計算臉頰的寬度和鼻梁比特置等比特置信息,同理,需要計算出口罩模板的大小、方向和比特置;
- 最後把口罩模板貼在人臉比特置上,等到合成的戴口罩人臉圖片
一些戴口罩生成代碼參考:
GitHub - sevenHsu/FaceMask_CelebA: Simulated masked face with dataset CelebA
給人臉戴上口罩,Python實戰項目來了_我愛Python數據挖掘的博客-CSDN博客
我測試了目前網上的生成戴口罩代碼,對於已經矯正的人臉,生成效果還是不錯的,但如果原始人臉本身就是傾斜(歪頭),這時直接使用原始代碼,合成的效果就很差了,在此基礎上,我做了優化工作:
- 增加了口罩模板,共有29種不同類型的口罩模板,提供合成口罩數據的多樣性
- 優化了口罩傾斜角度,使得人臉傾斜(歪頭)時,合成的效果也不錯
- 優化了人臉檢測,采用輕量化人臉檢測,加速生成速度
| 原始圖片 | 原始代碼生成戴口罩 | 優化後生成戴口罩 |
![]() | ![]() | ![]() |
| 對於已經矯正的人臉,生成效果還是不錯的,但如果原始人臉本身就是傾斜(歪頭),這時直接使用原始代碼,合成的效果就很差了 | ||
(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 : [email protected]
@Date : 2022-06-25 22:23:11
@Brief : 生成戴口罩人臉數據集
"""
import os
import sys
sys.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_utils
class 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. 生成戴口罩數據集和源碼下載
下載地址包含內容有:
https://mp.weixin.qq.com/s/4dtC9CeP50M-3nn3xel1Ow
- 包含5個數據集: facemask-train1, facemask-train2,facemask-train3, synthetic-train1,synthetic-train2 ,facemask-test ,總共約有50000+的數據:
- 生成戴口罩人臉代碼: python create_facemask.py

4. 戴口罩人臉檢測和戴口罩識別(含Python Android源碼)
准備好人臉數據集和戴口罩人臉數據集,下一步就可以開始訓練戴口罩識別模型,請參考:
边栏推荐
- scp拷贝文件夹
- Structure of the actual combat battalion | module 5
- 请问同花顺上开户安全吗
- User login (remember the user) & user registration (verification code) [using cookie session technology]
- Daily question 1: remove elements
- Analysis of basic structure and working principle of slip ring
- 6.28 learning content
- JVM底层又是如何实现synchronized的
- Cross domain problem of canvas drawing caused by background image cache
- Give you a project, how will you carry out performance testing (I)
猜你喜欢

Xiaobai's e-commerce business is very important to choose the right mall system!

旋轉接頭安裝使用注意事項

Comparison between winding process and lamination process

这玩意叫跳表?
![[communication] wide band source DOA estimation method based on incoherent signal subspace (ISM)](/img/5d/bee9a6e50384a7e05e9a71e9fbed9a.jpg)
[communication] wide band source DOA estimation method based on incoherent signal subspace (ISM)

Structure of the actual combat battalion | module 5

Excel使用过程中的参考资料

Operation level smart campus system source code smart campus applet source code + electronic class card + face recognition system

手下两个应届生:一个踏实喜欢加班,一个技术强挑活,怎么选??

How to guarantee the delivery quality through the cloud effect test plan
随机推荐
Basic use of Chrome browser
[agile 5.1] core of planning: user stories
10. Yolo series
滑环的基本结构及工作原理分析
Nodejs安装和下载
每日一题:数组中数字出现的次数2
EditText监听焦点
FATAL ERROR: Could not find ./bin/my_print_defaults的解决办法
Matrix compression
12.物体检测Mask-Rcnn
be based on. NETCORE development blog project starblog - (13) add friendship link function
Cross domain problem of canvas drawing caused by background image cache
Windows平台下安装MySQL(附:Navicat Premium 12 “使用” 教程)
旋轉接頭安裝使用注意事項
ES6 module
Common mistakes in software testing
[communication] wide band source DOA estimation method based on incoherent signal subspace (ISM)
The magical zero knowledge proof can not only keep secrets, but also make others believe you!
Go1.18 new feature: discard strings Title Method, a new pit!
Introduction to four MySQL engines











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