开始 让你自己跟上我们的介绍内容。

构建面部识别工具的机器学习技巧

即使是在十年前,人们也很难相信计算机能够驾驶汽车或轻易地识别猫的图片。当时的编程和人工智能工具很难让计算机看到周围的世界并准确处理这些信息。

在过去的10年里,机器学习已经从一个研究领域慢慢成长为一种成熟的技术,具有现实世界的应用,如今被一些顶级组织和多个行业所使用。在最基本的层次在美国,机器学习创造的算法可以解决技术组织面临的一些最复杂、最有趣的问题。

许多这些问题都从科幻小说中迈出了成立的事实。有些人已经变得积极变得非常容易,如手写识别,现在是机器学习的“Hello World”。通过Exadel自己的体验为客户开发机器学习计划,我们希望分享一些使用机器学习技术的DO和不做。

从表面上看,机器学习过程的结果看起来很像传统编程,因为最终产品是一个处理信息的程序化算法。当谈到如何创建机器学习程序时,它实际上看起来非常不同。

如何创建机器学习模型

首先,在创建模型时要注意以下几点:不要像传统软件开发那样定义需求、设计系统或算法、编写代码、测试或迭代。

使用机器学习,你必须以一种容易受到机器学习影响的方式来描述问题,然后你必须理解你是否有可以帮助解决问题的数据。接下来,定义一个模型,使用训练数据训练模型测试模型,希望你的培训成功的可能性很高。如果没有,你就调整你的模型并重新培训。

人脸识别应用开发

我们的一个客户来找我们帮忙开发一款应用程序,让安全签到办公场所变得更简单。客户要求简化访客签到过程并避免重复的数据输入。当有人登记到办公室时,他们必须在前台的平板电脑上输入一些信息,包括姓名和电话号码。出于隐私的原因,每次都需要重新输入,因为我们不能简单地提供一个之前登记过的所有人的列表。对来访者来说,重新输入这些信息是重复的,但对客户来说,知道谁在办公室以及如何与他们取得联系是很重要的。为了使这一过程自动化,并为信息提供安全保障,我们决定使用面部识别来识别访客,并了解他们以前是否来过办公室。如果他们之前在那栋楼里,我们会有一张照片在他们再次拍照时可以认出他们。我们决定使用机器学习、开源工具和开源项目作为基准。毫不奇怪,我们找到了现有的工具来开发这个应用程序。

在现有应用程序中,当访客首先到办公室时,他们填写了平板电脑的信息,而平板电脑拍摄了他们的照片。登记工具现在具有配置文件和可用于识别每个人的图像。

要创建这个面部识别系统,我们使用了一些现成的机器学习和计算机视觉(CV)组件:

  • Python:一般是当今机器学习选择的语言。
  • Tensorflow:一个开放源码的机器学习和神经网络工具包。Tensorflow是用于数值计算和大规模机器学习的库。
  • scikit-learn:简单有效的数据挖掘和数据分析工具。
  • scipy:科学和技术计算的免费和开放源码库。
  • numpy:一个Python库,支持大型多维阵列,具有大型功能库,用于在这些阵列上运行。
  • OpenCV:一个针对实时计算机视觉的开源函数库。

这些都是机器学习项目中非常常用的工具。我们一直在使用和调整开放源代码,将所有这些组件捆绑在一起,包括使用Tensorflow的人脸识别GitHub项目

开发要做面部识别的代码和工具很重要,但如上所述,机器学习的核心是培训模型,直到测试数据的结果 - 从未在训练期间进行评估 - 提供高度足够高的水平成功地说,发达的神经网络算法可以识别设置的人 - 在这种情况下,检查前台。

数据在这里也很重要。最佳实践说明您应该有培训数据、验证数据和测试数据。组织使用训练数据(模型从中学习的数据)来训练模型。机器学习专家使用验证数据来检查训练过的模型。机器学习专家可能会根据这种验证改变或调整输入。这是开发模型的迭代过程的一部分。除了最后的测试步骤,机器学习模型永远不会看到测试数据。它是只在模型完全训练后才使用的黄金标准。它可以用来比较两种不同的、经过训练的模型的成功。

预处理和训练过程如下所示:

  1. 发现面对:找到图像中的脸。真实世界的图像包含的不仅仅是脸,所以你必须首先隔离组成脸的各个部分。
  2. 摆姿势和投影面部:即使每个图像具有相同的比例,即使是最好的计算机算法也在更好地工作。我们需要对准图像框架内的面部,以改善其与机器学习模型的使用。
  3. 计算脸部嵌入脸部:人类使用人类可读的视觉特征来描述人脸之间的差异,如鼻子大小、脸宽或眼睛颜色。我们使用神经网络来自动确定机器可读的特征。
  4. 使用嵌入培训模型:我们用图像训练模型或使用训练模型的步骤。

一旦我们对模型进行了训练和测试,我们就可以部署它,这样平板电脑程序就可以使用它来检查新创建的图像,看看它们是否与以前去过办公室的人相符。

我们创建了一个web API,平板电脑应用程序用它来发送一张照片,以便将新图像与图像数据库进行匹配。

机器学习仍然是一项相对新生的技术,但它的应用开始变得更加普遍。随着我们开始更好地理解机器学习的最佳实践和用途,组织必须准备好与竞争保持一致的技能。

所有物联网议程网络贡献者对其帖子的内容和准确性负责。观点是作者的,并不一定传达物联网议程的思想。

搜索首席信息官
搜索安全
搜索网络
搜索数据中心
搜索数据管理
关闭