Здравствуйте, уважаемые читатели!
В данной статье хотелось бы рассказать о сравнительно новом операторе, применяемом в задаче классификации текстур. Данная задача очень близка к задаче поиска, распознавания и классификации образов.
Оператор LBP может быть использован для поиска объекта на изображении (например лица), а также проверки этого объекта на принадлежность некоторому классу (верификация, распознавание эмоций, пола по лицу). Заинтересовавшихся милости прошу под кат.
Оператор LBP впервые был предложен T.Ojala в 1996 году. Он представляет собой эффективный оператор, который представляет каждый пиксель изображения в виде бинарного числа, зависящего от интенсивностей соседних пикселей изображения.
Этот оператор является эффективным в вычислительном плане, так как работает только с целочисленной арифметикой (это позволяет достигать real-time производительности в некоторых задачах), а также он инвариантен к изменениям яркости на изображении, вызванным съемкой в различных условиях освещения.
Что же представляет из себя LBP? Классический LBP, который применяется к пикселю изображения, использует восемь пикселей окрестности.
Он принимает центральный пиксель в качестве порога и сравнивает значение яркости в каждом пикселе окрестности с ним. Если это значение больше порога(или равное значение), то пиксель принимает значение 1. Если же меньше — 0. Полученное восьмибитное число характеризует окрестность пикселя. Всего вариантов таких чисел 2^8=256. Таким образом мы присвоили каждому пикселю изображения одну из 256 меток, характеризующих его. Далее из этих данных не составляет труда построить гистограмму и сравнивать текстуры по гистограммам LBP.
Однако хотелось бы использовать окрестности произвольного радиуса с произвольным числом значащих пикселей. В 2002 году был предложен метод eLBP (extended LBP), который удовлетворяет этим условиям. Теперь окрестность выглядит следующим образом:
Для нахождения значения яркости в точках произвольной окрестности пикселя используется билинейная интерполяция. То есть точке присваивается среднее взвешенное значение соседних пикселей. В остальном метод работает таким же образом, как классический LBP.
Однако видно, что с увеличением окрестности, увеличивается количество разрядов в числах, с которыми требуется вести работу. То есть для окрестности радиуса 2 из 16 точек требуется работать уже с числами, состоящими из 16 бит. И количество бинов гистограммы становится огромным. Через некоторое время было выяснено, что больше всего информации несут так называемые uniform patterns (к сожалению я так и не смог это перевести на русский язык, чтобы не резало слух). Суть заключается в том, что эти паттерны содержат не более определенного числа транспозици 0 и 1 в записи. То есть числа 00011000 или 00000000 будут являться uniform patterns, а 00100100 — нет, если заданное число транспозиций — два.
Оператор LBP применяется как составная часть многих классификаторов. Самое простое применение — это составление гистограмм и сравнение их (я кратко затронул этот метод). Также он используется с такими алгоритмами машинного обучения, как SVM и AdaBoost. И если публика заинтересуется этими методами — это будет неплохой мотивацией к написанию новой статьи.
Огромное спасибо за внимание, надеюсь, что мой стиль изложения был достаточно прост для понимания.
— Литература:
Zhiguang Yang and Haizhou Ai — Demographic Classification with Local Binary Patterns
Автор: albu