Создание пользовательской модели анализа изображений (предварительная версия)

Анализ изображений 4.0 позволяет обучить пользовательскую модель с помощью собственных образов обучения. Вручную наклеив изображения, вы можете обучить модель применять пользовательские теги к изображениям (классификация изображений) или обнаруживать пользовательские объекты (обнаружение объектов). Модели анализа изображений 4.0 особенно эффективны при обучении с несколькими выстрелами, поэтому вы можете получить точные модели с меньшими данными обучения.

В этом руководстве показано, как создать и обучить пользовательскую модель классификации изображений. Отмечается несколько различий между обучением модели классификации изображений и моделью обнаружения объектов.

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

  • Подписка Azure — создайте бесплатную учетную запись.
  • После получения подписки Azure создайте ресурс Визуального зрения в портал Azure, чтобы получить ключ и конечную точку. Если вы используете это руководство с помощью Vision Studio, необходимо создать ресурс в регионе "Восточная часть США". После развертывания ресурса выберите элемент Перейти к ресурсу. Скопируйте ключ и конечную точку во временное расположение, чтобы использовать его позже.
  • Ресурс служба хранилища Azure — создание ресурса
  • Набор изображений для обучения модели классификации. Можно использовать набор примеров изображений в GitHub. Кроме того, вы можете использовать собственные изображения. Для каждого класса требуется только 3-5 изображений.

Примечание.

Мы не рекомендуем использовать пользовательские модели для критически важных для бизнеса сред из-за потенциально высокой задержки. Когда клиенты обучают пользовательские модели в Vision Studio, эти пользовательские модели принадлежат ресурсу Визуального распознавания, которому они были обучены, и клиент может вызывать эти модели с помощью API анализа изображений . При выполнении этих вызовов пользовательская модель загружается в память и инициализируется инфраструктура прогнозирования. Хотя это происходит, клиенты могут столкнуться с большей задержкой для получения результатов прогнозирования.

Создание пользовательской модели

Начните, перейдя в Visual Studio и выбрав вкладку "Анализ изображений". Затем выберите плитку "Настройка моделей".

Снимок экрана: плитка

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

Внимание

Чтобы обучить пользовательскую модель в Vision Studio, подписка Azure должна быть утверждена для доступа. Запросите доступ с помощью этой формы.

Снимок экрана: экран выбора ресурса.

Подготовка обучающих образов

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

Добавление набора данных

Чтобы обучить пользовательскую модель, необходимо связать ее с набором данных, в котором вы предоставляете изображения и их данные метки в качестве обучающих данных. В Visual Studio перейдите на вкладку "Наборы данных" , чтобы просмотреть наборы данных.

Чтобы создать новый набор данных, выберите добавить новый набор данных. В всплывающем окне введите имя и выберите тип набора данных для вашего варианта использования. Модели классификации изображений применяют метки содержимого ко всему изображению, а модели обнаружения объектов применяют метки объектов к определенным расположениям на изображении. Модели распознавания продуктов — это подкатегория моделей обнаружения объектов, оптимизированных для обнаружения розничных продуктов.

Выбор служба хранилища BLOB-объектов

Затем выберите контейнер из учетной записи Хранилище BLOB-объектов Azure, в которой хранятся образы обучения. Установите флажок, чтобы разрешить Visual Studio читать и записывать данные в контейнер хранилища BLOB-объектов. Это необходимый шаг для импорта помеченных данных. Создайте набор данных.

Создание проекта маркировки Машинное обучение Azure

Для передачи сведений о метки требуется COCO-файл. Простой способ создать COCO-файл — создать проект Машинное обучение Azure, который поставляется с рабочим процессом маркировки данных.

На странице сведений о наборе данных выберите "Добавить новый проект метки данных". Назовите его и выберите "Создать новую рабочую область". Откроется новая вкладка портал Azure, в которой можно создать проект Машинное обучение Azure.

Выберите Машинное обучение Azure

После создания проекта Машинное обучение Azure вернитесь на вкладку Vision Studio и выберите его в разделе "Рабочая область". Затем портал Машинное обучение Azure откроется на новой вкладке браузера.

Машинное обучение Azure. Создание меток

Чтобы начать маркировку, следуйте запросу на добавление классов меток, чтобы добавить классы меток.

Классы меток

Добавление меток класса

После добавления всех меток классов сохраните их, нажмите кнопку "Начать проект", а затем выберите "Метка данных " в верхней части.

Запуск маркировки

Машинное обучение Azure. Данные обучения по метки вручную

Нажмите кнопку "Пуск" и следуйте инструкциям, чтобы пометить все изображения. По завершении вернитесь на вкладку Vision Studio в браузере.

Теперь выберите "Добавить COCO-файл", а затем выберите "Импорт COCO-файла" из проекта метки данных машинного обучения Azure. При этом импортируются помеченные данные из Машинное обучение Azure.

Созданный файл COCO теперь хранится в контейнере служба хранилища Azure, связанном с этим проектом. Теперь его можно импортировать в рабочий процесс настройки модели. Выберите ее в раскрывающемся списке. После импорта COCO-файла в набор данных набор данных можно использовать для обучения модели.

Примечание.

Импорт файлов COCO из другого места

Если у вас есть готовый COCO-файл, который вы хотите импортировать, перейдите на вкладку наборов данных и выберите Add COCO files to this dataset. Вы можете добавить определенный COCO-файл из учетной записи хранения BLOB-объектов или импортировать из проекта маркировки Машинное обучение Azure.

В настоящее время корпорация Майкрософт решает проблему, которая приводит к сбою импорта файлов COCO с большими наборами данных при запуске в Vision Studio. Чтобы обучить использование большого набора данных, рекомендуется использовать REST API.

Выбор COCO

Сведения о файлах COCO

ФАЙЛЫ COCO — это JSON-файлы с определенными обязательными полями: "images"и "annotations""categories". Пример COCO-файла будет выглядеть следующим образом:

{
 "images": [
   {
     "id": 1,
     "width": 500,
     "height": 828,
     "file_name": "0.jpg",
     "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/0.jpg"
   },
    {
      "id": 2,
      "width": 754,
      "height": 832,
      "file_name": "1.jpg",
      "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/1.jpg"
    },

   ...

  ],
  "annotations": [
    {
      "id": 1,
      "category_id": 7,
      "image_id": 1,
      "area": 0.407,
      "bbox": [
        0.02663142641129032,
        0.40691584277841153,
        0.9524163571731749,
        0.42766634515266866
      ]
    },
    {
      "id": 2,
      "category_id": 9,
      "image_id": 2,
      "area": 0.27,
      "bbox": [
        0.11803319477782331,
        0.41586723392402375,
        0.7765206955096307,
        0.3483334397217212
      ]
    },
    ...

  ],
  "categories": [
    {
      "id": 1,
      "name": "vegall original mixed vegetables"
    },
    {
      "id": 2,
      "name": "Amy's organic soups lentil vegetable"
    },
    {
      "id": 3,
      "name": "Arrowhead 8oz"
    },

    ...

  ]
}

Справочник по полю файла COCO

Если вы создаете собственный COCO-файл с нуля, убедитесь, что все необходимые поля заполнены правильными сведениями. В следующих таблицах описано каждое поле в COCO-файле:

"изображения"

Ключ Тип Описание Обязательное?
id integer Уникальный идентификатор изображения, начиная с 1 Да
width integer Ширина изображения в пикселях Да
height integer Высота изображения в пикселях Да
file_name строка Уникальное имя изображения Да
absolute_url или coco_url строка Путь к изображению в качестве абсолютного URI для большого двоичного объекта в контейнере BLOB-объектов. Ресурс визуального зрения должен иметь разрешение на чтение файлов заметок и всех ссылочных файлов изображений. Да

Значение для absolute_url этого можно найти в свойствах контейнера BLOB-объектов:

абсолютный URL-адрес

"заметки"

Ключ Тип Описание Обязательное?
id integer Идентификатор заметки Да
category_id integer Идентификатор категории, определенной categories в разделе Да
image_id integer Идентификатор изображения Да
area integer Значение "Width" x "Height" (третье и четвертое значения bbox) No
bbox list[float] Относительные координаты ограничивающего поля (от 0 до 1), в порядке "слева", "Сверху", "Ширина", "Высота" Да

"категории"

Ключ Тип Описание Обязательное?
id integer Уникальный идентификатор для каждой категории (класс меток). Они должны присутствовать в annotations разделе. Да
name строка Имя категории (класс метки) Да

Проверка файлов COCO

Пример кода Python можно использовать для проверка формата COCO-файла.

Обучение пользовательской модели

Чтобы начать обучение модели с файлом COCO, перейдите на вкладку "Пользовательские модели " и выберите " Добавить новую модель". Введите имя модели и выберите Image classification или Object detection в качестве типа модели.

Создание пользовательской модели

Выберите набор данных, связанный с COCO-файлом, содержащим сведения о метки.

Затем выберите бюджет времени и обучите модель. Для небольших примеров можно использовать 1 hour бюджет.

Просмотр сведений об обучении

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

Оценка обученной модели

После завершения обучения можно просмотреть оценку производительности модели. Используются следующие метрики:

  • Классификация изображений: средняя точность, точность 1, точность топ 5
  • Обнаружение объектов: средняя точность @ 30, средняя средняя точность @ 50, средняя точность @ 75

Если при обучении модели набор оценки не предоставляется, сообщаемая производительность оценивается на основе части обучающего набора. Настоятельно рекомендуется использовать набор данных оценки (используя тот же процесс, что и выше), чтобы иметь надежную оценку производительности модели.

Снимок экрана: оценка

Тестирование пользовательской модели в Visual Studio

После создания пользовательской модели можно протестировать, нажав кнопку "Попробовать" на экране оценки модели.

Снимок экрана: экран оценки модели с описанной кнопкой

При этом вы перейдете на страницу "Извлечение общих тегов" на странице изображений . Выберите настраиваемую модель в раскрывающемся меню и отправьте тестовый образ.

Снимок экрана: модель тестирования сelecing в Vision Studio.

Результаты прогнозирования отображаются в правом столбце.

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

В этом руководстве вы создали и обучили пользовательскую модель классификации изображений с помощью анализа изображений. Далее узнайте больше об API анализа образа 4.0, чтобы можно было вызвать пользовательскую модель из приложения с помощью пакетов SDK REST или библиотеки.