Распознавание лиц - это процесс обнаружения лиц на изображениях.

В настоящее время все популярные социальные приложения, такие как Instagram, Snapchat, Facebook и т. Д., Используют какую-то технологию распознавания лиц. Это помогает им повысить вовлеченность пользователей и улучшить общее впечатление от приложения.

API распознавания лиц ML Kit предлагает следующие функции ...

  • Обнаружение лиц на изображении.
  • Определение ключевых черт лица, таких как глаза, нос, рот, счастье и т. Д.
  • Получение контуров обнаруженных лиц и их черт лица.

API распознавания лиц ML Kit разработан для работы на самом устройстве, что делает его быстрым, точным и способным обнаруживать лица в реальном времени.

Серия Firebase ML Kit

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

Давайте посмотрим на API распознавания лиц ML Kit и то, как мы можем интегрировать его в наши приложения.

Обнаружение лица ML Kit

API распознавания лиц ML Kit предоставляет следующие ключевые функции.

  • Распознавайте и определяйте черты лица
    Получите координаты глаз, ушей, щек, носа и рта для каждого обнаруженного лица.

  • Получите контуры черт лица
    Получите контуры обнаруженных лиц и их глаз, бровей, губ и носа.

  • Распознавайте выражения лица
    . Определите, улыбается человек или закрыты глаза.

  • Обработка видеокадров в реальном времени
    Обнаружение лиц выполняется на устройстве и достаточно быстро для использования в приложениях реального времени, таких как обработка видео.

Примечание. Firebase ML Kit находится в стадии бета-тестирования с января 1919 года.

Давайте код!

Шаг 1. Добавьте Firebase в свое приложение

Конечно! Вы можете добавить Firebase в свое приложение, выполнив действия, указанные здесь.

Шаг 2. Включите зависимости

Вам необходимо включить зависимости ML Kit в файл build.gradle уровня приложения.

dependencies {
  // ...

  implementation 'com.google.firebase:firebase-ml-vision:19.0.2'
  implementation 'com.google.firebase:firebase-ml-vision-face-model:17.0.2'
}

Шаг 2.5: укажите модели машинного обучения (необязательно)

Для API на устройстве вы можете настроить приложение для автоматической загрузки моделей машинного обучения после его установки из Play Store. В противном случае модель будет загружена при первом запуске детектора на устройстве.

Чтобы включить эту функцию, вам необходимо указать свои модели в AndroidManifest.xml файле приложения.

<application ...>
  ...
  <meta-data
      android:name="com.google.firebase.ml.vision.DEPENDENCIES"
      android:value="face" />
  <!-- To use multiple models: android:value="face,model2" -->
</application>

Шаг 3: Получите! - изображение

ML Kit обеспечивает простой способ обнаружения лиц на различных типах изображений, таких как Bitmap, media.Image, ByteBuffer, byte[] или файл на устройстве. Вам просто нужно создать объект FirebaseVisionImage из вышеупомянутых типов изображений и передать его модели.

В моем примере приложения я использовал byte[] и Bitmap для создания FirebaseVisionImage объектов.

byte[]

val metadata = FirebaseVisionImageMetadata.Builder()
        .setWidth(width)
        .setHeight(height)
        .setFormat(FirebaseVisionImageMetadata.IMAGE_FORMAT_NV21)
        .setRotation(rotation)
        .build()

val image = FirebaseVisionImage.fromByteArray(byteArray, metadata)

Bitmap

val image = FirebaseVisionImage.fromBitmap(bitmap)

Чтобы создать FirebaseVisionImage объект из других типов изображений, обратитесь к официальной документации.

Шаг 4: Установите! - модель

Пришло время подготовить нашу модель распознавания лиц.

val detector = FirebaseVision.getInstance().visionFaceDetector

Если вы хотите настроить модель обнаружения лиц в соответствии с вашими потребностями, вы можете сделать это с помощью объекта FirebaseVisionFaceDetectorOptions.

// face classification and landmark detection
val options = FirebaseVisionFaceDetectorOptions.Builder()
   .setPerformanceMode(FirebaseVisionFaceDetectorOptions.ACCURATE)
   .setLandmarkMode(FirebaseVisionFaceDetectorOptions.ALL_LANDMARKS)
   .build()
// contour detection
val options = FirebaseVisionFaceDetectorOptions.Builder()
   .setContourMode(FirebaseVisionFaceDetectorOptions.ALL_CONTOURS)
   .build()
val detector = FirebaseVision.getInstance().getVisionFaceDetector(options)

Вот список всех настроек, которые вы можете настроить в своей модели распознавания лиц.

Шаг 5: Гооо!

Наконец, мы можем передать наше изображение модели для распознавания лиц.

detector.detectInImage(image)
        .addOnSuccessListener {
            // Task completed successfully
        }
        .addOnFailureListener {
            // Task failed with an exception
        }

Шаг 6. Извлеките информацию

Вуаля! Вот и все!
Если обнаружение лица прошло успешно, прослушиватель успеха получит список из FirebaseVisionFace объектов. Каждый FirebaseVisionFace объект представляет обнаруженное лицо и содержит всю связанную с ним информацию.

Вы можете извлечь всю эту информацию вот так.

Посмотри!

Это то, чего вы можете достичь с помощью API распознавания лиц ML Kit.

Вот исходный код вышеуказанного приложения…



Серия Firebase ML Kit

Не забудьте взглянуть на другие API-интерфейсы ML Kit, посвященные этой серии статей.

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



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

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