QCon 全球软件开发大会(北京站)门票 9 折倒计时 4 天,点击立减 ¥880 了解详情
写点什么

人脸脸型分类研究现状

2019 年 9 月 23 日

人脸脸型分类研究现状


今天给大家带来一篇人脸识别中的脸型识别,不同的脸型适合的眼镜发型不同,那么计算机要如何基于人脸图像来确定脸型呢?


01 概述

人脸脸型就是指我们平时常说的,瓜子脸、圆脸、方脸等。人脸脸型分类就是算法根据一张包含面部的照片推测出人脸属于那种脸型,是人人都爱的瓜子脸还是有正义感的国字脸(也就是方形脸)等。


人脸脸型分类过程一般分为人脸检测、面部特征点定位,然后在此基础上根据合适的参数进行分类,例如人脸的宽高比、眼睛位置等。


目前比较大的几个平台中,在腾讯 AI 平台和 face++人工智能开放平台的人脸检测、人脸属性功能中都没有提供脸型分类的输出信息,只有在百度云的人脸识别中有脸型分类的输出结果。如下是 face++人工智能开放平台的人脸识别演示,包含了常见的年龄、性别等,但是没有脸型结果:



在百度云的人脸识别的人脸检测与属性分析中有实现脸型分类的输出结果。接下来我们测试一下分类效果,实际检测输出包括年龄、性别、表情等,为了演示只保留了脸型结果。使用测试图像前六幅来自 celebA 数据集,第七幅和第八幅正脸和侧脸对比的图像来自 IMM 数据集,最后一幅是百度云平台的演示图片。测试图像中选取了戴墨镜、帽子和胡子的人像,还有头发有遮挡的,同一人同背景的正脸和侧脸,总体分类效果很好,不过由于对于脸型分类主观因素影响比较大,有几个个人感觉应该是瓜子脸的分为了心形,同时由于侧脸脸部特征比较少,缺少横向的宽度等信息,分类不够准确。百度云的分类结果分为 5 类,方形(square)、三角形(triangle)、椭圆形(oval)、心形(heart)和圆形(round)。以下是百度云的脸型分类的效果:


链接是https://cloud.baidu.com/product/face








人脸脸型分类可以进一步辅助人脸表情识别,还可以根据脸型选择合适得眼镜、发型等,美容行业也可以根据脸型进行五官调整。


02 人脸脸型数据集

关于人脸脸型得数据集,并没专门公开的做好脸型标注的数据集。论文研究中常用的数据集有 CAS-PEAL、JAFFE 数据集,都需要手动进行标记。当然也可以爬取一下图片,借助现有的百度云平台,来对进行数据集进行标注,再进行人工评判筛选。


2.1 JAFFE 数据集

网址:http://www.kasrl.org/jaffe.html


介绍:JAFFE 是日本女性脸部表情数据集(Japanese Female Facial Expression),其中包括了 10 个日本女性的 213 幅表情图像,其中 6 个是基本表情,例如笑,惊讶,生气等,还有一个是中性表情(即自然状态下的表情),每幅图像的表情是选择了 60 人来评判。


大小:10 位日本女性的 213 幅图像。


标签:高兴、 悲伤,、害怕、 生气,、惊讶、厌恶、中性



2.1  CAS-PEAL 人脸数据集

网址:http://www.jdl.ac.cn/peal/


介绍:CAS-PEAL Face Database 是由中科院和北京大学的先进人机通信技术联合实验室联合建立的数据集。建立该数据库的目的是为全世界范围的人脸识别研究提供大规模的中国人人脸数据去训练和提高算法。其中 CAS-PEAL-R1 是 CAS-PEAL 的一个子数据集。CAS-PEAL 数据集需要申请才可以使用。


大小:


CAS-PEAL: 99594 幅图像涉及 1040 个人(595 位男性和 445 位女性)。


CAS-PEAL-R1: 30900 幅图像涉及 1040 个人


标签:表情



2.3 CelebA 数据集

网址:http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html


介绍:celebA(CelebFaces Attributes Dataset)数据集是大规模的名人人脸属性数据库,有超过 200k 的名人图像,每幅图像有 40 个属性标注,包括是否是圆脸、有没有戴眼镜、有没有戴项链、性别等等。


大小:202,599 幅脸部图像


标签:性别、是否属于圆脸、有无眼镜、有无项链、是否带帽子、有无胡须、浓妆淡妆等。



03 脸型分类方法

传统的方法是拟合人脸轮廓曲率来进行分类的,主要是利用脸部和下巴的曲线建立模型【1】。大部分提取面部特征使用的方法都是 ASM 和 AAM,提取出特征之后的使用的分类算法不同,有以下几种:


3.1  SVM【2】

分类方法:


支持向量机 SVM 一般用来处理二分类问题,对于多个类别可以将多个二分类的 SVM 组合到一起生成一个多分类 SVM,例如 one-versus-one。One-versus-one multiclass SVM 是一种高效的分类方法,分类过程类似于投票过程。例如分三类 A,B,C。那么将这三类两两组合形成二分类 SVM,如 SVM1(A,B),SVM2(A,C),SVM3(B,C),然后将三个二分类 SVM 使用到同一样本,统计样本被分为 A,B,C 类的个数,例如 SVM1 和 SVM2 分类结果都是 A,SVM3 分类结果是 C,那么 A 的票最高,最终分类结果就是 A。


分类过程:


1) 利用 AAM 方法建立模型提取特征;


2) 每个脸型选取一部分数据训练出一个 3 分类的 SVM;


分类结果:


在论文中研究人员将脸型分为三类瓜子脸,圆脸和方形脸,然后选择取了 513 幅瓜子脸图像、538 幅圆脸图像和 434 幅方形脸图像进行训练,最终使用 180 幅图像作为测试,测试结果瓜子脸识别率:90%,圆脸识别率:93.3%,方形脸识别率:85%。分类准确率不高的原因是研究中使用的数据集是 JAFFE 数据集,该数据是一个表情数据集,由于有些表情会造成面部变动很大影响分类,例如带有惊讶表情的面部会被识别为瓜子脸。



脸型类型



测试准确率



惊讶表情的面部会被错误分为瓜子脸


3.2 KNN 方法【4】

分类特征:



利用图中红色圈出来的点可以计算面宽 Wshape、下颌宽 Wmandible、形态面高 Hshape3 个测量参数。面宽去左右颧点的欧氏距离,下颌宽取左右下颌角点欧氏距离,形态面高取鼻根点与颏下点间欧氏距离【3】【4】。


形态面指数:



颧下颌宽指数:



将以上这些参数作为脸型分类的特征进行分类。


分类过程:1、利用 ASM 获取形状特征点集;2、计算形态面指数和颧下颌宽指数,若形态面指数大于 0.915 归为长脸;3、归为长脸的样本若颧下颌宽大于 0.875 归为方圆下巴长脸,否则归为尖下巴长脸。面型指数小于 0.915 的样本,需要将形态面指数和颧下颌宽指数和样本库中的样本做比对,求取 k 个近邻得到脸型类别。


分类结果:


研究人员使用的是 CAS-PEAL 数据集,使用了其中 1200 张温和光照、中性表情的正面人脸,由 20 人投票将人脸库分为了三角脸、椭圆脸、圆脸、方脸、尖下巴长脸和方圆下巴长脸 6 类,分类精确率统计如下表:



由于脸型的分类实际上是一个比较简单的问题,输入正脸后就是一个简单的深度学习分类问题。


3.3 SVM-RBF 方法【5】


分类特征:提取了脸部的 61 个特征点,采用下表对特征点处理得到 19 个表征脸型的特征参数,采用这 19 个特征进行训练和预测。




分类过程:


1、利用 AAM 获取脸部特征点;


2、根据上面的表格计算表征脸型的 19 个特征;


3、利用 SVM-RBF 进行分类;论文中还是用了 LDA(Linear Discriminant Analysis)和 SVM-Linear 方法,不过效果都没有 SVM-RBF 好。


分类结果:


实验中数据是从 Google 搜索的 1000 张女性脸部图像,训练集和测试集按照 9:1 进行分配。SVM-RBF 的分类结果最好,平均准确率可以达到 72%;其次是 SVM-Linear 方法,平均准确率有 64%;LDA 方法最差,平均准确率只有 58%。



3.3 最近邻法【6】

分类特征:用于脸型分类的几何特征,G1:整个脸部轮廓的最佳拟合椭圆;G2:下巴特征点的最佳拟合椭圆;G3:脸颊特征点的最佳拟合椭圆;G4:下巴的连线;G5:太阳穴连线;G6:对角线;


根据这 6 个特征,获取到一个表征脸型的 8 为特征向量 F:(F1-F3)是(G1,G2,G3)的高度对 G5 长度归一化得到的,(F4-F6)是脸部轮廓到(G1,G2,G3)的距离对 G5 的长度归一化获得,F7 是 G4 对 G5 归一化得到,F8 是两个对象线长度的平均对 G5 归一化获得。



分类方法:最终分类根据两个脸型特征向量之间的距离确定,距离最近的即为同一类。



分类结果:论文中使用 300 幅图像作为训练,使用了 100 幅图像用来测试。出去由于脸部特征提取失败引起的错误,最终分类准确率在 90%。


基于深度学习的方法已经大大简化了流程,准备好足够多的数据,这就是一个普通的分类任务。不得不感叹,深度学习让很多传统方法再也无路可走。


04 总结

脸型分类可以应用在发型设计,眼镜框选择和美容行业,还可以用在虚拟化妆中,根据脸型确定哪里需要阴影等。总得来说根据正脸图像进行脸型分类准确率很高,但是对侧脸的图像,侧脸脸部特征比较少,无法正确判断脸部的比例,因此准确率比较低,如果采用的 3D 的信息侧脸分类效果应该会有所提升。


参考文献:


[1]魏伟. 基于主动形状模型人脸识别算法的研究与实现[D].复旦大学,2012.


[2]L. Li, J. So, H.-C. Shin, and Y. Han. “An AAM-based face shape classification method used for facial expression recognition,” International Journal of Research in Engineering and Technology, vol. 2, pp. 164–168, 2013.


[3]赵薇,汪增福.用于大库人脸识别的脸型分类研究[J].电子技术,2009,36(11):77-79+68.


[4]刘双成,蔡晓东,张力,毕伟伟,梁建勇.基于主动形状模型和 K 近邻算法的人脸脸型分类[J].桂林电子科技大学学报,2014,34(06):479-483.


[5]Wisuwat Sunhem,  Kitsuchart Pasupa,“An Approach to Face Shape Classification for Hairstyle Recommendation”, International Conference on Advanced Computational Intelligence, 8th.


[6]Amir  Zafar, Tiberiu  Popa , "Face and Eye-ware Classification using Geometric Features for a Data-driven Eye-ware Recommendation System ",Proceedings of Graphics Interface 2016: Victoria, British Columbia, Canada, 1-3 June 2016, 183-188.


作者介绍


王朋强,公众号“有三 AI”作者。该公号聚焦于让大家能够系统性地完成 AI 各个领域所需的专业知识的学习。


原文链接


https://mp.weixin.qq.com/s/qUFjfsDtTQfAEjBCuoWHew


2019 年 9 月 23 日 13:161715

评论

发布
暂无评论
发现更多内容

源中瑞情报智能研判预警平台开发,合成作战系统建设方案

WX13823153201

架构师系列 14 PageRank算法

桃花原记

合约跟单交易软件系统开发|合约跟单交易APP开发

开發I852946OIIO

系统开发

案例加源码:万字长文带你彻底搞懂MySQL的索引优化

程序员小毕

MySQL sql 源码 性能优化 索引

阿里架构师深入讲解Android开发!教你一种更清晰的Android架构!BAT大厂面试总结

欢喜学安卓

android 程序员 面试 移动开发

QA为什么转换角色

BY林子

软件测试 QA 职业发展

Java 程序经验小结:返回零长度的数组或集合,而不是null

后台技术汇

28天写作

惊喜来袭!253页全彩免费电子书《Python 编程参考》正式上线发布

Python编程参考官方账号

Python go redis 程序设计

阿里巴巴2021年最新开源十亿级Java高并发系统设计手册

Java架构追梦

Java 阿里巴巴 架构 并发 系统架构设计手册

IM即时通讯实现的原理

v16629866266

我所认为的产品经理能力模型

day day up

iOS音视频--视频合集

程序员 音视频 OpenGL ES GPUImage Metal

Elastic search 单节点、两节点、三节点环境

escray

elasticsearch elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

热情空前,家长纷纷变身“寒假规划师”,如何抓住这波热潮?

ZEGO即构

AI 在线教育 在线课堂

2020中国ToB独角兽:估值逆势起飞,寡头效应加剧

ToB行业头条

是找茬?还是装B?阿里面试每轮必问的“Spring Boot”意义何在?

比伯

Java 编程 架构 面试 计算机

WebRTC 的现状和未来:专访 W3C WebRTC Chair Bernard Aboba

阿里云视频云

WebRTC

阿里架构师经验分享!Android面试知识点总结宝典助你通关!顺利通过阿里Android岗面试

欢喜学安卓

android 程序员 面试 移动开发

【有奖调研】中国人工智能开发者调研

百度大脑

SpringCloud 从入门到精通 11---Nacos负载均衡

Felix

架构师 3 期 3 班 -week8- 作业

zbest

作业 week8

TarsBenchmark | 服务性能压测利器

TARS基金会

微服务 压力测试 TARS

redis持久化怎么选?成年人从来不做选择...

moon聊技术

Soul网关源码阅读番外篇(一) HTTP参数请求错误

Java 源码阅读 网关

COCO聊天挖矿系统开发|COCO聊天挖矿软件APP开发

开發I852946OIIO

系统开发

使用Apollo升级一下yml文件管理和发布

Sky彬

springboo

《2020年微信视频号研究报告》 | 视频号 28 天 (11)

赵新龙

28天写作

作业1

瑾瑾呀

《我想进大厂》之分布式事务篇

艾小仙

Java 面试 后端

iTerm2 实现 ssh 自动登录,并使用 Zmodem 实现快速传输文件

米开朗基杨

iterm2

简化业务代码开发:看Lambda表达式如何将代码封装为数据

华为云开发者社区

函数式接口 数据 代码 函数 lambad

边缘计算隔离技术的挑战与实践

边缘计算隔离技术的挑战与实践

人脸脸型分类研究现状-InfoQ