文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

六个优秀的开源人脸识别项目

2024-11-30 07:14

关注

人脸识别特指利用分析比较人脸视觉特征信息进行身份鉴别的计算机技术。广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。

传统的人脸识别技术主要是基于可见光图像的人脸识别,人们也比较熟悉这样的识别方式。不过,这种方式的缺点其实非常明显,光线的限制性非常大。随着技术发展,也出现了一些新的解决方案,例如:三维图像人脸识别、热成像人脸识别等。

在开源领域这些年也出现了一些非常优秀的人脸识别项目,这些项目开源且免费,并且也能达到某些应用场景的使用要求。本文重点介绍这些开源项目。

1.OpenFace

Github:https://github.com/TadasBaltrusaitis/OpenFace

OpenFace是一个用于计算机视觉和机器学习的工具,能够进行各种面部识别检测,包括:特征点检测、头部姿态识别、面部动作识别和眼睛注视识别。此外,它还能够从网络摄像头无需任何专业硬件实现人脸实时识别功能。

OpenFace 是基于 Python 和Torch 的神经网络算法实现,它的理论来自facenet。

它的功能包括:

(1)面部标志检测

(2)面部标志和头部姿势跟踪

(3)面部动作单元识别

(4)凝视跟踪

(5)面部特征提取

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多张面部图像。

 本项目还提供了简易的face_recognition命令行工具,可以用它处理整个文件夹里的图片。

它的主要功能包括:

(1)定位图片中的所有人脸

import face_recognition
image = face_recognition.load_image_file("your_file.jpg")
face_locations = face_recognition.face_locations(image)

(2)识别人脸关键点,包括眼睛、鼻子、嘴和下巴。

import face_recognition
image = face_recognition.load_image_file("your_file.jpg")
face_landmarks_list = face_recognition.face_landmarks(image)

识别人脸关键点在很多领域都很有用,比如本项目的自动化妆案例( digital make-up):https://github.com/ageitgey/face_recognition/blob/master/examples/digital_makeup.py。

(3)识别图片中的人是谁

import face_recognition
known_image = face_recognition.load_image_file("biden.jpg")
unknown_image = face_recognition.load_image_file("unknown.jpg")

biden_encoding = face_recognition.face_encodings(known_image)[0]
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]

results = face_recognition.compare_faces([biden_encoding], unknown_encoding)

(4)实时人脸检测

它可以配合其它的Python库(比如opencv)实现实时人脸检测:

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推理的过程大致为以下几个步骤:

5.deepface

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

deepface是python的轻量级面部识别和面部属性分析(年龄,性别,情感和种族)框架。您只需几行代码就可以应用面部分析。它弥合了软件工程和机器学习研究之间的鸿沟,非常适合想开车但不会造车的你。

Deepface是一个混合人脸识别软件包。它目前包装了许多最先进的人脸识别模型:VGG-Face、Google FaceNet、OpenFace、Facebook DeepFace、DeepID、ArcFace、Dlib和SFace。默认配置使用VGG-Face模型。

根据实验测试,性能较好的有:FaceNet、VGG-Face、ArcFace和Dlib。可以在其创建者声明的Labeled Faces in the Wild和YouTube Faces in the Wild数据集中找到这些模型的得分。

deepface主要提供以下人脸识别算法,具体对应功能为:

(1)人脸验证

(2)人脸识别

dfs = DeepFace.find(img_path = "img1.jpg", db_path = "C:/workspace/my_db")

(3)人脸属性分析

DeepFace.stream(db_path = "C:/User/Sefik/Desktop/database")

(4)人脸检测

(5)人脸特征提取

(6)人脸实时分析

6.CompreFace

Github:https://github.com/exadel-inc/CompreFace

Exadel CompreFace是领先的免费开源人脸识别系统。该人脸识别算法可以被轻松集成到任何系统中,而无需事先掌握机器学习技能。 

系统提供用于人脸识别、人脸验证、人脸检测、地标检测、面罩检测、头部姿势检测、年龄和性别识别的REST API;支持在CPU和GPU上运行模型; 该项目还包含角色管理系统,可以控制谁有权访问面部识别服务。另外,CompreFace提供了docker-compose配置,方便以Docker的模式快速部署人脸服务。

CompreFace支持多种人脸识别服务,包括:

(1)人脸检测

人脸检测的使用场景很多,例如:收集商店在不同性别中受欢迎程度的统计数据;收集有关您的活动在哪些年龄段受欢迎的统计数据;获取地标信息,了解客户的视线;收集商店里有多少顾客的统计数据;确认所有顾客是否正确佩戴口罩。

(2)人脸识别

(3)面部验证

(4)特征检测

(5)年龄识别

(6)性别识别

(7)口罩检测

(8)头部姿势检测

(9)用户、角色和访问管理

来源:andflow内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯