Поделиться через


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

Внимание

Эта функция теперь устарела. 10 января 2025 г. анализ изображений Azure 4.0, определение пользовательских объектов и API предварительной версии распознавания продуктов будет прекращен. После этой даты вызовы API к этим службам завершаются сбоем.

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

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

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

Примечание.

Настройка модели доступна через REST API и Visual Studio, но не через клиентские пакеты SDK.

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

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

Примечание.

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

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

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

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

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

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

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

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

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

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

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

Экранный перехват диалогового окна для создания нового набора данных.

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

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

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

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

Снимок экрана: проект создания меток Машинное обучение Azure данных.

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

Создание меток

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

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

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

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

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

Данные обучения вручную

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

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

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

Примечание.

Если у вас есть готовый ФАЙЛ COCO, который вы хотите импортировать, перейдите на вкладку наборов данных и выберите " Добавить ФАЙЛЫ COCO в этот набор данных". Вы можете добавить определенный ФАЙЛ 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

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

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

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

Снимок экрана: выбор тестовой модели в Visual Studio.

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

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