2016-06-17 2 views
1

Я хотел использовать библиотеку dlib для определения ориентиров лица в реальном времени. Алгоритм основан на документе: одномиллисекундное выравнивание лица с ансамблем регрессионных деревьев Вахидом Каземи и Жозефиной СалливанDlib. Как решить ограничения оптимизации в реальном времени? Идея конвергенции ориентиров?

Я использую существующую библиотеку: dlib, и это довольно медленно. Я читал, как сделать это быстро на http://dlib.net/faq.html, но это невозможно на моем компьютере, потому что у меня нет возможности оптимизировать до SSE4 или AVX. Наконец, я использую SSE2. У меня есть следующие вопросы:

-Можно использовать в библиотеке мобильных/веб-приложений dlib, чтобы она работала в режиме реального времени? Я не знаком с настройками оптимизации и т. Д., Поэтому интересно, сколько ограничений существует.

-Это можно использовать на моем компьютере без оптимизации SSE4, чтобы он работал в режиме реального времени?

-Этот файл shape_predictor_68_face_landmarks.dat вес 95 Мб. Мне нужно только распознать лицо + ориентир, содержит ли этот файл избыточную информацию в соответствии с моими потребностями?

-Один алгоритмный вопрос: конвергенция точек (ориентиров) зависит от ограничивающей рамки распознавания лиц, может ли smb объяснить, как это делается? Мы подходим к точкам среднего лица внутри ограничительной рамки, а затем мы ищем каждую ориентировочную оптимальную позицию по соседству? Насколько этот район?

Благодаря любой помощи

ответ

1
-It is possible to use in mobile/web application library dlib in order that it works in real time ? I am not familar with optimization settings and so on, that is why it is interesting how much restrictions there are. 

-It is possible to use in my computer without optimisation SSE4 in order that it works in real time ? 

обнаружение лица вехи в два этапе: обнаружение лица и обнаружение лица вехи на этом лице. И наиболее процессорная часть - первый шаг - определить лицо (работает simple_object_detector), и только эта часть имеет какую-либо прибыль от использования. AVX/SSE

Почему это медленное распознавание лица осушено для размера лица от 80x80 пикселей и больше, и если вы поместите изображение с высоким разрешением в детектор, он потратит много времени на скользящее окно в разных масштабах. В большинстве ситуаций должно быть 1-3 лица на одном кадре, а разрешение современных мобильных камер довольно велико.

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

Следующим возможным шагом является то, чтобы детектор лица не работал в разных масштабах, но может быть на 1-2 итерациях. Взгляните на этот вопрос - он имеет эту проблему, описанную (dlib's scan_fhog_pyramid : set max_pyramid_levels)

-This file shape_predictor_68_face_landmarks.dat weights 95 Mb. I need just face+landmark detection, does this file contain redundant information according to my needs? 

Этот файл содержит только модель данных для 68 ориентиров лица обученных на iBug данных. У него нет модели обнаружения лица внутри. Модель обнаружения лица поставляется в файле dlib/image_processing/frontal_face_detector.h

Да, этот файл довольно большой, но это цена его качества. Вы можете тренировать какую-либо модель нового лица знакового обнаружения (описанную в http://dlib.net/train_shape_predictor_ex.cpp.html примере) WITL менее знаковые точки или с меньшим качеством - это может сделать вас гораздо меньшего размером файл

-One algorithm question... 

Чтобы ответить на него - пожалуйста, рассмотрите чтение оригинала (http://www.cv-foundation.org/openaccess/content_cvpr_2014/papers/Kazemi_One_Millisecond_Face_2014_CVPR_paper.pdf) и dlib/image_processing/shape_predictor.h исходный код

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

+0

Спасибо. Только один вопрос. Если я использую другой алгоритм детектора лица, сколько времени, по вашему мнению, займет только конвергенция точек с учетом ограничивающего прямоугольника (он может быть в режиме реального времени без настроек оптимизации)? Я задал вопрос об алгоритме, потому что, если я использую другой детектор лица, это может привести к несовершенству в ограничивающей рамке, чем если точки выглядят в окрестности точек средней формы, это не могло бы хорошо сходиться. (На самом деле я тоже русский =)) – Viktoriia

+0

да, он будет работать в режиме реального времени, я думаю, 1-2 мсек на лице. и да, вы потеряете некоторую конвергенцию, потому что размер и положение ограничивающего прямоугольника лица влияет на точность прогнозирования формы. но вы можете обучить один новый shape_predictor, используя ваш детектор в качестве источника для ограничивающих прямоугольников. это занимает менее одного дня обучения, и вам потребуется 32 ГБ оперативной памяти. Я даже попытался использовать простую коробку с фиксированным размером 16x16 с различным размером и положением лица и хорошо тренировался – Evgeniy