Введение
Человеческий глаз способен различать мельчайшие различия в изображениях, даже если они различаются по текстуре. Сегментация изображения, которая включает в себя разделение изображения на отдельные области со схожими свойствами, имеет множество практических применений, таких как медицинская визуализация, дистанционное зондирование, промышленная автоматизация и безопасность. Естественные изображения состоят как из текстурированных, так и из нетекстурированных областей, а сегментация текстур — это особый подход к сегментации изображений, в котором используются дескрипторы, адаптированные к конкретной текстуре изображения.
Что такое Текстура?
Текстура относится к тактильным ощущениям поверхности, в то время как при обработке изображений она определяется как пространственное изменение интенсивности яркости пикселей. Текстоны используются для анализа текстуры, которая характеризуется пространственным распределением уровней интенсивности в локальной окрестности. В области обработки изображений и машинного обучения текстурные изображения относятся к изображениям, в которых постоянно присутствует определенный образец распределения и дисперсии интенсивности освещения пикселей. по всему изображению.
Рис. Все три изображения имеют 50% черного и 50% белого распределения пикселей, но разные текстуры.
Проблемы с текстурными изображениями
При анализе и классификации изображений двумя серьезными проблемами являются вращение и шум, которые могут иметь пагубные последствия. Неспособность использовать устойчивые методы классификации этих явлений может значительно снизить точность результатов. Кроме того, изображения могут различаться по масштабу, точке зрения или интенсивности света, что представляет собой серьезную проблему в системах классификации текстур. Для решения этих проблем были предложены различные методы, каждый из которых пытается охватить эти аспекты.
Сегментация текстуры
Основная цель сегментации текстуры состоит в том, чтобы разделить изображение на отдельные области на основе различий в текстуре. Любая мера текстуры, описывающая текстуру в локальной окрестности каждого пикселя, может использоваться для сегментации изображения на области с похожей текстурой, предоставляя значение или вектор значений для каждого пикселя. Эта сегментация обычно включает двухэтапный процесс.
1) Первый этап — это этап извлечения признаков, на котором извлекаются текстурные свойства. Цель состоит в том, чтобы создать модель для каждой текстуры в обучающем наборе данных.
2) На втором этапе, этапе классификации, текстура изображения тестового образца анализируется с использованием той же методики, что и на предыдущем этапе. Затем алгоритм классификации используется для сравнения извлеченных признаков тестового изображения с обучающим изображением, определяя его класс.
Методы извлечения текстурных признаков
А. Статистический метод
«Статистические» подходы к анализу текстуры включают вычисление статистики текстуры, такой как моменты гистограммы уровней серого или статистики по матрице совпадения уровней серого, для различения различных текстур. Эти методы обычно вычисляют векторы признаков, включая статистические характеристики первого, второго и более высокого уровня, причем последние учитывают зависимости пикселей. Матрица совпадений, гистограмма второго уровня, является примером таких методов.
1) Особенности и характеристики гистограммы:
Статистические показатели первого порядка рассчитываются непосредственно из уровней серого пикселей изображения без учета их пространственного соотношения. Как правило, статистические индексы первого уровня получаются путем вычисления статистических моментов гистограммы изображения, которая представляет собой двумерное представление распределения уровней серого в изображении. Например, количество света и тени на изображении можно представить в виде гистограммы. Одним из простейших методов описания текстуры является использование статистических моментов, связанных с гистограммой интенсивности, из которой можно извлечь множество признаков, в том числе n-й момент вокруг среднего значения.
2) Матрица совпадений:
Матрица совместного появления — это статистический метод второго порядка для анализа текстуры. Он описывает частоту пар интенсивностей пикселей, возникающих в заданном пространственном отношении. Матрица совместной встречаемости обычно рассчитывается с использованием подхода скользящего окна, при котором размер окна и пространственное отношение можно регулировать на основе анализируемых характеристик текстуры. В качестве примера возьмем изображение 3x3 со значениями интенсивности от 0 до 3:
1 1 2 0 1 0 2 3 1
Мы выбрали пространственное отношение расстояния в один пиксель по горизонтали и ноль пикселей по вертикали, чтобы окно скользило по одному пикселю за раз вдоль строки. Мы вычисляем матрицу совпадения, подсчитывая частоту пар интенсивностей пикселей в этих пространственных отношениях:
0 1 2 3 0 0 1 0 0 1 2 2 1 0 2 0 1 1 1 3 0 0 1 0
Здесь элемент в строке i и столбце j представляет количество раз, когда значение интенсивности i появляется слева от значения интенсивности j на расстоянии одного пикселя.
Например, элемент в строке 1 и столбце 2 представляет количество раз, когда значение интенсивности 1 появляется слева от значения интенсивности 2 с расстоянием в один пиксель, которое равно 1. Элемент в строке 2 и столбце 1 представляет количество раз значение интенсивности 2 появляется слева от значения интенсивности 1 на расстоянии одного пикселя, что равно 2.
Затем эту матрицу совпадения можно использовать для вычисления различных характеристик текстуры, таких как контраст, энергия и энтропия, которые можно использовать для сегментации и классификации текстуры. После формирования матрицы совпадения статистические свойства Харалика (контраст, корреляция, энергия, однородность, энтропия и максимальная вероятность) могут быть рассчитаны на основе выходных данных матрицы совпадения.
3) Локальный двоичный шаблон:
Это дескриптор текстуры, используемый в анализе изображений и компьютерном зрении для характеристики локальных структур текстуры изображения. Основная идея LBP состоит в том, чтобы сравнить значение интенсивности центрального пикселя со значениями интенсивности его окружающих соседей. Двоичный код присваивается каждому пикселю в зависимости от того, больше или меньше его интенсивность, чем у центрального пикселя. Результирующий двоичный код для каждого пикселя затем объединяется для формирования двоичной строки, которая представляет локальный образец текстуры окрестности пикселя. Затем эту двоичную строку можно использовать в качестве вектора признаков для дальнейшего анализа или классификации. Например, рассмотрим следующее изображение в градациях серого 5x5:
120 150 170 140 110 100 120 140 130 90 90 100 120 100 80 70 90 90 70 60 50 60 70 60 40
Чтобы вычислить значение LBP для пикселя в точке (2,2), вы должны взять его окрестности 3x3:
120 150 170 100 120 140 90 100 120
Затем вы сравните значение центрального пикселя (120) с каждым из его соседей:
0 1 1 0 0 1 0 0 0
Это дает нам двоичный шаблон 01100100, что эквивалентно 100 в десятичном виде. Следовательно, значение LBP для пикселя в точке (2,2) равно 100.
Б. Структурные методы
1) Краевая особенность:
Край объекта — это граница между объектом и его фоном, характеризующаяся внезапным изменением яркости или уровней серого между соседними пикселями в определенном месте изображения. Обнаружение краев направлено на выявление этих точек резких изменений интенсивности на изображении. Края могут зависеть от точки обзора, изменяясь вместе с геометрией и объектами в сцене, или не зависеть от точки обзора, представляя такие особенности, как маркировка и форма поверхности. К стандартным операторам обнаружения границ относятся Sobel, Prewitt и Robert.
2) Масштабно-инвариантное преобразование признаков (SIFT):
Алгоритм SIFT обнаруживает и извлекает ключевые точки или отличительные черты изображения, которые не зависят от масштаба, поворота и изменения освещения. Он работает, находя локальные максимумы и минимумы в пирамиде разности Гаусса (DoG), которая представляет собой серию размытых и уменьшенных изображений.
Как только ключевые точки обнаружены, SIFT вычисляет уникальный дескриптор для каждой ключевой точки на основе ее ориентации и величины градиента. Этот дескриптор не зависит от масштаба и поворота, что делает его устойчивым к изменениям точки зрения.
Было показано, что SIFT очень эффективен во многих приложениях компьютерного зрения и широко используется в промышленности и научных кругах. Однако из-за высокой вычислительной сложности он может не подходить для приложений реального времени на маломощных устройствах.
C. Методы на основе моделей
Моделирование текстур может быть выполнено с использованием подхода на основе моделей, который включает такие методы, как авторегрессия (AR), марковский квадрат, RMF Гиббса, скрытая марковская модель (HMM) и фрактальные модели. Эти модели используются для создания модели изображения, которая затем используется для описания синтеза текстуры. Параметры модели фиксируют основные качественные свойства текстуры.
1) Фрактал:
Фракталы — это класс коллекций, содержащих множество сложных объектов, созданных путем повторения простых правил. Эти коллекции могут использоваться для моделирования грубости, резкости и самоподобия текстурных изображений и относятся к категории методов, основанных на моделях. Набор 𝐴 повторений 𝑁 считается самоподобным, если каждая копия является отдельной идентичной версией самого себя, сдвинутой на 𝑟 от исходного изображения. D получается из интерфейса между N и r.
D = log( (N)/ log(1/r) )
D. Методы на основе преобразования
Эти методы включают преобразование изображения в другое пространство с помощью функции преобразования, что повышает различимость текстуры в новом пространстве. Наиболее часто используемые методы извлечения в этом методе включают вейвлет-преобразования, Curvelet, Ridgelet и Gabor.
1) Спектральные меры текстуры:
Спектр Фурье — полезный инструмент для описания чередующихся или почти чередующихся двумерных узоров на изображении. Общие текстурные паттерны можно легко идентифицировать по концентрациям выше энергии в спектре. Есть три особенности спектра Фурье, которые особенно полезны при описании текстуры:
а) Пики появляются в основном направлении текстуры.
б) Пики находятся на пластине основной альтернативной частоты в месте расположения шаблона.
c) Неальтернативные компоненты изображения могут быть отфильтрованы, чтобы исключить любые пропорциональные компоненты.
Спектр вокруг источника симметричен, поэтому рассматривается только половина частотной пластины. Для анализа каждого чередующегося паттерна к спектру относится только один пик, и он обычно отображается в полярных координатах.
2) Габор:
Функция Габора представляет собой сложную синусоидальную форму волны, которая модулируется функцией Гаусса, что приводит к локализованному частотному анализу. Фильтры Габора создаются путем свертки изображения с набором функций Габора с различной частотой и ориентацией. Вейвлет Габора является оптимальным преобразованием для уменьшения двумерной неопределенности, связанной с областями местоположения и частоты. Его можно использовать в качестве детектора направления и масштаба для выявления линий и краев на изображениях. Пример применения фильтра Габора к изображению:
а) Выберите частоту и ориентацию для фильтра Габора. Например, давайте выберем частоту 0,1 и ориентацию 45 градусов.
b) Сгенерируйте ядро Габора, применив функцию Габора к сетке точек в пространственной области.
c) Сверните изображение с помощью ядра Gabor, чтобы получить отфильтрованное изображение.
Полученное отфильтрованное изображение будет выделять области изображения, соответствующие частоте и ориентации фильтра Габора. Например, если изображение содержит текстуру, ориентированную под углом 45 градусов и имеющую частоту 0,1, то фильтр Габора улучшит эту текстуру в отфильтрованном изображении.
Методы классификации текстуры
При разработке системы классификации текстурных изображений создание модели для классификатора следует за выбором обучающего набора и извлечением признаков из изображений. Для обучения этой модели используются алгоритмы машинного обучения с контролем. Образовательный набор предоставляет как вектор признаков, извлеченный из каждого изображения, так и информацию о соответствующем классе.
A. K-ближайший сосед:
Это простой и эффективный алгоритм, который работает, находя k ближайших точек данных в обучающем наборе к новой точке входных данных и используя их метки для классификации или прогнозирования метки новой точки данных.
В алгоритме KNN предполагается, что все примеры 𝑥 𝑖, которые имеют N-мерный вектор, имеют некоторые векторные точки в N-мерном пространстве признаков, а k является положительным и определенным постоянным числом. На этапе обучения все, что нужно сделать, это сохранить векторы признаков и пометить каждую обучающую выборку в этом N-мерном пространстве. На этапе классификации в качестве входных данных принимается вектор признаков образцов, класс которых неизвестен. На основе функции подобия k определяется из обучающих выборок, признаки которых наиболее близки к вектору признаков.
B. Машина опорных векторов:
SVM — это популярный алгоритм обучения с учителем, который можно использовать для сегментации текстур. Сегментация текстуры включает в себя разделение изображения на области с различной текстурой. SVM можно обучить классифицировать различные текстуры на изображении на основе признаков, извлеченных из изображения. После извлечения функций набор обучающих изображений с помеченными областями используется для обучения SVM. SVM учится классифицировать различные текстуры на основе признаков, извлеченных из обучающих изображений. После обучения SVM можно использовать для сегментации текстур на новом изображении. Сначала изображение предварительно обрабатывается, и из него извлекаются признаки. Затем SVM классифицирует каждый пиксель изображения на основе изученной модели, и изображение сегментируется на области с разными текстурами.
C. Дерево решений:
Алгоритм дерева решений изучает иерархический набор правил, которые можно использовать для классификации различных областей изображения на основе их текстурных особенностей. Одним из преимуществ использования дерева решений для сегментации текстуры является то, что полученную модель можно легко интерпретировать, а иерархические правила могут дать представление о том, как алгоритм принимает решения. Однако деревья решений могут быть чувствительны к зашумленным или нерелевантным функциям, и переобучение может стать проблемой, если дерево станет слишком сложным.
D. Наивный байесовский классификатор:
Алгоритм наивного байесовского классификатора основан на теореме Байеса, которая утверждает, что вероятность гипотезы (в данном случае класса текстуры) пропорциональна вероятности свидетельства (в данном случае признаков текстуры) при наличии гипотезы. . После извлечения функций набор обучающих изображений с помеченными областями используется для обучения наивного байесовского классификатора. Наивный байесовский классификатор учится классифицировать различные текстуры на основе распределения вероятностей признаков в обучающих изображениях. После обучения наивный байесовский классификатор можно использовать для сегментации текстур на новом изображении. Сначала изображение предварительно обрабатывается, и из него извлекаются признаки. Затем наивный байесовский классификатор вычисляет вероятность каждого класса текстур с учетом характеристик каждого пикселя, и изображение сегментируется на области с различными текстурами на основе наибольшей вероятности. Одним из преимуществ использования наивного байесовского классификатора для сегментации текстур является то, что это относительно простой и быстрый алгоритм, который может хорошо работать с многомерными пространствами признаков. Однако «наивное» предположение о независимости между функциями может не всегда выполняться на практике и может привести к неоптимальной производительности.
E. Искусственная нейронная сеть:
ИНС представляют собой набор взаимосвязанных узлов, которые могут изучать сложные закономерности в данных, регулируя веса соединений между узлами. ИНС учится классифицировать различные текстуры на основе признаков, извлеченных из обучающих изображений, путем корректировки весов связей между узлами. Одним из преимуществ использования ИНС для сегментации текстур является то, что они могут изучать сложные закономерности в данных, которые не могут быть захвачены более простыми алгоритмами, такими как наивный байесовский алгоритм или деревья решений. Однако ИНС могут быть чувствительны к переоснащению, если модель становится слишком сложной или если данных для обучения недостаточно. Поэтому важно тщательно выбирать функции, настраивать параметры ИНС и использовать методы регуляризации для предотвращения переобучения.
Рабочий пример
В этом примере мы загружаем изображение монеты из модуля skimage.data. Преобразуйте его в оттенки серого, вычислите матрицу GLCM, извлеките признаки GLCM и выполните кластеризацию K-средних на векторе признаков. Наконец, мы визуализируем исходное изображение и сегментированное изображение, используя функцию matplotlib.pyplot.imshow.
# importing Libraries import numpy as np import matplotlib.pyplot as plt from skimage import io, feature, segmentation, data # Load the coins image img = data.coins() # Compute the GLCM matrix glcm = feature.greycomatrix(img, distances=[5], angles=[0], levels=256, symmetric=True, normed=True) # Extract GLCM features contrast = feature.greycoprops(glcm, 'contrast') dissimilarity = feature.greycoprops(glcm, 'dissimilarity') homogeneity = feature.greycoprops(glcm, 'homogeneity') # Combine GLCM features into a feature vector features = np.concatenate((contrast.ravel(), dissimilarity.ravel(), homogeneity.ravel())) # Normalize feature vector features = features / np.linalg.norm(features) # Perform K-means clustering on feature vector labels = segmentation.slic(img, compactness=10, n_segments=2, start_label=1) labels = labels.flatten() # Visualize segmentation results plt.figure(figsize=(8, 3)) plt.subplot(121) plt.imshow(img, cmap='gray') plt.axis('off') plt.title('Original image') plt.subplot(122) plt.imshow(labels.reshape(img.shape), cmap='jet') plt.axis('off') plt.title('Segmented image') plt.show()
Результат:
Заключение
В исследовании рассматриваются почти все статьи, предлагающие такие методы, охватывающие четыре основные категории классификации текстуры. Хотя некоторые из основных методов уникальны для определенной категории, почти все методы предназначены для инвариантности к вращению. Однако оказалось, что большинство методов чувствительны к шуму.
Рекомендации
[1] Вирт М.А. (2004). Текстурный анализ. Бока-Ратон, Флорида: CRC Press.
[2] Хуан Ю., Де Бортоли В., Чжоу Ф., Жиль Дж. (2015). Обзор неконтролируемой сегментации текстур на основе вейвлетов, преимущества адаптивных вейвлетов. Журнал электронных изображений. дои: 10.1117/1.JEI.23.1.011011
[3] Мадасу В.К., Ярлагадда П.(2007). Подробное сравнение четырех методов сегментации текстуры, IEEE. DOI 10.1109/DICTA.2007.83
[4] Арми Л., Эршад С.Ф. (2019). Анализ текстурных изображений и методы классификации текстур - обзор, Международный онлайн-журнал обработки изображений и распознавания образов