《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不一样的地方在于:去掉多任务学习而且使用彩色图像。损失函数也不一样,这里使用的损失函数使用了两眼间距离进行标准化:

L(Pi,P^i)=∥Pi−P^i∥22∥p^i,1−p^i,2∥22

\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相关推荐

  1. PFLD:简单、快速、超高精度人脸特征点检测算法

    作者 | 周强(CV君) 来源 | 我爱计算机视觉(公众号id:aicvml) 60s测试:你是否适合转型人工智能? https://edu.csdn.net/topic/ai30?utm_sourc ...

  2. CPU上跑到 100 fps 的高精度PyTorch人脸特征点检测库

      视学算法分享   作者 | cunjian 编译 | CV君 转自 | 我爱计算机视觉 [导读]向大家推荐一款基于PyTorch实现的快速高精度人脸特征点检测库,其在CPU上的运行速度可达100 ...

  3. Facial Landmark Detection(人脸特征点检测)

    原文地址:http://www.learnopencv.com/facial-landmark-detection/#comment-2471797375 作为计算机视觉研究员,我们很早就开始研究人脸 ...

  4. ShapeNet:超实时人脸特征点检测与形状拟合开源库

    点击我爱计算机视觉标星,更快获取CVML新技术 近日,来自德国亚琛工业大学的研究人员开源了形状拟合库ShapeNet,其可以实现超实时的人脸特征点检测,也可以用在其他任何需要形状拟合的应用场景. 开源 ...

  5. 人脸特征点检测:SDM

    <Supervised Descent Method and its Applications to Face Alignment>论文解读 这篇文章发表于CVPR2013,来自于CMU. ...

  6. 『深度学习项目四』基于ResNet101人脸特征点检测

    相关文章: [深度学习项目一]全连接神经网络实现mnist数字识别 [深度学习项目二]卷积神经网络LeNet实现minst数字识别 [深度学习项目三]ResNet50多分类任务[十二生肖分类] 『深度 ...

  7. 第四篇:基于深度学习的人脸特征点检测 - 数据预处理

    在上一篇博文中,我们整理了300-W.LFPW.HELEN.AFW.IBUG和300-VW这6个数据集,使用Python将特征点绘制在对应的图片上,人工验证了数据集的正确性,最终获得了223034个人 ...

  8. 第二篇:基于深度学习的人脸特征点检测 - 数据与方法(转载)

    https://yinguobing.com/facial-landmark-localization-by-deep-learning-data-and-algorithm/ 在上一篇博文中,我们了 ...

  9. C++ OpenCV Contrib模块LBF人脸特征点检测

    学更好的别人, 做更好的自己. --<微卡智享> 本文长度为3322字,预计阅读9分钟 前言 <OpenCV源码Android端编译,用时三天,我编了个寂寞...>文中介绍了编 ...

最新文章

  1. svg: svg预定义的形状
  2. python随机生成30个8_Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例...
  3. mybatis批量更新报错XXXXX-Inline
  4. js 字符和html和数值拼接,js中substring和substr的用法(获取字符串为整个html页面中的某个数值)...
  5. 大数据WEB阶段 (六)MySql详解(一)
  6. org.codehaus.janino.CompilerFactory cannot be cast to org.codehaus.commons.compiler.ICompilerFactory
  7. Android开发之代码开发部分字符串变色
  8. POJ 2240 ZOJ 1082 Arbitrage 最短路,c++ stl pass g++ tle 难度:0
  9. 支持.NET的分布式缓存系统memcached
  10. Objective-C消息转发
  11. 比较完整的URL验证
  12. singer页左侧滚动的时候右侧跟随高亮显示
  13. binder机制原理android,Binder机制1---Binder原理介绍
  14. 签名验证反爬,反反爬第二篇博客,Python爬虫120例
  15. E45: ‘readonly‘ option is set (add ! to override)
  16. Pandas 08-文本数据
  17. html:button按钮背景图片设置
  18. MFS详解(一)——MFS介绍
  19. 【Qt】QtIFW 安装包制作总结 -如何创建多组件的安装器
  20. ubuntu使用exiftool查看图片exif信息

热门文章

  1. 跳过linux系统开机密码,linux开机跳过输入用户名密码|景安
  2. 20145202马超《网络对抗》漏洞分析
  3. 2019最新Windows上安装并启动ElasticSearch6.5.4
  4. 华为交换机dhcp获取不到_华为交换机---基于接口地址池DHCP服务器
  5. Android Q的适配 华为市场给都代码参考和文档
  6. Pe 简单Xor异或加密壳
  7. 【程序人生】东哥脸盲认不清哪个是兄弟了!
  8. 电脑显示器有波纹抖动怎么办
  9. 公司可以在员工的电脑上监控什么?
  10. 笔试编程---快手实习题目