团队项目-1





基于整个项目功能的初步sql表结构
人脸识别算法:ArcFace人脸识别模型,来自通义实验室
ArcFace 模型介绍
稳定调用及效果更好的API,详见视觉开放智能平台:人脸比对1:1、口罩人脸比对1:1、人脸搜索1、公众人物识别、明星识别。
人脸识别模型ArcFace, 推荐使用An Efficient Training Approach for Very Large Scale Face Recognition (代码地址)框架快速训练。
模型描述
ArcFace为近几年人脸识别领域的代表性工作,被CVPR2019录取(论文地址), 代码地址),该方法主要贡献是提出了ArcFace loss, 在xix_ix i和WjiW_{ji}W ji之间的θ上加上角度间隔m(注意是加在了角θ上),以加法的方式惩罚深度特征与其相应权重之间的角度,从而同时增强了类内紧度和类间差异。由于提出的加性角度间隔(additive angular margin)惩罚与测地线距离间隔(geodesic distance margin)惩罚在归一化的超球面上相等,因此作者将该方法命名为ArcFace。此外作者在之后的几年内持续优化该算法,使其一直保持在sota性能。
模型结构
模型结构
模型使用方式和使用范围
本模型可以检测输入图片中人脸的特征
代码范例
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from modelscope.outputs import OutputKeys
import numpy as np
arc_face_recognition_func = pipeline(Tasks.face_recognition, 'iic/cv_ir50_face-recognition_arcface')
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'
emb1 = arc_face_recognition_func(img1)[OutputKeys.IMG_EMBEDDING]
emb2 = arc_face_recognition_func(img2)[OutputKeys.IMG_EMBEDDING]
sim = np.dot(emb1[0], emb2[0])
print(f'Face cosine similarity={sim:.3f}, img1:{img1} img2:{img2}')
使用方式
推理:输入经过对齐的人脸图片(112x112),返回人脸特征向量(512维),为便于体验,集成了人脸检测和关键点模型RetinaFace,输入两张图片,各自进行人脸检测选择最大脸并对齐后提取特征,然后返回相似度比分
目标场景
人脸识别应用广泛,如考勤,通行,人身核验,智慧安防等场景
模型局限性及可能偏差
训练数据仅包括ms1mv3数据集,模型鲁棒性可能有所欠缺。
当前版本在python 3.7环境测试通过,其他环境下可用性待测试
余弦相似度通过计算两个非零向量之间的夹角余弦值来表示它们的相似程度。其取值范围为[-1, 1]:
1:完全相同(夹角为0°)
0:正交(夹角为90°,无关)
-1:完全相反(夹角为180°)
通过人脸识别算法返回的余弦相似度,基于不同算法给出的阈值范围进行识别

浙公网安备 33010602011771号