人脸识别几个开源

人脸识别几个开源
1.OpenFace
Github:https://github.com/TadasBaltrusaitis/OpenFace
OpenFace是一个用于计算机视觉和机器学习的工具,能够进行各种面部识别检测,包括:特征点检测、头部姿态识别、面部动作识别和眼睛注视识别。此外,它还能够从网络摄像头无需任何专业硬件实现人脸实时识别功能。
OpenFace 是基于 Python 和Torch 的神经网络算法实现,它的理论来自facenet。

2.face_recognition
GitHub: https://github.com/ageitgey/face_recognition
face_recognition 是一个强大、简单、易上手的人脸识别开源项目,并且配备了完整的开发文档和应用案例,并且兼容树莓派系统。本项目是一个非常简洁的人脸识别库,可以使用 Python 和命令行工具提取、识别、操作人脸。本项目的人脸识别是基于业内领先的 C++ 开源库 dlib 中的深度学习模型,用 Labeled Faces in the Wild 人脸数据集进行测试,有高达 99.38% 的准确率。但对小孩和亚洲人脸的识别准确率尚待提升。
其中,Labeled Faces in the Wild是美国麻省大学安姆斯特分校(University of Massachusetts Amherst)制作的人脸数据集,该数据集包含了从网络收集的13,000多张面部图像。

3.InsightFace
GitHub: https://github.com/deepinsight/insightface
InsightFace是一个基于PyTorch和MXNet的开源2D 3D深度人脸识别分析工具,与MXNet相比,基于OneFlow的实现方案在性能方面更优秀,OneFlow在数据并行时速度是其2.82倍;模型并行时速度是其2.45倍;混合并行+Partial fc时速度是其1.38倍。基于OneFlow实现的代码已合并至 insightface的项目仓库,其中包含了数据集制作教程、训练和验证脚本、预训练模型以及和MXNet模型的转换工具。InsightFace高效地实现了丰富的 最先进的人脸识别、人脸检测和人脸对齐算法,这些算法针对训练和部署进行了优化,该解决方案的准确性非常高——在LFW数据集上为99.86%。
ArcFace、SubCenter-ArcFace、RetinaFace等都是InsightFace支持的项目。

4.facenet
Github:https://github.com/davidsandberg/facenet
FaceNet是谷歌公司于 2015 年提出了基于深度学习的人脸识别系统。FaceNet是一个多用途的识别系统,可以同时用于人脸验证(是否是同一人)、识别(这个人是谁)和聚类(寻找类似的人)。在使用标准“人面数据库”进行测试时,FaceNet 的识别精度可以达到近乎百分之百,在面对 2.5 亿张人脸的庞大数据库时,仍能保持 86% 的识别正确率。目前提供的两个预训练模型,在LFW的成绩分别是99.05%和99.65%
FaceNet 的基本原理是通过直接训练一个深度卷积神经网络,将人脸图像映射到 128 维的欧几里得空间,不同人脸图像在欧几里得空间中的距离与图像相似度相关:那么两幅人脸图像特征向量间的“欧式距离”越小,表示两幅图像是同一个人的可能性越大。

使用FaceNet推理的过程大致为以下几个步骤:
数据预处理:常规人脸识别数据集中的图像往往包含整个人体头部及部分环境背景,并且人脸时常有倾斜(歪头、侧脸),在将此类图像输入至模型以前,需要对图像“真人脸”部分进行切图,去除无关的背景信息,并对切出的人脸图像进行对齐,而后才可用于训练。
按照特定规则加载数据集:FaceNet 系统使用了一种新型的数据导入方式:以两张匹配的图片(同一个人的两张图片)以及一张不匹配的图片(另一个人的一张图片)为一个三元组,并以组为单位载入数据集。
使用大型骨干网络提取人脸特征信息:选择合适的深度卷积神经网络,对输出层进行修改后,即可进行人脸特征提取。常用的深度卷积神经网络包括 resnet 系列、Inception 系列等。
对人脸特征信息进行 L2 范数归一化:深度卷积神经网络输出的结果是 128 维超空间中的特征向量,需使用 L2 正则化将 128 维超空间中的点规范化到 128 维超球面上。筛选出有效特征。
损失计算与更新梯度:计算三元损失函数(Triplets Loss),使模型快速超目标方向优化。

5.deepface
Github:https://github.com/serengil/deepface
deepface是python的轻量级面部识别和面部属性分析(年龄,性别,情感和种族)框架。您只需几行代码就可以应用面部分析。它弥合了软件工程和机器学习研究之间的鸿沟,非常适合想开车但不会造车的你。
Deepface是一个混合人脸识别软件包。它目前包装了许多最先进的人脸识别模型:VGG-Face、Google FaceNet、OpenFace、Facebook DeepFace、DeepID、ArcFace、Dlib和SFace。默认配置使用VGG-Face模型。

6.CompreFace
Github:https://github.com/exadel-inc/CompreFace
Exadel CompreFace是领先的免费开源人脸识别系统。该人脸识别算法可以被轻松集成到任何系统中,而无需事先掌握机器学习技能。 
系统提供用于人脸识别、人脸验证、人脸检测、地标检测、面罩检测、头部姿势检测、年龄和性别识别的REST API;支持在CPU和GPU上运行模型; 该项目还包含角色管理系统,可以控制谁有权访问面部识别服务。另外,CompreFace提供了docker-compose配置,方便以Docker的模式快速部署人脸服务。

 

参考: https://www.51cto.com/article/770027.html

 

 

posted @ 2024-01-30 14:09  玥茹苟  阅读(1065)  评论(0编辑  收藏  举报