人脸识别(3)--EBGM
来源:互联网 发布:mysql数据库压力测试 编辑:程序博客网 时间:2024/06/09 21:23
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滤波器一文,
取其角度
取尺度
其他参数取
这样得到40个Gabor系数
标准的特征点位置为:左(右)眼、左(右)眼眉、额头、鼻尖、左(右)脸颊、下巴(图1)
图1. 人脸束图模板
最后形成的模板图代表了平均脸的位置及每个位置的Gabor参数。
生成人脸图
对每张原始人脸图,需要根据人脸弹性束图生成人脸图,以便于下一阶段的识别与分类。
首先根据人脸弹性束图(模板)粗定位到特征点:
每张人脸的左眼是确定像素的(如何?),然后根据模板图上其他点到已知点的矢量确定该点位置。这里认为距离越近的点可信度越高,因此根据不同距离给每个点赋予不同权值。
然后对每个点做精定位:
比较直接的方法是,计算粗定位点周围每个点的Gabor系数
但Gabor系数计算复杂度太高,基于Gabor系数的以下性质
1)系数幅度大小随偏移量改变发生很小的变动
2)系数相位随偏移量在正弦波方向上产生线性变化
由此计算粗定位点的Gabor系数
为了求导方便,可以取
分类
待识别的人脸提取为人脸图后,将其与数据库中已有人脸库做对比(使用上一节公式),相似度最高且大于预设值的认为是同一人
算法实现
Colorado State 大学提供的csFaceIdEval算法验证系统里包含了EBGM的实现
Malic是一个基于Gabor小波实现的开源人脸识别项目
- 人脸识别(3)--EBGM
- 语音识别&人脸识别
- 【人脸识别】初识人脸识别
- 【人脸识别】初识人脸识别
- OpenCV的行人识别&人脸识别
- 图片识别之人脸识别API
- OpenCV的行人识别&人脸识别
- IOS人脸识别和二维码识别
- 人脸识别之颜色识别
- Face++ 人脸识别,身份识别集成
- 人脸识别:(抓拍+识别)
- 人脸识别的发展方向:蒙面识别
- 树莓派3B+ 人脸识别(OpenCV)
- 人脸识别
- 人脸识别
- 人脸识别算法
- 简单人脸识别
- 人脸识别代码
- Linux 软件安装到 /usr,/usr/local/ 还是 /opt 目录?
- android app防被杀策略
- 盒子模型
- EventBus简单实用
- DOM事件
- 人脸识别(3)--EBGM
- HttpClient
- JEM Inter/Merge/Affine的MVP candidates的建立
- 洛谷 P1563 玩具谜题
- Oracle从windows迁移至linux 使用RMAN
- [LeetCode]Binary Tree Postorder Traversal
- 拯救节日邮件!专属这个节假季的EDM营销方案
- java.lang.ClassCastException: sun.proxy.$Proxy7 cannot be cast to
- Highcharts