Медленная обработка всех изображений с помощью Google Face API?
Я делаю приложение для Android, которое использует API Google Face для обнаружения лиц всех изображений в галерее. Обработка всех изображений занимает много времени, и, следовательно, приложения застревают надолго. Любое решение? Я попытался уменьшить размер изображения и затем обработать, но это дает неверный ответ на него.
3 ответа
Решение
2 минуты для 715 изображений - действительно хорошее время.
Шаги, которые можно предпринять:
- включить быстрый режим в FaceDetector
- установите setTrackingEnabled в false, если вы не хотите отслеживать
- установите минимальный размер лица на соответствующий размер в соответствии с вашим набором данных
- Загрузите растровые изображения, используя Universal Image Loader или библиотеку скольжения Android. Я использовал библиотеку UIL.
- 640x480 - оптимальный размер для распознавания лиц и классификации для уменьшения размера за меньшее время и почти того же результата.
- Установите setLandmarkType и setClassificationType в соответствии с вашими потребностями и отключите, если не требуется.
Отключить отслеживание изображений:
FaceDetector detector = new FaceDetector.Builder(context)
.setTrackingEnabled(false)
.build();
Это true
по умолчанию, и может замедлить обнаружение, если вам не нужна эта функция.
Если вы посмотрите в документации FaceDetector.Builder
вы увидите, что вы можете установить некоторые свойства, которые увеличат скорость.
Например:
public FaceDetector.Builder setProminentFaceOnly (boolean prominentFaceOnly)