Маркировка изображений - это процесс распознавания различных объектов на изображении.
С помощью маркировки изображений вы можете распознавать различные объекты, такие как животные, растения, еда, действия, цвета, предметы, вымышленные персонажи, напитки и т. Д.
С помощью API маркировки изображений ML Kit вы можете распознать 400+ объектов (и 10 000+ с облачными маркировками изображений).
Серия Firebase ML Kit
В этой серии статей мы подробно рассмотрим различные API-интерфейсы ML Kit, которые он предлагает ...
- Firebase ML Kit 101: Введение
- Firebase ML Kit 101: распознавание текста
- Firebase ML Kit 101: Распознавание лиц
- Firebase ML Kit 101: сканирование штрих-кода
- Firebase ML Kit 101: маркировка изображений (здесь)
- Firebase ML Kit 101: признание достопримечательностей
- Firebase ML Kit 101: идентификация языка
- Firebase ML Kit 101: умный ответ
Давайте рассмотрим API маркировки изображений для ML Kit и то, как мы можем интегрировать его в наши приложения.
Маркировка изображений ML Kit
Маркировка изображений ML Kit предоставляет API-интерфейсы как на устройстве, так и в облаке.
Вы можете выбрать, какой из них использовать, в зависимости от вашего сценария использования.
API на устройстве работает быстро и не требует подключения к Интернету. С другой стороны, облачный API более точен, но требует подключения к Интернету.
Вы можете увидеть уровень точности как для API на устройстве, так и для облачных API на изображении ниже.
Примечание. Firebase ML Kit находится в стадии бета-тестирования с октября 18 г.
Давайте код!
Шаг 1. Добавьте Firebase в свое приложение
Конечно! Вы можете добавить Firebase в свое приложение, выполнив действия, указанные здесь.
Шаг 2. Включите зависимости
Вам необходимо включить зависимости ML Kit в файл build.gradle
уровня приложения.
dependencies { // ... implementation 'com.google.firebase:firebase-ml-vision:18.0.1' implementation 'com.google.firebase:firebase-ml-vision-image-label-model:17.0.2' }
Шаг 2.5: укажите модели машинного обучения (необязательно)
Для API на устройстве вы можете настроить приложение для автоматической загрузки моделей машинного обучения после его установки из Play Store. В противном случае модель будет загружена при первом запуске детектора на устройстве.
Чтобы включить эту функцию, вам необходимо указать свои модели в AndroidManifest.xml
файле приложения.
<application ...> ... <meta-data android:name="com.google.firebase.ml.vision.DEPENDENCIES" android:value="label" /> <!-- To use multiple models: android:value="label,model2" --> </application>
Шаг 3: Получите! - изображение
ML Kit предоставляет простой способ пометить изображения из различных типов изображений, таких как Bitmap
, media.Image
, ByteBuffer
, byte[]
или файл на устройстве. Вам просто нужно создать объект FirebaseVisionImage
из вышеупомянутых типов изображений и передать его модели.
В моем примере приложения я использовал Bitmap
изображение для создания FirebaseVisionImage
объекта.
val image = FirebaseVisionImage.fromBitmap(bitmap)
Чтобы создать объект FirebaseVisionImage
из других типов изображений, обратитесь к официальной документации.
Шаг 4: Установите! - модель
Пришло время подготовить нашу модель маркировки изображений.
ML Kit предоставляет модели маркировки изображений как на устройстве, так и в облаке.
На модели устройства
val detector = FirebaseVision.getInstance().visionLabelDetector
По умолчанию API маркировки изображений на устройстве возвращает не более 10 меток.
Вы можете изменить эту конфигурацию, передав объект FirebaseVisionLabelDetectorOptions
в модель маркировки изображений.
val options = FirebaseVisionLabelDetectorOptions.Builder() .setConfidenceThreshold(0.8F) .build() val detector = FirebaseVision.getInstance().getVisionLabelDetector(options)
Облачная модель
val detector = FirebaseVision.getInstance().visionCloudLabelDetector
По умолчанию облачный API маркировки изображений использует STABLE
версию модели и возвращает не более 10 меток.
Вы можете изменить эту конфигурацию, передав объект FirebaseVisionCloudDetectorOptions
в модель маркировки изображений.
val options = FirebaseVisionCloudDetectorOptions.Builder() .setModelType(FirebaseVisionCloudDetectorOptions.LATEST_MODEL) .setMaxResults(15) .build() val detector = FirebaseVision.getInstance().getVisionCloudLabelDetector(options)
Шаг 5: Гооо!
Наконец, мы можем передать наше изображение модели для маркировки изображений.
detector.detectInImage(image)
.addOnSuccessListener {
// Task completed successfully
}
.addOnFailureListener {
// Task failed with an exception
}
Шаг 6. Извлеките информацию
Вуаля! Вот и все!
Если маркировка изображения прошла успешно, прослушиватель успеха получит список из FirebaseVisionLabel
объектов. Каждый объект FirebaseVisionLabel
представляет объект, который был помечен, и содержит всю связанную с ним информацию.
Вы можете извлечь всю эту информацию вот так.
Посмотри!
Это то, чего вы можете достичь с помощью API маркировки изображений ML Kit.
Вот исходный код вышеуказанного приложения…
Серия Firebase ML Kit
Не забудьте взглянуть на другие API ML Kit, посвященные этой серии статей.
- Firebase ML Kit 101: Введение
- Firebase ML Kit 101: распознавание текста
- Firebase ML Kit 101: Распознавание лиц
- Firebase ML Kit 101: сканирование штрих-кода
- Firebase ML Kit 101: маркировка изображений
- Firebase ML Kit 101: признание достопримечательностей
- Firebase ML Kit 101: идентификация языка
- Firebase ML Kit 101: умный ответ
Полный исходный код с другими API ML Kit можно найти здесь!
Спасибо за внимание! Поделитесь этой статьей, если вы нашли ее полезной.
Пожалуйста, хлопайте 👏, чтобы проявить немного любви :)