首页 > 其他分享 >基于 AdaFace 提供适合低质量人脸识别的人脸特征向量输出服务

基于 AdaFace 提供适合低质量人脸识别的人脸特征向量输出服务

时间:2023-10-18 13:04:55浏览次数:28  
标签:人脸识别 特征向量 AdaFace 低质量 -- github 人脸 https adaface


写在前面


  • 工作原因,简单整理
  • 理解不足小伙伴帮忙指正

对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》


简单介绍

通过 AdaFace 提取人脸特征向量服务,项目来自:

https://github.com/mk-minchul/AdaFace

拿到人脸特征向量可以用于获取人脸相似度,通过两个人脸向量的余弦相似度得分

AdaFace 简单介绍

低质量人脸数据集中的识别具有挑战性,因为人脸属性被模糊和降级。基于裕量的损失函数的进步提高了嵌入空间中人脸的可辨别性。

此外,以前的研究已经研究了适应性损失的影响,以更加重视错误分类的(硬)例子。在这项工作中,我们介绍了损失函数自适应性的另一个方面,即图像质量。我们认为,强调错误分类样本的策略应根据其图像质量进行调整。具体来说,简单和硬样品的相对重要性应基于样品的图像质量。

我们提出了一种新的损失函数,该函数根据图像质量强调不同难度的样本。我们的方法通过用特征范数近似图像质量,以自适应裕量函数的形式实现这一点。大量的实验表明,我们的方法AdaFace在四个数据集(IJB-B,IJB-C,IJB-S和TinyFace)上提高了最先进的(SoTA)的人脸识别性能。

@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}
}

实际测试中发现,AdaFace 确实很强大,特别适合远距离,小目标,图片质量低的人脸识别。

关于 AdaFace 更多信息见: https://github.com/mk-minchul/AdaFace

详细信息可以看 AdaFace 的项目,或者我之前的文章,有一个结合作者 代码写的完整的人脸识别的Demo

当前项目做了简化,只提供 输出人脸特征向量的 能力

项目地址: https://github.com/LIRUILONGS/adaface

基于 AdaFace 提供适合低质量人脸识别的人脸特征向量输出服务_图像质量

特别说明,输入图片不管是 字节还是,b64 编码,需要符合 照片为单个人脸,做面部对齐处理(不是必须,可能会影响),大小: 112*112

部署方式

conda env create -f /environment.yml
source activate AdaFace
pip install -r /requirements.txt  -i  https://pypi.tuna.tsinghua.edu.cn/simple

需要的预训练模型文件下载可以在作者的 github 项目主页找

使用方式,脚本方式可以直接运行测试

python AdaFaceFeature.py
PS W:\AdaFace_demo>  w:; cd 'w:\AdaFace_demo'; & 'C:\Users\liruilong\AppData\Local\conda\conda\envs\AdaFace\python.exe' 'c:\Users\liruilong\.vscode\extensions\ms-python.python-2023.18.0\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher' '54612' '--' 'w:\AdaFace_demo\AdaFaceFeature.py'
获取特征开始
w:\AdaFace_demo\AdaFaceFeature.py:82: UserWarning: Creating a tensor from a list of numpy.ndarrays is extremely slow. Please consider converting the list to a single numpy.ndarray with numpy.array() before converting to a tensor. (Triggered internally at C:\actions-runner\_work\pytorch\pytorch\builder\windows\pytorch\torch\csrc\utils\tensor_new.cpp:248.)
  tensor = torch.tensor([brg_img.transpose(2, 0,1)]).float()
[[0.04365507885813713, -0.02032642811536789, -0.011309171095490456, ......................-0.002891642739996314, -0.00423774728551507, -0.08181970566511154, 0....
  • 提供了 字节,b64 编码 图片处理
  • 支持输出特征向量方式为 字节和JSON

提供了 Web 服务能力

开发

python flask_http_server.py

生产

gunicorn  --worker-class gevent  -b 0.0.0.0:30035  --timeout 300  flask_http_server:app

HTTP 调用

基于 AdaFace 提供适合低质量人脸识别的人脸特征向量输出服务_人脸识别_02

curl --location --request POST 'http://192.168.26.81:30035/b64_represent_json' \
--header 'Content-Type: text/plain' \
--data-raw 'iVBORw0KGgoAA.................................mCC'

输出 向量的 JSON 表示

[
    [
        0.054347388446331024,
        -0.031644247472286224,
   ........................
        0.022828513756394386,
        -0.03679579123854637
    ]
]

打包了 Docker 镜像,可以直接使用

镜像地址: https://hub.docker.com/r/liruilong/adaface-face

docker pull liruilong/adaface-face

基于 AdaFace 提供适合低质量人脸识别的人脸特征向量输出服务_图像质量_03

(adaface) ┌──[[email protected]]-[~/adaface/AdaFace_demo]
└─$ docker run --rm  -p 30035:30035  adaface-face
(adaface) ┌──[[email protected]]-[~/adaface/AdaFace_demo]
└─$ docker run -p 30035:30035 --rm adaface-face gunicorn -w 3  --worker-class gevent  -b 0.0.0.0:30035  --timeout 300  flask_http_server:app

该项目可以配合 https://github.com/LIRUILONGS/mtcnn_demo 使用

博文部分内容参考

© 文中涉及参考链接内容版权归原作者所有,如有侵权请告知,这是一个开源项目,如果你认可它,不要吝啬星星哦

标签:人脸识别,特征向量,AdaFace,低质量,--,github,人脸,https,adaface
From: https://blog.51cto.com/liruilong/7916356

相关文章

  • 基于开源模型搭建实时人脸识别系统(四):人脸质量
    续人脸识别实战之基于开源模型搭建实时人脸识别系统(三):人脸关键点、对齐模型概览与模型选型_CodingInCV的博客-CSDN博客不论对于静态的人脸识别还是动态的人脸识别,我们都会面临一个问题,就是输入的人脸图像的质量可能会很差,比如人脸角度很大,人脸很模糊,人脸亮度很亮或很暗。这些质量......
  • 【PRC】鲁棒跨域伪标记和对比学习的无监督域自适应NIR-VIS人脸识别 Robust Cross-Doma
    【该文章为杨学长的文章,膜拜】 探索跨领域数据中的内在关系并学习领域不变表示 由于需要在低光照条件下实现24h的人脸识别,近红外加可见光的(NIR-VIS)人脸识别受到了更多的关注。但是数据标注是一个难点。该文章提出了RobustcrossdomainPseudo-labelingandContrastivelear......
  • 人脸识别
    “比奇堡双钻”项目选题一、项目目标及意义1.1项目目标1.2项目意义二、项目可行性分析2.1规模及难度2.2人员2.3成本预算2.3.1硬件和软件成本2.3.2培训成本2.3.3人力成本2.3.4数据收集和存储成本2.4时间要求2.5风险三、项目计划3.1软件开发模型3.2时间安排3.3人员......
  • Lnton羚通视频分析算法平台工地劳务实名制人脸识别管理方案
    Lnton羚通的算法算力云平台是一款优秀的解决方案,具有突出的特点。它提供高性能、高可靠性、高可扩展性和低成本的特性,使用户能够高效地执行复杂计算任务。此外,平台还提供丰富的算法库和工具,并支持用户上传和部署自定义算法,提升了平台的灵活性和个性化能力。在建筑工地场景中,施工人......
  • 监控汇聚/视频融合平台EasyCVR人脸识别功能应用的方案分享
    EasyCVR国标视频融合云平台采用端-边-云一体化架构,具备高效的视频接入、汇聚、管理、处理和分发等功能。该平台部署简单、轻量灵活,能够支持多种协议和设备类型的接入,包括GB28181、RTSP、Onvif、海康SDK、Ehome、大华SDK、RTMP推流等。在视频能力方面,平台支持视频直播、录像、回放......
  • 21 人脸识别
    importtensorflowastffromtensorflow.kerasimportSequentialfromtensorflow.keras.modelsimportModelfromtensorflow.keras.layersimportConv2D,ZeroPadding2D,Activation,Input,concatenatefromtensorflow.keras.layersimportBatchNormalization,Max......
  • 以视频汇聚平台EasyNVR为例讲述视频监控系统可提供的几个人脸识别门禁系统
    EasyNVR是一种可支持设备通过RTSP/Onvif流媒体协议接入的视频处理系统。该系统能够对接入的视频流进行处理,并以多种格式进行多端分发,包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS和WebRTC等多种格式。在智慧安防等视频监控场景中,EasyNVR可提供视频实时监控直播、云端录像、云存储、录像......
  • 利用不可识别的人脸来增强人脸识别性能Harnessing Unrecognizable Faces for Improvin
    灰色标记:可以日后引用的观点红色标记:好的写法、语句、单词紫色标记:文章重点黄色标记:寻常突出文章评论::创新点::主要内容::gallery中的样本通常是人为采集并精心挑选的,它们具有较好的可识别性;然而,query通常来自于真实场景,它们受多种因素干扰如像素等等。......
  • 极低分辨率人脸识别和质量估计的可识别性嵌入增强
    灰色标记:可以日后引用的观点红色标记:好的写法、语句、单词紫色标记:文章重点黄色标记:寻常突出文章评论::创新点::研究结论::研究局限及其展望:: FaceImageQualityAssessment(FIQA)人脸图像质量评估XXX-aware:有什么什么意识的,可以用于确定任务范围(如recognizab......
  • 人脸识别中对比学习的损失函数(演化进程)
    参考文献:https://zhuanlan.zhihu.com/p/40775212https://blog.csdn.net/yiran103/article/details/836846131.softmax在初期,人脸识别模型通常使用softmax损失函数,其实就是在超平面上进行分类划分。这样的分类其实是乱七八糟的。注意,由此式不难得到:可以改写成下式这样,带有......