Подготовка данных для задач компьютерного зрения с помощью автоматизированного машинного обучения

ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)

Внимание

Поддержка обучающих моделей компьютерного зрения с помощью автоматизированного ML в Машинном обучении Azure является экспериментальной признаком общедоступной предварительной версии. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.

Из этой статьи вы узнаете, как подготовить данные изображений для обучения моделей компьютерного зрения с помощью автоматизированного машинного обучения в Машинном обучение Azure.

Чтобы создать модели для задач компьютерного зрения с помощью автоматизированного машинного обучения, необходимо перенести помеченные данные изображения в качестве входных данных для обучения моделей MLTableв виде.

Помеченные данные для обучения в формате JSONL можно преобразовать в MLTable. Если данные обучения с метками в другом формате (например, pascal VOC или COCO), можно использовать скрипт преобразования для первого преобразования в JSONL, а затем создать MLTable. Кроме того, можно воспользоваться средством маркировки данных Машинного обучения Azure, чтобы пометить изображения вручную, а затем экспортировать помеченные данные для обучения модели AutoML.

Необходимые компоненты

Получение помеченных данных

Чтобы обучить модели компьютерного зрения с помощью AutoML, сначала нужно получить помеченные данные для обучения. Необходимо отправить изображения в облако, а метки должны иметь формат JSONL. Вы можете использовать средство маркировки данных Машинное обучение Azure, чтобы пометить данные или начать с предварительно подготовленных данных изображения.

Использование средства маркировки данных Машинное обучение Azure для маркировки обучающих данных

Если у вас нет предварительно заданных данных, можно использовать средство маркировки данных Машинное обучение Azure для ручной маркировки изображений. Этот инструмент автоматически создает данные, необходимые для обучения в принятом формате.

Он помогает создавать и отслеживать задачи меток данных для

  • Классификации изображений (с несколькими классами и с несколькими метками)
  • Обнаружения объектов (ограничивающий прямоугольник)
  • Сегментации экземпляров (многоугольник)

Если у вас уже есть помеченные данные, вы можете экспортировать помеченные данные в виде набора данных Машинное обучение Azure, а затем получить доступ к набору данных на вкладке "Наборы данных" в Студия машинного обучения Azure. Затем экспортируемый набор данных можно передать в качестве входных данных с помощью azureml:<tabulardataset_name>:<version> формата. Ниже приведен пример передачи существующего набора данных в качестве входных данных для обучения моделей компьютерного зрения.

ОБЛАСТЬ ПРИМЕНЕНИЯ:расширение Машинного обучения для Azure CLI версии 2 (текущая версия)

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

Использование предварительно заданных данных обучения с локального компьютера

Если у вас есть помеченные данные, которые вы хотите использовать для обучения модели, необходимо отправить образы в Azure. Вы можете передать изображения в Хранилище BLOB-объектов Azure вашей рабочей области Машинное обучение Azure по умолчанию и зарегистрировать его в качестве ресурса данных.

Следующий скрипт отправляет данные изображения на локальном компьютере по пути ./data/odFridgeObjects в хранилище данных в Хранилище BLOB-объектов Azure. Затем он создает новый ресурс данных с именем "холодильник-items-images-object-detection" в рабочей области Машинное обучение Azure.

Если в рабочей области Машинное обучение Azure уже существует ресурс данных с именем "холодильник-items-images-object-detection", он обновляет номер версии ресурса данных и указывает на новое расположение, в котором отправлены данные изображения.

ОБЛАСТЬ ПРИМЕНЕНИЯ:расширение Машинного обучения для Azure CLI версии 2 (текущая версия)

Создайте файл .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

Чтобы отправить изображения в качестве ресурса данных, выполните следующую команду CLI версии 2 с путем к файлу .yml, имени рабочей области, группе ресурсов и идентификатору подписки.

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 версии 2 (текущая версия)

Создайте файл .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 для каждого типа задачи см. в разделе Структуры файлов JSONL для экспериментов по компьютерному зрению AutoML.

Если данные для обучения имеют другой формат (например, Pascal VOC или COCO), для преобразования данных в формат JSONL можно воспользоваться вспомогательными скриптами из примеров записных книжек.

После создания jsonl-файла, выполнив описанные выше действия, его можно зарегистрировать в качестве ресурса данных с помощью пользовательского интерфейса. Убедитесь, что выбран stream тип раздела схемы, как показано в этой анимации.

Анимация, показывающая, как зарегистрировать ресурс данных из jsonl-файлов

Использование предварительно заданных данных обучения из хранилища BLOB-объектов Azure

Если у вас есть помеченные данные обучения в контейнере в хранилище BLOB-объектов Azure, вы можете получить доступ непосредственно оттуда , создав хранилище данных, ссылающееся на этот контейнер.

Создание 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.

Следующие шаги