当前位置:   article > 正文

人脸识别2:InsightFace实现人脸识别Face Recognition(含源码下载)

insightface

人脸识别2:InsightFace实现人脸识别Face Recognition(含源码下载)

目录

人脸识别2:InsightFace实现人脸识别Face Recognition(含源码下载)

1. 前言

2. 项目安装

3. 人脸识别系统

(1)人脸检测和关键点检测

(2)人脸校准

(3)人脸特征提取

(4)人脸比对(1:1)

(5)人脸搜索(1:N)

(6)配置文件config

(7)人脸识别优化建议

4. 人脸识别Demo效果

5. 人脸识别C/C++版本源码下载

6. 人脸识别Android版本源码下载

7. 人脸识别Python版本源码下载


1. 前言

这是项目《人脸识别Face Recognition》系列之《InsightFace实现人脸识别Face Recognition》Python版本;项目基于开源ArcFace(也称InsightFace)模型搭建一套完整的Python版本人脸识别系统(Face Recognition or Face Identification);

11acfa2ee6eb40818544226505ff4a92.png

整套人脸识别系统核心算法包含人脸检测和人脸关键点检测,人脸校准,人脸特征提取以及人脸比对(1:1)和人脸搜索(1:N)。本项目人脸识别系统可以达到目前商业级别的人脸识别准确率,在误识率(FAR)0.1%的情况下,可提供99.57%的通过率(TAR);可以满足人脸比对,人脸签到、人脸门禁、人员信息查询、安防监控等人脸识别应用场景。

Python版本人脸检测和人脸识别效果:

da8f940a0a8f4bc5bd0d2a72e0119597.gif

【尊重原创,转载请注明出处】https://blog.csdn.net/guyuealian/article/details/130600472 


更多项目《人脸识别Face Recognition》系列文章请参考:

  1. 人脸识别1:人脸识别数据集https://blog.csdn.net/guyuealian/article/details/130600545
  2. 人脸识别2:InsightFace实现人脸识别Face Recognition(含源码下载)https://blog.csdn.net/guyuealian/article/details/130600472
  3. 人脸识别3:C/C++ InsightFace实现人脸识别Face Recognition(含源码)https://blog.csdn.net/guyuealian/article/details/130600571
  4. 人脸识别4:Android InsightFace实现人脸识别Face Recognition(含源码)https://blog.csdn.net/guyuealian/article/details/130600600

ccd0e425827b4cad815f3d05447f37e6.gif


2. 项目安装

项目结构说明

  1. .
  2. ├── configs # 配置文件(设置检测模型,特征提取模型)
  3. ├── core
  4. │   ├── alignment # 人脸校准算法
  5. │   ├── detection # 人脸检测模型
  6. │   ├── feature # 人脸特征提取模型
  7. │   ├── face_detector.py # 人脸检测(支持MTCNN和RFB)
  8. │   ├── face_feature.py # 人脸特征提取模型
  9. │   ├── face_matcher.py # 人脸匹配算法
  10. │   ├── face_recognizer.py # 人脸识别
  11. │   └── face_register.py # 人脸注册
  12. ├── data # 人脸识别相关数据
  13. ├── face_compare.py # 1:1人脸比对Demo
  14. ├── face_search.py # 1:N人脸搜索Demo
  15. ├── register.py # 1:N人脸搜索人脸数据库注册Demo
  16. ├── README.md # 说明文档
  17. └── requirements.txt # 项目依赖文件

Python依赖环境,使用pip安装即可,项目代码都在Ubuntu系统和Windows系统验证正常运行,请放心使用;若出现异常,大概率是相关依赖包版本没有完全对应

  1. numpy==1.16.3
  2. matplotlib==3.1.0
  3. Pillow==6.0.0
  4. easydict==1.9
  5. opencv-contrib-python==4.5.2.52
  6. opencv-python==4.5.1.48
  7. pandas==1.1.5
  8. PyYAML==5.3.1
  9. scikit-image==0.17.2
  10. scikit-learn==0.24.0
  11. scipy==1.5.4
  12. seaborn==0.11.2
  13. tensorboard==2.5.0
  14. tensorboardX==2.1
  15. torch==1.7.1+cu110
  16. torchvision==0.8.2+cu110
  17. tqdm==4.55.1
  18. xmltodict==0.12.0
  19. basetrainer
  20. pybaseutils

 项目安装教程请参考(初学者入门,麻烦先看完下面教程,配置好开发环境): 


3. 人脸识别系统

人脸识别主要包含人脸比对(1:1)人脸搜索(1:N)两大功能,涉及的核心算法主要包含:人脸检测和人脸关键点检测,人脸校准,人脸特征提取以及人脸比对(1:1)和人脸搜索(1:N);当然,实际业务中,可能还会增加人脸质量检测以及活体识别等算法,碍于篇幅,后续再分享活体识别算法。

下图给出本项目人脸识别系统算法实现架构流程图:

11acfa2ee6eb40818544226505ff4a92.png

(1)人脸检测和关键点检测

人脸检测的方法比较多,项目提供两种人脸检测方法:一种是基于MTCNN的通用人脸检测模型,另一种是轻量化的、快速的RFB人脸检测模型;这个两个模型都能实现人脸检测,并同时预测人脸的五个关键点(Landmark)。

模型Paper源码说明
MTCNNPaperLink
  • 支持人脸检测和人脸关键点检测(5个点)
  • 通用场景人脸检测,计算量较大,适合PC服务器部署
RFBPaperLink
  • 支持人脸检测和人脸关键点检测(5个点)
  • 轻量级人脸检测,适合简单场景人脸检测,计算量较小,适合嵌入式,开发板,Android等终端部署
推荐阅读
相关标签
  

闽ICP备14008679号