在本指南中,将向展示如何利用Azure Custom Vision在Azure云中训练目标检测和分类模型。训练模型前,需要对数据进行标注,以便用于模型训练。将使用Roboflow平台,这是一个提供一系列工具的端到端计算机视觉平台,可以用它来高效地标注数据。
在开始之前,需要一个Azure账户。如果还没有在账户中启用Custom Vision,请按照本指南后面的步骤操作。此外,还需要一个免费的Roboflow账户。Roboflow是一个端到端的计算机视觉平台,提供数据收集、标注、理解和模型训练以及部署的工具。可以随时将数据从Roboflow直接导出到Azure Custom Vision。
在训练模型之前,需要图像来标注。如果需要图像,可以查看Roboflow Universe,这是一个用于训练计算机视觉模型的公共数据社区。可以在Universe中找到超过1.5亿张图像,涵盖20万个数据集。此外,还可以使用Roboflow Collect在边缘收集数据。Roboflow Collect提供了一个智能数据收集解决方案,可以用它来:
当有了用于训练模型的图像后,创建一个Roboflow账户并打开Roboflow仪表板。在仪表板上,点击“创建项目”按钮。在出现的弹出窗口中填写项目名称、想要识别的对象类型以及想要训练的模型类型。(注意:在Custom Vision中,只能训练目标检测和分类模型。尽管如此,可以在Roboflow中训练分割模型。)
接下来,将图像和任何注释上传到Roboflow平台。可以在Roboflow中标注未标注的图像,并检查和调整已标注的图像。Roboflow支持超过30种不同的注释格式。要上传图像,首先将图像文件夹拖到Roboflow Web界面中:
# 拖动图像文件夹到Roboflow Web界面
一旦将图像拖入Web界面,点击“保存并继续”。然后,图像将上传到Roboflow平台。这个过程所需的时间取决于数据集中图像的数量。
点击图像开始标注。要绘制一个边界框,按键盘上的“b”键或在右侧控制面板中选择边界框工具。然后,点击想要开始绘制框的位置,并拖动直到完成绘制框。然后,可以创建或选择一个类别分配给该框。
# 按'b'绘制边界框或使用工具栏中的边界框工具
要了解更多关于Roboflow标注工具的信息,请查看。
一旦标注了数据,点击Roboflow产品侧边栏中的“版本”以生成项目版本。在这里,可以预处理数据并应用增强。了解更多关于预处理和增强的最佳实践。
建议将预处理步骤保留为第一个模型版本的默认设置,并阅读关于增强的指导,以评估哪些可能适用于正在训练的模型。
对于本指南,将应用一个90度旋转增强。这种增强将帮助模型在不同角度下有效地执行,这是本指南中使用的示例太阳能电池板数据集的关键考虑因素。
# 应用90度旋转增强以提高模型在不同角度下的表现
点击页面底部的“生成”以生成数据集。数据集将被生成。将在下一步回到数据集。
转到Azure仪表板并在搜索栏中搜索“Custom Vision”。这将带到Custom Vision主页。在可以使用Custom Vision之前,需要在账户上创建一个Custom Vision实例。点击“创建Custom Vision”按钮。
接下来,将被要求填写有关项目的信息。首先,将被要求选择是否想要使用Custom Vision进行训练、部署或两者兼有。选择与项目相关的选项。
需要将Custom Vision实例附加到一个资源组,选择一个项目名称,并为实例选择定价层。了解更多关于Azure Custom Vision定价的信息。
填写完表格后,点击“审查+创建”以创建一个新的Custom Vision实例。将被带到一个页面,该页面报告部署状态。部署步骤可能需要一些时间。
一旦Custom Vision实例部署完成,就可以开始使用Custom Vision了。
可以直接从Roboflow导入数据到Custom Vision。转到Roboflow仪表板并点击“设置”按钮。然后,点击“第三方密钥”。一个页面将出现,可以在其中保存Azure Custom Vision账户信息。
返回到Azure Custom Vision仪表板。该产品有自己的用户界面,与主Azure云平台分开。然后,点击左上角的设置图标。将出现与Custom Vision实例相关的资源列表。点击没有“-Prediction”结尾的资源。
需要从页面上获取两个信息:API密钥和端点名称。将这些值添加到Roboflow平台中。然后,返回到Roboflow仪表板,选择正在工作的项目,并在侧边栏中选择“版本”。
选择之前生成的数据集版本。然后,点击“导出数据集”。将出现一个窗口,可以在其中选择导出数据的格式。选择“Azure Custom Vision”。
将数据导出到Custom Vision所需的时间取决于在Roboflow中标注的图像数量。将出现一个进度条,显示导出作业的状态。
当导出完成后,返回到Custom Vision仪表板。在这里,将出现一个由Roboflow平台创建的新项目。点击该项目以查看导入的图像。要查看图像上的注释,请点击图像。
有了在Azure Custom Vision中的标注数据,就可以开始训练作业了。点击Custom Vision左上角的绿色“训练”按钮。将出现一个弹出窗口,可以在其中选择想要用于训练的选项。
配置好训练作业后,点击“开始”以开始训练。
训练作业的状态将在仪表板上报告。训练时间将根据数据集中的图像数量而有所不同。一旦训练完成,将看到一个报告,显示模型的精确度、召回率和mAP。
可以在Custom Vision内测试计算机视觉模型。要做到这一点,点击右上角的“快速测试”按钮。将出现一个弹出窗口,可以在其中粘贴图像URL或选择一个文件上传。
一旦选择了要测试的文件,模型将运行,预测将显示在图像上。下面的图像显示了太阳能电池板项目的图像上的模型预测:
已经成功地在Azure Custom Vision中训练了一个模型!可以从Custom Vision项目的“性能”选项卡中访问所有训练过的模型。
要部署模型,点击发布按钮并为模型部署选择一个名称。然后,点击弹出窗口中的“发布”按钮:
点击“预测URL”查看如何运行图像通过模型并使用Custom Vision API检索预测。
在本指南中,在Azure Custom Vision中训练了一个计算机视觉模型。首先,使用Roboflow标注了图像。然后,在Azure上启用了Custom Vision。将数据集从Roboflow导入到Custom Vision并训练了一个模型。在Azure Custom Vision平台上测试了模型。最后,展示了如何在Custom Vision上部署模型。
当准备部署在Azure Custom Vision中训练的模型时,请查看。
Roboflow还提供了训练和部署模型的工具。使用Roboflow训练模型只需要几次点击,就可以在不手动部署端点的情况下测试模型。可以使用在本指南中早期上传和标注的数据集来训练模型。了解更多关于Roboflow的和服务。
当准备开始编写使用模型的逻辑时,请查看。supervision是一个开源Python包,提供了一系列用于构建计算机视觉应用程序的实用工具。supervision由Roboflow团队积极维护。
使用supervision,可以:
要查看supervision中可用的完整功能范围,请阅读。