人脸识别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);

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

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

【尊重原创,转载请注明出处】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


2. 项目安装

项目结构说明

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

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

numpy==1.16.3
matplotlib==3.1.0
Pillow==6.0.0
easydict==1.9
opencv-contrib-python==4.5.2.52
opencv-python==4.5.1.48
pandas==1.1.5
PyYAML==5.3.1
scikit-image==0.17.2
scikit-learn==0.24.0
scipy==1.5.4
seaborn==0.11.2
tensorboard==2.5.0
tensorboardX==2.1
torch==1.7.1+cu110
torchvision==0.8.2+cu110
tqdm==4.55.1
xmltodict==0.12.0
basetrainer
pybaseutils

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

  • 项目开发使用教程和常见问题和解决方法
  • 视频教程:1 手把手教你安装CUDA和cuDNN(1)
  • 视频教程:2 手把手教你安装CUDA和cuDNN(2)
  • 视频教程:3 如何用Anaconda创建pycharm环境
  • 视频教程:4 如何在pycharm中使用Anaconda创建的python环境

3. 人脸识别系统

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

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

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

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

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