1

Я работаю над проектом MATLAB, который позволяет пользователю распознавать лица и размывать их.Распознавание лиц MATLAB - наклонный и вверх по бокам вниз

Встроенные функции используются:

vision.CascadeObjectDetector 

Проблема с этой функцией: он лишь обнаруживает фронтальные лица.

Методы, которые я пробовал: используйте функцию вращать в цикле while, чтобы повернуть изображение, пока степень меньше 360. Поэтому я думал, что это сработает. Я увеличиваю вращение на 23 каждый раз.

Против: он не работает, он изменяет пространственное разрешение изображения.

+1

вы должны привести пример изображения, какое значение вращения вы ожидаете, что лицо будет обнаружено, и повернутое изображение с ухудшенным качеством, которое предотвращает обнаружение. – Shai

+1

показаны примеры изображений. Если все доступные предварительно подготовленные модели терпят неудачу (вы выбираете 'FrontalFaceCART',' FrontalFaceLBP' и 'ProfileFace'), вы всегда можете обучить свой собственный детектор: http://www.mathworks.com/help/vision/ref /traincascadeobjectdetector.html. В противном случае вам нужно выполнить шаг предварительной обработки для выравнивания грани, если это возможно – Amro

+0

Некоторые связанные вопросы: http://stackoverflow.com/q/8798670/97160, http://stackoverflow.com/q/10143555/97160 (напомним, что реализация MATLAB распознавания лиц основано на OpenCV) – Amro

ответ

0

Я провел несколько экспериментов в прошлом, и я узнал, что vision.CascadeObjectDetector с использованием модели фронтальной поверхности по умолчанию может выдерживать около 15 градусов вращения в плоскости. Поэтому я бы посоветовал поворачивать изображение на 15 или даже на 10 градусов за раз, а не на 23.

Проблема с обучением собственного детектора в этом случае заключается в том, что основные функции (Haar, LBP и HOG) не инвариантны к вращению в плоскости. Вам нужно будет обучать несколько детекторов, по одному для каждой ориентации, каждые 15 градусов или около того.

Кроме того, вы обнаруживаете лица в неподвижных изображениях или в видео? Если вы смотрите на видео, вы можете попробовать отслеживать лица. Таким образом, даже если вы пропустите лицо, потому что чья-то голова наклонена, у вас будет возможность обнаружить ее позже. И как только вы обнаруживаете лицо, вы можете отслеживать его, даже если он наклоняется. Взгляните на это example.

+0

Это обнаружение изображения. Просто чтобы обнаружить лица в изображении, а затем размыть их. –

+0

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