Project Icon

opensphere

统一的高维球面人脸识别训练评估框架

OpenSphere是基于PyTorch的高维球面人脸识别库,提供统一的训练和评估框架。该项目将损失函数与其他组件解耦,支持公平比较不同损失函数。OpenSphere实现了多种先进的损失函数和网络架构,包括SphereFace系列,并集成了丰富的数据集。这一开源平台旨在为相关研究提供可复现的基准环境。

   

arxiv-link project-page made-with-pytorch License: MIT

OpenSphere是一个基于PyTorch的超球面人脸识别库。请查看项目主页

 

简介

OpenSphere为超球面人脸识别研究提供了一个一致和统一的训练和评估框架。该框架将损失函数与其他可变组件(如网络架构、优化器和数据增强)解耦。它可以在流行的基准测试上公平比较超球面人脸识别中的不同损失函数,作为重现已发表结果的透明平台。

目录:- 主要特点 - 设置 - 入门 - 预训练模型 - 可重现结果 - 引用 -

支持的项目

更新

  • 2022.4.28:添加了SphereFace-R、Glint360K和更多预训练模型。
  • 2022.4.22:添加了SphereFace+、MS1M和MS1M上的配置文件。
  • 2022.4.12:添加了SFNet(带BN)和IResNet。
  • 2022.4.9:添加了一些数据集的下载脚本。
  • 2022.4.1:初始提交。

主要特点

设置

  1. 克隆OpenSphere仓库。我们将您克隆OpenSphere的目录称为$OPENSPHERE_ROOT

    git clone https://github.com/ydwen/opensphere.git
    
  2. Anaconda中构建虚拟环境:

    conda env create -f environment.yml
    

入门

在这部分中,我们假设您位于$OPENSPHERE_ROOT目录下。成功完成设置后,您就可以运行以下所有实验了。

  1. 下载并处理数据集
  • 下载训练集(VGGFace2)、验证集(LFWAge-DBCA-LFWCP-LFW)和测试集(IJB-BIJB-C),并将它们分别放在data/traindata/valdata/test中。

  • 为方便起见,我们提供了一个自动下载数据的脚本。只需运行

    bash scripts/dataset_setup.sh
    
  • 如果您需要MS1M训练集,请运行以下额外命令:

    bash scripts/dataset_setup_ms1m.sh
    
  • 要下载其他数据集(如WebFaceGlint360K),请查看scripts文件夹并找到您需要的内容。

  1. 训练模型(详细设置请参阅训练配置文件)

    我们给出了一些在不同数据集上使用不同骨干网络架构进行训练的示例:

  • 要在VGGFace2上使用SFNet-20训练SphereFace2,请运行以下命令(使用2个GPU):

    CUDA_VISIBLE_DEVICES=0,1 python train.py --config config/train/vggface2_sfnet20_sphereface2.yml
    
  • 要在VGGFace2上使用SFNet-20训练SphereFace,请运行以下命令(使用2个GPU):

    CUDA_VISIBLE_DEVICES=0,1 python train.py --config config/train/vggface2_sfnet20_sphereface.yml
    
  • 要在VGGFace2上使用SFNet-20训练SphereFace-R(v2,HFN),请运行以下命令(使用2个GPU):

    CUDA_VISIBLE_DEVICES=0,1 python train.py --config config/train/vggface2_sfnet20_spherefacer.yml
    
  • 要在MS1M上使用SFNet-64(带BN)训练SphereFace,请运行以下命令(使用4个GPU):

    CUDA_VISIBLE_DEVICES=0,1,2,3 python train.py --config config/train/ms1m_sfnet64bn_sphereface.yml
    
  • 要在MS1M上使用IResNet-100训练SphereFace,请运行以下命令(使用4个GPU):

    CUDA_VISIBLE_DEVICES=0,1,2,3 python train.py --config config/train/ms1m_iresnet100_sphereface.yml
    
  • 我们提供了许多用于训练的配置文件,详情请参见此文件夹

  • 训练完模型后,您会在$OPENSPHERE_ROOT下看到一个project文件夹。训练好的模型保存在以任务开始时间命名的文件夹中,例如,2022-04-22 03:17:05的文件夹名为20220422_031705

  • 我们的框架还重新实现了一些其他流行的超球面人脸识别方法,如ArcFace、AM-Softmax(CosFace)和CocoLoss(NormFace)。请查看model/head文件夹和config/papers/SphereFace2/sec31文件夹中的一些示例配置文件。

  1. 测试模型(详细设置请参阅测试配置文件)
  • 要在组合验证数据集上进行测试,只需运行

    CUDA_VISIBLE_DEVICES=0,1 python test.py --config config/test/combined.yml --proj_dir project/##YourFolder##
    
  • 要在IJB-BIJB-C上进行测试,只需运行

    CUDA_VISIBLE_DEVICES=0,1 python test.py --config config/test/ijb.yml --proj_dir project/##YourFolder##
    
  • 要在IJB-B上进行测试,只需运行

    CUDA_VISIBLE_DEVICES=0,1 python test.py --config config/test/ijbb.yml --proj_dir project/##YourFolder##
    
  • 要在IJB-C上进行测试,只需运行

    CUDA_VISIBLE_DEVICES=0,1 python test.py --config config/test/ijbc.yml --proj_dir project/##YourFolder##
    

有关如何使用训练和测试配置文件的更多信息,请参见此处

结果和预训练模型

损失函数网络架构数据集配置文件、训练日志和预训练模型
SphereFaceSFNet-20 (不带BN)VGGFace2Google Drive
SphereFace+SFNet-20 (不带BN)VGGFace2Google Drive
SphereFace-R (HFN,v2)SFNet-20 (不带BN)VGGFace2Google Drive
SphereFace-R (SFN,v2)SFNet-20 (不带BN)VGGFace2待添加
SphereFace2SFNet-20 (不带BN)VGGFace2Google Drive
SphereFaceSFNet-64 (带BN)MS1MGoogle Drive
SphereFace+SFNet-64 (带BN)MS1MGoogle Drive
SphereFace-R (HFN,v2)SFNet-64 (带BN)MS1M待添加
SphereFace2SFNet-64 (带BN)MS1M待添加
SphereFaceIResNet-100MS1MGoogle Drive
SphereFace+IResNet-100MS1MGoogle Drive
SphereFace-R (HFN,v2)IResNet-100MS1MGoogle Drive
SphereFace2IResNet-100MS1M待添加
SphereFaceSFNet-64 (带BN)Glint360K待添加
SphereFace+SFNet-64 (带BN)Glint360K待添加
SphereFace-R (HFN,v2)SFNet-64 (带BN)Glint360K待添加
SphereFace2SFNet-64 (带BN)Glint360K待添加
SphereFaceIResNet-100Glint360K待添加
SphereFace+IResNet-100Glint360K待添加
SphereFace-R (HFN,v2)IResNet-100Glint360K待添加
SphereFace2IResNet-100Glint360K待添加

复现已发表的结果

我们创建了一个额外的文件夹 config/papers,用于提供详细的配置文件并复现已发表论文中的结果。目前我们为以下论文提供了配置文件:

  • SphereFace2: 二元分类是深度人脸识别所需的全部,ICLR 2022

引用

如果您在研究中发现 OpenSphere 有用,请考虑引用:

对于 SphereFace

@article{Liu2022SphereFaceR,
  title={SphereFace Revived: Unifying Hyperspherical Face Recognition},
  author={Liu, Weiyang and Wen, Yandong and Raj, Bhiksha and Singh, Rita and Weller, Adrian},
  journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence},
  year={2022}
}
  
@InProceedings{Liu2017SphereFace,
  title = {SphereFace: Deep Hypersphere Embedding for Face Recognition},
  author = {Liu, Weiyang and Wen, Yandong and Yu, Zhiding and Li, Ming and Raj, Bhiksha and Song, Le},
  booktitle = {CVPR},
  year = {2017}
}

@inproceedings{Liu2016lsoftmax,
  title={Large-Margin Softmax Loss for Convolutional Neural Networks},
  author={Liu, Weiyang and Wen, Yandong and Yu, Zhiding and Yang, Meng},
  booktitle={ICML},
  year={2016}
}

对于 SphereFace+

@InProceedings{Liu2018MHE,
  title={Learning towards Minimum Hyperspherical Energy},
  author={Liu, Weiyang and Lin, Rongmei and Liu, Zhen and Liu, Lixin and Yu, Zhiding and Dai, Bo and Song, Le},
  booktitle={NeurIPS},
  year={2018}
}

对于 SphereFace2

@InProceedings{wen2021sphereface2,
  title = {SphereFace2: Binary Classification is All You Need for Deep Face Recognition},
  author = {Wen, Yandong and Liu, Weiyang and Weller, Adrian and Raj, Bhiksha and Singh, Rita},
  booktitle = {ICLR},
  year = {2022}
}

联系方式

Yandong WenWeiyang Liu

问题也可以作为 issue 提交到代码仓库。我们很乐意回答它们。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号