Przygotowywanie danych do zadań przetwarzania obrazów za pomocą zautomatyzowanego uczenia maszynowego

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (current)Zestaw PYTHON SDK azure-ai-ml v2 (bieżąca)

Ważne

Obsługa trenowania modeli przetwarzania obrazów za pomocą zautomatyzowanego uczenia maszynowego w usłudze Azure Machine Edukacja to eksperymentalna funkcja publicznej wersji zapoznawczej. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.

Z tego artykułu dowiesz się, jak przygotować dane obrazu do trenowania modeli przetwarzania obrazów za pomocą zautomatyzowanego uczenia maszynowego w usłudze Azure Machine Edukacja.

Aby wygenerować modele dla zadań przetwarzania obrazów za pomocą zautomatyzowanego uczenia maszynowego, należy wprowadzić dane z etykietami obrazów jako dane wejściowe na potrzeby trenowania modelu w postaci MLTableelementu .

Możesz utworzyć element MLTable na podstawie danych treningowych oznaczonych etykietą w formacie JSONL. Jeśli dane treningowe oznaczone etykietą mają inny format (na przykład pascal VOC lub COCO), możesz użyć skryptu konwersji, aby najpierw przekonwertować go na format JSONL, a następnie utworzyć MLTableelement . Alternatywnie możesz użyć narzędzia do etykietowania danych usługi Azure Machine Edukacja do ręcznego etykietowania obrazów i wyeksportować dane oznaczone etykietami do użycia na potrzeby trenowania modelu rozwiązania AutoML.

Wymagania wstępne

Pobieranie danych oznaczonych etykietami

Aby wytrenować modele przetwarzania obrazów przy użyciu rozwiązania AutoML, należy najpierw uzyskać dane szkoleniowe oznaczone etykietami. Obrazy muszą być przekazywane do chmury i adnotacje etykiet muszą być w formacie JSONL. Możesz użyć narzędzia Azure Machine Edukacja Data Labeling do etykietowania danych lub zacząć od wstępnie oznaczonych danych obrazów.

Używanie narzędzia do etykietowania danych w usłudze Azure Machine Edukacja w celu etykietowania danych treningowych

Jeśli nie masz wstępnie oznaczonych danych, możesz użyć narzędzia do etykietowania danych usługi Azure Machine Edukacja w celu ręcznego etykietowania obrazów. To narzędzie automatycznie generuje dane wymagane do trenowania w akceptowanym formacie.

Ułatwia tworzenie i monitorowanie zadań etykietowania danych oraz zarządzanie nimi

  • Klasyfikacja obrazów (wiele klas i wiele etykiet)
  • Wykrywanie obiektów (pole ograniczenia)
  • Segmentacja wystąpień (wielokąt)

Jeśli masz już oznaczone dane, których chcesz użyć, możesz wyeksportować dane oznaczone etykietą jako zestaw danych usługi Azure Machine Edukacja, a następnie uzyskać dostęp do zestawu danych na karcie "Zestawy danych" w usłudze Azure Machine Edukacja Studio. Wyeksportowany zestaw danych można następnie przekazać jako dane wejściowe przy użyciu azureml:<tabulardataset_name>:<version> formatu. Oto przykład przekazywania istniejącego zestawu danych jako danych wejściowych do trenowania modeli przetwarzania obrazów.

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (bieżąca)

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

Korzystanie ze wstępnie pasowanych danych treningowych z komputera lokalnego

Jeśli masz oznaczone etykietą dane, których chcesz użyć do trenowania modelu, musisz przekazać obrazy na platformę Azure. Obrazy można przekazać do domyślnej usługi Azure Blob Storage w usłudze Azure Machine Edukacja Workspace i zarejestrować je jako zasób danych.

Poniższy skrypt przekazuje dane obrazu na maszynie lokalnej w ścieżce "./data/odFridgeObjects" do magazynu danych w usłudze Azure Blob Storage. Następnie tworzy nowy zasób danych o nazwie "fridge-items-images-object-detection" w obszarze roboczym usługi Azure Machine Edukacja.

Jeśli w usłudze Azure Machine Edukacja Workspace istnieje już zasób danych o nazwie "lodówek-items-images-object-detection" w obszarze roboczym usługi Azure Machine, aktualizuje numer wersji zasobu danych i wskazuje go na nową lokalizację, w której przekazano dane obrazu.

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (bieżąca)

Utwórz plik .yml z następującą konfiguracją.

$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

Aby przekazać obrazy jako zasób danych, uruchom następujące polecenie interfejsu wiersza polecenia w wersji 2 ze ścieżką do pliku .yml, nazwy obszaru roboczego, grupy zasobów i identyfikatora subskrypcji.

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

Jeśli masz już dane obecne w istniejącym magazynie danych i chcesz utworzyć zasób danych, możesz to zrobić, podając ścieżkę do danych w magazynie danych, zamiast podawać ścieżkę komputera lokalnego. Zaktualizuj powyższy kod przy użyciu następującego fragmentu kodu.

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (bieżąca)

Utwórz plik .yml z następującą konfiguracją.

$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

Następnie należy pobrać adnotacje etykiet w formacie JSONL. Schemat oznaczonych danymi zależy od zadania przetwarzania obrazów. Zapoznaj się ze schematami plików JSONL dla eksperymentów przetwarzania obrazów automl, aby dowiedzieć się więcej o wymaganym schemacie JSONL dla każdego typu zadania.

Jeśli dane szkoleniowe są w innym formacie (na przykład pascal VOC lub COCO), skrypty pomocnika do konwersji danych na format JSONL są dostępne w przykładach notesu.

Po utworzeniu pliku jsonl, wykonując powyższe kroki, możesz zarejestrować go jako zasób danych przy użyciu interfejsu użytkownika. Upewnij się, że wybrano stream typ w sekcji schematu, jak pokazano w tej animacji.

Animacja przedstawiająca sposób rejestrowania zasobu danych z plików jsonl

Korzystanie ze wstępnie oznakowanych danych treningowych z usługi Azure Blob Storage

Jeśli masz dane szkoleniowe oznaczone etykietą w kontenerze w usłudze Azure Blob Storage, możesz uzyskać do niego dostęp bezpośrednio, tworząc magazyn danych odwołujący się do tego kontenera.

Tworzenie tabeli MLTable

Po utworzeniu danych z etykietą w formacie JSONL można go użyć do utworzenia MLTable , jak pokazano w tym fragmencie kodu yaml. Rozwiązanie MLtable pakuje dane do obiektu eksploatacyjnego na potrzeby trenowania.

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

Następnie możesz przekazać MLTable dane wejściowe jako dane dla zadania trenowania rozwiązania AutoML.

Następne kroki