《人脸识别原理及算法——动态人脸识别系统研究》—第3章3.2节参数化模型法

简介:

本节书摘来自异步社区《人脸识别原理及算法——动态人脸识别系统研究》一书中的第3章3.2节参数化模型法,作者 沈理 , 刘翼光 , 熊志勇,更多章节内容可以访问云栖社区“异步社区”公众号查看。

3.2 参数化模型法
人脸识别原理及算法——动态人脸识别系统研究
此方法最早由Yuille、Hallinan、Cohen等人提出[44],英国British Telecom的Shackleton、Welsh 以及Huang、Chen等人又对其进行了发展[89, 90]。该方法的原理为:首先对人脸特征如眼睛、鼻子、嘴巴等建立相应的数学模型,得到眼睛模型、鼻子模型及嘴巴模型等,模型由各特征的位置、大小、长度等参数控制,并可进行相应的调整;然后对应图像的4种表示(见下节),定义图像的4种能量函数;将上述的几种特征模型与图像相互作用,动态地调整模型参数,使得能量函数取得最小值,此时得到的模型参数值就是特征参数值。

3.2.1 图像的各种表示
使用各种形态算子如扩张算子(dilate operator)、蚀化算子(erode operator)、开算子(open operator)及闭算子(close operator)等对图像进行处理,可得到图像的谷表示(valley representation)、峰表示(peak representation)以及边缘表示(edge representation)等,加上图像自身共有4种表示。使用这些表示的优点在于可以更好地表征人脸特征模型,如瞳孔模型对应图像中的谷域。

Yuille等人用Psi _e (x,y)、Psi _v (x,y)及Psi _p (x,y)表示边缘、谷及峰域,并相应地进行模糊化处理,得到Phi _e (x,y)、Phi _v (x,y)及Phi _p (x,y)等域表示。所用公式如下:
screenshot
3.2.2 眼睛模型表示
对人的眼睛部位进行模型表示首先要建立人眼模型,得到眼睛模型的关键特征;针对眼睛模型可以构建相应的能量函数,通过将眼睛特征值输入给相应的能量函数,可以实现眼睛的模型匹配。

1.建立模型
如图3-1所示,眼睛模型应包含如下特征参数。

① 以点x_c 为中心、以r为半径的圆对应眼睛的瞳孔。

② 以点x_e为中心,宽度为2b、上边缘的最大高度为a、下边缘的最大高度为c的两条抛物曲线分别对应上、下眼睛轮廓,并设眼睛与水平线间的倾斜角度为θ,图3-1中倾斜角度θ为零。


a4f1d6c4a63d116b7e8779e34537e63ee8150386

③ 设眼白区域的两个中心点为p_1及p_2。

从而,眼睛模型应由9个参数表示,为g = (x_c ,x_e ,p_1 ,p_2,r,a,b,c,theta )。

2.能量函数
对应眼睛模型可以定义一个能量函数,用于度量模型匹配的好坏程度。完全能量函数由谷域、边缘、峰域、图像及内部势能组成,表示为
screenshot

(3-2)

其中

① 谷域对应的能量由Phi _v (x,y)对圆内部区域积分得到,表示为
screenshot

(3-3)

② 边缘对应的能量函数由Phi _e (x,y)对圆边缘积分以及对抛物线边缘积分得到,表示为
screenshot
(3-4)

③ 图像对应的能量函数是为了减小圆内部的图像亮度,并使得圆与抛物线间的明亮度最大,具体表示为
screenshot
(3-5)


screenshot
(3-6)

④ 峰域对应的能量函数在两个峰点测得,表示为
screenshot
(3-7)

⑤ 内部固有的能量函数表示为
screenshot
(3-8)

式中,left{ {c_i } right}及left{ {k_i } right}通常为常系数,但在模型匹配过程中将会改变。另外,公式中的R_b R_w partial R_b 及partial R_w 分别对应瞳孔、眼白以及相应的边缘区域;面积或长度为left| {R_w } right|left| {R_b } right|left| {partial R_w } right|left| {partial R_b } right|;A、s分别表示面积及弧长。

3.算法实现
模型匹配算法使用基于深度下降法的搜索策略,寻找眼睛模型的特殊点。搜索过程分成若干阶段,每一阶段使用不同的系数值left{ {c_i } right} 及left{ {k_i } right},且将各能量函数式用具体的模型参数来表示,例如式(3-4)中,

screenshot
(3-9)

这里s对应抛物曲线的弧,L(a,b)及L(c,b)为其总长度。从而能量函数就表示为模型参数x_e ,a,b,c,theta的积分函数,求其最小值就转化为在模型参数空间的最小值,此时对应的参数值就为相应的人脸特征。

例如,对于模型参数r,其求解公式为
screenshot

(3-10)

类似地,对于其他的模型参数都可解出。当所有参数模型的值都确定后,眼睛模型也就确定了。

3.2.3 嘴巴模型和鼻子模型
类似地,可以对人脸上的其他关键部位进行处理,如构建嘴巴模型、鼻子模型等。其中对于嘴巴模型特征参数的提取,主要是先确立嘴唇的中心点,然后根据嘴唇的中心点,提取上、下嘴唇的厚度值,可以间隔性地提取3组值;同时,根据中心点,提取嘴唇的宽度值,只需提取1组即可,根据这些参数可以构建嘴巴模型。

对于鼻子模型,可提取鼻尖到鼻根的长度值以及3~5组鼻尖到鼻翼的宽度值,作为鼻子模型的参数,构建鼻子模型。

对应嘴巴模型,可以构建嘴巴模型的能量函数,用于度量所提取的嘴巴样本与嘴巴模型之间的匹配程度,然后使用匹配算法,将样本与嘴巴模型进行匹配,得到最佳匹配结果。鼻子模型的处理是类似的,关键是参数的提取以及能量函数的构建。通过多样本测试,可以逐步得到好的参数模型以及能量函数。

3.2.4 方法的优缺点
使用人脸关键特征,如眼睛、嘴巴、鼻子等进行模型匹配,具有如下优点。

匹配准确。因为这些关键特征的变形不会太大,受形变的影响很小,因此提取的特征比较准确,能够较准确地反映模型的特征。而且,为了精确匹配可以通过多采样特征实现。
通用性强,不受光照、尺度及旋转等因素影响。通过能量函数的使用以及对匹配特征的标准化处理能够最大限度的减少光照、尺度以及旋转等因素对匹配的影响。
但该方法也有如下不足。

需要先验知识。模型的建立、特征的提取、标准化处理对模型匹配的准确性有很大影响,需要建模者具有较好的建模经验以及丰富的人脸结构知识。
手工建模、眼睛模型、嘴巴模型以及鼻子模型的建立以及参数的提取需要手工进行,目前还不具有自动化处理的能力,因此,对于多个样本的处理比较费时,而且个性化差异较大,有一定的主观性。
局部匹配,需要确定模型初始位置。为了避免能量函数找不到最优匹配结果,需要在匹配时设定模型的初始位置。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章
|
11天前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 秒懂 AI - 深度学习五大模型:RNN、CNN、Transformer、BERT、GPT 简介
**RNN**,1986年提出,用于序列数据,如语言模型和语音识别,但原始模型有梯度消失问题。**LSTM**和**GRU**通过门控解决了此问题。 **CNN**,1989年引入,擅长图像处理,卷积层和池化层提取特征,经典应用包括图像分类和物体检测,如LeNet-5。 **Transformer**,2017年由Google推出,自注意力机制实现并行计算,优化了NLP效率,如机器翻译。 **BERT**,2018年Google的双向预训练模型,通过掩码语言模型改进上下文理解,适用于问答和文本分类。
58 9
|
13天前
|
算法 安全 搜索推荐
AES(Advanced Encryption Standard)是一种广泛使用的对称密钥加密算法,由美国国家标准技术研究所(NIST)制定。
AES(Advanced Encryption Standard)是一种广泛使用的对称密钥加密算法,由美国国家标准技术研究所(NIST)制定。
|
15天前
|
机器学习/深度学习 数据采集 算法
Python实现ISSA融合反向学习与Levy飞行策略的改进麻雀优化算法优化支持向量机回归模型(SVR算法)项目实战
Python实现ISSA融合反向学习与Levy飞行策略的改进麻雀优化算法优化支持向量机回归模型(SVR算法)项目实战
|
15天前
|
机器学习/深度学习 数据采集 算法
Python实现WOA智能鲸鱼优化算法优化支持向量机分类模型(SVC算法)项目实战
Python实现WOA智能鲸鱼优化算法优化支持向量机分类模型(SVC算法)项目实战
|
15天前
|
机器学习/深度学习 数据采集 算法
Python实现ISSA融合反向学习与Levy飞行策略的改进麻雀优化算法优化支持向量机分类模型(SVC算法)项目实战
Python实现ISSA融合反向学习与Levy飞行策略的改进麻雀优化算法优化支持向量机分类模型(SVC算法)项目实战
|
15天前
|
机器学习/深度学习 数据采集 算法
Python实现GBDT(梯度提升树)分类模型(GradientBoostingClassifier算法)并应用网格搜索算法寻找最优参数项目实战
Python实现GBDT(梯度提升树)分类模型(GradientBoostingClassifier算法)并应用网格搜索算法寻找最优参数项目实战
|
16天前
|
机器学习/深度学习 数据采集 算法
Python实现PCA降维和KNN人脸识别模型(PCA和KNeighborsClassifier算法)项目实战
Python实现PCA降维和KNN人脸识别模型(PCA和KNeighborsClassifier算法)项目实战
|
15天前
|
机器学习/深度学习 数据采集 算法
Python实现WOA智能鲸鱼优化算法优化支持向量机回归模型(LinearSVR算法)项目实战
Python实现WOA智能鲸鱼优化算法优化支持向量机回归模型(LinearSVR算法)项目实战
|
15天前
|
机器学习/深度学习 数据采集 算法
Python实现SSA智能麻雀搜索算法优化支持向量机回归模型(SVR算法)项目实战
Python实现SSA智能麻雀搜索算法优化支持向量机回归模型(SVR算法)项目实战
|
15天前
|
机器学习/深度学习 数据采集 算法
Python实现SSA智能麻雀搜索算法优化支持向量机分类模型(SVC算法)项目实战
Python实现SSA智能麻雀搜索算法优化支持向量机分类模型(SVC算法)项目实战

热门文章

最新文章