2018 年 8 月

第 33 卷,第 8 期

人工智能 - 探索自定义影像服务

通过Frank La La |2018 年 8 月

Frank La Vigne一个 Microsoft Azure 中可用的更有吸引力的认知服务是自定义影像服务,允许用户轻松地创建自定义计算机影像模型。一直以来,训练的图像分类器所需数千个,而如果不是数万个,每个类来生成模型准确性足以供实际使用的映像。此外,您还需要掌握在神经网络的机制。自定义影像服务提供屏蔽基础复杂性的易于使用 Web UI。

更有甚者,自定义影像服务可以创建相当准确的自定义图像分类器,每个类,只需少量的 15 或 20 个映像尽管文档建议的最低配置的每个类的 50 个映像。通常情况下,图像分类器的质量将提高具有更多培训映像。自定义影像服务还公开通过 REST API 来简化这些模型部署的已训练的模型。

在 Build 2018 大会上,其中一个主题演讲演示涉及的无人操作的空中交通工具或无人机,对一系列管道来检测缺陷和维护问题在不断充电。在演示中,无人机流式传输回便携式计算机从其摄像机视频。在便携式计算机评估针对已训练的自定义影像模型,向你发出警报在管道中看到任何缺陷的无人机运算符的映像。在本文中,我将模拟类似人工智能 (AI)-扩充维护模型使用训练跟踪检测问题。若要执行此操作,我将探索自定义影像服务,并演示如何将自定义图像分类添加到任何应用或网站是多么容易。

源映像以对训练

使用自定义影像服务创建计算机影像模型涉及三个简单步骤:

  1. 上传的图像集并将其标记。
  2. 训练和生成模型训练按钮单击。
  3. 使用 Web 界面或 REST Api 来评估模型的性能。

它是实际开始这么简单。但当您开始溯源用于训练模型的映像必须小心。

最近为客户演示,我一系列的图像的训练跟踪通过收集 Internet。这些映像包括正常训练跟踪和具有严重缺陷。只需少量的 30 映像后,我就能够生成自定义影像模型来检测具有大约 80%的跟踪缺陷作为我的演示文稿的一部分的准确性。到那时,令人印象深刻可能是,我已快速为指向任何生产就绪的图像分类模型需要训练的图像,等等跟踪在各种不同的光照条件,角度的客户。这种多样性的分类数据隔离的训练图像,将会严重影响结果的正确功能的算法的可能性。

没有经典和可能是有关神经网络定型 apocryphal、 警告故事。图例说明什么在 20 世纪 80 年代的研究人员所面临时美国军队决定来训练神经网络来检测 tanks。根据该情景,神经网络很好地对执行作为实验的一部分的测试数据。但是,当神经网络提供了新的映像进行分类,它执行严重。

研究人员 dumbfounded,直到他们意识到,其中包含用于设计的所有映像好像已都执行 overcast 日时多晴天都获取了缺少油罐的所有映像。神经网络分隔两个类的照片,并选择将基于的天空颜色而不是一个罐的状态的两个集区分开来。显然,这是不什么军队的需要。有关罐检测情景的全面探索,可以查看 Neil Fraser 原始处执行写操作向上bit.ly/2llxudb,但他的文章的这一部分会相当于此处用引号括起来:

"它是神经网络背后的最大问题的完美说明。任何自动训练净值且具有较多的几十个神经元是几乎是不可能分析和理解。一个无法判断 net 是否具有所存储的输入,或者不真实以其他方式。"

尽管本文上次更新于 2003年,但此报价单仍如此今天。完成工作的更好地了解复杂的神经网络的内部工作机制,但这项工作正在进行的但几乎不能超出其新兴的阶段。当前,最佳做法是对包含一组不同的训练数据的源数据。这有助于区分基于正确的变量的映像的算法。

若要避免图像版权问题,我决定利用本文中我的孩子们大型玩具训练跟踪集合。这也使我能够创建定型集和快速测试图像。我学完 34 映像并将其分为三个名为破坏、 Normal 和测试的文件夹。映像与"中断"训练跟踪均处于中断文件夹,并与连续跟踪映像是普通文件夹中。我随机选择一系列的图像上测试该模型并将其放置在测试文件夹中。与我的源映像选择和标记,就可以创建模型。

 

创建模型

在浏览器中,我将转到 customvision.ai,并单击登录按钮来使用我的 Microsoft 帐户登录。登录后,我单击新的项目来创建新的自定义影像项目。

在下一个对话框,我输入"玩具培训"项目名称和项目的简要描述。我将资源组下拉列表保留为默认设置的受限试用版,并确保单选按钮的项目类型和域分别设置为分类和常规。接下来,我单击创建项目按钮创建新的自定义影像项目。图 1显示了这些设置。

创建新项目对话框
图 1 创建新项目对话框

上载图像

创建项目后,网站会提示你上传图像。单击添加映像,在以下对话框中单击浏览本地文件,以查找要上载的映像。首先,我将图像上传中断文件夹中它们全部选中,然后单击浏览对话框中打开。在下面的图像的文本框中,我输入词破坏,然后单击蓝色加号来标记映像与中断的标签。然后,我单击上载按钮来上传 15 图像。此步骤中所示图 2。接下来,我单击完成完成此步骤。

带标记的中断的跟踪图像
图 2 标记断开的跟踪图像

现在,中断的训练轨道的映像上传时,就可以上传正常文件夹中的图像。若要执行此操作,我单击窗格的左上角的图标包含在其上的加号。此按钮将突出显示在图 3。我重复前面的步骤,若要上传的输入的图像,除这一次,我选择图像中的普通文件夹并标记标签正常使用的映像。我单击上载按钮来传输映像,然后单击完成以关闭该对话框。

将更多映像添加到训练数据
图 3 将更多映像添加到训练数据

与所有示例映像上传和标记,就可以训练和测试模型。

训练模型

向页的顶部,没有带上它的齿轮的绿色按钮。我单击它来训练具有当前带有标记的图像的模型。花费一点时间之前完成培训后,Web 页时返回与模型中所示的性能指标图 4

培训结果和性能指标
图 4: 训练结果和性能指标

显示的两个主要度量值是模型的精度和召回率。精度表示何种频率预测的结果正确,而召回度量预测的标记是正确的频率的百分比。换而言之,回想一下,则表示当正确的答案是"破坏,"何种频率模型将预测"断开"。 混淆矩阵术语的进一步说明,参阅"简单指南到混淆矩阵术语"网址bit.ly/2IbRoAi

测试模型

现在就应该留作测试以查看模型如何将执行时显示新的映像的映像上测试模型。即时绿色培训按钮的右侧,没有标记为快速测试的按钮。我单击它以打开测试对话框,然后单击浏览本地文件按钮以显示文件上传对话框。我使用此对话框来测试文件夹中选择一个映像并单击打开上传的文件。片刻之后,该算法将计算该映像后显示其结果。图 5显示此映像包含 79.2%的正常轨迹,60.2%的可能性会被破坏的可能性。请记住,对于此项目,Normal 表示则跟踪将不间断,或连续。

若要快速测试对话框中的一组相邻的跟踪
图 5 快速测试对话框中的一组相邻的跟踪

我再次运行测试的中断轨道,另一个映像与通过再次单击浏览本地文件按钮。这次我选择轨道的中断一的映像。模型报告 95.9%可能会出现此被破坏的跟踪和仅 11.2%的正常正在跟踪的可能性。若要了解模型性能优异,其中它具有标识跟踪的正确状态的问题的测试文件夹中测试出与文件的其余部分的模型。

对于进一步试验,我在 Internet 上执行图像搜索和复制图像 URL 并将其粘贴到测试 UI 上的文本框。这些映像描述训练跟踪从不同角度和与不同的图像的定型集的光照条件不同的图面上。这将提供如何神经网络工作上的一个透视和一组不同的示例数据至关重要的生产就绪模型成功为何。以下三个 Url 指向我从网上找到一些示例图像 (请注意如何在模型将每一图像分类):

此外,最好知道时其作用域之外给定一个图像分类器的行为方式。例如,如何将此分类器中,可以确定的玩具训练跟踪状态,给定一个图像 neon 登录时起作用?这被称为底片图像处理和有效的模型应该预测值接近于零,在这种情况。若要测试此扩展,我到文本框中输入以下 URL: http://datadriven.tv/wp-content/uploads/2018/05/50k.png。我的预测模型生成的结果为正常的 1.7%和破坏的 0%。

深入学习…

对于此示例中,我创建了两个类图像分类系统,其中该模型仅具有标签图像的玩具训练跟踪为中断或正常。但是,我可以创建更复杂的模型。目前,自定义影像服务 S0 (标准) 层可支持最多 250 个唯一的标记,这意味着可以将训练分类 250 单独的标签。此外,服务可以处理每个项目的最多 50,000 个图像。

此外,生成的自定义影像服务模型可以导出边缘计算设备上使用,并且不要依赖于云服务的访问权限。这意味着我无法在设备上的将模型加载并对映像脱机的情况下进行分类。目前,自定义影像服务支持三种格式的模型导出:TensorFlow 适用于 Android 设备的 iOS 设备和 ONNX 的 Windows 设备的 CoreML。此外,自定义影像服务可以创建 Windows 或 Linux 的容器,其中包含 TensorFlow 模型和代码来调用 REST API。有关导出模型,从而在边缘设备上运行的更多详细信息请参阅参考文档,网址bit.ly/2K4ibjL

在本文中,我演示了以开始使用自定义影像服务并生成具有一组有限的训练数据的计算机影像模型是多么容易。此技术的可能用途之一是拥塞的从流量照相机访问图像数据和训练一个模型来检测不同级别完全根据该数据。以前,自动执行此类任务会非常艰巨,,因为它所必需的专业的知识和大量标记的训练数据。但是,自定义影像服务组合和易于使用的界面来创建一种工具,将打开到更广泛使用的计算机视觉最先进的神经网络技术。


Frank La Vigne是 Microsoft 作为 AI 技术解决方案专业人员,他帮助各家公司获益更多通过充分利用其数据与分析和 AI。他还共同主持 DataDriven 播客。他定期在 FranksWorld.com 上发表博客,你还可以在他的 YouTube 频道“Frank’s World TV”(FranksWorld.TV) 中看到他。

衷心感谢以下技术专家对本文的审阅:Andy Leonard 和 Jonathan Wood


在 MSDN 杂志论坛讨论这篇文章