人脸关键点检测3——DCNN[通俗易懂]

人脸关键点检测3——DCNN[通俗易懂]《DeepConvolutionalNetworkCascadeforFacialPointDetection》2013年,通过3级卷积神经网络来估计人脸关键点(5点),属于级联回归方法。级联的卷积网络结构:Level1,采用了3个CNN,输入区域分别为整张脸(F1),眼睛和鼻子(EN1),鼻子和嘴(EM1)。F1输入尺寸为39*39,输出5个关键点的坐标;EN1输入…

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

######《Deep Convolutional Network Cascade for Facial Point Detection》
2013年,通过3级卷积神经网络来估计人脸关键点(5点),属于级联回归方法。
级联的卷积网络结构:
这里写图片描述
Level1,采用了3个CNN,输入区域分别为整张脸(F1),眼睛和鼻子(EN1),鼻子和嘴(EM1)。F1输入尺寸为3939,输出5个关键点的坐标;EN1输入尺寸为3139,输出是3个关键点的坐标;NM1输入尺寸为3139,输出是3个关键点。Level-1的输出是由三个CNN输出取平均得到,来较少变动。
Level-2,由10个CNN构成,输入尺寸均为15
15,每两个组成一对,一对CNN对一个关键点进行预测,预测结果同样是采取平均。
Level-3与Level-2一样,由10个CNN构成,输入尺寸均为15*15,每两个组成一对。Level-2和Level-3是对Level-1得到的粗定位进行微调,得到精细的关键点定位。
Level-1之所以比Level-2和Level-3的输入要大,是因为作者认为,由于人脸检测器的原因,边界框的相对位置可能会在大范围内变化,再加上面部姿态的变化,最终导致输入图像的多样性,因此在Level-1应该需要有足够大的输入尺寸。Level-1与Level-2和Level-3还有一点不同之处在于,Level-1采用的是局部权值共享(Locally Sharing Weights),作者认为传统的全局权值共享是考虑到,某一特征可能在图像中任何位置出现,所以采用全局权值共享。然而,对于类似人脸这样具有固定空间结构的图像而言,全局权值共享就不奏效了。因为眼睛就是在上面,鼻子就是在中间,嘴巴就是在下面的。作者通过实验证明了局部权值共享给网络带来性能提升。
网络结构:
这里写图片描述
这里写图片描述
注:Level1中F1采用S0,EN1和NM1采用S2;Level2和Level3全部采用S2。
多级回归:
我们发现几种有效的方法结合多重卷积网络。第一个是多级回归。脸部bounding box是仅有的先验知识。一个面部点对bounding box的相对位置可能分部在一个很大的范围,这是由于脸部检测器的不稳定性和姿态的多样性。所以第一级的输入区域应该是足够大来覆盖所有可能的预测。但大的输入区域是主要的不准确原因,因为不相关的区域可能退化网络最后的输出。第一级的网络输出为接下来的检测提供了一个强大的先验知识。真实的脸部点伪装分布在第一级预测的一个小领域内。所以第二级的检测可以在一个小范围内完成。但没有上下文信息,局部区域的表现是不可靠的。为了避免发散,我们不能级联太多层,或者过多信任接下来的层。这些网络只能在一个小范围内调整初始预测。
为了更好的提高检测精度和可靠性,我们提出了每一级都有多个网络共同地预测每一个点。这些网络的不同在于输入区域。最后的预测可以用公式表达如下:
这里写图片描述
对n-级级联,在i级有li个预测。第一级的预测是绝对位置,接下来的级的预测是调整。
训练:
第一级,训练和边界相关的小块,通过小的变换和旋转增强数据。在接下来的级中,我们训练以ground truth 位置随机变换得到的位置为中心的小块,第二级在水平和竖直最大的shift为0.05,第三级为0.02,这个距离是以bounding box的大小为基准。参数通过随机初始化和随机梯度下降法得到。
测试:
这里写图片描述
DCNN采用级联回归的思想,从粗到精的逐步得到精确的关键点位置,不仅设计了三级级联的卷积神经网络,还引入局部权值共享机制,从而提升网络的定位性能。最终在数据集BioID和LFPW上均获得当时最优结果。速度方面,采用3.3GHz的CPU,每0.12秒检测一张图片的5个关键点。


注:博众家之所长,集群英之荟萃。

在这里插入图片描述

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/141868.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Linux安装Android Sdk「建议收藏」

    Linux安装Android Sdk「建议收藏」在使用Jenkins+Gitlab集成自动化打包时,遇到Linux缺少AndroidSdk环境的问题,单独记录一下安装过程。sdk安装方式常规思路,下载sdk,安装之后修改环境。但是发现,网络上已经没有了sdk的下载资源,有的也只是很老的版本。查看Android开发文档——sdkmanager的使用指南,发现可以使用sdkmanager这个命令行工具进行下载。下载sdkmanager工具包官网下载页最底部-命令行工具下载,找到Linux平台的工具包使用wget下载到服务器wget-P/h

  • tableau新手教程_什么是tableau

    tableau新手教程_什么是tableautableau教程快速入门先基础了解你的数据先选数据源了解你的数据源字段含义、字段类型数据更新频率、数据量、波动频率范围决定了你的时间颗粒度例子:页面转化率(约小时级别+日级别)财

  • thetrialthatrockedtheworld总结_the average hourly wage

    thetrialthatrockedtheworld总结_the average hourly wage聊聊storm WindowTridentProcessor的FreshCollector

  • CentOs安装Python3.9

    CentOs安装Python3.9下载python3源码包wgethttps://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz或者python官网下载https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz然后放过去解压缩源码包tar-zxvfPython-3.9.0.tgz进入源码包文件夹cdPython-3.9.0编译且安装进入源码包目录ls查看源码包内容释放编译文件Makefile.

  • pve 和esxi哪个性能强(前后对比)

    ESXi实战1、安装ESXi7;2、在ESXi7上安装VCSA;3、在VCSA上管理ESXi7;4、在ESXi7上安装CentOS7;存储扩容:直接创建VMFS6,然后扩容;遇到的问题:vCenter(VCSA)中无法添加ESXi主机,提示无法找到IP,全部加入域后,问题解决;PVE实战1、安装ProxmoxVE6.1,主机名一定要唯一…

发表回复

您的电子邮箱地址不会被公开。

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