Firebase ML Kit не распознает лица - PullRequest
0 голосов
/ 07 февраля 2020

Я использую комплект Google Firebase ML Kit для определения контуров лица изображений, снятых с камеры телефона. Однако на самом деле он не обнаруживает никаких лиц. Я проверил, что изображение было снято и правильно сохранено с камеры, отображая изображение в ImageView. Я также добавил, что

 <meta-data android:name="com.google.android.gms.vision.DEPENDENCIES" android:value="face"/>

в AndroidManifest. xml и

implementation 'com.google.firebase:firebase-ml-vision:24.0.1'
implementation 'com.google.firebase:firebase-ml-vision-face-model:19.0.0'

в build.gradle приложения.

Вот код Firebase:

        FirebaseApp.initializeApp(context);
        FirebaseVisionFaceDetectorOptions realTimeOpts =
                new FirebaseVisionFaceDetectorOptions.Builder()
                        .setPerformanceMode(FirebaseVisionFaceDetectorOptions.ACCURATE)
                        .setContourMode(FirebaseVisionFaceDetectorOptions.ALL_CONTOURS)
                        .build();

        fbImage = FirebaseVisionImage.fromBitmap(portrait);


        FirebaseVisionFaceDetector detector = FirebaseVision.getInstance()
                .getVisionFaceDetector(realTimeOpts);

        Task<List<FirebaseVisionFace>> result =
                detector.detectInImage(fbImage)
                        .addOnSuccessListener(
                                new OnSuccessListener<List<FirebaseVisionFace>>() {
                                    @Override
                                    public void onSuccess(List<FirebaseVisionFace> faces) {

                                        Log.d(TAG, "No. Faces Detected: " + faces.size());


                                    }
                                })
                        .addOnFailureListener(
                                new OnFailureListener() {
                                    @Override
                                    public void onFailure(@NonNull Exception e) {
                                        Log.d(TAG, e.getMessage());
                                    }
                                });

Кто-нибудь знает, почему это ничего не обнаруживает?

Ответы [ 2 ]

0 голосов
/ 07 февраля 2020

На самом деле это была не проблема Firebase, а проблема с изображением. Очевидно, Samsung поворачивает ориентацию захваченного изображения, и Firebase не может определить лицо, поскольку оно было повернуто на 90 градусов. Исправлено это простым поворотом изображения обратно в портретную ориентацию. Сфотографированная ориентация фото меняется в android

0 голосов
/ 07 февраля 2020

У меня была эта проблема в недавнем прошлом. Мое решение состояло в том, чтобы объявить определенные c лица. Затем использовать манифест для объявления всех лиц, которые будут распознаны. Вот ссылка на это:
Вот firebase-ml-kit !

...