首页 / 专利库 / 图形技术 / HSL色彩模式 / 人脸的定位方法和装置

人脸的定位方法和装置

阅读:79发布:2020-05-16

专利汇可以提供人脸的定位方法和装置专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种人脸的 定位 方法和装置,通过现场可编程 门 阵列FPGA实现,包括将采集到的被测用户的图像转换为预设 颜色 模型下的参数;从上述预设颜色模型的颜色空间的 色调 参数中查找与预设的人体肤色范围值匹配的色调参数作为被测用户的肤色色调值;对肤色色调值进行直方图统计得到各个色调组对应的频数;将频数中最大的频数的色调组对应的区域作为人脸区域;利用掩膜方法对人脸区域进行掩膜计算得到人脸掩膜;根据人脸掩膜对人脸进行定位;其利用了FPGA 硬件 ,原理简单、处理速度快且易实现。并且FPGA硬件结合直方图统计方法以及人脸的掩膜方法可以得到干净且完整的人脸区域,提高了人脸定位的精确度,使得整个方法实用性较好。,下面是人脸的定位方法和装置专利的具体信息内容。

1.一种人脸的定位方法,其特征在于,所述方法通过现场可编程阵列FPGA实现,包括:
将采集到的被测用户的图像转换到预设颜色模型下的参数,所述参数包括:色调饱和度亮度;所述预设颜色模型至少包括以下中的一种:HSV颜色模型、HSI颜色模型、HSB色彩模式和HSL色彩模式
从所述预设颜色模型的色调参数中查找与预设的人体肤色值范围匹配的色调参数作为所述被测用户的肤色色调值;其中,所述预设的人体肤色范围值划分为多个色调组;
对所述肤色色调值进行直方图统计,得到各个所述色调组对应的频数;
将所述频数中最大的频数的色调组对应的区域作为人脸区域;
利用掩膜方法对所述人脸区域进行掩膜计算,并根据得到的人脸掩膜进行人脸定位;
所述利用掩膜方法对所述人脸区域进行掩膜计算包括:
利用初步掩膜方法对所述人脸区域进行初步掩膜计算,得到初步掩膜;
对得到的所述初步掩膜进行垂直投影,得到初步掩膜的垂直投影结果;
对初步掩膜的垂直投影结果进行缩小掩膜处理,得到最终掩膜;
所述利用初步掩膜方法对所述人脸区域进行初步掩膜计算包括:
通过边界加法器计算人脸区域色调的右边界;通过边界比较器计算人脸区域色调的左边界;其中,计算人脸区域色调范围左边界的方法包括:通过边界比较器将频数最大的肤色色调值与人脸色调波动阈值进行比较;以及,在频数最大的肤色色调值大于人脸色调波动阈值的最大值时,选择加法器的计算结果作为人脸肤色色调值的左边界;在频数最大的肤色色调值小于人脸色调波动阈值的最小值时,选择0作为人脸肤色色调值的左边界;
通过控制模比较所述被测用户的图像中的所有肤色色调值是否介于人脸区域色调值范围的左边界与右边界之间,在检测结果为是时输出1,在检测结果为否时输出0;
所述对得到的所述初步掩膜进行垂直投影包括:
通过静态随机存取存储器SRAM将控制模块输入的肤色色调值对应的数据矩阵进行存储;通过矩阵累加器将存储在SRAM中的所述数据矩阵按列读出并按列累加求和,得到多个数据值;
所述对初步掩膜的垂直投影结果进行缩小掩膜处理包括:通过垂直投影比较器将多个按列累加后的数据值分别与设定的阈值进行比较;其中,所述阈值为根据被测用户的图像中人脸与整个图像的比例设定的值;当一列数据值大于所述阈值时,保持该列数据值不变;
当一列数据值小于所述阈值时,将该列数据值置0。
2.根据权利要求1所述的人脸的定位方法,其特征在于,从所述预设颜色模型的色调参数中查找与预设的人体肤色值范围匹配的色调参数作为所述被测用户的肤色色调值包括:
分别将所述预设颜色模型中输入的肤色色调值与预设的人体肤色值范围的左右边界进行比较,并在所述输入的肤色色调值介于所述预设的人体肤色范围值的左边界与右边界之间时,输出对应的肤色色调值。
3.根据权利要求2所述的人脸的定位方法,其特征在于,所述对所述肤色色调值进行直方图统计包括:
将每一个肤色色调值作为直方图中RAM的输入;其中,每个RAM对应一个所述色调组,每个RAM用于存储对应的所述色调组的频数;每当接收到一个肤色色调值,将所述肤色色调值所在色调组的频数加1。
4.根据权利要求3所述的人脸的定位方法,其特征在于,将所述频数中最大的频数的色调组对应的区域作为人脸区域包括:
逐一读取各个所述RAM中的频数;
通过频数比较器比较当前读取的频数和已存储的最大值的频数;若当前读取的频数大于已存储的最大值的频数,则使用上述当前读取的频数更新所述最大值的频数。
5.一种人脸的定位装置,其特征在于,包括:
转换模块,用于将采集到的被测用户的图像转换为预设颜色模型下的参数,所述参数包括:色调、饱和度和亮度;所述预设颜色模型至少包括以下中的一种:HSV颜色模型、HSI颜色模型、HSB色彩模式和HSL色彩模式;
肤色选择模块,用于从所述预设颜色模型的色调参数中查找与预设的人体肤色值范围匹配的色调参数,并将查找到的所述色调参数作为所述被测用户的肤色色调值;其中,所述预设的人体肤色范围值划分为多个色调组;
直方图统计模块,用于对所述肤色色调值进行直方图统计,得到各个所述色调组对应的频数;
最大值选择模块,用于在得到的各个所述色调组中选择频数最大的色调组并将该色调组对应的区域作为人脸区域;
掩膜计算模块,用于利用掩膜方法对所述人脸区域进行掩膜计算,得到人脸掩膜;
定位模块,用于根据所述人脸掩膜对人脸进行定位;
所述掩膜计算模块包括:初步掩膜模块、垂直投影模块和缩小掩膜模块;
所述初步掩膜模块包括:边界加法器,用于计算人脸区域色调的右边界;边界比较器,用于计算人脸区域色调的左边界;其中,计算人脸区域色调的左边界的方法包括:通将频数最大的肤色色调值与预设的人脸色调波动阈值进行比较;以及,在频数最大的肤色色调值大于人脸色调波动阈值的最大值时,选择边界加法器的计算结果作为人脸肤色色调值的左边界;在频数最大的肤色色调值小于人脸色调波动阈值的最小值时,选择0作为人脸肤色色调值的左边界;第一控制模块,用于比较所述被测用户的图像中的所有肤色色调值是否介于人脸区域色调值范围的左边界与右边界之间,在检测结果为是时输出1,在检测结果为否时输出0;
所述垂直投影模块包括:静态随机存取存储器SRAM,用于将控制模块输入的肤色色调值对应的数据矩阵进行存储;矩阵累加器,用于将存储在SRAM中的所述数据矩阵按列读出并按列累加求和,得到多个数据值;
所述缩小掩膜模块包括:垂直投影比较器,用于将多个按列累加后的数据值分别与设定的阈值进行比较;其中,所述阈值为根据被测用户的图像中人脸与整个图像的比例设定的;第二控制模块,用于在检测到每列累加后的数据值大于所述阈值时,保持该列数据值不变;在检测到每列累加后的数据值小于所述阈值时,将该列数据值置0。
6.根据权利要求5所述的人脸的定位装置,其特征在于,
所述肤色选择模块包括:两个色调值比较器,分别将所述预设颜色模型中输入的肤色色调值与预设的人体肤色范围值的左边界和右边界进行比较,并在所述输入的肤色色调值介于所述预设的人体肤色范围值的左边界与右边界之间时,输出对应的肤色色调值;
所述直方图统计模块包括:RAM,每个RAM的地址对应一个所述色调组,每个RAM用于存储对应的所述色调组的频数;
频数加法器,用于每当接收到一个肤色色调值,将所述肤色色调值所在的色调组的频数加1;
所述最大值选择模块包括:频数比较器,用于将当前读取的频数和已存储的最大值的频数进行比较;若当前读取的频数大于已存储的最大值的频数,则使用上述当前读取的频数更新所述最大值的频数。

说明书全文

人脸的定位方法和装置

技术领域

[0001] 本发明涉及图像分割领域,具体而言,涉及人脸的定位方法和装置。

背景技术

[0002] 疲劳驾驶已日趋成为导致交通事故的重要原因之一,为了预防和减少疲劳驾驶所带来的各种危害,目前采用的方法多是对驾驶员的眼睛进行监测,以确定其是否为疲劳驾驶。
[0003] 目前,对驾驶员的眼睛进行监测的方法有很多,其中,根据驾驶行为的监测方法和驾驶员生理特征相结合的方法最为理想的一种;基于该方法,目前常用的是一种基于图像/视频的疲劳驾驶监测系统,其通过高速摄像机实时采集驾驶员的头部图像,然后通过图像处理快速定位眼睛并对眼睛的状态进行识别分析,根据眼睛识别分析的结果估测驾驶员是否疲劳,从而达到疲劳驾驶监测的目的。
[0004] 目前,较通用的疲劳驾驶监测系统是用DSP芯片搭建的,这种系统外围电路复杂,设计、调试时间长,且移植性和扩展性差,且基于DSP上实现人眼定位的方法是基于Adaboost的人脸检测算法进行计算的,该算法是属于机器学习算法,计算过程极其复杂。
[0005] 发明人在研究中发现,上述系统进行人脸定位的方式实用性较差,针对这一问题,目前尚未提供有效的解决方法。

发明内容

[0006] 本发明的目的在于提供人脸的定位方法和装置,可以提高人脸定位的精确度,使得实用性较好。
[0007] 第一方面,本发明实施例提供了一种人脸的定位方法,所述方法通过现场可编程阵列FPGA实现,包括:
[0008] 将采集到的被测用户的图像转换到预设颜色模型下的参数,所述参数包括:色调饱和度亮度;所述预设颜色模型至少包括以下中的一种:HSV颜色模型、HSI颜色模型、HSB色彩模式和HSL色彩模式
[0009] 从所述预设颜色模型的色调参数中查找与预设的人体肤色值范围匹配的色调参数作为所述被测用户的肤色色调值;其中,所述预设的人体肤色范围值划分为多个色调组;
[0010] 对所述肤色色调值进行直方图统计,得到各个所述色调组对应的频数;
[0011] 将所述频数中最大的频数的色调组对应的区域作为人脸区域;
[0012] 利用掩膜方法对所述人脸区域进行掩膜计算,并根据得到的人脸掩膜进行人脸定位。
[0013] 结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,从所述预设颜色模型的色调参数中查找与预设的人体肤色值范围匹配的色调参数作为所述被测用户的肤色色调值包括:
[0014] 分别将所述预设颜色模型中输入的肤色色调值与预设的人体肤色值范围的左右边界进行比较,并在所述输入的肤色色调值介于所述预设的人体肤色范围值的左边界与右边界之间时,输出对应的肤色色调值。
[0015] 结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述利用直方图对所述肤色色调值进行统计包括:
[0016] 将每一个肤色色调值作为直方图中RAM的输入;其中,每个RAM对应一个所述色调组,每个RAM用于存储对应的所述色调组的频数;每当接收到一个肤色色调值,将所述肤色色调值所在色调组的频数加1。
[0017] 结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,将所述频数中最大的频数的色调组对应的区域作为人脸区域包括:
[0018] 逐一读取各个所述RAM中的频数;
[0019] 通过频数比较器比较当前读取的频数和已存储的最大值的频数;若当前读取的频数大于已存储的最大值的频数,则使用上述当前读取的频数更新所述最大值的频数。
[0020] 结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述利用掩膜方法对所述人脸区域进行掩膜计算,得到人脸掩膜包括:
[0021] 利用初步掩膜方法对所述人脸区域进行初步掩膜计算,得到初步掩膜;
[0022] 对得到的所述初步掩膜进行垂直投影,得到初步掩膜的垂直投影结果;
[0023] 对初步掩膜的垂直投影结果进行缩小掩膜处理,得到最终掩膜。
[0024] 结合第一方面的第四种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述利用初步掩膜方法对所述人脸区域进行初步掩膜计算包括:
[0025] 通过边界加法器计算人脸区域色调的右边界;通过边界比较器计算人脸区域色调的左边界;其中,计算人脸区域色调范围左边界的方法包括:通过边界比较器将频数最大的肤色色调值与人脸色调波动阈值进行比较;以及,在频数最大的肤色色调值大于人脸色调波动阈值的最大值时,选择加法器的计算结果作为人脸肤色色调值的左边界;在频数最大的肤色色调值小于人脸色调波动阈值的最小值时,选择0作为人脸肤色色调值的左边界;
[0026] 通过第一控制模比较所述被测用户的图像中的所有肤色色调值是否介于人脸区域色调值范围的左边界与右边界之间,在检测结果为是时输出1,在检测结果为否时输出0。
[0027] 结合第一方面的第四种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述对得到的所述初步掩膜进行垂直投影包括:
[0028] 通过静态随机存取存储器SRAM将控制模块输入的肤色色调值对应的数据矩阵进行存储;通过矩阵累加器将存储在SRAM中的所述数据矩阵按列读出并按列累加求和,得到多个数据值;
[0029] 所述对初步掩膜的垂直投影结果进行缩小掩膜处理包括:通过垂直投影比较器将多个按列累加后的数据值分别与设定的阈值进行比较;其中,所述阈值为根据被测用户的图像中人脸与整个图像的比例设定的值;当一列数据值大于所述阈值时,保持该列数据值不变;当一列数据值小于所述阈值时,将该列数据值置0。
[0030] 第二方面,本发明实施例还提供了一种人脸的定位装置,包括:
[0031] 转换模块,用于将采集到的被测用户的图像转换为预设颜色模型下的参数,所述参数包括:色调、饱和度和亮度;所述预设颜色模型至少包括以下中的一种:HSV颜色模型、HSI颜色模型、HSB色彩模式和HSL色彩模式;
[0032] 肤色选择模块,用于从所述预设颜色模型的色调参数中查找与预设的人体肤色值范围匹配的色调参数,并将查找到的所述色调参数作为所述被测用户的肤色色调值;其中,所述预设的人体肤色范围值划分为多个色调组;
[0033] 直方图统计模块,用于对所述肤色色调值进行直方图统计,得到各个所述色调组对应的频数;
[0034] 最大值选择模块,用于在得到的各个所述色调组中选择频数最大的色调组并将该色调组对应的区域作为人脸区域;
[0035] 掩膜计算模块,用于利用掩膜方法对所述人脸区域进行掩膜计算,得到人脸掩膜;
[0036] 定位模块,用于根据所述人脸掩膜对人脸进行定位。
[0037] 结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,[0038] 所述肤色选择模块包括:两个色调值比较器,分别将所述预设颜色模型中输入的肤色色调值与预设的人体肤色范围值的左边界和右边界进行比较,并在所述输入的肤色色调值介于所述预设的人体肤色范围值的左边界与右边界之间时,输出对应的肤色色调值;
[0039] 所述直方图统计模块包括:RAM,每个RAM的地址对应一个所述色调组,每个RAM用于存储对应的所述色调组的频数;
[0040] 频数加法器,用于每当接收到一个肤色色调值,将所述肤色色调值所在的色调组的频数加1;
[0041] 所述最大值选择模块包括:频数比较器,用于将当前读取的频数和已存储的最大值的频数进行比较;若当前读取的频数大于已存储的最大值的频数,则使用上述当前读取的频数更新所述最大值的频数。
[0042] 结合第二方面的第一种可能的实施方式,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述掩膜计算模块包括:初步掩膜模块、垂直投影模块和缩小掩膜模块;
[0043] 所述初步掩膜模块包括:边界加法器,用于计算人脸区域色调的右边界;边界比较器,用于计算人脸区域色调的左边界;其中,计算人脸区域色调的左边界的方法包括:通将频数最大的肤色色调值与预设的人脸色调波动阈值进行比较;以及,在频数最大的肤色色调值大于人脸色调波动阈值的最大值时,选择边界加法器的计算结果作为人脸肤色色调值的左边界;在频数最大的肤色色调值小于人脸色调波动阈值的最小值时,选择0作为人脸肤色色调值的左边界;第一控制模块,用于比较所述被测用户的图像中的所有肤色色调值是否介于人脸区域色调值范围的左边界与右边界之间,在检测结果为是时输出1,在检测结果为否时输出0;
[0044] 所述垂直投影模块包括:静态随机存取存储器SRAM,用于将控制模块输入的肤色色调值对应的数据矩阵进行存储;矩阵累加器,用于将存储在SRAM中的所述数据矩阵按列读出并按列累加求和,得到多个数据值;
[0045] 所述缩小掩膜模块包括:垂直投影比较器,用于将多个按列累加后的数据值分别与设定的阈值进行比较;其中,所述阈值为根据被测用户的图像中人脸与整个图像的比例设定的;第二控制模块,用于在检测到每列累加后的数据值大于所述阈值时,保持该列数据值不变;在检测到每列累加后的数据值小于所述阈值时,将该列数据值置0。
[0046] 本发明实施例提供的一种人脸的定位方法和装置,包括:获取被测用户的图像对应的预设颜色模型;之后,在预设颜色模型中选择并输出预设人体肤色区域对应的肤色色调值;然后,对输出的肤色色调值进行直方图统计,并从统计结果中查找得到预设的各个色调组对应的频数最大值的色调组,并将该色调组对应的区域作为人脸区域;最后,利用掩膜方法对人脸区域进行掩膜计算,得到人脸掩膜,以便根据人脸掩膜对人眼进行定位,与现有技术中的进行人眼定位的方式均不理想相比,其利用了FPGA硬件,该方式原理简单、处理速度快且容易实现,并且通过FPGA的硬件结合直方图的统计方法以及人脸的掩膜方法可以得到完整的人脸掩膜的区域,该区域干净,且完全覆盖了人眼区域,基于上述人脸区域进行人眼定位也使得人眼定位的精确度较高且整个方法实用性较好。
[0047] 为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

[0048] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0049] 图1示出了本发明实施例所提供的一种人脸的定位方法的流程图
[0050] 图2示出了本发明实施例所提供的一种人脸的定位装置的整体结构示意图。
[0051] 主要元件符号说明:
[0052] 11、转换模块;12、肤色选择模块;13、直方图统计模块;14、最大值选择模块;15、掩膜计算模块;16、定位模块。

具体实施方式

[0053] 下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0054] 考虑到现有技术中应用于检测用户是否疲劳驾驶中的人脸定位方法均存在实用性较差的问题,本发明提供了一种通过FPGA(Field-Programmable Gate Array,现场可编程门阵列)实现的人脸的定位方法和装置,其利用了FPGA的硬件,该方式原理简单、处理速度快且容易实现,并且通过FPGA的硬件结合直方图的统计方法以及人脸的掩膜方法可以得到完整的人脸掩膜的区域,整个方法实用性较好。并且,上述人脸掩膜的区域干净,且完全覆盖了人眼区域,基于上述人脸区域进行人眼定位,也能够使得人眼定位的精确度较高。
[0055] 参考图1,本发明实施例提供了一种人脸的定位方法,所述方法通过现场可编程门阵列FPGA实现,具体由转换模块11、肤色选择模块12、直方图统计模块13、最大值选择模块14、掩膜计算模块15和定位模块16实现(上述模块具体如图2所示),所述方法包括:
[0056] S101、将采集到的被测用户的图像转换为HSV颜色模型下的参数,所述参数包括:色调、饱和度和亮度;所述预设颜色模型至少包括以下中的一种:HSV颜色模型、HSI颜色模型、HSB色彩模式和HSL色彩模式。
[0057] 本实施例中,被测用户的图像可以通过摄像机,照相机等的图像采集装置进行采集;为了更好进行后续对人脸进行定位,先将采集的用户图像的颜色模型进行转换,(本实施例中均以转为HSV颜色模型为例进行说明),即将用户图像的颜色模型转换为HSV颜色模型,并在HSV颜色模型中获取有效的参数;上述有效的参数包括:色调、饱和度和亮度,以便后续根据这些有效的参数进行到人脸定位。
[0058] S102、从所述HSV颜色模型的色调参数中查找与预设的人体肤色范围值匹配的色调参数,将查找到的所述色调参数作为所述被测用户的肤色色调值;其中,所述预设的人体肤色范围值划分为多个色调组。
[0059] 具体的,预设的人体肤色范围值是一个近似确定的值,如在HSV颜色空间中,当H的取值在0度-360度分布时,人体肤色的色调值一般在2度-50度之间等;在上述查找的过程中,优选的查找色调与预设的人体肤色范围值相匹配的,这样能够保证准确的确定出人体肤色部分的图像,便于后续精确的定位人脸。
[0060] 实际中,在系统的实际应用中,人脸在整个肤色范围占的比重是较大的,且人脸的色调值变化不会很大,取人脸的色调值±x(其中,x为人脸色调变化的一个阈值,根据不同的光照,x的取值可能会有所差别,本实施例中x可以取10)的色调范围用于人脸的粗定位;基于此,本实施例中,优选为将预设的人体肤色范围值优选为划分为多个色调组,如1度-10度为一组,10度-20度为一组,20度-30度为一组,30度-40度为一组,40度-50度为一组等。
[0061] S103、对所述肤色色调值进行直方图统计,得到各个所述色调组对应的频数。
[0062] 具体的,将上述各个所述色调组以及各个色调组对应的频数均表示在直方图上,以对各个色调组及其对应的频数进行统计,用以进行直观的显示,便于用户观看。
[0063] S104、将所述频数中最大的频数的色调组对应的区域作为人脸区域。
[0064] 由于人脸在整个肤色范围内占的比重较大,其意味着人脸部分对应的色调组对应的频数最多,且人脸的色调值变化不会很大,故在FPGA中实现在得到各个所述色调组中选择对应的频数最大的色调组,并将该最大的频数的色调组对应的区域作为人脸区域。
[0065] S105、利用掩膜方法对人脸区域进行掩膜计算,并根据得到的人脸掩膜对人脸进行定位。
[0066] 本步骤中的掩膜计算是利用FPGA的硬件实现的,其计算过程如下:利用上述步骤得到的人脸区域对应的色调值计算人脸区域色调的边界,然后将整个图像转换后的色调值与得到的人脸区域色调的边界进行比较,将整个图像中介于上述得到的人脸区域色调的左边界和右边界之间的色调值置1(本实施例中,1对应的为白色),将整个图像中介于上述预设的人脸区域色调的左边界和右边界之外的色调值置0(本实施例中,0对应着黑色),从而可以得到人脸部分为白色,其他部分为黑色的图像,通过该方法即对人脸进行定位。
[0067] 本发明实施例提供的一种人脸的定位方法,与现有技术中的进行人眼定位的方式均不理想相比,其利用了FPGA的硬件,该方式原理简单、处理速度快且容易实现,并且通过FPGA的硬件结合直方图的统计方法以及人脸的掩膜方法可以得到完整的人脸掩膜的区域,该区域干净,且完全覆盖了人眼区域,基于上述人脸区域进行人眼定位也使得人眼定位的精确度较高且整个方法实用性较好。
[0068] 如上所述,本实施例中的人脸的定位方法是基于FPGA实现的,故上述步骤102的具体实现过程如下:
[0069] 步骤102的目的为了获取人体肤色的色调值,其原理如下:如果输入的色调值在肤色区域内,则输出该色调值,参与下级运算;如果输入的色调值不在肤色区域内,则不输出该色调。
[0070] 如上所述,本实施例中的人脸的定位方法是基于FPGA实现的,故上述步骤103的具体实现过程如下:
[0071] 具体的,在统计每一个肤色色调值对应的数据时,按照频数分布表,在平面直坐标系中,使横轴标出每个预设的人体肤色范围值划分的每个色调组的端点,使纵轴表示每个色调组对应的频数,每个矩形的高代表对应的频数,上述表示方式的统计图则为频数分布直方图。因此计算图像数据的直方图,先确定组数(将每一个肤色色调值分成几个范围)和组距(每个组包含的肤色色调值数值对应的宽度),再去统计每组数据的频数。其中,假设输入的数据矩阵共有m个数据(即人体肤色色调值),分成n组(对人体肤色色调值分组后的结果),本实施例中,每组只包含左端点,不含右端点。
[0072] 在硬件实现的时候,将每一个肤色色调值作为FPGA直方图中频数存储器的地址输入;其中,每个频数存储器(如可以为RAM存储器,还可以为其他存储器)的地址对应一个所述色调组,每个频数存储器用于存储对应的所述色调组的频数;每当接收到一个肤色色调值,读取该肤色色调值对应地址的频数存储器中的频数,并通过频数加法器将读取的所述频数存储器的频数加1,然后再写回地址中,当数据全部处理完,每个肤色色调值对应的频数便都统计出来,继续存在频数存储器中。此时再读取频数存储器中存储的各个数据的频数,送到通过频数累加器中求和,即可得到每个组的频数。
[0073] 计算直方图分三个阶段实现:阶段1,计算各个数据的频数;阶段2,计算各个组的频数;阶段3,频数存储器初始化(清零)。
[0074] 如上所述,本实施例中的人脸的定位方法是基于FPGA实现的,故上述步骤104的具体实现过程如下:
[0075] 逐一读取各个频数存储器RAM中的频数;通过频数比较器比较当前读取的频数和上一个存储的最大值的频数;若当前读取的频数大于上一个存储的最大值的频数,则使用上述当前读取的频数更新所述最大值的频数。
[0076] 上述过程实质上就是在得到的频数中找最大值,找最大值的过程其实就是不断比较当前数据和上一个数据的大小,如果当前数据较大,则更新最大值及其下标,否则保留原来存储的最大值及其下标。
[0077] 本实施例中的频数比较器,用于比较当前输入数据和上一个存储的最大值的大小;最大值寄存器,用于存储根据比较结果更新最大值;最大值下标寄存器,用于根据比较结果更新最大值下标。
[0078] 如上所述,本实施例中的人脸的定位方法是基于FPGA实现的,故上述步骤105的具体实现过程如下:首先,利用初步掩膜方法对所述人脸区域进行初步掩膜计算,得到初步掩膜;
[0079] 具体的,初步掩膜的技术方法如下:利用得到的人脸区域对应的色调值计算预设的人脸区域色调的边界,然后将整个图像转换后的色调值与得到的预设的人脸区域色调的边界进行比较,将整个图像中介于上述人脸区域色调的左边界和右边界之间的色调值置1,将整个图像中介于上述人脸区域色调的左边界和右边界之外的色调值置0,从而可以得到含有人脸部分的二值图像(即0和1对应的图像)。
[0080] 考虑到初步掩膜得到的图像中仍然有很多干扰因素的存在,这些干扰因素会影响对人脸的定位,故还需要对得到的所述初步掩膜进行垂直投影,得到初步掩膜的垂直投影结果。
[0081] 最后在对初步掩膜的垂直投影进行缩小掩膜处理,得到最终掩膜。具体的,缩小掩膜处理即是将触摸掩膜值在进一步的进行缩小处理,保留有效的人脸部分的掩膜值,删除无效的其他部分的掩膜值,即可得到精确的人脸掩膜值,用以更好的实现对人脸进行定位。
[0082] 如上所述,本实施例中的人脸的定位方法是基于FPGA实现的,故上述利用初步掩膜方法对得到的所述初步掩膜进行垂直投影包括:
[0083] 通过静态随机存储器SRAM将控制模块输入的肤色色调值对应的数据矩阵进行存储;通过矩阵累加器将存储在SRAM中的所述数据矩阵按列读出并按列累加求和,得到多个按列累加后的数据值。
[0084] 垂直投影的原理实现过程如下:垂直投影分两个阶段实现,阶段1,将输入的数据矩阵存储到SRAM中;阶段2,将存储在SRAM中的数据按列读出并累加求和。
[0085] 如上所述,本实施例中的人脸的定位方法是基于FPGA实现的,故上述利用FPGA初步掩膜方法对初步掩膜的垂直投影进行缩小掩膜处理包括:
[0086] 通过垂直投影比较器将多个按列累加后的数据值分别与设定的阈值进行比较;其中,所述阈值为根据被测用户的图像中人脸与整个图像的比例设定的(如设定为图像的1/3等);在检测到每列累加后的数据值大于所述阈值时,保持该列数据值不变;在检测到每列累加后的数据值小于所述阈值时,将该列数据值置0。
[0087] 本实施例提供的人脸的定位方法可以用于进行人眼定位分析,还可以用于人体其他五官的定位分析;基于人脸的定位方法可以用于进行人眼定位分析,可以采用如下方法:在得到人脸掩膜值的同时,在对HSV颜色模型中的亮度参数V分量进行计算,然后结合亮度参数V和人脸掩膜值计算(或者说获取)人脸部分复杂度图,最后根据得到的上述人脸部分复杂度图确定人眼的坐标,以对人眼进行定位。
[0088] 另外,人眼定位可以用于对驾驶员的疲劳程度的分析,还可以用于进行人的身份的识别等;前者的具体方法可以包括:根据所述人眼所在区域对应的所述HSV颜色模型中的亮度参数计算所述被测用户的疲劳程度,即对两只眼睛区域的亮度进行分析,计算其疲劳程度。
[0089] 参考图2,本发明实施例还提供了一种人脸的定位装置,其用于实现上述人脸定位方法,上述人脸的定位装置具体包括:
[0090] 转换模块11,用于将采集到的被测用户的图像转换为预设颜色模型下的参数,所述参数包括:色调、饱和度和亮度;所述预设颜色模型至少包括以下中的一种:HSV颜色模型、HSI颜色模型、HSB色彩模式和HSL色彩模式。
[0091] 肤色选择模块12,用于从所述预设颜色模型的色调参数中查找与预设的人体肤色值范围匹配的色调参数,并将查找到的所述色调参数作为所述被测用户的肤色色调值;其中,所述预设的人体肤色范围值划分为多个色调组。
[0092] 直方图统计模块13,用于对所述肤色色调值进行直方图统计,得到各个所述色调组对应的频数。
[0093] 最大值选择模块14,用于在得到的各个所述色调组中选择频数最大的色调组并将该色调组对应的区域作为人脸区域。
[0094] 掩膜计算模块15,用于利用掩膜方法对所述人脸区域进行掩膜计算,得到人脸掩膜。
[0095] 定位模块16,用于根据所述人脸掩膜对人脸进行定位。
[0096] 本发明实施例提供的一种人眼的定位方法人脸的定位方法,与现有技术中的进行人眼定位的方式均不理想相比,其利用了FPGA的硬件,该方式原理简单、处理速度快且容易实现,并且通过FPGA的硬件结合直方图的统计方法以及人脸的掩膜方法可以得到完整的人脸掩膜的区域,该区域干净,且完全覆盖了人眼区域,基于上述人脸区域进行人眼定位也使得人眼定位的精确度较高且整个方法实用性较好。
[0097] 同人脸的定位方法相同,本实施例提供的人脸的定位装置也是基于FPGA实现的,故上述定位装置中的具体实现过程如下:
[0098] 肤色选择模块12包括:两个色调值比较器(相当于上述第一色调值比较器和第二色调值比较器,分别将预设颜色模型中(即HSV颜色模型中)输入的肤色色调值与预设的人体肤色范围值的左边界和右边界进行比较,只有在并在所述输入的肤色色调值介于所述预设的人体肤色范围值的左边界与右边界之间时,才通过控制存器进行与门求与运算后输出对应的肤色色调值。
[0099] 直方图统计模块13包括:RAM(即频数存储器),每个RAM的地址对应一个色调组,每个RAM用于存储对应的色调组的频数;数加法器,用于每当接收到一个肤色色调值,读取该肤色色调值对应地址的RAM中的频数,将读取的RAM的频数加1。
[0100] 最大值选择模块14包括:频数比较器,用于将当前读取的频数和已存储的最大值的频数进行比较;若当前读取的频数大于已存储的最大值的频数,则使用上述当前读取的频数更新所述最大值的频数。
[0101] 另外,上述掩膜计算模块15包括:初步掩膜模块、垂直投影模块和缩小掩膜模块;
[0102] 初步掩膜模块包括:计算模块,用于计算人脸色调粗边界;第一控制模块,用于控制计算模块的工作,并根据该模块计算出来的人脸色调粗边界计算人脸初步掩膜。
[0103] 计算模块包括:边界加法器,用于计算预设的人脸区域色调的右边界;边界比较器,用于计算预设的人脸区域色调的左边界;其中,计算预设的人脸区域色调的左边界的方法包括:边界比较器进行左边界进行计算的方法如下:将频数最大的肤色色调值与人脸色调波动阈值进行比较;以及,在频数最大的肤色色调值大于人脸色调波动阈值的最大值时,选择边界加法器的计算结果作为人脸肤色色调值的左边界;在频数最大的肤色色调值小于人脸色调波动阈值的最小值时,选择0作为人脸肤色色调值的左边界;第一控制模块,用于比较所述被测用户的图像中的所有肤色色调值是否介于人脸区域色调值范围的左边界与右边界之间,在检测结果为是时输出1,在检测结果为否时输出0;上述过程的具体实现方式为:在得到和后,在第一控制模块中比较图像色调值是否在人脸色调范围内,若是,输出1,否则输出0。
[0104] 垂直投影模块包括:静态随机存取存储器SRAM,用于将第一控制模块输入的肤色色调值对应的数据矩阵进行存储;矩阵累加器,用于将存储在SRAM中的数据矩阵按列读出并按列累加求和,得到多个按列累加后的数据值;缩小掩膜模块包括:垂直投影比较器,用于将多个按列累加后的数据值分别与设定的阈值进行比较;其中,所述阈值为根据被测用户的图像中人脸与整个图像的比例设定的;第二控制模块,用于在检测到每列累加后的数据值大于所述阈值时,保持该列数据值不变;在检测到每列累加后的数据值小于所述阈值时,将该列数据值置0。
[0105] 本发明实施例提供的一种人脸的定位装置,与现有技术中的进行人眼定位的方式均不理想相比,其利用了FPGA的硬件,该方式原理简单、处理速度快且容易实现,并且通过FPGA的硬件结合直方图的统计方法以及人脸的掩膜方法可以得到完整的人脸掩膜的区域,该区域干净,且完全覆盖了人眼区域,基于上述人脸区域进行人眼定位也使得人眼定位的精确度较高且整个方法实用性较好。
[0106] 本发明实施例所提供的进行人脸的定位方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
[0107] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0108] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0109] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0110] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0111] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0112] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈