人脸特征点检测:VanillaCNN
《Facial Landmark Detection with Tweaked Convolutional Neural Networks》论文解读
论文地址:
http://www.openu.ac.il/home/hassner/projects/tcnn_landmarks/
概述
如我前面所说,人脸特征点检测是一个回归问题,这个问题需要关注两个方面:一是人脸特征表示,二是回归方法。这次解析的论文是使用深度学习的方法来做特征点检测,它的方法也不会脱离这个框架的。
Vanilla CNN
其实这篇论文的网络结构和前面的TCDCN网络结构是一样的,就不一一细说了。
TCDCN:
Vanilla CNN:
和TCDCN不一样的地方在于:去掉多任务学习而且使用彩色图像。损失函数也不一样,这里使用的损失函数使用了两眼间距离进行标准化:
\mathscr L (P_i,\hat P_i)=\frac{\Vert P_i-\hat P_i \Vert^2_2}{\Vert \hat p_{i,1} -\hat p_{i,2} \Vert^2_2}
P^i\hat P_i代表真实值,p^i,1\hat p_{i,1}和p^i,2\hat p_{i,2}代表眼睛位置。
至此,本文中使用Vanilla CNN人脸特征点检测结束了。文章后面的内容是TCNN,这部分作者还没有放出源码,我们简单看一下。
网络特征分析
随后作者对这个模型提出了一些思考,由此引出了下面的TCNN。这个问题就是,网络到底学习到了什么样特征?
作者对网络不同层的特征进行使用GMM进行聚类分析,发现网络进行的是层次的,由粗到精(hierarchical, coarse to fine)的特征定位,越深的网络特征越能反应出特征点的位置。
作者对FC5的输入进行了分析,也就是网络示意图中红色圆圈部分,将这些特征使用了GMM聚成64类,并显示出每一个聚类中心(相同类别脸的平均):
显然,这些特征展示出了人脸的不同姿势,还可以看出不同的人脸属性,比如表情和性别,作者认为这是因为人脸特征点的位置常常和人脸的属性相关联。
TCNN
从上面对特征的分析可以看出,在深层模型中,越深的层所表示的特征越针对某项具体任务。在红圈处的特征已经能大致反应出人脸的姿势信息,作者由此想到针对不同的姿势训练对应的回归模型。这样人脸特征点检测就变成两步,先粗定位然后再精确定位。
具体做法是保持网络前面不变,fine-tuning最后一层FC5,使用具有相似特征的图片训练对应的回归器。
TCNN训练过程为:先训练好Vanilla CNN,然后从红圈处提取特征,将特征使用GMM聚类,使用同一类的图片fine-tune后面对应的回归器权值。
结果
按论文说,Vanilla CNN的结果比TCDCN好一点。
我使用MXNet进行的一次测试:
代码
作者给出了Vanilla CNN的caffe模型,我把它转成了MXNet模型,可以去我的GitHub上下载:
https://github.com/flyingzhao/mxnet_VanillaCNN
总结
本文其实对人脸特征点检测任务创新不是很多,论文主要价值在于分析了网络中每一层特征的意义。
人脸特征点检测:VanillaCNN相关推荐
- PFLD:简单、快速、超高精度人脸特征点检测算法
作者 | 周强(CV君) 来源 | 我爱计算机视觉(公众号id:aicvml) 60s测试:你是否适合转型人工智能? https://edu.csdn.net/topic/ai30?utm_sourc ...
- CPU上跑到 100 fps 的高精度PyTorch人脸特征点检测库
视学算法分享 作者 | cunjian 编译 | CV君 转自 | 我爱计算机视觉 [导读]向大家推荐一款基于PyTorch实现的快速高精度人脸特征点检测库,其在CPU上的运行速度可达100 ...
- Facial Landmark Detection(人脸特征点检测)
原文地址:http://www.learnopencv.com/facial-landmark-detection/#comment-2471797375 作为计算机视觉研究员,我们很早就开始研究人脸 ...
- ShapeNet:超实时人脸特征点检测与形状拟合开源库
点击我爱计算机视觉标星,更快获取CVML新技术 近日,来自德国亚琛工业大学的研究人员开源了形状拟合库ShapeNet,其可以实现超实时的人脸特征点检测,也可以用在其他任何需要形状拟合的应用场景. 开源 ...
- 人脸特征点检测:SDM
<Supervised Descent Method and its Applications to Face Alignment>论文解读 这篇文章发表于CVPR2013,来自于CMU. ...
- 『深度学习项目四』基于ResNet101人脸特征点检测
相关文章: [深度学习项目一]全连接神经网络实现mnist数字识别 [深度学习项目二]卷积神经网络LeNet实现minst数字识别 [深度学习项目三]ResNet50多分类任务[十二生肖分类] 『深度 ...
- 第四篇:基于深度学习的人脸特征点检测 - 数据预处理
在上一篇博文中,我们整理了300-W.LFPW.HELEN.AFW.IBUG和300-VW这6个数据集,使用Python将特征点绘制在对应的图片上,人工验证了数据集的正确性,最终获得了223034个人 ...
- 第二篇:基于深度学习的人脸特征点检测 - 数据与方法(转载)
https://yinguobing.com/facial-landmark-localization-by-deep-learning-data-and-algorithm/ 在上一篇博文中,我们了 ...
- C++ OpenCV Contrib模块LBF人脸特征点检测
学更好的别人, 做更好的自己. --<微卡智享> 本文长度为3322字,预计阅读9分钟 前言 <OpenCV源码Android端编译,用时三天,我编了个寂寞...>文中介绍了编 ...
最新文章
- svg: svg预定义的形状
- python随机生成30个8_Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例...
- mybatis批量更新报错XXXXX-Inline
- js 字符和html和数值拼接,js中substring和substr的用法(获取字符串为整个html页面中的某个数值)...
- 大数据WEB阶段 (六)MySql详解(一)
- org.codehaus.janino.CompilerFactory cannot be cast to org.codehaus.commons.compiler.ICompilerFactory
- Android开发之代码开发部分字符串变色
- POJ 2240 ZOJ 1082 Arbitrage 最短路,c++ stl pass g++ tle 难度:0
- 支持.NET的分布式缓存系统memcached
- Objective-C消息转发
- 比较完整的URL验证
- singer页左侧滚动的时候右侧跟随高亮显示
- binder机制原理android,Binder机制1---Binder原理介绍
- 签名验证反爬,反反爬第二篇博客,Python爬虫120例
- E45: ‘readonly‘ option is set (add ! to override)
- Pandas 08-文本数据
- html:button按钮背景图片设置
- MFS详解(一)——MFS介绍
- 【Qt】QtIFW 安装包制作总结 -如何创建多组件的安装器
- ubuntu使用exiftool查看图片exif信息