Маркировка изображений - это процесс распознавания различных объектов на изображении.

С помощью маркировки изображений вы можете распознавать различные объекты, такие как животные, растения, еда, действия, цвета, предметы, вымышленные персонажи, напитки и т. Д.

С помощью API маркировки изображений ML Kit вы можете распознать 400+ объектов (и 10 000+ с облачными маркировками изображений).

Серия Firebase ML Kit

В этой серии статей мы подробно рассмотрим различные API-интерфейсы ML Kit, которые он предлагает ...

Давайте рассмотрим 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, посвященные этой серии статей.

Полный исходный код с другими API ML Kit можно найти здесь!



Спасибо за внимание! Поделитесь этой статьей, если вы нашли ее полезной.
Пожалуйста, хлопайте 👏, чтобы проявить немного любви :)

Давай подружимся в LinkedIn, GitHub, Facebook, Twitter.