Пользуюсь библиотекой face regognition. Использую библиотеку в основном, чтобы делать кроп нового для программы лица. Столкнулся с проблемой, что face recognition может сохранить смазанное лицо, и нет возможности как-то сделать задержку в создании фотки. Отсюда вытекает вопрос, как сказать программе, смазанная фотка или нет?
Мой совет конечно не из лучших. В Android есть такая штука Camera 2 API, если этот API доступен, то приложению камеры посылает полигоны, которые расфокусированы, прямо налету. Их же можно сразу сравнить с полигонами из face detection.
Я включал это в приложении OpenCamera в настройках Camera preview.
Опция называется Focus peaking
Allows displaying on-screen highlights to indicate edges (contours) that are in-focus (only available if Camera2 API is used). This is particularly useful in conjunction with manual focus mode, to help show which regions of the image are in focus. Note that enabling focus peaking may use more battery.
Исходный код OpenCamera доступен, может быть там найдете что-то интересное