Обнаружение точек персональных функций с помощью OpenCV

Я хочу определить точки на лице, как показано на рисунке

enter image description here

Я использую OpenCV CascadeClassifier:: detectMultiScale.
Я использую файлы haarcascade_frontalface_alt, haarcascade_eye, haarcascade_mcs_mouth xml.

Я удовлетворен обнаружением лица, но не с обнаружением черт лица.

Я хочу, чтобы обнаружение точек функции работало для изображений до расстояния 8 футов.

Я ищу более точную и надежную позу (15 градусов) и открытие рта, без компрометирующей скорости.
Я ищу скорость 25 кадров в секунду на процессоре i5.

Может ли кто-нибудь предложить/передать мне какие-либо библиотеки/исходные коды для моей проблемы.

платформа С++.

Ответ 1

Попробуйте Flandmarks http://cmp.felk.cvut.cz/~uricamic/flandmark/ Он извлекает 7 признаков, но вы не сможете получить точки функции для верхней и нижней губ.

Вы можете попробовать использовать сетку ASM, чтобы соответствовать лицу. Существует несколько реализаций, которые используют ASM/AAM. https://code.google.com/p/asmlib-opencv/ - это библиотека с открытым исходным кодом, которая имеет встроенный набор данных для изображений лиц. Посмотрите на него.

Приветствия