CN104834919A - 一种基于轮廓线的三维人脸迭代预处理和特征点提取方法 - Google Patents
一种基于轮廓线的三维人脸迭代预处理和特征点提取方法 Download PDFInfo
- Publication number
- CN104834919A CN104834919A CN201510260055.0A CN201510260055A CN104834919A CN 104834919 A CN104834919 A CN 104834919A CN 201510260055 A CN201510260055 A CN 201510260055A CN 104834919 A CN104834919 A CN 104834919A
- Authority
- CN
- China
- Prior art keywords
- point
- feat
- formula
- csy
- face
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/168—Feature extraction; Face representation
Abstract
本发明公开了一种基于轮廓线的三维人脸迭代预处理和特征点提取方法,包括以下步骤:1)对三维人脸模型进行预切割;2)提取三维人脸的纵向轮廓线和横向轮廓线;3)利用轮廓线提取人脸特征点;4)利用轮廓线和特征点计算人脸偏移量和旋转量,并矫正人脸;5)重复步骤2-4逐次改善效果,直到误差小于给定阈值或达到迭代次数的上限;6)对人脸进行再切割和移动。本发明提出的方法具有较高的精度和很强的鲁棒性,通过多次迭代,避免人脸初始姿态对预处理和特征点提取的影响。
Description
技术领域
本发明涉及一种基于轮廓线的三维人脸预处理和特征点提取方法,涉及数字图像处理和模式识别领域。
背景技术
生物特征识别如人脸识别、指纹识别、虹膜识别在安全领域有着广泛的应用前景,人脸识别的对用户干扰小、隐蔽性好等特性,而成为目前模式识别领域的研究热点。传统的基于二维图像的人脸识别已经取得了较大的发展,但是识别的效果依然受光照、姿态和表情等因素的限制,而三维人脸模型受光照、姿态影响较小,且三维人脸模型中包含更多的几何信息,因而三维人脸识别受到越来越多的关注。
但是,三维人脸模型数据量大,加长了计算时间,因此,如何减小计算量成为三维人脸识别技术的主要问题,特征点识别又是其中的基础问题。通过特征点的比对,可以大大提高识别效率。传统的三维人脸预处理一般使用主成分分析法(Principal Component Analysis,PCA)算法,在点云较稀疏或对称性不佳时效果较差,而通常特征点提取又依赖于预处理的效果。三维人脸的姿态矫正和特征点提取是三维人脸识别技术的基础问题,也是研究的难点之一。
发明内容
发明目的:针对姿态矫正与人脸特征点密切相关、相互影响的问题,本发明提出一种基于轮廓线的三维人脸预处理和特征点提取方法,将姿态矫正与人脸特征点提取同步进行。
技术方案:一种基于轮廓线的三维人脸迭代预处理和特征点提取方法,该方法包括以下步骤:
步骤1:对三维人脸模型进行预切割;
步骤1.1:进行z方向预切割;
步骤1.1.1:计算三维点云的重心:
式中,xc、yc、zc是重心的三维坐标,xt、yt、zt是点云中每一个点的三维坐标,N是点云点数;
步骤1.1.2:将点云重心移到原点:
xt'=xt-xc
yt'=yt-yc (2)
zt'=zt-zc
式中,xt'、yt'、zt'是点云中每一个点移动后的三维坐标;
步骤1.1.3:对z方向整数量化,得到z方向点云密度函数:
fz(u)=card({(xt',yt',zt')∈P|-0.5<zt'-u≤0.5}) (3)
式中,P是点云中所有点构成的集合,card(.)表示点集中点的个数,fz(u)是求出的(u-0.5,u+0.5)范围内的点云密度;
步骤1.1.4:计算z方向点云分布函数:
式中Fz(k)是满足z<k的点云总数;
步骤1.1.5:确定人脸的起始位置:
(Fz(kzmin+kd)-c)(Fz(kzmin+kd+1)-c)<0 (5)
kzmax=kzmin+d
式中,kzmin是人脸的起始位置,c是噪点死区,kd是切割余量,kzmax是人脸的结束位置,d是预切割的人脸厚度;
步骤1.1.6:切除坐标不满足kzmin<z<kzmax的点云;
步骤1.2:采用与步骤1.1类似的方法,进行y方向预切割;
步骤1.3:去噪;
G={pt∈X|card(NRt)<c} (6)
NRt={p∈X|dist(pt,p)<r}
式中,G是去噪后的点集,X是经过Y,Z方向切割后的点集,card(NRt)表示NRt集合中的元素个数,NRt表示pt点的附近点集(与pt的距离小于r的点),r、c是预设的参数。
步骤2:提取三维人脸的纵向轮廓线和横向轮廓线;
步骤2.1:计算粗切割后的人脸的重心,并将重心平移到原点处;
步骤2.2:每隔1个单位,提取一条横向轮廓线(j,i,Cy(i,j)),其中-140<i≤60,-300<j<300;
步骤2.2.1:记Zi,j={(xt',yt',zt')|yt'=i,xt'=j},其中xt'、yt'、zt'是经过平移后的点云三维坐标;
步骤2.2.2:若则用下式计算满足y=i的横向轮廓在x=j处的z坐标Cy(i,j):
式中,n表示Zi,j中元素的个数,Cy(i,j)即为Zi,j中元素z坐标的均值;
步骤2.2.3:若则通过线性插值计算Cy(i,j):
式中,m1是待插值的点Cy(i,j)右侧第一个能够通过公式7确定的点与Cy(i,j)的横坐标差值的绝对值,m2是待插值的点Cy(i,j)左侧第一个能够通过公式7确定的点与Cy(i,j)的横坐标差值的绝对值,Cy(i,j-m2)和Cy(i,j+m1)是Cy(i,j)所在的横向轮廓线上与点Cy(i,j)相邻且能够通过公式7确定的两个点的Z坐标;
步骤2.3:采用与步骤2.2类似的方法,每隔1个单位提取一条纵向轮廓线(i,j,Cx(i,j)),其中-40<i≤40,-300<j<300。
步骤3:利用轮廓线提取人脸特征点,提取的人脸特征点包括鼻尖,眉心,上唇中点,左鼻翼,右鼻翼,左眼内眼角,右眼内眼角,具体包括以下步骤:
步骤3.1:计算轮廓线斜率、曲率;
步骤3.1.1:通过下式计算横向轮廓线的斜率:
Cdy(i,j)=Cy(i,j)-Cy(i,j-1) (9)
通过如下方法计算横向轮廓线的曲率:
式中,Cy(i,j)表示满足y=i的横向轮廓在x=j处的z坐标;
步骤3.1.2:采用类似方法计算纵向轮廓线的斜率Cdx(i,j)和曲率Crx(i,j);
步骤3.2:获取鼻尖点
在-8<i<8,-20<j<20范围内,若i=im0,j=jm0时Cx(i,j)取最大值,则
Feat0(x0,y0,z0)=(im0,jm0,Cx(im0,jm0)) (11)
式中,Feat0为鼻尖点,其坐标为(x0,y0,z0),Cx(i,j)表示满足x=j的纵向轮廓在y=i处的z坐标;
步骤3.3:获取眉心点
步骤3.3.1:从鼻尖Feat0所在的纵向轮廓线开始,向y轴正方向寻找下一个极大值点,即为眉心的大致位置Feat1',具体为:在y0+30<j<y0+60范围内,若j=jm1'时Crx(x0,j)取得极大值,j<jm1'时无其他极大值,则
Feat1'(x1',y1',z1')=(x0,jm1',Cx(x0,jm1')) (12)
步骤3.3.2:从Feat1'附近沿x方向找到轮廓线的值最高处,即为眉心位置Feat1,具体为:在-10<j<10范围内,若j=jm1时Cy(y1',j)取得最大值,则
Feat1(x1,y1,z1)=(jm1,y1',Cy(y1',jm1)) (13)
步骤3.4:获取上唇中点
步骤3.4.1:从鼻尖Feat0所在的纵向轮廓线开始,向y轴负方向一定范围内寻找最小值点,即为位于上唇与鼻子之间的点Feat2',具体为:在y0>j>y0-20范围内,若j=jm2'时Cx(x0,j)取得最小值,则
Feat2'(x2',y2',z2')=(x0,jm2',Cx(x0,jm2')) (14)
步骤3.4.2:从Feat2'所的纵向轮廓线开始,再向y轴负方向一定范围内寻找最大值点,即为上唇中点的大致位置Feat2”,具体为:在y2'>j>y2'-20范围内,若j=jm2”时Cx(y2',j)取得最大值,则
Feat2”(x2”,y2”,z2”)=(x2',jm2”-2,Cx(x2',jm2”)) (15)
步骤3.4.3:从Feat2”附近沿x方向找到轮廓线的值最高处,即为上唇中点Feat2,具体为:在-10<j<10范围内,若j=jm2时Cy(y2”,j)取得最大值,则
Feat2(x2,y2,z2)=(jm2,y2”,Cy(y2”,jm2)) (16)
步骤3.5:获取鼻翼点
从鼻尖Feat0所在的横向轮廓线开始,向x轴负方向一定范围内寻找最大值点,即为左鼻翼点Feat3,向x轴正方向一定范围内寻找最大值点,即为右鼻翼点Feat4,具体为:
在-30<j<-15范围内,若j=jm3时Cry(y0,j)取得最大值,则
Feat3(x3,y3,z3)=(jm3,y0,Cy(y0,jm3)) (17)
在15<j<30范围内,若j=jm4时Cry(y0,j)取得最大值,则
Feat4(x4,y4,z4)=(jm4,y0,Cy(y0,jm4)) (18)
步骤3.6:获取内眼角点
步骤3.6.1:通过下式计算左眼的横向轮廓线判定值:
d0(i)=Cy(i,Csy10(i))-Cy(i,Csy20(i)) (19)
式中,d0(i)表示左眼处纵坐标为i的横向轮廓线在左脸部分的第一个曲率极大值和第二个曲率极大值位置的人脸轮廓线高度差值,j=Csy10(i)表示横向轮廓线的左侧第一个曲率极大值点,j=Csy20(i)表示横向轮廓线左侧的第二个曲率极大值点;
步骤3.6.2:在Feat0+20<i<Feat1+10范围内,若i=im5时d0(i)取得最大值,则左眼球y轴坐标为im5;
步骤3.6.3:在im5-5<j<im5+5范围内,若j=jm5时Cx(Csy10(im5),j)取得最大值,则
Feat5(x5,y5,z5)=(Csy10(im5),jm5,Cx(Csy10(im5)),jm5) (20)
式中,Feat5为左眼内眼角点;
步骤3.6.4:计算右眼的横向轮廓线判定值:
d1(i)=Cy(i,Csy11(i))-Cy(i,Csy21(i)) (21)
式中,d1(i)表示右眼处纵坐标为i的横向轮廓线在右脸部分的第一个曲率极大值和第二个曲率极大值位置的人脸轮廓线高度差值,j=Csy11(i)表示横向轮廓线的右侧第一个曲率极大值点,j=Csy21(i)表示横向轮廓线的右侧第二个曲率极大值点;
步骤3.6.5:在Feat0+20<i<Feat1+10范围内,若i=im6时d1(i)取得最大值,则右眼球y轴坐标为im6;
步骤3.6.6:在im6-5<j<im6+5范围内,若j=jm6时Cx(Csy11(im6),j)取得最大值,则
Feat6(x6,y6,z6)=(Csy11(im6),jm6,Cx(Csy11(im6)),jm6) (22)
式中,Feat6为右眼内眼角点。
步骤4:利用轮廓线和特征点计算人脸偏移量和旋转量,并矫正人脸;
步骤4.1:计算x轴旋转量
式中,ext为扩展因子,x3,x4是步骤3提取的左右鼻翼点横坐标,j=Csx0(i)表示纵向轮廓线的左侧第一个曲率极值点,j=Csx1(i)表示纵向轮廓线的右侧第一个曲率极值点;
步骤4.2:计算y轴旋转量
式中,ext为扩展因子,y0,y1是步骤3提取的鼻尖点和眉心点纵坐标,j=Csy10(i)表示横向轮廓线的左侧第一个曲率极大值点,j=Csy11(i)表示横向轮廓线的右侧第一个极大值点;
步骤4.3:计算z轴旋转量
式中,x0,x1是步骤3提取的鼻尖点和眉心点横坐标,y0,y1是步骤3提取的鼻尖点和眉心点纵坐标;
步骤4.4:计算平移量
式中,x0是步骤3提取的鼻尖点横坐标,y0是步骤3提取的鼻尖点纵坐标,是计算所有点的z坐标均值;
步骤4.5:对人脸依次完成xyz轴的旋转和平移,进行姿态矫正。
步骤5:重复步骤2-4逐次改善效果,直到误差小于给定阈值或达到迭代次数的上限;
步骤5.1:计算偏差
s1=|xr|+|yr|+|zr|
s2=|xt|+|yt|+|zt|
s=krs1+kts2 (27)
式中,xr,yr,zr,xt,yt,zt是步骤4计算出的3个方向的旋转量和平移量,s1是旋转偏差,s2是平移偏差,kr、kt是比例系数,S是滤波后的综合偏差,Sold是上一次迭代的综合偏差;
步骤5.2:判断是否满足终止条件
当S<4时,以鼻尖为圆心,将半径r>R+20的部分切除;
当S<2时,以鼻尖为圆心,将半径r>R+10的部分切除;
当S<0.5时,以鼻尖为圆心,将半径r>R的部分切除,并结束迭代过程;
步骤5.3:判断是否达到迭代次数的上限,若达到,则结束迭代过程。
步骤6:对人脸进行再切割和移动,具体为:根据得到的矫正的人脸和特征点,以鼻尖为中心,R为半径,将与鼻尖点距离超过R的部分删除,再将人脸平移,使鼻尖和坐标原点重合。
有益效果:本发明提出的方法具有较高的精度和很强的鲁棒性,通过多次迭代,避免人脸初始姿态对预处理和特征点提取的影响。本方法姿态矫正效果与目前较为通用的基于主成分分析法根据人脸对称性进行的姿态矫正相比,具有受局部遮挡、点云部分缺失等不对称因素影响较小的优点;本方法特征识别效果,与目前较为通用的将三维点云投影到二维进行特征点识别的方法相比,在鲁棒性方面具有较大优势,具有不受点云光照条件、投影方向影响的优点。
附图说明
图1为本发明基于轮廓线的三维人脸迭代预处理和特征点提取的整体流程图;
图2为本发明提取的部分纵向人脸轮廓线;
图3为本发明的z方向点云密度函数;
图4为本发明的z方向点云分布函数;
图5为本发明的综合偏差与迭代次数的关系图;
图6为本发明的标准库(FRGC)特征点提取效果图;
图7为本发明点云较稀疏时的特征点提取效果图;
图8为本发明点云较稀疏时的特征点提取效果图。
具体实施方法
下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
本发明的基于轮廓线的三维人脸迭代预处理和特征点提取方法,在Windows操作系统中通过Matlab R2014a编程工具实现三维人脸识别流程,实验数据来自拍摄的三维人脸样本和FRGC V2.0三维人脸数据库,该数据库中包含用于测试的466个人的4007张人脸模型。
图1是本发明方法的整体流程图,具体步骤如下:
步骤1:对三维人脸模型进行预切割、去噪;
步骤1.1:z方向预切割
本方法使用三维人脸点云模型,通过大量散点表征人脸形态,每个点有x,y,z三个坐标,数据以毫米为单位,本方法要求待处理的人脸大致上面向z轴正方向,正面无大面积遮挡物。
下式可以计算三维点云的重心:
式中,xc、yc、zc是重心的三维坐标,xt、yt、zt是点云中每一个点的三维坐标,N是点云点数。
通过下式将点云重心移到原点:
xt'=xt-xc
yt'=yt-yc (2)
zt'=zt-zc
我们对z方向整数量化,可以得到z方向点云密度函数,如图3。
fz(u)=card({(xt',yt',zt')∈P|-0.5<zt'-u≤0.5}) (3)
式中,P是点云中所有点构成的集合,card(.)表示点集中点的个数,fz(u)是求出的(u-0.5,u+0.5)范围内的点云密度。
下式可以计算z方向点云分布函数,如图4。
式中,Fz(k)是满足z<k的点云总数,显然Fz(k)是单调递增函数。
由下式可以确定人脸的起始位置:
(Fz(kzmin+kd)-c)(Fz(kzmin+kd+1)-c)<0 (5)
kzmax=kzmin+d
式中,kzmin是人脸的起始位置,c是噪点死区,用来避免人脸前部的少量噪声产生的误判,kd是切割余量,以免去噪时鼻尖被削去,考虑到人脸前面可能有一些噪点,取c=15,kd=5,kzmax是人脸的结束位置,d是预切割的人脸厚度,取d=100。
将点云z坐标不满足kzmin<z<kzmax的部分将被切除。
步骤1.2:y方向预切割
与上述步骤1.1类似,在y方向求得kymin和kymax,并切除不满足kymin<y<kymax的部分。
步骤1.3:去噪
类似于二维图像的腐蚀操作,使用下式进行去噪:
G={pt∈X|card(NRt)<c} (6)
NRt={p∈X|dist(pt,p)<r}
式中,G是去噪后的点集,X是经过Y,Z方向切割后点集,NRt表示pt点的附近点集(与pt的距离小于r的点),card(NRt)表示NRt集合中的元素个数,取r=5,c=4。
步骤2:提取三维人脸的轮廓线
完成预处理后,计算粗切割后的人脸的重心并平移到原点处,使得轮廓线能包含人脸的眼鼻口部分。提取的轮廓线分为纵向轮廓线和横向轮廓线,坐标每隔1提取一条轮廓线。提取80条纵向轮廓线,对应x=-39,-38,...,-1,0,1,2,...,39,40,同理提取200条横向轮廓线,对应y=-139,-138,...,-1,0,1,2,...,59,60。由于提取的轮廓是离散轮廓,考虑人脸尺寸,设定轮廓线长度为599,即坐标不满足-300<j<300的部分将被忽略,将满足y=i的横向轮廓的x=j位置的z值记为Cy(i,j),-140<i≤60,-300<j<300,将满足x=i的纵向轮廓的y=j位置的z值记为Cx(i,j),-40<i≤40,-300<j<300,如图2。
步骤2.1:提取横向轮廓线,步骤如下:
当时,用下式计算Cy(i,j):
式中,n表示Zi,j中元素的个数,Cy(i,j)即为Zi,j中元素z坐标的均值。
当时,Cy(i,j)通过线性插值计算:
式中,m1是待插值的点Cy(i,j)右侧第一个能够通过公式7确定的点与Cy(i,j)的横坐标差值的绝对值,m2是待插值的点Cy(i,j)左侧第一个能够通过公式7确定的点与Cy(i,j)的横坐标差值的绝对值,Cy(i,j-m2)和Cy(i,j+m1)是Cy(i,j)所在的横向轮廓线上与点Cy(i,j)相邻且能够通过公式7确定的两个点的Z坐标。
步骤2.2:类似步骤2.1,计算纵向轮廓线Cx(i,j)。
步骤3:利用轮廓线找人脸特征点,包括鼻尖,眉心,上唇中点,左鼻翼,右鼻翼,左眼内眼角,右眼内眼角7个特征点;
步骤3.1:计算轮廓线斜率、曲率;
通过下式计算轮廓线斜率:
Cdy(i,j)=Cy(i,j)-Cy(i,j-1) (9)
通过如下方法计算曲率:
记第i条横向轮廓线曲率Cry(i,j)在-10<j<10范围内的最大值点为j=Csy0(i),在j=Csy0(i)左侧第一个曲率极大值点为j=Csy10(i),第二个极大值点为j=Csy20(i),在j=Csy0(i)右侧第一个曲率极大值点为j=Csy11(i),第二个极大值点为j=Csy21(i)。
同理,可以计算纵向轮廓线的斜率Cdx(i,j),曲率Crx(i,j),左侧第一个曲率极值点j=Csx0(i)和右侧第一个曲率极值点j=Csx1(i)。
步骤3.2:获取鼻尖点
经过预切割的人脸,鼻尖大致在重心附近,可通过下式找到鼻尖点:
在-8<i<8,-20<j<20范围内,i=im0,j=jm0时Cx(i,j)取最大值,则
Feat0(x0,y0,z0)=(im0,jm0,Cx(im0,jm0)) (11)
式中Feat0为鼻尖点,其坐标为(x0,y0,z0),Cx(i,j)表示满足x=j的纵向轮廓在y=i处的z坐标。
步骤3.3:获取眉心点
步骤3.3.1:从鼻尖Feat0所在的纵向轮廓线开始,向y轴正方向寻找下一个极大值点,记为Feat1',具体为:在y0+30<j<y0+60范围内,若j=jm1'时Crx(x0,j)取得极大值,j<jm1'时无其他极大值,则
Feat1'(x1',y1',z1')=(x0,jm1',Cx(x0,jm1')) (12)
式中,Feat1'为眉心的大致位置。
步骤3.3.2:从Feat1'附近沿x方向找到轮廓线的值最高处,记为Feat1,具体为:在-10<j<10范围内,若j=jm1时Cy(y1',j)取得最大值,则
Feat1(x1,y1,z1)=(jm1,y1',Cy(y1',jm1)) (13)
式中,Feat1为眉心的位置。
步骤3.4:获取上唇中点
步骤3.4.1:从鼻尖Feat0所在的纵向轮廓线开始,向y轴负方向一定范围内寻找最小值点,记为Feat2',此点位于上唇与鼻子之间,具体为:在y0>j>y0-20范围内,若j=jm2'时Cx(x0,j)取得最小值,则
Feat2'(x2',y2',z2')=(x0,jm2',Cx(x0,jm2')) (14)
式中,Feat2'为位于上唇与鼻子之间的点。
步骤3.4.2:从Feat2'所在的纵向轮廓线开始,再向y轴负方向一定范围内寻找最大值点,记为Feat2”,具体为:在y2'>j>y2'-20范围内,j=jm2”时Cx(y2',j)取得最大值,则
Feat2”(x2”,y2”,z2”)=(x2',jm2”-2,Cx(x2',jm2”)) (15)
式中,Feat2”为上唇中点的大致位置。
步骤3.4.3:在Feat2”附近沿x方向找到轮廓线的值最高处,即为上唇中点Feat2,具体为:在-10<j<10范围内,j=jm2时Cy(y2”,j)取得最大值,则
Feat2(x2,y2,z2)=(jm2,y2”,Cy(y2”,jm2)) (16)
步骤3.5:获取鼻翼点
从鼻尖Feat0所在的横向轮廓线开始,向x轴负方向一定范围内寻找最大值点,即为左鼻翼点Feat3,向x轴正方向一定范围内寻找最大值点,即为右鼻翼点Feat4,具体如下:
在-30<j<-15范围内,j=jm3时Cry(y0,j)取得最大值,则
Feat3(x3,y3,z3)=(jm3,y0,Cy(y0,jm3)) (17)
在15<j<30范围内,j=jm4时Cry(y0,j)取得最大值,则
Feat4(x4,y4,z4)=(jm4,y0,Cy(y0,jm4)) (18)
步骤3.6:获取内眼角点
步骤3.6.1:人脸眼部的横向轮廓线与其他地方的横向轮廓线有明显的区别,本发明利用的眼部特征在于眼球部位的突起导致的曲率极大值处的轮廓高度不同。对于闭眼的情况,眼球部分突起明显,对于睁眼的情况,虽然不一定能找到眼球,但仍能找到眼球上方眼皮中心处的突起;
通过下式计算左眼的横向轮廓线:
d0(i)=Cy(i,Csy10(i))-Cy(i,Csy20(i)) (19)
式中,d0(i)表示左眼处纵坐标为i的横向轮廓线在左脸部分的第一个曲率极大值和第二个曲率极大值位置的人脸轮廓线高度差值。
考虑到眼睛和鼻子y轴方向的相对位置,只需在Feat0+20<i<Feat1+10的范围内寻找眼睛。
在Feat0+20<i<Feat1+10范围内,若i=im5时d0(i)取得最大值,则左眼球y轴坐标为im5。
步骤3.6.2:利用下面方法找到眼角:
在im5-5<j<im5+5范围内,若j=jm5时Cx(Csy10(im5),j)取得最大值,则
Feat5(x5,y5,z5)=(Csy10(im5),jm5,Cx(Csy10(im5)),jm5) (20)
式中,Feat5为左眼内眼角点。
步骤3.6.3:类似步骤3.6.1,由下式可以计算d1(i):
d1(i)=Cy(i,Csy11(i))-Cy(i,Csy21(i)) (21)
式中,d1(i)表示右眼处纵坐标为i的横向轮廓线在右脸部分的第一个曲率极大值和第二个曲率极大值位置的人脸轮廓线高度差值。
在Feat0+20<i<Feat1+10范围内,i=im6时d1(i)取得最大值,则右眼球y轴坐标为im6。
步骤3.6.4:类似步骤3.6.2,在im6-5<j<im6+5范围内,若j=jm6时Cx(Csy11(im6),j)取得最大值,则
Feat6(x6,y6,z6)=(Csy11(im6),jm6,Cx(Csy11(im6)),jm6) (22)
式中,Feat6为右眼内眼角点。
步骤4:利用轮廓线和特征点计算人脸偏移量和旋转量,并矫正人脸;
步骤4.1:计算x轴旋转量
式中,ext为扩展因子,x3,x4是步骤3提取的左右鼻翼点横坐标,j=Csx0(i)表示纵向轮廓线的左侧第一个曲率极值点,j=Csx1(i)表示纵向轮廓线的右侧第一个曲率极值点;
步骤4.2:计算y轴旋转量
式中,ext为扩展因子,y0,y1是步骤3提取的鼻尖点和眉心点纵坐标,j=Csy10(i)表示横向轮廓线的左侧第一个曲率极大值点,j=Csy11(i)表示横向轮廓线的右侧第一个极大值点;
步骤4.3:计算z轴旋转量
式中,x0,x1是步骤3提取的鼻尖点和眉心点横坐标,y0,y1是步骤3提取的鼻尖点和眉心点纵坐标;
步骤4.4:计算平移量
式中,x0是步骤3提取的鼻尖点横坐标,y0是步骤3提取的鼻尖点纵坐标,是计算所有点的z坐标均值;
步骤4.5:对人脸依次完成xyz轴的旋转和平移,进行姿态矫正。
步骤5:重复步骤(2)-(4)若干次,逐次改善效果;
步骤5.1:偏差计算
s1=|xr|+|yr|+|zr|
s2=|xt|+|yt|+|zt|
s=krs1+kts2 (27)
式中,xr,yr,zr,xt,yt,zt是步骤4计算出的3个方向的旋转量和平移量,s1是旋转偏差,s2是平移偏差,kr、kt是比例系数,S是滤波后的综合偏差,Sold是上一次迭代的综合偏差;S反映了当前姿态矫正的程度,随着迭代次数增加,其值会越来越小,如图5。
步骤5.2:终止条件
由于预切割后,留下的人脸包含少量背景杂物,采用如下方法多次切割:
当S<4时,以鼻尖为圆心,半径r>R+20的部分切除;
当S<2时,以鼻尖为圆心,半径r>R+10的部分切除;
当S<0.5时,以鼻尖为圆心,半径r>R的部分切除,并结束迭代过程,一般取R=90。
重复步骤(2)-(4),获取特征点,根据特征点矫正人脸,提取矫正后的人脸的特征点,根据新的特征点再次矫正人脸,如此迭代若干次,可以使矫正的程度和特征点的精度显著提高。通过综合偏差S可以判定是否结束迭代,迭代上限次数取30-50次。
步骤6:对人脸进行再切割和移动。
根据得到的矫正的人脸和特征点,以鼻尖为中心,R为半径,将与鼻尖点距离超过R的部分删除,再将人脸平移,使鼻尖和坐标原点重合,一般取R=90,如图6,图7,图8。
Claims (7)
1.一种基于轮廓线的三维人脸迭代预处理和特征点提取方法,其特征在于,包括以下步骤:
1)对三维人脸模型进行预切割;
2)提取三维人脸的纵向轮廓线和横向轮廓线;
3)利用轮廓线提取人脸特征点;
4)利用轮廓线和特征点计算人脸偏移量和旋转量,并矫正人脸;
5)重复步骤2-4逐次改善效果,直到误差小于给定阈值或达到迭代次数的上限;
6)对人脸进行再切割和移动。
2.如权利要求1所述基于轮廓线的三维人脸迭代预处理和特征点提取方法,其特征在于,所述步骤1包括以下步骤:
1.1)进行z方向预切割;
计算三维点云的重心:
式中,xc、yc、zc是重心的三维坐标,xt、yt、zt是点云中每一个点的三维坐标,N是点云点数;
将点云重心移到原点:
xt'=xt-xc
yt'=yt-yc (2)
zt'=zt-zc
式中,xt'、yt'、zt'是点云中每一个点移动后的三维坐标;
对z方向整数量化,得到z方向点云密度函数:
fz(u)=card({(xt',yt',zt')∈P|-0.5<zt'-u≤0.5}) (3)
式中,P是点云中所有点构成的集合,card(.)表示点集中点的个数,fz(u)是求出的(u-0.5,u+0.5)范围内的点云密度;
计算z方向点云分布函数:
式中Fz(k)是满足z<k的点云总数;
确定人脸的起始位置:
(Fz(kzmin+kd)-c)(Fz(kzmin+kd+1)-c)<0 (5)
kzmax=kzmin+d
式中,kzmin是人脸的起始位置,c是噪点死区,kd是切割余量,kzmax是人脸的结束位置,d是预切割的人脸厚度;
切除坐标不满足kzmin<z<kzmax的点云;
1.2)采用与步骤1.1类似的方法,进行y方向预切割;
1.3)去噪;
G={pt∈X|card(NRt)<c} (6)
NRt={p∈X|dist(pt,p)<r}
式中,G是去噪后的点集,X是经过Y,Z方向切割后的点集,card(NRt)表示NRt集合中的元素个数,NRt表示pt点的附近点集(与pt的距离小于r的点),r、c是预设的参数。
3.如权利要求1所述基于轮廓线的三维人脸迭代预处理和特征点提取方法,其特征在于,所述步骤2包括以下步骤:
2.1)计算粗切割后的人脸的重心,并将重心平移到原点处;
2.2)每隔1个单位,提取一条横向轮廓线(j,i,Cy(i,j)),其中-140<i≤60,-300<j<300;
记Zi,j={(xt',yt',zt')|yt'=i,xt'=j},其中xt'、yt'、zt'是经过平移后的点云三维坐标;
若则用下式计算满足y=i的横向轮廓在x=j处的z坐标Cy(i,j):
式中,n表示Zi,j中元素的个数,Cy(i,j)即为Zi,j中元素z坐标的均值;
若则通过线性插值计算Cy(i,j):
式中,m1是待插值的点Cy(i,j)右侧第一个能够通过公式7确定的点与Cy(i,j)的横坐标差值的绝对值,m2是待插值的点Cy(i,j)左侧第一个能够通过公式7确定的点与Cy(i,j)的横坐标差值的绝对值,Cy(i,j-m2)和Cy(i,j+m1)是Cy(i,j)所在的横向轮廓线上与Cy(i,j)相邻且能够通过公式7确定的两个点的Z坐标;
2.3)采用与步骤2.2类似的方法,每隔1个单位提取一条纵向轮廓线(i,j,Cx(i,j)),其中-40<i≤40,-300<j<300。
4.如权利要求1所述基于轮廓线的三维人脸迭代预处理和特征点提取方法,其特征在于,所述步骤3提取的人脸特征点包括鼻尖,眉心,上唇中点,左鼻翼,右鼻翼,左眼内眼角,右眼内眼角,具体包括以下步骤:
3.1)计算轮廓线斜率、曲率;
通过下式计算横向轮廓线的斜率:
Cdy(i,j)=Cy(i,j)-Cy(i,j-1) (9)
通过如下方法计算横向轮廓线的曲率:
式中,Cy(i,j)表示满足y=i的横向轮廓在x=j处的z坐标;
采用类似方法计算纵向轮廓线的斜率Cdx(i,j)和曲率Crx(i,j);
3.2)获取鼻尖点
在-8<i<8,-20<j<20范围内,若i=im0,j=jm0时Cx(i,j)取最大值,则
Feat0(x0,y0,z0)=(im0,jm0,Cx(im0,jm0)) (11)
式中,Feat0为鼻尖点,其坐标为(x0,y0,z0),Cx(i,j)表示满足x=j的纵向轮廓在y=i处的z坐标;
3.3)获取眉心点
从鼻尖Feat0所在的纵向轮廓线开始,向y轴正方向寻找下一个极大值点Feat1',具体为:在y0+30<j<y0+60范围内,若j=jm1'时Crx(x0,j)取得极大值,j<jm1'时无其他极大值,则
Feat1'(x1',y1',z1')=(x0,jm1',Cx(x0,jm1')) (12)
确定眉心的大致位置Feat1'后,从Feat1'附近沿x方向找到轮廓线的值最高处,即为眉心位置Feat1,具体为:在-10<j<10范围内,若j=jm1时Cy(y1',j)取得最大值,则
Feat1(x1,y1,z1)=(jm1,y1',Cy(y1',jm1)) (13)
3.4)获取上唇中点
从鼻尖Feat0所在的纵向轮廓线开始,向y轴负方向一定范围内寻找最小值点,即为位于上唇与鼻子之间的点Feat2',具体为:在y0>j>y0-20范围内,若j=jm2'时Cx(x0,j)取得最小值,则
Feat2'(x2',y2',z2')=(x0,jm2',Cx(x0,jm2')) (14)
确定Feat2'后,从Feat2'所在的纵向轮廓线开始,再向y轴负方向一定范围内寻找最大值点,即为上唇中点的大致位置Feat2”,具体为:在y2'>j>y2'-20范围内,若j=jm2”时Cx(y2',j)取得最大值,则
Feat2”(x2”,y2”,z2”)=(x2',jm2”-2,Cx(x2',jm2”)) (15)
确定Feat2”后,从Feat2”附近沿x方向找到轮廓线的值最高处,即为上唇中点Feat2,具体为:在-10<j<10范围内,若j=jm2时Cy(y2”,j)取得最大值,则
Feat2(x2,y2,z2)=(jm2,y2”,Cy(y2”,jm2)) (16)
3.5)获取鼻翼点
从鼻尖Feat0所在的横向轮廓线开始,向x轴负方向一定范围内寻找最大值点,即为左鼻翼点Feat3,向x轴正方向一定范围内寻找最大值点,即为右鼻翼点Feat4,具体为:
在-30<j<-15范围内,若j=jm3时Cry(y0,j)取得最大值,则
Feat3(x3,y3,z3)=(jm3,y0,Cy(y0,jm3)) (17)
在15<j<30范围内,若j=jm4时Cry(y0,j)取得最大值,则
Feat4(x4,y4,z4)=(jm4,y0,Cy(y0,jm4)) (18)
3.6)获取内眼角点
通过下式计算左眼的横向轮廓线判定值:
d0(i)=Cy(i,Csy10(i))-Cy(i,Csy20(i)) (19)
式中,d0(i)表示左眼处纵坐标为i的横向轮廓线在左脸部分的第一个曲率极大值和第二个曲率极大值位置的人脸轮廓线高度差值,j=Csy10(i)表示横向轮廓线的左侧第一个曲率极大值点,j=Csy20(i)表示横向轮廓线左侧的第二个曲率极大值点;
在Feat0+20<i<Feat1+10范围内,若i=im5时d0(i)取得最大值,则左眼球y轴坐标为im5;
在im5-5<j<im5+5范围内,若j=jm5时Cx(Csy10(im5),j)取得最大值,则
Feat5(x5,y5,z5)=(Csy10(im5),jm5,Cx(Csy10(im5)),jm5) (20)
式中,Feat5为左眼内眼角点;
计算右眼的横向轮廓线判定值:
d1(i)=Cy(i,Csy11(i))-Cy(i,Csy21(i)) (21)
式中,d1(i)表示右眼处纵坐标为i的横向轮廓线在右脸部分的第一个曲率极大值和第二个曲率极大值位置的人脸轮廓线高度差值,j=Csy11(i)表示横向轮廓线的右侧第一个曲率极大值点,j=Csy21(i)表示横向轮廓线的右侧第二个曲率极大值点;
在Feat0+20<i<Feat1+10范围内,若i=im6时d1(i)取得最大值,则右眼球y轴坐标为im6;
在im6-5<j<im6+5范围内,若j=jm6时Cx(Csy11(im6),j)取得最大值,则
Feat6(x6,y6,z6)=(Csy11(im6),jm6,Cx(Csy11(im6)),jm6) (22)
式中,Feat6为右眼内眼角点。
5.如权利要求1所述基于轮廓线的三维人脸迭代预处理和特征点提取方法,其特征在于,所述步骤4包括以下步骤:
4.1)计算x轴旋转量
式中,ext为扩展因子,x3,x4分别为左右鼻翼点横坐标,j=Csx0(i)表示纵向轮廓线的左侧第一个曲率极值点,j=Csx1(i)表示纵向轮廓线的右侧第一个曲率极值点;
4.2)计算y轴旋转量
式中,ext为扩展因子,y0,y1分别为鼻尖点和眉心点纵坐标,j=Csy10(i)表示横向轮廓线的左侧第一个曲率极大值点,j=Csy11(i)表示横向轮廓线的右侧第一个极大值点;
4.3)计算z轴旋转量
式中,x0,x1分别为鼻尖点和眉心点横坐标,y0,y1分别为鼻尖点和眉心点纵坐标;
4.4)计算平移量
式中,x0是鼻尖点横坐标,y0是鼻尖点纵坐标,是计算所有点的z坐标均值;
4.5)对人脸依次完成xyz轴的旋转和平移,进行姿态矫正。
6.如权利要求1所述基于轮廓线的三维人脸迭代预处理和特征点提取方法,其特征在于,所述步骤5包括以下步骤:
5.1)计算偏差
s1=|xr|+|yr|+|zr|
s2=|xt|+|yt|+|zt|
s=krs1+kts2 (27)
式中,xr,yr,zr,xt,yt,zt分别为3个方向的旋转量和平移量,s1是旋转偏差,s2是平移偏差,kr、kt是比例系数,S是滤波后的综合偏差,Sold是上一次迭代的综合偏差;
5.2)判断是否满足终止条件
当S<4时,以鼻尖为圆心,将半径r>R+20的部分切除;
当S<2时,以鼻尖为圆心,将半径r>R+10的部分切除;
当S<0.5时,以鼻尖为圆心,将半径r>R的部分切除,并结束迭代过程;
5.3)判断是否达到迭代次数的上限,若达到,则结束迭代过程。
7.如权利要求1所述基于轮廓线的三维人脸迭代预处理和特征点提取方法,其特征在于,所述步骤6具体为:根据得到的矫正的人脸和特征点,以鼻尖为中心,R为半径,将与鼻尖点距离超过R的部分删除,再将人脸平移,使鼻尖和坐标原点重合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510260055.0A CN104834919B (zh) | 2015-05-20 | 2015-05-20 | 一种基于轮廓线的三维人脸迭代预处理和特征点提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510260055.0A CN104834919B (zh) | 2015-05-20 | 2015-05-20 | 一种基于轮廓线的三维人脸迭代预处理和特征点提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104834919A true CN104834919A (zh) | 2015-08-12 |
CN104834919B CN104834919B (zh) | 2018-05-15 |
Family
ID=53812797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510260055.0A Active CN104834919B (zh) | 2015-05-20 | 2015-05-20 | 一种基于轮廓线的三维人脸迭代预处理和特征点提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104834919B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106204740A (zh) * | 2016-07-27 | 2016-12-07 | 扬州大学 | 基于切片数据对称性分析的三维缺损颜面模型重建方法 |
CN106778660A (zh) * | 2016-12-28 | 2017-05-31 | 浙江大华技术股份有限公司 | 一种人脸姿态校正方法及装置 |
CN107480666A (zh) * | 2017-08-10 | 2017-12-15 | 深圳市碧海扬帆科技有限公司 | 图像捕获设备及其扫描目标提取方法、装置、存储介质 |
WO2018209569A1 (zh) * | 2017-05-16 | 2018-11-22 | 深圳市三维人工智能科技有限公司 | 一种3d扫描模型的切割装置和方法 |
CN109961021A (zh) * | 2019-03-05 | 2019-07-02 | 北京超维度计算科技有限公司 | 一种深度图像中人脸检测方法 |
CN112507772A (zh) * | 2020-09-03 | 2021-03-16 | 广州市标准化研究院 | 一种人脸识别安防系统及可疑人员检测与预警方法 |
CN112861579A (zh) * | 2019-11-27 | 2021-05-28 | 四川大学 | 三维面部标志自动检测方法 |
US11120252B2 (en) | 2016-12-28 | 2021-09-14 | Zhejiang Dahua Technology Co., Ltd. | Methods, systems, and media for evaluating images |
CN117017272A (zh) * | 2023-08-28 | 2023-11-10 | 南京诺源医疗器械有限公司 | 一种基于鼻颅镜系统的鼻颅骨矫正信息的获取方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339606A (zh) * | 2008-08-14 | 2009-01-07 | 北京中星微电子有限公司 | 一种人脸关键器官外轮廓特征点定位与跟踪的方法及装置 |
CN104318208A (zh) * | 2014-10-08 | 2015-01-28 | 合肥工业大学 | 一种基于图分割和实例学习的视频场景检测方法 |
-
2015
- 2015-05-20 CN CN201510260055.0A patent/CN104834919B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339606A (zh) * | 2008-08-14 | 2009-01-07 | 北京中星微电子有限公司 | 一种人脸关键器官外轮廓特征点定位与跟踪的方法及装置 |
CN104318208A (zh) * | 2014-10-08 | 2015-01-28 | 合肥工业大学 | 一种基于图分割和实例学习的视频场景检测方法 |
Non-Patent Citations (3)
Title |
---|
凌仁兵: "姿态规则化下的三维人脸识别研究", 《中国优秀硕士学位论文全文数据库》 * |
李晓莉: "基于侧面轮廓线和刚性区域的3维人脸识别", 《中国图象图形学报》 * |
胡珍珍: "基于深度数据的人脸旋转角度估计及三维人脸识别的研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106204740B (zh) * | 2016-07-27 | 2020-02-07 | 扬州大学 | 基于切片数据对称性分析的三维缺损颜面模型重建方法 |
CN106204740A (zh) * | 2016-07-27 | 2016-12-07 | 扬州大学 | 基于切片数据对称性分析的三维缺损颜面模型重建方法 |
CN106778660A (zh) * | 2016-12-28 | 2017-05-31 | 浙江大华技术股份有限公司 | 一种人脸姿态校正方法及装置 |
US11615643B2 (en) | 2016-12-28 | 2023-03-28 | Zhejiang Dahua Technology Co., Ltd. | Methods, systems, and media for evaluating images |
US11120252B2 (en) | 2016-12-28 | 2021-09-14 | Zhejiang Dahua Technology Co., Ltd. | Methods, systems, and media for evaluating images |
WO2018209569A1 (zh) * | 2017-05-16 | 2018-11-22 | 深圳市三维人工智能科技有限公司 | 一种3d扫描模型的切割装置和方法 |
CN107480666B (zh) * | 2017-08-10 | 2020-08-07 | 深圳市碧海扬帆科技有限公司 | 图像捕获设备及其扫描目标提取方法、装置、存储介质 |
CN107480666A (zh) * | 2017-08-10 | 2017-12-15 | 深圳市碧海扬帆科技有限公司 | 图像捕获设备及其扫描目标提取方法、装置、存储介质 |
CN109961021A (zh) * | 2019-03-05 | 2019-07-02 | 北京超维度计算科技有限公司 | 一种深度图像中人脸检测方法 |
CN112861579A (zh) * | 2019-11-27 | 2021-05-28 | 四川大学 | 三维面部标志自动检测方法 |
CN112861579B (zh) * | 2019-11-27 | 2022-10-18 | 四川大学 | 三维面部标志自动检测方法 |
CN112507772A (zh) * | 2020-09-03 | 2021-03-16 | 广州市标准化研究院 | 一种人脸识别安防系统及可疑人员检测与预警方法 |
CN117017272A (zh) * | 2023-08-28 | 2023-11-10 | 南京诺源医疗器械有限公司 | 一种基于鼻颅镜系统的鼻颅骨矫正信息的获取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104834919B (zh) | 2018-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104834919A (zh) | 一种基于轮廓线的三维人脸迭代预处理和特征点提取方法 | |
Mokhtarian et al. | Curvature scale space representation: theory, applications, and MPEG-7 standardization | |
US9697609B2 (en) | Method and apparatus for estimating pose | |
CN106407985B (zh) | 一种三维人体头部点云特征提取方法及其装置 | |
CN109740537B (zh) | 人群视频图像中行人图像属性的精确标注方法及系统 | |
CN102081733B (zh) | 多模态信息结合的多姿态三维人脸面部五官标志点定位方法 | |
CN104143080A (zh) | 基于三维点云的三维人脸识别装置及方法 | |
CN103136520A (zh) | 基于pca-sc算法的形状匹配和目标识别方法 | |
Wang et al. | Fast and accurate iris segmentation based on linear basis function and ransac | |
CN110807781A (zh) | 一种保留细节与边界特征的点云精简方法 | |
CN109919955A (zh) | 地基式激光雷达点云的隧道轴线提取和分割方法 | |
CN104732247B (zh) | 一种人脸特征定位方法 | |
Liu et al. | A novel rock-mass point cloud registration method based on feature line extraction and feature point matching | |
CN108520264A (zh) | 一种基于深度图像的手部轮廓特征优化方法 | |
CN107093182B (zh) | 一种基于特征拐点的人体高度估计方法 | |
CN103700107A (zh) | 一种基于图像尖锐度分布的特征点匹配方法 | |
Da Xu et al. | Fitting multiple connected ellipses to an image silhouette hierarchically | |
KR20200002772A (ko) | 3차원 평면추출 방법 및 그 장치 | |
CN109784241B (zh) | 一种稳定的掌纹图像特征富集区域提取方法 | |
CN106650554A (zh) | 静态手势识别方法 | |
CN108280846A (zh) | 基于几何图形匹配的目标跟踪修正方法及其装置 | |
CN104951767A (zh) | 基于关联程度的三维人脸识别技术 | |
CN112269951B (zh) | 面向矢量线数据的直线形状空间检索方法 | |
Larabi et al. | LWDOS: language for writing descriptors of outline shapes | |
CN104008382B (zh) | 传感器指纹图像识别系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |