В этом коротком руководстве вы узнаете, как получить количество лиц из растрового изображения с помощью FirebaseVision и Kotlin. FirebaseVisionFaceDetector поддерживает обнаружение лиц как на устройстве, так и в облаке.
Если вы хотите узнать, как получить количество лиц в iOS, Следите за этим
Добавьте Firebase в свой Android-проект (подробнее)
- Создать проект Firebase
- Зарегистрируйте свое приложение в Firebase
- Добавить файл конфигурации Firebase
- Добавьте Firebase SDK в свое приложение
Инициализировать FirebaseApp и FirebaseVision
- Добавьте зависимости для Android-библиотек ML Kit в файл Gradle вашего модуля (уровня приложения) (обычно
app/build.gradle
):
apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' dependencies { // ... implementation 'com.google.firebase:firebase-ml-vision:24.0.1' implementation 'com.google.firebase:firebase-ml-vision-image-label-model:19.0.0' }
- Добавьте следующее объявление в
AndroidManifest.xml
файл вашего приложения:
<application ...> ... <meta-data android:name="com.google.firebase.ml.vision.DEPENDENCIES" android:value="label" /> <!-- To use multiple models: android:value="label,model2,model3" --> </application>
- Инициализируйте FirebaseApp на своем
MainActivity.tk
:
class MainActivity : AppCompatActivity() { private lateinit var encService: EncryptionManager override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //Firebase init FirebaseApp.initializeApp(this.applicationContext) ... } }
FaceCountManager
Напишите класс Singleton и метод для получения количества лиц, передав Bitmap в качестве параметра.
import android.graphics.Bitmap import android.util.Log import com.google.firebase.ml.vision.FirebaseVision import com.google.firebase.ml.vision.common.FirebaseVisionImage import com.google.firebase.ml.vision.face.FirebaseVisionFaceDetector import com.google.firebase.ml.vision.face.FirebaseVisionFaceDetectorOptions object FaceCountManager { private val options = FirebaseVisionFaceDetectorOptions.Builder() .setClassificationMode(FirebaseVisionFaceDetectorOptions.ALL_CLASSIFICATIONS) .setLandmarkMode(FirebaseVisionFaceDetectorOptions.NO_LANDMARKS) .build() private val detector: FirebaseVisionFaceDetector = FirebaseVision.getInstance().getVisionFaceDetector(options) fun detectFaceCount(bitmap: Bitmap, callback: (Int) -> Unit) { val image = FirebaseVisionImage.fromBitmap(bitmap) detector.detectInImage(image).addOnSuccessListener { results -> callback(results.size) }.addOnFailureListener { e -> Log.e("FaceCountManager", e.localizedMessage ?: "Image Count Error") callback(0) } } }
использование
Вы можете вызвать вышеупомянутый класс с растровым изображением, как показано ниже:
val bitmap: Bitmap// Get your bitmap image. FaceCountManager.detectFaceCount(bitmap) { faceCount -> println("Facecount: $faceCount") }
Из этого поста мы узнали, как получить количество лиц в заданном растровом изображении с помощью FirebaseVision и Kotlin.
Если вы хотите узнать, как получить количество лиц в iOS, Следите за этим
Спасибо за чтение.