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


Настройка модели (предварительная версия 4.0)

Внимание

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

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

Настройка модели позволяет обучить специализированную модель анализа изображений для собственного варианта использования. Пользовательские модели могут выполнять классификацию изображений (теги применяются ко всему изображению) или обнаружение объектов (теги применяются к определенным областям изображения). После создания и обучения пользовательской модели он принадлежит ресурсу Визуального распознавания, и его можно вызвать с помощью API анализа изображений.

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

Внимание

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

Области Специальная служба распознавания изображений Служба анализа изображений 4.0
Задачи Классификация изображений
Обнаружение объектов
Классификация изображений
Обнаружение объектов
Базовая модель CNN Модель преобразователя
Добавление меток Customvision.ai AML Studio
Веб-портал Customvision.ai Vision Studio
Библиотеки REST, SDK REST, пример Python
Минимальные необходимые данные для обучения 15 изображений на категорию 2–5 изображений на категорию
Хранилище данных обучения Отправлено в службу Учетная запись хранилища объектов BLOB клиента
Размещение моделей Облако и периферия Только облачное размещение, размещение пограничных контейнеров появится позже.
Качество ИИ
контекстКлассификация
изображений (максимальная точность, 22 наборов данных)
Обнаружение
объектов (mAP@50, 59 наборов данных)
2 выстрела51.4733,3
3 выстрела56.7337,0
5 выстрелов63.0143,4
10 выстрелов68.9554,0
полный85.2576,6
контекстКлассификация
изображений (максимальная точность, 22 наборов данных)
Обнаружение
объектов (mAP@50, 59 наборов данных)
2 выстрела73.0249,2
3 выстрела75.5161,1
5 выстрелов79.1468.2
10 выстрелов81.3175,0
полный90.9885.4
Цены Цены на Custom Vision Цены на анализ изображений

Компоненты сценария

Основными компонентами системы настройки модели являются обучающие образы, COCO-файл, объект набора данных и объект модели.

Изображения для обучения

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

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

  • угол обзора камеры;
  • освещение;
  • фон
  • стиль изображения;
  • отдельные/групповые субъекты
  • размер
  • тип

Также убедитесь, что все обучающие изображения соответствуют следующим критериям:

  • Изображение должно быть представлено в формате JPEG, PNG, GIF, BMP, WEBP, ICO, TIFF или MPO.
  • Размер файла изображения должен быть меньше 20 мегабайт (МБ).
  • Размеры изображения должны превышать 50 x 50 пикселей и менее 16 000 x 16 000 пикселей.

COCO-файл

Файл COCO ссылается на все обучающие изображения и связывает их с их метаданными. В случае обнаружения объектов он указал координаты ограничивающего прямоугольника каждого тега на каждом изображении. Этот файл должен быть в формате COCO, который является определенным типом JSON-файла. Файл COCO должен храниться в том же контейнере хранилища Azure, что и обучающие изображения.

Совет

Сведения о файлах 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 целое число Уникальный идентификатор изображения, начиная с 1 Да
width целое число Ширина изображения в пикселях Да
height целое число Высота изображения в пикселях Да
file_name строка Уникальное имя изображения Да
absolute_url или coco_url строка Путь к изображению как абсолютный URI к BLOB в контейнере BLOB-объектов. Ресурс визуального зрения должен иметь разрешение на чтение файлов заметок и всех ссылочных файлов изображений. Да

Значение для absolute_url можно найти в свойствах контейнера BLOB.

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

"заметки"

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

"категории"

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

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

Вы можете использовать пример кода Python, чтобы проверить формат COCO-файла.

Объект набора данных

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

Объект модели

Объект Model — это структура данных, хранящаяся службой анализа изображений, представляющей пользовательскую модель. Он должен быть связан с набором данных, чтобы выполнить начальное обучение. После обучения вы можете запросить модель, введя его имя в model-name параметре запроса вызова API анализа изображений.

Лимиты квот

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

Категория Универсальный классификатор изображений Универсальный детектор объектов
Максимальное число часов обучения # 288 (12 дней) 288 (12 дней)
Макс. число изображений для обучения 1 000 000 200 000
Максимальное число оценочных изображений 100,000 100,000
Минимальное количество тренировочных изображений для каждой категории 2 2
Максимальное число тегов # на изображение 1 Н/П
Максимальное число регионов на изображение Н/П 1,000
Максимальное число категорий # 2500 1,000
Мин. # категорий 2 1
Максимальный размер изображения (обучение) 20 МБ 20 МБ
Максимальный размер изображения (прогнозирование) Синхронизация: 6 МБ, пакет: 20 МБ Синхронизация: 6 МБ, Пакет: 20 МБ
Максимальные ширина и высота изображения (для обучения) 10 240 10 240
Минимальная ширина или высота изображения (прогнозирование) 50 50
Доступные регионы Западная часть США 2, восточная часть США, Западная Европа Западная часть США 2, восточная часть США, Западная Европа
Принимаемые типы изображений jpg, png, bmp, gif, jpeg jpg, png, bmp, gif, jpeg

Часто задаваемые вопросы

Почему при импорте файла COCO происходит сбой при импорте из хранилища BLOB-объектов?

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

Почему обучение занимает больше времени или меньше, чем мой указанный бюджет?

Указанный бюджет на обучение — это откалиброванное время вычислений, а не настенное время. Перечислены некоторые распространенные причины разницы:

  • Длиннее указанного бюджета:

    • Анализ изображений обеспечивает высокий трафик обучения, а ресурсы GPU могут быть жесткими. Ваше задание может быть в ожидании в очереди или приостанавливаться во время обучения.
    • Процесс обучения бэкенда столкнулся с непредвиденными сбоями, что привело к повторным попыткам выполнения логики. Неудачные запуски не используют бюджет, но это может привести к в целом более длительному времени обучения.
    • Данные хранятся в другом регионе, отличном от ресурса Визуального зрения, что приведет к более длительной передаче данных.
  • Выше указанного бюджета: следующие факторы ускоряют обучение, но требуют большего бюджета в определённое время.

    • Анализ изображений иногда использует несколько GPU в зависимости от объёма данных.
    • Анализ изображений иногда проводит несколько эксплуатационных испытаний на нескольких GPU одновременно.
    • Анализ изображений иногда использует передовые более быстрые модели GPU для обучения.

Почему у меня не удается обучение и что мне делать?

Ниже приведены некоторые распространенные причины сбоя обучения:

  • diverged: Обучение не может извлечь существенную информацию из ваших данных. Ниже приведены некоторые распространенные причины.
    • Недостаточно данных: предоставление дополнительных данных должно помочь.
    • Данные имеют плохое качество: проверьте, имеют ли изображения низкое разрешение, крайние пропорции или если заметки неверны.
  • notEnoughBudget: указанного бюджета недостаточно для размера вашего набора данных и типа модели, которую вы обучаете. Укажите больший бюджет.
  • datasetCorrupt: обычно это означает, что предоставленные изображения недоступны или файл заметки находится в неправильном формате.
  • datasetNotFound: не удается найти набор данных
  • unknown: это может быть проблема серверной части. Обратитесь в службу поддержки для расследования.

Какие метрики используются для оценки моделей?

Используются следующие метрики:

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

Почему регистрация набора данных завершается ошибкой?

Ответы API должны быть достаточно информативными. В их число входят:

  • DatasetAlreadyExists: набор данных с тем же именем существует
  • DatasetInvalidAnnotationUri: "Недопустимый URI был предоставлен в списке URI аннотаций во время регистрации набора данных."

Сколько изображений требуется для разумного/ хорошего или лучшего качества модели?

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

Если бюджет маркировки данных ограничен, рекомендуемый рабочий процесс — повторить следующие действия:

  1. Соберите N изображений на класс, где N изображения легко собрать (например, N=3)

  2. Обучите модель и протестируйте ее на оценочном наборе.

  3. Если производительность модели :

    • Достаточно хорошо (производительность лучше, чем ваше ожидание или производительность близко к предыдущему эксперименту с меньшим объемом собранных данных): остановите здесь и используйте эту модель.
    • Неудовлетворительно (производительность остается низкой относительно ваших ожиданий или лучше, чем предыдущий эксперимент с меньшим количеством данных, собранных с разумной погрешностью):
    • Соберите больше изображений для каждого класса — число, которое легко собрать, и вернитесь к шагу 2.
    • Если вы заметили, что производительность больше не улучшается после нескольких итераций, это может быть потому, что:
      • эта проблема не определена или слишком сложна. Обратитесь к нам за анализом в индивидуальном порядке.
      • Данные обучения могут быть низкого качества: проверьте, есть ли неправильные аннотации или изображения с очень низким разрешением.

Сколько бюджета обучения следует указать?

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

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

Можно ли контролировать гиперпараметры и использовать собственные модели в обучении?

Нет, служба настройки модели анализа изображений использует систему обучения AutoML с низким кодом, которая обрабатывает поиск гипер-парам и выбор базовой модели в серверной части.

Можно ли экспортировать модель после обучения?

API прогнозирования поддерживается только через облачную службу.

Почему оценка моей модели обнаружения объектов неудачна?

Ниже приведены возможные причины:

  • internalServerError: произошла неизвестная ошибка. Повторите попытку позже".
  • modelNotFound: указанная модель не найдена.
  • datasetNotFound: указанный набор данных не найден.
  • datasetAnnotationsInvalid: произошла ошибка при попытке скачать или проанализировать опорные аннотации, связанные с тестовым набором данных.
  • datasetEmpty: тестовый набор данных не содержал никаких разметок "истинные значения".

Какова ожидаемая задержка прогнозов с пользовательскими моделями?

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

Конфиденциальность и безопасность данных

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

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

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