Статья опубликована в рамках: XXXVI Международной научно-практической конференции «Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ» (Россия, г. Новосибирск, 09 января 2018 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
АНАЛИЗ АЛГОРИТМОВ РАСПОЗНАВАНИЯ ОБЪЕКТОВ HAAR CASCADE И LOCAL BINARY PATTERN
АННОТАЦИЯ
В настоящее время распознавание и идентификация лиц является одной из перспективнейших задач в области систем безопасности и маркетинга, а также позволяет выделить лицо от окружающих объектов для дальнейшего анализа отдельных частей лица. Целью данной статьи является анализ классификаторов Haar cascade и Local Binary Pattern по скорости и количеству распознаний к общему числу распознаваемых лиц. Для этих задач было разработано приложение распознавания лиц на языке Python 2.7 с помощью библиотеки OpenCV, которая предоставляет два метода распознавания – Haar cascades (HAAR) и Local Binary Pattern (LBP). В статье описывается работа алгоритмов HAAR и LBP, были проведены эксперименты по скорости алгоритмов, производительности и объеме потребляемой памяти.
I. Введение
В современную эпоху необходимость в распознавании лиц приобретает огромные масштабы и охватывает все больше отраслей. Распознавание лиц применяется во многих отраслях - в маркетинге, в медицине, но наибольшее распространение получило в отрасли безопасности. В данный момент технология успешно применяется в полиции, международной службе розыска, в поиске пропавших без вести людей и т.п. Функция распознавания и идентификации людей уже используются во многих приложениях, таких, как Picasa, iPhoto, что позволяет быстро найти конкретных людей в коллекции изображений без ручного перебора фотографий.
На данный момент относительно распознавания лиц существует ряд технологий и библиотек для различных языков программирования. Для анализа алгоритмов по скорости и количеству распознаваний была использована библиотека OpenCV.
OpenCV (Open Source Computer Vision Library) – это открытая библиотека с BSD лицензией, которая включает в себя несколько тысяч алгоритмов компьютерного зрения в различных режимах, обработку картинок, видеопотока, алгоритмы GPU оптимизации.
II. Постановка задачи
Для ряда задач точность распознавания лиц и объектов является целевым приоритетом. Особенно это критично в отраслях безопасности, где нужно различать двух похожих между собой людей. Библиотека OpenCV предоставляет два наиболее точных, быстрых, натренированных и эффективных на сегодняшний день классификатора распознавания объектов на основе алгоритмов Haar cascades и Local Binary Pattern.
Для анализа двух алгоритмов была разработана программа распознавания лиц на языке Python версии 2.7 с помощью библиотеки OpenCV, проведен тест скорости распознавания лиц на выборке из 300 фотографий из различных баз данных изображений людей. Использовались следующие базы изображений:
FDDB (Face Detection Dataset and Benchmark) – база изображений лиц Массачусетского университета. Было выбрано 100 изображений, всего лиц 182 и 46 из которых лица размыты, приоткрыты, или немного повернуты. Среднее разрешение изображений – 350х350 [1].
WIDER FACE – база изображений лиц Китайского университета Гонк-Конга. Было выбрано 100 изображений, всего лиц 275 и 83 из которых лица размыты, приоткрыты, или немного повернуты. Среднее разрешение изображений – 1024х768 [2].
PICS (Psychological Image Collection at Stirling) – коллекция изображений, собранная для проведения экспериментов в области психологии сотрудниками университета Стирлинга. Было выбрано 100 изображений, всего на изображениях 100 фронтальных лиц. Разрешение изображений – 900х1200. [3]
III. Теория
Компьютерная программа, которая решает, является ли изображение позитивным (изображение с лицами) или негативным (изображение без лиц) называется классификатором. Классификаторы обучают сотнями тысяч позитивными и негативными изображениями для того, чтобы распознавать новые изображения более корректно. Библиотека OpenCV предоставляет две уже натренированных и готовых к использованию классификатора – HAAR и LBP.
Обнаружение объектов с использованием Haar классификаторов - эффективный метод обнаружения объектов, предложенный Полом Виолой и Майклом Джонсом в своей статье «Быстрое обнаружение объектов с использованием расширенного каскада простых функций» в 2001 году [5].
Haar-признаками называют характеристики цифрового изображения, используемые в распознавании образов. Для распознавания образа нужно из изображения пошагово извлекать Haar примитивы. Каждый примитив представляет собой прямоугольную область с разбивками на наборы разнотипных прямоугольных подобластей, причем каждый прямоугольник используется несколько раз разного размера. Графически они представлены на рисунке 1.
Рисунок 1. Графическое представление Haar примитивов
Алгоритм располагает каждый примитив на каждый участок изображения для вычисления всех возможных признаков. Затем считается значение, полученное путем вычитания суммы пикселей под белым прямоугольником из суммы пикселей под черным прямоугольником, что позволяет выявить определенный признак.
Признаки подчеркивают структурную информацию об объекте - допустим, глаза будут темнее, чем переносица, так же как и область рта будет темнее лба. Чем больше используется примитивов при обработке изображения, тем точнее классифицируется объект. Выделение признаков графически изображено на рисунке 2.
Рисунок 2. Выделение признаков с помощью Haar примитив
LBP классификатор – это визуальный/текстурный дескриптор изображений, который так же, как и Haar классификатор позволяет распознавать позитивные и негативные изображения. Метод LBP очень простой, и в то же время эффективный. Самой важной особенностью LBP дескриптора считают его устойчивость к монотонным изменениям оттенков серого, вызванного изменением освещенности.
Дескриптор изображений Local Binary Pattern был предложен Тимом Оджалой в 1996 году. Дескриптор представляет собой эффективный оператор, который представляет каждый пиксель изображения в виде двоичного числа, зависящего от интенсивности соседних пикселей изображения. В методе Local Binary Pattern описывается для каждого пикселя, в каком направлении убывает яркость. Алгоритм работы дескриптора:
- Нужно выбрать радиус и количество точек.
- Пронумеровать выбранные точки
- Необходимо вычислить разницу в яркости между центральным и соседними пикселями. Если разность убывает, то в этот пиксель записывается значение 1, если положительная или равна центральному пикселю, то 0
- Извлекаем числа в линию и кодируем двоичное число в десятичное. Данный этап изображен на рисунке 3.
Рисунок 3. Графический пример работы классификатора LBP
- Конвертируем каждый такой блок в гистограмму. Гистограмма формируется в один вектор-признак, в изображении которого содержатся все признаки для определения того или иного объекта. Сформированная гистограмма изображена на рисунке 4
Рисунок 4. Гистограмма со сформированным вектор-признаком
IV. Результаты экспериментов
Для сравнения эффективности классификаторов была разработана программа на Python 2.7, которая определяет для каждого дескриптора скорость обработки изображения, количество потребляемой оперативной памяти, производительности и процент точности распознавания лиц на выборке из 100 изображений по каждой базе.
На рисунках 5 – 6 изображены результаты распознавания по базе FDDB алгоритмов HAAR и LBP по количеству потребляемой памяти и времени распознаванию лиц соответственно.
Рисунок 5. Количество потребляемой памяти во время работы классификаторов с базой FDDB
Рисунок 6. Время распознавания лиц во время работы классификаторов с базой FDDB
На рисунках 7 – 8 изображены результаты распознавания по базе PICS алгоритмов HAAR и LBP по количеству потребляемой памяти и времени распознанию лиц соответственно.
Рисунок 7. Количество потребляемой памяти во время работы классификаторов с базой PICS
Рисунок 8. Время распознавания лиц во время работы классификаторов с базой PICS
На рисунках 9 – 10 изображены результаты распознавания по базе WIDER алгоритмов HAAR и LBP по количеству потребляемой памяти и времени распознаванию лиц соответственно.
Рисунок 9. Количество потребляемой памяти во время работы классификаторов с базой WIDER
Рисунок 10. Время распознавания лиц во время работы классификаторов с базой WIDER
Средние и суммарные значения обработки изображений классификаторами Haar cascade и Local Binary Pattern приведены в таблицах 1 и 2 соответственно:
Таблица 1.
Классификатор Haar cascade
Базы изобр. |
Всего лиц на изобр. |
Расп. лиц |
Сумм. время распозн., сек |
Сред. время распозн., сек |
Сумм. потреб. память, Мбайт |
Сред. потреб. память, Мбайт |
Сред. нагрузка CPU, % |
FDDB |
182 |
126 |
14.462 |
0.145 |
4523.39 |
45.23 |
95.49 |
WIDER |
357 |
242 |
104.47 |
1.044 |
4865.67 |
48.65 |
97.05 |
PICA |
100 |
100 |
111.991 |
1.119 |
4961.20 |
49.61 |
96.63 |
Таблица 2.
Классификатор Local Binary Pattern
Базы изобр. |
Всего лиц на изобр. |
Расп. лиц |
Сумм. время распозн., сек |
Сред. время распозн., сек |
Сумм. потреб. память, Мбайт |
Сред. потреб. память, Мбайт |
Сред. нагрузка CPU, % |
FDDB |
182 |
117 |
6.401 |
0.064 |
4552.26 |
45.52 |
85.77 |
WIDER |
357 |
185 |
31.763 |
0.318 |
5633.85 |
56.34 |
90.01 |
PICA |
100 |
100 |
40.755 |
0.407 |
5463.87 |
54.64 |
90.18 |
По результатам теста распознаваемость лиц на изображениях у алгоритма Haar оказалась больше, чем у LBP на 10-18%. Среднее соотношение распознанных лиц на изображениях к общему числу лиц графически изображено на рисунке 11.
Рисунок 11. Среднее соотношение распознанных лиц на изображениях к общему числу лиц
Существенной разницы в потребление памяти в обоих алгоритмах не обнаружилось, однако у LBP классификатора это значение оказалось больше на 3-7 Мбайт. График по среднему потреблению памяти во время процесса распознавания по базам изображений изображен на рисунке 12.
Рисунок 12. Средне-арифметические значения потребления памяти с разными базами картинок
Разница между классификаторами по времени распознавания существенно отличаются. Классификатор LBP имеет преимущество в скорости процесса обработки изображения и быстрее в 2.5 – 3 раза. График среднего времени распознавания по базам изображений изображен на рисунке 13.
Рисунок 13. Среднее время распознавания классификаторами изображений с разными базами изображений
На рисунках 14 – 17 изображены примеры работы программы и результатов распознавания. Оси указывают на разрешение изображения в высоту и ширину, заголовок показывает время распознавания каждого классификатора в секундах.
Рисунок 15. Пример работы программы
На рисунке 16 изображен случай нераспознанного лица в LBP алгоритме, но распознанного в Haar.
Рисунок 16. Пример работы программы
Как видно на рисунке 17, оба алгоритма успешно справляются с распознаванием фронтальных лиц, в то же время длительность процесса распознавания существенно различаются.
Рисунок 17. Пример работы программы
V. Обсуждение результатов
Обработка изображений дескрипторами производилась последовательно, на персональном компьютере с 4 ГБ оперативной памяти и процессором Intel Core i3-3217U мощностью 1.8 ГГц.
По полученным результатам можно сделать следующие выводы:
- HAAR алгоритм точнее определяет лица чем LBP, в среднем на 10-15 %;
- LBP классификатор распознает в 2.5 раза быстрее классификатора HAAR;
- LBP при обработке изображений потребляет больше оперативной памяти на 2-5%;
- HAAR дескриптор нагружает процессор на 5-8% больше;
- скорость обработки изображения обоих алгоритмов зависит от количества пикселей на картинке – чем больше разрешение, тем дольше происходит обработка.
Одной из причин в большой разнице скорости обработки изображения между рассматриваемыми классификаторами является то, что скорость обработки в классификаторе LBP достигается за счет целочисленных вычислений, в то время как HAAR классификатор оперирует вещественными числами.
VI. Выводы и заключение
По результатам теста, метод Local Binary Pattern оказался быстрее Haar cascades в 2,5 раза. LBP подходит для менее производительных систем. Скорость алгоритма LBP достигается за счет оперирования целыми числами, и именно по причине производительности LBP более распространен в системах распознавания объектов. Классификатор Haar cascades уступает в скорости, но выигрывает в качестве – метод Haar распознает в среднем на 10-15% больше объектов на изображении и подходит для более производительных систем и в тех случаях, где распознавание происходит среди большого количества людей. В объеме потребляемой памяти и нагрузке процессора разница не существенная, и приращение дополнительных мощностей к системе ускорит скорость обработки обоих классификаторов одинаково пропорционально.
Выбор метода распознавания в большей степени зависит от доступных вычислительных мощностей и целей применения технологии распознавания лиц в проекте.
Список литературы:
- Face Detection Dataset and Benchmark dataset [электронный ресурс] – Режим доступа. – URL: http://vis-www.cs.umass.edu/fddb/ (дата обращения 25.11.2017)
- Wider Project dataset [электронный ресурс] – Режим доступа. – URL: http://mmlab.ie.cuhk.edu.hk/projects/ (дата обращения 25.11.2017)
- Psychological Image Collection at Stirling dataset [электронный ресурс] – Режим доступа. – URL: http://pics.psych.stir.ac.uk/ (дата обращения 25.11.2017)
- Библиотека алгоритмов компьютерного зрения OpenCV [электронный ресурс] – Режим доступа. – URL: https://opencv.org/ (дата обращения 27.11.2017)
- Viola P., Jones M., Rapid object detection using a boosted cascade of simple features // Computer Vision and Pattern Recognition. 2001.Vol. 1, P. 511-518
- Dalal, N., Triggs, B. Histograms of Oriented Gradients for Human Detection // CVPR '05 Proceedings of the 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. 2011. Vol. 1. P. 886-893.
- López, L. S., Ruiz, F. T. Local Binary Patterns applied to Face Detection and Recognition. Barcelona: Universitat Politècnica de Catalunya, 2010. 146 p.
- Л. Шапиро, Дж. Стокман. Компьютерное зрение / пер. с англ. М.: Бином. Лаборатория знаний, 2006. 752 с.
- Лутц М. Программирование на Python, 4-е издание. / М.: Символ-Плюс, 2011. 992 с.
- Degtyarev N., Seredin O., Comparative Testing of Face Detection Algorithms // ICISP 2010. 2010. Vol. 6134. P. 200-209.
- Ahonen T., Hadid A., Pietikainen M., Face Description with Local Binary Patterns: Application to Face Recognition // Transactions on Pattern Analysis and Machine Intelligence. 2006. Vol. 28. P. 2037 – 2041.
- Fawcett T., An introduction to ROC analysis, Pattern Recognition Letters // Elsevier Science. 2006. Volume 27. P. 861 – 874.
- Hjelmas, E., Low, B.K., Face Detection: A Survey // Computer Vision and Image Understanding. 2001. Vol. 83. P. 236-274.
- Gutta, S., Wechsler, H., Phillips, P.J., Gender and ethnic classification of face images // IEEE Computer Society. 1998. Vol. 1. P. 194-199.
- Yang Z., Ai H., Demographic Classification with Local Binary Pattern. Beijing // Advances in Biometrics. 2007. Vol. 4642. P.464-473..
- Lienhart R., Maydt J., An extended set of Haar-like features for rapid object detection // International Conference on Image Processing. 2002. Vol. 1. P. 22-25
Оставить комментарий