AdaFace:用于人脸识别的自适应质量边界的官方GitHub仓库。 该论文(https://arxiv.org/abs/2204.00964)在CVPR 2022会议上进行了口头报告。
摘要:低质量人脸数据集的识别具有挑战性,因为面部特征被遮挡和降级。基于边界的损失函数的进展提高了嵌入空间中人脸的可区分性。此外,先前的研究探讨了自适应损失的效果,以赋予错误分类(困难)样本更多的重要性。在本工作中,我们在损失函数中引入了另一个自适应方面,即图像质量。我们认为,强调错误分类样本的策略应根据其图像质量进行调整。具体来说,容易和困难样本的相对重要性应基于样本的图像质量。我们提出了一种新的损失函数,根据样本的图像质量强调不同难度的样本。我们的方法通过用特征范数近似图像质量,以自适应边界函数的形式实现这一点。大量实验表明,我们的方法AdaFace在四个数据集(IJB-B、IJC-C、IJB-S和TinyFace)上改进了人脸识别性能,超越了现有最先进的技术(SoTA)。
<img src="https://yellow-cdn.veclightyear.com/835a84d5/a185a690-c8d7-4354-a30b-1216215f52a2.png"/>@inproceedings{kim2022adaface, title={AdaFace: Quality Adaptive Margin for Face Recognition}, author={Kim, Minchul and Jain, Anil K and Liu, Xiaoming}, booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition}, year={2022} }
KP-RPE: KeyPoint Relative Position Encoding for Face Recognition 论文 视频 代码,用于面部特征点辅助的人脸识别。简而言之:使用面部特征点进行对齐鲁棒性的人脸识别。(在TinyFace、IJB-S上达到SoTA)。Cluster and Aggregate (CAFace, NeurIPS2022) 链接,用于基于视频的人脸识别。简而言之:长视频探针的人脸识别。
该演示展示了AdaFace和ArcFace在实时视频上的比较。
为了展示模型在低质量图像上的表现,我们展示了原始、模糊+和模糊++设置,其中
模糊++表示heavily模糊。
带有颜色框的数字显示了实时图像与最接近匹配的图库图像之间的余弦相似度。
底部的统计数据显示了模糊++设置下真阳性匹配的累计计数。
AdaFace具有较高的真阳性率。
它还表明它不太容易出现误报(红色)错误,这在ArcFace中有时会观察到。
import torch from head import AdaFace # 典型的512维输入 B = 5 embbedings = torch.randn((B, 512)).float() # 潜在编码 norms = torch.norm(embbedings, 2, -1, keepdim=True) normalized_embedding = embbedings / norms labels = torch.randint(70722, (B,)) # 实例化AdaFace adaface = AdaFace(embedding_size=512, classnum=70722, m=0.4, h=0.333, s=64., t_alpha=0.01,) # 计算损失 cosine_with_margin = adaface(normalized_embedding, norms, labels) loss = torch.nn.CrossEntropyLoss()(cosine_with_margin, labels)
conda create --name adaface pytorch==1.8.0 torchvision==0.9.0 cudatoolkit=10.2 -c pytorch
conda activate adaface
conda install scikit-image matplotlib pandas scikit-learn
pip install -r requirements.txt
BGR颜色通道,如cv2包中所使用的。InsightFace模型假设RGB颜色通道,如PIL包中所使用的。因此,我们所有的评估代码都使用cv2包的BGR颜色通道。请注意,我们的预训练模型以BGR颜色通道作为输入。 这与InsightFace发布的使用RGB颜色通道的模型不同。
| 架构 | 数据集 | 链接 |
|---|---|---|
| R18 | CASIA-WebFace | 谷歌云盘 |
| R18 | VGGFace2 | 谷歌云盘 |
| R18 | WebFace4M | 谷歌云盘 |
| R50 | CASIA-WebFace | 谷歌云盘 |
| R50 | WebFace4M | 谷歌 云盘 |
| R50 | MS1MV2 | 谷歌云盘 |
| R100 | MS1MV2 | 谷歌云盘 |
| R100 | MS1MV3 | 谷歌云盘 |
| R100 | WebFace4M | 谷歌云盘 |
| R100 | WebFace12M | 谷歌云盘 |
AdaFace接受经过预处理的输入图像。 预处理步骤包括:
我们提供了执行预处理步骤的代码。 要使用预训练的AdaFace模型进行推理,请按以下步骤操作:
下载预训练的AdaFace模型并将其放置在pretrained/目录中
要在以下3张图像上使用预训练的AdaFace,请运行
python inference.py
| 图像1 | 图像2 | 图像3 |
|---|---|---|
| <img src="https://yellow-cdn.veclightyear.com/835a84d5/66997ed7-a2dd-4a76-b6b9-97970d60a7cb.jpeg" width="215" /> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/f9f09db7-72fd-48c5-b422-28166f7f7ff5.jpeg" width="130" /> | <img src="https://yellow-cdn.veclightyear.com/835a84d5/a3e8418f-6652-46c7-a189-bb1e849e3af0.jpeg" width="191" /> |
相似度得分结果应为:
tensor([[ 1.0000, 0.7334, -0.0655],
[ 0.7334, 1.0000, -0.0277],
[-0.0655, -0.0277, 1.0000]], grad_fn=<MmBackward0>)
简而言之,推理代码如下所示:
from face_alignment import align from inference import load_pretrained_model, to_input model = load_pretrained_model('ir_50') path = '图像路径' aligned_rgb_img = align.get_aligned_face(path) bgr_input = to_input(aligned_rgb_img) feature, _ = model(bgr_input)
bgr_input,这是一个112x112x3大小的torch张量,具有BGR颜色通道,其值使用mean=0.5和std=0.5进行归一化,如to_input()所示。要使用预训练模型在5个高质量图像验证集上进行评估,请参考:
bash validation_hq/eval_5valsets.sh
| 架构 | 数据集 | 方法 | LFW | CFPFP | CPLFW | CALFW | AGEDB | 平均 |
|---|---|---|---|---|---|---|---|---|
| R18 | CASIA-WebFace | AdaFace | 0.9913 | 0.9259 | 0.8700 | 0.9265 | 0.9272 | 0.9282 |
| R18 | VGGFace2 | AdaFace | 0.9947 | 0.9713 | 0.9172 | 0.9390 | 0.9407 | 0.9526 |
| R18 | WebFace4M | AdaFace | 0.9953 | 0.9726 | 0.9228 | 0.9552 | 0.9647 | 0.9621 |
| R50 | CASIA-WebFace | AdaFace | 0.9942 | 0.9641 | 0.8997 | 0.9323 | 0.9438 | 0.9468 |
| R50 | MS1MV2 | AdaFace | 0.9982 | 0.9786 | 0.9283 | 0.9607 | 0.9785 | 0.9688 |
| R50 | WebFace4M | AdaFace | 0.9978 | 0.9897 | 0.9417 | 0.9598 | 0.9778 | 0.9734 |
| R100 | MS1MV2 | AdaFace | 0.9982 | 0.9849 | 0.9353 | 0.9608 | 0.9805 | 0.9719 |
| R100 | MS1MV3 | AdaFace | 0.9978 | 0.9891 | 0.9393 | 0.9602 | 0.9817 | 0.9736 |
| R100 | WebFace4M | AdaFace | 0.9980 | 0.9917 | 0.9463 | 0.9605 | 0.9790 | 0.9751 |
| R100 | WebFace12M | AdaFace | 0.9982 | 0.9926 | 0.9457 | 0.9612 | 0.9800 | 0.9755 |
| 架构 | 数据集 | 方法 | LFW | CFPFP | CPLFW | CALFW | AGEDB | 平均 |
|---|---|---|---|---|---|---|---|---|
| R50 | CASIA-WebFace | AdaFace | 0.9942 | 0.9641 | 0.8997 | 0.9323 | 0.9438 | 0.9468 |
| R50 | CASIA-WebFace | (ArcFace) | 0.9945 | 0.9521 | NA | NA | 0.9490 | NA |
| R100 | MS1MV2 | AdaFace | 0.9982 | 0.9849 | 0.9353 | 0.9608 | 0.9805 | 0.9719 |
| R100 | MS1MV2 | (ArcFace) | 0.9982 | NA | 0.9208 | 0.9545 | NA | NA |
对于IJBB和IJBC验证,请参考:
cd validation_mixed
bash eval_ijb.sh
| 架构 | 数据集 | 方法 | IJBB TAR@FAR=0.01% | IJBC TAR@FAR=0.01% |
|---|---|---|---|---|
| R18 | VGG2 | AdaFace | 90.67 | 92.95 |
| R18 | WebFace4M | AdaFace | 93.03 | 94.99 |
| R50 | WebFace4M | AdaFace | 95.44 | 96.98 |
| R50 | MS1MV2 | AdaFace | 94.82 | 96.27 |
| R100 | MS1MV2 | AdaFace | 95.67 | 96.89 |
| R100 | MS1MV3 | AdaFace | 95.84 | 97.09 |
| R100 | WebFace4M | AdaFace | 96.03 | 97.39 |
| R100 | WebFace12M | AdaFace | 96.41 | 97.66 |
| 架构 | 数据集 | 方法 | 会议 | IJBB TAR@FAR=0.01% | IJBC TAR@FAR=0.01% |
|---|---|---|---|---|---|
| R100 | MS1MV2 | AdaFace | CVPR22 | 95.67 | 96.89 |
| R100 | MS1MV2 | (MagFace) | CVPR21 | 94.51 | 95.97 |
| R100 | MS1MV2 | (SCF-ArcFace) | CVPR21 | 94.74 | 96.09 |
| R100 | MS1MV2 | (BroadFace) | ECCV20 | 94.97 | 96.38 |
| R100 | MS1MV2 | (CurricularFace) | CVPR20 | 94.80 | 96.10 |
| R100 | MS1MV2 | (MV-Softmax) | AAAI20 | 93.60 | 95.20 |
| R100 | MS1MV2 | (AFRN) | ICCV19 | 88.50 | 93.00 |
| R100 | MS1MV2 | (ArcFace) | CVPR19 | 94.25 | 96.03 |
| R100 | MS1MV2 | (CosFace) | CVPR18 | 94.80 | 96.37 |
| 架构 | 数据集 | 方法 | IJBC TAR@FAR=0.01% |
|---|---|---|---|
| R100 | WebFace4M | AdaFace | 97.39 |
| R100 | WebFace4M | (CosFace) | 96.86 |
| R100 | WebFace4M | (ArcFace) | 96.77 |
| R100 | WebFace4M | (CurricularFace) | 97.02 |
| 架构 | 数据集 | 方法 | IJBC TAR@FAR=0.01% |
|---|---|---|---|
| R100 | WebFace12M | AdaFace | 97.66 |
| R100 | WebFace12M | (CosFace) | 97.41 |
| R100 | WebFace12M | (ArcFace) | 97.47 |
| R100 | WebFace12M | (CurricularFace) | 97.51 |
对于IJBB、IJBC验证,请参考
cd validation_lq
python validate_IJB_S.py
| 监控到单张 | 监控到簿册 | 监控到监控 | 小脸 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 架构 | 方法 | 数据集 | 排名1 | 排名5 | 1% | 排名1 | 排名5 | 1% | 排名1 | 排名5 | 1% | 排 名1 | 排名5 |
| R100 | AdaFace | WebFace12M | 71.35 | 76.24 | 59.39 | 71.93 | 76.56 | 59.37 | 36.71 | 50.03 | 4.62 | 72.29 | 74.97 |
| R100 | AdaFace | WebFace4M | 70.42 | 75.29 | 58.27 | 70.93 | 76.11 | 58.02 | 35.05 | 48.22 | 4.96 | 72.02 | 74.52 |
| R100 | AdaFace | MS1MV2 | 65.26 | 70.53 | 51.66 | 66.27 | 71.61 | 50.87 | 23.74 | 37.47 | 2.50 | 68.21 | 71.54 |
| R100 | (CurricularFace) | MS1MV2 | 62.43 | 68.68 | 47.68 | 63.81 | 69.74 | 47.57 | 19.54 | 32.80 | 2.53 | 63.68 | 67.65 |
| R100 | (URL) | MS1MV2 | 58.94 | 65.48 | 37.57 | 61.98 | 67.12 | 42.73 | NA | NA | NA | 63.89 | 68.67 |
| R100 | (ArcFace) | MS1MV2 | 57.35 | 64.42 | 41.85 | 57.36 | 64.95 | 41.23 | NA | NA | NA | NA | NA |
| R100 | (PFE) | MS1MV2 | 50.16 | 58.33 | 31.88 | 53.60 | 61.75 | 35.99 | 9.20 | 20.82 | 0.84 | NA | NA |


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。


企业专属的AI法律顾问
iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM) 、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。


稳定高效的流量提升解决方案,助力品牌曝光
稳定高效的流量提升解决方案,助力品牌曝光


最新版Sora2模型免费使用,一键生成无水印视频
最新版Sora2模型免费使用,一键生成无水印视频


实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多 国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。


选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具 备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


最强AI数据分析助手
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。


像人一样思考的AI智能体
imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号