Распознавание лиц с OpenCV для не фронтальных изображений - PullRequest
12 голосов
/ 10 января 2012

Я пытаюсь использовать opencv для обнаружения лиц.Лица не фронтальны, камера захватывает лица со стороны, поэтому виден только один глаз и часть рта.Я пробовал HaarDetectObjects с несколькими конфигурациями, не получая выгоды.Я изменил каскад и протестировал: haarcascade_frontalface_default.xml, haarcascade_frontalface_alt.xml, haarcascade_profileface.xml с очень плохими результатами.Есть ли другие лучшие каскады?Есть ли другие предложения?

Спасибо

Ответы [ 3 ]

14 голосов
/ 20 февраля 2013

Теперь у вас в OpenCV новый каскад LBP для граней профиля, созданный Вадимом Писаревским:

https://github.com/Itseez/opencv/blob/master/data/lbpcascades/lbpcascade_profileface.xml

Очевидно, он обнаруживает только правильные грани профиля, поэтому для обнаружения всех граней профиля необходимо выполнить второй шаг с перевернутым изображением.

9 голосов
/ 10 января 2012

Каскадные файлы, на которые вы ссылались (например, aarcascade_frontalface_default.xml, haarcascade_frontalface_alt.xml, haarcascade_profileface.xml), создаются с использованием полных фронтальных граней для обнаружения полных фронтальных граней. Таким образом, половина лица, очевидно, не будет правильно распознана как правильная форма для компьютера.

Что вам может понадобиться в этой ситуации, так это обучить OpenCV распознавать интересующий вас объект, в данном случае «половину лица». В жаргоне OpenCV это называется - ' HaarTraining ' Используйте this , this и this article в качестве отправной точки для начала обучения.

После того, как вы обучите OpenCV работе с вашими данными (например, множеством различных изображений половины лица), у вас будет готовый XML-файл каскада, который вы можете подключить к собственному коду для обнаружения половины лица.

Удачи!

2 голосов
/ 14 июня 2018

Я имел дело с той же проблемой распознавания лиц для нефронтальных изображений.Попробуйте использовать Multi Task CNN.Это лучшее решение для обнаружения и выравнивания лица.Он способен справляться с такими проблемами, как различные позы, освещение, окклюзия.

Бумага доступна по адресу Ссылка .Код доступен на GitHub на Ссылка .Я использовал реализацию Python и результаты выдающиеся.Хотя код немного медленный, если на изображении много лиц.

Хотя, если вы хотите придерживаться OpenCV, в OpenCV была добавлена ​​новая модель глубокого обучения для обнаружения лиц.Результаты не так хороши, как Multi Task CNN.В pyimagesearch Link

есть реализация модели глубокого обучения OpenCV для распознавания лиц.
...