CN104021550B - 一种人脸三庭五眼自动定位及比例确定方法 - Google Patents

一种人脸三庭五眼自动定位及比例确定方法 Download PDF

Info

Publication number
CN104021550B
CN104021550B CN201410219690.XA CN201410219690A CN104021550B CN 104021550 B CN104021550 B CN 104021550B CN 201410219690 A CN201410219690 A CN 201410219690A CN 104021550 B CN104021550 B CN 104021550B
Authority
CN
China
Prior art keywords
point
region
ordinate
eyein
positioning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201410219690.XA
Other languages
English (en)
Other versions
CN104021550A (zh
Inventor
胡涛
冯玉娜
王亚丹
范彩霞
景翠宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian University of Technology
Original Assignee
Xian University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xian University of Technology filed Critical Xian University of Technology
Priority to CN201410219690.XA priority Critical patent/CN104021550B/zh
Publication of CN104021550A publication Critical patent/CN104021550A/zh
Application granted granted Critical
Publication of CN104021550B publication Critical patent/CN104021550B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

本发明公开了一种人脸三庭五眼自动定位及比例确定方法,在高清人脸图像上自动检测及提取完整人脸,自动检测局部特征及定位特征点,检测的局部特征包括左眼、右眼、左眉毛、右眉毛、鼻子、嘴巴、额头发际区、下巴区及脸宽区;定位的特征点包括左眼内眼角点、左眼外眼角点、右眼内眼角点、右眼外眼角点、左眉头点、右眉头点、鼻下点、下巴点、额头发际点、左眼外眼角外侧发际点以及右眼外眼角外侧发际点,最终,根据特征点在人脸图像中的坐标位置,自动计算出三庭五眼的像素间距及比例关系。本发明方法,定位及计算结果直观可见,准确度高。

Description

一种人脸三庭五眼自动定位及比例确定方法
技术领域
本发明属于人脸面部结构分析技术领域,涉及一种人脸三庭五眼自动定位及比例确定方法。
背景技术
人脸三庭五眼是人脸结构特征的一种描述方式,三庭是指额头中部发际线到眉头点连线、眉头点连线到鼻翼下缘和鼻翼下缘到下巴尖的三个部分;五眼是指左眼外眼角到左侧发际边缘、左眼内外眼角之间、左右眼内眼角之间、右眼内外眼角之间及右眼外眼角到右侧发际边缘的五个部分。
人脸三庭五眼的比例关系是人脸面部结构分析的重要依据之一。目前,人脸三庭五眼的比例关系主要是通过手动测量及计算得到,主要方式包括:1)直接测量人脸的三庭五眼间距,计算三庭五眼的比例关系;2)拍摄人脸正面标准图像,手动测量人脸图像上的三庭五眼间距,计算三庭五眼的比例关系。由于人脸凹凸不平,手动直接测量三庭五眼间距存在诸多不便,会给测量者及被测者同时带来不必要的麻烦;与前者相比,拍摄后测量人脸图像上的三庭五眼间距虽然可以避免直接测量带来的诸多不便,但手动测量人脸图像上的三庭五眼间距步骤还是比较繁琐耗时。
发明内容
本发明的目的是提供一种人脸三庭五眼自动定位及比例确定方法,解决了现有技术中采用手动测量及计算三庭五眼比例关系中的繁琐耗时的问题。
本发明所采用的技术方案是,一种人脸三庭五眼自动定位及比例确定方法,具体按照以下步骤实施:
步骤1、检测人脸及提取完整人脸;
步骤2、检测人脸局部特征,定位特征点;
步骤3、确定三庭五眼的像素间距及比例。
本发明的有益效果是,在高清人脸图像上自动检测及提取完整人脸,自动检测局部特征及定位特征点,检测的局部特征包括左眼、右眼、左眉毛、右眉毛、鼻子、嘴巴、额头发际区、下巴区及脸宽区;定位的特征点包括左眼内眼角点、左眼外眼角点、右眼内眼角点、右眼外眼角点、左眉头点、右眉头点、鼻下点、下巴点、额头发际点、左眼外眼角外侧发际点以及右眼外眼角外侧发际点,最终,根据特征点在人脸图像中的坐标位置,自动计算出三庭五眼的像素间距及比例关系,定位及计算结果直观可见,准确度高。
附图说明
图1是本发明方法提取的完整人脸示意图;
图2是本发明方法在定位眼睛区域时左眼边界处理示意图;
图3是本发明方法在定位眼睛区域时右眼边界处理示意图;
图4是本发明方法在眼角点定位时左眼边界处理示意图;
图5是本发明方法在眼角点定位时右眼边界处理示意图;
图6是本发明方法在人脸特征点定位时结果示意图;
图7是本发明方法对人脸三庭五眼间距划分示意图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明的人脸三庭五眼自动定位及比例确定方法,具体按照以下步骤实施:
步骤1、检测人脸及提取完整人脸
对于摄像头拍摄或者直接打开的一幅人脸正面高清图像,利用AdaBoost算法的人脸分类器进行人脸检测,所检测到的人脸区域记为FaceRO,定义其左上角点为LeftTopPointface,该点的横坐标为LeftTopPointface·x、纵坐标为LeftTopPointface.y,宽为wface,高为hface,由区域FaceROI经公式(1)计算得到完整人脸区域FaceROI_Whole的左上角点的横坐标为LeftTopPointface_Whole.x,纵坐标为LeftTopPointface_Whole.y,宽度为W,高度为H,参照如下公式(1):
LeftTopPoint face _ Whole · x = LeftTopPoint face · x - W face 7
LeftTopPoint face _ Whole · y = LeftTopPoint face · y - h face 5
W = w face + 2 * w face 7 , - - - ( 1 )
H = h face + 12 * h face 35
最终提取得到完整的人脸区域FaceROI_Whole,如图1所示;
步骤2、检测人脸局部特征,定位特征点
2.1)检测眼睛及眼角点定位
2.1.1)检测眼睛及初步定位眼睛区域
如图1所示,在完整人脸区域FaceROI_Whole中,由点(0,0)、(W/2,H/2)围成的矩形区域内,利用AdaBoost算法的眼睛分类器进行左眼检测,所检测到的左眼区域记为LeftROI,其宽、高分别记为weyeL、heyeL,左上角点记为LeftopPointLeftROI
在由点(W/2,0)和点(W,H/2)围成的矩形区域内,利用AdaBoost算法的眼睛分类器进行右眼检测,所检测到的右眼区域记为RightROI,其宽、高分别记为weyeR、heyeR,左上角点记为LeftTopPointRightROI
2.1.2)定位眼睛区域
在完整人脸区域FaceROI_Whole中拷贝LeftROI区域到LeftROIImg,对区域LeftROIImg灰度化,计算该区域的灰度均值,记为LeftROIImgG,再二值化,二值化阈值LeftThreshold的计算公式为:
LeftThreshold=0.8*LeftROIImgG, (2)
二值化时,若像素的灰度值大于阈值LeftThreshold,则把像素置黑,否则置白,以下所有二值化操作均遵循此原则;
置LeftROIImg二值图中高为的上边界区域为黑,参照图2;
在完整人脸区域FaceROI_Whole中拷贝RightROI区域到RightRO,II对m区g域RightROIImg灰度化,计算该区域的灰度均值,记为RightROIImgG,再二值化,二值化阈值RightThreshold的计算公式为:
RightThreshold=0.8*RightROIImgG, (3)
置RightROIImg二值图中高为的上边界区域为黑,参照图3;
遍历LeftROIImg二值图,分别寻找上、下、左、右第一个白点Lt、Lb、Ll、Lr,过Lt、Lb分别沿水平方向画线,过Ll、Lr分别沿垂直方向画线,该四条直线的交点所围成的矩形区域的中心点记为OeyeLS,宽、高分别记为weyeLS、heyeLS;返回完整人脸区域FaceROI_Whole中,以OeyeLS为中心点,得到新的矩形区域LeftROI_new,其左上角点记为LeftTopPointLeftROI_new,宽、高分别为weyeLnew、heyeLnew,计算公式如下:
weyeLnew=2*weyeLS
,(4)
heyeLnew=2*heyeLS
遍历RightROIImg二值图,分别寻找上、下、左、右第一个白点Rt、Rb、Rl、Rr,过Rt、Rb分别沿水平方向画线,过Rl、Rr分别沿垂直方向画线,此四条直线的交点所围成的矩形区域的中心点记为OeyeRS,宽、高分别记为weyeRS、heyeRS;返回完整人脸区域FaceROI_Whole中,以OeyeRS为中心点,得到新的矩形区域RightROI_new,其左上角点记为LeftTopPointRightROI_new,宽、高分别为weyeRnew、heyeRnew,计算公式如下:
weyeRnew=2*weyeRS
,(5)
heyeRnew=2*heyeRS
2.1.3)定位内外眼角点
2.1.3.1)在完整人脸区域FaceROI_Whole中拷贝LeftROI_new区域到LeftROI_newImg,对区域LeftROI_newImg灰度化,再二值化,二值化阈值计算公式同公式(2);置LeftROI_newImg二值图中高度为的上边界区域、宽度为的左边界区域、高度为的下边界区域、宽度为的右边界区域为黑,参照图4;
在完整人脸区域FaceROI_W中拷贝RightROI_区域到RightROI_newImg,对区域RightROI_newImg灰度化,再二值化,二值化阈值计算公式同公式(3);置RightROI_newImg二值图中高度为的上边界区域、宽度为的左边界区域、高度为的下边界区域、宽度为的右边界区域为黑,参照图5;
2.1.3.2)遍历LeftROI_newImg二值图,分别寻找左、右第一个白点,即为疑似左眼外、内眼角点LeyeOut、LeyeIn;遍历RightROI_newImg二值图,分别寻找左、右第一个白点,即为疑似右眼内、外眼角点ReyeIn、ReyeOut
2.1.3.3)分别计算LeyeIn、LeyeOut的水平间距dInOutLx、垂直间距dInOutLy,分别计算ReyeIn、ReyeOut的水平间距dInOutRx、垂直间距dInOutRy,计算公式如下:
dInOutLx=|LeyeIn.x-LeyeOut.x|
dInOutLy=|LeyeIn.y-LeyeOut.y|
dInOutRx=|ReyeIn.x-ReyeOut.x|, (6)
dInOutRy=|ReyeIn.y-ReyeOut.y|
其中,LeyeIn.x、LeyeIn.y分别为左眼内眼角点LeyeIn的横、纵坐标,LeyeOut.x、LeyeOut.y分别为左眼外眼角点LeyeOut的横、纵坐标,ReyeIn.x、ReyeIn.y分别为右眼内眼角点ReyeIn的横、纵坐标,ReyeOut.x、ReyeOut.y分别为右眼外眼角点ReyeOut的横、纵坐标;判断LeyeIn、LeyeOut、ReyeIn、ReyeOut、dInOutLx、dInOutLy、dInOutRx、dInOutRy是否满足公式(7)中的条件:
| d InOutLx - d InOutRx | < min ( w eyeLS , w eyeRS ) 4
| d InOutLy - d InOutRy | < min ( w eyeLS , w eyeRS ) 3
| L eyeIn &CenterDot; y - R eyeIn &CenterDot; y | < min ( h eyeLS , h eyeRS ) 4 ,(7)
| L eyeOut &CenterDot; y - R eyeOut &CenterDot; y | < min ( h eyeLS , h eyeRS ) 4
其中,min(weyeLS,weyeRS)为weyeLS、weyeRS两者中值较小者,min(heyeLS,heyeRS)为heyeLS、heyeRS两者中值较小者,LeyeIn.y为左眼内眼角点LeyeIn的纵坐标,LeyeOut.y为左眼外眼角点LeyeOut的纵坐标,ReyeIn.y为右眼内眼角点ReyeIn的纵坐标,ReyeOut.y为右眼外眼角点ReyeOut的纵坐标;
不满足条件①时,扩大区域LeftROI_new、RightROI_new,区域中心点OeyeLS、OeyeRS保持不变,宽度分别变为1.2*weyeLnew、1.2*weyeRnew,高度分别变更为1.2*heyeLnew、1.2*heyeRnew,重新执行步骤2.1.3.1)、步骤2.1.3.2)、步骤2.1.3.3),直到满足条件①为止;
不满足条件②、③、④时,把步骤2.1.3.1)中置黑的上、下边界区域高度分别扩大为原上、下边界区域高度的1.3倍,重新执行步骤2.1.3.2)、步骤2.1.3.3),直到满足条件②、③、④为止;
这时,LeyeIn、LeyeOut即为最终定位的左眼内、外眼角点,ReyeIn、ReyeOut即为最终定位的右眼内、外眼角点;
2.2)确定眉毛区域及定位眉头点
2.2.1)确定眉毛区域
在完整人脸区域FaceROI_Whole中,定义OeyeLS点垂直方向上方2*heyeLS处的点为OLM,以OLM为中心点,2.5*weyeLS为宽,2*heyeLS为高,即为左眉毛所在区域LeftMROI,其宽、高分别记为wLM、hLM;定义OeyeRS点垂直方向上方2*heyeRS处的点为ORM,以ORM为中心点,2.5*weyeRS为宽,2*heyeRS为高,即为右眉毛所在区域RightMROI,其宽、高分别记为wRM、hRM
2.2.2)定位眉头点
2.2.2.1)在完整人脸区域FaceROI_Whole中拷贝LeftMROI区域到LeftMROIImg,对区域LeftMROIImg灰度化,计算该区域的灰度均值,记为LeftMROIImgG,再二值化,二值化阈值LeftThreshold_M的计算公式为:
LeftThreshold_M=0.85*LeftMROIImgG, (8)
置LeftMROIImg二值图中上边界高度为的区域、右边界宽度为的区域为黑;
在完整人脸区域FaceROI_Whole中拷贝RightM区域到RightMRO,对区域RightMROIImg灰度化,计算该区域的灰度均值,记为RightMROIImgG,再二值化,二值化阈值RightThreshold_M的计算公式为:
RightThreshold_M=0.85*RightMROIImgG, (9)
置RightMROIImg二值图中上边界高度为的区域、左边界宽度为的区域为黑;
2.2.2.2)遍历LeftMROIImg二值图,由右到左、由上到下寻找第一个白点LMt,由右到左、由下到上寻找第一个白点LMb,LMt、LMb即为疑似左眉头上、下点;遍历RightMROIImg二值图,由左到右、由上到下寻找第一个白点RMt,由左到右、由下到上寻找第一个白点RMb,RMt、RMb即为疑似右眉头上、下点;
2.2.2.3)计算LMt、LMb的垂直间距dLMy,RMt、RMb的垂直间距dRMy,LMt、RMt的垂直间距dLRMty和LMb、RMb的垂直间距dLRMby,计算公式如下:
dLMy=|LMt.y-LMb.y|
dRMy=|RMt.y-RMb.y|
dLRMty=|LMt.y-RMt.y|, (10)
dLRMby=|LMb.y-RMb.y|
其中,LMt.y为左眉头上点LMt纵坐标,LMb.y为左眉头下点LMb纵坐标,RMt.y为右眉头上点RMt纵坐标,RMb.y为右眉头下点RMb纵坐标;
判断dLMy、dRMy、dLRMty、dLRMby是否满足公式(11)中的条件:
| d LMy - d RMy | < min ( h LM , h RM ) 3
d LRMty < min ( h LM , h RM ) 5
d LRMby < min ( h LM , h RM ) 5 , - - - ( 11 )
其中,min(hLM,hRM)为hLM、hRM两者中值较小者;
不满足条件时,将步骤2.2.2.1)中置黑的上边界区域高度扩大为原上边界区域高度的1.5倍,重新执行步骤2.2.2.2)、步骤2.2.2.3),直到满足条件为止;
这时,最终定位的左眉头点LM的横坐标LM.x、纵坐标LM.y,右眉头点RM的横坐标RM.x、纵坐标RM.y的计算公式如下:
LM . x = ( LM t . x + LM b . x ) 2
LM . y = ( LM t . y + LM b . y ) 2
RM . x = ( RM t . x + RM b . x ) 2 ,(12)
RM &CenterDot; y = ( RM t &CenterDot; y + RM b &CenterDot; y ) 2
其中,LMt.x、LMt.y为左眉头上点LMt的横、纵坐标,LMb.x、LMb.y为左眉头下点LMb的横、纵坐标,RMt.x、RMt.y为右眉头上点RMt的横、纵坐标,RMb.x、RMb.y为右眉头下点RMb的横、纵坐标;
2.3)检测鼻子及定位鼻下点
2.3.1)确定鼻子区域
参照图1,在完整人脸区域FaceROI_Whole中,由点(0,H/3)、(W,H)围成的矩形区域内,利用AdaBoost算法的鼻子分类器进行鼻子检测,所检测到的区域记为NoseROI,定义其左上角点为LeftTopPointNoseROI,它的横坐标为LeftTopPointNoseROI.x、纵坐标为LeftTopPointNoseROI.y,宽为wN,高为hN;判断NoseROI区域是否满足公式(13)中的条件:
W 5 < w N < W 3
H 6 < h N < H 3 ,(13)
W 3 < LeftTopPoint NoseROI &CenterDot; x < W 2
H 3 < LeftTopPoint NoseROI &CenterDot; y < 2 * H 3
W、H分别为步骤1中确定的完整人脸区域FaceROI_Whole的宽、高;
满足条件时,NoseROI区域即为确定的鼻子区域NoseROI_final,其宽、高分别记为wNf、hNf,左上角点记为LeftTopPointNoseROI_final;否则,NoseROI_fin区al域的左上角点的横坐标LeftTopPointNoseROI_final.x、纵坐标LeftTopPointNoseROI_final.y、宽度wNf、高度hNf由公式(14)计算得出:
LeftTopPointNoseROI_final.x=LeyeIn.x
LeftTopPoint NoseROI _ final &CenterDot; y = L eyeIn &CenterDot; y + R eyeIn &CenterDot; y 2 + H 12
wNf=|LeyeIn.x-ReyeIn.x| ,(14)
h Nf = H 7
LeyeIn.x、LeyeIn.y为步骤2.1.3)中定位的左眼内眼角点LeyeIn的横、纵坐标,ReyeIn.x、ReyeIn.y为步骤2.1.3)中定位的右眼内眼角点ReyeIn的横、纵坐标,H为步骤1中确定的完整人脸区域FaceROI_Whole的高;
2.3.2)定位鼻下点
2.3.2.1)在完整人脸区域FaceROI_Whole中拷贝NoseROI_final区域到NoseROI_finalImg,对区域NoseROI_finalImg灰度化,计算该区域的灰度最小值,记为NoseROI_finalImgM,再二值化,二值化阈值NoseThreshold的计算公式为:
NoseThreshold=4*NoseROI_finalImgM+10, (15)
2.3.2.2)遍历NoseROI_finalImg二值图,由下到上、由左到右寻找第一个白点NL,由下到上、由右到左寻找第一个白点NR,NL、NR即为疑似左、右鼻孔点;
2.3.2.3)分别计算NL、NR的水平间距dNLRx、垂直间距dNLRy,公式是:
dNLRx=|NL.x-NR.x|, (16)
dNLRy=|NL.y-NR.y|
其中,NL.x、NL.y为左鼻孔点NL的横、纵坐标,NR.x、NR.y为右鼻孔点NR的横、纵坐标;判断NL.x、NL.y、NR.x、NR.y、dNLRx、dNLRy是否满足公式(17)中的条件:
①NL.x≠0
②NL.y≠0
③NR.x≠0
④NR.y≠0
d NLRx < 5 * w Nf 6 , (17)
d NLRy < h Nf 6
不满足条件①、②、③、④时,扩大区域NoseROI_final,区域中心保持不变,高度变为1.2*hNf,重新执行步骤2.3.2.1)、步骤2.3.2.2)、步骤2.3.2.3),直到满足条件①、②、③、④为止;
不满足条件⑤、⑥时,将步骤2.3.2.1)中二值化阈值NoseThreshold减小为0.85*NoseThreshold,重新执行步骤2.3.2.2)、步骤2.3.2.3),直到满足条件⑤、⑥为止;
这时,最终定位的鼻下点N的横坐标N.x、纵坐标N.y的计算公式是:
N . x = ( LM . x + RM . x ) 2 N . y = ( N L &CenterDot; y + N R &CenterDot; y ) 2 + H 60 , - - - ( 18 )
其中,LM.x、RM.x为步骤2.2.2)中定位的左、右眉头点LM、RM的横坐标,NL.y为左鼻孔点NL的纵坐标,NR.y为右鼻孔点NR的纵坐标,H为步骤1中确定的完整人脸区域FaceROI_Whole的高;
2.4)确定下巴区域及定位下巴点
2.4.1)确定下巴区域
如图1,在完整人脸区域FaceROI_Whole中,由点(0,H/2)、(W,H)围成的矩形区域内,利用AdaBoost算法的嘴巴分类器进行嘴巴检测,所检测到的区域记为MouthROI,定义其左上角点为LeftTopPointMouthROI,它的横坐标为LeftTopPointMouthROI.x、纵坐标为LeftTopPointMouthROI.y,宽为wM,高为hM;判断MouthROI区域是否满足公式(19)中的条件:
W 5 < w M < W 2
H 10 < h M < H 3
W 5 < LeftTopPoint MouthROI &CenterDot; x < W 2
H 2 < LeftTopPoint MouthROI &CenterDot; y < 5 * H 6 , - - - ( 19 )
其中,W、H分别为步骤1中确定的完整人脸区域FaceROI_Whole的宽、高;
满足条件时,MouthROI区域即为确定的嘴巴区域MouthROI_final,其宽、高分别记为wMf、hMf,左上角点记为LeftTopPointMouthROI_final;否则,MouthROI_final区域的左上角点的横坐标LeftTopPointMouthROI_final.x、纵坐标LeftTopPointMouthROI_final.y、宽度wMf、高度hMf由公式(20)计算得出:
LeftTopPoint MouthROI _ final &CenterDot; x = N . x - W 6
LeftTopPoint MouthROI _ final &CenterDot; y = N . y + H 15
w Mf = W 3 , - - - ( 20 )
h Mf = H 8
其中,N.x、N.y为步骤2.3.2)中定位的鼻下点N的横、纵坐标,W、H分别为步骤1中确定的完整人脸区域FaceROI_Whole的宽、高;
在完整人脸区域FaceROI_Wh中拷贝MouthROI_f区域到MouthROI_fina,把MouthROI_finalIm由RGB空间转换到HSV空间,转换公式如下:
V=max(R,G,B)
S = 0 V = 0 max ( R , G , B ) - min ( R , G , B ) max ( R , G , B ) V &NotEqual; 0 , - - - ( 21 )
H = 0 V = 0 ( G - B ) VS &times; 60 V = R ( 2 + B - R SV ) &times; 60 V = G ( 4 + R - G SV ) &times; 60 V = B H + 360 H < 0
其中,max(R,G,B)、min(R,G,B)分别为像素的R、G、B值中的最大值和最小值;
若像素的H、S值满足公式(22)中的条件,则将像素置白,否则将像素置黑,得到MouthROI_finalImg的二值图;
320≤H<360 且0.3≤S<1, (22)
遍历MouthROI_finalImg二值图,由左到右、由下到上按列扫描寻找第一个白点ML,由右到左、由下到上按列扫描寻找第一个白点MR,由下到上、由右到左按行扫描寻找第一个白点MM,ML、MR、MM即为疑似左嘴角点、右嘴角点、嘴巴下边缘点;
计算ML、MR的水平间距dMLRx,ML与MM、MR与MM的垂直间距dMLMy、dMRMy,计算公式如下:
dMLRx=|ML.x-MR.x|
dMLMy=|ML.y-MM.y|, (23)
dMRMy=|MR.y-MM.y|
其中,ML.x、ML.y为左嘴角点ML的横、纵坐标,MR.x、MR.y为右嘴角点MR的横、纵坐标,MM.y为嘴巴下边缘点MM的纵坐标;
判断ML.x、ML.y、MR.x、MR.y、MM.x、MM.y、dMLRx、dMLMy、dMRMy是否满足公式(24)中的条件:
①ML.x≠0,MR.x≠0,MM.x≠0
②ML.y≠0,MR.y≠0,MM.y≠0
d MLRx > w Mf 2 ,(24)
d MLMy < h Mf 2
d MRMy < h Mf 2
不满足条件①、②时,修正公式(22)中H、S的取值范围,H下限值在原基础上减5,S下限值在原基础上减0.05,重新二值化,直到满足条件①、②为止;
不满足条件③、④、⑤时,缩小MouthROI_final区域,保持MouthROI_final区域中心不变,宽、高分别变为0.9*wMf、0.9*hMf,重新进行由RGB到HSV的颜色空间转换及二值化,直到满足条件③、④、⑤为止;
定位的嘴巴下边缘点M的横坐标M.x、纵坐标M.y的计算公式如下:
M . x = ( LM . x + RM . x ) 2 M . y = ( M L &CenterDot; y + M R &CenterDot; y ) 2 + ( d MLMy + d MRMy ) 2 , - - - ( 25 )
LM.x、RM.x为步骤2.2.2)中定位的左、右眉头点LM、RM横坐标;
在完整人脸区域FaceROI_Whole中,定义M点垂直方向下方hMf处的点为OC,以OC为中心点,为宽,2*hMf为高,即为下巴所在区域ChinRO,其宽、高分别记为wC、hC
2.4.2)定位下巴点
2.4.2.1)在完整人脸区域FaceROI_Who中拷贝ChinRO区域到ChinROIIm,g对区域ChinROIImg灰度化,计算该区域的灰度均值,记为ChinROIImgG,再二值化,二值化阈值ChinThreshold的计算公式为:
ChinThreshold=0.85*ChinROIImgG, (26)
2.4.2.2)遍历ChinROIImg二值图,由上到下,分别寻找水平坐标值为0、wC时的第一个白点C1、C2、C3、C4、C5、C6、C7,若Ci,i∈1,2,3,4,5,6,7不存在,则Ci,i∈1,2,3,4,5,6,7的纵坐标值等于与其相邻的下一个点的纵坐标值,若C7不存在,则C7的纵坐标值等于C1的纵坐标值,C1、C2、C3、C4、C5、C6、C7即为7个疑似下巴点;
2.4.2.3)判断点C1、C2、C3、C4、C5、C6、C7是否满足公式(27)中的条件;Ci.y≠0,i=1,2,3,4,5,6,7, (27)
其中,Ci.y为疑似下巴点Ci的纵坐标,i=1,2,3,4,5,6,7;
不满足条件时将步骤2.4.2.1)中二值化阈值ChinThreshold增大为1.05*ChinThresho,ld重新执行步骤2.4.2.2)、步骤2.4.2.3)直到满足条件止;
这时,最终定位的下巴点C的横坐标C.x、纵坐标C.y的计算公式如下:
C . x = LM . x + RM . x 2
C . y = a 1 * C 1 &CenterDot; y + a 2 * C 2 &CenterDot; y + a 3 * C 3 &CenterDot; y + a 4 * C 4 &CenterDot; y + a 5 * C 5 &CenterDot; y + a 6 * C 6 &CenterDot; y + a 7 * C 7 &CenterDot; y a 1 + a 2 + a 3 + a 4 + a 5 + a 6 + a 7 , - - - ( 28 )
其中,max(C1.y,C2.y,C3.y,C4.y,C5.y,C6.y,C7.y)为C1.y、C2.y、C3.y、C4.y、C5.y、C6.y、C7.y中的最大值,C1.y、C2.y、C3.y、C4.y、C5.y、C6.y、C7.y分别为疑似下巴点C1、C2、C3、C4、C5、C6、C7的纵坐标,LM.x、RM.x为步骤2.2.2)中定位的左、右眉头点LM、RM的横坐标;
2.5)确定额头发际区域及定位额头发际点
2.5.1)确定额头发际区域
在完整人脸区域FaceROI_Whole中,定义左、右眉头点LM、RM的中心点为OLRM,LM、RM的水平间距为dLRM,OLRM的横、纵坐标OLRM.x、OLRM.y及dLRM的计算公式如下:
O LRM &CenterDot; x = LM . x + RM . x 2
O LRM &CenterDot; y = LM . y + RM . y 2 , - - - ( 29 )
dLRM=|LM.x-RM.x|
其中,LM.x、LM.y为步骤2.2.2)中定位的左眉头点LM的横、纵坐标,RM.x、RM.y为步骤2.2.2)中定位的右眉头点RM的横、纵坐标;
在完整人脸区域FaceROI_Whole中,定义OLRM点垂直方向上方2*dLRM处的点为OF,以OF为中心点,为宽,为高,即为额头发际所在区域ForeROI,其宽、高分别记为wF、hF
2.5.2)定位额头发际点
2.5.2.1)在完整人脸区域FaceROI_Wh中拷贝ForeROI区域到ForeROIIm,对区域ForeROIImg灰度化,计算该区域的灰度均值,记为ForeROIImgG,再二值化,二值化阈值ForeThreshold的计算公式为:
ForeThreshold0.8*Fore, (30)
2.5.2.2)遍历ForeROIImg二值图,由下到上,分别寻找水平坐标值为0、wF时的第一个白点F1、F2、F3,若点Fi,i∈1,2,3不存在,则Fi,i∈1,2,3的纵坐标值等于与其相邻的下一个点的纵坐标值,若F3不存在,则F3的纵坐标值等于F1的纵坐标值,F1、F2、F3即为3个疑似发际点;
2.5.2.3)判断点F1、F2、F3是否满足公式(31)中的条件:
Fi.y≠0,i=1,2,3, (31)
其中,Fi.y为疑似发际点Fi的纵坐标,i=1,2,3;
不满足条件时,将步骤2.5.2.1)中二值化阈值ForeThreshold增大为1.05*ForeThreshol,d重新执行步骤2.5.2.2)、步骤2.5.2.3),直到满足条件为止;
最终定位的额头发际点F的横坐标F.x、纵坐标F.y的计算公式如下:
F . x = LM . x + RM . x 2
F . y = a 1 * F 1 &CenterDot; y + a 2 * F 2 &CenterDot; y + a 3 * F 3 &CenterDot; y a 1 + a 2 + a 3 , - - - ( 32 )
其中,min(F1.y,F2.y,F3.y)为F1.y、F2.y、F3.y中的最小值,F1.y、F2.y、F3.y分别为发际点F1、F2、F3的纵坐标,LM.x、RM.x为步骤2.2.2)中定位的左、右眉头点LM、RM的横坐标;
2.6)确定脸宽区域及定位两侧发际点
2.6.1)确定脸宽区
在完整人脸区域FaceROI_Whole中,定义左、右眼内眼角点LeyeIn、ReyeIn的中心点为OLReyeIn,LeyeIn、ReyeIn的水平间距为dLReyeIn,OLReyeIn的横、纵坐标OLReyeIn.x、OLReyeIn.y及dLReyeIn的计算公式如下:
O LReyeIn &CenterDot; x = L eyeIn &CenterDot; x + R eyeIn &CenterDot; x 2
O LReyeIn &CenterDot; y = L eyeIn &CenterDot; y + R eyeIn &CenterDot; y 2 , - - - ( 33 )
dLReyeIn=|LeyeIn.x-ReyeIn.x|
其中,LeyeIn.x、LeyeIn.y为左眼内眼角点LeyeIn的横、纵坐标,ReyeIn.x、ReyeIn.y为右眼内眼角点ReyeIn的横、纵坐标;
在完整人脸区域FaceROI_Whole中,以OLReyeIn为中心点,5*dLReyeIn为宽,为高,即为脸宽区域FaceWidthROI,其宽、高分别记为wFW、hFW
2.6.2)定位两侧发际点
2.6.2.1)在完整人脸区域FaceROI_Whole中拷贝FaceWidthROI区域到FaceWidthROIImg,对区域FaceWidthROIImg灰度化,计算该区域的灰度均值,记为FaceWidthROIImgG,再二值化,二值化阈值FWThreshold的计算公式为:
FWThreshold=0.9*FaceWidthROIImgG, (34)
2.6.2.2)在FaceWidthROIImg二值图中,由左眼外眼角点LeyeOut的横坐标LeyeOut.x、OLReyeIn的纵坐标OLReyeIn.y开始,沿水平方向向左寻找第一个白点FWL;由右眼外眼角点ReyeOut的横坐标ReyeOut.x、OLReyeIn的纵坐标OLReyeIny开始,沿水平方向向右寻找第一个白点FWR,FWL、FWR即为疑似左、右侧发际点;
2.6.2.3)判断FWL、FWR是否满足公式(35)中的条件:
FWL.x≠0 ,(35)
FWR.x≠0
其中,FWL.x为左侧发际点FWL的横坐标,FWR.x为右侧发际点FWR的横坐标;
不满足条件时,将步骤2.6.2.1)中二值化阈值增加为1.05*FWThreshold,重新执行步骤2.6.2.2)、步骤2.6.2.3),直到满足条件为止;
这时,FWL、FWR即为最终定位的左、右两侧发际点;
最终定位的特征点,如图6所示,包括额头发际点F、左眉头点LM、右眉头点RM、左眼内眼角点LeyeIn、左眼外眼角点LeyeOut、右眼内眼角点ReyeIn、右眼外眼角点ReyeOut、鼻下点N、下巴点C、左侧发际点FWL、右侧发际点FWR
步骤3、确定三庭五眼的像素间距及比例
如图7所示,根据步骤2中定位的特征点的坐标位置,过额头发际点F沿水平方向画线,过步骤2.5.1)中计算所得的左、右眉头点LM、RM的中心点OLRM沿水平方向画线,过鼻下点N沿水平方向画线,过下巴点C沿水平方向画线,四条水平线将人脸沿纵向分为三个部分,由上到下每相邻两条水平线之间的像素间距记为S1、S2、S3,此即三庭像素间距;过左侧发际点FWL沿垂直方向画线,过左眼外眼角点LeyeOut沿垂直方向画线,过左眼内眼角点LeyeIn沿垂直方向画线,过右眼内眼角点ReyeIn沿垂直方向画线,过右眼外眼角点ReyeOut沿垂直方向画线,过右侧发际点FWR沿垂直方向画线,六条垂线将人脸沿横向分为五个部分,由左到右每相邻两条垂线之间的像素间距记为W1、W2、W3、W4、W5,此即五眼像素间距;
三庭及五眼的像素间距计算公式如下:
S1=|F.y-OLRM.y|
S2=|OLRM.y-N.y|
S3=|N.y-C.y|
W1=|FWL.x-LeyeOut.x|
W2=|LeyeOut.x-LeyeIn.x| ,(36)
W3=|LeyeIn.x-ReyeIn.x|
W4=|ReyeIn.x-ReyeOut.x|
W5=|ReyeOut.x-FWR.x|
其中,F.y为步骤2.5.2)中定位的发际点F的纵坐标,OLRM.y为步骤2.5.1)中计算所得的左、右眉头点LM、RM的中心点OLRM的纵坐标,N.y为步骤2.3.2)中定位的鼻下点N的纵坐标,C.y为步骤2.4.2)中定位的下巴点C的纵坐标,FWL.x为步骤2.6.2)中定位的左侧发际点FWL的横坐标,LeyeOut.x为步骤2.1.3)中定位的左眼外眼角点LeyeOut的横坐标,LeyeIn.x为步骤2.1.3)中定位的左眼内眼角点LeyeIn的横坐标,ReyeIn.x为步骤2.1.3)中定位的右眼内眼角点ReyeIn的横坐标,ReyeOut.x为步骤2.1.3)中定位的右眼外眼角点ReyeOut的横坐标,FWR.x为步骤2.6.2)中定位的右侧发际点FWR的横坐标;
定义三庭比例分别为SB1、SB2、SB3,五眼比例分别为WB1、WB2、WB3、WB4、WB5,其计算公式如下:
Smax=max(S1,S2,S3)
Wmax=max(W1,W2,W3,W4,W5)
S B 1 = S 1 S max
S B 2 = S 2 S max
S B 3 = S 3 S max
W B 1 = W 1 W max
W B 2 = W 2 W max
W B 3 = W 3 W max
W B 4 = W 4 W max
W B 5 = W 5 W max , - - - ( 37 )
其中,max(S1,S2,S3)为S1、S2、S3中的最大值,max(W1,W2,W3,W4,W5)为W1、W2、W3、W4、W5中的最大值,即成。

Claims (2)

1.一种人脸三庭五眼自动定位及比例确定方法,其特征在于,具体按照以下步骤实施:
步骤1、检测人脸及提取完整人脸,具体步骤是:
对于一幅人脸正面高清图像,利用AdaBoost算法的人脸分类器进行人脸检测,所检测到的人脸区域记为FaceROI,定义其左上角点为LeftTopPointface,该点的横坐标为LeftTopPointface.x、纵坐标为LeftTopPointface.y,宽为wface,高为hface,由区域FaceROI经公式(1)计算得到完整人脸区域FaceROI_Whole的左上角点的横坐标为LeftTopPointface_Whole.x,纵坐标为LeftTopPointface_Whole.y,宽度为W,高度为H,参照如下公式(1):
LeftTopPoint f a c e _ W h o l e . x = LeftTopPoint f a c e . x - w f a c e 7 LeftTopPoint f a c e _ W h o l e . y = LeftTopPoint f a c e . y - h f a c e 5 W = w f a c e + 2 * w f a c e 7 H = h f a c e + 12 * h f a c e 35 , - - - ( 1 )
得到最终提取的完整人脸区域FaceROI_Whole;
步骤2、检测人脸局部特征,定位特征点,具体步骤是:
2.1)检测眼睛及眼角点定位
2.1.1)检测眼睛及初步定位眼睛区域
在完整人脸区域FaceROI_Whole中,由点(0,0)、(W/2,H/2)围成的矩形区域内,利用AdaBoost算法的眼睛分类器进行左眼检测,所检测到的左眼区域记为LeftROI,其宽、高分别记为weyeL、heyeL,左上角点记为LeftTopPointLeftROI;在由点(W/2,0)、(W,H/2)围成的矩形区域内,利用AdaBoost算法的眼睛分类器进行右眼检测,所检测到的右眼区域记为RightROI,其宽、高分别记为weyeR、heyeR,左上角点记为LeftTopPointRightROI
2.1.2)定位眼睛区域
在完整人脸区域FaceROI_Whole中拷贝LeftROI区域到LeftROIImg,对区域LeftROIImg灰度化,计算区域LeftROIImg的灰度均值记为LeftROIImgG,再对LeftROIImg二值化,LeftROIImg的二值化阈值LeftThreshold的计算公式为:
LeftThreshold=0.8*LeftROIImgG, (2)
二值化时,若像素的灰度值大于阈值LeftThreshold,则把像素置黑,否则置白,以下所有二值化操作均遵循此原则;
置LeftROIImg二值图中高为的上边界区域为黑;
在完整人脸区域FaceROI_Whole中拷贝RightROI区域到RightROIImg,对区域RightROIImg灰度化,计算区域RightROIImg的灰度均值记为RightROIImgG,再对RightROIImg二值化,RightROIImg的二值化阈值RightThreshold的计算公式为:
RightThreshold=0.8*RightROIImgG, (3)
置RightROIImg二值图中高为的上边界区域为黑;
遍历LeftROIImg二值图,分别寻找上、下、左、右第一个白点Lt、Lb、Ll、Lr,过Lt、Lb分别沿水平方向画线,过Ll、Lr分别沿垂直方向画线,该四条直线的交点所围成的矩形区域的中心点记为OeyeLS,宽、高分别记为weyeLS、heyeLS;返回完整人脸区域FaceROI_Whole中,以OeyeLS为中心点,得到新的矩形区域LeftROI_new,其左上角点记为LeftTopPointLeftROI_new,宽、高分别为weyeLnew、heyeLnew,计算公式如下:
w e y e L n e w = 2 * w e y e L S h e y e L n e w = 2 * h e y e L S , - - - ( 4 )
遍历RightROIImg二值图,分别寻找上、下、左、右第一个白点Rt、Rb、Rl、Rr,过Rt、Rb分别沿水平方向画线,过Rl、Rr分别沿垂直方向画线,此四条直线的交点所围成的矩形区域的中心点记为OeyeRS,宽、高分别记为weyeRS、heyeRS;返回完整人脸区域FaceROI_Whole中,以OeyeRS为中心点,得到新的矩形区域RightROI_new,其左上角点记为LeftTopPointRightROI_new,宽、高分别为weyeRnew、heyeRnew,计算公式如下:
w e y e R n e w = 2 * w e y e R S h e y e R n e w = 2 * h e y e R S , - - - ( 5 )
2.1.3)定位内外眼角点
2.1.3.1)在完整人脸区域FaceROI_Whole中拷贝LeftROI_new区域到LeftROI_newImg,对区域LeftROI_newImg灰度化,再对区域LeftROI_newImg二值化,LeftROI_newImg的二值化阈值计算公式同公式(2);置LeftROI_newImg二值图中高度为的上边界区域、宽度为的左边界区域、高度为的下边界区域、宽度为的右边界区域为黑;
在完整人脸区域FaceROI_Whole中拷贝RightROI_new区域到RightROI_newImg,对区域RightROI_newImg灰度化,再对区域RightROI_newImg二值化,RightROI_newImg的二值化阈值计算公式同公式(3);置RightROI_newImg二值图中高度为的上边界区域、宽度为的左边界区域、高度为的下边界区域、宽度为的右边界区域为黑;
2.1.3.2)遍历LeftROI_newImg二值图,分别寻找左、右第一个白点,即为疑似左眼外、内眼角点LeyeOut、LeyeIn;遍历RightROI_newImg二值图,分别寻找左、右第一个白点,即为疑似右眼内、外眼角点ReyeIn、ReyeOut
2.1.3.3)分别计算LeyeIn、LeyeOut的水平间距dInOutLx、垂直间距dInOutLy,分别计算ReyeIn、ReyeOut的水平间距dInOutRx、垂直间距dInOutRy,计算公式如下:
d I n O u t L x = | L e y e I n . x - L e y e O u t . x | d I n O u t L y = | L e y e I n . y - L e y e O u t . y | d I n O u t R x = | R e y e I n . x - R e y e O u t . x | d I n O u t R y = | R e y e I n . y - R e y e O u t . y | , - - - ( 6 )
其中,LeyeIn.x、LeyeIn.y分别为左眼内眼角点LeyeIn的横、纵坐标,LeyeOut.x、LeyeOut.y分别为左眼外眼角点LeyeOut的横、纵坐标,ReyeIn.x、ReyeIn.y分别为右眼内眼角点ReyeIn的横、纵坐标,ReyeOut.x、ReyeOut.y分别为右眼外眼角点ReyeOut的横、纵坐标;
判断LeyeIn、LeyeOut、ReyeIn、ReyeOut、dInOutLx、dInOutLy、dInOutRx、dInOutRy是否满足公式(7)中的条件:
其中,min(weyeLS,weyeRS)为weyeLS、weyeRS两者中值较小者,min(heyeLS,heyeRS)为heyeLS、heyeRS两者中值较小者,LeyeIn.y为左眼内眼角点LeyeIn的纵坐标,LeyeOut.y为左眼外眼角点LeyeOut的纵坐标,ReyeIn.y为右眼内眼角点ReyeIn的纵坐标,ReyeOut.y为右眼外眼角点ReyeOut的纵坐标;
不满足条件①时,扩大区域LeftROI_new、RightROI_new,区域中心点OeyeLS、OeyeRS保持不变,宽度分别变为1.2*weyeLnew、1.2*weyeRnew,高度分别变更为1.2*heyeLnew、1.2*heyeRnew,重新执行步骤2.1.3.1)、步骤2.1.3.2)、步骤2.1.3.3),直到满足条件①为止;
不满足条件②、③、④时,把步骤2.1.3.1)中置黑的上、下边界区域高度分别扩大为原上、下边界区域高度的1.3倍,重新执行步骤2.1.3.2)、步骤2.1.3.3),直到满足条件②、③、④为止;
这时,LeyeIn、LeyeOut即为最终定位的左眼内、外眼角点,ReyeIn、ReyeOut即为最终定位的右眼内、外眼角点;
2.2)确定眉毛区域及定位眉头点
2.2.1)确定眉毛区域
在完整人脸区域FaceROI_Whole中,定义OeyeLS点垂直方向上方2*heyeLS处的点为OLM,以OLM为中心点,2.5*weyeLS为宽,2*heyeLS为高,即为左眉毛所在区域LeftMROI,其宽、高分别记为wLM、hLM;定义OeyeRS点垂直方向上方2*heyeRS处的点为ORM,以ORM为中心点,2.5*weyeRS为宽,2*heyeRS为高,即为右眉毛所在区域RightMROI,其宽、高分别记为wRM、hRM
2.2.2)定位眉头点
2.2.2.1)在完整人脸区域FaceROI_Whole中拷贝LeftMROI区域到LeftMROIImg,对区域LeftMROIImg灰度化,计算区域LeftMROIImg的灰度均值记为LeftMROIImgG,再对LeftMROIImg二值化,LeftMROIImg的二值化阈值LeftThreshold_M的计算公式为:
LeftThreshold_M=0.85*LeftMROIImgG, (8)
置LeftMROIImg二值图中上边界高度为的区域、右边界宽度为的区域为黑;
在完整人脸区域FaceROI_Whole中拷贝RightMROI区域到RightMROIImg,对区域RightMROIImg灰度化,计算区域RightMROIImg的灰度均值记为RightMROIImgG,再对RightMROIImg二值化,RightMROIImg的二值化阈值RightThreshold_M的计算公式为:
RightThreshold_M=0.85*RightMROIImgG, (9)
置RightMROIImg二值图中上边界高度为的区域、左边界宽度为的区域为黑;
2.2.2.2)遍历LeftMROIImg二值图,由右到左、由上到下寻找第一个白点LMt,由右到左、由下到上寻找第一个白点LMb,LMt、LMb即为疑似左眉头上、下点;遍历RightMROIImg二值图,由左到右、由上到下寻找第一个白点RMt,由左到右、由下到上寻找第一个白点RMb,RMt、RMb即为疑似右眉头上、下点;
2.2.2.3)计算LMt、LMb的垂直间距dLMy,RMt、RMb的垂直间距dRMy,LMt、RMt的垂直间距dLRMty和LMb、RMb的垂直间距dLRMby,计算公式如下:
d L M y = | LM t . y - LM b . y | d R M y = | RM t . y - RM b . y | d L R M t y = | LM t . y - RM t . y | d L R M b y = | LM b . y - RM b . y | , - - - ( 10 )
LMt.y为左眉头上点LMt纵坐标,LMb.y为左眉头下点LMb纵坐标,RMt.y为右眉头上点RMt纵坐标,RMb.y为右眉头下点RMb纵坐标;
判断dLMy、dRMy、dLRMty、dLRMby是否满足公式(11)中的条件:
| d L M y - d R M y | < min ( h L M , h R M ) 3 d L R M t y < min ( h L M , h R M ) 5 d L R M b y < min ( h L M , h R M ) 5 , - - - ( 11 )
其中,min(hLM,hRM)为hLM、hRM两者中值较小者;
不满足条件时,把步骤2.2.2.1)中置黑的上边界区域高度扩大为原上边界区域高度的1.5倍,重新执行步骤2.2.2.2)、步骤2.2.2.3),直到满足条件为止;
最终定位的左眉头点LM的横坐标LM.x、纵坐标LM.y,右眉头点RM的横坐标RM.x、纵坐标RM.y的计算公式如下:
L M . x = ( LM t . x + LM b . x ) 2 L M . y = ( LM t . y + LM b . y ) 2 R M . x = ( RM t . x + RM b . x ) 2 R M . y = ( RM t . y + RM b . y ) 2 , - - - ( 12 )
其中,LMt.x、LMt.y为左眉头上点LMt的横、纵坐标,LMb.x、LMb.y为左眉头下点LMb的横、纵坐标,RMt.x、RMt.y为右眉头上点RMt的横、纵坐标,RMb.x、RMb.y为右眉头下点RMb的横、纵坐标;
2.3)检测鼻子及定位鼻下点
2.3.1)确定鼻子区域
在完整人脸区域FaceROI_Whole中,由点(0,H/3)、(W,H)围成的矩形区域内,利用AdaBoost算法的鼻子分类器进行鼻子检测,所检测到的区域记为NoseROI,定义其左上角点为LeftTopPointNoseROI,它的横坐标为LeftTopPointNoseROI.x、纵坐标为LeftTopPointNoseROI.y,宽为wN,高为hN
判断NoseROI区域是否满足公式(13)中的条件:
W 5 < w N < W 3 H 6 < h N < H 3 W 3 < LeftTopPoint N o s e R O I . x < W 2 H 3 < LeftTopPoint N o s e R O I . y < 2 * H 3 , - - - ( 13 )
W、H分别为步骤1中确定的完整人脸区域FaceROI_Whole的宽、高;
满足条件时,NoseROI区域即为确定的鼻子区域NoseROI_final,其宽、高分别记为wNf、hNf,左上角点记为LeftTopPointNoseROI_final;否则,NoseROI_final区域的左上角点的横坐标LeftTopPointNoseROI_final.x、纵坐标LeftTopPointNoseROI_final.y、宽度wNf、高度hNf由公式(14)计算得出:
LeftTopPoint N o s e R O I _ f i n a l . x = L e y e I n . x LeftTopPoint N o s e R O I _ f i n a l . y = L e y e I n . y + R e y e I n . y 2 + H 12 w N f = | L e y e I n . x - R e y e I n . x | h N f = H 7 , - - - ( 14 )
其中,LeyeIn.x、LeyeIn.y为步骤2.1.3)中定位的左眼内眼角点LeyeIn的横、纵坐标,ReyeIn.x、ReyeIn.y为步骤2.1.3)中定位的右眼内眼角点ReyeIn的横、纵坐标,H为步骤1中确定的完整人脸区域FaceROI_Whole的高;
2.3.2)定位鼻下点
2.3.2.1)在完整人脸区域FaceROI_Whole中拷贝NoseROI_final区域到NoseROI_finalImg,对区域NoseROI_finalImg灰度化,计算区域NoseROI_finalImg的灰度最小值记为NoseROI_finalImgM,再对NoseROI_finalImg二值化,NoseROI_finalImg的二值化阈值NoseThreshold的计算公式为:
NoseThreshold=4*NoseROI_finalImgM+10, (15)
2.3.2.2)遍历NoseROI_finalImg二值图,由下到上、由左到右寻找第一个白点NL,由下到上、由右到左寻找第一个白点NR,NL、NR即为疑似左、右鼻孔点;
2.3.2.3)分别计算NL、NR的水平间距dNLRx、垂直间距dNLRy,计算公式如下:
d N L R x = | N L . x - N R . x | d N L R y = | N L . y - N R . y | , - - - ( 16 )
其中,NL.x、NL.y为左鼻孔点NL的横、纵坐标,NR.x、NR.y为右鼻孔点NR的横、纵坐标;
判断NL.x、NL.y、NR.x、NR.y、dNLRx、dNLRy是否满足公式(17)中的条件:
不满足条件①、②、③、④时,扩大区域NoseROI_final,区域中心保持不变,高度变为1.2*hNf,重新执行步骤2.3.2.1)、步骤2.3.2.2)、步骤2.3.2.3),直到满足条件①、②、③、④为止;
不满足条件⑤、⑥时,将步骤2.3.2.1)中二值化阈值NoseThreshold减小为0.85*NoseThreshold,重新执行步骤2.3.2.2)、步骤2.3.2.3),直到满足条件⑤、⑥为止;
最终定位的鼻下点N的横坐标N.x、纵坐标N.y的计算公式如下:
N . x = ( L M . x + R M . x ) 2 N . y = ( N L . y + N R . y ) 2 + H 60 , - - - ( 18 )
其中,LM.x、RM.x为步骤2.2.2)中定位的左、右眉头点LM、RM的横坐标,NL.y为左鼻孔点NL的纵坐标,NR.y为右鼻孔点NR的纵坐标,H为步骤1中确定的完整人脸区域FaceROI_Whole的高;
2.4)确定下巴区域及定位下巴点
2.4.1)确定下巴区域
在完整人脸区域FaceROI_Whole中,由点(0,H/2)、(W,H)围成的矩形区域内,利用AdaBoost算法的嘴巴分类器进行嘴巴检测,所检测到的区域记为MouthROI,定义其左上角点为LeftTopPointMouthROI,它的横坐标为LeftTopPointMouthROI.x、纵坐标为LeftTopPointMouthROI.y,宽为wM,高为hM
判断MouthROI区域是否满足公式(19)中的条件:
W 5 < w M < W 2 H 10 < h M < H 3 W 5 < LeftTopPoint M o u t h R O I . x < W 2 H 2 < LeftTopPoint M o u t h R O I . y < 5 * H 6 , - - - ( 19 )
W、H分别为步骤1中确定的完整人脸区域FaceROI_Whole的宽、高;
满足条件时,MouthROI区域即为确定的嘴巴区域MouthROI_final,其宽、高分别记为wMf、hMf,左上角点记为LeftTopPointMouthROI_final;否则,MouthROI_final区域的左上角点的横坐标LeftTopPointMouthROI_final.x、纵坐标LeftTopPointMouthROI_final.y、宽度wMf、高度hMf由公式(20)计算得出:
LeftTopPoint M o u t h R O I _ f i n a l . x = N . x - W 6 LeftTopPoint M o u t h R O I _ f i n a l . y = N . y + W 15 w M f = W 3 h M f = H 8 , - - - ( 20 )
其中,N.x、N.y为步骤2.3.2)中定位的鼻下点N的横、纵坐标,W、H分别为步骤1中确定的完整人脸区域FaceROI_Whole的宽、高;
在完整人脸区域FaceROI_Whole中拷贝MouthROI_final区域到MouthROI_finalImg,把MouthROI_finalImg由RGB空间转换到HSV空间,转换公式如下:
V=max(R,G,B)
S = 0 V = 0 m a x ( R , G , B ) - min ( R , G , B ) m a x ( R , G , B ) V &NotEqual; 0 , - - - ( 21 )
H = 0 V = 0 ( G - B ) V S &times; 60 V = R ( 2 + B - R S V ) &times; 60 V = G ( 4 + R - G S V ) &times; 60 V = B H + 360 H < 0
其中,max(R,G,B)、min(R,G,B)分别为像素的R、G、B值中的最大值和最小值;
若像素的H、S值满足公式(22)中的条件,则将像素置白,否则将像素置黑,得到MouthROI_finalImg的二值图;
320≤H<360且0.3≤S<1, (22)
遍历MouthROI_finalImg二值图,由左到右、由下到上按列扫描寻找第一个白点ML,由右到左、由下到上按列扫描寻找第一个白点MR,由下到上、由右到左按行扫描寻找第一个白点MM,ML、MR、MM即为疑似左嘴角点、右嘴角点、嘴巴下边缘点;
计算ML、MR的水平间距dMLRx,ML与MM、MR与MM的垂直间距dMLMy、dMRMy,计算公式如下:
d M L R x = | M L . x - M R . x | d M L M y = | M L . y - M M . y | d M R M y = | M R . y - M M . y | , - - - ( 23 )
其中,ML.x、ML.y为左嘴角点ML的横、纵坐标,MR.x、MR.y为右嘴角点MR的横、纵坐标,MM.y为嘴巴下边缘点MM的纵坐标;
判断ML.x、ML.y、MR.x、MR.y、MM.x、MM.y、dMLRx、dMLMy、dMRMy是否满足公式(24)中的条件:
不满足条件①、②时,修正公式(22)中H、S的取值范围,H下限值在原基础上减5,S下限值在原基础上减0.05,重新二值化,直到满足条件①、②为止;
不满足条件③、④、⑤时,缩小MouthROI_final区域,保持MouthROI_final区域中心不变,宽、高分别变为0.9*wMf、0.9*hMf,重新进行由RGB到HSV的颜色空间转换及二值化,直到满足条件③、④、⑤为止;
定位的嘴巴下边缘点M的横坐标M.x、纵坐标M.y的计算公式是:
M . x = ( L M . x + R M . x ) 2 M . y = ( M L . y + M R . y ) 2 + ( d M L M y + d M R M y ) 2 , - - - ( 25 )
LM.x、RM.x为步骤2.2.2)中定位的左、右眉头点LM、RM的横坐标;
在完整人脸区域FaceROI_Whole中,定义M点垂直方向下方hMf处的点为OC,以OC为中心点,为宽,2*hMf为高,即为下巴所在区域ChinROI,其宽、高分别记为wC、hC
2.4.2)定位下巴点
2.4.2.1)在完整人脸区域FaceROI_Whole中拷贝ChinROI区域到ChinROIImg,对区域ChinROIImg灰度化,计算区域ChinROIImg的灰度均值为ChinROIImgG,再对ChinROIImg二值化,ChinROIImg的二值化阈值ChinThreshold的计算公式为:
ChinThreshold=0.85*ChinROIImgG, (26)
2.4.2.2)遍历ChinROIImg二值图,由上到下,分别寻找水平坐标值为0、wC时的第一个白点C1、C2、C3、C4、C5、C6、C7,若Ci,i∈1,2,3,4,5,6,7不存在,则Ci,i∈1,2,3,4,5,6,7的纵坐标值等于与其相邻的下一个点的纵坐标值,若C7不存在,则C7的纵坐标值等于C1的纵坐标值,C1、C2、C3、C4、C5、C6、C7即为7个疑似下巴点;
2.4.2.3)判断点C1、C2、C3、C4、C5、C6、C7是否满足公式(27)中的条件;
Ci.y≠0,i=1,2,3,4,5,6,7, (27)
其中,Ci.y为疑似下巴点Ci的纵坐标,i=1,2,3,4,5,6,7;
不满足条件时,将步骤2.4.2.1)中二值化阈值ChinThreshold增大为1.05*ChinThreshold,重新执行步骤2.4.2.2)、步骤2.4.2.3),直到满足条件为止;
这时,最终定位的下巴点C的横坐标C.x、纵坐标C.y的计算公式如下:
其中,max(C1.y,C2.y,C3.y,C4.y,C5.y,C6.y,C7.y)为C1.y、C2.y、C3.y、C4.y、C5.y、C6.y、C7.y中的最大值,C1.y、C2.y、C3.y、C4.y、C5.y、C6.y、C7.y分别为疑似下巴点C1、C2、C3、C4、C5、C6、C7的纵坐标,LM.x、RM.x为步骤2.2.2)中定位的左、右眉头点LM、RM的横坐标;
2.5)确定额头发际区域及定位额头发际点
2.5.1)确定额头发际区域
在完整人脸区域FaceROI_Whole中,定义左、右眉头点LM、RM的中心点为OLRM,LM、RM的水平间距为dLRM,OLRM的横、纵坐标OLRM.x、OLRM.y及dLRM的计算公式如下:
O L R M . x = L M . x + R M . x 2 O L R M . y = L M . y + R M . y 2 d L R M = | L M . x - R M . x | , - - - ( 29 )
其中,LM.x、LM.y为步骤2.2.2)中定位的左眉头点LM的横、纵坐标,RM.x、RM.y为步骤2.2.2)中定位的右眉头点RM的横、纵坐标;
在完整人脸区域FaceROI_Whole中,定义OLRM点垂直方向上方2*dLRM处的点为OF,以OF为中心点,为宽,为高,即为额头发际所在区域ForeROI,其宽、高分别记为wF、hF
2.5.2)定位额头发际点
2.5.2.1)在完整人脸区域FaceROI_Whole中拷贝ForeROI区域到ForeROIImg,对区域ForeROIImg灰度化,计算区域ForeROIImg的灰度均值为ForeROIImgG,再对ForeROIImg二值化,ForeROIImg的二值化阈值ForeThreshold的计算公式为:
ForeThreshold=0.8*ForeROIImgG, (30)
2.5.2.2)遍历ForeROIImg二值图,由下到上,分别寻找水平坐标值为0、wF时的第一个白点F1、F2、F3,若点Fi,i∈1,2,3不存在,则Fi,i∈1,2,3的纵坐标值等于与其相邻的下一个点的纵坐标值,若F3不存在,则F3的纵坐标值等于F1的纵坐标值,F1、F2、F3即为3个疑似发际点;
2.5.2.3)判断点F1、F2、F3是否满足公式(31)中的条件:
Fi.y≠0,i=1,2,3, (31)
其中,Fi.y为疑似发际点Fi的纵坐标,i=1,2,3;
不满足条件时,将步骤2.5.2.1)中二值化阈值ForeThreshold增大为1.05*ForeThreshold,重新执行步骤2.5.2.2)、步骤2.5.2.3),直到满足条件为止;
终定位的额头发际点F的横坐标F.x、纵坐标F.y的计算公式如下:
其中,min(F1.y,F2.y,F3.y)为F1.y、F2.y、F3.y中的最小值,F1.y、F2.y、F3.y分别为发际点F1、F2、F3的纵坐标,LM.x、RM.x为步骤2.2.2)中定位的左、右眉头点LM、RM的横坐标;
2.6)确定脸宽区域及定位两侧发际点
2.6.1)确定脸宽区
在完整人脸区域FaceROI_Whole中,定义左、右眼内眼角点LeyeIn、ReyeIn的中心点为OLReyeIn,LeyeIn、ReyeIn的水平间距为dLReyeIn,OLReyeIn的横、纵坐标OLReyeIn.x、OLReyeIn.y及dLReyeIn的计算公式如下:
O L Re y e I n . x = L e y e I n . x + R e y e I n . x 2 O L Re y e I n . y = L e y e I n . y + R e y e I n . y 2 d L Re y e I n = | L e y e I n . x - R e y e I n . x | , - - - ( 33 )
其中,LeyeIn.x、LeyeIn.y为左眼内眼角点LeyeIn的横、纵坐标,ReyeIn.x、ReyeIn.y为右眼内眼角点ReyeIn的横、纵坐标;
在完整人脸区域FaceROI_Whole中,以OLReyeIn为中心点,5*dLReyeIn为宽,为高,即为脸宽区域FaceWidthROI,其宽、高分别记为wFW、hFW
2.6.2)定位两侧发际点
2.6.2.1)在完整人脸区域FaceROI_Whole中拷贝FaceWidthROI区域到FaceWidthROIImg,对区域FaceWidthROIImg灰度化,计算区域FaceWidthROIImg的灰度均值为FaceWidthROIImgG,再对FaceWidthROIImg二值化,FaceWidthROIImg的二值化阈值FWThreshold的计算公式:
FWThreshold=0.9*FaceWidthROIImgG, (34)
2.6.2.2)在FaceWidthROIImg二值图中,由左眼外眼角点LeyeOut的横坐标LeyeOut.x、OLReyeIn的纵坐标OLReyeIn.y开始,沿水平方向向左寻找第一个白点FWL;由右眼外眼角点ReyeOut的横坐标ReyeOut.x、OLReyeIn的纵坐标OLReyeIn.y开始,沿水平方向向右寻找第一个白点FWR,FWL、FWR即为疑似左、右侧发际点;
2.6.2.3)判断FWL、FWR是否满足公式(35)中的条件:
FW L . x &NotEqual; 0 FW R . x &NotEqual; 0 , - - - ( 35 )
FWL.x为左侧发际点FWL横坐标,FWR.x为右侧发际点FWR横坐标;
不满足条件时,将步骤2.6.2.1)中二值化阈值增加为1.05*FWThreshold,重新执行步骤2.6.2.2)、步骤2.6.2.3),直到满足条件为止;
这时,FWL、FWR即为最终定位的左、右两侧发际点;
最终定位的特征点,包括额头发际点F、左眉头点LM、右眉头点RM、左眼内眼角点LeyeIn、左眼外眼角点LeyeOut、右眼内眼角点ReyeIn、右眼外眼角点ReyeOut、鼻下点N、下巴点C、左侧发际点FWL、右侧发际点FWR
步骤3、确定三庭五眼的像素间距及比例。
2.根据权利要求1所述的人脸三庭五眼自动定位及比例确定方法,其特征在于:所述的步骤3中,根据步骤2中定位的特征点的坐标位置,过额头发际点F沿水平方向画线,过步骤2.5.1)中计算所得的左、右眉头点LM、RM的中心点OLRM沿水平方向画线,过鼻下点N沿水平方向画线,过下巴点C沿水平方向画线,四条水平线将人脸沿纵向分为三个部分,由上到下每相邻两条水平线之间的像素间距记为S1、S2、S3,此即三庭像素间距;过左侧发际点FWL沿垂直方向画线,过左眼外眼角点LeyeOut沿垂直方向画线,过左眼内眼角点LeyeIn沿垂直方向画线,过右眼内眼角点ReyeIn沿垂直方向画线,过右眼外眼角点ReyeOut沿垂直方向画线,过右侧发际点FWR沿垂直方向画线,六条垂线将人脸沿横向分为五个部分,由左到右每相邻两条垂线之间的像素间距记为W1、W2、W3、W4、W5,此即五眼像素间距;
三庭及五眼的像素间距计算公式如下:
S 1 = | F . y - O L R M . y | S 2 = | O L R M . y - N . y | S 3 = | N . y - C . y | W 1 = | FW L . x - L e y e O u t . x | W 2 = | L e y e O u t . x - L e y e I n . x | W 3 = | L e y e I n . x - R e y e I n . x | W 4 = | R e y e I n . x - R e y e O u t . x | W 5 = | R e y e O u t . x - FW R . x | , - - - ( 36 )
F.y为步骤2.5.2)中定位的发际点F的纵坐标,OLRM.y为步骤2.5.1)中所得左、右眉头点LM、RM的中心点OLRM的纵坐标,N.y为步骤2.3.2)中定位的鼻下点N的纵坐标,C.y为步骤2.4.2)中定位的下巴点C的纵坐标,FWL.x为步骤2.6.2)中定位的左侧发际点FWL的横坐标,LeyeOut.x为步骤2.1.3)中定位的左眼外眼角点LeyeOut的横坐标,LeyeIn.x为步骤2.1.3)中定位的左眼内眼角点LeyeIn的横坐标,ReyeIn.x为步骤2.1.3)中定位的右眼内眼角点ReyeIn的横坐标,ReyeOut.x为步骤2.1.3)中定位的右眼外眼角点ReyeOut的横坐标,FWR.x为步骤2.6.2)中定位的右侧发际点FWR的横坐标;
定义三庭比例分别为SB1、SB2、SB3,五眼比例分别为WB1、WB2、WB3、WB4、WB5,其计算公式如下:
S max = max ( S 1 , S 2 , S 3 ) W max = max ( W 1 , W 2 , W 3 , W 4 , W 5 ) S B 1 = S 1 S max S B 2 = S 2 S max S B 3 = S 3 S max W B 1 = W 1 W max W B 2 = W 2 W max W B 3 = W 3 W max W B 4 = W 4 W max W B 5 = W 5 W max , - - - ( 37 )
其中,max(S1,S2,S3)为S1、S2、S3中的最大值,max(W1,W2,W3,W4,W5)为W1、W2、W3、W4、W5中的最大值,即成。
CN201410219690.XA 2014-05-22 2014-05-22 一种人脸三庭五眼自动定位及比例确定方法 Expired - Fee Related CN104021550B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410219690.XA CN104021550B (zh) 2014-05-22 2014-05-22 一种人脸三庭五眼自动定位及比例确定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410219690.XA CN104021550B (zh) 2014-05-22 2014-05-22 一种人脸三庭五眼自动定位及比例确定方法

Publications (2)

Publication Number Publication Date
CN104021550A CN104021550A (zh) 2014-09-03
CN104021550B true CN104021550B (zh) 2017-01-18

Family

ID=51438288

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410219690.XA Expired - Fee Related CN104021550B (zh) 2014-05-22 2014-05-22 一种人脸三庭五眼自动定位及比例确定方法

Country Status (1)

Country Link
CN (1) CN104021550B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104298482B (zh) * 2014-09-29 2017-08-25 华勤通讯技术有限公司 移动终端自动调整输出的方法
CN106611149B (zh) * 2015-10-22 2019-12-13 腾讯科技(深圳)有限公司 一种定位皮肤区域的方法和装置
CN108932461A (zh) * 2017-05-27 2018-12-04 杭州海康威视数字技术股份有限公司 一种疲劳检测方法及装置
CN107808136B (zh) * 2017-10-31 2020-06-12 Oppo广东移动通信有限公司 图像处理方法、装置、可读存储介质和计算机设备
EP3751446B1 (en) * 2018-02-28 2023-08-16 Honor Device Co., Ltd. Hairline contour locating method and device, and computer readable storage medium
CN110837757A (zh) * 2018-08-17 2020-02-25 北京京东尚科信息技术有限公司 人脸比例计算方法、系统、设备及存储介质
CN109034138B (zh) * 2018-09-11 2021-09-03 湖南拓视觉信息技术有限公司 图像处理方法及装置
CN109214373B (zh) * 2018-11-05 2020-11-13 绍兴文理学院 一种用于考勤的人脸识别系统及方法
CN110363107A (zh) * 2019-06-26 2019-10-22 成都品果科技有限公司 人脸额头点位快速扩展方法、装置、储存介质和处理器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216882A (zh) * 2007-12-28 2008-07-09 北京中星微电子有限公司 一种人脸眼角与嘴角定位与跟踪的方法及装置
CN101950355A (zh) * 2010-09-08 2011-01-19 中国人民解放军国防科学技术大学 基于数字视频的驾驶员疲劳状态检测方法
CN102194131A (zh) * 2011-06-01 2011-09-21 华南理工大学 基于五官几何比例特征的快速人脸识别方法
CN102254180A (zh) * 2011-06-28 2011-11-23 北京交通大学 一种基于几何特征的人脸美感分析方法
CN103440479A (zh) * 2013-08-29 2013-12-11 湖北微模式科技发展有限公司 一种活体人脸检测方法与系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216882A (zh) * 2007-12-28 2008-07-09 北京中星微电子有限公司 一种人脸眼角与嘴角定位与跟踪的方法及装置
CN101950355A (zh) * 2010-09-08 2011-01-19 中国人民解放军国防科学技术大学 基于数字视频的驾驶员疲劳状态检测方法
CN102194131A (zh) * 2011-06-01 2011-09-21 华南理工大学 基于五官几何比例特征的快速人脸识别方法
CN102254180A (zh) * 2011-06-28 2011-11-23 北京交通大学 一种基于几何特征的人脸美感分析方法
CN103440479A (zh) * 2013-08-29 2013-12-11 湖北微模式科技发展有限公司 一种活体人脸检测方法与系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李召荣等.实时鲁棒的自动人眼状态分类.《计算机辅助设计与图形学学报》.2007,第19卷(第3期),第292-297页. *

Also Published As

Publication number Publication date
CN104021550A (zh) 2014-09-03

Similar Documents

Publication Publication Date Title
CN104021550B (zh) 一种人脸三庭五眼自动定位及比例确定方法
CN104331151B (zh) 基于光流法的手势运动方向识别方法
CN101916370B (zh) 人脸检测中非特征区域图像处理的方法
CN101305913B (zh) 一种基于视频的人脸美丽评价方法
CN106778676A (zh) 一种基于人脸识别及图像处理的注意力评估方法
CN103886308B (zh) 一种使用聚合通道特征和软级联分类器的行人检测方法
CN102663354B (zh) 人脸标定方法和系统
CN102270303B (zh) 敏感图像的联合检测方法
CN104299011A (zh) 一种基于人脸图像识别的肤质与皮肤问题识别检测方法
CN106295551A (zh) 一种基于视频分析的人员安全帽佩戴情况实时检测方法
CN108021893A (zh) 一种用于判断学生上课专注度的算法
CN104123549B (zh) 一种用于疲劳驾驶实时监测的眼睛定位方法
CN102930278A (zh) 一种人眼视线估计方法及其装置
CN103218615B (zh) 人脸判定方法
CN102622584B (zh) 视频监控中蒙面人脸的检测方法
CN104318603A (zh) 从手机相册调取照片生成3d模型的方法及系统
CN106203284B (zh) 基于卷积神经网络和条件随机场的人脸检测方法
CN104794693B (zh) 一种人脸关键区域自动检测蒙版的人像优化方法
CN103632146B (zh) 一种基于头肩距的人体检测方法
CN102096823A (zh) 基于高斯模型和最小均方差的人脸检测方法
CN108764058A (zh) 一种基于热成像效应的双摄像头人脸活体检测方法
CN104484645A (zh) 一种面向人机交互的“1”手势识别方法与系统
CN101216882A (zh) 一种人脸眼角与嘴角定位与跟踪的方法及装置
CN104715244A (zh) 一种基于肤色分割和机器学习的多视角人脸检测方法
CN104318266B (zh) 一种图像智能分析处理预警方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170118

Termination date: 20210522

CF01 Termination of patent right due to non-payment of annual fee