人脸识别开源算法库和开源数据库

目录

1. 人脸识别开源算法库

1.1 OpenCV人脸识别模块

1.2 Dlib人脸识别模块

1.3 SeetaFace6

1.4 DeepFace

1.5 InsightFace

2. 人脸识别开源数据库

2.1 CelebA

2.2 LFW

2.3 MegaFace

2.4 Glint360K

2.5 WebFace260M


        人脸识别 (Face Recognition) 是一种基于人的面部特征信息进行身份识别的生物特征识别技术。近年来,随着人工智能、计算机视觉、大数据、云计算、芯片等技术的迅速发展,人脸识别技术取得了长足的进步并且在众多场景中得以成功应用 。

        人脸识别的应用模式主要包括三种:

  • 人脸验证 (Face Verification): 判定两张人脸图像是否属于同一个人,常用于身份认证如人证核验。

  • 人脸辨识 (Face Identification): 给定一张人脸图像,判断是否在注册库中,若在则返回具体的身份信息 , 常用于静态检索或动态布控 。

  • 人脸聚类 (Face Clustering): 给定一批人脸图像,将相同人的图像归类到同一个类,不同人的划分为不同的类,常见的应用有智能相册、一人一档等。

        本文旨在介绍一些人脸识别开源算法库和开源数据集,并在后续博文陆续分享人脸识别开源算法库的C++和Python实现代码调用Demo,以帮助开发人员加速人脸识别技术应用。

1. 人脸识别开源算法库

1.1 OpenCV人脸识别模块

        OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它提供了很多函数,这些函数非常高效地实现了计算机视觉算法。

        官网:https://opencv.org/

        Github: https://github.com/opencv/opencv

        中国镜像: https://gitcode.net/opencv/opencv

        OpenCV 的应用领域非常广泛,包括图像拼接、图像降噪、产品质检、人机交互、人脸识别、动作识别、动作跟踪、无人驾驶等。

        OpenCV 4.5.4版本开始,DNN模块集成了高性能的人脸检测算法(使用模型YuNet,由OpenCV China团队贡献)和人脸识别算法(使用模型SFace,由北京邮电大学邓伟洪教授课题组贡献)。详见 https://github.com/opencv/opencv_zoo

Face Detection with YuNet

Face Recognition with SFace

1.2 Dlib人脸识别模块

        Dlib 是一个十分优秀好用的机器学习库,其源码均由 C++ 实现,并提供了 Python 接口,可广泛适用于很多场景。

        官网:http://www.dlib.net/ml.html

        Github: https://github.com/davisking/dlib

        Dlib提供训练好的人脸检测、人脸关键点检测、人脸识别模型供开发者使用,所以Dlib很适合用于人脸识别开发。模型下载地址: http://dlib.net/files/

 

1.3 SeetaFace6

        2016年9月和2019年8月,中科视拓分别开源了SeetaFace1.0人脸识别引擎、SeetaFace2.0商用级人脸识别算法(Github: https://github.com/seetaface)。

        2020年3月31日,中科视拓宣布开放SeetaFace6人脸识别算法(Github: https://github.com/SeetaFace6Open/index)。

        SeetaFace6是最新开放的正式级商业版本,突破了之前社区版和企业版错开发布的情况,此次v6版本与商用版本同步推出。

        SeetaFace6包含人脸识别的基本能力:人脸检测、关键点定位、人脸识别,同时增加了活体检测、质量评估、年龄性别估计,并且顺应实际应用需求,开放口罩检测以及口罩佩戴场景下的人脸识别模型。

        为了满足不同级别的应用需求,SeetaFace6将开放三个版本模型:

模型名称网络结构速度(I7-6700)速度(RK3399)特征长度
通用人脸识别ResNet-5057ms300ms1024
带口罩人脸识别ResNet-5034ms150ms512
通用人脸识别(小)Mobile FaceNet9ms70ms512

1.4 DeepFace

        DeepFace 是一个轻量级的 Python 人脸识别和面部属性分析(年龄、性别、情感和种族)框架。它是一个混合人脸识别框架,包含最先进的模型:VGG-Face、Google FaceNet、OpenFace、Facebook DeepFace、DeepID、ArcFace、Dlib 和 SFace.

        主要功能:人脸检测、人脸对齐特征提取、人脸验证、人脸搜索、人脸聚类、人脸属性识别、人脸跟踪、人脸表情识别、人种识别、性别识别等。

        Github:https://github.com/serengil/deepface

1.5 InsightFace

        InsightFace 是一个开源的 2D 和 3D 深度人脸分析工具箱,主要基于 PyTorch 和 MXNet。它可以有效实现丰富多样的人脸识别、人脸检测和人脸对齐,并对训练和部署进行了优化。

        Github:https://github.com/deepinsight/insightface

2. 人脸识别开源数据库

2.1 CelebA

        CelebA 是由香港中文大学开源的人脸属性数据集,广泛用于人脸相关的计算机视觉任务,可用于人脸属性标识、人脸检测以及 landmark 标记等。该数据集包含 10177 个名人身份的 202599 张人脸图片,每张图片都做了特征标记,包含人脸 bbox 标注框、5 个人脸特征点坐标以及 40 个属性标记。

        后续基于 CelebA 还开源了一些相关数据集:CelebA-Dialog 、CelebAMask-HQ、CelebA-Spoof。其中 CelebA-Dialog 是一个大规模的视觉-语言人脸数据集,含有丰富的细粒度标签,并根据其语义将一个属性划分为多个等级;CelebAMask-HQ 是由从 CelebA 数据集中挑选的 3 万张高分辨率人脸图像组成,每张图像都有对应 CelebA 的人脸属性的分割掩码。CelebAMask-HQ 的 mask 大小为 512 × 512,有 19 类属性特征,包括皮肤、鼻子、眼睛、眉毛、耳朵、嘴巴、嘴唇、头发、帽子、眼镜、耳环、项链、脖子、布等面部部位和装饰配件;CelebA-Spoof 是一个人脸活体检测数据集,包含 10177 个主题的 625537 张图像,43 个丰富的人脸、光照、环境和欺骗类型属性。在 43 个丰富的属性中,40 个属性属于活体图像,包括所有面部信息,如皮肤、鼻子、眼睛、眉毛、嘴唇、头发、帽子、眼镜;3个属性属于欺骗图像,包括欺骗类型、环境和照明条件。

        下载地址:https://mmlab.ie.cuhk.edu.hk/projects/CelebA.html

2.2 LFW

        全名是Labeled Faces in the Wild。无约束自然场景人脸识别数据集,该数据集由13000多张全世界知名人士互联网自然场景不同朝向、表情和光照环境人脸图片组成,共有5000多人,其中有1680人有2张或2张以上人脸图片。每张人脸图片都有其唯一的姓名ID和序号加以区分。

        LFW数据集主要测试人脸识别的准确率,该数据库从中随机选择了6000对人脸组成了人脸辨识图片对,其中3000对属于同一个人2张人脸照片,3000对属于不同的人每人1张人脸照片。测试过程LFW给出一对照片,询问测试中的系统两张照片是不是同一个人,系统给出“是”或“否”的答案。通过6000对人脸测试结果的系统答案与真实答案的比值可以得到人脸识别准确率。

        这个数据集是人脸评估一定会用到的一个数据集,基本都是正脸。这个数据集也是最简单的,基本主流算法都能跑到99%以上,貌似有6对label错了,所以最高正确率应该是99.9%左右。这个都跑不到99%的话别的数据集表现效果会更差。一般来说这个数据集是用来做人脸识别验证的。

        下载链接:http://vis-www.cs.umass.edu/lfw/

2.3 MegaFace

        MegaFace 是由华盛顿大学(University of Washington)计算机科学与工程实验室于2015年针对名为 ”MegaFace Challenge” 的挑战而发布并维护的公开人脸数据集,是目前最为权威热门的评价人脸识别性能的指标之一。数据集中的人脸图像均采集自Flickr creative commons dataset,共包含690,572个身份共1,027,060张图像。这是第一个在百万规模级别的人脸识别算法测试标准。

        同LFW数据集,MegaFace 数据集中的图像也产生于自然场景,具备光照、表情、姿势和遮挡等干扰因素。但与LFW不同的是,MegaFace数据集中的人物身份均为普通人而非公众人物,并在收集过程中选取了图像的分辨率,并且保证了在图片来源在世界范围内的均匀分布。另外,在评测方法上,MegaFace 着眼于在百万级别的数据库中的1:N搜索性能。因此,相比于LFW数据集,MegaFace更贴近实际应用。

        MegaFace挑战将从Flickr Dataset中挑选的百万张人脸图像作为测试时的干扰项(distractors),而使用的搜索测试集(probes)来自于FaceScrub 数据集,共包含530个名人的10万张人脸图像,且性别比例大致相同(男性265人共55,472张,女性265人共52,076张),同一身份间人脸图像的差异也较大。为了保证同LFW的可比性,发布方随机选择了其中80个超过50张图像的身份,共4000张图片,作为最终的搜索测试集。

        与LFW相同,MegaFace评测也允许使用数据集以外的图片对模型进行训练。但由于MegaFace的百万人脸数据库均来自于普通人,在训练过程中作弊的难度很大,因此评测结果更加可信。

        下载地址:https://megaface.cs.washington.edu/dataset/download.html

2.4 Glint360K

        Glint360K是格灵深瞳开源,通过清理,合并和发布的面部识别数据集,包含 36 万类别的 1800 万张图像。

        下载地址:https://github.com/deepinsight/insightface/tree/master/recognition/partial_fc#glint360k

2.5 WebFace260M

        WebFace260M由芯翌科技与清华大学自动化系智能视觉实验室合作推出,完全基于全球互联网公开人脸数据。它的问世,一举打破了此前人脸数据集的规模:不仅规模最大,也是首次在人脸ID数目和图片数,分别达到了400万和2.6亿的规模。

        在对WebFace260M进行清洗操作后,便得到了WebFace42M。据介绍,它是目前全球规模最大、可直接用于训练的干净人脸数据集:包含200万ID、4200万图片。

        该数据集及其子集只能用于学术研究。目前,它仅对学校和研究所等非营利机构开放,对公司和企业不开放。如果要下载WebFace260M,请发送电子邮件至 info@face-benchmark.org

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/584370.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#命名空间常用函数

在C#中,不同命名空间下有各种常用函数,下面列举一些常见的函数及其对应的命名空间: System命名空间: Console.WriteLine():用于向控制台输出信息。Convert.ToInt32():用于将其他数据类型转换为整数类型。 S…

python与上位机开发day04

模块和包、异常、PyQt5 一、模块和包 1.1 模块 Python中模块就是一个.py文件,模块中可以定义函数,变量,类。模块可以被其他模块引用 1.1.1 导入模块 """ 导入格式1: import 模块名 使用格式: …

【百度Apollo】探索自动驾驶:Apollo 新版本 Beta 全新的Dreamview+,便捷灵活更丰富

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 引入一、Dreamview介绍二、Dreamview 新特性2.1、基于模式的多场景——流程更简洁地图视角调节:调试流…

JavaEE技术之MySql高级(索引、索引优化、sql实战、View视图、Mysql日志和锁、多版本并发控制)

文章目录 1. MySQL简介2. MySQL安装2.1 MySQL8新特性2.2 安装MySQL2.2.1 在docker中创建并启动MySQL容器:2.2.2 修改mysql密码2.2.3 重启mysql容器2.2.4 常见问题解决 2.3 字符集问题2.4 远程访问MySQL(用户与权限管理)2.4.0 远程连接问题1、防火墙2、账号不支持远程…

Python中的类(Class)详解——新手指南

在Python编程中,类(Class)是一个非常重要的概念,它允许程序员创建自己的对象类型。这些对象类型可以包含数据(称为属性)和函数(称为方法),它们定义了这些对象的行为。本文…

Spring-Mybatis-Xml管理(动态sql语句,sql语句复用)

目录 前置条件 动态SQL语句 动态删除数据 1.集合类型:数组 2.集合类型: List 型 SQL语句重用 说明 🧨前置条件 已经创建了实体类(这边举个例子) 实体类User表 表中的字段名User实体类的属性值id (bigint auto increment) 长整型 自动增长private Long iduser…

场景文本检测识别学习 day06(Vi-Transformer论文精读)

Vi-Transformer论文精读 在NLP领域,基于注意力的Transformer模型使用的非常广泛,但是在计算机视觉领域,注意力更多是和CNN一起使用,或者是单纯将CNN的卷积替换成注意力,但是整体的CNN 架构没有发生改变VIT说明&#x…

C++入门第二节

点赞关注不迷路!,本节涉及c入门关键字、命名空间、输入输出... 1. C关键字 C总计63个关键字,C语言32个关键字 asmdoifreturntrycontinueautodoubleinlineshorttypedefforbooldynamic_castintsignedtypeidpublicbreakelselongsizeoftypenam…

LeetCode-hot100题解—Day5

原题链接:力扣热题-HOT100 我把刷题的顺序调整了一下,所以可以根据题号进行参考,题号和力扣上时对应的,那么接下来就开始刷题之旅吧~ 1-8题见LeetCode-hot100题解—Day1 9-16题见LeetCode-hot100题解—Day2 17-24题见LeetCode-hot…

V23 中的新增功能:LEADTOOLS React Medical Web 查看器

LEADTOOLS (Lead Technology)由Moe Daher and Rich Little创建于1990年,其总部设在北卡罗来纳州夏洛特。LEAD的建立是为了使Daher先生在数码图象与压缩技术领域的发明面向市场。在过去超过30年的发展历程中,LEAD以其在全世界主要国家中占有的市场领导地位…

21.Nacos集群搭建

模拟Nacos三个节点,同一个ip,启动三个不同的端口: 节点 nacos1, 端口:8845 节点 nacos2, 端口:8846 节点 nacos3, 端口:8847 1.搭建数据库,初始化数据库表结构 这里我们以单点的数据库为例 首先新建一…

2024年 Java 面试八股文——Redis篇

目录 1、介绍下Redis Redis有哪些数据类型 难度系数:⭐ 2、Redis提供了哪几种持久化方式 难度系数:⭐ 3、Redis为什么快 难度系数:⭐ 4、Redis为什么是单线程的 难度系数:⭐ 5、Redis服务器的的内存是多大…

基于飞腾D2000全国产化高速公路一体化收费站解决方案:站数据服务器、站AI服务器、收费系统、监控系统

高速公路一体化收费站解决方案 行业 交通工程及沿路设施作为公路的一个重要组成部分,对城市互联和城市发展具有重要意义,因此围绕高速公路的专用收费 站设计和建设,将有效促进枢纽集散系统与高速公路连通,显著提升城市高速集散能…

ES的脑裂现象

目录 0 集群结点的职责1 什么是脑裂现象2 造成脑裂现象的原因2.1 网络问题(最常见)2.2 主节点负载过大,资源耗尽,别的结点ping不到主节点2.3 主节点JVM内存回收时间过长导致 3 脑裂现象的解决方案3.1 局域网部署3.2 角色分离&…

C语言从入门到精通-C静态库的生成及使用

静态库 什么是静态库 C静态库(Static Library)是C语言编程中常用的一种库文件形式。与动态库(Dynamic Library)相比,静态库在程序编译时会被完全嵌入到最终的可执行文件中,因此生成的可执行文件不依赖于外…

BiLSTM-KDE的双向长短期记忆神经网络结合核密度估计多变量回归区间预测(Matlab)

BiLSTM-KDE的双向长短期记忆神经网络结合核密度估计多变量回归区间预测(Matlab) 目录 BiLSTM-KDE的双向长短期记忆神经网络结合核密度估计多变量回归区间预测(Matlab)效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.BiLS…

后台架构总结

前言 疫情三年,全国各地的健康码成为了每个人的重要生活组成部分。虽然过去一年,但是回想起来任然历历在目。 今天我就通过当时基于小程序的健康码架构,来给大家讲一下如何基于java,springboot等技术来快速搭建一个后台业务系统…

人工智能分割分类model:nnUnet-paddle

文章目录 神经网络nnUnet和paddle都需要在Ubuntu下进行安装PaddleProject 神经网络 开源来自https://github.com/MIC-DKFZ/nnUNet 自建了仓库,但还不会用 来自 mmsegmentation有空去了解 . MICCAI 2020 也是用到这个网络 paddle上的是不是不能用… nnUnet和pad…

Linux基础IO(下)

目录 1. 缓冲区 1.1 定义 1.2 理解缓冲区 1.2.1 为什么要有缓冲区 1.2.2 缓冲区的工作原理 缓冲区什么时候写入,什么时候刷新? 2. 文件系统 2.1 什么是文件系统? 2.2 为什么要有文件系统? 2.3 认识文件的管理结构 2.…

绩效评估与持续反馈

高绩效团队认识到评论和反馈的商业价值,这是两种关键的绩效管理工具。绩效管理是 2023 年受访者最优先考虑的五项人力资源举措之一,学习和发展是另一项举措,绩效评估和持续反馈最近可能会受到人力资源团队的更多关注。 在这里,我…