使用自動化機器學習來準備用於電腦視覺工作的資料
適用於:Azure CLI ml 延伸模組 v2 (目前)Python SDK azure-ai-ml v2 (目前)
重要
支援在 Azure Machine Learning 中使用自動化 ML 定型電腦視覺模型是實驗性的公開預覽功能。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
在本文中,您將了解如何使用 Azure Machine Learning 中的自動化機器學習,準備用於定型電腦視覺模型的影像資料。 若要使用自動化機器學習產生用於電腦視覺工作的模型,您必須以 MLTable
的形式,將標記的影像資料作為模型定型的輸入。
您可以從 JSONL 格式的已標記定型資料建立 MLTable
。 如果您的標記定型資料採用不同的格式 (例如 Pascal Visual Object Classes (VOC) 或 COCO),您可以使用轉換指令碼將其轉換為 JSONL,然後建立 MLTable
。 或者,您也可以使用 Azure Machine Learning 的資料標記工具來手動標記影像。 然後匯出標記的資料以用於定型您的 AutoML 模型。
必要條件
取得已標記的資料
若要使用 AutoML 將電腦視覺模型定型,您必須取得已標記的定型資料。 影像需要上傳至雲端。 標籤註釋需採用 JSONL 格式。 您可以使用 Azure Machine Learning 資料標記工具來標記您的資料,也可以從預先標記的影像資料開始。
使用 Azure Machine Learning 資料標記工具來標記您的定型資料
如果沒有預先標記的資料,您可以使用 Azure Machine Learning 的資料標記工具手動標記影像。 此工具會以接受的格式自動產生定型所需的資料。 如需詳細資訊,請參閱設定影像標記專案。
此工具可協助建立、管理及監視下列項目的資料標記工作:
- 影像分類 (多類別和多標籤)
- 物件偵測 (週框方塊)
- 執行個體分割 (多邊形)
如果您已有要使用的標記資料,請將該標記資料匯出為 Azure Machine Learning 資料集,並在 Azure Machine Learning Studio 的資料集索引標籤下存取該資料集。 您可以使用 azureml:<tabulardataset_name>:<version>
格式將此匯出的資料集作為輸入傳遞。 如需詳細資訊,請參閱匯出標籤。
以下範例顯示如何將現有資料集傳遞為定型電腦視覺模型的輸入。
training_data:
path: azureml:odFridgeObjectsTrainingDataset:1
type: mltable
mode: direct
從本機機器使用預先標記的定型資料
如果您有要用於定型模型的標記資料,請將影像上傳到 Azure。 您可以將影像上傳至 Azure Machine Learning 工作區的預設 Azure Blob 儲存體。 將它註冊為資料資產。 如需詳細資訊,請參閱 建立和管理資料資產。
下列指令碼會將本機機器路徑 ./data/odFridgeObjects 上的映像資料上傳至 Azure Blob 儲存體中的資料存放區。 然後,它會在 Azure Machine Learning 工作區中建立一個名為 fridge-items-images-object-detection
的新資料資產。
如果 Azure Machine Learning 工作區中已存在名為 fridge-items-images-object-detection
的資料資產,則程式碼會更新該資料資產的版本號碼,並將其指向上傳影像資料的新位置。
使用下列設定建立 .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]
如果您已經在現有的資料存放區中擁有資料,則可以從其中建立資料資產。 提供資料存放區中資料的路徑,而不是本機電腦的路徑。 使用以下程式碼片段更新前面的程式碼。
使用下列設定建立 .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 結構描述,請參閱透過自動化機器學習定型電腦視覺模型的資料結構描述。
如果您的定型資料採用不同的格式 (例如 pascal VOC 或 COCO),協助程式指令碼可以將資料轉換為 JSONL。 這些指令碼可在筆記本範例中找到。
建立 .jsonl 檔案之後,您可以使用 UI 將其註冊為資料資產。 請確定您在結構描述區段中選取 stream
類型,如此動畫所示。
從 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 定型作業的資料輸入。 如需詳細資訊,請參閱如何設定 AutoML 以定型電腦視覺模型。