稳定调用及效果更好的API,详见视觉开放智能平台:人脸比对1:1、口罩人脸比对1:1、人脸搜索1:N、公众人物识别、明星识别。
人脸识别OOD模型RTS, 论文详见:Improving Training and Inference of Face Recognition Models via Random Temperature Scaling。
针对人脸识别系统中经常遇到的低质量、噪声、甚至不同数据分布(out of distribution, OOD)的数据带来的问题,用基于概率的视角分析损失函数中温度调节参数和分类不确定度的内在关系,同时该不确定度服从一个先验分布。从而可以稳定训练,以及在部署时提供一个对不确定度的度量分值,帮助建立更鲁棒的人脸识别系统。
主要贡献点如下:
(1)基于概率视角,揭示了损失函数中温度调节参数和分类不确定度的内在关系,通过提出的Random Temperature Scaling (RTS) 来训练更可靠的人脸识别模型。
(2)在训练阶段,RTS可以调节干净数据和噪声数据对训练的影响以得到更稳定的训练过程和更好的识别效果。
(3)在测试阶段,RTS可以提供一个不需要通过额外数据训练的不确定度分值,来分辨出不确定的、低质量的以及不同数据分布(out of distribution, OOD)的样本,以建立更鲁棒的人脸识别系统。
本模型可以检测输入图片中人脸的512维特征和对应的质量分。
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from modelscope.outputs import OutputKeys
import numpy as np
rts_face_recognition_func = pipeline(Tasks.face_recognition, 'damo/cv_ir_face-recognition-ood_rts')
img1 = 'https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/face_recognition_1.png'
img2 = 'https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/face_recognition_2.png'
result1 = rts_face_recognition_func(img1)
result2 = rts_face_recognition_func(img2)
emb1 = result1[OutputKeys.IMG_EMBEDDING]
score1 = result1[OutputKeys.SCORES][0][0]
emb2 = result2[OutputKeys.IMG_EMBEDDING]
score2 = result2[OutputKeys.SCORES][0][0]
sim = np.dot(emb1[0], emb2[0])
print(f'Cos similarity={sim:.3f}, img1:{img1} img2:{img2}')
print(f'OOD score: img1:{score1:.3f} img2:{score2:.3f}')
测试时主要的预处理如下:
以下是ModelScope上人脸相关模型:
序号 | 模型名称 |
---|---|
1 | RetinaFace人脸检测模型 |
2 | MogFace人脸检测模型-large |
3 | TinyMog人脸检测器-tiny |
4 | ULFD人脸检测模型-tiny |
5 | Mtcnn人脸检测关键点模型 |
6 | ULFD人脸检测模型-tiny |
序号 | 模型名称 |
---|---|
1 | 口罩人脸识别模型FaceMask |
2 | 口罩人脸识别模型FRFM-large |
3 | IR人脸识别模型FRIR |
4 | ArcFace人脸识别模型 |
5 | IR人脸识别模型FRIR |
序号 | 模型名称 |
---|---|
1 | 人脸活体检测模型-IR |
2 | 人脸活体检测模型-RGB |
3 | 静默人脸活体检测模型-炫彩 |
序号 | 模型名称 |
---|---|
1 | FLCM人脸关键点置信度模型 |
序号 | 模型名称 |
---|---|
1 | 人脸表情识别模型FER |
2 | 人脸属性识别模型FairFace |
本模型及代码来自达摩院自研技术
如果你觉得这个该模型对有所帮助,请考虑引用下面的相关的论文: