近期学习关键点检测相关内容,基于CNN的方法已经替代以往经典的方法(ASM,AAM等),于是乎得看看CNN是如何应用到关键点检测上的。

创新点:
1.将CNN应用到人脸关键点检测当中
2.提出级联CNN,这个级联CNN的level-1 有一个非常重要的作用,就是解决了传统人脸关键点检测时都会遇到的一个问题——关键点初始化,传统参数化方法(ASM,AAM等)若初始化不当,容易陷入局部最优。
虽然作者没有明确说这个问题,但是很明显的是,经过level-1,得到了一个相对较好的初始化。
在这方面,face++ 发表在ICCV-2013的paper(Extensive facial landmark localization with coarse-to-fine convolutional network cascade)同样有这么个“初始化”的操作。
3.借鉴别的文献中的idea:局部共享权值(locally sharing weights),理论听起来挺有道理的。传统的权值共享认为某一个特征会图像的不同位置出现,所以采用全局权值共享。但是人脸是由比较规范的结构,如人眼就是在上部,鼻子就是在中部,嘴就是在下部,因此应该采用局部权值共享。

2013年,Sun等人首次将CNN应用到人脸关键点检测,并且取得较好的结果(BioID、LFPW数据集上),今天就来看看Sun等人提出的Deep Convolutional Network Cascade,到底是如何应用到人脸关键点检测的。

Abstract

作者提出一种级联的CNN(有三个level)来检测人脸关键点,之所以此方法好,很大程度是得益于CNN可以提取全局的,“高级”(high level)的特征,以及作者精心设计的 three-level的网络结构。

Introduction

近年(2010年前后)Facial keypoint detection可分为两种方法:1 classifying search windows;2 directly predicting keypoint positions (or shape parameters)
而第一种方法需要scanning,从而很耗时。本文提出的three-level就自然属于第二种方法了。然而,以往的初始化方法是采用mean shape or shape sampled from the training set,这样初始化是很“粗糙”的,距离真实label比较“远”的初始化,这样存在一个严重的问题就是——训练过程中容易陷入局部最优。本文提出的模型中,first-level一大作用就是提取出一个比较“精准”的key point 用来初始化,从而可以避免局部最优。
后两个level的CNN,需要比first-level要浅一些,因为这两个level是“看”low-level的区域,提取的是low-level的特征,所以不需要太深。
Related work(略)

Cascaded convolutional network

Cascaded convolutional network,由三个level构成,level-1 由三个CNN组成;level-2由10个CNN组成(因为是5个point,每个point用两个CNN);level-310个CNN组成(因为是5个point,每个point用两个CNN)。每个CNN的input size还不一样,因为其作用不同,请看图。

Level-1:
分三个CNN,分别是F1(face 1)、EN1(eye,nose)、NM1(nose,mouth);F1的input是39*39,输出是5个点;EN1的input是39*31,输出是3个点;NM1的input是39*31,输出是3个点。Level-1的输出是由三个CNN输出取平均得到;
在level-1中还采用了locally sharing weights,传统的权值共享认为某一个特征会图像的不同位置出现,所以采用权值共享。然而对于fixed spatial layout的任务就不应该这样做,例如人脸特征点检测,眼睛就是在上面,鼻子就是在中间,嘴巴就是在下面的。所以这里采用局部权值共享,idea源自[12](2012-CVPR Learning hierarchical representations for face verification with convolutional deep belief networks)
有兴趣的同学可以看看这篇paper,局部权值共享是怎么操作的。

Level-2
由10个CNN构成,input size均为15*15,每两个组成一对,一个点由一对CNN进行预测,预测结果同样是采取平均。
Level-3,与Level-2类似。

一句话总结本模型:

Cascaded convolutional network,就是由粗到细的级联回归,同时借助CNN强大的特征提取能力,有效的提升了关键点检测精度。

随笔:
1. 部权值共享只是在level-1中采用,毕竟后两个level不需要
2. err计算公式:

L is the width of the bounding box returned by detector. 这里没用采用两眼距离坐归一化因子,原因参加论文[28]

Q: EN1和NM1的input size 为什么与 F1的不一样?
A: 因为F1负责5个点,是更high-level的,而EN1,NM1负责3个点

Q: 为什么选取39*39,39*31,是因为数据集的问题?
A: 实验得出的经验值

相关博客推荐:
http://blog.csdn.net/joshuaxx316/article/details/52294233
http://blog.csdn.net/xzzppp/article/details/74933489
http://blog.csdn.net/xzzppp/article/details/74932150
http://blog.csdn.net/hjimce/article/details/49955149(推荐,超详细)

胡思乱想:
1. 摘要就说,以前方法的初始化不够好,容易导致陷入局部最优,那DCNN提出级联的方式,感觉第一级就是做了个很好的初始化。

人脸关键点: DCNN-Deep Convolutional Network Cascade for Facial Point Detection相关推荐

  1. 【Cascade FPD】《Deep Convolutional Network Cascade for Facial Point Detection》

    CVPR-2013 文章目录 1 Background and Motivation 2 Related Work 3 Advantages / Contributions 4 Method 5 Ex ...

  2. 人群密度估计--CrowdNet: A Deep Convolutional Network for Dense Crowd Counting

    CrowdNet: A Deep Convolutional Network for Dense Crowd Counting published in the proceedings of ACM ...

  3. (SRCNN)及pytorch实现_Learning a Deep Convolutional Network for Image Super-Resolution——超分辨率(二)

    文章目录 Learning a Deep Convolutional Network for Image Super-Resolution 算法简介 算法流程 Patch extraction and ...

  4. 图像超分辨率之SRCNN(Learning a Deep Convolutional Network for Image Super-Resolution)

    论文下载:Learning a Deep Convolutional Network for Image Super-Resolution 代码下载:https://github.com/tegg89 ...

  5. Ensemble of the Deep Convolutional Network for Multiclass of Plant Disease Classi¯cation Using Leaf

    Ensemble of the Deep Convolutional Network for Multiclass of Plant Disease Classi¯cation Using Leaf ...

  6. 文献记录(part33)-Hierarchical deep neural network for mental stress state detection using IoT ...

    学习笔记,仅供参考,有错必纠 仅记录实验 文章目录 Hierarchical deep neural network for mental stress state detection using I ...

  7. 人脸关键点:DAN-Deep Alignment Network: A convolutional neural network for robust face alignment

    DAN-Deep Alignment Network,发表于CVPR-2017.很纳闷DAN取名中的D,为什么是deep,如果是深度学习的deep,岂不是很无区分性?有知道的朋友请告诉我这个D是什么意 ...

  8. 快速多尺度人脸检测2--Multi-Scale Fully Convolutional Network for Face Detection in the Wild

    Multi-Scale Fully Convolutional Network for Face Detection in the Wild CVPRW2017 上一篇文献的姊妹篇吧,如何能够快速的实 ...

  9. 快速多尺度人脸检测--Multi-Scale Fully Convolutional Network for Fast Face Detection

    Multi-Scale Fully Convolutional Network for Fast Face Detection BMVC 2016 如何能够快速的实现多尺度人脸检测了? 本文的思路是 ...

最新文章

  1. 堆叠柱形图上自定义数字_柱形图的类别标签太长太宽,倾斜起来了怎么办?
  2. 人脸识别中的margin损失函数
  3. linux安装apache的纠结过程
  4. PHP GD库解析一张简单图片并输出
  5. hdu1598(并查集)
  6. 如何使用指向类的成员函数的指针(详解!)
  7. Node.js下载安装及各种npm、cnpm、nvm、nrm配置(保姆式教程—提供全套安装包)—nvm的安装与配置(4)
  8. 关于git clone 下载apex 过程中,缺少libssl.so.1.0.0的问题
  9. 多出口冗余网络设计方案
  10. 地推HTTP3和QUIC
  11. python服务端编程_Python实现的简单文件传输服务器和客户端
  12. 开源cms系统We7插件开发准备工作全面就绪
  13. (四)洞悉linux下的Netfilteramp;iptables:包过滤子系统iptable_filter
  14. 一行Python代码玩转emoji表情,已经玩坏了都...
  15. 能让你「情商暴涨」的6个聊天小技巧
  16. 【Love2d从青铜到王者】第十五篇:Love2d之角度和距离(Angles and distance)
  17. APP开发定制需求的常说分销模式,对于分销大家了解多少呢?
  18. 中文版智能ABC如何移植到英文OS
  19. 谷歌宣布Android设备累计激活量突破10亿台
  20. 支持DISTINCT的通用分页存储过程(SQL2005)

热门文章

  1. 【GoLang】GO语言系列--002.GO语言基础
  2. 2016-03-12 Leanning Plan
  3. iOS自动布局之autoresizingi
  4. tomcat 7配置数据库连接池,使用SQL Server2005实现
  5. FAQ from CSDN
  6. java matching_LeetCode第[44]题(Java):Wildcard Matching
  7. AbstractQueuedSynchronizer源码
  8. @SuppressWarnings(resource)
  9. Day19:继承实现的原理、子类中调用父类的方法、封装
  10. 开源GIS软件初探(转载)