자동화된 Machine Learning을 통해 컴퓨터 비전 작업을 위한 데이터 준비

적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)

Important

Azure Machine Learning의 자동화된 ML을 통해 Computer Vision 모델을 학습시키기 위한 지원은 실험적인 퍼블릭 미리 보기 기능입니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

이 문서에서는 Azure Machine Learning의 자동화된 기계 학습을 사용하여 Computer Vision 모델을 학습시키기 위해 이미지 데이터를 준비하는 방법을 알아봅니다.

자동화된 기계 학습을 사용하여 컴퓨터 비전 작업을 위한 모델을 생성하려면 레이블이 지정된 이미지 데이터를 MLTable 형식의 모델 학습을 위한 입력으로 가져와야 합니다.

JSONL 형식의 레이블이 지정된 학습 데이터에서 MLTable을 만들 수 있습니다. 레이블이 지정된 학습 데이터가 다른 형식(예: 파스칼 VOC 또는 COCO)인 경우 변환 스크립트를 사용하여 먼저 JSONL로 변환한 다음, MLTable을 만들 수 있습니다. 또는 Azure Machine Learning의 데이터 레이블 지정 도구를 사용하여 이미지에 수동으로 레이블을 지정하고 레이블이 지정된 데이터를 내보내 AutoML 모델 학습에 사용할 수 있습니다.

필수 조건

레이블이 지정된 데이터 가져오기

AutoML을 사용하여 Computer Vision 모델을 학습하려면 먼저 레이블이 지정된 학습 데이터를 가져와야 합니다. 이미지는 클라우드에 업로드해야 하고 레이블 주석은 JSONL 형식이어야 합니다. Azure Machine Learning 데이터 레이블 지정 도구를 사용하여 데이터에 레이블을 지정하거나 미리 레이블이 지정된 이미지 데이터로 시작할 수 있습니다.

Azure Machine Learning 데이터 레이블 지정 도구를 사용하여 학습 데이터에 레이블 지정

미리 레이블이 지정된 데이터가 없는 경우 Azure Machine Learning의 데이터 레이블 지정 도구를 사용하여 이미지에 수동으로 레이블을 지정할 수 있습니다. 이 도구는 학습에 필요한 데이터를 허용되는 형식으로 자동 생성합니다.

다음을 위한 데이터 레이블 지정 작업을 만들고, 관리하고, 모니터링하는 데 도움이 됩니다.

  • 이미지 분류(다중 클래스 및 다중 레이블)
  • 개체 감지(경계 상자)
  • 인스턴스 구분(다각형)

사용하려는 레이블이 지정된 데이터가 이미 있는 경우 레이블이 지정된 데이터를 Azure Machine Learning 데이터 세트로 내보낸 다음 Azure Machine Learning 스튜디오의 '데이터 세트' 탭에서 데이터 세트에 액세스할 수 있습니다. 그러면 이 내보낸 데이터 세트를 azureml:<tabulardataset_name>:<version> 형식을 사용하여 입력으로 전달할 수 있습니다. 다음은 컴퓨터 비전 모델 학습을 위한 입력으로 기존 데이터 세트를 전달하는 방법에 대한 예제입니다.

적용 대상:Azure CLI ml 확장 v2(현재)

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

로컬 컴퓨터에서 미리 레이블이 지정된 학습 데이터 사용

모델을 학습하는 데 사용하려는 레이블이 지정된 데이터가 있는 경우 해당 이미지를 Azure에 업로드해야 합니다. Azure Machine Learning 작업 영역의 기본 Azure Blob Storage에 이미지를 업로드하고 이를 데이터 자산으로 등록할 수 있습니다.

다음 스크립트는 "./data/odFridgeObjects" 경로에 있는 로컬 컴퓨터의 이미지 데이터를 Azure Blob Storage의 데이터 저장소에 업로드합니다. 그런 다음 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 파일 경로, 작업 영역 이름, 리소스 그룹 및 구독 ID와 함께 다음 CLI v2 명령을 실행합니다.

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 형식의 레이블 주석을 가져와야 합니다. 레이블이 지정된 데이터의 스키마는 현재의 Computer Vision 작업에 따라 다릅니다. 각 작업 종류에 필요한 JSONL 스키마에 대해 자세히 알아보려면 AutoML Computer Vision 실험을 위한 JSONL 파일 스키마를 참조하세요.

학습 데이터가 다른 형식(예: 파스칼 VOC 또는 COCO)인 경우 데이터를 JSONL로 변환하는 도우미 스크립트Notebook 예에서 사용할 수 있습니다.

위의 단계에 따라 jsonl 파일을 만든 후에는 UI를 사용하여 데이터 자산으로 등록할 수 있습니다. 이 애니메이션에 표시된 것처럼 스키마 섹션에서 stream 형식을 선택했는지 확인합니다.

jsonl 파일에서 데이터 자산을 등록하는 방법을 보여 주는 애니메이션

Azure Blob 스토리지에서 미리 레이블이 지정된 학습 데이터 사용

Azure Blob 스토리지의 컨테이너에 레이블이 지정된 학습 데이터가 있는 경우 해당 컨테이너를 참조하는 데이터 저장소를 만들어 해당 컨테이너에서 직접 액세스할 수 있습니다.

MLTable 만들기

JSONL 형식의 레이블이 지정된 데이터가 있으면 이를 사용하여 이 yaml 코드 조각에 표시된 대로 MLTable을 만들 수 있습니다. 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

그런 다음, AutoML 학습 작업에 대한 데이터 입력으로 MLTable을 전달할 수 있습니다.

다음 단계