Press "Enter" to skip to content

解释人脸检测:最先进的方法和最好的工具

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

我们中的许多人都使用过不同的Facebook应用程序来看我们变老,变成摇滚明星,或者化了节日妆。这种面部变形的浪潮通常伴随着警告不要分享你的脸的图像-否则,它们将被处理和滥用。

 

但是,人工智能在现实中是如何使用人脸的呢?让我们讨论人脸检测和识别的最新应用。

首先,检测和识别是不同的任务。人脸检测是人脸识别的关键部分,在不记忆或存储细节的情况下确定图片或视频上的人脸数量。它可能会定义一些人口统计数据,如年龄或性别,但它不能识别个人。

 

人脸识别根据预先存在的人脸数据库识别照片或视频图像中的人脸。人脸确实需要注册到系统中,才能创建独特的面部特征数据库。然后,系统将新图像分解为关键特征,并将它们与存储在数据库中的信息进行比较。

 

人脸检测方法

 

首先,计算机检查照片或视频图像,并尝试将人脸与背景中的任何其他对象区分开来。有一些计算机可以用来实现这一点的方法,即补偿照明、方向或相机距离。Yang,Kriegman和Ahuja提出了人脸检测方法的分类。这些方法分为四类,人脸检测算法可以分成两组或更多组。 Yang, Kriegman, and Ahuja

基于知识的人脸检测

 

这种方法依赖于人类根据我们的知识制定的一套规则。我们知道,一张脸必须有鼻子、眼睛和嘴巴,它们之间必须保持一定的距离和位置。此方法的问题在于构建一组适当的规则。如果规则过于笼统或过于详细,系统最终会出现许多误报。然而,它并不适用于所有的肤色,并且取决于可以改变图片中人皮肤的确切色调的照明条件。

模板匹配

 

该模板匹配方法使用预定义的或参数化的人脸模板,通过预定义的或可变形的模板与输入图像之间的相关性来定位或检测人脸。人脸模型可以通过边缘检测的方法由边缘来构建。

该方法的一种变体是受控背景技术。如果您幸运地拥有正面脸部图像和纯背景,则可以删除背景,保留脸部边界。

 

对于这种方法,软件有几个分类器,用于检测各种类型的正面人脸和一些用于侧面人脸的分类器,例如眼睛、鼻子、嘴巴的检测器,在某些情况下,甚至整个身体的检测器。虽然该方法易于实现,但通常不适用于人脸检测。

 

基于特征的人脸检测

 

基于特征的方法提取人脸的结构特征。它被训练成分类器,然后用来区分面部和非面部区域。该方法的一个示例是基于颜色的面部检测,其扫描彩色图像或视频以寻找具有典型肤色的区域,然后查找面部分段。

 

Haar特征选择依赖于人脸的相似属性来根据面部特征形成匹配:眼睛、嘴巴、鼻梁的位置和大小,以及像素强度的方向梯度。共有38层级联分类器,从每个正面人脸中获得总计6061个特征。你可以在这里找到一些经过预先训练的分类器。定向梯度直方图(HOG)是一种用于目标检测的特征提取器。提取的特征是图像的梯度(定向梯度)的方向分布(直方图)。 here

 

定向梯度直方图(HOG)是一种用于目标检测的特征提取器。提取的特征是图像的梯度(定向梯度)的方向分布(直方图)。

 

渐变通常是大的圆形边和角,并允许我们检测这些区域。它们不考虑像素强度,而是计算渐变矢量的出现次数,以表示定位图像段的光方向。该方法使用重叠的局部对比度归一化来提高精度。

基于外观的人脸检测

 

更高级的基于外观的方法依赖于一组代表训练人脸图像来找出人脸模型。它依靠机器学习和统计分析来发现人脸图像的相关特征,并从中提取特征。此方法结合了几种算法:

 

基于特征脸的算法使用主成分分析(PCA)有效地表示人脸。将主成分分析应用于一组图像以降低数据集的维数,最好地描述数据的方差。在该方法中,人脸可以建模为特征脸(特征向量的集合)的线性组合。在这种情况下,人脸识别基于线性表示系数的比较。

 

基于分布的算法,如PCA和Fisher判别法,定义了表示面部模式的子空间。它们通常具有训练有素的分类器,该分类器从背景图像图案中识别目标图案类的实例。

 

隐马尔可夫模型是检测任务的标准方法。它的状态将是面部特征,通常被描述为像素条带。

 

WINNOW的稀疏网络定义了两个线性单元或目标节点:一个用于面部图案,另一个用于非面部图案。

 

朴素贝叶斯分类器基于训练图像上一系列图案的出现频率来计算人脸出现在图片中的概率。

 

归纳学习使用昆兰的C4.5或米切尔的Find-S等算法来检测人脸,从最具体的假设开始,然后进行推广。

 

神经网络,如Gans,是检测问题的最新和最强大的方法之一,包括人脸检测、情感检测和人脸识别。

 

视频处理:基于运动的人脸检测

 

在视频图像中,您可以使用移动作为向导。一个特定的脸部运动是眨眼,所以如果软件可以确定规则的眨眼模式,它就可以确定脸部。

各种其他动作表明,图像可能包含一张脸,例如张开的鼻孔、扬起的眉毛、皱皱的额头和张开的嘴巴。当检测到脸部并且特定脸部模型与特定运动相匹配时,该模型被放置在脸部上,使得脸部跟踪能够拾取进一步的脸部运动。最先进的解决方案通常组合几种方法,例如,提取特征以用于机器学习或深度学习算法。

 

人脸检测工具

 

有几十种人脸检测解决方案,既有专有的,也有开源的,它们提供了各种功能,从简单的人脸检测到情感检测和人脸识别。

 

专有人脸检测软件

 

Amazon Rekognition基于深度学习,并完全集成到Amazon Web服务生态系统中。这是一个稳健的人脸检测和识别解决方案,适用于检测“高兴”、“悲伤”、“愤怒”等八种基本情绪。同时,使用该工具,您可以在一张图像中最多确定100张人脸。有视频选项,不同的用途定价不同。 Amazon Rekognition option for video

 

Face++是一款人脸分析云服务,也有iOS和Android的离线SDK。您可以执行不限数量的请求,但每秒只能执行3个请求。它还支持Python、PHP、Java、Javascript、C++、Ruby、iOS、Matlab,提供性别和情感识别、年龄估计和地标检测等服务。 Face++

 

它们主要在中国运营,资金特别充足,并以包含在联想产品中而闻名。然而,请记住,其母公司Megvii已于2019年末受到美国政府的制裁。

 

Face Recognition and Face Detection API(Lambda Labs)提供人脸识别、面部检测、眼睛位置、鼻子位置、嘴巴位置和性别分类。它每月提供1000个免费请求。 Face Recognition and Face Detection API (Lambda Labs

 

Kairos提供多种图像识别解决方案。他们的API端点包括识别照片和视频中的性别、、面部识别和情感深度。他们提供14天免费试用,最多10000次请求,提供php、js、.net和python的SDK。 Kairos

 

Microsoft Azure Cognitive Services face API允许您每月发出30000个请求,每分钟免费发出20个请求。对于付费请求,价格取决于每月的识别次数,从每1000次识别1美元起。功能包括年龄估计、性别和情感识别、地标检测。SDK支持Go、Python、Java、.Net和Node.js。 Microsoft Azure Cognitive Services Face API

 

Paravision是一家面向提供自托管解决方案的企业的人脸识别公司。人脸和活动识别以及冠状病毒解决方案(带面具的人脸识别、与热检测的集成等)都在他们的服务范围内。该公司拥有用于C++和Python的SDK。 Paravision

 

TrueFace也在为企业服务,提供性别识别、年龄估计和地标检测等功能,作为一种自托管解决方案。 Trueface

 

开源的人脸检测解决方案

 

Ageitgey/Face_Recognition是一个拥有40k星的GitHub存储库,是最广泛的人脸识别库之一。贡献者还声称它是“最简单的Python和命令行面部识别API”。然而,它们的缺点是最晚发布到2018年,模式识别准确率为99.38%,这在2021年可能会好得多。它也没有睡觉接口。 Ageitgey/face_recognition

 

DeepFace是一个Python框架,在GitHub上有15k颗星,提供年龄、性别、种族和情感等面部属性分析。同时提供睡觉接口。 Deepface

 

Google开发的FaceNet使用Python库来实现。该存储库号称有11,8k的启动。与此同时,上一次重大更新是在2018年。识别准确率为99,65%,没有睡觉接口。 FaceNet

 

InsightFace是另一个在GitHub中有92k星的Python库,存储库正在积极更新。识别正确率为99.86%。他们声称为人脸检测、识别和比对提供了多种算法。 InsightFace claim

 

睡觉是一个积极更新的存储库,它“旨在为InsightFace人脸检测和识别管道提供方便、易于部署和可扩展的睡觉API,使用FastAPI提供服务,使用NVIDIA TensorRT进行优化推理。” InsightFace-REST

 

OpenCV不是一个API,但它是一个有价值的工具,拥有3000多个优化的计算机视觉算法。它为开发人员提供了许多选项,包括特征面识别器、LBPHFacerecognizer或lpbhfacerecognizer人脸识别模块。 OpenCV

 

OpenFace是深度神经网络人脸识别的Python和Torch实现。它依赖于CVPR 2015年的论文FaceNet:一种用于人脸识别和聚类的统一嵌入。 OpenFace FaceNet: A Unified Embedding for Face Recognition and Clustering

 

底线

 

人脸检测是进一步的人脸分析的第一步,包括识别、情感检测或人脸生成。然而,收集所有必要的数据以进行进一步处理是至关重要的。稳健的人脸检测是复杂的识别、跟踪和分析工具的先决条件,也是计算机视觉的基石。

 

原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/06/18/%e8%a7%a3%e9%87%8a%e4%ba%ba%e8%84%b8%e6%a3%80%e6%b5%8b%ef%bc%9a%e6%9c%80%e5%85%88%e8%bf%9b%e7%9a%84%e6%96%b9%e6%b3%95%e5%92%8c%e6%9c%80%e5%a5%bd%e7%9a%84%e5%b7%a5%e5%85%b7/

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注