热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【神经网络】MCCN(Multi-taskCascadedConvolutionalNetworks)人脸识别与特征点检测论文解析

在使用faceNet的时候,看到faceNet官方使用的人脸识别和归一化方法是MCCN(Multi-taskCascadedConvolutionalNetworks),看代码貌似

在使用faceNet的时候,看到faceNet官方使用的人脸识别和归一化方法是MCCN(Multi-task Cascaded Convolutional Networks ),看代码貌似是使用三个网络来共同完成人脸识别与面部特征点确定这个多目标工作。就顺便看了一下论文《Joint Face Detection and Alignment usingMulti-task Cascaded Convolutional Networks》。


第一个网络是一个浅层神经网络(后简称pnet) => 产生初步候选框

第二个网络是一个“more complex CNN“相较pnet更为复杂的网络(后简称rnet)=> 从初步候选框中筛选掉大量的不包括人脸的框

第三个网络是一个“more powerful CNN”相较rnet更为强大的网络(后简称onet)=> 进一步优化结果以及产生五个面部特征点(双眼,鼻尖,嘴角)






从论文上说,这套东西的效率可以达到实时检测(real time performance)。并且从检测性能上和现有技术横向对比也是有了很大提高。


阶段一:

P-Net 提案网络。输出很多的候选框。然后用非最大抑制法来合并重复度很高的框(non-maximum suppression (NMS))

阶段二:

R-Net 调优网络。接受所有阶段一的产出,并且根据面部可信度来过滤提案和优化选框范围。它的结果也要接受NMS。

阶段三:

O-Net 类似P-Net,但会用更多面部特征来要求选框。最后会额外输出五个面部特征点。



网络设计思路

减少了过滤器的数量,并把5x5的过滤器换成3x3的过滤器来减少计算量,且增加深度,以获得更好的性能表现。

激活函数用了PReLU,简单贴一下PReLU的图:


综合看这三个阶段的网络,他们都是一网多功能的高级货,目标都是一致的,只是各自重点和精确度不同,每个网络都同时具有这三个功能:是否人脸的分类器,选择选框的回归问题,人脸特征点标识。

对于是否人脸分类器损失函数选用交叉熵。

对于选框(左上角x,左上角y,截图宽,截图高)回归损失函数选用欧氏距离。

人脸特征点标识(十个值,两两一组,分别表达左眼、右眼、鼻、左嘴角、右嘴角)也是一个回归问题,用欧氏距离做损失函数。

从三个网络最终输出来说,总的来说损失函数如下:


N是样本数量;

α表示损失占比:

在第一、二阶段:

det = 1, box = 0.5 landmark = 0.5

三阶段:

det = 1, box = 0.5 landmark = 1;

L表示损失,对应上述的几种损失计算方法;

β∈{0,1} 表示对不同的样本类型的损失惩罚力度。(或许正样本的β较大,TODO 需关注)



Online Hard sample mining(在线难例选择 )

一般在线的难例都是在一个batch中选择难例,MCCN是在一batch中选择lost排名前70%的用例用于梯度回流,排除计算结果比较正确的例子,增强网络的健壮性。从MCCN对这个trick的使用结果来说,有效的提升了网络的性能。

下面(a)图即是有使用在线难例选择和没有使用在线难例选择在ROC曲线中的差异:


考证多任务网络的优势

各阶段目标重点都不一样,为何都要用多任务网络来训练?实验考证了多任务训练对获得更好单任务输出的裨益。上图(b)表中,考证了O-Net在有人脸检测任务和无人脸检测任务下的性能差别(黄线对蓝线)。也考证了O-Net在有选框回归和无选框回归下的差别(这里存疑)。


关于实验

训练数据:

整个实验过程涉及到四种不同的训练数据。(1)负例来源是IOU<0.3的图片。(2)正例是IOU>0.65的图片。(3)人脸局部,来源是IOU在0.4~0.65之间的人脸内部图。(4)人脸特征标识,即是人脸的五个特征点。这四项样本的比例是3:1:1:2 (negatives/ positives/ part face/ landmarkface) 。

因为负例和人脸局部的边界很模糊,在训练使用的时候是这样的:是否人脸分类任务使用正例和IOU在0.3~0.4之间的负例;选择选框任务使用正例和人脸局部;人脸特征点标识就用人脸特征点数据。

采例来源: 1~3种数据采自WIDER-FACE,4采自CelebA。

实验结果:

在人脸识别(是否人脸任务)上,ROC与其他人脸识别算法比较:



在五点检测上,与其他算法的对比:


据说嘴部检测优势巨大。


最后看看实时检测的效果,论文作者在打出99FPS的结果时还不忘秀一发“这可是我们用没优化的matlab代码跑出来的哟”。




end.


推荐阅读
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • 本文详细探讨了OpenCV中人脸检测算法的实现原理与代码结构。通过分析核心函数和关键步骤,揭示了OpenCV如何高效地进行人脸检测。文章不仅提供了代码示例,还深入解释了算法背后的数学模型和优化技巧,为开发者提供了全面的理解和实用的参考。 ... [详细]
  • 本文介绍了多种将多行数据合并为单行的方法,包括使用动态SQL、函数、CTE等技术,适用于不同的SQL Server版本。 ... [详细]
  • 构建高性能Feed流系统的设计指南
    随着移动互联网的发展,Feed流系统成为了众多社交应用的核心组成部分。本文将深入探讨如何设计一个高效、稳定的Feed流系统,涵盖从基础架构到高级特性的各个方面。 ... [详细]
  • 深入解析C++ Atomic编程中的内存顺序
    在多线程环境中,为了防止多个线程同时修改同一数据导致的竞争条件,通常会使用内核级同步对象,如事件、互斥锁和信号量等。然而,这些方法往往伴随着高昂的上下文切换成本。本文将探讨如何利用C++11中的原子操作和内存顺序来优化多线程编程,减少不必要的开销。 ... [详细]
  • Excel技巧:单元格中显示公式而非结果的解决方法
    本文探讨了在Excel中如何通过简单的方法解决单元格显示公式而非计算结果的问题,包括使用快捷键和调整单元格格式两种方法。 ... [详细]
  • 魅族Flyme 7正式发布:全面解析与亮点介绍
    在22日晚的发布会上,魅族不仅推出了m15、15和15 Plus三款新机型,还正式发布了全新的Flyme 7系统。Flyme 7在保持流畅体验的基础上,进一步增强了功能性和实用性,为用户带来更加丰富的使用体验。首批适配包已准备就绪,将逐步推送给现有设备。 ... [详细]
  • 腾讯优图技术突破,人脸识别准确率跃升至99.80%新高
    近日,腾讯优图实验室在国际知名的人脸识别基准测试LFW中取得重大突破,其在无约束条件下的人脸验证测试中,准确率达到了前所未有的99.80%。这一成就标志着人脸识别技术在复杂环境下的应用迈上了新台阶,为未来的智能安防、身份认证等领域提供了强有力的技术支持。 ... [详细]
  • 本文详细探讨了 Java 中 com.codahale.metrics.servlets.AdminServlet.() 方法的实现与应用,并提供了多个实际项目中的代码示例,帮助开发者更好地理解和使用这一方法。 ... [详细]
  • 如何高效解决Android应用ANR问题?
    本文介绍了ANR(应用程序无响应)的基本概念、常见原因及其解决方案,并提供了实用的工具和技巧帮助开发者快速定位和解决ANR问题,提高应用的用户体验。 ... [详细]
  • 本文探讨了一种创新的RGBD多模态融合技术在人脸识别中的应用,该方法通过深度学习算法有效整合了不同模态数据的共有及独特特征,显著增强了系统的识别精度与鲁棒性。此技术特别适用于需要高安全性和准确性的多模态交互场景,如智能监控和身份验证系统。 ... [详细]
  • 利用TensorFlow.js在网页浏览器中实现高效的人脸识别JavaScript接口
    作者|VincentMühle编译|姗姗出品|人工智能头条(公众号ID:AI_Thinker)【导读】随着深度学习方法的应用,浏览器调用人脸识别技术已经得到了更广泛的应用与提升。在 ... [详细]
  • “编程能力差!90%输在了这点上!”谷歌开发:其实你们都是瞎努力
    这是一个很难让人心平气和的年代。通过CSDN的帖子发现,很多人都想学人工智能,但总担心自己编程能力差,学不会,学不懂 ... [详细]
  • 人脸识别中的损失函数
    本文主要是针对人脸识别中的各种loss进行总结。 背景对于分类问题,我们常用的lossfunction是softmax,表示为:,当然有softmax肯定也有hardmax:,so ... [详细]
  • 机器学习如何看世界 对抗机器学习诠释人工智能和人类思维的不同
    接近,计算,极限,看,世界,对抗,机器,学习,诠释,人工智能,和, ... [详细]
author-avatar
丹丹2502912601
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有