Локальные бинарные шаблоны

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Локальные бинарные шаблоны (англ. Local Binary Patterns, LBP) — простой оператор, используемый для классификации текстур в компьютерном зрении. Впервые был описан в 1994 году[1][2]. ЛБШ представляет собой описание окрестности пикселя изображения в двоичной форме. Позже обнаружилось, что ЛБШ в комбинации с гистограммой направленных градиентов значительно улучшает производительность распознавания на некоторых датасетах[3]. Сравнение нескольких улучшений оригинального ЛБШ в сфере отделения фона было сделано в 2015 году[4].

Описание[править | править код]

Примеры определения текстуры и вычисления локального бинарного шаблона (ЛБШ)

Вектор признаков ЛБШ в простейшем виде находится следующим образом:

  • Разделить окно поиска на ячейки (например, 16x16 пикселей на каждую ячейку)
  • Для каждого пикселя в ячейке сравнить с каждым из 8 8 соседей (слева сверху, сверху по центру, слева снизу, справа сверху и т. д.). Обходить пиксели по кругу, то есть по часовой или против часовой.
  • Если значение центрального пикселя больше соседнего, записать «0», иначе записать «1». В результате получается восьмиразрядное двоичное число (которое обычно конвертируется в целое десятичное, для удобства).
  • Вычислить гистограмму в ячейке по частоте появления каждого «числа» (то есть все комбинации пикселей, которые больше и меньше центрального). Эту гистограмму можно представить как 256-размерный вектор признаков.
  • Опционально, нормализовать гистограмму.
  • Конкатенировать (нормализованные) гистограммы всех ячеек. Это даст вектор признаков всего окна.

Полученный вектор признаков теперь может быть обработан с помощью Support vector machine, extreme learning machine или другими алгоритмами машинного обучения для классификации изображений. Подобные классификаторы могут быть использованы для системы распознавания лиц или текстурного анализа.

Полезное дополнение к исходному оператору это так называемый универсальный шаблон[5], который может быть использован для уменьшения длины вектора признаков и реализации простого rotation invariant descriptor. Идея вдохновлена тем, что некоторые бинарные шаблоны встречаются чаще других. Локальный бинарный шаблон называется универсальным, если бинарный шаблон содержит не больше двух 0-1 1-0 переходов. Например, 00010000 (два перехода) это универсальный шаблон, но 0101010 (6 переходов) нет. Вычисленная гистограмма ЛБШ имеет отдельный столбец для каждого универсального шаблона, все остальные не универсальные шаблоны присваиваются одному столбцу. С применением универсальных шаблонов длина вектора признаков для каждой ячейки снижается с 256 до 58. 58 универсальных бинарных шаблонов соответствуют целым числам 0, 1, 2, 3, 4, 6, 7, 8, 12, 14, 15, 16, 24, 28, 30, 31, 32, 48, 56, 60, 62, 63, 64, 96, 112, 120, 124, 126, 127, 128, 129, 131, 135, 143, 159, 191, 192, 193, 195, 199, 207, 223, 224, 225, 227, 231, 239, 240, 241, 243, 247, 248, 249, 251, 252, 253, 254 и 255.

Улучшения[править | править код]

  • Over-Complete Local Binary Patterns (OCLBP)[5]: OCLBP это вариант ЛБШ для общего улучшения точности распознавания лиц. В отличие от классического ЛБШ, OCLBP позволяет наложение соседних блоков. Формально, OCLBP определяется как S : (a, b, v, h, p, r): изображение делится на блоки размером a×b с вертикальным наложением v и горизонтальным наложением h, затем универсальные шаблоны LBP(u2,p, r) извлекаются из всех блоков. Более того, OCLBP составлять из нескольких разных конфигураций. Например, авторы в оригинальной статье использовали три конфигурации S : (10,10,12,12,8,1), *14,14,12,12,8,2), (18,18,12,12,8,3). Три конфигурации определяют три размера блоков: 10×10, 14×14, 18×18, и половинное наложение по горизонтальной и вертикальной осям. Эти конфигурации объединяются в вектор признаков размером 40877 для изображения размером 150x80.
  • Transition Local Binary Patterns(tLBP)[6]: двоичное значение кода перехода ЛБШ составляется из сравнений соседних пикселей по часовой стрелке, исключая центральный.
  • Direction coded Local Binary Patterns(dLBP): dLBP кодирует изменение интенсивности по четырём базовым направлениям через центральный пиксель двумя пикселями.
  • Multi-block LBP: изображение делится на множество блоков, гистограммы ЛБШ вычисляются для каждого блока и объединяются в итоговую гистограмму.
  • Volume Local Binary Pattern (VLBP)[7]: VLBP рассматривает динамическую текстуру как набор объёмов в пространстве (X,Y,T) с X и Y в качестве пространственных координат и T как номер кадра. Таким образом, соседние пиксели определяются в трёхмерном пространстве.
  • RGB-LBP: Этот оператор определяется вычислением ЛБШ по каждому каналу цветового пространства RGB независимо друг от друга, затем результаты объединяются.

Реализации[править | править код]

  • CMV, включает стандартный ЛБШ implementation и множество других вариантов гистограмм ЛБШ в MATLAB.
  • Python mahotas, пакет компьютерного зрения с открытым исходным кодом на Python, включающий реализацию ЛБШ.
  •  Каскадный классификатор OpenCV поддерживает ЛБШ, начиная с версии 2.
  • VLFeat, библиотека компьютерного зрения с открытым исходным кодом на языке С (с поддержкой нескольких языков, включая MATLAB) включает реализацию implementation.
  • LBPLibrary содержит коллекцию одиннадцати алгоритмов ЛБШ, разработанных для задачи отделения фона. Алгоритмы были реализованы на C++ на базе OpenCV. Прилагаемый файл CMake совместим с Windows, Linux и Mac OS X. Библиотека была протестирована на версии OpenCV 2.4.10.
  • BGSLibrary содержит оригинальную реализацию ЛБШ для распознавания движения[8], также как и новый вариант оператора ЛБШ, совмещённый со случайным полями Маркова[9] с улучшенным распознаванием и производительностью.
  • dlib, библиотека с открытым исходным кодом на C++: implementation.
  • scikit-image, библиотека с открытым исходным кодом на Python. Предоставляет C-реализацию ЛБШ.

Примечания[править | править код]

  1. T. Ojala, M. Pietikäinen, and D. Harwood (1996), «A Comparative Study of Texture Measures with Classification Based on Feature Distributions», Pattern Recognition, vol. 29, pp. 51-59.
  2. T. Ojala, M. Pietikäinen, and D. Harwood (1994), «Performance evaluation of texture measures with classification based on Kullback discrimination of distributions», Proceedings of the 12th IAPR International Conference on Pattern Recognition (ICPR 1994), vol. 1, pp. 582—585.
  3. «An HOG-LBP Human Detector with Partial Occlusion Handling», Xiaoyu Wang, Tony X. Han, Shuicheng Yan, ICCV 2009
  4. C. Silva, T. Bouwmans, C. Frelicot, «An eXtended Center-Symmetric Local Binary Pattern for Background Modeling and Subtraction in Videos», VISAPP 2015, Berlin, Germany, March 2015.
  5. 1 2 Barkan et. al «Fast High Dimensional Vector Multiplication Face Recognition.» Proceedings of ICCV 2013
  6. Trefný, Jirí, and Jirí Matas."Extended set of local binary patterns for rapid object detection." Proceedings of the Computer Vision Winter Workshop. Vol. 2010. 2010.
  7. Zhao, Guoying, and Matti Pietikainen. «Dynamic texture recognition using local binary patterns with an application to facial expressions.» IEEE Transactions on Pattern Analysis and Machine Intelligence 29.6 (2007): 915—928.
  8. M. Heikkilä, M. Pietikäinen, «A texture-based method for modeling the background and detecting moving objects», IEEE Transactions on Pattern Analysis and Machine Intelligence, 28(4):657-662, 2006.
  9. C., Kertész: Texture-Based Foreground Detection, International Journal of Signal Processing, Image Processing and Pattern Recognition (IJSIP), Vol. 4, No. 4, 2011.