人脸对齐:DCNN级联关键点检测2013

人脸对齐:DCNN级联关键点检测2013近期学习关键点检测相关内容,基于CNN的方法已经替代以往经典的方法(ASM,AAM等),于是乎得看看CNN是如何应用到关键点检测上的。创新点: 1.将CNN应用到人脸关键点检测当中 2.提出级联CNN,这个级联CNN的level-1有一个非常重要的作用,就是解决了传统人脸关键点检测时都会遇到的一个问题——关键点初始化,传统参数化方法(ASM,AAM等)若初始化不当,容易陷入局部最优。 虽然作者没…

大家好,又见面了,我是你们的朋友全栈君。

近期学习关键点检测相关内容,基于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提出级联的方式,感觉第一级就是做了个很好的初始化。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138837.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jeecg主从数据库读写分离配置「建议收藏」

    1、修改Dbconfig.properties数据库配置文件:注意:从库属性的名字要与主库的属性名字区分开,属性名将会在后面的配置文件中用到。#数据库配置主库-写入库#MySQLhibernate.dialect=org.hibernate.dialect.MySQLDialectvalidationQuery.sqlserver=SELECT1jdbc.url=jdbc\:mys…

    2022年4月16日
    36
  • python global关键字_python中global是什么意思

    python global关键字_python中global是什么意思第一,两者的功能不同。global关键字修饰变量后标识该变量是全局变量,对该变量进行修改就是修改全局变量,而nonlocal关键字修饰变量后标识该变量是上一级函数中的局部变量,如果上一级函数中不存在该局部变量,nonlocal位置会发生错误(最上层的函数使用nonlocal修饰变量必定会报错)。第二,两者使用的范围不同。global关键字可以用在任何地方,包括最上层函数中和嵌套函数中,即使之前未定义该变量,global修饰后也可以直接使用,而nonlocal关键字只能用于嵌套函数中,并且外层函数中定义了

    2022年9月6日
    3
  • c++和java哪个好学_C/C++,JAVA学习哪个更容易就业?

    c++和java哪个好学_C/C++,JAVA学习哪个更容易就业?C、C++和Java语言都是目前在IT行业内有广泛使用的编程语言,其中C的应用场景主要集中在嵌入式开发、操作系统开发等领域,C++主要的应用领域集中在多媒体和容器开发领域,而Java的应用场景更多一些,包括Web开发、移动互联开发、大数据开发等。从市场需求量来看,目前Java程序员的市场需求量更大一些。C语言可以说是编程语言界的常青树,虽然已经被使用多年,但是目前依然具有旺盛的生命力,尤其在一些…

    2022年7月7日
    29
  • java 激活码【最新永久激活】

    (java 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1PA3AFINM4-eyJsa…

    2022年3月31日
    71
  • 三十岁以上的男人才会用到的网站,不浮夸这是真的

    三十岁以上的男人才会用到的网站,不浮夸这是真的三十岁以上的男人其实已经经历过很多多岁月了,无论是工作、社交、还是家庭都应该是得心应手的。但是未必所有三十岁的男人都用到过下面这些网站。PPT素材类优品PPT我们可以免费PPT模板下载网站!企帮

    2022年7月3日
    30
  • 最长回文子串 python_最长回文子序列

    最长回文子串 python_最长回文子序列647.回文子串题目给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例1:输入:”abc”输出:3解释:三个回文子串:”a”,”b”,”c”示例2:输入:”aaa”输出:6解释:6个回文子串:”a”,”a”,”a”,”aa”,”aa”,”aaa”提示:输入的字符串长度不会超过10…

    2022年10月16日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号