Невозможно настроить Firebase (Google) Точность определения лица MLKit - PullRequest
0 голосов
/ 14 октября 2018

Я пишу приложение для камеры Android и использую встроенный API MLKit для распознавания лиц.Хорошая особенность этого API состоит в том, что его очень просто запустить и запустить, и есть пример приложения , которое показывает, как это сделать, но кажется, что оно очень ограничено в том, что вы можете с ним сделать.

Моя проблема в том, что я получаю слишком много ложных срабатываний (низкая точность), и это не то, чем я могу управлять, похоже.Единственная опция, которую я могу установить, это modeType, которая будет FAST_MODE или ACCURATE_MODE.Но что мне действительно нужно, так это некоторые ручки, которые я могу настроить, чтобы получить желаемую комбинацию точности и отзыва.

Кто-нибудь знает, есть ли API, который я могу использовать, чтобы получить дополнительный контроль над конечным результатом?

Ответы [ 2 ]

0 голосов
/ 17 января 2019

У меня была похожая проблема.Google, похоже, не выставляет оценку качества лица, поэтому я решил проблему, рассчитав собственную оценку лица.Я использовал атрибуты Landmark объекта Face для создания своей собственной метрики, например:

  • Face.getIsLeftEyeOpenProbability ()
  • Face.getIsRightEyeOpenProbability ()
  • Face.getLandmarks (). size () // у большинства поддельных лиц не будет много ориентиров
  • Face.getEulerY ()
  • Face.getEulerZ ()

Iобнаружил, что с помощью этих углов головы, количества ориентиров и т. д. эффективно отфильтровываются ложноположительные лица.

0 голосов
/ 14 октября 2018

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

/** Libary Options */
val options = FirebaseVisionFaceDetectorOptions.Builder()
   .setModeType(FirebaseVisionFaceDetectorOptions.ACCURATE_MODE) // used to state whether the recognition process should favour either speed or accuracy, can be set to either ACCURATE_MODE or FAST_MODE. This defaults to FAST_MODE.
   .setLandmarkType(FirebaseVisionFaceDetectorOptions.ALL_LANDMARKS) // used to declare whether the recognition process should recognise facial landmarks such as the nose, eyes, mouth etc. This defaults to NO_LANDMARKS.
   .setClassificationType(FirebaseVisionFaceDetectorOptions.ALL_CLASSIFICATIONS) //  used to declare whether the recognition process should classify facial features such as whether the face is smiling or the eyes are open. This defaults to NO_CLASSIFICATIONS.
   .setMinFaceSize(0.15f) //used to define the minimum size of a face (relative to the given image) for it to be detected. This value defaults to 0.1f.
   .setTrackingEnabled(true) // used to declare whether or not an ID should be assigned to faces, for tracking faces between images. This defaults to false.
   .build()

Я приведу пример, но на испанском или если вы хотите больше информации об этой библиотеке, прочитайте этот пост,https://medium.com/google-developer-experts/exploring-firebase-mlkit-on-android-face-detection-part-two-de7e307c52e0

...