Распознавание лиц - это процесс обнаружения лиц на изображениях.
В настоящее время все популярные социальные приложения, такие как Instagram, Snapchat, Facebook и т. Д., Используют какую-то технологию распознавания лиц. Это помогает им повысить вовлеченность пользователей и улучшить общее впечатление от приложения.
API распознавания лиц ML Kit предлагает следующие функции ...
- Обнаружение лиц на изображении.
- Определение ключевых черт лица, таких как глаза, нос, рот, счастье и т. Д.
- Получение контуров обнаруженных лиц и их черт лица.
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 и то, как мы можем интегрировать его в наши приложения.
Обнаружение лица 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, посвященные этой серии статей.
- 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 можно найти здесь!
Спасибо за внимание! Поделитесь этой статьей, если вы нашли ее полезной.
Пожалуйста, хлопайте 👏, чтобы проявить немного любви :)