基于 AdaFace 提供适合低质量人脸识别的人脸特征向量输出服务
对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》
写在前面
- 工作原因,简单整理
- 理解不足小伙伴帮忙指正
对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》
简单介绍
通过 AdaFace 提取人脸特征向量服务,项目来自:
https://github.com/mk-minchul/AdaFace
拿到人脸特征向量可以用于获取人脸相似度,通过两个人脸向量的余弦相似度得分
AdaFace 简单介绍
低质量人脸数据集
中的识别
具有挑战性,因为人脸属性被模糊和降级。基于裕量的损失函数
的进步提高了嵌入空间中人脸的可辨别性。
此外,以前的研究已经研究了适应性损失
的影响,以更加重视错误分类
的(硬)例子。在这项工作中,我们介绍了损失函数自适应性
的另一个方面,即图像质量
。我们认为,强调错误分类样本的策略应根据其图像质量进行调整。具体来说,简单和硬样品的相对重要性应基于样品的图像质量。
我们提出了一种新的损失函数,该函数根据图像质量强调不同难度的样本。我们的方法通过用特征范数近似图像质量,以自适应裕量函数的形式实现这一点
。大量的实验表明,我们的方法AdaFace
在四个数据集(IJB-B,IJB-C,IJB-S和TinyFace)上提高了最先进的(SoTA)的人脸识别性能。
1 | @inproceedings{kim2022adaface, |
实际测试中发现,AdaFace
确实很强大,特别适合远距离,小目标,图片质量低的人脸识别。
关于 AdaFace 更多信息见: https://github.com/mk-minchul/AdaFace
详细信息可以看 AdaFace 的项目,或者我之前的文章,有一个结合作者 代码写的完整的人脸识别的Demo
当前项目做了简化,只提供 输出人脸特征向量的 能力
项目地址: https://github.com/LIRUILONGS/adaface
特别说明,输入图片不管是 字节还是,b64 编码,需要符合 照片为单个人脸
,做面部对齐处理(不是必须,可能会影响),大小:112*112
部署方式
1 | conda env create -f /environment.yml |
需要的预训练模型文件下载可以在作者的 github
项目主页找
使用方式,脚本方式可以直接运行测试
1 | python AdaFaceFeature.py |
1 | 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' |
- 提供了 字节,b64 编码 图片处理
- 支持输出特征向量方式为 字节和JSON
提供了 Web 服务能力
开发
1 | python flask_http_server.py |
生产
1 | gunicorn --worker-class gevent -b 0.0.0.0:30035 --timeout 300 flask_http_server:app |
HTTP 调用
1 | curl --location --request POST 'http://192.168.26.81:30035/b64_represent_json' \ |
输出 向量的 JSON 表示
1 | [ |
打包了 Docker 镜像,可以直接使用
镜像地址: https://hub.docker.com/r/liruilong/adaface-face
1 | docker pull liruilong/adaface-face |
1 | (adaface) ┌──[root@vms81.liruilongs.github.io]-[~/adaface/AdaFace_demo] |
1 | (adaface) ┌──[root@vms81.liruilongs.github.io]-[~/adaface/AdaFace_demo] |
该项目可以配合 https://github.com/LIRUILONGS/mtcnn_demo 使用
博文部分内容参考
© 文中涉及参考链接内容版权归原作者所有,如有侵权请告知,这是一个开源项目,如果你认可它,不要吝啬星星哦 :)
https://github.com/mk-minchul/AdaFace
https://hub.docker.com/r/liruilong/adaface-face
© 2018-至今 liruilonger@gmail.com, All rights reserved. 保持署名-非商用-相同方式共享(CC BY-NC-SA 4.0)
基于 AdaFace 提供适合低质量人脸识别的人脸特征向量输出服务
https://liruilongs.github.io/2023/10/12/AI-人脸识别/基于-AdaFace-提供适合低质量人脸识别的输出人脸特征向量服务/