京东AI:戴口罩人脸识别pytorch开源库

项目介绍

该项目是JDAI开源的基于PyTorch的人脸识别工具箱,提供了一个包括目前主流backbone和head的的training module,一个标准化的人脸识别evaluation module,一个简单但是功能齐全的SDK,以及一系列的addition module。

项目地址:【 https://github.com/JDAI-CV/FaceX-Zoo 】

论文地址:【 https://arxiv.org/pdf/2101.04407.pdf 】

目前出色的开源人脸识别项目已有不少,例如InsightFace,face.evoLVe等。

本文主要分析该项目的优势和特点,以清晰的展示为什么已有这么多优秀开源项目的前提下,仍然需要FaceX-Zoo。

优势和特点

支持戴口罩人脸识别模型开发

由于新冠肺炎的影响,人们慢慢习惯于戴口罩出行,对戴着口罩的人脸进行识别给人脸识别算法带来了新的挑战。为了开发一个戴口罩人脸识别模型,需要三方面的前置条件:

(1)戴口罩人脸识别模型训练数据;

(2)戴口罩人脸识别模型测试benchmark;

(3)戴口罩人脸识别模型训练算法;

本项目中提供了所有上述前置条件。

问题描述: 如下图所示,左边为不戴口罩的底库人脸,右边为戴口罩的人脸,戴口罩人脸识别目的在于比对一张戴口罩人脸和不戴口罩底库人脸是否为同一个人。

京东AI:戴口罩人脸识别pytorch开源库_第1张图片

  1. 戴口罩人脸识别模型训练数据 由问题描述可知戴口罩人脸识别模型的训练需要同时具有一个人戴口罩的人脸图片和不戴口罩的人脸图片。这样的数据采集成本是非常巨大的,甚至是不现实的。该项目设计了基于3D的虚拟口罩添加方式FMA-3D,该方法可鲁棒的在已有不戴口罩人脸数据上添加口罩,从而得到戴口罩人脸训练数据。相关算法原理如下图所示。

     京东AI:戴口罩人脸识别pytorch开源库_第2张图片

  2. 相比目前已有的众多基于2D的虚拟口罩添加方式,基于3D的添加方式能对大姿态等极端条件表现得更加鲁棒;相比一些基于GAN的虚拟口罩添加方法,该方法能几乎不损失原人脸的真实性。一些添加的样本如下图所示,第一行为原图,第二行为添加虚拟口罩后的图。 京东AI:戴口罩人脸识别pytorch开源库_第3张图片

  3. 戴口罩人脸识别测试benchmark 该项目基于MegaFace设计了大规模戴口罩人脸识别模型测试协议MegaFace-Mask。即将MegaFace测试中的Probe进行虚拟口罩添加并和百万人脸底库进行比对。值得一提的是,所有实现都基于Python实现,通过修改简单的配置即可进行测试。

  4. 戴口罩人脸识别模型训练算法 该项目对几种戴口罩人脸识别模型基准算法进行了比对,包括:(1)直接在普通数据上训练得到的模型model1;(2)在上半部分(眼部及以上)人脸数据上训练得到的模型model2;(3)在普通数据+添加虚拟口罩数据上训练得到的model3;(4)融合model2和model3得到的模型model4。四个模型精度对比如下图所示。 

    京东AI:戴口罩人脸识别pytorch开源库_第4张图片

浅层人脸识别解决方案

浅层数据即每个类(id)只包含极少数图片的数据,最典型的情况为每个类只包含两张图片,如下图所示。该类型数据在实际应用场景中极为常见,对该类数据进行传统的分类训练精度往往很差。

 京东AI:戴口罩人脸识别pytorch开源库_第5张图片 

传统对该类型数据的训练方法往往是基于hard example mining的contrasive loss和triplet loss等,但是这些方法往往比较trick,难以调整。近年来self-supervised learning在图片分类领域非常火热,该项目将其思想应用到浅层人脸识别中,取得了很不错的效果,相关分析在ECCV 2020论文 Semi-Siamese Training for Shallow Face Learning 中。算法框架如下图所示。 

京东AI:戴口罩人脸识别pytorch开源库_第6张图片

该项目将semi-siamese training作为与传统训练模式(conventional training)对应的一种新的训练模式。并提供了端到端的训练方案,只需在项目中进行简单配置即可对浅层数据进行训练。在浅层数据上,semi-siamese training与conventional training方式精度对比如下表所示。 

统一的测试协议

人脸识别中有许多测试benchmark,但其中大多数都是基于传统LFW和MegaFace的测试协议。不同benchmark的差异主要表现在测试数据和选取的测试pair上。该项目将这些benchmark进行了整合,只需要通过简单的修改即可在不同的benchmark上进行测试。此外项目还release了LFW和MegaFace的检测框和106点人脸关键点,这些检测框对原始官方release的检测框做了修正(只修正检测框不准的问题,对于一些官方给错检测框id的情况,为了保持测试的一致性,并未做修正)。测试模块的设计如下图所示。目前包含的测试benchmark包括:LFW, CPLFW, CALFW, RFW, AgeDB30, MegaFace 和MegaFace-mask,值得一提的是项目中将原始.bin的MegaFace用Python实现了一遍,测试精度与原始.bin版几乎完全一致。 

京东AI:戴口罩人脸识别pytorch开源库_第7张图片

模块化设计并包含大多主流算法

该项目大多数模块都采用面向对象的方式进行设计,包括了state-of-the-art 的backbone和head。目前项目中包含的backbone和head如下所示。 

京东AI:戴口罩人脸识别pytorch开源库_第8张图片京东AI:戴口罩人脸识别pytorch开源库_第9张图片

总结

该项目首先包括了自己差异化的一些东西,比如上述的戴口罩人脸识别、浅层人脸识别以及统一测试协议等解决方案。也尽可能的包含了目前state-of-the-art的算法,甚至还包含一个用来直观验证算法效果的python版SDK。可以说是一个既有明确优势特点也功能较为齐全的项目。作者也将从更多的方面去进一步完善项目,主要完善的方向为(1)更多的additional modules,比如人脸模型小型化,人脸解析等;(2)更多的state-of-the-art算法;(3)更高效的训练,包括混合精度训练、分布式训练等。

文末福利

各位猿们,还在为记不住API发愁吗,哈哈哈,最近发现了国外大师整理了一份Python代码速查表和Pycharm快捷键sheet,火爆国外,这里分享给大家。

这个是一份Python代码速查表

下面的宝藏图片是2张(windows && Mac)高清的PyCharm快捷键一览图

怎样获取呢?可以添加我们的AI派团队的Beyonce小姐姐

一定要备注【高清图】

????????????????????

➕我们的Beyonce小姐姐微信要记得备注【高清图】

来都来了,喜欢的话就请分享点赞在看三连再走吧~~~

你可能感兴趣的:(人脸识别,算法,人工智能,python,编程语言)