练习 - 集成 Azure 自定义视觉

已完成

在本模块中,你将了解如何使用 Azure 自定义视觉。 你将拍摄一组跟踪对象的照片,将其上传到自定义视觉服务,并开始训练过程。 然后,你将使用该服务通过捕获网络摄像头源的照片来检测被跟踪的对象。

了解 Azure AI 自定义视觉

Azure AI 自定义视觉是认知服务系列的一部分,用于训练图像分类器。 图像分类器是一种 AI 服务,它使用经过训练的模型应用匹配标记。 我们的应用程序将使用此分类功能来检测跟踪的对象。

详细了解 自定义视觉

准备自定义视觉

在开始之前,需要创建自定义视觉项目。 创建自定义视觉项目的最快方法是使用自定义视觉门户。

按照本 快速入门教程 设置帐户和项目。 按照步骤操作,直到上传和标记图像部分。 应创建一个包含五个图像的标记。

警告

要训练模型,您需要至少有两个标记,并且每个标记至少有五个图像。 稍后,我们将通过应用程序添加更多映像。 但是,若要使用此应用程序,必须至少创建一个包含五个图像的标记,以便训练过程以后不会失败。

准备场景

  1. 在“项目”窗口中,导航到 资源>MRTK.Tutorials.AzureCloudServices>Prefabs>Manager 文件夹。

    Unity 的屏幕截图,其中项目窗口显示了 ObjectDetectionManager 预制件的路径。

  2. 从此处将“ObjectDetectionManager”预制件拖到场景层次结构中

    Unity 的屏幕截图,其中 ObjectDetectionManager 脚本组件配置字段显示在 Inspector 中。

  3. 在“层次结构”窗口中,找到并选择 ObjectDetectionManager 对象。 ObjectDetectionManager prefab 包含 ObjectDetectionManager (script) 组件,正如从检查器窗口中看到的,它依赖于 Azure 设置和 Project 设置。

检索 Azure API 资源凭据

可以从 Azure 门户和 Custom Vision 门户中检索 ObjectDetectionManager(脚本) 设置所需的凭据。

获取 Azure 设置凭据

查找并找到在本教程的“准备场景”部分中创建的认知服务类型的自定义视觉资源。 在那里,选择 “概述 ”或“ 密钥”和“终结点 ”以检索所需的凭据。

  • Azure 资源订阅 ID:使用 “概述 ”部分中的订阅 ID。
  • Azure 资源组名称:使用 “概述 ”部分中的资源组名称。

对于“认知服务组名称”,请使用后跟“-Prediction”的自定义视觉资源名称。

  • 资源基础预测终结点:在自定义视觉“-Prediction”资源中使用“密钥和终结点”中的终结点。
  • API 预测密钥:在自定义视觉“-Prediction”资源中使用“密钥和终结点”中的密钥 1。

检索项目设置凭据

“自定义视觉 ”仪表板中,打开为本教程创建的项目,然后选择页面右上角的 “设置” 图标以打开“设置”页。 你将在右侧的 “资源 ”部分和左侧的“ 常规 ”部分找到必要的凭据。

  • 资源基础终结点 :使用 “资源 ”部分中的“终结点”。 这应与自定义视觉资源中的 “密钥”和“终结点 ”下的终结点匹配。
  • Api 密钥:使用 “资源 ”部分中的密钥。 这应与自定义视觉资源中的 “密钥”和“终结点 ”下的密钥匹配。
  • 项目 ID:使用 “常规 ”部分中的项目 ID。
  1. 现在,如果 ObjectDetectionManager(脚本) 设置正确,请在场景层次结构中找到 SceneController 对象,并选择它。

    Unity 的屏幕截图,其中显示了 Inspector 中显示的 SceneController 脚本组件配置字段。

  2. SceneController 组件中的“对象检测管理器”字段为空。 将 ObjectDetectionManager 从层次结构拖动到 SceneController 组件并保存场景。

    配置了 SceneController 脚本组件的 Unity 屏幕截图。

拍摄和上传图像

  1. 运行场景并选择“ 设置对象”。 输入在上一课中创建的一个跟踪对象的名称。 选择对象卡底部的计算机 视觉 按钮。

  2. 此时将打开一个新的窗口。 你将拍摄六张照片来训练模型进行图像识别。 选择 “相机 ”按钮并执行 AirTap 以查看要跟踪的对象。执行此作六次。

    小窍门

    若要改进模型训练,请尝试从不同角度和照明条件获取每个图像。

  3. 拥有足够的图像后,选择“ 训练 ”按钮以在云中启动模型训练过程。 这会上传所有图像并启动训练。 该过程可能需要花费几分钟时间。 菜单中的消息指示当前进度。 一旦显示过程已完成,您就可以关闭应用程序。

    小窍门

    ObjectDetectionManager (脚本)直接将拍摄的图像上传到自定义视觉服务。 作为替代,自定义视觉 API 接受图像的链接地址。 练习中,可以修改 ObjectDetectionManager (脚本), 以改为将图像上传到 Blob 存储。

警告

如果训练失败,请检查自定义视觉仪表板,并确保至少有两个标记,并且每个标记至少有五个图像。

检测对象

现在可以将训练的模型置于测试中。 运行该应用程序。 在“主”菜单中,选择 “搜索对象 ”并输入所跟踪对象的名称。 对象卡片将出现。 接下来,选择“ 自定义视觉 ”按钮。 *ObjectDetectionManager 将开始在后台从相机捕捉图像。 菜单将指示应用程序进度。 将相机指向用于训练模型的对象。 很快,它应检测到该对象。