跨年龄人脸识别 Cross-Age Reference Coding
来源:互联网 发布:淘宝1元贱卖腾讯会员 编辑:程序博客网 时间:2024/05/17 23:05
论文:《Cross-Age Reference Coding for Age-Invariant Face Recognition and Retrieval》
主要内容:
- 提出了同时使用同一人不同年龄阶段的图片进行特征编码的方法CARC以应对跨年龄人脸图片识别的任务
- 从网络采集了多个名人不同时间的图片组成了跨年龄数据库CARD
Cross-Age Reference Coding
总体框架
算法流程概述
- 图片对齐,特征点标注,LBP特征提取
- 使用网络获得的不同人在不同时间段的照片作为参考集(reference set),计算这个集合中图片的特征表示,形成参考特征空间
- 将待表示的图片LBP特征映射到参考特征空间中获取在参考空间中的编码
- 在上述编码中对年龄(时间)维度进行最大值汇总,形成最终具有年龄不变性的编码表示
- 使用cosine similarity进行图片匹配和检索
特征提取
文中采用了选取脸部16个特征点,在附近的纹理上提取LBP特征的方式获取特征(具体步骤见论文),并使用了PCA降维
注意特征提取和之后的步骤在计算上没有直接关联,但作者为特征提出了一个前提假设,即在该种特征表示下,某一年龄阶段面部相似的两人,在其他年龄阶段面部特征也相似。
也可以设计自己的特征提取方式,但为了运用之后的编码方式,需考虑该种特征是否满足这个前提
参考特征空间
建立参考特征空间的目的是用参考集中的人脸特征形成一组普适的人脸特征描述。该文章中的计算方法比较简单直观,即对同一人同一年龄的不同图片提取的特征取平均值
其中,n为参考集人数,m为参考集中存在的年数,p为特征点数(文中取16个)
图片映射
获取参考空间之后,对于待用的每一张图,都需要进行映射获取最终的特征表示。
该映射的目标函数是一个最小二乘问题,需要:
- 尽量还原原特征x
- 参数具有泛化能力,进行一定的正则化
- 参数进行一定的平滑,以获得“两个在同一年龄相似的人在前一年和后一年也相似”的效果
文中给出了如下的目标函数
该问题有如上闭式解,可以方便地根据参考集解出前半部分矩阵作为参数。
时间汇总
该论文的主要目标是获取具有年龄不变性的特征,作者使用了对时间维度进行max pooling的办法达到此目的。注意到在进行max pooling之前,获取的特征是矩阵形式。
在时间维度(m维)进行max pooling之后,若一张图片在参考集中某人的任意时间上有较大响应(a值),则该图片在该人维度即有较大响应,视为与该人相似。
通过max pooling之后,获得了一组向量,即是该方法所获得的特征编码。
编码使用
文章中通过使用cosine相似度对特征编码进行比较,从而完成图片检索和比对的任务。
思考和讨论
- 该文章的特征向量空间构造非常简单直观,实际使用中可能会遇到特征维度过多的问题(文中16*500维),不过特征提取不是该文章的重点,因此可考虑使用自己需要的其他提取方式。
- 文中使用的映射后max pooling的框架有点类似于全连接的神经网络,但其中每一行有年龄这个物理意义。实际上,该框架可能可以用于具有其他物理属性的不同图片的编码和检索,例如同一人的不同角度图片等。
- 为了参考集空间的完整性,需要每个人每个年龄上都有照片,对数据要求较高。
0 0
- 跨年龄人脸识别 Cross-Age Reference Coding
- Age Sort(年龄排序)
- uva11462 - Age Sort(年龄排序)
- Face++-识别人脸性别年龄小例子
- 基于CNN的人脸 性别、年龄识别
- 人脸识别——DSIFT+Fisher Vecttor Coding
- 百度大脑人脸识别深度验证与思考(二)之年龄识别
- 使用face++做人脸,年龄,性别识别
- Oldlinux Cross Reference
- XENOMAI Cross Reference
- 情景英语口语100主题 001age年龄
- 人脸识别方向论文笔记(2)-- Latent Factor Guided Convolutonal Neural Networks for Age-Invariant Face Recognition
- android人脸识别——HowOld测测你的年龄和性别
- android人脸识别——HowOld测测你的年龄和性别
- Android 使用Face++ SDK进行人脸识别和年龄检测
- android人脸识别——HowOld测测你的年龄和性别
- Android人脸识别之显示性别与年龄(Face++)
- win7第一个caffe实验【识别人脸年龄和性别】
- linux中vim,ps,top,gzip与tar命令使用
- Java线程:线程的交互
- 安装npm cnpm bower的操作方法
- Android setVisibility(View.VISIBLE)代码已被执行控件未显示再界面上原因分析
- Hdu1532 Drainage Ditches(isap+bfs优化)
- 跨年龄人脸识别 Cross-Age Reference Coding
- RTX工程报错
- 指针数组 数组指针 指针函数 函数指针绕口令
- leecode 解题总结:66. Plus One
- Java线程:线程的调度-休眠
- js中使用el表达式
- hibernate延迟加载(get和load的区别)
- 洛谷 1090——合并果子(贪心)
- can_frame中can_id的数据组织形式及处理