2015-04-15 2 views
8

Я в настоящее время использую OpenCV3.0 с надеждой, что смогу создать программу, которая делает 3 вещи. Во-первых, находит лица внутри живой видео-ленты. Во-вторых, извлекает местоположения лицевых ориентиров с использованием ASM или AAM. Наконец, использует SVM для классификации выражения лица на лице лица в видео.Лицевая добыча в OpenCV 3.0. Может ли кто-нибудь предложить хорошие библиотеки с открытым исходным кодом, которые позволят мне извлечь персональные ориентиры?

Я провел много исследований, но не могу найти нигде более подходящую библиотеку AAM или ASM с открытым исходным кодом для выполнения этой функции. Также, если возможно, я хотел бы иметь возможность обучать AAM или ASM для извлечения конкретных ориентиров лица, которые мне нужны. Например, все пронумерованные точки на картинке, приведенные ниже: www.imgur.com/XnbCZXf

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

Заранее благодарим за любые ответы, все советы могут помочь мне вместе с этим проектом.

+2

[dlib] (http://sourceforge.net/projects/dclib/files/dlib/) правила. вы также можете передать его cv :: Mat и Rect для обнаружения te. – berak

+0

@berak Интересно, почему такой хороший инструмент не был более популярен, но потом я увидел его в SF. – dashesy

+0

@berak после более копания, похоже, сейчас он находится на GitHub (https://github.com/davisking/dlib), хотя некоторые ссылки на их веб-сайте все еще указывают на SF, что отлично. – dashesy

ответ

2

AAM и ASM - довольно старая школа, и результаты немного разочаровывают.

Большинство отслеживающих ориентиров лица используют каскад патчей или глубокое обучение. У вас есть DLib, который работает довольно хорошо (+ лицензия BSD) с этим demo, а другой - на github или связку API, как это one, который можно использовать бесплатно.

Вы также можете посмотреть мой project с использованием C++/OpenCV/DLib со всеми функциональными возможностями, которые вы цитировали и отлично функционируете.

+0

Большое спасибо за ваш подробный ответ, я чувствую, что знаю, в каком направлении мне нужно идти сейчас. Большое спасибо. – EiiNHERJii1991

+0

Я только что загрузил и протестировал вашу программу, и я очень впечатлен. В настоящее время у меня хорошо работает распознавание лиц с использованием OpenCV. Не могли бы вы указать мне, что мне нужно делать дальше, используя DLib для отслеживания моих ориентиров лица в видео (аналогично сетке, показанной при выборе модели 1 в вашей программе). И самое главное, как я мог бы получить координаты этих ценностей? благодарю вас заранее, я ценю любые советы и помощь. – EiiNHERJii1991

+0

Проверьте документ и демонстрационную версию, но вам нужно преобразовать opencv mat в формат dlib, а затем использовать face rect, image и model в функции dlib, чтобы получить ориентиры лица. –

0

Советую вам использовать библиотеку FaceTracker. Он написан на C++ с использованием OpenCV 2.x. Вы не будете разочарованы этим.

7

В комментариях я вижу, что вы предпочитаете обучать свой собственный наземный детектор лица, используя библиотеку dlib. У вас было несколько вопросов относительно того, какой набор упражнений dlib используется для создания модели «shape_predictor_68_face_landmarks.dat».

Некоторые указатели:

  • Автор (Davis King) заявил, что он использовал аннотированные изображения с iBUG 300 Вт данных. Этот набор данных имеет в общей сложности 11167 изображений, аннотированных 68-точечным соглашением. В качестве стандартного трюка он также отражает каждое изображение, чтобы эффективно удвоить размер установочного набора, то есть 11,167 * 2 = 22334 изображений. Вот ссылка на набор данных: http://ibug.doc.ic.ac.uk/resources/facial-point-annotations/
    • Примечание: iBUG 300-W набор данных включает в себя два набора данных, которые не являются свободно/общедоступными: XM2VTS и FRGCv2. К сожалению, эти изображения составляют большую часть ibug 300-W (7310 изображений, или 65,5%).
    • Оригинальная бумага предназначена только для наборов данных HELEN, AFW и LFPW. Таким образом, вы должны иметь возможность создавать достаточно хорошую модель только на общедоступных изображениях (HELEN, LFPW, AFW, IBUG), т.е. 3857 изображений.
      • Если вы используете Google «один миллисекундный выравнивание лица kazemi», бумага (и страница проекта) будет хитом.

Вы можете прочитать больше о деталях процедуры обучения, прочитав раздел комментариев этого блога dlib поста. В частности, он кратко обсуждает параметры, которые он выбрал для обучения: http://blog.dlib.net/2014/08/real-time-face-pose-estimation.html

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

Надеюсь, что это поможет!

+0

Ссылка на страницу бумажного проекта: http://www.csc.kth.se/~vahidk/face_ert.html – ekim

+0

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

1
  • Попробуйте Stasm4.0.0. Это дает приблизительно 77 очков на лице.