首页 > 其他分享 >基于开源模型搭建实时人脸识别系统(六):人脸识别(人脸特征提取)

基于开源模型搭建实时人脸识别系统(六):人脸识别(人脸特征提取)

时间:2023-12-26 22:35:17浏览次数:37  
标签:人脸识别 insightface 算法 分类器 开源 人脸 阶段 特征提取

目录
前面我们讲过了人脸检测、人脸质量、人脸关键点、人脸跟踪,接下来就是人脸识别系统里面的重中之重人脸识别了,或者叫人脸特征提取,这个算法是来判定人脸是谁。我们刷脸进车站、刷脸付款、解锁手机都离不开这个算法。

人脸识别的几个发展阶段

第一个发展阶段主要从 20 世纪 60 年代到 90 年代。Brunelli 、Bledsoe 、金出武 雄等人在这一时期做了人脸识别的相关研究,人工神经网络在这时被提出,因为当时硬 件基础难以支撑其过高的计算复杂度而没有得到重点关注。这一时期的识别精确度不高, 可以做到简单的人脸识别,但还是无法运用到实际中。
第二个发展阶段是从 1991 年到 1997 年。这一时期出现了耶鲁大学的 Fisherface 算法和麻省理工学院的 Eigenface 算法。这两种算法在当时颇具影响力。这一时期还出 现了人脸等密度图线性分析、基于弹性图匹配的方法 EBGM、隐马尔可夫模型 HMM等。Eigenface使用了PCA(主成分分析)将人脸图像进行降维,然后用欧式距离来判定人脸相似度,PCA也是计算机视觉课程会接触到的算法;Fisherface则使用了LDA(线性判别分析)。
第三个发展阶段是从 1997 年到 2010 年前后,研究人员开始摒弃原先的理想环境, 把研究重点转移到了非理想环境。这个时期研究者所使用分类器的联合方式和传统的特 征提取的技术方法。在此阶段,研究人员主要采用贝叶斯分类器、联合贝叶斯、支持向 量机 SVM等分类器进行研究。用SVM这类分类器来做人脸识别,实现了人脸特征和分类的解耦,所以有很多特征提取器都被用来做人脸识别了,比如sift、Gabor、HoG、LBP等。总体上,虽然相比于第二个阶段的算法,这个阶段的算法从精度和鲁棒性上都有较大提升,不过还是无法进行大规模的使用。
第四个阶段就是深度学习时期了,这个阶段是人脸识别真正进入日常生活的阶段,我们日常的刷脸解锁、刷脸进小区、打卡都离不开基于深度学习的人脸识别技术的发展。2014 年,Facebook 提出 Deepface 和香港中文大学提出 DeepID在 LFW上分别达到了 97.34%和 97.44%的识别精度。2015 年,Google 提出的 FaceNet ,在 LFW 上取得了 99.62%的识别率。同年,牛津大学提出了 VGGface 并公开数据集 CASIA WebFace ,VGGNet 在 CASIA WebFace 人脸集上训练,得到了 98.95%的识别率。2017 年,Liu 等人提出 SphereFace ,人脸识别准确率提升到了 99.42%。而后的arcface\cosface等新的人脸loss的提出,以及insightface项目的开源,极大的推动了人脸识别的发展。

基于深度学习的人脸识别技术的流程

image

与我们前面博文提到的技术一致,在支付、打卡、门禁等场景,还要加上face anti-spoof(活体检测)来防止出现假体攻击。

闭集和开集(Open set)识别

闭集是指待识别的人都在训练集中,这时的人脸识别等同于一个分类问题。
开集是指待识别的人不在训练集中,这时的人脸识别就不等同于一个分类问题了,而是一个度量学习的问题,即要学习的是如何判定2个人脸是否属于一个人,尽管实际上训练的时候是按分类训练。

人脸识别的损失

目前主要使用的人脸识别损失是arcface\cosface这类margin softmax 损失,即在普通的softmax分类损失上加上了乘性或加性的margin, 以期望达到类内内聚,类间分开的效果。
image.png

而在此之前,triplelet loss也曾用于人脸识别,由于训练过程中样本采样比较复杂,使用不太广泛。
image.png

Insightface

deepinsight/insightface: State-of-the-art 2D and 3D Face Analysis Project (github.com)
insightface是人脸识别领域最有名的开源项目,该项目包括了从人脸检测、人脸关键点到人脸识别的全流程算法,是入门和深入人脸识别的不二之选。

人脸识别数据集

人脸识别的发展也离不开数据集规模的扩大,最大的数据集已经到了百万级ID:
image.png

模型选型

insightface提供了很多模型:
insightface/recognition/arcface_torch at master · deepinsight/insightface (github.com)
insightface/model_zoo/README.md at master · deepinsight/insightface (github.com)
考虑到速度和精度,我们选择使用WebFace训练的resnet50模型。

参考文献

A Survey of Face Recognition)

结语

这里我们简要介绍了人脸识别技术的发展过程和主要的一些方法,这里只是一些宽泛的介绍,更深入的算法理解还需要自行阅读论文,可以阅读上述的综述。

人脸识别系统项目源码

https://mbd.pub/o/bread/ZJyTmZty

标签:人脸识别,insightface,算法,分类器,开源,人脸,阶段,特征提取
From: https://www.cnblogs.com/haoliuhust/p/17929526.html

相关文章

  • 将开源免费进行到底,ThreadX开源电脑端GUIBuilder图形开发工具GUIX Studio
    上个月微软刚刚宣布将ThreadXRTOS全家桶贡献给Eclipse基金会,免费供大家商用,宽松的MIT授权方式,就差这个GUIXStudio没有开源了,而且Windows还经常检索不到,并且也不提供离线包。1、软件包有点大,700MB,直接分享到百度云了:链接:https://pan.baidu.com/s/1tS8IDWrIXGiCTbHxwxEkDA  提取......
  • Taurus .Net Core 微服务开源框架:Admin 插件【4-6】 - 配置管理-Mvc【Plugin-Doc 接口
    前言:继上篇:Taurus.NetCore微服务开源框架:Admin插件【4-5】-配置管理-Mvc【Plugin-Admin后台】本篇继续介绍下一个内容:系统配置节点:Mvc- Plugin- Doc 接口测试及文档:配置界面如下:  配置说明如下:1、Doc.IsEnable:配置当前接口测试文档插件是否可用这是一个......
  • 周公解梦全解大全查询AI周公流量主小程序开源版开发
    周公解梦全解大全查询AI周公流量主小程序开源版开发AI周公流量主小程序是一个专注于解梦的应用程序,它集成了周公解梦全解大全查询功能,可以帮助用户理解和解释梦境中的符号和意义。以下是该小程序的主要功能介绍:解梦查询:用户可以输入梦境中的关键词或描述,并通过AI技术快速查询与之相......
  • 开源低代码开发平台如何在数字化转型中发挥价值?
    当前,数字化转型升级是发展潮流,也是很多企业提升市场竞争力,获得更多利润价值的发展路径。作为提质增效的办公利器,开源低代码开发平台也将发挥应有的价值和作用,在推动企业数字化转型和流程化办公的过程中贡献力量,一起进入产业分工新时代。1、数字化转型是发展趋势在快节奏的现代化......
  • 开源免费的对象存储Minio
    简介: Minio是一个基于ApacheLicensev2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合存储大容量、非结构化的数据。例如,图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小的,从几KB到5TB不等。什么是Minio?Mini......
  • 开源对象存储Minio部署篇
    简介: MinIO是一个基于ApacheLicensev2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。(摘自minio中文站点https://docs.m......
  • AI在人脸识别中的应用
    1.背景介绍人脸识别技术是人工智能领域的一个重要分支,它涉及到计算机视觉、图像处理、模式识别等多个技术领域的知识和方法。随着人工智能技术的发展,人脸识别技术也在不断发展和进步。这篇文章将从以下几个方面进行阐述:背景介绍核心概念与联系核心算法原理和具体操作步骤以及数学模......
  • 2023年度低代码平台企业TOP50榜单公布—以开源起家的JeecgBoot格外亮眼
    近日,中国科学院主管、科学出版社主办的国家级核心期刊《互联网周刊》联合eNet研究院、德本咨询评选的《2023低代码企业50强》榜单正式公布。这一榜单的公布引起了业内外的广泛关注,因为其中涵盖了低代码开发领域的众多杰出企业,展现了低代码产业的发展趋势和行业格局。在这份备......
  • 1.6kstar,推荐一款开源软件,sharing
    1简介sharing是一个命令行工具,用于将目录和文件从命令行共享到iOS和Android设备,而无需额外的客户端应用程序2安装github源码可以访问如下地址https://github.com/parvardegr/sharinggithub如果无法访问的话,可以后台直接私信该工具需要nodejs环境,通过npm安装npminst......
  • Nessus安装 开源漏洞扫描程序
    Nessus安装下载链接:https://www.tenable.com/downloads/nessus?loginAttempted=trueubuntu linux版本(Nessus-10.6.4-ubuntu1404_amd64.deb)安装上传下载的文件到服务器后sudodpkg-iNessus-10.6.4-ubuntu1404_amd64.debsystemctlstartnessusd&&systemctlenableness......