# FaceRecognition2 **Repository Path**: wang525976683/FaceRecognition2 ## Basic Information - **Project Name**: FaceRecognition2 - **Description**: 人脸识别 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-01-03 - **Last Updated**: 2024-01-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FaceRecognition2 ##详细介绍 https://zhuanlan.zhihu.com/p/668313093 ##用到的模型 https://www.modelscope.cn/models/damo/cv_resnet50_face-detection_retinaface/summary https://www.modelscope.cn/models/bubbliiiing/cv_retinafce_recognition/summary ##介绍 人脸识别 训练过程: ![输入图片说明](picture/%E8%AE%AD%E7%BB%831.png) 1.拿到用户照片集(原始照片),通过人脸定位模型,为每张照片,定位人脸。 2.将面部区域进行缩放至相同大小,为了避免面部扭曲,长宽缩放的比例应该相同,并通过调整边框宽窄使图片长宽全部相同。 3.将每张图片通过面部特征向量提取模型转化为512维的向量(为了感官舒适图中以3维为例)。 4.将图片信息用关系型数据库(SQLDB)保存,转化的向量用faiss向量数据库保存(FaissDB)。 预测过程: ![输入图片说明](picture/%E9%A2%84%E6%B5%8B1.png) 1.拿到一张待预测照片,经过人脸定位、缩放、面部特征提取得到一个512维得向量。 2.通过faiss检索该向量,并返回相似度最高的Top N个Vector ID以及对应的空间距离。 3.结合检索结果预测该照片最可能是数据库中的谁。 #### 依赖工具 受硬件限制,本项目使用的工具普遍版本较低,优势是cpu就能跑,比较银杏。 基本环境 python 3.7 modelscope 1.9.4 onnx2pytorch 0.4.1 pytorch-wavelets 1.3.0 torch 1.13.1+cpu torchvision 0.14.1 SQLAlchemy 1.4.49 SQLAlchemy-Utils 0.41.1 faiss-cpu 1.7.3 界面 gradio 3.34.0 gradio_client 0.2.6 #### 使用说明 #训练界面 1.首先创建连接:该步骤会初始化各种模型,以及数据库,耗时较长。 ![输入图片说明](%E8%AE%AD%E7%BB%834.png) 2.导入要训练的用户。 ![输入图片说明](picture/%E8%AE%AD%E7%BB%832.png) 可以直接以文件的形式批量导入(参考example/example.csv),也可单人一个一个导入,在右侧的用户列表可以预览要添加的用户,也可通过列表的id(最左侧一列)删除要添加的用户。 批量导入需要创建一个csv文件,如下格式。注意folder_input目录下最少要有对应用户的10张有效照片。 3.Train 15分钟左右。查看日志如果没有报错就是成功了, #预测界面 ![输入图片说明](picture/%E9%A2%84%E6%B5%8B2.png) #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request