LINUX.ORG.RU

Я полагаю, на питоне распознать можно максимум вот такое, да и то при отсутствии морщинок.

bk_ ★★ ()

Я нашёл Opencv, но это монстр

Попробуйте сами не-монстра сделать ;) В распознавании лиц столько математики, что выпускнику-краснодипломнику какого-нибудь мехмата и не снилось :)

Eddy_Em ☆☆☆☆☆ ()

А вообще, говорят, в пикасе хороший алгоритм. Но она, к сожалению, закрытая, и вряд ли гугл поделится...

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Eddy_Em

Спец алгоритмы для лиц точно есть. У меня фот в реальном времени находит лица. А проц там хоть и спецовый, но всё равно слабый.
Распознавание же на opencv у меня клинит даже на core2.

anonymous ()
Ответ на: комментарий от anonymous

>У меня фот в реальном времени находит лица.

он с тем же успехом находит нарисованные лица на шаржах, а так же подозреваю не найдёт лица негра или чувака со смуглой кожей. А так да, можешь и сам написать, как на фотике.

dimon555 ★★★★★ ()
Ответ на: комментарий от anonymous

У меня фот в реальном времени находит лица.

Это элементарная математика, а вот опознать лицо при любой ориентации, да еще и с разной цветностью, да прописать в EXIF фотографий, кто на них изображен - очень сложная задача.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от AUX

Для обнаружения лиц достаточно знать десяток функций из OpenCV, так что я не вижу проблем в её монструозности.

http://blog.jozilla.net/2008/06/27/fun-with-python-opencv-and-face-detection/

Есть и ещё проще вариант - готовая python-обёртка к gstreamer+opencv, она только запускает конвейер и получает сообщения вида «а вот здесь (x,y) лицо!»

http://github.com/Elleo/gst-opencv/blob/master/examples/python/facedetect.py

chatbot ()

Я занимался вопросом распознавания лиц когда учился в универе.
Вообщем пришел к выводу, что для каждого _конкретного_ случая нужен специализированный алгоритм.
Нет в этом вопросе серебряной пули.

Простой пример. Я реализовал на Matlab модифицированный градиентный метод распознавания лиц. Суть метода вкраце можно описать так:
1) Масштабируем фото с определенным коэффициентом для получения более круглой формы лица.
2) Переводим его в другое пространство цвета (забыл точно какое нужно для этого метода).
3) Наибольший «градиент» по идее будет на границе лица.
4) Далее перебираем точки градиента (можно не все) и строим окружности с центром с данной точке. Радиусы окружностей меняем с заданным шагом.
5) Согласно методу, точка где пересекается наибольшее число окружностей - это и есть центр лица (это просто максимум в hit matrix).
6) Радиус найти не составляет труда.

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

Другие алгоритмы без проблем обрабатывали эту фотку, но валились на других, неудобных для них, примерах.
Я не уверен, но думаю что в коммерческих продуктах используется не один алгоритм, а несколько. Наиболее оптимальный из них выдирается исходя из характеристик изображения.
Все сказанное выше IMHO, так как я не профессионал в распознавании лиц.

Krivenok_Dmitry ()

Если нужно именно распознование, то всё сложно. Если речь идет о детекции лица - то это несложно и информации об этом достаточно.

smh ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.