练习 - 集成 Azure 自定义视觉

已完成

在此模块中,你将了解如何使用“Azure 自定义视觉”。 你将拍摄一组跟踪对象的照片,将它们上传到“自定义视觉”服务,然后启动训练过程。 然后,你将通过从网络摄像头源捕获照片来使用该服务,从而检测跟踪对象。

了解 Azure AI 自定义视觉

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

详细了解自定义视觉

准备自定义视觉

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

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

警告

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

准备场景

  1. 在“项目”窗口中,导航到“资产”>“MRTK.Tutorials.AzureCloudServices”>“预制件”>“管理器”文件夹 。

    Screenshot of Unity with Project window showing path to ObjectDetectionManager prefab.

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

    Screenshot of Unity with ObjectDetectionManager script component configuration fields shown in Inspector.

  3. 在层次结构窗口中,找到并选择“ObjectDetectionManager”对象。 “ObjectDetectionManager”预制件包含“ObjectDetectionManager (脚本)”组件(你可从“检查器”窗口中看到),具体取决于 Azure 设置和“项目”设置。

检索 Azure API 资源凭据

可从 Azure 门户和自定义视觉门户中检索“ObjectDetectionManager (脚本)”设置所需的凭据

检索 Azure 设置凭据

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

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

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

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

检索项目设置凭据

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

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

    Screenshot of Unity with SceneController script component configuration fields shown in Inspector.

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

    Screenshot of Unity with SceneController script component configured.

拍摄和上传图像

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

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

    提示

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

  3. 获得足够图像后,选择“训练”按钮,以在云中开始模型训练过程。 这会上传所有图像并启动训练。 本过程可能需要几分钟时间。 菜单内的一则消息会指示当前进度。 它指示过程完成后,你可以停止应用程序。

    提示

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

警告

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

检测物体

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