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编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多 元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功 能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类 型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号