Catch up on everything we announced at this year's Firebase Summit. Learn more

Обучение модели маркировки изображений с помощью AutoML Vision Edge

Для обучения модели маркировки изображений вы предоставляете AutoML Vision Edge набор изображений и соответствующих меток. AutoML Vision Edge использует этот набор данных для обучения новой модели в облаке, которую вы можете использовать для маркировки изображений на устройстве в своем приложении. (См Обзор для получения общей информации об этой функции.)

AutoML Видение края является сервисом Google Cloud. Использование сервиса подлежит Лицензионное соглашение Google Cloud Platform и обслуживание конкретных Условий , и оплата соответственно. Для платежной информации см AutoML Цены страницы.

Прежде чем вы начнете

1. Соберите данные о тренировках.

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

  • Изображения должны быть в одном из следующих форматов: JPEG, PNG, GIF, BMP, ICO.

  • Каждое изображение должно быть не более 30 МБ. Обратите внимание, что AutoML Vision Edge уменьшает масштаб большинства изображений во время предварительной обработки, поэтому, как правило, нет никакого преимущества в точности при предоставлении изображений с очень высоким разрешением.

  • Включите не менее 10, а предпочтительно 100 или более примеров каждой этикетки.

  • Включите несколько углов, разрешений и фона для каждой этикетки.

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

  • Модели, созданные AutoML Vision Edge, оптимизированы для фотографий объектов в реальном мире. Они могут не работать с рентгеновскими снимками, рисунками, сканированными документами, квитанциями и т. Д.

    Кроме того, модели обычно не могут предсказать ярлыки, которые люди не могут присвоить. Итак, если человек не может назначать ярлыки, глядя на изображение в течение 1-2 секунд, модель, вероятно, тоже нельзя обучить этому.

Когда у вас будут готовые обучающие изображения, подготовьте их для импорта в Firebase. У вас есть три варианта:

Вариант 1. Структурированный ZIP-архив

Организуйте свои обучающие изображения в каталоги, каждый из которых назван в честь метки и содержит изображения, которые являются примерами этой метки. Затем сожмите структуру каталогов в zip-архив.

Имена каталогов в этом .zip архив может быть до 32 ASCII символов и может содержать только алфавитно - цифровые символы и символ подчеркивания ( _ ).

Например:

my_training_data.zip
  |____accordion
  | |____001.jpg
  | |____002.jpg
  | |____003.jpg
  |____bass_guitar
  | |____hofner.gif
  | |____p-bass.png
  |____clavier
    |____well-tempered.jpg
    |____well-tempered (1).jpg
    |____well-tempered (2).jpg

Вариант 2. Облачное хранилище с индексом CSV

Загрузить свои учебные изображения в Google Cloud Storage и подготовить CSV файл со списком URL каждого изображения, и, возможно, правильные метки для каждого изображения. Эта опция полезна при использовании очень больших наборов данных.

Например, загрузите изображения в облачное хранилище и подготовьте файл CSV, как показано ниже:

gs://your-training-data-bucket/001.jpg,accordion
gs://your-training-data-bucket/002.jpg,accordion
gs://your-training-data-bucket/003.jpg,accordion
gs://your-training-data-bucket/hofner.gif,bass_guitar
gs://your-training-data-bucket/p-bass.png,bass_guitar
gs://your-training-data-bucket/well-tempered.jpg,clavier
gs://your-training-data-bucket/well-tempered%20(1).jpg,clavier
gs://your-training-data-bucket/well-tempered%20(2).jpg,clavier

Изображения должны храниться в корзине, которая является частью соответствующего проекта Google Cloud вашего проекта Firebase.

См Подготовка ваших обучающих данных в документации Cloud AutoML Vision , для получения дополнительной информации о подготовке файла CSV.

Вариант 3. Изображения без ярлыков

Пометьте свои обучающие изображения в консоли Firebase после их загрузки по отдельности или в неструктурированном zip-файле. См. Следующий шаг.

2. Обучите свою модель

Затем обучите модель, используя ваши изображения:

  1. Открыть видение наборов данных страницы в Google Cloud Console. При появлении запроса выберите свой проект.

  2. Нажмите Новый набор данных, введите имя для набора данных, выберите тип модели вы хотите поезд, и нажмите кнопку Создать набор данных.

  3. На вкладке Импорт вашего набора данных, загружать либо почтовый архив ваших тренировочных образов или файл CSV , содержащий местоположения Cloud Storage вы добавили их. См Собирают данные обучения .

  4. После Завершают задачи импорта используйте вкладку Изображения для проверки подготовки данных и маркировать любые немаркированные изображения.

  5. На вкладке Поезда, нажмите Пуск обучение.

    1. Название модели и выбрать тип края модели.

    2. Настройте следующие параметры обучения, которые определяют производительность созданной модели:

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

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

      Обратите внимание, что обучение может быть завершено за меньшее время, чем указано, если система определяет, что модель оптимизирована и дополнительное обучение не повысит точность. Вам выставляется счет только за фактически использованные часы.

      Типичное время тренировки
      Очень маленькие наборы 1 час
      500 изображений 2 часа
      1000 изображений 3 часа
      5000 изображений 6 часов
      10 000 изображений 7 часов
      50 000 изображений 11 часов
      100 000 изображений 13 часов
      1000000 изображений 18 часов

3. Оцените свою модель.

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

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

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

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

Будете ли вы оптимизировать точность или отзыв, будет зависеть от вашего варианта использования. Смотрите руководство AutoML Видение начинающих и руководство включено ML - AutoML для получения дополнительной информации.

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

4. Опубликуйте или скачайте свою модель.

Если вас устраивает производительность модели и вы хотите использовать ее в приложении, у вас есть три варианта, из которых вы можете выбрать любую комбинацию: развернуть модель для онлайн-прогнозирования, опубликовать модель в Firebase или загрузить модель и связать ее. с вашим приложением.

Разверните модель

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

Опубликуйте модель

Публикуя модель в Firebase, вы можете обновить модель, не выпуская новую версию приложения, и вы можете использовать удаленную конфигурацию и A / B-тестирование для динамического обслуживания различных моделей для разных групп пользователей.

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

Чтобы опубликовать свою модель, вы можете использовать любой из двух методов:

  • Скачать модель TF Lite от Test & использования страницы вашего набора данных в Google Cloud Console, а затем загрузить модель на модели пользовательской странице консоли Firebase. Обычно это самый простой способ опубликовать одну модель.
  • Опубликуйте модель прямо из проекта Google Cloud в Firebase с помощью Admin SDK. Вы можете использовать этот метод для пакетной публикации нескольких моделей или для создания автоматизированных конвейеров публикации.

Для того, чтобы опубликовать модель с администратора SDK модели управления API :

  1. Установить и инициализировать SDK .

  2. Опубликуйте модель.

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

    projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
    PROJECT_NUMBER Номер проекта сегмента Cloud Storage, содержащего модель. Это может быть ваш проект Firebase или другой проект Google Cloud. Вы можете найти это значение на странице настроек консоли Firebase или в панели управления Google Cloud Console.
    MODEL_ID Идентификатор модели, полученный из AutoML Cloud API.

    Python

    # First, import and initialize the SDK.
    
    # Get a reference to the AutoML model
    source = ml.TFLiteAutoMlSource('projects/{}/locations/us-central1/models/{}'.format(
        # See above for information on these values.
        project_number,
        model_id
    ))
    
    # Create the model object
    tflite_format = ml.TFLiteFormat(model_source=source)
    model = ml.Model(
        display_name="example_model",  # This is the name you will use from your app to load the model.
        tags=["examples"],             # Optional tags for easier management.
        model_format=tflite_format)
    
    # Add the model to your Firebase project and publish it
    new_model = ml.create_model(model)
    new_model.wait_for_unlocked()
    ml.publish_model(new_model.model_id)
    

    Node.js

    // First, import and initialize the SDK.
    
    (async () => {
      // Get a reference to the AutoML model. See above for information on these
      // values.
      const automlModel = `projects/${projectNumber}/locations/us-central1/models/${modelId}`;
    
      // Create the model object and add the model to your Firebase project.
      const model = await ml.createModel({
        displayName: 'example_model',  // This is the name you use from your app to load the model.
        tags: ['examples'],  // Optional tags for easier management.
        tfliteModel: { automlModel: automlModel },
      });
    
      // Wait for the model to be ready.
      await model.waitForUnlocked();
    
      // Publish the model.
      await ml.publishModel(model.modelId);
    
      process.exit();
    })().catch(console.error);
    

Загрузите и свяжите модель с вашим приложением

Связывая свою модель с приложением, вы можете гарантировать, что функции машинного обучения вашего приложения по-прежнему работают, когда модель, размещенная в Firebase, недоступна.

Если вы одновременно публикуете модель и связываете ее со своим приложением, приложение будет использовать последнюю доступную версию.

Для того, чтобы загрузить модель, нажмите TF Lite на тест и использование страницы вашего набора данных.

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

Теперь, когда вы опубликовали или загрузить модель, узнать , как использовать эту модель в вашем IOS + и Android приложений.