《人脸识别原理及算法——动态人脸识别系统研究》—第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 方法的优缺点
使用模板匹配方法,通过构建人脸各局部特征的模板,如眼睛模板、鼻子模板、嘴巴模板等,可以细化人脸各局部特征,对于探测人脸的轮廓位置有较好的效果。但是,因为各模板的构成要素是图像的像素值,受光照、形变、尺度等外界因素干扰,需要较好的进行预处理。总之,该方法具有如下优点。

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

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

相关文章
|
3月前
|
消息中间件 存储 缓存
zk基础—1.一致性原理和算法
本文详细介绍了分布式系统的特点、理论及一致性算法。首先分析了分布式系统的五大特点:分布性、对等性、并发性、缺乏全局时钟和故障随时发生。接着探讨了分布式系统理论,包括CAP理论(一致性、可用性、分区容错性)和BASE理论(基本可用、软状态、最终一致性)。文中还深入讲解了两阶段提交(2PC)与三阶段提交(3PC)协议,以及Paxos算法的推导过程和核心思想,强调了其在ZooKeeper中的应用。最后简述了ZAB算法,指出其通过改编的两阶段提交协议确保节点间数据一致性,并在Leader故障时快速恢复服务。这些内容为理解分布式系统的设计与实现提供了全面的基础。
|
10月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
999 6
|
5月前
|
机器学习/深度学习 存储 算法
18个常用的强化学习算法整理:从基础方法到高级模型的理论技术与代码实现
本文系统讲解从基本强化学习方法到高级技术(如PPO、A3C、PlaNet等)的实现原理与编码过程,旨在通过理论结合代码的方式,构建对强化学习算法的全面理解。
581 10
18个常用的强化学习算法整理:从基础方法到高级模型的理论技术与代码实现
|
4月前
|
NoSQL 算法 安全
分布式锁—1.原理算法和使用建议
本文主要探讨了Redis分布式锁的八大问题,包括非原子操作、忘记释放锁、释放其他线程的锁、加锁失败处理、锁重入问题、锁竞争问题、锁超时失效及主从复制问题,并提供了相应的优化措施。接着分析了Redis的RedLock算法,讨论其优缺点以及分布式专家Martin对其的质疑。此外,文章对比了基于Redis和Zookeeper(zk)的分布式锁实现原理,包括获取与释放锁的具体流程。最后总结了两种分布式锁的适用场景及使用建议,指出Redis分布式锁虽有性能优势但模型不够健壮,而zk分布式锁更稳定但部署成本较高。实际应用中需根据业务需求权衡选择。
|
6月前
|
机器学习/深度学习 数据采集 算法
短视频到底如何推荐的?深度剖析视频算法推送原理详细且专业的解读-优雅草卓伊凡-【01】短视频算法推荐之数据收集
短视频到底如何推荐的?深度剖析视频算法推送原理详细且专业的解读-优雅草卓伊凡-【01】短视频算法推荐之数据收集
537 12
短视频到底如何推荐的?深度剖析视频算法推送原理详细且专业的解读-优雅草卓伊凡-【01】短视频算法推荐之数据收集
|
6月前
|
算法 安全 搜索推荐
套用算法模板备案审核问题增多的原因及解决建议
随着算法备案要求的完善,企业常因使用网上廉价模板而遭遇审核通过率低、问题增多的困境。本文分析了审核不通过的原因,包括模板缺乏针对性、审核标准严格、审核人员主观差异及企业准备不足等,并提出建议:深入了解备案要求、准备详尽材料、避免通用模板、寻求专业帮助。备案后还需持续合规管理,确保算法服务安全运行。
|
7月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于机器学习的人脸识别算法matlab仿真,对比GRNN,PNN,DNN以及BP四种网络
本项目展示了人脸识别算法的运行效果(无水印),基于MATLAB2022A开发。核心程序包含详细中文注释及操作视频。理论部分介绍了广义回归神经网络(GRNN)、概率神经网络(PNN)、深度神经网络(DNN)和反向传播(BP)神经网络在人脸识别中的应用,涵盖各算法的结构特点与性能比较。
|
7月前
|
运维 NoSQL 算法
【📕分布式锁通关指南 04】redis分布式锁的细节问题以及RedLock算法原理
本文深入探讨了基于Redis实现分布式锁时遇到的细节问题及解决方案。首先,针对锁续期问题,提出了通过独立服务、获取锁进程自己续期和异步线程三种方式,并详细介绍了如何利用Lua脚本和守护线程实现自动续期。接着,解决了锁阻塞问题,引入了带超时时间的`tryLock`机制,确保在高并发场景下不会无限等待锁。最后,作为知识扩展,讲解了RedLock算法原理及其在实际业务中的局限性。文章强调,在并发量不高的场景中手写分布式锁可行,但推荐使用更成熟的Redisson框架来实现分布式锁,以保证系统的稳定性和可靠性。
315 0
【📕分布式锁通关指南 04】redis分布式锁的细节问题以及RedLock算法原理
|
8月前
|
机器学习/深度学习 人工智能 算法
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
1345 13
机器学习算法的优化与改进:提升模型性能的策略与方法
|
8月前
|
机器学习/深度学习 算法 PyTorch
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
2184 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现

热门文章

最新文章