人脸识别(3)--EBGM

EBGM(Wiskott L, Fellous J M, Kuiger N, et al. Face recognition by elastic bunch graph matching[J]. IEEE Transactions on pattern analysis and machine intelligence, 1997, 19(7): 775-779.)
使用Gabor提取预设位置的特征,将其与已知的人脸特征进行比较,寻求最佳匹配。
主要分为3个部分:创建人脸弹性束图(模板)、生成人脸图、分类。


算法描述

EBGM里比较重要的一块是确定提取特征点的位置,因此需要一幅模板图来做定位

人脸弹性束图

这个过程是手动的,取一部分人脸图,人工标记关键点,对每个点计算其不同方向不同尺度的Gabor滤波结果:

参考Gabor滤波器一文,
取其角度 θ={kπ8|k[0,7]}
取尺度 λ={24+k2|k[0,4]}
其他参数取 ϕ=0 γ=1 σ=λ
这样得到40个Gabor系数 Jet={jn} ,其中 jn=ane(iϕn) an 为系数幅度, ϕn 为系数相位

标准的特征点位置为:左(右)眼、左(右)眼眉、额头、鼻尖、左(右)脸颊、下巴(图1)
                       模板图
                         图1. 人脸束图模板
最后形成的模板图代表了平均脸的位置及每个位置的Gabor参数。

生成人脸图

对每张原始人脸图,需要根据人脸弹性束图生成人脸图,以便于下一阶段的识别与分类。

首先根据人脸弹性束图(模板)粗定位到特征点:
每张人脸的左眼是确定像素的(如何?),然后根据模板图上其他点到已知点的矢量确定该点位置。这里认为距离越近的点可信度越高,因此根据不同距离给每个点赋予不同权值。

然后对每个点做精定位:
比较直接的方法是,计算粗定位点周围每个点的Gabor系数 Jet ,与模板相应点距离最近的即为所求
但Gabor系数计算复杂度太高,基于Gabor系数的以下性质
1)系数幅度大小随偏移量改变发生很小的变动
2)系数相位随偏移量在正弦波方向上产生线性变化
由此计算粗定位点的Gabor系数 J ,定义一个偏移量 d ,令模板上相应位置的系数为J,当下式取极大值时得到偏移量

SD(J,J,d)=Nn=1anancos(ϕn(ϕn+dk⃗ n)Nn=1a2nNn=1a2n

为了求导方便,可以取 cos(θ)112θ2

分类

待识别的人脸提取为人脸图后,将其与数据库中已有人脸库做对比(使用上一节公式),相似度最高且大于预设值的认为是同一人


算法实现

Colorado State 大学提供的csFaceIdEval算法验证系统里包含了EBGM的实现

Malic是一个基于Gabor小波实现的开源人脸识别项目


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值