具有面部识别功能的移动应用程序正在崛起

想象一下,一个应用程序可以实时分析用户在与应用程序或网站交互时的情绪反应,或者想象一下一个应用程序可以识别的家庭电视并调到你最喜爱的电视频道,其实这些都与面部识别技术有关。

为什么面部识别在崛起?

面部识别技术并不新鲜,但预计未来几年会有新的增长机会,推动进步的主要因素是在各种商业领域中应用面部识别的无限种方式。以下是几个例子:

  • 系统安全
  • 面部识别可以广泛应用为安全认证方法,不久前,或许通过新闻我们都听过亚马逊发明了一种称为“用户身份验证的图像分析”的身份验证方法,它使用户能够通过在摄像机前执行某个动作(微笑或眨眼)来进行交易,从而确认他们的身份。
  • 用户安全
  • 应用面部识别技术来解决困倦驾驶员的问题,一个特殊的程序会评估司机的疲惫程度,通过不断分析他们的眼睛和头部的位置,系统可以决定工厂操作员是否需要唤醒呼叫。
  • 用户参与
  • 提高客户对咖啡馆,餐馆和酒店的忠诚度的一种方法是使用面部识别技术亲自欢迎他们。

以上例不仅需要软件,还需要摄像机,服务器和其他基础设施,这是我们考虑重点。

面部识别技术如何运作

面部识别是图像分析技术的增强应用,输入是图像或视频流。输出是识别或验证图像或视频中出现的对象。通常,面部识别系统以下列方式工作,面部识别过程通常被定义为一个五步过程:

  1. 面部检测和跟踪,
  2. 面部对齐,
  3. 特征提取,
  4. 功能匹配,
  5. 面部识别。

面部检测是识别扫描图像内的人脸的过程,特征提取涉及获得相关的面部图案 - 面部区域(例如眼睛间距),变化,角度和比率 - 以确定对象是否是人。最后,系统尝试识别面部并将其与存储在数据库中的名称相匹配。

面部识别有很多种方法,所有算法之间的主要区别在于特征的计算以及它们彼此之间的数据集的比较。我们可能首先选择的方法是主成分分析和神经网络的结合。

主成分分析

​主成分分析(PCA)是面部识别中最流行和最精细的算法之一,图像表示为小维向量(主要成分),然后将其与来自数据库的基准向量进行比较。PCA的主要目的是显着降低功能的维度,使其能够描述不同面部的“典型”特征。这是它的工作原理。

首先,将输入的训练面部组变换为一个公共数据矩阵。

具有面部识别功能的移动应用程序正在崛起

使用该矩阵,输入的图像被分解成一组线性系数,称为主成分或特征脸。

计算每个面部图像的主要分量,该算法通常需要5到300个特征脸。其余组件识别面部与图像中背景噪声之间的微小差异。实际上,识别过程涉及将未知图像的主要成分与所有其他图像的成分进行比较。

主成分分析已得到充分证明,然而,在亮度或面部表情发生显着变化的情况下,该方法的有效性显着降低。该问题的解决方案是使用Fisher的线性判别式(aka Fisherface)。实验表明,在倾斜照明或面部图像阴影的条件下,Fisherface仍然具有95%的效率,而特征脸方法的效率为53%。

人工神经网络

人工神经网络是一种流行的面部识别方法,它们用于特征提取和决策。最广泛使用的选项之一是基于多层感知器的网络,其允许根据预训练网络对输入图像进行分类。

具有面部识别功能的移动应用程序正在崛起

神经网络自动提取关键特征,确定其重要性并建立它们之间的关系,假设经过训练的神经网络将能够将在训练过程中获得的经验应用于未知图像,这要归功于其概括的能力。与多层感知器相比,卷积神经网络在分析视觉图像时显示出最佳结果,因为它们能够考虑图像的二维拓扑结构,这就是卷积神经网络受尺度变化,偏差,转弯,角度和其他扭曲影响较小的原因。

通常,主成分分析和神经网络的组合如下,从图像中提取面部并使用PCA通过一组特征面来描述面部,然后通过学习描述符的正确分类,使用神经网络来识别面部。

一般我们使用到面部识别技术开源库是OpenCV库允许免费实现面部识别,OpenCV适用于面部检测,而不是实时面部识别,所以需要经验丰富的开发人员和投入大量时间研究。

尽管面部识别有一定的局限性,例如姿势,光照和图像质量的变化,但是该技术越来越受欢迎,并最终将成为用户日常生活的一部分。提供面部识别技术的简单实现的平台使用不同的算法,因此可以用于各种类型的应用程序。