По умолчанию API ML Kit используют модели машинного обучения, обученные Google. Эти модели предназначены для широкого спектра приложений. Однако в некоторых случаях требуются более узкоспециализированные модели. Поэтому в некоторых API ML Kit теперь можно заменять модели по умолчанию на собственные модели LiteRT.
API Image Labeling и Object Detection & Tracking поддерживают собственные модели классификации изображений. Они совместимы с высококачественными предварительно обученными моделями из TensorFlow Hub и с собственными моделями, обученными с помощью TensorFlow или AutoML.
Если вам нужно специальное решение для других доменов или вариантов использования, посетите страницу о локальном машинном обучении, чтобы узнать о всех решениях и инструментах Google для локального машинного обучения.
Преимущества использования ML Kit со специальными моделями
Преимущества использования пользовательской модели классификации изображений с ML Kit:
- Простые в использовании API высокого уровня. Вам не нужно работать с низкоуровневыми входными и выходными данными модели, выполнять предварительную и последующую обработку изображений или создавать конвейер обработки.
- Вам не нужно сопоставлять ярлыки вручную. ML Kit извлекает ярлыки из метаданных модели LiteRT и сопоставляет их.
- Поддержка пользовательских моделей из различных источников – от предварительно обученных моделей, опубликованных в TensorFlow Hub, до новых моделей, обученных с помощью TensorFlow или AutoML.
- Оптимизировано для интеграции с API камеры Android.
А для обнаружения и отслеживания объектов:
- Повысить точность классификации, сначала обнаружив объекты, а затем запустив классификатор только для связанных областей изображения.
- Обеспечьте интерактивность в реальном времени, предоставляя пользователям мгновенную обратную связь об обнаруженных и классифицированных объектах.
Как использовать предварительно обученную модель классификации изображений
Вы можете использовать предварительно обученные модели LiteRT, если они соответствуют определенным критериям. В TensorFlow Hub мы предлагаем набор проверенных моделей, созданных Google и другими авторами, которые соответствуют этим критериям.
Как использовать модель, опубликованную на TensorFlow Hub
TensorFlow Hub предлагает широкий спектр предварительно обученных моделей классификации изображений от разных авторов, которые можно использовать с API для маркировки изображений, обнаружения объектов и отслеживания объектов. Чтобы сделать это, выполните следующие действия:
- Выберите модель из коллекции моделей, совместимых с ML Kit.
- Скачайте файл модели в формате TFLITE со страницы сведений о модели. Если доступно, выберите формат модели с метаданными.
- Ознакомьтесь с нашими руководствами по Image Labeling API и Object Detection and Tracking API, чтобы узнать, как добавить файл модели в проект и использовать его в приложении для Android или iOS.
Обучение собственной модели классификации изображений
Если ни одна из готовых моделей классификации изображений вам не подходит, вы можете обучить собственную модель LiteRT. Ниже описаны различные способы обучения, а также приведены ссылки на более подробную информацию.
| Варианты обучения собственной модели классификации изображений | |
|---|---|
| AutoML |
|
| Как преобразовать модель TensorFlow в LiteRT |
|
AutoML
Модели классификации изображений, обученные с помощью AutoML, поддерживаются пользовательскими моделями в API Image Labeling и Object Detection and Tracking API. Эти API также поддерживают скачивание моделей, размещенных в Cloud Storage.
Чтобы узнать, как использовать модель, обученную с помощью AutoML, в приложениях для Android и iOS, следуйте инструкциям для настраиваемой модели для каждого API в зависимости от вашего варианта использования.
Модели, созданные с помощью конвертера LiteRT
Если у вас уже есть модель классификации изображений TensorFlow, вы можете преобразовать ее с помощью конвертера LiteRT. Убедитесь, что созданная модель соответствует следующим требованиям совместимости.
Чтобы узнать, как использовать модель LiteRT в приложениях для Android и iOS, следуйте инструкциям в руководствах по Image Labeling API или Object Detection and Tracking API в зависимости от вашего варианта использования.
Совместимость моделей LiteRT
Вы можете использовать любую предварительно обученную модель классификации изображений LiteRT, если она соответствует следующим требованиям:
Тензоры
- У модели должен быть только один входной тензор со следующими ограничениями:
- Данные представлены в формате пикселей RGB.
- Данные имеют тип UINT8 или FLOAT32. Если тип входного тензора – FLOAT32, необходимо указать NormalizationOptions, добавив метаданные.
- У тензора четыре измерения : BxHxWxC, где:
- B – размер пакета. Значение должно быть равно 1 (вывод на основе больших пакетов не поддерживается).
- W и H – это входные ширина и высота.
- C – ожидаемое количество каналов. Значение должно быть равно 3.
- У модели должен быть хотя бы один выходной тензор с N классами и двумя или четырьмя измерениями:
- (1xN)
- (1x1x1xN)
- Полностью поддерживаются только модели с одной головкой. Модели с несколькими выходными слоями могут выдавать неожиданные результаты.
Метаданные
Вы можете добавить метаданные в файл LiteRT, как описано в разделе Добавление метаданных в модели LiteRT.
Чтобы использовать модель с входным тензором FLOAT32, необходимо указать NormalizationOptions в метаданных.
Мы также рекомендуем прикрепить эти метаданные к выходному тензору TensorMetadata:
- Карта ярлыков, в которой указано название каждого выходного класса, в виде файла AssociatedFile с типом TENSOR_AXIS_LABELS (в противном случае будут возвращаться только числовые индексы выходных классов).
- Пороговое значение оценки по умолчанию, ниже которого результаты считаются недостаточно достоверными, чтобы быть возвращенными, в виде ProcessUnit с ScoreThresholdingOptions.