基于OpenCV仿射变换的人脸口罩数据生成方法技术

技术编号:34851544 阅读:29 留言:0更新日期:2022-09-08 07:51
本发明专利技术公开了一种基于OpenCV仿射变换的人脸口罩数据生成方法,它是一种基于Opencv仿射变换的根据人脸图像自动生成佩戴口罩的人脸图像的方法,能够根据需要大批量的制作佩戴口罩的人脸图像数据库,用于一些和口罩相关的人脸检测研究。该方法通过使用mediapipe人脸检测算法,检测到人脸关键点,然后根据关键点的坐标,对口罩图片进行仿射变换,覆盖在选定的关键点处,生成人脸口罩图片。本发明专利技术方法的口罩生成方法相比于其他方法,首次通过HSV颜色通道对口罩的亮度进行调整,使生成的口罩图像与人脸图像的亮度平均值相同,使生成图片更真实。真实。

【技术实现步骤摘要】
基于OpenCV仿射变换的人脸口罩数据生成方法


[0001]本专利技术涉及数字图像处理
,具体涉及一种基于基于OpenCV仿射变换的人脸口罩数据生成方法。

技术介绍

[0002]研究表明,新冠病毒主要依靠呼吸通过空气进行传播,佩戴口罩是防止新冠病毒的传播的主要途径之一,尤其是在新冠经过了多次变异后,佩戴口罩可以很好的对自己和周围的人提供保护,极大降低传染风险。人工检查口罩佩戴情况不仅效率低下,而且耗费大量的人力物力。因此,通过人工智能进行口罩佩戴检测成为了一个重要方法。
[0003]人工智能训练模型需要大量的数据作为样本进行学习,而口罩佩戴检测,就需要大量的人脸图片以及佩戴口罩的人脸图片。但是现在主要的数据库中有关佩戴口罩的人脸图片数据库相对较少,部分数据库主要还是依靠人工收集然后标定的方法获取,人工收集和标定往往需要耗费大量人力和物力,而且数据集分布往往不够均衡。而通过现有方法生成的人脸口罩图片往往存在口罩样式单一,口罩部分与原图片的光照环境存在较大差异,使得图片不真实,而且对于侧脸的情况生成的结果较差。而且只有佩戴口罩和未佩戴口罩两种情况,因此一些佩戴了口罩但是因为佩戴不标准导致露出了鼻子或嘴的情况无法正确识别。
[0004]因此通过Opencv仿射变换自动大批量的生成人脸口罩图片可以很好的减少数据分布不平衡的情况,并且能够根据不同的口罩图片生成不同的人脸佩戴口罩图片数据。

技术实现思路

[0005]本专利技术的目的是为解决上述问题,本专利技术提供了一种基于Opencv仿射变换的人脸口罩数据集生成方法,对硬件需求较低,可以在普通的笔记本电脑上进行快速的生成,并且可以根据环境光改变口罩亮度,使生成后的图像更接近真实图像。解决了人工收集数据集和标定所耗费的人力资源以及深度学习对人脸口罩数据集的大量需求。
[0006]为实现上述目的,本专利技术所采用以下的技术方案:一种基于仿射变换的人脸口罩图片生成方法,其特征在于使用仿射变换作为生成方法,包括:获取人脸图像,可以选择一些公开数据库或私有数据集中获取的人脸图像;获取口罩图像,包括各种不同样式,颜色,形状的口罩;通过手动标记的方式对口罩图像进行标记,并获得图像中口罩关键点的坐标;通过mediapipe的人脸检测算法检测数据集图像中的人脸位置和大小,并获取468个人脸关键点坐标;将人脸关键点选择包括覆盖鼻梁、覆盖鼻尖、露出鼻子、露出嘴巴等特征,得到需要被口罩覆盖的人脸区域关键点,并与口罩图片上数量相同的关键点进行一一对应,记录对应关键点在人脸图像的坐标和口罩图像的坐标;
根据人脸部分的亮度调整口罩的亮度;将所述的人脸图像和口罩图像进行关键点选取,每次选取三组对应的关键点,将人脸三个关键点覆盖的部分的像素值置为0,将口罩图像上的三个关键点按照人脸图像的关键点做仿射变换,仿射变换后原本口罩的三个关键点坐标会变成人脸的关键点坐标,将新坐标围成图形的外部像素值全部置为0,将两幅图片合并取最大值,得到局部覆盖口罩的人脸图像。重复此步骤,直到口罩完全覆盖人脸;手动标记口罩的关键点与人脸选中的关键点一一对应,进行仿射变换,将变换后的口罩覆盖在人脸上;循环处理的仿射变换生成的图像。
[0007]在调整口罩的亮度的过程中,使用HSV颜色通道分别获取人脸图像面部区域和口罩图像的亮度信息,并根据人脸图像面部区域的亮度平均值对口罩亮度进行缩放,使得口罩亮度与人脸面部亮度符合,包括:RGB颜色通道转HSV颜色通道,公式如下:RGB颜色通道转HSV颜色通道,公式如下:RGB颜色通道转HSV颜色通道,公式如下:其中,R,G,B分别对应原图像某一像素点的RGB颜色通道对应的值,H,S,V分别对应变换为HSV通道后三条通道对应的值,和分别为求矩阵最大值和最小值。
[0008]提取其中V通道的数据,并根据人脸关键点选出人脸区域,计算出该区域V通道的平均值。计算口罩图片的V通道平均值,对口罩图片的V通道值使用下面公式进行缩放,使口罩V通道平均值与人脸图像中人脸区域的V通道平均值相同,公式如下:其中,表示某一像素点的亮度值,表示通过关键点选定的人脸区域的亮度平均值,表示整个口罩图像口罩部分的亮度平均值,表示变换后对应像素的亮度值。
[0009]使用计算得到的新口罩V通道数据替换掉原本的V通道数据,并根据如下公式将HSV通道数据转换为RGB通道。获得亮度均值与人脸区域亮度均值的口罩图片,公式如下:HSV通道数据转换为RGB通道。获得亮度均值与人脸区域亮度均值的口罩图片,公式如下:
在上述一种基于仿射变换的人脸口罩生成方法中,根据获取的人脸图像关键点坐标和口罩图像关键点坐标进行仿射变换,将变换后的部分覆盖在人脸部分,公式如下:其中x,y为变换前点的坐标,对应口罩中选取的关键点坐标,u,v为变换后点的坐标,对应人脸中选取的关键点坐标。其中为变换参数,首先根据选取的三组坐标点计算出的值,然后再将整个原图像根据变换参数进行变换,得到变换后的图像。
[0010]在上述一种基于仿射变换的人脸口罩生成方法,所述的经过放射变换后的口罩覆盖人脸判断是否覆盖全部关键点,若否,继续进行仿射变换直到口罩完全覆盖人脸。
[0011]与现有技术相比,本方法生成的图片可以根据关键点的选取不同,生成不同种类佩戴方式的人脸口罩图片,使用mediapipe可以找到人脸上的468个关键点,可以根据需求选择更准确的想要覆盖部位,并且相比于传统的深度学习人脸检测算法,mediapipe更加迅速。仿射变换过程本身仅仅是一个数学计算过程,消耗的时间也相对较短。
附图说明
[0012]图1为本方法总体流程图;图2为mediapipe的人脸468关键点示意图。
具体实施方式
[0013]下面结合附图对本专利技术的技术方案进行具体的说明。
[0014]如图1所示,本专利技术提供了一种基于仿射变换的人脸口罩图像生成方法。其包括:S1,获取人脸图像,可以选择一些公开数据库和私有数据集中的人脸图像;S2,获取口罩图像,包括各种不同样式,颜色,形状的口罩,通过手动标记的方式对口罩图片进行标记,并获得图像中口罩的关键点坐标;S3,通过mediapipe的人脸检测算法检测数据集图像中的人脸位置和大小,并获取468个人脸关键点坐标。
[0015]S4,根据获取的人脸关键点坐标分别选中人脸部分和需要用口罩覆盖的部分;将人脸关键点选择包括覆盖鼻梁、覆盖鼻尖、露出鼻子、露出嘴巴等特征,得到需要被口罩覆盖的人脸区域关键点,并与口罩图片上数量相同的关键点进行一一对应,记录对应关键点在人脸图像的坐标和口罩图像的坐标;S5,根据人脸部分的亮度调整口罩的亮度;将所述的人脸图像和口罩图像进行关键点选取,每次选取三组对应的关键点,将人脸三个关键点覆盖的部分的像素值置为0,将口罩图像上的三个关键点按照人脸图像的关键点做仿射变换,仿射变换后原本口罩的三个关键点坐标会变成人脸的关键点坐标,将新坐标围成图形的外部像素值全部置为0,将两幅图片合并取最大值,得到局部覆盖口罩的人脸图像;重复此步骤,直到口罩完全覆盖人脸。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于仿射变换的人脸口罩图片生成方法,其特征在于:使用仿射变换作为生成方法,包括:S1.获取人脸图像,选择公开数据库和私有数据集中获取的人脸图片;S2.获取口罩图像,包括各种不同样式,颜色,形状的口罩;通过手动标记的方式口罩图片进行标记,并获得图片中口罩的关键点坐标;S3.通过mediapipe的人脸检测算法检测数据集图像中的人脸位置和大小,并获取468个人脸关键点坐标;S4.根据获取的人脸关键点坐标分别选中人脸部分和需要用口罩覆盖的部分;将人脸关键点选择包括覆盖鼻梁、覆盖鼻尖、露出鼻子、露出嘴巴特征,得到需要被口罩覆盖的人脸区域关键点,并与口罩图片上数量相同的关键点进行一一对应,记录对应关键点在人脸图像的坐标和口罩图像的坐标;S5.根据人脸部分的亮度调整口罩的亮度;将所述的人脸图像和口罩图像进行关键点选取,每次选取三组对应的关键点,将人脸三个关键点覆盖的部分的像素值置为0,将口罩图像上的三个关键点按照人脸图像的关键点做仿射变换,仿射变换后原本口罩的三个关键点坐标会变成人脸的关键点坐标,将新坐标围成图形的外部像素值全部置为0,将两幅图片合并取最大值,得到局部覆盖口罩的人脸图像;重复此步骤,直到口罩完全覆盖人脸;S6.手动标记口罩的关键点与人脸选中的关键点一一对应,进行仿射变换,将变换后的口罩覆盖在人脸上;循环处理的仿射变换生成的图像。2.根据权利要求1所述的一种基于仿射变换的人脸口罩生成方法,其特征在于,步骤S5所述的根据人脸部分的亮度调整口罩的亮度,是将人脸面部和口罩使用HSV颜色通道分别获取亮度信息,并且根据亮度平均值对口罩亮度进行缩放,使得口罩亮度与人脸面部亮度符合,包括:RGB颜色通道转...

【专利技术属性】
技术研发人员:梁士利侯睿陈泽坤
申请(专利权)人:东北师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1