用于人脸识别的侧脸质量评估方法和系统与流程

文档序号:17480198发布日期:2019-04-20 06:23阅读:555来源:国知局
用于人脸识别的侧脸质量评估方法和系统与流程

本发明涉及人脸识别技术领域,具体而言涉及一种用于人脸识别的侧脸质量评估方法和系统。



背景技术:

目前用于实时视频的人脸识别,如果每一帧都做识别会非常耗费系统资源,特别是对算力较低的arm设备来说更是如此,所有要求在处理更少帧的情况下,还可以保证很高的识别率。

对于人脸识别技术来说,清晰度越高、脸部特征越多的图像会更加容易识别,正脸相较于侧脸,能够提取到的脸部特征会更多更准确。



技术实现要素:

本发明目的在于提供一种用于人脸识别的侧脸质量评估方法和系统,提取若干个人脸关键点位置坐标,根据关键点位置坐标计算人脸的侧脸分数,判断侧脸的程度,根据侧脸分值高低和清晰度高低从n张图片里选取侧脸质量最优的一张作为识别对象,能够有效提高识别率,减少计算量。

为达成上述目的,本发明提出一种用于人脸识别的侧脸质量评估方法,所述方法包括以下步骤:

s1:获取摄像机拍摄的包含人物脸部信息的视频流,将视频流解析成n幅视频帧,每一幅视频帧再解码成rgb图片;

s2:将每一幅视频帧的rgb图片输入一人脸检测模块,提取出m个当前人脸的关键点坐标;

s3:根据获取到的m个人脸的关键点坐标,计算每一幅视频帧中人脸的侧脸分值s,侧脸分值s用以表达人脸的侧脸程度,s大于等于1;

s4:根据一预先设定的规则选择其中一幅视频帧的rgb图片作为识别对象。

进一步的实施例中,步骤s4中,根据一预先设定的规则选择其中一幅视频帧的rgb图片作为识别对象的方法包括:

选择满足下述条件的视频帧的rgb图片作为识别对象:1)侧脸分值小于预先设定的侧脸阈值,2)该视频帧的rgb图片中人脸的侧脸分值在n幅视频帧中最小。

进一步的实施例中,步骤s4中,根据一预先设定的规则选择其中一幅视频帧的rgb图片作为识别对象的方法包括:

对每一幅视频帧进行清晰度评估,计算清晰度分值h;

选择满足下述条件的视频帧的rgb图片作为识别对象:1)侧脸分值s小于预先设定的侧脸阈值,2)清晰度分值h大于预先设定的清晰度阈值,3)侧脸质量总评分y满足下述公式:

y=ω1*s+ω2*h≥y0

其中,y0是侧脸质量阈值,ω1和ω2分别是侧脸分值和清晰度分值所占权重,ω1+ω2=1。

进一步的实施例中,所述方法包括:

步骤s2中,在提取其中一幅视频帧中人脸的m个关键点坐标时,如果无法提取到其中的任意一个关键点坐标,舍弃当前视频帧。

进一步的实施例中,步骤s2中,提取出5个人脸的关键点坐标的方法包括以下步骤:

分别提取当前人脸的左眼角位置坐标、右眼角位置坐标、鼻尖位置坐标、左嘴角位置坐标、右嘴角位置坐标。

进一步的实施例中,步骤s3中,根据获取到的m个人脸的关键点坐标,计算每一幅视频帧中人脸的侧脸分值s的方法包括以下步骤:

s31:计算鼻尖位置到左眼角位置和左嘴角位置的距离ds1;

s32:计算鼻尖位置到左嘴角位置的距离ds2;

s33:计算鼻尖位置到右眼角位置和右嘴角位置的距离ds1;

s34:计算鼻尖位置到右嘴角位置的距离ds2;

s35:根据下述公式计算侧脸分数s:

其中,

进一步的实施例中,所述方法还包括以下步骤:

步骤s1中,将视频流解析成n幅视频帧后,对每一幅视频帧进行清晰度评估,计算清晰度分值,舍弃清晰度分值小于设定清晰度阈值的视频帧,将清晰度分值大于等于设定清晰度阈值的视频帧解码成rgb图片。

进一步的实施例中,采用tenengrad梯度函数和/或灰度方差函数来计算一幅视频帧的清晰度。

基于前述方法,本发明还提及一种用于人脸识别的侧脸质量评估系统,所述系统包括以下模块:

1)用于获取摄像机拍摄的包含人物脸部信息的视频流,将视频流解析成n幅视频帧,每一幅视频帧再解码成rgb图片的模块;

2)用于将每一幅视频帧的rgb图片输入一人脸检测模块,提取出m个当前人脸的关键点坐标的模块;

3)用于根据获取到的m个人脸的关键点坐标,计算每一幅视频帧中人脸的侧脸分值s的模块,侧脸分值s用以表达人脸的侧脸程度,s大于等于1;

4)用于根据一预先设定的规则选择其中一幅视频帧的rgb图片作为识别对象的模块。

以上本发明的技术方案,与现有相比,其显著的有益效果在于,根据侧脸分值高低和清晰度高低从n张图片里选取侧脸质量最优的一张作为识别对象,能够有效提高识别率,减少计算量。

应当理解,前述构思以及在下面更加详细地描述的额外构思的所有组合只要在这样的构思不相互矛盾的情况下都可以被视为本公开的发明主题的一部分。另外,所要求保护的主题的所有组合都被视为本公开的发明主题的一部分。

结合附图从下面的描述中可以更加全面地理解本发明教导的前述和其他方面、实施例和特征。本发明的其他附加方面例如示例性实施方式的特征和/或有益效果将在下面的描述中显见,或通过根据本发明教导的具体实施方式的实践中得知。

附图说明

附图不意在按比例绘制。在附图中,在各个图中示出的每个相同或近似相同的组成部分可以用相同的标号表示。为了清晰起见,在每个图中,并非每个组成部分均被标记。现在,将通过例子并参考附图来描述本发明的各个方面的实施例,其中:

图1是本发明的用于人脸识别的侧脸质量评估方法的流程图。

具体实施方式

为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。

在本公开中参照附图来描述本发明的各方面,附图中示出了许多说明的实施例。本公开的实施例不必定义在包括本发明的所有方面。应当理解,上面介绍的多种构思和实施例,以及下面更加详细地描述的那些构思和实施方式可以以很多方式中任意一种来实施,这是因为本发明所公开的构思和实施例并不限于任何实施方式。另外,本发明公开的一些方面可以单独使用,或者与本发明公开的其他方面的任何适当组合来使用。

结合图1,本发明提出一种用于人脸识别的侧脸质量评估方法,所述方法包括以下步骤:

s1:获取摄像机拍摄的包含人物脸部信息的视频流,将视频流解析成n幅视频帧,每一幅视频帧再解码成rgb图片。摄像机包括网络摄像机或者usb摄像机。

s2:将每一幅视频帧的rgb图片输入一人脸检测模块,提取出m个当前人脸的关键点坐标。

s3:根据获取到的m个人脸的关键点坐标,计算每一幅视频帧中人脸的侧脸分值s,侧脸分值s用以表达人脸的侧脸程度,s大于等于1。

s4:根据一预先设定的规则选择其中一幅视频帧的rgb图片作为识别对象。

具体实施例一

步骤s4中,根据一预先设定的规则选择其中一幅视频帧的rgb图片作为识别对象的方法包括:

选择满足下述条件的视频帧的rgb图片作为识别对象:1)侧脸分值小于预先设定的侧脸阈值,2)该视频帧的rgb图片中人脸的侧脸分值在n幅视频帧中最小。

通过该方法过滤掉很侧的脸,让更多较正的脸送到识别平台做识别,提高识别率并且减少系统资源。

优选的,所述方法包括:

步骤s2中,在提取其中一幅视频帧中人脸的m个关键点坐标时,如果无法提取到其中的任意一个关键点坐标,舍弃当前视频帧。

当无法提取到任意一个关键点的坐标时,说明该幅视频帧中的人脸倾侧程度较高,从该幅视频帧中无法提取到完整的人脸特征,对于这类视频帧,可以不用做侧脸分值计算即可以判定其不合格,这一设定能够进一步减少计算量。

而关键点的选择应该具有代表性,一方面,关键点相结合能够准确评判侧脸程度,另一方面,关键点的选取也具有易锁定性,即较容易确定准确坐标,例如,眼睛中心位置和眼角位置相比较,眼角位置会比眼睛中心位置更加容易锁定,同样的,鼻梁位置和鼻尖位置相比较,鼻尖位置会比鼻梁位置更加容易锁定。

在此基础上,本发明提出了其中的一种关键点坐标的例子,应当理解,关键点坐标的选择不限于以下这一种。

步骤s2中,提取出5个人脸的关键点坐标的方法包括以下步骤:

分别提取当前人脸的左眼角位置坐标、右眼角位置坐标、鼻尖位置坐标、左嘴角位置坐标、右嘴角位置坐标。

步骤s3中,根据获取到的m个人脸的关键点坐标,计算每一幅视频帧中人脸的侧脸分值s的方法包括以下步骤:

s31:计算鼻尖位置到左眼角位置和左嘴角位置的距离ds1。

s32:计算鼻尖位置到左嘴角位置的距离ds2。

s33:计算鼻尖位置到右眼角位置和右嘴角位置的距离ds1。

s34:计算鼻尖位置到右嘴角位置的距离ds2。

s35:根据下述公式计算侧脸分数s:

其中,

当完全正脸的情况下,脸到左右眼角和嘴角的距离是趋近于1的,当人脸处于侧脸时,这个比值是远离1的,人脸侧的程度越大,这个比值越远离1。从这方面考虑我们可以通过这个比值来判断侧脸的程度。这样我们就可以把更正的脸送到平台做人脸识别,理论上说脸越正识别率越高。所以我们可以选择n张照片里,选择侧脸分数越趋近正脸1的来做识别,其他丢弃,因为在正脸都没有被识别的情况下,侧脸更不会被识别。这样的话n张里只选择一张来做识别,这样只用n分之一的资源就达到了之前全帧识别的效果。

下面以其中一种计算程序代码对该计算过程做阐述。

1)首先计算鼻子到左眼和左嘴角连线的距离ds1:

floatds1=point2linedist(point[2],point[0],point[3])

point2linedist就是计算点point[2]到point[0]和point[3]连成的直线的距离:

floata=point[3].y-point[0].y;

floatb=point[0].x-point[3].x;

floatc=point[3].x*point[3].y-point[0].x*point[3].y+point[3].x*point[0].y-point[3].x*point[3].y;

floatds1=abs(float(a*point[2].x+b*point[2].y+c)/sqrt(a*a+b*b));

2)然后计算鼻子到左嘴角的距离ds2:

floatds2=twopointdist(point[2],point[3])

twopointdist就是计算点point[2]到点point[3]之间的欧式距离:

floatds2=float(point[2].x-point[3].x)*float(point[2].x-point[3].x)+float(point[2].y-point[3].y)*float(point[2].y-point[3].y)

考虑资源占用的问题,计算的欧式距离不需要开方。

3)同样计算鼻子到右眼和右嘴角连线的距离ds3:

floatds3=point2linedist(point[2],point[1],point[4])

同1)中的计算方法。

4)然后计算鼻子到右嘴角的距离ds4:

floatds4=twopointdist(point[2],point[4])

同2)中的计算方法。

5)然后计算侧脸分数:

floatposture_val=(ds1*ds2)/(ds3*ds4);

posture_val<1.0?(1.0/posture_val):posture_val;

从得到的posture_val值,和之前设置的侧脸阈值t进行比较,超过t的直接丢弃,满足条件的保留。

选择n帧里,侧脸分数最小的进行人脸特征提取,并且进行人脸特征比对。其他帧丢弃。从n帧里选择一帧进行比对,有效的节省了系统资源。

具体实施例二

一幅图片的侧脸质量,除了侧脸程度之外,还有图片清晰度的因素在内。可以理解,侧脸程度越低、清晰度越高的图片,所能提取到的人脸特征值越多,这两个参数对侧脸质量的评估都很重要、并且近似相互独立。

考虑到这一点,本发明提出,步骤s4中,根据一预先设定的规则选择其中一幅视频帧的rgb图片作为识别对象的方法包括:

对每一幅视频帧进行清晰度评估,计算清晰度分值h。

选择满足下述条件的视频帧的rgb图片作为识别对象:1)侧脸分值s小于预先设定的侧脸阈值,2)清晰度分值h大于预先设定的清晰度阈值,3)侧脸质量总评分y满足下述公式:

y=ω1*s+ω2*h≥y0

其中,y0是侧脸质量阈值,ω1和ω2分别是侧脸分值和清晰度分值所占权重,ω1+ω2=1。

类似于前述对侧脸程度的初步筛选过程,本发明提出,所述方法还包括以下步骤:

步骤s1中,将视频流解析成n幅视频帧后,对每一幅视频帧进行清晰度评估,计算清晰度分值,舍弃清晰度分值小于设定清晰度阈值的视频帧,将清晰度分值大于等于设定清晰度阈值的视频帧解码成rgb图片。

优选的,采用tenengrad梯度函数和/或灰度方差函数来计算一幅视频帧的清晰度。

基于前述方法,本发明还提及一种用于人脸识别的侧脸质量评估系统,所述系统包括以下模块:

1)用于获取摄像机拍摄的包含人物脸部信息的视频流,将视频流解析成n幅视频帧,每一幅视频帧再解码成rgb图片的模块。

2)用于将每一幅视频帧的rgb图片输入一人脸检测模块,提取出m个当前人脸的关键点坐标的模块。

3)用于根据获取到的m个人脸的关键点坐标,计算每一幅视频帧中人脸的侧脸分值s的模块,侧脸分值s用以表达人脸的侧脸程度,s大于等于1。

4)用于根据一预先设定的规则选择其中一幅视频帧的rgb图片作为识别对象的模块。

虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1