近期学习关键点检测相关内容,基于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级联关键点检测2013相关推荐

  1. [人脸对齐--综述] Facial Landmark Detection: a Literature Survey(2018)

    转载请注明作者和出处: http://blog.csdn.net/john_bh/ 论文链接:Facial Landmark Detection: a Literature Survey 作者及团队: ...

  2. 人脸对齐之GBDT(ERT)算法解读

    标签(空格分隔): ERT GBDT Face_Alignment 作者:贾金让 本人博客链接:http://blog.csdn.net/jiajinrang93 ERT/GBDT实现代码链接(C++ ...

  3. Supervised Descent Method(人脸对齐之SDM论文解析)

    Supervised Descent Method(人脸对齐之SDM论文解析) 标签: SDM NLS Jacobian Hessian FaceAlignment 作者:贾金让 本人博客链接:htt ...

  4. 人脸对齐之SDM论文解析

    Supervised Descent Method(人脸对齐之SDM论文解析) 标签: SDM NLS Jacobian Hessian FaceAlignment 作者:贾金让 1.概述 文章名称: ...

  5. 人脸对齐:DCNN的人脸关键点检测

    一:目标  人脸关键点检测是在人脸检测的基础上,对人脸上的特征点例如眼睛.鼻子.嘴巴等进行定位.本例是使用caffe框架实现的结果,效果如下:  二:数据源的制作         因为lmdb不支持多 ...

  6. caffe 人脸关键点检测_人脸关键点对齐

    摘要: 从传统方法到深度学习方法,对人脸关键点定位/人脸对齐的发展进行梳理,对该领域中经典的方法,最新成果进行汇总,并给出相应的paper原文,项目主页及代码链接.重点介绍深度学习的几种最新方法. 1 ...

  7. 人脸对齐及关键点检测

    严格定义上的人脸识别分为四个步骤: ①人脸检测:从图片中准确定位到人脸 ②人脸对齐: 自动定位出面部关键特征点, ③进行特征提取 ④对两张人脸图像的特征向量进行对比,计算相似度. 当今的人脸识别系统如 ...

  8. 级联MobileNet-V2实现CelebA人脸关键点检测(附训练源码)

    文章目录 一 .引言 1.1为什么是级联? 1.2为什么是MobileNet-V2? 二. 级联MobileNet-V2之人脸关键点检测 2.0 修改caffe 2.1 整体框架及思路 2.2 原始数 ...

  9. 【dlib库】进行人脸检测+人脸关键点检测+人脸对齐

    原图像: 1. 人脸检测 import cv2 import dlib import matplotlib.pyplot as plt # 获取图片 my_img = cv2.imread('my_i ...

最新文章

  1. GopherChina 2018 区块链+容器+Go底层实现
  2. 第10章:Shell基础
  3. sql表中只有子节点的递归_动态规划与静态规划、递归、分治、回溯
  4. 重磅!阿里云MongoDB 5.0发布,速来围观新特性
  5. c语言实现感知器算法,感知器算法(c语言版).doc
  6. Learning Video Object Segmentation from Static Images
  7. 使用cross-env解决跨平台设置NODE_ENV的问题
  8. Mac 屏幕可不可以用酒精清洁?正确清洁 Mac 的方法
  9. 【UVA1592】Database (字符串读入技巧和map的使用)
  10. 【crawler笔记】R语言简单动态网页爬虫(rvest包)示例
  11. csma研究背景_前言 自制8位计算机 项目背景介绍
  12. 100kW以上 中高频感应加热电源 双DSP数字式IGBT控制板
  13. php在线翻译,php调用百度在线翻译api的代码
  14. 【软考】系统集成项目管理工程师(四)项目管理一般知识
  15. pandas教程(上)
  16. Android NE问题分析方法介绍
  17. Linux内核相关资源
  18. Bugku—凯撒部长的奖励
  19. 数据库视图view简介
  20. python乒乓球比赛规则介绍_乒乓球比赛规则简单介绍

热门文章

  1. 华为nove2链接电脑传文件报错
  2. ora01034oracle不可用,ORA-01034: ORACLE not available
  3. 2022福州市气象局编制外人员招聘精选模拟题及答案
  4. python-sql查询结果数据对比
  5. html5 css3基础知识详解
  6. 老师傅珍藏已久的4个APP,让你大开眼界,值得收藏
  7. API通达信接口是什么?
  8. javascript事件列表详解
  9. 《Vue》初识、摘要及入门
  10. mate7升级android 6.0,我的MATE7可以升级到安卓6.0