计算机视觉研究院专栏

作者:Edison_G

近年来,基于深度学习的人脸识别已经取得了显著的进展。然而,深度人脸识别的实际模型制作和进一步研究却非常需要相应的公众支持。

长按扫描二维码关注我们

一、简要

近年来,基于深度学习的人脸识别已经取得了显著的进展。然而,深度人脸识别的实际模型制作和进一步研究却非常需要相应的公众支持。

例如,人脸表示网络的产生取消了一个模块化的训练方案,以考虑各种最先进的主干网络和训练监督对现实人脸识别需求的适当选择;对于性能分析和比较,在多个基准上使用一堆模型的标准和自动评估也是一个理想的工具;此外,欢迎以整体pipeline的形式部署人脸识别的公共基础。此外,还有一些新出现的挑战,例如最近全球COVID-19新冠造成的人脸遮挡识别,这在实际应用中引起了越来越多的关注。一个可行的解决方案是构建一个易于使用的统一框架来满足上述需求。

为此,有研究者引入了一种新的开源框架,名为FaceX-Zoo,它面向人脸识别的研究-开发社区。恢复高度模块化和可伸缩的设计,FaceX-Zoo提供了一个训练模块与各种监督头和主干的最先进人脸识别,以及一个在大多数流行的基准通过编辑一个简单的配置来实现标准化的测试模块。此外,还提供了一个简单但功能齐全的Face SDK来进行训练模型的验证和主要应用。没有包括尽可能多的先前的技术,而是使Facex-Zoo能够随着人脸相关领域的开发而轻松地升级和扩展。

二、新框架

FaceX-Zoo的整体体系结构详见上图。整个项目主要由四个部分组成:训练模块、测试模块、附加模块和Face SDK组成,其中前两个模块是本项目的核心部分。训练和评估模块中包含了几个组件,包括Pre-Processing, Training Mode, Backbone, Supervisory Head和Test Protocol。我们将详细说明如下。

Pre-Processing。此模块在将图像发送到网络之前,完成对图像的基本转换。对于训练实现了常用的操作,如调整大小、规范化、随机裁剪、随机翻转、随机旋转等。可以根据各种需求灵活地添加定制的操作。对于测试,只使用调整大小和标准化。同样,测试增强,如五种crops,水平翻转等,也可以很容易地添加到新框架中。

Training Mode。传统的人脸识别训练模块作为基线训练。具体地,通过DataLoader调度训练输入,然后将输入发送到主干网络进行学习,最后计算一个准则作为向后更新的训练损失。此外,还考虑了人脸识别的实际情况,即用浅层分布式数据训练网络。因此,整合了最近的训练策略,以促进对浅层人脸数据的训练。

Backbone。主干网络用于提取人脸图像的特征。在FaceX-Zoo中提供了一系列最先进的主干网络,如下所示。此外,在PyTorch的支持下,还可以轻松定制任何其他体系结构选择,只要修改配置文件并添加体系结构定义文件。

  • MobileFaceNet: An efficient network for the appli- caiton on mobile devices.

  • ResNet: A series of classic architectures for gen- eral vision tasks.

  • SE-ResNet: ResNet equipped with SE blocks that recalibrates the channel wise feature responses.

  • HRNet: A network for deep high-resolution rep- resentation learning.

  • EfficientNet: A bunch of architectures that scale among depth, width and resolution.

  • GhostNet : A model aiming at generating more feature maps from cheap operations.

  • AttentionNet: A network built by stacking atten- tion modules to learn attention-aware features.

  • TF-NAS: A series of architectures searched by NAS with the latency constraint.

Supervisory Head。为了学习人脸识别的鉴别特征,预测的logits 通常会通过一些特定的操作来处理,如normalization, scaling, adding margin等。在FaceX-Zoo中实现了一系列softmax- style的损失,如下:

  • AM-Softmax: An additive margin loss that adds a cosine margin penalty to the target logit.

  • ArcFace: An additive angular margin loss that adds a margin penalty to the target angle.

  • AdaCos: A cosine-based softmax loss that is hyperparameter-free and adaptive scaling.

  • AdaM-Softmax: An adaptive margin loss that can adjust the margins for different classes adaptively.

  • CircleLoss: A unified formula that learns with class-level labels and pair-wise labels.

  • CurricularFace: An loss function that adaptively adjusts the importance of easy and hard samples during different training stages.

  • MV-Softmax: A loss function that adaptively em- phasizes the mis-classified feature vectors to guide the discriminative feature learning.

  • NPCFace:A loss function that emphasizes the training on both the negative and positive hard cases

Test Protocol。有各种基准来测量人脸识别模型的准确性。他们中的许多人关注特定的人脸识别挑战,比如cross age, cross pose, and cross race。其中,常用的测试主要基于LFW和MegaFace。将这些协议与简单的使用和清晰的指令集成到FaceX-Zoo中,人们可以通过简单的配置在单个或多个基准测试上轻松地测试他们的模型。此外,通过添加测试数据和分析测试对,可以方便地扩展额外的测试协议。值得注意的是,还提供了一个基于MegaFace的蒙面人脸识别基准。

  • LFW: It contains 13,233 web-collected images of 5,749 identities with the pose, expression and illu- mination variations. We report the mean accuracy of 10-fold cross validation on this classic benchmark.

  • CPLFW: It contains 11,652 images of 3,930 iden- tities, which focuses on cross-pose face verification. Following the official protocol, the mean accuracy of 10-fold cross validation is adopted.

  • CALFW: It contains 12,174 images of 4,025 identities, aiming at cross-age face verification. The mean accuracy of 10-fold cross validation is adopted.

  • AgeDB30: It contains 12,240 images of 440 iden- tities, where each test pair has an age gap of 30 years. We report the mean accuracy of 10-fold cross valida- tion.

  • RFW: It contains 40,607 images of 11,430 identi- ties, which is proposed to measure the potential racial bias in face recognition. There are four test subsets in RFW, named African, Asian, Caucasian and Indian, and we report the mean accuracy of each subset, re- spectively.

  • MegaFace: It contains 80 probe identities with 1 million gallery distractors, aiming at evaluating large- scale face recognition performance. We report the Rank-K identification accuracy on MegaFace.

  • MegaFace-Mask: It contains the same probe identities and gallery distractors with MegaFace, while each probe image is added by a virtual mask. This protocol is designed to evaluate large-scale masked face recog- nition performance.

三、设计细节

训练模块

评估模块

Face SDK

四、实践

在图像上佩戴口罩。mask template模板可以从基于输入的遮挡人脸的各种选择中进行采样。

上面:原始的无面具的人脸图像。下面:由FMA-3D合成的戴口罩人脸图像。

计算机视觉研究院学习群等你加入!

计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

扫码关注

计算机视觉研究院

公众号ID|ComputerVisionGzq

学习群|扫码在主页获取加入方式

源代码|回复“FaceX”获取源码

FaceX-Zoo | 使用PyTorch Toolbox进行人脸识别(附源代码)相关推荐

  1. 人脸识别管理系统php源码,人脸识别系统源代码

    [实例简介] 人脸识别系统源代码,包含有.exe可执行文件,可以运行 . [实例截图] [核心代码] 13cb2a86b907 └── 第13章 人脸检测源码FaceDetection ├── Deb ...

  2. 港中文开源基于PyTorch的多任务人脸识别框架

    点击我爱计算机视觉标星,更快获取CVML新技术 今天跟大家分享一款新晋开源的出自香港中文大学MMLab实验室的人脸识别库,其最大特点是支持人脸多任务训练,方便使用PyTorch进行人脸识别的训练.评估 ...

  3. 使用PyTorch+OpenCV进行人脸识别(附代码演练)

    人脸识别是一种用于从图像或视频中识别人脸的系统.它在许多应用程序和垂直行业中很有用.如今,我们看到这项技术可帮助新闻机构在重大事件报道中识别名人,为移动应用程序提供二次身份验证,为媒体和娱乐公司自动索 ...

  4. 用Python进行人脸识别[包括源代码]

    Python可以从图像或视频中检测和识别你的脸. 人脸检测与识别是计算机视觉领域的研究热点之一. 人脸识别的应用包括人脸解锁.安全防护等,医生和医务人员利用人脸识别来获取病历和病史,更好地诊断疾病. ...

  5. 【人脸识别】基于模板匹配实现人脸识别附matlab代码和GUI界面

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  6. python人脸识别门禁系统毕设_开源|手把手教你用Python进行人脸识别(附源代码)...

    原标题:开源|手把手教你用Python进行人脸识别(附源代码) 全球人工智能 来源:Github 翻译:黄玮 想要了解目前世界上最简洁的人脸识别库吗?现在小编带大家来学习使用Python语言或命令行进 ...

  7. Mac/Linux安装人脸识别常用库(tensorflow、pytorch、dlib、face_recognition、opencv、CMake、gcc/g++)————所有环境一次性配置好

    文章目录 0 背景与准备 1 tensorflow环境[数值计算的开源软件库] 2 pytorch环境[数值计算的开源软件库] 3 face_recognition[基于dlib的人脸识别库] 4 o ...

  8. 人脸识别SeetaFace2原理与代码详解

    人脸识别SeetaFace2原理与代码详解 前言 一.人脸识别步骤 二.SeetaFace2基本介绍 三.seetaFace2人脸注册.识别代码详解 3.1 人脸注册 3.1.1 人脸检测 3.1.2 ...

  9. 【项目实战课】基于Pytorch的MTCNN与Centerloss人脸识别实战

    欢迎大家来到我们的项目实战课,本期内容是<基于Pytorch的MTCNN与Centerloss人脸识别实战>. 所谓项目实战课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个 ...

最新文章

  1. R语言为dataframe添加新的数据列(add new columns):使用R原生方法、data.table、dplyr等方案
  2. 最大元最小元上确界_托盘天平最大秤量和最小秤量
  3. 数据库迁移用到的命令
  4. 开源RTMP组件EasyPusher-Android+EasyDarwin实现APP推流给RTSP流媒体服务器
  5. 科大星云诗社动态20210118
  6. Javascript中onmouseout与onmouseleave
  7. 客户端页面不更新CSS样式或JS脚本的方法 (2018-08-17 17:33)
  8. 格密码教程(二):格的基本定义,格基转换
  9. flex3 接受外部参数
  10. 解析大型.NET ERP系统 20条数据库设计规范
  11. Android开发笔记(五十六)摄像头拍照
  12. Typora优化,Typora结合PicGo,让工作更轻松【图文教程】
  13. PHP基础知识点汇总(三)
  14. Excel导入SQLserver数据长度过长导入失败
  15. imresize函数进行图像缩放及利用imrotate进行图像旋转
  16. 台式计算机如何自动开关机,台式机怎么设置自动开关机
  17. 如何在Excel中少犯二(I)
  18. centos 基础镜像中安装失败,提示:Error: Failed to download metadata for repo ‘AppStream‘: Cannot prepare internal
  19. STM32——理解时钟系统
  20. linux 囊括所有安装

热门文章

  1. 智能运维 | 我们不一样!告诉你百度云如何做智能流量异常检测
  2. 2-nginx-静态-防盗-跨域
  3. 29岁vivo员工吐槽:整理出这份8万字Java性能优化实战解析
  4. ajax学员信息php,PHP开源AJAX框架
  5. 将模板内容存储到数据库,通过URL访问报表
  6. 永福读《天才在左,疯子在右》
  7. C语言经典编程(浙大版C语言第三版)详解
  8. Java处理MP3资料
  9. python写的2048游戏,源代码,pygame
  10. 3D,点云分割,不要割个寂寞