Сетевое издание
Международный студенческий научный вестник
ISSN 2409-529X

IMAGE SEGMENTATION BASED ON LOCAL BINARY PATTERNS

Boykov D.Y. 1 Belov Y.S. 1
1 Kaluga Branch of Bauman Moscow State Technical University, Russia (National research university of technology)
This article describes Local Binary Patterns (LBP). LBP is nonparametric descriptor which can be used for efficient summarizing the local structures of images. This descriptor has demonstrated its effectiveness in a number of computer vision tasks, such as face recognition, demographic classification, etc. We consider the simplest form of the operator of Local Binary Patterns, using rectangular areas of eight pixels, as well as more advanced LBP operators that use pixel ratios at a greater distance from the center. The deducing of the main LBR operator is given. The calculation of the LBP is described in detail. Also identified the main approaches to improve the performance and effectiveness of this operator. Among them is the rotation of LBR codes, which makes it possible to make LBR codes more invariant to texture orientation and to identify texture much more efficiently by reducing the number of codes. The operator of Local Binary Patterns of opposite colors is described. There is an important LBR problem - its small spatial support area. A definite solution to this problem is proposed - combining information provided by N LBR operators with different parameter values. At the end of the article a conclusion is drawn about the advisability of using this operator in a number of practical tasks.
computer vision
lbp
local binary pattern
lbp rotation
multiscale lbp
images segmentation

Введение. Локальный Бинарный Шаблон (Local Binary Pattern, LBP) является оператором, который описывает окружение пикселя, генерируя бит-код из двоичных производных пикселя. Оператор обычно применяется к изображениям в градациях серого и производным интенсивностей.

В своей простейшей форме оператор ЛБШ берёт окружение пикселя 3 на 3 и генерирует двоичную 1, если сосед центрального пикселя имеет большее значение, чем центральный пиксель. Оператор генерирует двоичный код 0, если сосед меньше центра. Затем восемь соседей центра могут быть представлены 8-битовым числом, например, 8-битным целым числом без знака, что является весьма компактным описанием. На рисунке 1 показан пример оператора ЛБШ.

Рисунок 1. Пример работы ЛБШ оператора.

Часто распределение кода ЛБШ по изображению используется для описания текстуры как гистограммы изображения.

При вычислении кода ЛБШ для изображения, края, которые не имеют достаточной информации, игнорируются, так как они создают ложную информацию.

Однако оператор ЛБШ не обязан описывать только восемь ближайших пикселей. Дальнейшая разработка оператора использует отношения пикселей на большем расстоянии от центра, охватывая большие области, и использует другие пороговые значения. Некоторые модели поддерживают закругления на под-пиксельном уровне, где значения интерполируются.

Вывод основного оператора ЛБШ. Рассмотрим усовершенствованную модель ЛБШ. В то время как обычная модель использует 8 пикселей в блоке 3x3, улучшенная версия не имеет ограничений на количество соседних пикселей и опорных точек.

Рассмотрим монохромное изображение I (x, y) и пусть gc обозначает уровень серого произвольного пикселя (x, y), т.е. gc = I (x, y).

Более того, пусть gp обозначает уровень серого опорной точки из p равномерно распределённых опорных точек в круговой окрестности радиуса R вокруг точки (x, y):

gp = I (xp, yp), p = 0, . . . . P – 1 (1)

xp = x + R cos(2π p/P), (2)

yp = y – R sin(2π p/P). (3)

На рисунке 2 изображены примеры круговых окрестностей.

Рисунок 2. Круговые окрестности (8, 1), (16, 2) и (8, 2). Значения пикселей, опорная точка которых находится не в центре пикселя билинейно интерполированы.

Предполагая, что локальная текстура изображения I (x, y) характеризуется связанным распределением значений серого P + 1 (P > 0) пикселей:

T = t (gc, g0, g1, . . . . , g P-1). (4)

Значение центрального пикселя может быть выражено с помощью соседних:

T = t (gc, g0 – gc, g1 – gc, . . . . , g P-1 – gc). (5)

На следующем шаге связанное распределение аппроксимируется тем, что центральный пиксель статистически не зависит от разностей, что позволяет факторизовать распределение:

T ≈ t (gc) t (g0 – gc, g1 – gc, . . . . , g P-1 – gc). (6)

Теперь первым множителем t (gc) является распределение интенсивности по I (x, y). С точки зрения анализа локальных текстурных шаблонов он не содержит полезной информации. Вместо этого совместное распределение разностей

t (g0 – gc, g1 – gc, . . . . , g P-1 – gc) (7)

может быть использовано для моделирования текстуры. Однако, надежная оценка этого многомерного распределения из данных изображения может быть весьма затруднена. Одно из решений этой проблемы, предложенное в работе [1], заключается в применении векторного квантования. Использовалось квантование обучающего вектора с помощью кодовой книги из 384 кодовых слов для уменьшения размерности много-размерного пространства. Индексы 384 кодовых слов соответствуют 384 ячейкам на гистограмме. Таким образом, этот мощный оператор, основанный на разностях уровня серого, можно рассматривать как текстовый оператор.

Подход, основанный на квантовании обучающего вектора, всё ещё имеет некоторые неблагоприятные свойства, которые затрудняют его использование. Во-первых, разности gp - gc инвариантны к изменениям среднего значения серого для изображения, но не к другим изменениям уровней серого. Во-вторых, для того, чтобы использовать его для классификации текстур, кодовую книгу нужно обучать аналогично другим методам, основанным на тексте. Чтобы смягчить эти проблемы, учитываются только знаки разностей:

t (s(g0 – gc), s(g1 – gc), . . . , s(g P-1 – gc)), (8)

где s (z) - пороговая (ступенчатая) функция

(9)

Общий оператор локального бинарного шаблона получается из этого совместного распределения. Как и в случае базового ЛБШ, он получается путем суммирования пороговых разностей, взвешенных по квадратам. Оператор ЛБШP, R определяется как

(10)

На практике уравнение 10 означает, что знаки разностей в окрестности интерпретируются как P-битное двоичное число, что приводит к 2P различным значениям для кода ЛБШ. Таким образом, локальное распределение по шкале серого цвета, то есть текстура, может быть приблизительно описана дискретным распределением с 2P бинами ЛБШ-кодов:

T ≈ t (LBPP, R (xc, yc)). (11)

При расчёте ЛБШP,R-распределения (вектор-функция) для заданного образца изображения N × M (xc ∈ {0, ..., N-1}, yc ∈ {0, ..., M-1}), центральная часть рассматривается только потому, что на границах нельзя использовать достаточно большую окрестность. Код ЛБШ вычисляется для каждого пикселя в обрезанной части изображения, а распределение кодов используется как вектор признаков, обозначаемый как S:

S = t (LBPP, R (x, y)),

. (12)

Исходный ЛБШ (рис.3) очень похож на ЛБШ8,1 с двумя отличиями. Во-первых, окрестность в общем определении индексируется круговым образом, что упрощает вывод инвариантных к вращению дескрипторов текстур. Во-вторых, диагональные пиксели в окрестности 3 × 3 интерполируются в ЛБШ8,1.

Рисунок 3. Исходный ЛБШ

Вращение. Вращение кода ЛБШ это способ сделать коды ЛБШ более инвариантными к ориентации текстуры и гораздо более эффективно идентифицировать текстуру за счёт уменьшения количества кодов ЛБШ [2].

Вращение кода является довольно простой операцией и легко получается из циклического кода. Значения в градациях серого вращаются вокруг центрального пикселя. На практике это делается с помощью оператора побитового сдвига, который циклически сдвигает код до тех пор, пока он не достигнет своего минимального значения, как в уравнении 13.

(13)

В алгоритме функция ROR представляет собой оператор циклического битового сдвига, а LBPri - код инварианта вращения. Одна из слабых сторон LBPri заключается в том, что, если код первоначально был 8-битным, он поворачивался на 45° при каждом сдвиге, что является довольно грубым квантованием данных. Одним из возможных решений является введение большего количества точек выборки (P) в двоичный код. Однако это не обязательно приведёт к увеличению количества данных для небольших областей, таких как области 3 на 3, поскольку они содержат только девять пикселей, и большее количество информации может быть избыточным [3].

Наиболее явным недостатком LBPri-оператора является то, что он теряет информацию о направлении, которая в некоторых приложениях имеет решающее значение [4]. Тем не менее, LBPri-оператор оказался очень эффективным при анализе однородных текстур [5].

ЛБШ противоположных цветов. ЛБШПЦ является оператором ЛБШ [6]. Оператор был разработан для анализа как цветных моделей, так и моделей в градациях серого. Оператор основан на человеческом зрении, чтобы интерпретировать цвет как противоположные цвета, например, Красно-Зелёный или Сине-Жёлтый, но может применяться к любому типу противоположных цветов.

Коды операторов ЛБШПЦ сначала вычисляются отдельно для каждого канала (красный, зеленый и синий), как и у оператора ЛБШ для моделей в градациях серого. После этого центральный пиксель в каждом цветовом канале используется как пороговое значение в другом (противоположном) цветовом канале для формирования двух новых кодов ЛБШ для каждой пары цветов. Поскольку отношение цветового канала R к цветовому каналу G содержит ту же информацию, что и отношение G к цветному каналу R и т.д., только одно из отношений используется в коде ЛБШ. Полученное представление содержит шесть кодов ЛБШ для каждой точки.

Основным недостатком этого представления является то, что оно формирует очень длинные коды, которые делают коды ЛБШ статистически слабыми. Из-за этой слабости алгоритм широко не используется, но доказал свою эффективность по сравнению с аналогичными методами.

Многомасштабные ЛБШ. Существенным ограничением оригинального оператора ЛБШ является его небольшая пространственная область поддержки. Функции, рассчитанные в локальной окрестности 3 × 3, не могут захватывать крупномасштабные структуры, которые могут быть доминирующими чертами некоторых текстур [7]. Однако соседние коды ЛБШ не полностью независимы друг от друга. На рисунке 4 показаны три соседних четырёх-битовых кода ЛБШ.

Рисунок 4. Три соседних четырёх-битовых кода ЛБШ

Предполагая, что первый бит в самом левом коде равен нулю, третий бит в коде справа от него должен быть равен единице. Аналогично, первый бит в коде в центре и третий бит самого правого должны быть либо разными, либо равными одному. Правая половина рисунка показывает невозможную комбинацию кодов. Таким образом, каждый код ЛБШ ограничивает множество возможных кодов рядом с ним, делая «эффективную площадь» одного кода на самом деле немного больше, чем 3 × 3 пикселя. Тем не менее, оператор не очень устойчив к локальным изменениям текстуры, вызванным, например, изменением точек обзора или направлений освещения. Поэтому часто необходим оператор с поддержкой большей пространственной площади [8].

Простым способом увеличения площади пространственной поддержки является объединение информации, предоставляемой N операторами ЛБШ с различными значениями P и R. Таким образом, каждый пиксель в изображении получает N разных кодов ЛБШ. Наиболее точную информацию можно получить, используя совместное распределение этих кодов. Однако такое распределение было бы сильно разбросанным при любом разумном размере изображения [9].

Несмотря на то, что коды ЛБШ для разных радиусов не являются статистически независимыми в типичном случае, использование анализа для нескольких разрешений часто увеличивает дискриминационную силу результирующих признаков. В большинстве случаев этот простой способ создания многомасштабного оператора ЛБШ привёл к весьма хорошей точности.

Заключение. Таким образом, локальный бинарный шаблон является оператором, описывающим окружение пикселя и использующимся для классификации текстур в машинном зрении.

Наиболее целесообразно применять ЛБШ в задачах, требующих распознать на изображении объект, не имеющий определённой формы, но имеющий некую текстуру, например, огонь, дым, листва и т.д. [10] Также ЛБШ может применяться для решения специфических задач, таких как распознавание лиц, детектирование движения и др.