Обнаружение лица камерой getMaxNumDetectedFaces возвращает 0 для Nexus 4, Nexus 7, Samsung Galaxy 2

Я пытаюсь заставить распознавание лиц работать в режиме предварительного просмотра в реальном времени, используя аппаратный Camera.faceDetectionListener, новый в ICS. Я пробовал с Nexus 4, Nexus 7 и планшетом Samsung Galaxy 10.1, и ВСЕ эти устройства возвращают 0 для передней камеры, когда я вызываю getMaxNumDetectedFaces. Однако все устройства поддерживают разблокировку лица, поэтому я не понимаю, почему ни одно из них не поддерживает распознавание лиц. Кто-нибудь получил это работает с одним из этих устройств?


person Kate R    schedule 26.10.2013    source источник


Ответы (1)


Поддерживается, начиная с API 14 (ICS), getMaxNumDetectedFaces возвращает максимальную длину массива, содержащего результаты обнаружения лица камерой после его запуска с помощью startFaceDetection. Если возвращенное значение равно 0, это означает, что устройство не поддерживает этот метод обнаружения лиц. В этом случае распознавание лиц должно быть реализовано каким-то другим способом (например, с помощью FaceDetector доступно начиная с API 1).

Я проверил значение, возвращаемое getMaxNumDetectedFaces для передней и задней камер на нескольких устройствах:

  • Nexus 4: возвращает 2 для обеих камер.
  • Nexus 5: возвращает очень большое число (5308421) для обеих камер.
  • Nexus 7: возвращает 0 для обеих камер.
  • Nexus 10: возвращает 16 для обеих камер
  • Sony Xperia Z1: возвращает 5 для обеих камер.

Подводя итог, можно сказать, что OEM-поддержка распознавания лиц камерой работает на совесть.

person John Doedoe    schedule 05.06.2014