在 Azure Custom Vision 上训练自定义对象检测模型(第 1 部分):收集数据和训练模型





5.00/5 (2投票s)
在本文中,我们将演示如何训练一个模型来检测图像中是否存在人。
人工智能(AI)已成为我们日常生活的基本组成部分。从社交媒体和网络搜索到智能助手、地图导航和面部识别,人工智能无处不在。然而,要理解这些智能应用程序的功能,通常仅限于拥有大量机器学习和深度学习知识的 AI 专家。
微软提供了 Azure Cognitive Services 来消除这些障碍,它将机器学习算法作为一项独特的服务提供。这些服务的可用性彻底改变了理解和构建智能应用程序的能力。曾经仅限于经验丰富的 AI 专家才能实现的功能,现在已对所有经验水平的开发人员开放。现在,开发人员只需一个云订阅即可访问这些服务,使他们能够在不编写高级机器学习算法代码的情况下,将 AI 功能集成到他们的应用程序中。
Azure Cognitive Services 包含多个预训练的 API 服务,因此在本篇文章的范围内几乎不可能全部介绍。相反,本文系列将专注于 Custom Vision 服务。其目标是使机器学习模型能够确定图像中何时何地存在人。然后,该模型可以识别行人何时出现在车辆前方。该模型运行在 IoT 设备上,持续监控车辆前方的道路。
此演示的代码可在 GitHub 上找到。
首先,本文将探讨使用 Azure Custom Vision 训练对象检测模型的流程。然后,在 第二篇文章中,我们将测试该模型,以确保其已准备好部署。最后,在 本系列的第三篇也是最后一篇文章中,我们将在 Raspberry Pi 上部署该模型,该模型已准备好安装在车辆中,用于实时行人检测。
什么是 Azure Custom Vision?
Azure Custom Vision 是一项图像识别服务,它允许在没有任何机器学习专业知识的情况下,为自定义域构建和训练图像识别模型。Custom Vision 服务使用提供的图像集来定制预训练的图像识别模型,以适应特定的用例。
由于它使用了预训练模型,因此该服务在训练特定用途的模型时,既不需要大量数据集,也不需要很长的训练时间。此外,Custom Vision 服务提供了一个简单的用户界面 (UI) 来训练和测试模型,然后将训练好的模型添加到应用程序中。
设置 Custom Vision 服务
要使用 Azure Custom Vision 训练人体检测模型,您需要:
Azure 帐户提供 12 个月的免费热门服务和 200 美元的积分,供您 30 天内充分探索 Azure。
在 Azure 中创建 Custom Vision 资源
在通过 Custom Vision 训练对象检测模型之前,我们必须在 Azure 中创建一个 Custom Vision 资源。此单一资源允许您上传训练图像、训练图像识别模型以及测试模型。所有这些操作都可以通过编写一行代码来完成。
要创建自定义视觉资源,请使用您的 Microsoft 帐户登录 Azure 门户。登录后,单击 **创建资源**。
在下一页,单击 **Custom Vision**。然后,在 **Custom Vision** 页面上,单击 **创建**。
在 **创建 Custom Vision** 页面上,选择您的订阅和资源组。如果您之前未创建资源组,请单击 **创建新资源** 来创建一个新的资源组并为其命名。
接下来,选择一个区域,为您的资源命名,并为训练和预测选择免费层。输入所有必需的详细信息后,单击左下角的 **审阅 + 创建**。
您的服务将在几秒钟内验证设置。验证完成后,单击 **创建**。
部署可能需要一些时间,具体取决于您的连接。成功后,单击 **转到你的资源** 以在您的资源组中找到训练和服务。
我们已成功部署 Custom Vision 服务。下一步是创建一个 Azure Custom Vision 帐户。
创建 Azure Custom Vision 帐户
现在您的服务已在 Azure 中运行,您可以创建 Custom Vision 门户中的项目并开始训练您的模型。但是,在构建项目之前,您需要一个 Azure Custom Vision 帐户。
因此,请访问 Azure Custom Vision 服务。
在此处,使用与您的 Azure 订阅关联的 Microsoft 帐户登录,并接受服务条款。
成功登录即表示您的 Custom Vision 帐户已准备就绪。现在您可以在门户中创建项目了。
在 Custom Vision 门户中创建项目
在 Custom Vision 门户主页上,单击 **新建项目**。
在下一页,为您的项目命名(在本例中为“pedestrian-detection
”),并选择一个资源。由于这是一个经典的物体识别问题,请将项目类型选择为 **Object Detection**,并将域选择为 **General (compact) [S1]**,因为只有经过紧凑型域训练的模型才能导出。
填写所有必填字段后,单击 **创建项目**。
项目完成后,将加载项目主页。您的设置现已完成,您可以开始训练您的模型了。
构建检测人的模型
Custom Vision 服务需要上传一组用户选择的图像并相应地进行标记。这些图像将定制图像识别模型以适应特定用例。
由于目标是检测图像中是否存在人,因此图像数据集必须包含人。为此,可以使用 Kaggle 上提供的 INRIAPerson
数据集。在继续之前,请下载数据集中的照片。
在 Custom Vision 门户的项目页面上,单击 **添加图像**。
从 INRIAPerson
训练数据集中选择几张图像并上传文件。
接下来,标记上传的图像。
单击第一张图像以打开一个包含该图像的扩展窗口。将鼠标悬停在图像上,选择感兴趣的对象(在本例中为人),并将其标记为 human
。
对剩余的照片重复此过程。
标记完所有图像后,单击门户右上角的 **训练**。
接下来,选择 **快速训练**,然后单击 **训练**。
模型需要一些时间进行训练。训练完成后,将显示模型的性能统计数据。
后续步骤
Azure Custom Vision 服务简化了机器学习模型的训练过程,无需编写任何代码。该服务使更广泛的开发人员能够将智能功能嵌入他们的应用程序中,从而缩短开发时间并消除对广泛 AI 专业知识的需求。
本文介绍了如何训练一个简单的机器学习模型,该模型可以识别图像中何时何地存在人。 下一篇文章将演示如何测试此模型并根据需要重新训练它。
要了解如何通过更快的 AI 方法推动应用创新并获得持久的业务收益,请查看 Forrester 研究:通过专业云 AI 服务推动应用创新。