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

Вектор признаков ЛБШ в простейшем виде находится следующим образом:
- Разделить окно поиска на ячейки (например, 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.
Remove ads
Улучшения
- 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 независимо друг от друга, затем результаты объединяются.
Remove ads
Реализации
- 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-реализацию ЛБШ.
Примечания
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads