使用自動化機器學習來準備用於電腦視覺工作的資料

適用於:Azure CLI ml 延伸模組 v2 (目前)Python SDK azure-ai-ml v2 (目前)

重要

支援在 Azure Machine Learning 中使用自動化 ML 定型電腦視覺模型是實驗性的公開預覽功能。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

在本文中,您將了解如何使用 Azure Machine Learning 中的自動化機器學習,準備用於定型電腦視覺模型的影像資料。

若要使用自動化機器學習產生用於電腦視覺工作的模型,您必須以 MLTable 的形式,將標記的影像資料作為模型定型的輸入。

您可以從 JSONL 格式的已標記定型資料建立 MLTable。 如果您的已標記定型資料格式不同 (例如 pascal VOC 或 COCO),則您可以使用轉換指令碼先將其轉換成 JSONL,然後建立 MLTable。 或者,您也可以使用 Azure Machine Learning 的資料標記工具手動標記影像,並匯出要用於將您的 AutoML 模型定型的已標記資料。

必要條件

取得已標記的資料

若要使用 AutoML 將電腦視覺模型定型,您必須先取得已標記的定型資料。 影像必須已上傳至雲端,而且標籤註釋必須是 JSONL 格式。 您可以使用 Azure Machine Learning 資料標記工具來標記您的資料,也可以從預先標記的影像資料開始。

使用 Azure Machine Learning 資料標記工具來標記您的定型資料

如果沒有預先標記的資料,您可以使用 Azure Machine Learning 的資料標記工具手動標記影像。 此工具會以接受的格式自動產生定型所需的資料。

它有助於建立、管理和監視以下各項的資料標記工作

  • 影像分類 (多類別和多標籤)
  • 物件偵測 (週框方塊)
  • 執行個體分割 (多邊形)

如果您已經標記要使用的數據,您可以將已標記的數據匯出為 Azure 機器學習 數據集,然後在 Azure Machine Learning 工作室 的 [數據集] 索引標籤取資料集。 然後,您可以使用 azureml:<tabulardataset_name>:<version> 格式,以將此匯出的資料集當成輸入傳遞。 以下範例顯示如何將現有資料集傳遞為定型電腦視覺模型的輸入。

適用於:Azure CLI ml 延伸模組 v2 (目前)

training_data:
  path: azureml:odFridgeObjectsTrainingDataset:1
  type: mltable
  mode: direct

從本機機器使用預先標記的定型資料

如果您已標記要用來定型模型的數據,則必須將影像上傳至 Azure。 您可以將映像上傳至 Azure 機器學習 工作區的預設 Azure Blob 儲存體,並將其註冊為數據資產

下列指令碼會將本機機器路徑 "./data/odFridgeObjects" 上的映像資料上傳至 Azure Blob 儲存體中的資料存放區。 其接著會在 Azure Machine Learning 工作區中建立名稱為 "fridge-items-images-object-detection" 的新資料資產。

如果 Azure Machine Learning 工作區中已經有名稱為 "fridge-items-images-object-detection" 的資料資產,則將會更新資料資產的版本號碼,並將其指向上傳映像資料的新位置。

適用於:Azure CLI ml 延伸模組 v2 (目前)

使用下列設定建立 .yml 檔案。

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: fridge-items-images-object-detection
description: Fridge-items images Object detection
path: ./data/odFridgeObjects
type: uri_folder

若要以資料資產形式上傳影像,請搭配您 .yml 檔案的路徑、工作區名稱、資源群組與訂用帳戶識別碼來執行下列 CLI 第 2 版命令。

az ml data create -f [PATH_TO_YML_FILE] --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]

如果您的資料已在現有資料存放區中,而且想要從中建立資料資產,則作法是提供資料存放區中資料的路徑,而不是提供您本機機器的路徑。 使用下列程式碼片段來更新上面的程式碼。

適用於:Azure CLI ml 延伸模組 v2 (目前)

使用下列設定建立 .yml 檔案。

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: fridge-items-images-object-detection
description: Fridge-items images Object detection
path: azureml://subscriptions/<my-subscription-id>/resourcegroups/<my-resource-group>/workspaces/<my-workspace>/datastores/<my-datastore>/paths/<path_to_image_data_folder>
type: uri_folder

接下來,您必須取得 JSONL 格式的標籤批註。 已標記資料的結構描述取決於手邊的電腦視覺工作。 若要深入了解每個工作類型所需的 JSONL 結構描述,請參閱 AutoML 電腦視覺實驗的 JSONL 檔案結構描述

如果您的定型資料採用不同的格式 (例如,pascal VOC 或 COCO),您可以在筆記本範例中找到可將資料轉換為 JSONL 的協助程式指令碼

遵循上述步驟建立 jsonl 檔案之後,您就可以使用 UI 將其註冊為數據資產。 請確定您選取 stream [架構] 區段中的 [類型],如此動畫所示。

顯示如何從 jsonl 檔案註冊數據資產的動畫

從 Azure Blob 儲存體使用預先標記的定型資料

如果您的已標記定型資料存在於 Azure Blob 儲存體的容器中,則您可以建立參照該容器的資料存放區,直接從該處進行存取。

建立 MLTable

一旦您以 JSONL 格式標示數據之後,就可以使用它來建立 MLTable ,如此 yaml 代碼段所示。 MLtable 會將您的資料封裝至可取用的物件以進行定型。

paths:
  - file: ./train_annotations.jsonl
transformations:
  - read_json_lines:
        encoding: utf8
        invalid_lines: error
        include_path_column: false
  - convert_column_types:
      - columns: image_url
        column_type: stream_info

您接著可以傳入 MLTable 作為 AutoML 定型工作的資料輸入

下一步