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

本文详细介绍了人脸识别领域的开源算法库(如OpenCV、Dlib、SeetaFace6、DeepFace和InsightFace)及其功能,同时涵盖了常用的人脸识别开源数据库(如CelebA、LFW、MegaFace、Glint360K和WebFace260M),旨在帮助开发者加速人脸识别技术的应用。
摘要由CSDN通过智能技术生成

目录

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

  • 24
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Android人脸识别是指利用Android操作系统平台上开源人脸识别技术进行人脸认证和识别的应用程序开发。在Android平台上有多种人脸识别开源和框架可供选择,例如OpenCV、Face Recognition等。 OpenCV是一个强大的开源计算视觉,其中包括了人脸检测和识别的相关算法和函数。通过在Android应用中引入OpenCV,可以轻松实现人脸识别功能。该提供了多种人脸检测算法,如Haar Cascade、LBP等,以及人脸关键点检测和特征匹配算法,可实现更精确的人脸识别。 除了OpenCV,还有一些专门面向Android平台的人脸识别开源,如Face Recognition。这个基于深度学习技术,提供了高性能的人脸检测、特征提取和人脸比对功能。它能够在移动设备上实时进行人脸识别,具有较高的准确率和鲁棒性。 通过使用以上这些开源,开发者可以在Android平台上轻松实现人脸识别功能。这些提供了丰富的API和文档,方便开发者进行集成和使用。同时,由于是开源的,开发者还可以根据需要进行修改和定制,以满足特定的应用场景需求。 总之,Android人脸识别开源提供了方便快捷的人脸识别解决方案,为开发者的应用程序增加了更高的安全性和用户体验。 ### 回答2: 人脸识别技术是一种通过计算软件或硬件对人脸图像进行识别和验证的技术。随着智能手的普及和发展,人脸识别技术也得到了广泛应用。在Android平台上,也存在一些开源人脸识别,为开发者提供了便利。 开源意味着源代码是公开的,开发者可以自由查看、修改和重新分配。在Android平台上,一些知名的人脸识别如OpenCV、dlib、Google Play Services等都是开源的。这些提供了丰富的人脸识别算法和功能,包括人脸检测、特征提取、识别和验证等。 使用开源人脸识别,开发者可以快速集成人脸识别功能到自己的应用中。通过调用中的接口,可以实现人脸图像的检测和识别,并可根据需求进行进一步的功能扩展和定制。这些还通常提供了丰富的文档和示例代码,方便开发者学习和使用。 同时,开源还可以通过社区的力量不断改进和优化。开发者可以与其他使用相同的人进行交流,分享经验和解决问题。在社区的支持下,开源人脸识别也会不断更新和升级,以适应不断变化的需求和技术发展。 综上所述,Android平台上存在开源人脸识别,通过使用这些,开发者可以方便地实现人脸识别功能,并与其他开发者进行交流和分享。开源人脸识别为Android开发者提供了便利和灵活性,推动了人脸识别技术的发展与应用。 ### 回答3: 当前市场上存在多种开源的Android人脸识别方案,这些方案都可以帮助开发者在自己的应用中实现人脸识别功能。 其中一个比较常用的开源是OpenCV(Open Source Computer Vision Library),它是一个跨平台的计算视觉,提供了丰富的图像处理和分析功能。在OpenCV中,有专门的人脸识别模块可以用于检测和识别人脸。开发者可以使用该来构建自己的Android人脸识别应用。 此外,还有名为Face++的人脸认证开放平台,它也提供了一套Android SDK来支持人脸检测、人脸识别等功能。Face++是一家专注于人工智能技术的公司,他们的人脸识别技术在国内外都被广泛应用于各类应用场景,目前是业界比较知名的开源人脸识别解决方案之一。 这些开源方案不仅提供了人脸识别的基本功能,而且通常还具备性能优化和丰富的人脸特征处理能力,能够识别各种不同场景下的人脸,同时还提供了一些高级功能如情绪检测、年龄检测等。开发者使用这些开源方案时需要阅读相应的文档,并根据需求进行相应的集成和调试,以实现自己所需的人脸识别功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值