开源人脸识别项目insightface_pytorch

insightface关键部分解析 参考这两篇博客: https://blog.youkuaiyun.com/u013841196/article/details/89921479 https://blog.youkuaiyun.com/qq_34914551/article/details/86515184?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=dis... 阅读详情

insightface_pytorch主要做了以下几个方面的工作:

* 使用的相关算法

人脸检测: 由原来的retina改成了MTCNN,准确度差了不少
人脸对齐: 由原来的Dense U-Net改成了MTCNN
人脸识别: 当前可以支持mobilefacenet和resnet50-irse两种

* 提供了一个demo用于实现人脸实时识别

* 提供了数据转换模块,用于将MXNET数据格式的数据转换成pytorch支持的Image Dataforders

* 提供了模型训练模块

 

运行环境:

  • python >= 3.6
  • pytorch == 0.4.1

识别流程说明:

insightface_pytorch实现人脸识别包含两个步骤,第一步人脸检测和人脸对齐,第二步人脸识别

人脸检测(face detection)和人脸对齐(face alignment):使用基于MTCNN网络的开源项目mtcnn-pytorch,经过实测比retina要差很多

人脸识别(face recognition):人脸识别提供了多种模型mobilefacenet,retnet50-irse等网络的预训练模型和网络结构

 

预训练模型和准确率

IR-SE50 @ BaiduNetdisk, IR-SE50 @ Onedrive

LFW(%)CFP-FF(%)CFP-FP(%)AgeDB-30(%)calfw(%)cplfw(%)vgg2_fp(%)
0.99520.99620.95040.96220.95570.91070.9386

Mobilefacenet @ BaiduNetDisk, Mobilefacenet @ OneDrive

LFW(%)CFP-FF(%)CFP-FP(%)AgeDB-30(%)calfw(%)cplfw(%)vgg2_fp(%)
0.99180.98910.89860.93470.94020.8660.9100

 

 

使用说明

1 Data Preparation

1.1 Prepare Facebank (For testing over camera or video)

Provide the face images your want to detect in the data/face_bank folder, and guarantee it have a structure like following:

data/facebank/
        ---> id1/
            ---> id1_1.jpg
        ---> id2/
            ---> id2_1.jpg
        ---> id3/
            ---> id3_1.jpg
           ---> id3_2.jpg

1.2 download the pretrained model to work_space/model

If more than 1 image appears in one folder, an average embedding will be calculated

1.3 Prepare Dataset ( For training)

download the refined dataset: (emore recommended)

Note: If you use the refined MS1M dataset and the cropped VGG2 dataset, please cite the original papers.

  • after unzip the files to 'data' path, run :

    python prepare_data.py
    

    after the execution, you should find following structure:

faces_emore/
            ---> agedb_30
            ---> calfw
            ---> cfp_ff
            --->  cfp_fp
            ---> cfp_fp
            ---> cplfw
            --->imgs
            ---> lfw
            ---> vgg2_fp

2 detect over camera:

2.1 download the desired weights to model folder:

2.2 to take a picture, run

python take_pic.py -n name

press q to take a picture, it will only capture 1 highest possibility face if more than 1 person appear in the camera

2.3 or you can put any preexisting photo into the facebank directory, the file structure is as following:

- facebank/
         name1/
             photo1.jpg
             photo2.jpg
             ...
         name2/
             photo1.jpg
             photo2.jpg
             ...
         .....
    if more than 1 image appears in the directory, average embedding will be calculated

2.4 to start

python face_verify.py 

3 detect over video:

​```
python infer_on_video.py -f [video file name] -s [save file name]
​```

the video file should be inside the data/face_bank folder

3.4 Training:

​```
python train.py -b [batch_size] -lr [learning rate] -e [epochs]

# python train.py -net mobilefacenet -b 200 -w 4
​```

对于工程的理解,应该是重点改进点在recognition上面。 这里需要知道人脸识别的几个模块。detection, alignment, verification ,identification/recognition .  所以,本工程的重点算法的改进在于recognition。而其它的模块,比如detection,可能就直接使用MTCNN。 

对于工程的使用,主要是按照要求,组建好环境后,./recognition里 config.py里更改 dataset  ,数据集, batchsize与gpu个数相关,然后去dataset-zoo下载了数据集后,开始训练,这样就生成了model ,model的生成位置也是在config.py里配置。在训练的过程中,也看到了verification. 

如果你懒得去训练,直接使用pre-train model 。可以去文中讲的model-zoo里去下载; 认真点的,可以再使用verification.py

src/eval/verification.py验证其精度,不认真的,直接拿去使用吧。

RK3588 InsightFace人脸识别移植及精度测试全解析 本文详细介绍了如何在RK3588平台上移植InsightFace人脸识别模型并进行精度验证。通过PyTorch转ONNX、ONNX转RKNN量化模型的关键步骤,实现了INT8量化模型的部署。测试数据显示,该模型在LFW数据集上达到99.43%的准确率(接近官方99.52%),推理时间仅14.23ms。ROC曲线和相似度分布图表明模型区分能力优秀,AUC超过0.99,满足实际应用需求。文中还详解了量化原理、环境搭建和测试方法,为边缘设备部署人脸识别提供了完整解决方案。 阅读详情

相关推荐

人脸检测开源项目介绍【持续更新】

人脸检测开源项目介绍【持续更新】

世界那么大,我想去看看~【随心更新,看世界去了😄】 3558

insightface pytorch 答疑指南

​ 之前写过一篇人脸识别从原理到实践 详细介绍了人脸识别相关的算法、模型和Loss等,里面也提到insightface成为当前工业事实上的基准。但是它各种牛逼,唯一不足的点就是开始时选了mxnet框架开发,奈何现在基本没什么人用了,所以在22年3月官方悄悄的把主线版本特别是PartialFC的实现换成了pytorch,而且更早之前经历过一次大的文件结构调整,加入了paddle、oneflow等很多框架的实现,但是也导致很多之前教程给的路径都找不到了,还有一些文件直接就删除了,这对于新入手造成了很大的困扰

迷若烟雨的专栏 3242

InsightFace_Pytorch:适用于InsightFace的Pytorch0.4.1代码

InsightFace_Pytorch 适用于InsightFace的Pytorch0.4.1代码 1.简介 此仓库是Arcface 或Insightface 的重新实现。 对于模型,包括Arcface和MobileFacenet的主干模块的pytorch实现 提供了用于将Insightface MXNET数据记录转换为Image Datafolders的代码 已发布预训练模型,包括原始论文中的和IR-SE50 2.预训练的模型和性能 , LFW(%) CFP-FF(%) CFP-FP(%) AgeDB-30(%) 小牛(%) cplfw(%) vgg2_fp(%) 0.9952 0.9962 0.9504 0.9622 0.9557 0.9107 0.9386 , LFW(%) CFP-FF(%) CFP-FP(%) AgeDB-30(%) 小

【亲测免费】 InsightFace_Pytorch 教程

`InsightFace_Pytorch` 是一个基于 PyTorch 的深度学习人脸识别项目,源自 [DeepInsight/InsightFace](https://github.com/deepinsight/insightface)。该项目实现了高精度的人脸特征提取和识别算法,如 ArcFace,它支持多种预训练模型并提供了易于使用的接口。目标是为开发者提供一个在 PyTorch 中进行人...

gitblog_00340的博客 901

pytorch-insightface:预先训练的Insightface模型移植到pytorch

Pytorch InsightFace 将来自预训练的ResNet模型移植到pytorch。 模型 LFW(%) CFP-FP(%) AgeDB-30(%) MegaFace(%) iresnet34 99.65 92.12 97.70 96.70 iresnet50 99.80 92.74 97.76 97.64 iresnet100 99.77 98.27 98.28 98.47 安装 pip install git+https://github.com/nizhib/pytorch-insightface 用法 import torch from imageio import imread from torchvision import transforms import insightface embedder = insightface

《Linux运维总结:Ubuntu22.04忘记root密码解决方案》

《Linux运维总结:Ubuntu22.04忘记root密码解决方案》

东城绝神 4459

如何打造你的专属动漫播放器:Kazumi跨平台自定义规则指南

厌倦了在不同平台间切换寻找动漫资源?Kazumi这款开源自定义动漫播放器,让你告别资源分散的烦恼,通过灵活的规则系统打造专属观看体验。这款基于Flutter开发的跨平台应用,不仅支持弹幕系统,还能实时提升视频画质,为动漫爱好者提供了真正的一站式解决方案。 ## 🚀 为什么选择Kazumi?四大核心优势 ### 1. 真正的跨平台体验 Kazumi支持Android、Windows、macOS

gitblog_00086的博客 730

Linux【实战】—— LAMP环境搭建 & 部署网站

由LinuxApacheMySQLPHP组成的一个web网络平台。

2201_75935630的博客 4980

GB-CosFace 开源项目教程

GB-CosFace 开源项目教程 GB-CosFace项目地址:https://gitcode.com/gh_mirrors/gb/GB-CosFace 项目介绍 GB-CosFace 是一个基于 PyTorch 实现的人脸识别项目,旨在通过重新思考 softmax 损失在开放集分类中的应用,提高人脸识别的性能。该项目由 Lizhe Liu 等人开发,并在多个人脸识别基准测试中表现优异。GB-...

gitblog_00961的博客 361

linux下wayland协议修改键盘映射

linux下wayland协议,修改键盘映射,实验环境是Ubuntu24,其他wayland协议窗口应该也是可以的。

qq_15027967的博客 1068

【嵌入式原理系列-第七篇】ld脚本实战:从零构建MCU内存布局

本文是一篇针对嵌入式开发者的实战指南,详细讲解了如何从零开始为MCU编写ld链接器脚本以构建自定义内存布局。文章以STM32F103C8T6为例,深入剖析了MEMORY和SECTIONS指令的用法,并提供了OTA分区、非易失数据存储等高级定制案例,帮助开发者解决实际工程中的Flash与RAM管理难题,实现对程序运行的深度掌控。

weixin_29271263的博客 246

【亲测免费】 AdaFace 开源项目教程

AdaFace 是一个用于人脸识别的开源项目,它通过质量自适应边距(Quality Adaptive Margin)技术提高了在低质量图像上的人脸识别性能。该项目基于 PyTorch 框架开发,旨在提供一个高效、准确的人脸识别解决方案。 ## 项目快速启动 ### 安装依赖 首先,确保你已经安装了 Python 和 PyTorch。然后,克隆项目仓库并安装必要的依赖: ```bash gi

gitblog_01060的博客 608

STM32H743实战(三)-- 时钟系统配置

本文详细讲解了STM32H743时钟系统的配置方法,重点解析了为何选择400MHz而非理论极限480MHz作为稳定运行的主频。通过STM32CubeIDE环境,手把手指导如何从外部晶振配置、电源电压设置到PLL锁相环参数调整,最终实现稳定可靠的400MHz系统时钟,并提供了代码验证与常见问题排查指南。

weixin_29164185的博客 367

如何快速实现高精度人脸识别:InsightFace_Pytorch完整指南

InsightFace_Pytorch是一个基于Pytorch 0.4.1实现的人脸识别项目,它提供了高效、准确的人脸识别解决方案,适合新手和普通用户快速上手。无论是进行人脸检测、特征提取还是人脸验证,该项目都能满足你的需求。 ## 项目简介:什么是InsightFace_Pytorch? InsightFace_Pytorch是一个开源的人脸识别项目,它基于Pytorch框架实现了Insig

gitblog_00702的博客 345

YOLOv11与Roboflow数据预处理实战:从原始数据到高性能模型

摘要 Roboflow平台与YOLOv11的结合为计算机视觉开发者提供了高效的工作流。Roboflow提供数据集管理、预处理、增强和导出的一站式解决方案,支持多种标注格式并与YOLOv11无缝集成。YOLOv11在YOLO系列基础上进行了架构创新,包括深度宽度优化、C3k2机制和C2PSA注意力机制,提供从纳米版到超大版的多种模型变体。 使用Roboflow的流程包括:注册工作区、收集/导入数据(支持本地和公开数据集)、专业标注(含SAM辅助)、预处理(尺寸调整、归一化等)和数据增强(几何变换和颜色调整)。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 349

LVGL 磁罗盘效果

环境:LVGL 9.x + SDL2,窗口 1280×800。界面文案用英文(默认 Montserrat,无 CJK)。本文按实现顺序讲:先建立两个耦合转动体,再把磁倾角误差从卡面倾斜里推出来,最后用同一套投影把刻度、数字和目标画到卡上。画面上的迟滞、涡流、摆动和读数偏差都来自方程,没有补间动画。

摸鱼专家 85

【亲测免费】 InsightFace_Pytorch 常见问题解决方案

**InsightFace_Pytorch** 是一个基于 PyTorch 框架的开源项目,旨在实现人脸识别技术。该项目是对 Arcface 和 Insightface 的重新实现,提供了 PyTorch 版本的代码。主要功能包括人脸检测、人脸对齐和人脸识别。项目中包含了预训练模型,如 MobileFacenet 和 IR-SE50,并且提供了将 MXNET 数据记录转换为 Image Dataf...

gitblog_07913的博客 587

基于YOLOv10的机器人抓取引导系统:从物体检测到精准抓取

python# 数据标注工具简化版import os"""启动标注工具""""""标注单张图像"""print(f"标注图像: {os.path.basename(img_path)}")print("请在图像上绘制抓取矩形框...")# 这里应该实现交互式标注界面# 简化版本直接返回示例标注# 示例标注数据"""保存标注结果"""# 保存为YOLO格式# 转换为YOLO格式。

YOLO 377

【亲测免费】 InsightFace:深度人脸识别的强大工具

InsightFace:深度人脸识别的强大工具 项目介绍 InsightFace 是一个基于 PyTorch 的开源项目,专注于实现深度人脸识别中的 Additive Angular Margin Loss(ArcFace)。ArcFace 是一种先进的损失函数,通过在特征向量和分类边界之间引入角度间隔,显著提升了人脸识别的准确性。该项目不仅提供了完整的实现代码,还展示了其在多个基准数据集上的优异...

gitblog_00680的博客 1309

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

InsightFace ArcFace PyTorch 训练完整指南:自定义数据集一次跑通

InsightFace 是目前最活跃的人脸分析开源项目之一,其 recognition/arcface_torch 模块用 PyTorch 实现了 ArcFace 算法,支持混合精度、Partial FC 稀疏 Softmax 和 ViT 骨干。本文带你用最短路径完成:准备数据、单卡跑通训练、多卡扩展,并讲清每个关键参数怎么改、为什么改。 ## 先给结果:跑通后你会得到什么 训练启动后,脚本会

gitblog_00985的博客 290

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

InsightFace完全指南:免费开源的人脸识别终极解决方案

想要快速掌握人脸识别技术却不知从何入手?InsightFace作为业界领先的开源项目,为你提供从零开始到专业部署的完整学习路径。这个基于深度学习的强大工具集,让复杂的人脸分析变得简单易用。 ## 为什么你的项目需要InsightFace?🤔 传统人脸识别方案往往面临精度不足、部署复杂、成本高昂等痛点。InsightFace通过集成ArcFace等先进算法,在IJB-C评测集上达到97%以上的

gitblog_00077的博客 487

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

InsightFace_Pytorch实战教程:免费开源人脸识别

基于PyTorch的高精度人脸识别项目,支持ArcFace等模型,提供从环境搭建、数据准备到模型验证的完整流程,适用于人脸比对、检索与实时分析,兼容OpenCV、Flask等生态工具。

weixin_36328210的博客 559

InsightFace_Pytorch人脸识别实战教程

基于PyTorch的高精度人脸识别项目,支持ArcFace等模型,提供从环境搭建、数据准备到模型验证的完整流程,适用于人脸比对、检索与实时分析应用。

weixin_42607969的博客 929
上一篇: 京东开源人脸识别项目faceX-zoo
下一篇: facex-zoo和insightface_pytorch性能评估
我是谁??
博客等级 码龄11年 242粉丝 183原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值