Чтобы обучить модель маркировки изображений, вы предоставляете AutoML Vision Edge набор изображений и соответствующих меток. AutoML Vision Edge использует этот набор данных для обучения новой модели в облаке, которую вы можете использовать для маркировки изображений на устройстве в своем приложении. (Общие сведения об этой функции см. в разделе Обзор .)
AutoML Vision Edge — это облачный сервис Google. Использование службы регулируется Лицензионным соглашением Google Cloud Platform и Особыми условиями службы и оплачивается соответствующим образом. Сведения о выставлении счетов см. на странице цен на AutoML.
Прежде чем вы начнете
Если у вас еще нет проекта Firebase или Google Cloud, создайте его в консоли Firebase .
Ознакомьтесь с рекомендациями, представленными в руководстве по Inclusive ML — AutoML .
Если вы просто хотите попробовать AutoML Vision Edge и у вас нет собственных обучающих данных, загрузите пример набора данных, например один из следующих:
- Официальный набор примеров изображений цветов TensorFlow
- Этот набор данных алфавита американского языка жестов (ASL)
Вы можете найти больше наборов данных, размещенных на Kaggle .
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.
Дополнительные сведения о подготовке CSV-файла см. в разделе Подготовка данных для обучения в документации по Cloud AutoML Vision.
Вариант 3. Немаркированные изображения
Отметьте свои тренировочные изображения в консоли Firebase после того, как загрузите их по отдельности или в виде неструктурированного zip-файла. См. следующий шаг.
2. Обучите свою модель
Затем обучите модель, используя ваши изображения:
Откройте страницу наборов данных Vision в Google Cloud Console. Выберите свой проект, когда будет предложено.
Щелкните Новый набор данных , укажите имя набора данных, выберите тип модели, которую хотите обучить, и щелкните Создать набор данных .
На вкладке «Импорт» вашего набора данных загрузите либо zip-архив ваших тренировочных изображений, либо файл CSV, содержащий местоположения облачного хранилища, в которые вы их загрузили. См. Сбор данных для обучения .
После завершения задачи импорта используйте вкладку «Изображения» , чтобы проверить данные обучения и пометить все немаркированные изображения.
На вкладке «Обучение» нажмите «Начать обучение» .
Назовите модель и выберите тип модели Edge .
Настройте следующие параметры обучения, которые определяют производительность сгенерированной модели:
Оптимизировать модель для... Используемая конфигурация модели. Вы можете обучать более быстрые модели меньшего размера, когда важна низкая задержка или небольшой размер пакета, или более медленные модели большего размера, когда наиболее важна точность. Бюджет часа узла Максимальное время в часах вычислений, затрачиваемое на обучение модели. Большее время обучения обычно приводит к более точной модели.
Обратите внимание, что обучение может быть завершено меньше указанного времени, если система определит, что модель оптимизирована и дополнительное обучение не улучшит точность. Вы платите только за фактически использованные часы.
Типичное время обучения Очень маленькие наборы 1 час 500 изображений 2 часа 1000 изображений 3 часа 5000 изображений 6 часов 10 000 изображений 7 часов 50 000 изображений 11 часов 100 000 изображений 13 часов 1 000 000 изображений 18 часов
3. Оцените свою модель
По завершении обучения вы можете щелкнуть вкладку Оценить , чтобы просмотреть показатели производительности модели.
Одним из важных применений этой страницы является определение порога достоверности, который лучше всего подходит для вашей модели. Порог достоверности — это минимальная достоверность, которую должна иметь модель, чтобы присвоить метку изображению. Перемещая ползунок Порог достоверности , вы можете увидеть, как различные пороги влияют на производительность модели. Производительность модели измеряется с помощью двух показателей: точности и полноты .
В контексте классификации изображений точность — это отношение количества изображений, которые были правильно помечены, к количеству изображений, помеченных моделью с учетом выбранного порога. Когда модель имеет высокую точность, она реже присваивает метки неправильно (меньше ложных срабатываний).
Полнота — это отношение количества изображений, которые были правильно помечены, к количеству изображений с контентом, который модель должна была иметь возможность пометить. Когда модель имеет высокую полноту, она реже не может присвоить какую-либо метку (меньше ложных отрицательных результатов).
Оптимизируете ли вы точность или отзыв, будет зависеть от вашего варианта использования. Дополнительную информацию см. в руководстве для начинающих по AutoML Vision и в руководстве Inclusive ML — AutoML .
Когда вы найдете порог достоверности, который дает удобные для вас показатели, запишите его; вы будете использовать порог достоверности для настройки модели в своем приложении. (Вы можете использовать этот инструмент в любое время, чтобы получить соответствующее пороговое значение.)
4. Опубликуйте или загрузите свою модель
Если вас устраивает производительность модели и вы хотите использовать ее в приложении, у вас есть три варианта, из которых вы можете выбрать любую комбинацию: развернуть модель для онлайн-прогнозирования, опубликовать модель в Firebase или загрузить модель и связать ее. с вашим приложением.
Разверните модель
На вкладке «Тестирование и использование» вашего набора данных вы можете развернуть свою модель для онлайн-прогнозирования, которая запускает вашу модель в облаке. Этот параметр описан в документации по Cloud AutoML . Документы на этом сайте касаются оставшихся двух вариантов.
Опубликовать модель
Публикуя модель в Firebase, вы можете обновить модель, не выпуская новую версию приложения, а также использовать удаленную настройку и A/B-тестирование для динамического предоставления различных моделей различным группам пользователей.
Если вы решите предоставить модель только путем размещения ее в Firebase, а не в комплекте с приложением, вы можете уменьшить первоначальный размер загружаемого приложения. Однако имейте в виду, что если модель не связана с вашим приложением, любые связанные с моделью функции будут недоступны до тех пор, пока ваше приложение не загрузит модель в первый раз.
Чтобы опубликовать свою модель, вы можете использовать любой из двух способов:
- Загрузите модель TF Lite со страницы «Тестирование и использование» вашего набора данных в Google Cloud Console, а затем загрузите модель на странице «Пользовательская модель» консоли Firebase. Обычно это самый простой способ опубликовать одну модель.
- Опубликуйте модель непосредственно из своего проекта Google Cloud в Firebase с помощью Admin SDK. Этот метод можно использовать для пакетной публикации нескольких моделей или для создания автоматических конвейеров публикации.
Чтобы опубликовать модель с помощью API управления моделью Admin SDK:
Опубликуйте модель.
Вам нужно будет указать идентификатор ресурса модели, который представляет собой строку, похожую на следующий пример:
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. питон
# 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 .