了解面部识别的不同算法

介绍

任何面部检测和识别程序或系统都必须以人脸识别算法为核心。这些算法由专家分为两大类。几何方法专注于识别特征。为了从图像中提取值,应用了光度统计方法。然后,为了删除变体,将这些值与模板进行比较。此外,算法可以分为两组:基于特征的模型和整体模型。虽然整体方法将人脸视为一个整体,但前者侧重于面部特征并评估其空间特征并与其他特征的联系。

在图片识别方面,人工神经网络是应用最广泛、最有效的技术。神经网络同时执行许多数学过程,神经网络是面部识别系统的基础。

算法执行三个主要功能:识别图像、视频或实时流中的人脸;创建人脸的数学模型;并将模型与训练集或数据库进行比较以确认一个人的身份。

本文介绍了最著名的面部识别算法和重要特征。由于每种方法都具有特定于任务的优势,因此研究人员一直在尝试方法组合并创造新技术。

算法

1)卷积神经网络

人工神经网络(ANN)和人工智能开发的创新之一是卷积神经网络(CNN)。使用最广泛的深度学习技术之一教授模型直接对图像、视频、文本或声音执行分类任务。在计算机视觉、自然语言处理(NLP)和最大的图像分类数据集领域,该模型表现出出色的结果(Image Net)。卷积层和池化层已被添加到典型的神经网络中以创建 CNN。对于CNN来说,这些层可以达到数百甚至数千,并且每个层都获得了识别各种图像元素的能力。

2)哈尔级联

一种在图像上查找对象的方法称为Haar Cascade。该算法从大量的正样本和负样本中学习,其中正样本包含感兴趣的对象,负样本包含其他任何对象。分类器可以在训练后识别新鲜照片上有趣的对象。将该技术与本地二进制模式算法相结合,用于刑事识别以识别人脸。即使表达式波动,Haar 级联分类器也需要 200(共 6000 个)特征才能保证 85-95% 的识别率。

3)特征面

图片数据集中的人脸方差是使用人脸检测和识别算法特征面找到的。在机器学习的帮助下,它使用这些变体对人脸进行编码和解码。通过统计分析许多不同的面部照片,产生一组称为一组特征面部的“标准化面部成分”。由于这种方法不使用数字图像,而是使用统计数据库,因此面部特征被赋予数值。这些变量以不同百分比的混合构成了每个人的面孔。

4)Fisherfaces

作为最受欢迎的面部识别算法之一,Fisherfaces被认为优于许多竞争对手。它经常被比作特征面作为对Eeigenfaces方法的增强,并且在整个训练过程中被认为在类区分方面更有效。该算法的主要优点是它能够推断和插值照明和面部表情的变化。据报道,当在预处理阶段与PCA方法结合使用时,Fisherfaces算法的准确率为93%。

5)内核方法:PCA和SVM

主成分分析(PCA)是一种包罗万象的统计技术,具有广泛的实际用途。PCA旨在最大限度地减少源数据的数量,同时在人脸识别过程中使用时保留最关键的细节。它产生许多加权特征向量,这些特征向量组合形成特征面,特征面是各种人脸图片的相当大的集合。训练集中的每张图像都由特征面的线性组合表示。这些特征向量是使用 PCA 从训练图像集的协方差矩阵中获得的。计算每个图像的主要元素(从 5 到 200)。人脸和噪点之间的细微区别由其他组件编码。作为识别过程的一部分,将未知图像的主要成分与所有其他图像的主要成分进行比较。

一种称为支持向量机(SVM)的机器学习技术采用两组分类原理来区分人脸和“非人脸”。SVM 模型为每个类别提供一个标记的训练数据集,以便对新的测试数据进行分类。对于人脸识别,研究人员使用线性和非线性SVM训练模型。最近的发现表明,非线性训练机具有更大的余量和卓越的识别和分类结果。

6)三维识别

3D人脸识别技术背后的基本概念是人类头骨的独特设计。每个人独特的头骨解剖结构可以用多种因素来解释。这种形式的面部识别通过将3D面部扫描与数据库中的模式进行比较来工作。它具有至关重要的好处,因为检测和识别程序不受化妆品,面部毛发,眼镜和其他此类特征的影响。最近的研究利用了一个将3D几何数据映射到普通2D网格上的系统。它表现出FRGC v2上记录的最高性能,并且能够将3D数据的描述性与2D数据的计算效率(人脸识别大挑战3D面部数据库)集成在一起。

7)局部二进制模式直方图(LBPH)

局部二进制模式 (LBP) 是计算机视觉中一种简单、高效的纹理运算符,该技术通过为每个像素设置邻域阈值,然后将结果视为二进制数来标记图像中的单个像素。LBPH方法在学习阶段为每个标记和分类的图像生成直方图。训练集中的每个图像都由不同的直方图表示。在这种方法中,比较任何两张照片的直方图是实际识别程序所需要的。

8)FaceNet

基于人脸识别的基准数据集,谷歌研究人员在2015年创建了FaceNet人脸识别系统。由于现成的预训练模型和多个开源第三方实现,该系统非常有名。与其他早期开发的算法相比,FaceNet在研究调查,测试性能和准确性方面具有良好的结果。FaceNet有效地提取人脸嵌入,这是在开发过程后期用于训练人脸识别算法的卓越功能。

总结

存在许多面部识别算法和技术。尽管它们都有一个共同的主要目标,但它们可能因任务或问题而异。它们的范围从神经网络和数学模型到专有技术解决方案,具体取决于用途和实施情况。

本文讨论了这些最流行的算法和技术。然而,更多的研究和科学测试证明了集成多种算法以改善面部识别结果的无可争辩的优势。它导致针对某些用途量身定制的新方法和工艺的出现。

现在有一个世界上最简单的用于Python和命令行的面部识别API。face_recognition命令可让您识别照片或文件夹中的人脸。每个面的输出中有一行。数据以逗号分隔,文件名和找到的人员的姓名。

 ⭐️ 优质书籍推荐

分布式一致性算法开发实战

了解面部识别的不同算法_第1张图片

【内容简介】

《分布式一致性算法开发实战》分为11章,第1章简单介绍分布式一致性算法,第2章详细分析Raft算法,第3章在第2章的基础上进行整体设计,第4~8章逐个讲解基于Raft算法的KV服务的各个组件的实现,第9章讲解日志快照,第10章是生产环境必需的服务器成员变更功能,第11章介绍一些相关的Raft算法优化。

你可能感兴趣的:(人工智能,算法,深度学习)