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

Находим в кадре лица, человеческие фигуры, и т.д. и т.п

Recommended Posts

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

Неплохо было бы видеть детектируемые объекты.

В машинном зрении, нет универсального супер-пупер метода который подходит ко всему.

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

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


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

Предполагается, что детектируемыми объектами будут какие - то "простые" предметы  (мяч, пирамида, куб и т.п). Объекты могут находиться под углом, быть чем то прикрыты и т.п. ...

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


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

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

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


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

Для получения данных использовать 3D сенсор, Kinect например, а для анализа библиотеку для работы с облаками точек, например PCL.

 

Здесь немного о 3D распознавании.

http://pointclouds.org/media/ias2014.html

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


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

Довольно неплохой регистратор лицевых точек появился в dlib.

Несложно прикручивается к opencv.

 

Из особенностей:

 

1) Модель, идущая в комплекте, обучена для использования dlib-овского детектора лиц (довольно тормозная штука). Чтобы использовать Opencv-шный детектор, нужно переучить модель, делается несложно, занимает около часа (переучивал на датасете Helen).

2) Трекинга я не нашел, может добавлю как руки дойдут, а пока нужно детектить лицо перед каждым вызовом функции.

 

 

http://blog.dlib.net/2014/08/real-time-face-pose-estimation.html

 

landmarked_face2.png

 

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


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

И еще кое что.

 

Сайт проекта здесь:

 http://face.ci2cv.net/

 

исходники:

https://github.com/ci2cv/face-analysis-sdk

 

видео:

  • Like 1

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


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

На видео работает хорошо, но без какого либо общего бенчмарка о чём можно говорить?

Вообще всё это направление с поиском fiducial points  и ASM/AAM вроде как выглядит адекватным, но надо вручную размечать, непонятно сколько точек выбирать(модели разные), сантиметр влево сантиметр вправо засчитывается за правильное найденную точку?(или какую окрестность брать для бенчмарка?), не все модели работают с перекрытием(если часть лица закрыта).

 

 

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

 

возможно можно использовать это

http://www.faceresearch.org/demos/transform

 

и вообще это неплохой способ для варпа, за исключением артефактов по бокам

http://www.faceresearch.org/demos/

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


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

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

 

Вот тут еще интересный ролик по распознаванию эмоций и человека:

 

 

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

 

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

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


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

Попробовал stasm (точнее их тулзу wasm)

 

вот несколько интересных примеров

%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA1.PN%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA2.PN

%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA3.PN%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA4.PN

 

%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA5.PN%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA6.PN

%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA.PNG

 

 

вообще работает неплохо, но иногда ошибается на фоне(там где лица вообще не видно), но может быть так не очень хорошо сравнивать, т.к. в тулзе жестко заданы параметры(например часто не находит т.к. маленькое лицо, а там требуется сколько то % от размера кадра) и еще натренирована на фронтальные лица.И опять же вопрос о точности границ.

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


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

Да, четвертый stasm, весьма неплох, но по опыту, некоторые CLM-ки (Constrained Local Models) отрабатывают точнее.

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


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

Добрый день. Может кто-нибудь подсказать метод нахождения не отдельного человека, а скопления людей, когда они перекрывают друг друга, показаны зачастую издали, и при этом хотя бы приблизительно оценить их количество? Методы Хаара и HOG из opencv в этом показали себя плохо.

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


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

Doppia можешь попробовать. Для пешеходов работает неплохо. На лицах не пробовал, но, судя по скриншотам на сайте, справляется с твоей постановкой задачи.

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


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

Привет.

Не нашел такой темы, решил не создавать отдельно, а спросить тут. Распознавание лиц, работает с фреймом (картинкой) с камеры. У меня возник вопрос.

Вопрос

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

или

Как понять, что на фрейме...картинка, а не живой объект.?

Мои мысли.

1) Если это лист бумаги с фото, можно детектировать белый фон листа и исключать данный фрейм из обработки. Если конечно, это лист белый ))

2) Детектировать изменение фона, в результате исключения мы получим разные фоновые картинки.

3) Просто детектировать движение лица, при котором фон не подвижен. На картинке, фон и лицо одновременно не подвижны.

Мне интересны просто идеи как исключать из распознавания "объекты на картинках"

Спасибо.

Изменено пользователем LexaP

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


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

Погуглите по фразе "face spoofing detection" найдете существующие на сегодняшний день техники.

  • Like 1

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


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

Самое очевидное - отслуживать мелкую мимику, на фото могут быть только аффинные изменения и все что связанно с освещением. И не так давно были публикации про определение пульса по веб камере, так вот у фото или даже 3д модели головы пульса не будет.

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


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

Большая подборка статей и кода по распознаванию лиц:

http://www.face-rec.org/algorithms/

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


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

Детектор лицевых точек на базе CAFFE: 

https://github.com/luoyetx/deep-landmark

Проверил, на ubuntu 14.04 все работает.

  • Like 1

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


Ссылка на сообщение
Поделиться на других сайтах
4 hours ago, Smorodov said:

Детектор лицевых точек на базе CAFFE: 

https://github.com/luoyetx/deep-landmark

Проверил, на ubuntu 14.04 все работает.

А сколько это дело тренируется?
Вообще судя по видео сверточные сети ищут лэндмарки так себе...

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


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

Я часа три обучал, получилось примерно как у авторов (бэтчи увеличил до 2048 и количество эпох уменьшил в 10 раз).

Что интересно, раз на раз не попадает, и начальное приближение может все запороть.

Автор это, кстати указывает, чтобы смотрели за процессом. 

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

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

 

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


Ссылка на сообщение
Поделиться на других сайтах
15 hours ago, Smorodov said:

Я часа три обучал, получилось примерно как у авторов (бэтчи увеличил до 2048 и количество эпох уменьшил в 10 раз).

Что интересно, раз на раз не попадает, и начальное приближение может все запороть.

Автор это, кстати указывает, чтобы смотрели за процессом. 

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

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

 

А с лэндмарками которые получает, например, dlib не сравнивали? Вроде бы лучшие из публично доступных реализованы в этой библиотеке...

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


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, BeS said:

А с лэндмарками которые получает, например, dlib не сравнивали? Вроде бы лучшие из публично доступных реализованы в этой библиотеке...

DLIB, хорошая либа, но ИМХО лучшая на текущий момент это: https://github.com/TadasBaltrusaitis/CLM-framework 

 

 

, но на статике все они отрабатывают заметно хуже чем на видео.

Небольшая обзорная статейка: http://www.learnopencv.com/facial-landmark-detection/ 

 

Еще потомок Flandmark: http://cmp.felk.cvut.cz/~uricamic/clandmark/ тоже развивается.

Специально не сравнивал, и объективные сравнения найти трудно, т.к. у каждого система "превосходит аналоги".

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


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

CLM сам для поиска лэндмарков использует dlib. Вся суть CLM в работе с видео (трекинге) и ни в чём другом.

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


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

Насколько помню свои раскопки, предыдущая версия вообще не использовала DLIB, а текущая использует только детектор лиц.

Поиск ландмарков проводился согласно pdfке: https://www.cl.cam.ac.uk/~tb346/pub/papers/iccv2013.pdf

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


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

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

https://github.com/mrgloom/Face-landmarks-detection-benchmark

 

 

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

×