人脸关键点检测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个关键点。


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

在这里插入图片描述

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

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

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


相关推荐

  • 2020年Android面试题汇总(初级)-简书_android经典面试题

    2020年Android面试题汇总(初级)-简书_android经典面试题Android面试题及答案(2022年最新Android面试题大全带答案),发现网上很多Android面试题整理都没有答案,所以花了很长时间搜集,本套Android面试题大全,Android面试题大汇总,有大量经典的Android面试题以及答案,包含Android语言常见面试题、Android工程师高级面试题及一些大厂Android开发面试宝典,面试经验技巧等,应届生,实习生,企业工作过的,都可参考学习!这套Android面试题汇总大全,希望对大家有帮助哈~此面试题合集分为9个部分:Java基础、And

    2022年8月28日
    3
  • VS2010 MFC读取Excel文件中数据

    VS2010 MFC读取Excel文件中数据前段时间写个工具需要从Excel文件中读取数据,Excel表格数据列数为确定值,行数不确定,从网上搜了些方法尝试,最终达到目的,总结如下:

    2022年6月18日
    29
  • windows下的免费邮件服务器软件hMailServer

    公司购买了企业邮局给员工提供邮件服务,这样收发外部邮件都没有问题,但有个非常不好的地方,绝大多数邮件都是在内部互相之间转发的,结果就导致一个问题,不管这个邮件是不是发给内部的,邮件都得到外部邮件服务器上转一圈,如果邮件小还好说,有时候数MB的附件,一发一收都得占不少网络资源,一直就想找个办法,能否让发往内部的邮件不需要外部邮件服务器中转,直接局域网内部就搞定了,外部邮件通过外部服务器收发呢?当

    2022年4月8日
    75
  • phpmyadmin 自动登录的办法

    phpmyadmin 自动登录的办法

    2021年10月11日
    60
  • Win10下解决Wireshark“没有找到接口”的问题

    Win10下解决Wireshark“没有找到接口”的问题1 wireshark 自带的 Npcap 不支持 win10 需要重新下载 Win10Pcap 下载地址为 http www win10pcap org download 安装时需要关闭 wireshark 然后重新打开 wireshark 即可 2 把 wireshark 自带的 Npcap 程序卸载后 再次打开了 wireshark 程序 成功解决了

    2025年8月2日
    2
  • Java和Java大数据有什么区别?

    Java和Java大数据有什么区别?单单提起java或者大数据,很多人对此都一目了然,但对于Java大数据这样一个新鲜名词,多少有些疑惑。那java和java大数据学习的内容是一样的吗?两者有什么区别呢?今天就从java和java大数据的以下方面谈谈两者的区别。Java和Java大数据有什么区别Java和大数据的关系:java是计算机的一门编程语言;可以用来做很多工作,大数据开发属于其中一种;大数据…

    2022年5月25日
    43

发表回复

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

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