https://www.toutiao.com/a6627350069320352269/

2018-11-24 17:03:02

究竟机器是如何识别面部呢?

那么,在回答这个问题之前,我们必须定义一些重要的词。

机器学习(Machine learning):一种通过从数据或经验中学习,对未知输入数据进行预测,从而使计算机无需显式编程就能学习的技术。

机器学习模型为一组输入产生输出,然后将其与所需输出进行比较。机器学习用于输入和输出之间没有经验关系的应用中。

深度学习:基于人工神经网络,它是一种从人类大脑的结构和功能中获得灵感的机器学习技术。

它使用大量处理层和大型数据集作为输入,以提高预测精度。

在本文中,我想以零售店中应用的面部识别为例。实际上,这项技术可以在很多方面使用:

  • 改善店内个性化
  • 提供一对一的个性化购物体验
  • 了解游客购买模式

过去,当你走进当地的商店时,店主会认出你,向你打招呼,或许还会给你一些东西。今天,通过市场营销,零售商的目标是在面部识别中重现这种购物体验。

人脸识别系统用一个图像或视频时,从数据库标识和识别人。面部识别所涉及的众多的挑战包括:

  • 信息冗余: 当你把一个100×100的面部图像,得到25610000 = 280000种可能的组合强度值。
  • 人际差异: 两个不同的人的图像可能看起来相似。
  • 内部变化: 如果你拍摄同一个人的两张照片,它会变得有点复杂,因为它们可能是姿势的变化,面部表情的变化甚至是衰老等时间变化。

面部识别

让我们分析几种与面部识别相关的现有方法。

1)经典方法

经典方法是使用数据的领域知识来选择特征以创建特征,然后通过机器学习算法对特征进行分类。经典方法仅适用于小型数据集。而且,它对姿势,光照或遮挡的有一定要求。

2)现代方法

神经网络将自己找到特征。这适用于大型数据集,并且对姿势,照明等不变.Facebook的DeepFace和Google的FaceNet使用这种方法。

人脸识别系统的高级图:

在面部识别阶段,预处理图像用于正确识别人的面部。在面部检测阶段,系统检测图像中是否存在面部,并且如果存在面部,则绘制图像的面部标志并执行面部对齐。然后使用深度学习技术来识别该人是谁。

3)方向梯度直方图(HOG)

HOG:用于计算机视觉和图像处理的特征描述符,用于对象检测。该技术计算图像的局部部分中的梯度方向的出现。

该技术可以在图像的局部部分中发现图像梯度或强度变化,以提取与边缘和形状相关的特征。HOG特征使用支持向量机分类器进行分类,以进行面部检测。

基本上,系统将从更大的图像中提取您的脸部。然后将该图像与参考图像上的平均界标进行比较,并使用仿射变换进行对准。即使拍摄对象的图像倾斜,在执行仿射变换之后图像也会变得良好对齐。仿射变换是一种线性映射方法,可以保留点直线和平面,而不会造成任何失真。之后,使用深度学习方法将创建的图像用于面部识别。

深度学习和HOG

1.面部学习

具有深度学习架构的神经网络使用图像来提取图像特定的特征和标签。然后将这些特征存储为嵌入向量(每个用户的面部)。

2.面部匹配

当新的输入图像添加到系统时,它从该图像中提取特征并将其与学习的特征向量进行比较以执行相似性测量。输出决定是否存在匹配或不匹配。

相似性可以通过余弦或欧几里德方法来测量。

卷积神经网络

CNN:使用感知器的特定类型的人工神经网络,机器学习单元算法,用于监督学习,以分析数据。

卷积神经网络(CNN)是计算机视觉中使用最广泛的深度学习架构。

为什么要用神经网络呢?

  • 需要更小的存储器,在空间中的不同位置使用相同的filter 系数
  • 在视觉和自然语言处理方面非常有效
  • 不同姿势,部分障碍物等不变

它是如何工作的?

它具有卷积层,非线性激活函数层,池化层和全连接层。池化层的功能是减小图像的空间维度,并且来自该层的输出是连接的神经网络。

学习是如何在神经网络中发挥作用的呢?

神经网络的目标是什么?

调整参数以使训练样本更接近期望的结果。我们根据成本函数定义参数。显然,成本函数是误差,需要最小化。

Total cost= Σn i=1 cost(i)

卷积层中的filter 参数和全连接的神经网络层中的突触权重是通常调整的参数,以最小化成本函数。基于随机梯度下降(SGD)的学习用于训练CNN。

SGD:用于优化可微分目标函数的迭代方法

卷积层的示例

输入5×5图像,用3×3 filter矩阵进行卷积。

我们从输入图像块和filter图像的点积得到一个特征图。当您沿不同方向移动该窗口时,我们会获得该对象的不同视角。此外,如果在输入图像上滑动filter图像,结果将是特征图或特定于滑动区域的特征组合。

ReLU激活函数

ReLU: 是一种 激活函数。在数学上,它被定义为y = max(0,x)。

ReLU是现在世界上最常用的激活函数。它几乎用于所有卷积神经网络或深度学习。

ReLu在CNN中引入了非线性。它通过在输入图像中为负像素值返回零来选择性地激活神经元,并且不激活特定神经元。如果输入大于零,则返回强度等于输入值的输出值。实际上,经过校正的滤波器图像只有非负值。

最大池化

最大池化:基于样本的离散化过程。目标是对输入表示(图像,隐藏层输出矩阵等)进行下采样,降低其维数并允许对包含在子区域中的特征进行合并。

在该层中,表示的空间大小越来越小。

最大池化:

抽象形式的表示是通过将输入划分为较小的池区域并在每个区域中取最大值来实现的。在下面的示例中,如果我们取5,11,0和4,则输出元素包含2×2矩阵的最大值,即11。

通过将多个CNN构建块堆叠在一起来形成深度架构。深度学习过程涉及随机初始化卷积中的filters并自动学习网络中最重要的参数。

使用SVD和反向传播,网络经过训练以正确识别人的面部。如果我们更深入地了解其他卷积层,则filter使用先前卷积层的输入执行点积,以将像素分类到边缘。深度学习模型执行分层学习以组合多级输出以更好地完成边缘检测。

深度学习架构将面部表示为N×N矩阵中的特征向量。

对营销影响

能够识别和研究您的客户/访客是品牌的真正资产。我们可以想象一对一的个性化购物体验,店内流量分析,更好地了解店内顾客路径等。

品牌将能够收集更多相关数据并改进其产品/服务。

使用深度学习进行基于AI的面部识别的不同方法相关推荐

  1. 一文读懂深度学习:这个AI核心技术被美国掌控,很危险

    2019-11-28 18:39:22 "中国有多少数学家投入到人工智能的基础算法研究中?" 今年4月底,中国工程院院士徐匡迪等多位院士的发声,直击我国在算法这一核心技术上的缺失, ...

  2. NLP深度学习:基于TensorFlow实现Skip-Gram模型

    作者丨天雨粟 知乎专栏丨机器不学习 地址丨https://zhuanlan.zhihu.com/p/27296712 前言 本篇文章将利用TensorFlow来完成Skip-Gram模型.还不是很了解 ...

  3. 劲爆!有人不用深度学习做强AI?道翰天琼认知智能机器人平台API接口大脑为您揭秘

    劲爆!有人不用深度学习做强AI?道翰天琼认知智能机器人平台API接口大脑为您揭秘 认知智能是计算机科学的一个分支科学,是智能科学发展的高级阶段,它以人类认知体系为基础,以模仿人类核心能力为目标,以信息 ...

  4. 深度学习实战—基于TensorFlow 2.0的人工智能开发应用

    作者:辛大奇 著 出版社:中国水利水电出版社 品牌:智博尚书 出版时间:2020-10-01 深度学习实战-基于TensorFlow 2.0的人工智能开发应用

  5. Python深度学习:基于TensorFlow

    作者:吴茂贵,王冬,李涛,杨本法 出版社:机械工业出版社 品牌:机工出版 出版时间:2018-10-01 Python深度学习:基于TensorFlow

  6. Python深度学习:基于PyTorch [Deep Learning with Python and PyTorch]

    作者:吴茂贵,郁明敏,杨本法,李涛,张粤磊 著 出版社:机械工业出版社 品牌:机工出版 出版时间:2019-11-01 Python深度学习:基于PyTorch [Deep Learning with ...

  7. 深度学习入门 基于Python的理论与实现

    作者:斋藤康毅 出版社:人民邮电出版社 品牌:iTuring 出版时间:2018-07-01 深度学习入门 基于Python的理论与实现

  8. 【深度学习】基于Pytorch进行深度神经网络计算(一)

    [深度学习]基于Pytorch进行深度神经网络计算(一) 文章目录 1 层和块 2 自定义块 3 顺序块 4 在正向传播函数中执行代码 5 嵌套块 6 参数管理(不重要) 7 参数初始化(重要) 8 ...

  9. 【深度学习】基于Pytorch进行深度神经网络计算(二)

    [深度学习]基于Pytorch进行深度神经网络计算(二) 文章目录 1 延后初始化 2 Pytorch自定义层2.1 不带参数的层2.2 带参数的层 3 基于Pytorch存取文件 4 torch.n ...

最新文章

  1. 2.3. 实体(Core Data 应用程序实践指南)
  2. 从系统的启动过程分析,为什么我们划分分区的时候 /sbin 、/bin、/lib、/dev不能做为独立的分区?...
  3. CCNP学习笔记(5)
  4. UA MATH563 概率论的数学基础2 随机变量1 随机变量与分布函数
  5. P7099-[yLOI2020]灼【数学期望,结论】
  6. 一 MVC - HtmlHelper
  7. Vue 组件开发 - 数据输入框组件
  8. python批量_Python学习第九十三天:Python批量处理图片
  9. android byte转string_Dig101 - Go之string那些事
  10. win7与internet时间同步出错_windows7 internet系统时间同步出错超时怎么办?国内NTP时间同步服务器地址...
  11. 网络设置管理 NetSetMan Pro v4.7.1 Lite 绿色便携版
  12. Windows 下快速删除大量文件的办法
  13. 液压与气动传动(PLC控制)
  14. GAN的评价图像评价指标(IS和FID)
  15. 修改html文字大小,css如何调整字体大小?
  16. 自动驾驶 Apollo 源码分析系列,感知篇(三):红绿灯检测和识别
  17. 狐狸逮兔子——链式存储方式
  18. springMVC实现图片打包下载
  19. python处理skl参数、ubuntu下翻译选中文字
  20. 第三方API接口对接-电子合同的实现逻辑

热门文章

  1. ORACLE空值漫谈1
  2. 全新升级,《区块链技术进阶与实战(第2版)》正式上市
  3. 《JavaScript高级程序设计》(第2版)上市
  4. SCAN Learning to Classify Images without Labels(翻译)
  5. invertible Conditional GANs for image editing
  6. TensorFlow学习笔记(二十三)四种Cross Entropy交叉熵算法实现和应用
  7. 独家 | Transformer的可视化理解——深入本质探索其优良表现的原因(附链接)...
  8. 独家 | 机器学习真实案例研究:基于文本描述的交易聚类
  9. 8800个机器学习开源项目为你精选TOP30!
  10. 波士顿动力送狗抗疫:头顶iPad,背装对讲机,说是减少医患接触,但性价比真的OK吗?...