《人脸识别原理及算法——动态人脸识别系统研究》—第3章3.3节基于模板的探测方法

简介:

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

3.3 基于模板的探测方法
人脸识别原理及算法——动态人脸识别系统研究
人脸各局部特征可以用各种模板表示[54],不同于上述的参数化模型法,模板是基于图像的灰度值,匹配过程使用最佳相似值比较法。上述的眼睛模型对应这里的眼睛模板,鼻子模型对应鼻子模板,嘴巴模型对应嘴巴模板。

模板匹配方法相对简单,不需要复杂过程去提取模型特征,也不需要定义相应的模型能量函数。

3.3.1 模板表示
模板表示有以下几种类型。

全局模板,即整个人脸图像都看成是一幅模板。这种表示不具有旋转、偏移不变性,且对于人脸局部特征的提取没有帮助。对于同一个人的人脸图像,如稍有偏移、旋转、尺度变化等,都会得到不同的模板,因此,识别的精确度将会很低。
局部模板,即对于人脸图像的各局部特征,形成各模板表示,用于人脸局部特征的提取。因为人脸的局部特征,如眼睛、鼻子、嘴巴等,相对于整个人脸而言,其变化的幅度是较小的,即使整个人脸图像都有偏移,具体到某一个人脸特征,其变化幅度就比较小,从而识别的精度会好于全局模板方法。
形变模板,即用参数来表示模板,且参数可变,可用于人脸特征的提取,如3.2节所述。对人脸图像进行相应的数学变换,变换结果作为人脸图像的特征。根据不同的偏移参数、尺度参数以及旋转参数来调整数学变换过程中用到的参数,对应人脸图像的变化。
3.3.2 图像标准化
对于基于特征比较的图像识别方法,图像的尺度一致性是很重要的,因此在提取人脸图像的特征前,必须进行图像的标准化处理。依据两眼间距离大小,可以确定图像的尺度,进行标准化处理。当然,也可以根据其他条件来进行标准化处理,如鼻尖与两眼中点之间的距离、鼻子与嘴巴中点之间的距离等。这里考虑使用两眼之间的距离的情况。

1.眼睛的探测
先手工取得眼睛模板T,然后与待识图像区域I进行比较,所用公式如下:
screenshot
(3-11)

式中,I_T 为从I中取得并与T大小相同的区域;< >为求平均算子;I_T T表示像素点积;σ表示待比较区域的标准偏差。比较时,取C_N (y)最大值所在的位置作为眼睛区域。显然,使用这种方法,时间开销很大。如果对于其他特征区域都采用这种方法进行探测,则效率将很低。为此,R. Brunelli、T. Poggio等人[54]提出使用投影法进行人脸特征的提取。

2.投影法
设I(x,y)为待识图像,left[ {x_1 ,x_2 } right] times left[ {y_1 ,y_2 } right]为一矩形区域,则I(x,y)在矩形区域内的垂直投影可定义为
screenshot
(3-12)

同样水平投影可定义为
screenshot
(3-13)

实际应用时,要先提取图像的水平梯度与垂直梯度成分,为此可以对图像进行拉普拉斯变换或进行高斯变换,得到的水平梯度用于探测脸轮廓以及鼻子轮廓,垂直梯度用于探测头顶、鼻子及嘴区域。

(1)嘴区域及鼻子区域的探测

这两个区域的探测使用同样的方法。首先,将图像的垂直梯度成分作水平投影,如式(3-13)所示,所得到峰值区域,即为鼻子区域,所得到的谷底区域即为嘴部区域。同时鼻子区域的高度可以通过计算水平投影的峰值区域与平均值区域的差值得到,其宽度可以通过探测峰值区域的长度得到。同样,嘴部区域的高度与宽度也可用类似的方法探测到。局部区域投影如图3-2所示。


c4d995dd5cd1e53065b6c094a513ac644ca2cbb4

(2)眉毛区域的探测

眉毛区域的位置及厚度也可通过投影技术探测得到,如图3-3所示。如上所述,当眼睛区域的位置通过使用模板匹配法得到后,则眉毛区域的位置可以通过搜索眼睛区域上部的图像垂直梯度成分的投影空间得到,找到成对的并且形状最相似的峰值区域即为眉毛区域,从而眉毛区域的宽度与高度都可得到。

由此可知,使用模板匹配技术以及人脸图像梯度成分的投影技术,可以探测得到人脸的局部特征,如眉毛的厚度,位置坐标,眉毛的弧度(可以粗略地加以描述),鼻子区域的位置及宽度,嘴部区域的位置、长度以及宽度,眼睛区域的位置,眼睛的旋转角度(相对与水平方向),两眼间距离等。


2bc8e0d14adcd76674c1e64ee14bdadb7e447909

3.3.3 方法的优缺点
使用模板匹配方法,通过构建人脸各局部特征的模板,如眼睛模板、鼻子模板、嘴巴模板等,可以细化人脸各局部特征,对于探测人脸的轮廓位置有较好的效果。但是,因为各模板的构成要素是图像的像素值,受光照、形变、尺度等外界因素干扰,需要较好的进行预处理。总之,该方法具有如下优点。

特征探测较准确。同模型匹配算法类似,使用局部特征进行探测,可以得到较好的探测结果,因为局部特征提取的参数受形变影响小,而且个体之间的差异较大,能够得到较好的探测结果。
全局匹配,不需要事先确定模板的初始位置。匹配过程可以在整个探测图像空间范围内进行,不需要事先确定模板的初始化位置。如果同时利用眼睛模型、嘴巴模型以及鼻子模型进行探测,则探测精度会更高,而且也不会得到局部优化的结果。
相较于模型匹配,该方法有以下缺点:受光照、尺度及图像旋转等因素的影响,需要先进行标准化处理。图像灰度容易受形变、光照、尺度等因素的影响,因此,需要对匹配图像进行相应的数学变换,以消除形变影响。标准化处理结果的好坏,算法的选择都对最终的匹配结果有影响。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章
|
2月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
153 4
|
3月前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
71 3
|
13天前
|
机器学习/深度学习 人工智能 算法
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
101 13
机器学习算法的优化与改进:提升模型性能的策略与方法
|
13天前
|
机器学习/深度学习 算法 PyTorch
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
58 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
|
21天前
|
算法 Java 数据库
理解CAS算法原理
CAS(Compare and Swap,比较并交换)是一种无锁算法,用于实现多线程环境下的原子操作。它通过比较内存中的值与预期值是否相同来决定是否进行更新。JDK 5引入了基于CAS的乐观锁机制,替代了传统的synchronized独占锁,提升了并发性能。然而,CAS存在ABA问题、循环时间长开销大和只能保证单个共享变量原子性等缺点。为解决这些问题,可以使用版本号机制、合并多个变量或引入pause指令优化CPU执行效率。CAS广泛应用于JDK的原子类中,如AtomicInteger.incrementAndGet(),利用底层Unsafe库实现高效的无锁自增操作。
理解CAS算法原理
|
2月前
|
算法 容器
令牌桶算法原理及实现,图文详解
本文介绍令牌桶算法,一种常用的限流策略,通过恒定速率放入令牌,控制高并发场景下的流量,确保系统稳定运行。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
令牌桶算法原理及实现,图文详解
|
1月前
|
存储 人工智能 缓存
【AI系统】布局转换原理与算法
数据布局转换技术通过优化内存中数据的排布,提升程序执行效率,特别是对于缓存性能的影响显著。本文介绍了数据在内存中的排布方式,包括内存对齐、大小端存储等概念,并详细探讨了张量数据在内存中的排布,如行优先与列优先排布,以及在深度学习中常见的NCHW与NHWC两种数据布局方式。这些布局方式的选择直接影响到程序的性能,尤其是在GPU和CPU上的表现。此外,还讨论了连续与非连续张量的概念及其对性能的影响。
62 3
|
2月前
|
机器学习/深度学习 人工智能 算法
探索人工智能中的强化学习:原理、算法与应用
探索人工智能中的强化学习:原理、算法与应用
|
2月前
|
负载均衡 算法 应用服务中间件
5大负载均衡算法及原理,图解易懂!
本文详细介绍负载均衡的5大核心算法:轮询、加权轮询、随机、最少连接和源地址散列,帮助你深入理解分布式架构中的关键技术。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
5大负载均衡算法及原理,图解易懂!
|
2月前
|
存储 算法 安全
SnowflakeIdGenerator-雪花算法id生成方法
SnowflakeIdGenerator-雪花算法id生成方法
39 1

热门文章

最新文章