Для обучения модели маркировки изображений вы предоставляете AutoML Vision Edge набор изображений и соответствующих меток. AutoML Vision Edge использует этот набор данных для обучения новой модели в облаке, которую вы можете использовать для маркировки изображений на устройстве в вашем приложении. (Общую информацию об этой функции см. в разделе «Обзор» .)
AutoML Vision Edge — это сервис Google Cloud. Использование сервиса регулируется Лицензионным соглашением 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: Cloud Storage с CSV-индексом
Загрузите ваши обучающие изображения в Google Cloud Storage и подготовьте CSV-файл с URL-адресами каждого изображения и, при необходимости, с правильными метками для каждого изображения. Эта возможность полезна при работе с очень большими наборами данных.
Например, загрузите изображения в Cloud Storage и подготовьте 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: Немаркированные изображения
После загрузки обучающих изображений (по отдельности или в виде неструктурированного ZIP-файла) маркируйте их в консоли Firebase . См. следующий шаг.
2. Обучите свою модель
Далее обучите модель, используя ваши изображения:
- Откройте страницу Vision Datasets в консоли Google Cloud . При появлении запроса выберите свой проект. 
- Нажмите кнопку Новый набор данных , укажите имя набора данных, выберите тип модели, которую вы хотите обучить, и нажмите кнопку Создать набор данных . 
- На вкладке «Импорт» вашего набора данных загрузите либо ZIP-архив с вашими тренировочными изображениями, либо CSV-файл, содержащий адреса Cloud Storage , в которые вы их загрузили. См. раздел Сборка тренировочных данных . 
- После завершения импорта используйте вкладку «Изображения» для проверки данных обучения и маркируйте все немаркированные изображения. 
- На вкладке Обучение нажмите Начать обучение . - Назовите модель и выберите тип модели 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, вы сможете обновлять ее без выпуска новой версии приложения, а также использовать Remote Config и A/B Testing для динамического предоставления различных моделей различным группам пользователей.
Если вы решите предоставить модель, разместив её в Firebase и не включив её в пакет приложения, вы можете уменьшить размер загружаемого файла. Однако имейте в виду, что если модель не включена в пакет приложения, все функции, связанные с моделью, будут недоступны до тех пор, пока приложение не загрузит её в первый раз.
Чтобы опубликовать свою модель, вы можете воспользоваться одним из двух способов:
- Загрузите модель TF Lite со страницы «Test & use» вашего набора данных в консоли Google Cloud , а затем загрузите её на страницу «Custom model» в консоли 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 . - MODEL_ID- Идентификатор модели, который вы получили от API AutoML Cloud. - Питон- # 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 .