Перейти к содержимому
Compvision.ru
Frimen

Распознавание лиц

Recommended Posts

Есть ли способ распознать лицо (recognition) не используя каскады?

Если да, быстрее ли он.

Спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я бы не сказал, что каскады Хаара работают медленно. Имеется в виду стандартный пример из OpenCV? Его можно ускорить в несколько раз. Не находить соседей, например. А ложные сработки отсеивать временным фильтром.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Я бы не сказал, что каскады Хаара работают медленно. Имеется в виду стандартный пример из OpenCV? Его можно ускорить в несколько раз. Не находить соседей, например. А ложные сработки отсеивать временным фильтром.

Платформа мобильная - каждая секунда дорога.

Время исполнения cvHaarDetectObjects приблизительно : 0.3 - 0.4с.

CvSeq* faces = cvHaarDetectObjects(small_img, cascade_, storage_, 1.6, 2, 

CV_HAAR_DO_CANNY_PRUNING,

cvSize( small_img->width/4, small_img->height/4 ));

Рассматриваю любые варианты для повышения производительности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Попробуйте установить флаги так:

CV_HAAR_DO_CANNY_PRUNING | CV_HAAR_FIND_BIGGEST_OBJECT

будет искать только один, самый большой объект, производительность возрастает заметно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Попробуйте установить флаги так:

CV_HAAR_DO_CANNY_PRUNING | CV_HAAR_FIND_BIGGEST_OBJECT

будет искать только один, самый большой объект, производительность возрастает заметно.

Производительность взросла раза в 2а. Время 0.17 - 0.2с.

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А я как-то раз из любопытства залазил внутрь функции cvHaarDetectObjects. Выкинул всё лишнее, временные объекты внутри создавал только один раз (у меня видео анализировалось, не было необходимости на каждом кадре всё заново создавать), искал только одно лицо на кадре и т.д. и т.п. Короче переписал функцию под свои частные нужды. Получилось раз в 10 быстрее. Исходники, правда, выложить не могу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
А я как-то раз из любопытства залазил внутрь функции cvHaarDetectObjects. Выкинул всё лишнее, временные объекты внутри создавал только один раз (у меня видео анализировалось, не было необходимости на каждом кадре всё заново создавать), искал только одно лицо на кадре и т.д. и т.п. Короче переписал функцию под свои частные нужды. Получилось раз в 10 быстрее. Исходники, правда, выложить не могу.

Спасибо за идею! Покопаюсь...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый вечер, совсем недавно заинтересовался CV поэтому опыта и знаний маловато в этой области

ситуация следующая есть web-камера на ноуте:

1. как получить информацию о кадре - тоесть непосредственно его содержимое?

2. как с помощью FaceDetect удерживать лицо - тоесть мы можем получать кадры за кадром - но как определить что на этом кадре, тот же человек, что и на прошлом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Что значит "содержимое"? Люди, дорога, здания, деревья?

2. Тут на форуме пробовали найти одно лицо, а дальше его сопровождать: здесь

Если пример немного переделать: при нахождении нового лица проверять, сколько сопровождаемых точек попадает в найденную область; если большинство, то найдено тоже лицо, если же совсем мало, то найденное лицо новое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

если еще надо то вот очень хорошое поэтопное создание приложения по распознанию лица, в подзадачу которого входит нахождение лицав кадре

кляк

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый день.

Какие есть еще варианты распознания лиц на фото? Если не сложно, опишите общую процедуру с примерами функций opencv :)

Я немного ознакомился с Sobel mask, но не понял как вытянуть границы(скажем лица) после обработки.

Haar не устраивает по одной причине, если например человек немного повернул лицо, то алгоритм не работает =(

Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Но даже лучшую, что я видел - немецкую Когнитек,...

Вот мне тоже все советуют cognitec. Подскажите, у них есть бесплатные SDK?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Распознавание лиц как для аутентификации или просто поиск лиц на фотографии (выделить прямоугольниками все имеющиеся лица)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вроде как с ними надо списываться, по результатам они могут выдать бесплатную версию на пол года, привязанную к одному компьютеру (и к Винде, и к железу одновременно).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обычный поиск лиц на фотографии, с прямоугольником.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для того, чтобы Хаар обнаруживал не только фронтальные лица, его надо этому обучить. А это очень непростое и долгое дело. Я бы не взялся.

Очень распространённый способ - поиск участков кожи по цвету или текстуре. У найденных областей анализируют форму и считают за лица, если соблюдаются определённые пропорции. Способ ненадёжный, но быстрый. Хотя.. Если все люди будут одной расы, то можно попробовать. Скорее всего потребуется отдельно придумывать эвристики для усатых, бородачей и очкариков.

P.S. Пример не напишу - работы явно не на полчаса, а больше свободного времени у меня сейчас нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, обучение Haar'а судя по отзывам еще какая рулетка, не угадаешь будет ли работать. Некоторые товарищи тренировали темплейт по 6-7 дней и всё равно результат был с ошибками.

Немного пошарив по рунету нашел интерсное решение - http://blog.vidikon.com/?p=470

У меня есть видео файл. Идея - прикрутить к Haar'у мониторинг: сначала находим лица, ставим точки на лица и ищем их передвижение.

Кто пробовал подобное, есть какие впечатления (или еще примеры)? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Привет. Я в данной области полный ноль.

Народ, существуют проги для портретной идентификации...

Эт как в кино про ЦРУ... Загружаешь туда фотку, и она ищет биометрические совпадения по базе данных...

вот пример

Где такую или подобную можно достать?

В дополнение...

ТУТ Лежат исходники чегото подобного... но я немогу разобраться.

За помощь буду очень благодарен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте!

Есть задача трэкинга лица в видеопотоке и сопровождения лица, специальным маркером, нарисованным сверху лица (маркер представляет собой прямоугольник небольшой высоты). Сделано:

1) Распознавание каскадами Хоара, при нажатии на кнопку.

2) Уменьшение прямоугольника, полученного с помощью каскадов на определённый процент (scaleFactor). (Для уменьшения области, на которой будут расположены точки при помощи cvGoodFeaturesToTrack(). Это сделано для увеличения точности трэкинга.)

3) Точки отслеживаются при помощи алгоритма пирамидального Lucas-Kanade.

4) Точки обводятся прямоугольнком, помжноженным на scaleFactor (см пункт 2).

Пожалуйста, помогите разобраться со следующими пунктами:

1) Отсеивание точек трэкинга, "отвалившихся" от исходного лица. Как отсеивать такие точки? На данный момент я отсеиваю точки, находя центр скопления основных "правильных" точек трэкинга и вычисляю среднее Евклидово расстояние от центра скопления точек. Далее, перебираются все точки и те точки, у которых Евклидово расстояние от центра больше среднего отсеиваются. Думаю, надо использовать расстояние Махаланобиса. Но так и не понял как его использовать. В функции есть три параметра: два одномерных вектора и ковариационная матрица. Насколько я понял, ковариационная матрица как раз-таки задаёт "скопление" точек. Как использовать расстояние Махаланобиса для отсеива "отклеившихся" точек?

2) На данный момент необходимо вручную указывать системе, когда начинать цикличные попытки найти лицо при помощи каскадов. Как сделать автоматический "захват" лица при помощи каскадов? Всё дело в том, что каскады используют много ресурсов чтобы найти лицо в видеопотоке. Как можно избежать этого? Я думаю, надо смотреть разницу между кадрами и пытаться определять лица в разнице между кадрами. При несильном изменении каскады не будут использоваться вообще. Может быть надо использовать дополнительно цветовую идентификацию по цвету кожи к разнице?

3) Прямоугольник, обводящий отслеживаемые точки. Как правильно обводить точки прямоугольником таким образом, чтобы прямоугольник точно покрывал лицо и не выходил за его пределы?

4) Как избежать "дрожания" обводящего прямоугольника? Понимаю, что необходимо использовать какой-то фильтр.

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

Спасибо за внимание!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

хотел бы спросить у знающих, какой лучше алгоритм и какие лучше скрестить методы что бы можно было сравнивать лица между собой и с наиболее точной вероятностью сказат что они одинаковы, и так же был учет того что лицо может быть немного повернуто или наклонено или приподнято, так же не подходить непосредственное сравнение изображений, потому что их будет много что уменьшит скорость, хотелось бы узнать можно ли получить какие то уникальные данные о лице что бы хранить их к примеру в базе и с которыми сравнивать в последующем?

заранее благодарен за любой отзыв

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот мне тоже интересно... как некоторые программы, узнают кто это: мужчина или женщина, приблизительно возраст, настроение))) и даже запоминают его под айдишкой, и все это реал тайм))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

что за программы?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×