LINUX.ORG.RU

Обнаружение лиц на фотографии по методу Виолы-Джонса (Viola-Jones)

 , , , , , ,


0

3

На основе исходного кода трех Open Source-проектов, восстановлен алгоритм распознавания лиц (метод Виолы-Джонса, Viola-Jones). Алгоритм использует стандартный каскад Хаара из OpenCV, и реализован на языке Си++. Скорость работы программной реализации, на изображениях 512x512 пикс – порядка 3 кадров/сек. Предназначен для обнаружения лиц «в фас» на любых фотографиях.

Реализация метода Виолы-Джонса в оригинальных работах авторов не описана, поэтому моя работа представляет значительную ценность для тех, кому надо разобраться в методе Виолы-Джонса, либо – реализовать обнаружение лиц в своем проекте/программе.

Сайт проекта: http://sqface.ru/
Исходный код (под AGPLv3+): http://sqface.ru/download/sqface-first.tgz

>>> Подробности

★★★★★

Проверено: timur_dav ()

AGPLv3+

немного подробнее про эту лицензию плиз

I-Love-Microsoft ★★★★★ ()

3 кадра в секунду на каком железе?

imul ★★★★★ ()

На каком компьютере получается 3 кадра в секунду? Хотя бы сколько ядер процессора.

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

На каком компьютере получается 3 кадра в секунду? Хотя бы сколько ядер процессора.

AMD Athlon II 240 (2800 MHz). Используется одно ядро, но программу несложно распараллелить на любое число ядер (до 20-22 ядер/нитей).

OpenCV быстрее моей реализации в 6-7 раз. Почему - не знаю. Код OpenCV слишком сложен.

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

Спасибо за программу, надеюсь что кому-нибудь пригодится и документация.

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

Код OpenCV слишком сложен

Типичная плата за высокую производительность

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

Такие лица: http://ompldr.org/vYm0zNg

Да, именно такое качество у OpenCV.
На видеопотоке качество можно заметно улучшить, если использовать мой
код. За счет множественности обнаружения «настоящих» лиц (см. видео
моей реализации).

pacify ★★★★★ ()

Поздравляю!
Желаю дальнейших успехов!

trex6 ★★★★★ ()

Реализация метода Виолы-Джонса в оригинальных работах авторов не описана, поэтому моя работа представляет значительную ценность для тех, кому надо разобраться в методе Виолы-Джонса, либо – реализовать обнаружение лиц в своем проекте/программе.

вот за это спасибо, примеры алгоритмов нужны и важны.

mikhalich ★★ ()

Текста на английском, конечно, нет? :)

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

Текста на английском, конечно, нет? :)

Если кто-то возьмется перевести - я не против.

У меня с английским беда, так как в школе учил немецкий (англ. на слух не воспринимаю, с грамматикой - проблемы).

pacify ★★★★★ ()

Молодец. А насколько тяжело будет построить систему распознавания на базе твоего проекта?

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

Молодец. А насколько тяжело будет построить систему распознавания на базе твоего проекта?

Если просто написать плагин для GIMP'а - дело 1-2 дней.

Если повысить качество распознавания на видео - надо недельку-полторы работы.

Плюс, для большего повышения качества надо переобучить каскад Хаара (это работа на неск. месяцев: подготовка обучающей выборки, вычисления).

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

Да он ещё и сиськи распознаёт!

Все вопросы - к корпорации Intel. :)
(я использую готовый каскад от Intel из OpenCV)

pacify ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

немного подробнее про эту лицензию плиз (AGPLv3+)

Полный аналог GPLv3, только применим и для embedded.

pacify ★★★★★ ()

AGPLv3+

Замечательно! Побольше бы таких сознательных разработчиков.

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

Если просто написать плагин для GIMP'а - дело 1-2 дней.

А зачем он в гимпе-то? Такая фигня нужна в каталогизаторах фотографий, чтобы можно было автоматически сканировать и группировать снимки по людям.

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

Нормальное качество, просто программа мужик... «Глаза» же!

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

вот я прочитал викину педию - нипониль... в чем применимость для embedded? отличия от GPLv3?

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от AP

А зачем он в гимпе-то?

Чисто спортивный интерес.

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

Ну, вот и можете применить у себя в darktable. :)

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

> Ну, вот и можете применить у себя в darktable. :)

Нет, только не это! Там и так каталогизация глючная и тормозная.

Лучше разрабам шотвела идею подкинь, им это точно подойдет.

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

Да он ещё и сиськи распознаёт!

Все вопросы - к корпорации Intel. :)

Страшно представить, что он распознает работая на интеловском процессоре!

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

Лучше разрабам шотвела идею подкинь, им это точно подойдет.

Кто будет письмо султану писать?
У меня с английским проблемы.

Это они? http://yorba.org/shotwell/

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

1984 is coming...

Ну ... в супермаркетах лет через 10, думаю, системы идентификации людей, будут.
После какого-нибудь «терракта». С точностью обнаружения процентов
50-60% с видеокамер ~1920x1080 pix, IMHO.
То есть, как слежка - покатят. Полный контроль, думаю, будет все-равно невозможен.
Трекинг объектов по супермаркету/улицам, да - можно процентов на 90%
сделать уже сейчас (при не-интенсивном движении, когда нету толпы).

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

Нет, только не это! Там и так каталогизация глючная и тормозная.

Про глючность подробнее, пжста.

AP ★★★★★ ()

видишь, я угадал название -)

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

Про глючность подробнее, пжста.

У меня darktable не глючит. И не грохался, вроде.

Собирается из тарболла без проблем.

Единственное, что я бы изменил в нем - это иконки справа внизу
покрупнее ... А то у меня нет краткомременной памяти на 20-30 объектов.

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

> Про глючность подробнее, пжста.

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

Если это реально кому-нибудь интересно, то я могу попытаться воспроизвести баг и сделать бектрейсы. Но, я так понимаю, в дарктейбле каталогизация особо никого не парит, там весь фокус девелоперов на обработке. Главное, что есть навигация по филь роллу, а остальное - ерунда.

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

Единственное, что я бы изменил в нем - это иконки справа внизу покрупнее ... А то у меня нет краткомременной памяти на 20-30 объектов.

Приветствуем в нашем клубе. Возьми с полки номерок.

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

> У меня darktable не глючит. И не грохался, вроде.

У меня на обработке тоже не глючит, но на импорте с камеры падал. Собирается без проблем, сижу на последней ревизии из гит мастера.

provaton ★★★★★ ()

Как оно справляется с распознаванием определённых лиц, а не лиц вообще? Или в планах?

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

Как оно справляется с распознаванием определённых лиц, а не лиц вообще? Или в планах?

Метод Виолы-Джонса не предназначен для различения лиц (идентификации/поиска по базе).

Он может использоваться только для face detection (обнаружения объекта типа «какое-то лицо»).

Для идентификации (различения) лиц надо использовать другие алгоритмы.
Самый простой из них - метод на основе скрытых марковских моделей.
Более сложные - основанные на 3D-моделях головы.

pacify ★★★★★ ()

За AGPLv3+ больше человеческое спасибо.

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

А зачем он в гимпе-то? Такая фигня нужна в каталогизаторах фотографий, чтобы можно было автоматически сканировать и группировать снимки по людям.

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

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

... только идентифицирует что на фотке есть морда.

Нет, ты не прав. Эта штука выделяет прямоугольники с лицами.
Может использоваться, например, для автоматизации удаления «красных глаз» на фото.
См. диссертацию: Кудряшов П.П. «Алгоритмы обнаружения лица человека для решения прикладных задач анализа и обработки изображений» (Волгоград, 2007 год), http://www.dissercat.com/content/algoritmy-obnaruzheniya-litsa-cheloveka-dlya...

pacify ★★★★★ ()

вот это круто :)
спасибо

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

I don't really know how ordinate can be deprecated and what it has to do with late but in case you meant to say predicate, no, it is not deprecated... And it's not predicate either

Иногда лучше жевать...

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

мой древний боян http://img17.imageshack.us/img17/2507/ocvmaskface.jpg
хотел некогда скрестить его с псевдо v4l девайсом.

Беда OpenCV в том, что у неё - куча ложных срабатываний.

Более продвинутые методы могут достигать на порядок большей точности.

Но стоят они - миллионы рублей/долларов.

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

Эммм... Как бы это сказать... «У меня это когда-то грохалось» != «Там и так каталогизация глючная». Ну просто совсем != :)

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