无需编写任何代码即可构建和部署对象检测模型?

点击上方关注,All in AI中国

这篇文章由来自加拿大德勤的人工智能部门Omnia AI的Alex Akulov和Ryan Peyman共同撰写。

无需编写任何代码即可构建和部署对象检测模型?

使用Azure自定义视觉上的计算机视觉模型对卡车进行对象检测

想象一下,快速构建和部署最先进的对象检测模型,而无需编写任何代码。计算机视觉工具和软件实际上已经走了很长的路来实现这一点。

几年前,要实现它,你必须知道如何编码,熟悉深度学习框架,并有耐心去破译复杂的研究论文。而今天在本文中,我们将向您展示如何在几分钟内构建对象检测原型模型,并解释新兴工具如何帮助“民主化”计算机视觉解决方案的创建。

Azure Custom Vision允许您构建和部署对象检测模型,而无需编写任何代码。

所有主要的云提供商都在竞相提供预先构建的计算机视觉模型。从场景检测和内容审核到文本提取和情商,现在可以随时使用。

但是,当涉及到超出常见用例范围时,AWS和Google将向您指出各自的Data Science笔记本环境。我们发现Azure采用了不同的方法。其Custom Vision产品允许您无需编写任何代码即可构建和部署对象检测模型。这意味着温和的学习曲线和快速的原型团队想要测试他们的计算机视觉想法。

但首先,这个想法应该解决一个适合计算机视觉的问题。

确定要解决的业务问题

计算机视觉模型应该为决策提供信息。在商业中,没有任意一处是为了人工智能而实现人工智能的。整体业务目标是什么?是什么阻碍我们实现这一目标?是否有图像或视频可以用于深度学习应用程序?这些是在识别计算机视觉业务应用程序时要问的一些关键问题。

我们的目标是演示Azure Custom Vision的功能。为此,我们选择了一个监控港口作业中卡车到终端交通的示例问题。

在此过程中,集中式运营协调员必须通过实时视频输入连续监控终端流量(参见下面的视频输入示例图像),以确保终端车道永远不会拥挤到卡车溢出附近的高速公路,从而破坏当地交通。

无需编写任何代码即可构建和部署对象检测模型?

终端门视频输入(来源)

从协调员的角度来看,不断检查数十个监视器中的一个,以发现偶尔的拥塞事件是一项相当耗时且平凡的任务。协调员是非常忙碌的人,在24/7高压环境中工作,检查许多视频信息,以查看事故、火灾和非法侵入等供应链事件。

无需编写任何代码即可构建和部署对象检测模型?

典型的供应链运营中心

为了帮助协调员专注于更多关键任务,让我们尝试通过在Azure Custom Vision(ACV)上训练计算机视觉模型来证明自动化终端拥塞监控。

该过程可分为5个步骤:

无需编写任何代码即可构建和部署对象检测模型?

计算机视觉的机器学习过程

1.获取图像

温哥华港在他们的网站上提供终端网络摄像头。为了训练高精度模型,我们想要标记至少100-150个图像。手动保存100多个网络摄像头图像是一项繁琐的工作,所以让我们使用一个简短的python脚本来加快速度。请注意,这是本文中我们使用代码来节省时间的唯一地方。

import urllib.request as r, time

# Direct link to the terminal webcam feed
imgURL = '''http://www1.pacificgatewayportal.com/webcams/Photos
/CentermMainGates/CentermMainGates_New.jpg?1430944227172'''

for i in range(100):
 r.urlretrieve(imgURL, f"images_{i}.jpg") # Scrapecurrent image
 time.sleep(30) # Wait 30 seconds

2.标签图像

接下来,让我们进入www.customvision.ai,创建一个账户和一个新项目。完成后,我们使用界面上传我们上面已经删除的图像。单击“添加图像”,然后导航到要上载的文件夹。

接下来,标签的任务可以开始。 ACV提供的界面非常直观,能够在您想要检测的每个对象周围绘制矩形边界框。可以将多个标签应用于每个边界框。在这种情况下,我们需要的唯一标签是卡车,但您的用例可能会有更多种类。

无需编写任何代码即可构建和部署对象检测模型?

为卡车打标签的过程

通常,建议每个标签至少标记50个图像,以作为工作概念验证模型。如果您的用例需要检测多种类型的对象,请确保您有足够的训练图像来捕获不同的场景。

标签需要时间,但如果您有原型的自定义业务问题,这是不可避免的。我们对Azure Custom Vision的看法是,该功能内置于解决方案中,使用起来非常直观。

无需编写任何代码即可构建和部署对象检测模型?

带标签的图像是什么样子的

3.训练模型

这是最简单的部分。只需单击一下,我们就可以在Azure Custom Vision中训练神经网络,根据标记的样本对图像上的卡车进行对象检测。该过程需要几分钟到几个小时,具体取决于训练图像数据集。

无需编写任何代码即可构建和部署对象检测模型?

对用户隐藏了计算机视觉模型训练的复杂性

4.评估模型

所以我们训练了一个模型,但我们怎么知道它有什么好处呢?理想情况下,给定终端门的图像,模型应检测图像中的每个卡车。在这种情况下,检测意味着将图像的矩形部分识别为卡车,具有一定的置信度。

我们可以使用“快速测试”选项尝试使用新图像:

无需编写任何代码即可构建和部署对象检测模型?

快速测试允许我们立即查看模型输出

Custom Vision提供了一个方便的滑块,可以更改模型应该使用的最小置信度。如果我们将阈值降低到13%,模型将检测到更多的卡车,但误报的数量也会增加。这里需要达到一个平衡,在这种情况下我们决定使用50%的门槛。

无需编写任何代码即可构建和部署对象检测模型?

降低概率阈值会增加误报

这还不错,但模型没有检测到每辆卡车。更具体地说,在图像中的14辆卡车中,该模型至少有50%有信心找到8辆。仅基于该测试图像,模型的召回率为8/14 = 57%。我们也可以说模型的精度是8/8;也就是说,模型确实检测到的卡车中,100%的都是卡车(即没有误报)。

Azure Custom Vision为模型的每次迭代提供查全率和精确率。平均精度(mAP)是一个更复杂的描述度量方法。

无需编写任何代码即可构建和部署对象检测模型?

评估模型性能的关键指标

5.部署

只要我们在Azure Custom Vision门户中训练了模型,它就已经部署好了,并通过API提供。从门户外部进行API调用将需要设置菜单中提供的预测端点和密钥。

无需编写任何代码即可构建和部署对象检测模型?

向模型API节点发送请求所需的信息

Microsoft还提供了一个有用的API测试工具,可以让您快速查看模型的原始输出 - JSON字符串。

我们完成了!

Azure Custom Vision等工具真正的亮点在哪里?

通过几个步骤和最少的代码,我们使用Azure Custom Vision创建了计算机视觉概念验证模型。虽然ACV当然可以用于创建生产规模的解决方案,但在模型控制和定制方面存在局限性。如果您需要完全控制流程的各个方面,那么就不必避免使用深度学习ML框架。

我们认为使用开箱即用的无代码工具(如ACV)最重要的价值在于获得AI概念验证,并运行它以测试解决方案的可行性。虽然Azure是目前唯一提供无代码工具来创建CV模型的主要提供商,但鉴于此领域的巨大竞争,期望其他PaaS提供商也会效仿。

使用ACV等工具的最大价值在于快速测试AI解决方案是否可行

这对企业来说是个好消息,因为它通过降低测试CV解决方案的成本,有效地降低了人工智能采用的门槛。根据谷歌总监杰夫·迪恩所说,鉴于世界上“数百万”的组织“有一个适合机器学习解决方案的问题”,这样的工具只能帮助推动人工智能的采用。

当然,有效的工具只是硬币的一面。创建AI解决方案的另一个必要条件是拥有合适的人才,无论使用何种工具,都能理解数据科学以及基础模型的工作方式。不幸的是,仍有很缺乏有能力的个人。这也是您看到非传统参与者(如专业服务公司)提供人工智能和分析服务以满足需求的部分原因。

事实上,这正是我们在Omnia AI,(德勤加拿大的人工智能业务)所做的:我们帮助组织使用AI来解决他们的紧迫问题。像ACV这样的新兴工具可以在这个过程的早期阶段发挥重要作用。

来源:https://towardsdatascience.com/rapid-computer-vision-prototyping-with-azure-f051cc7462b7

无需编写任何代码即可构建和部署对象检测模型?

编译出品

相关推荐