Назад в библиотеку

РАСПОЗНАВАНИЕ ЛИЦ НА ПРИМЕРЕ БИБЛИОТЕКИ OPENCV

Авторы:А. А. Кадыров
Источник: Нукусский филиал Ташкентского университета информационных технологий, Республика Узбекистан, г. Нукус , 2014 г.

Аннотация

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

Ключевые слова: распознавание образов, OpenCV, компьютерное зрение, машинное обучение.

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

OpenCV (Open Source Computer Vision, компьютерное зрение с открытыми исходными кодами) это популярная библиотека компьютерного зрения, разработанная компанией Intel в 1999 году. Кросс–платформенная библиотека нацелена на обработку изображений в режиме реального времени, и включает в себя свободную реализацию новейших алгоритмов компьютерного зрения. Библиотека OpenCV сейчас доступна для множества языков программирования и платформ, включая C, C++, Python и Android. Версии OpenCV 2.4.1 и выше включают в себя обученные каскадные классификаторы для распознавания лиц, а также для распознавания глаз, носа, и т.д. в библиотеку включено два типа классификаторов:

  1. Каскады Хаара.
  2. LBP–каскады.

Для распознавания лиц используются LBP–каскады, а каскады Хаара используются для распознавания глаз. Некоторые авторы, среди которых Шервин Эмами, утверждают, что использование LBP–каскадов для распознавания лиц в несколько раз быстрее, чем по Хаару.

  1. Eigenfaces.
  2. Fisherfaces.
  3. LBPH.

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

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

Для обучения модели мы использовали алгоритм EigenFaces. В основе алгоритма лежит использование фундаментальных статистических характеристик: средних (мат. ожидание) и ковариационной матрицы; использование метода главных компонент. На вход подается набор изображений–фотографий с указанием класса изображения (каждому человеку назначается свой класс). Для примера мы используем набор из 9 изображений трех людей, по три изображения на каждого человека.

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

Результат работы программы

Рисунок 1 – Результат работы программы

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

Как было сказано выше, возможностью обновления модели обладает только алгоритм LBPH. Это означает, что в нашем примере мы не сможем после обучения модели на одном наборе изображений «дообучить» ее на дополнительном наборе. Поэтому, для динамических, самообучающихся систем, рекомендуется использовать алгоритм LBPH. Приведенный выше алгоритм может быть использован в самых разных прикладных приложениях, от систем контроля доступа до продвинутых интеллектуальных систем.

Список использованной литературы

  1. Shervin Emami. Face Recognition using Eigenfaces or Fisherfaces // in Mastering OpenCV with Practical Computer Vision Projects. Pact Publishing, 2012. ISBN 1849517827.
  2. . Cendrillon R., Lovell B. (2000). Real–time face recognition using eigenfaces. Visual Communications and Image Processing. pp. 269–276