Введение

Когда дело доходит до решения проблем компьютерного зрения, алгоритмы машинного обучения следуют важному начальному шагу: извлекают признаки из предоставленных изображений. Извлечение признаков служит основой любой системы классификации образов, играя ключевую роль в процессе распознавания.

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

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

В этой статье мы рассмотрим набор важных функций, используемых в компьютерном зрении. Эти функции включают в себя:

  • Текстурные особенности
  • Морфологические особенности
  • Функции на основе гистограммы
  • Многомасштабные функции
  • Моменты

Раздел 1: PyFeats: программное обеспечение с открытым исходным кодом для извлечения признаков изображения

PyFeats — мощная библиотека извлечения признаков, предназначенная для задач компьютерного зрения. Он предоставляет полный набор методов для извлечения значимой информации из изображений, позволяя пользователям обнаруживать шаблоны, текстуры и формы, встроенные в визуальные данные. Одним из примечательных аспектов PyFeats является реализация неизменности заполнения, обеспечивающая последовательное извлечение функций независимо от размера изображения или соотношения сторон. Кроме того, PyFeats вводит параметр маски, который позволяет пользователям вычислять функции конкретно в пределах определенной интересующей области маски. Эта функция позволяет пользователям сосредоточиться на соответствующих областях изображения, повышая точность и применимость выделения признаков. С помощью PyFeats пользователи могут легко извлекать и анализировать функции изображений, что позволяет им получать ценную информацию и продвигать свои проекты компьютерного зрения.

Раздел 2: Установка PyFeats

Чтобы установить PyFeats, откройте терминал или командную строку и выполните следующую команду:

pip install pyfeats

Эта команда запускает процесс установки, автоматически загружая и устанавливая последнюю версию PyFeats и ее необходимые зависимости.

После завершения установки вы можете начать использовать возможности PyFeats в своих проектах Python. Начните с импорта библиотеки в свой код с помощью следующего оператора импорта:

import pyfeats

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

Раздел 3: Особенности и использование PyFeats

Для следующих разделов предположим

  • f — это изображение в градациях серого в виде numpy ndarray,
  • mask — это изображение в виде numpy ndarray, но с двумя значениями: 0 (ноль) и 1 (один), где 1 указывает на интересующую область (ROI), где должны быть рассчитаны функции (значения за пределами ROI игнорируются),
  • perimeter похож на mask, но указывает периметр ROI. В демо есть аналитический способ создания маски и периметра по заданному набору координат.

Обратите внимание, что аналитическое описание того, как рассчитывается каждая функция, содержится в pyfeats.pdf

3.1 Особенности текстуры

3.1.1 Статистика первого порядка/статистические характеристики (FOS/SF)

Статистика первого порядка (FOS) рассчитывается на основе гистограммы изображения, которая представляет собой эмпирическую функцию плотности вероятности для отдельных пикселей. Характеристики FOS следующие: 1) среднее значение, 2) стандартное отклонение, 3) медиана, 4) мода, 5) асимметрия, 6) эксцесс, 7) энергия, 8) энтропия, 9) минимальный уровень серого, 10) максимальный уровень серого. уровень, 11) коэффициент вариации, 12,13,14,15) процентили (10, 25, 50, 75, 90) и 16) ширина гистограммы.

features, labels = fos(f, mask)

3.1.2 Матрица совпадения уровней серого (GLCM/SGLDM)

Матрица совпадения уровней серого (GLCM), предложенная Хараликом, основана на оценке совместных функций плотности условной вероятности второго порядка. Признаки GLGLCM следующие: 1) угловой секундный момент, 2) контраст, 3) корреляция, 4) сумма квадратов: дисперсия, 5) обратный разностный момент, 6) сумма среднего, 7) сумма дисперсии, 8) сумма энтропии, 9) энтропия, 10) разностная дисперсия, 11) разностная энтропия, 12,13) ​​информационные меры корреляции. Для каждого признака вычисляются средние значения и диапазон значений, которые используются как два разных набора признаков.

features_mean, features_range, labels_mean, labels_range = glcm_features(f, ignore_zeros=True)

3.1.3 Статистика различия уровней серого (GLDS)

Алгоритм статистики различий уровней серого (GLDS) использует статистику первого порядка локальных значений свойств, основанную на абсолютных различиях между парами уровней серого или средних уровней серого, для извлечения мер текстуры. Свойства GLDS следующие: 1) однородность, 2) контраст, 3) энергия, 4) энтропия, 5) среднее.

features, labels = glds_features(f, mask, Dx=[0,1,1,1], Dy=[1,1,0,-1])

3.1.4 Матрица различий оттенков серого по соседству (NGTDM)

Матрица различий серых тонов соседства (NDTDM) соответствует визуальным свойствам текстуры. Признаки NGTDM следующие: 1) грубость, 2) контрастность, 3) загруженность, 4) сложность, 5) сила.

features, labels = ngtdm_features(f, mask, d=1)

3.1.5 Матрица статистических признаков (SFM)

Матрица статистических признаков измеряет статистические свойства пар пикселей на нескольких расстояниях в пределах изображения, которые используются для статистического анализа. Признаками ССМ являются: 1) грубость, 2) контрастность, 3) периодичность, 4) шероховатость.

features, labels = sfm_features(f, mask, Lr=4, Lc=4)

3.1.6 Измерения энергии текстуры Лоу (LTE/TEM)

Энергетические меры текстуры Закона получаются из трех простых векторов длины 3. Если эти векторы свернуть друг с другом, получаются новые векторы длины 5. Путем дальнейшей самосвертки получаются новые векторы длины 7. Если векторы-столбцы длины l умножаются на векторы-строки той же длины, получаются маски Laws l×l. Чтобы извлечь особенности текстуры из изображения, эти маски свернуты с изображением, и статистика (например, энергия) полученного изображения используется для описания текстуры: 1) энергия текстуры из ядра LL, 2) энергия текстуры из EE ядро, 3) энергия текстуры из ядра SS, 4) средняя энергия текстуры из ядер LE и EL, 5) средняя энергия текстуры из ядер ES и SE, 6) средняя энергия текстуры из ядер LS и SL.

features, labels = lte_measures(f, mask, l=7)

3.1.7 Фрактально-размерный текстурный анализ (FDTA)

Анализ фрактальной размерности текстуры (FDTA) основан на модели фрактального броуновского движения (FBM). Модель FBM используется для описания шероховатости природных поверхностей. Он рассматривает естественные поверхности как конечный результат случайных блужданий. Такие случайные блуждания являются основными физическими процессами в нашей Вселенной. Одним из наиболее важных параметров для представления фрактальной поверхности является фрактальная размерность. Более простым методом является оценка параметра H (коэффициент Херста). Если изображение просматривается при разных разрешениях, то получается вектор признаков фрактала с несколькими разрешениями (MF).

h, labels = fdta(f, mask, s=3)

3.1.8 Матрица длин серий уровней серого (GRLLM)

Прогон уровня серого представляет собой набор последовательных коллинеарных точек изображения, имеющих одинаковое значение уровня серого. Длина прогона — это количество точек изображения в прогоне. Особенности GLRLM заключаются в следующем: 1) акцент на коротком прогоне, 2) акцент на длинном прогоне, 3) неравномерность уровня серого, 4) неравномерность длины прогона, 5) процент прогона, 6) акцент на прогоне с низким уровнем серого, 7) акцент на высоком уровне серого, 8) короткий акцент на низком уровне серого, 9) краткосрочный акцент на высоком уровне серого, 10) долгосрочный акцент на низком уровне серого, 11) долгосрочный акцент на высоком уровне.

features, labels = glrlm_features(f, mask, Ng=256)

3.1.9 Спектр мощности Фурье (FPS)

Для цифровых изображений вместо непрерывного преобразования Фурье используется дискретное преобразование. Стандартный набор текстурных признаков на основе кольцеобразных отсчетов дискретного спектра мощности Фурье имеет вид. Точно так же черты на основе клиновидных образцов имеют форму. Особенности FPS следующие: 1) радиальная сумма, 2) угловая сумма

features, labels = fps(f, mask)

3.1.10 Параметры формы

Параметры формы состоят из следующих признаков: 1) максимальная длина координаты x, 2) максимальная длина координаты y, 3) площадь, 4) периметр, 5) периметр2/площадь

features, labels = shape_parameters(f, mask, perimeter, pixels_per_mm2=1)

3.1.11 Матрица размеров зон уровня серого (GLSZM)

Матрица размера зон уровня серого (GLSZM) количественно определяет зоны уровня серого в изображении. Зона уровня серого определяется как количество соединенных вокселей с одинаковой интенсивностью уровня серого. Воксель считается связным, если расстояние равно 1 по норме бесконечности (26-связная область в 3D, 8-связная область в 2D). Особенности GLSZM следующие: 1) выделение небольшой зоны, 2) выделение большой зоны, 3) неравномерность уровня серого, 4) неравномерность размера зоны, 5) процент зоны, 6) выделение зоны с низким уровнем серого, 7 ) выделение зоны с высоким уровнем серого, 8) выделение низкого уровня серого в малой зоне, 9) выделение высокого уровня серого в малой зоне, 10) выделение низкого уровня серого в большой зоне, 11) выделение высокого уровня серого в большой зоне, 12 дисперсия уровня серого, 13) дисперсия размера зоны, 14) энтропия размера зоны.

features, labels = glszm_features(f, mask, connectivity=1)

3.1.12 Спектры высшего порядка (HOS)

Преобразование Радона преобразует двухмерные изображения с линиями в область возможных параметров линии, где каждая линия на изображении будет давать пик, расположенный на соответствующих параметрах линии. Следовательно, линии изображений преобразуются в точки области Радона. Спектры высокого порядка (HOS) представляют собой спектральные компоненты высших моментов. Биспектр сигнала представляет собой преобразование Фурье (FT) корреляции сигнала третьего порядка (также известное как кумулянтная функция третьего порядка). Биспектр представляет собой комплексную функцию двух частот. Биспектр, представляющий собой произведение трех коэффициентов Фурье, демонстрирует симметрию и был рассчитан в неизбыточной области. Извлеченный признак — это энтропия 1.

features, labels = hos_features(f, th=[135,140])

3.1.13 Локальный двоичный шаблон (LPB)

Локальный двоичный шаблон (LBP), надежный и эффективный дескриптор текстуры, впервые был представлен Оджалой. Вектор признаков LBP в его простейшей форме определяется с использованием следующего метода: вокруг пикселя рассматривается круговая окрестность. P точек выбираются на окружности окружности радиусом R так, чтобы все они были равноудалены от центрального пикселя. . Эти точки P преобразуются в циклический битовый поток из 0 и 1 в зависимости от того, меньше или больше значение серого пикселя, чем значение серого центрального пикселя. Оджала и др. (2002) ввели понятие однородности в анализ текстуры. Единые фундаментальные шаблоны имеют однородную круговую структуру, которая содержит очень мало пространственных переходов U (количество пространственных побитовых переходов 0/1). В данной работе вычислялась мера инвариантности вращения с использованием меры однородности U. Только образцам с U меньше 2 присваивался код LBP, т. е. если количество битовых переходов в циклическом битовом потоке меньше или равно 2, центральный пиксель помечался как равномерный. Энергия и энтропия изображения LBP, построенного в различных масштабах, используются в качестве дескрипторов признаков.

features, labels = lbp_features(f, mask, P=[8,16,24], R=[1,2,3])

3.2 Морфологические признаки

3.2.1 Морфологический анализ в градациях серого

При многоуровневом бинарном морфологическом анализе различные компоненты извлекаются и исследуются на предмет их геометрических свойств. Три бинарных изображения генерируются пороговой обработкой. Здесь выходные данные бинарного изображения представлены в виде наборов координат изображения, где интенсивность изображения соответствует пороговым критериям. В целом, это многоуровневое разложение тесно связано с трехуровневым квантованием интенсивности исходного изображения. Для каждого бинарного изображения рассчитывается спектр картины. Морфологические признаки оттенков серого следующие: 1) средние кумулятивные функции распределения (CDF) и 2) средние функции плотности вероятности (PDF) спектров шаблона с использованием креста «+» в качестве структурного элемента изображения в градациях серого.

pdf, cdf = grayscale_morphology_features(f, N)

3.2.2 Многоуровневый бинарный морфологический анализ

То же, что и выше, но с изображением в градациях серого. Отличие заключается в расчете спектра паттерна.

pdf_L, pdf_M, pdf_H, cdf_L, cdf_M, cdf_H = multilevel_binary_morphology_features(f, mask, N=30, thresholds=[25, 50])

3.3 Функции на основе гистограммы

3.3.1 Гистограмма

Гистограмма: гистограмма уровня серого ROI изображения.

H, labels = histogram(f, mask, bins=32)

3.3.2 Гистограмма с несколькими регионами

Ряд равноудаленных ROI идентифицируется путем размытия контура изображения с коэффициентом, основанным на размере изображения. Гистограмма вычисляется для каждой из областей, как описано выше.

features, labels = multiregion_histogram(f, mask, bins, num_eros=3, square_size=3)

3.3.3 Коррелограмма

Коррелограммы — это гистограммы, которые измеряют не только статистические данные об особенностях изображения, но также учитывают пространственное распределение этих характеристик. В этой работе реализованы две коррелограммы для ROI изображения:

  • на основе расстояния распределения значений уровня серого пикселей от центра изображения, и
  • в зависимости от угла их распространения.

Для каждого пикселя рассчитывается расстояние и угол от центра изображения, а для всех пикселей с одинаковым расстоянием или углом вычисляются их гистограммы. Для того, чтобы сделать возможным сравнение между изображениями разных размеров, коррелограммы расстояний нормализованы. Угол коррелограммы может варьироваться среди возможных значений, начиная с левой середины изображения и двигаясь по часовой стрелке. Полученные коррелограммы являются матрицами.

Hd, Ht, labels = correlogram(f, mask, bins_digitize=32, bins_hist=32, flatten=True)

3.4 Мультимасштабные функции

3.4.1 Текстурный анализ фрактальных измерений (FDTA)

См. 2.1.7.

h, labels = fdta(f, mask, s=3)

3.4.2 Амплитудно-частотная модуляция (АМ-ЧМ)

Мы рассматриваем мультимасштабные представления амплитудно-частотной модуляции (АМ-ЧМ) в приближении наименьших квадратов для изображений. Для каждого изображения рассчитывается мгновенная амплитуда (IA), мгновенная фаза (IP) и мгновенная частота (IF) для конкретного компонента. Учитывая входное дискретное изображение, мы сначала применяем преобразование Гильберта, чтобы сформировать двумерное расширение одномерного аналитического сигнала. Результат обрабатывается набором полосовых фильтров с нужным масштабом. Каждый блок обработки будет производить IA, IP и IF. Характеристики AM-FM следующие: гистограмма реконструированных изображений 1) низкого, 2) среднего, 3) высокого и 4) постоянного тока.

features, labels = amfm_features(f, bins=32)

3.4.3 Дискретное вейвлет-преобразование (DWT)

Дискретное вейвлет-преобразование (DWT) сигнала определяется как его внутренний продукт с семейством функций. Для изображений, т. е. двумерных сигналов, можно использовать двумерный DWT. Он состоит из DWT для строк изображения и DWT для столбцов результирующего изображения. За результатом каждого DWT следует выборка вниз по столбцам и строкам соответственно. Разложение изображения дает четыре части изображения для каждого уровня. Каждое аппроксимирующее подизображение разбивается на четыре подизображения, называемых аппроксимацией, подробным по горизонтали, подробным по вертикали и подробным по диагонали подизображением соответственно. Каждое детальное подизображение является результатом свертки с двумя полуполосными фильтрами. Особенности DWT следующие: 1) среднее значение и 2) стандартное отклонение абсолютного значения под-изображений деталей DWT.

features, labels = dwt_features(f, mask, wavelet='bior3.3', levels=3)

3.4.4 Стационарное вейвлет-преобразование (SWT)

Двухмерное стационарное вейвлет-преобразование (SWT) похоже на двумерное DWT, но не выполняется понижающая дискретизация. Вместо этого выполняется повышающая выборка фильтров нижних и верхних частот. Особенности SWT следующие: 1) среднее значение и 2) стандартное отклонение абсолютного значения под-изображений деталей SWT.

features, labels = swt_features(f, mask, wavelet='bior3.3', levels=3

3.4.5 Пакеты вейвлетов (WP)

Разложение 2-D вейвлет-пакетов (WP) представляет собой простую модификацию 2-D DWT, которая предлагает более богатое пространственно-частотное представление. Первый уровень анализа такой же, как и у 2-D DWT. Второй, а также все последующие уровни анализа состоят из разложения каждого подизображения, а не только аппроксимирующего подизображения, на четыре новых подизображения. Характеристики WP следующие: 1) среднее значение и 2) стандартное отклонение абсолютного значения подэлементов изображений вейвлет-разложения.

features, labels = wp_features(f, mask, wavelet='cof1', maxlevel=3)

3.4.6 Преобразование Габора (ПТ)

Преобразование Габора (GT) изображения состоит в свертывании этого изображения с функцией Габора, то есть синусоидальной плоской волной определенной частоты и ориентации, модулированной огибающей Гаусса. Представления частоты и ориентации фильтров Габора аналогичны представлениям зрительной системы человека, что делает их подходящими для сегментации и классификации текстур. Особенности GT следующие: 1) среднее значение и 2) стандартное отклонение абсолютного значения под-изображений деталей GT изображения.

features, labels = gt_features(f, mask, deg=4, freq=[0.05, 0.4])

3.5 Другие функции

3.5.1 Моменты Зерникеса

В обработке изображений, компьютерном зрении и смежных областях момент изображения представляет собой определенное средневзвешенное значение (момент) интенсивности пикселей изображения или функцию таких моментов, обычно выбираемую для того, чтобы иметь какое-то привлекательное свойство или интерпретацию. Момент Цернике представляет собой разновидность ортогональных комплексных моментов, а его ядро ​​представляет собой набор полных ортогональных многочленов Цернике, определенных над внутренней частью единичного круга в пространстве полярных координат. Моментами Цернике являются: 1–25) инварианты ортогональных моментов относительно переноса.

features, labels = zernikes_moments(f, radius=9)

3.5.2 Моменты Ху

В обработке изображений, компьютерном зрении и смежных областях момент изображения представляет собой определенное средневзвешенное значение (момент) интенсивности пикселей изображения или функцию таких моментов, обычно выбираемую для того, чтобы иметь какое-то привлекательное свойство или интерпретацию. Моментами Ху являются: 1–7) моменты, инвариантные по отношению к переносу, масштабу и вращению.

features, labels = hu_moments(f)

3.5.3 Матрица пороговой близости (TAS)

features, labels = tas_features(f)

3.5.4 Гистограмма ориентированных градиентов (HOG)

fd, labels = hog_features(f, ppc=8, cpb=3)

Раздел 4: Приложения PyFeats

Универсальность PyFeats выходит далеко за рамки возможностей извлечения функций. Эта мощная библиотека находит широкое применение в различных областях, одной из важных областей которой является медицинская визуализация. Способность извлекать значимые признаки из медицинских изображений играет решающую роль в диагностике, планировании лечения и мониторинге заболеваний. PyFeats позволяет исследователям, клиницистам и разработчикам в области медицины раскрыть потенциал, скрытый в этих изображениях.

Медицинская визуализация

PyFeats предлагает широкий спектр методов извлечения признаков, которые могут помочь в анализе медицинских изображений. Текстурные особенности, такие как энтропия текстуры или матрицы совпадений, дают ценную информацию о свойствах ткани и могут помочь в различении здоровых и аномальных областей. Морфологические признаки, такие как дескрипторы формы или фрактальные размеры, помогают характеризовать анатомические структуры и выявлять аномалии. Функции на основе гистограмм фиксируют распределение интенсивности пикселей и позволяют проводить количественный анализ различных свойств тканей. Многомасштабные функции позволяют исследовать изображения с разным разрешением, выявляя важную информацию в разных масштабах. Моменты, такие как моменты Ху или моменты Зернике, обеспечивают компактное представление формы и текстуры, облегчая распознавание образов и задачи классификации в медицинской визуализации.

Цитаты

PyFeats уже упоминался в 4 публикациях!

  1. Пак, Хангиль, Чанчжи Бай и Лигуан Ван. «Сверточная нейронная сеть для классификации подвижности пены в промышленной флотационной камере». Обзор переработки полезных ископаемых и добывающей металлургии 44.3 (2023): 209–217.
  2. Перейра, Катарина и др. «Система анализа изображений для раннего обнаружения изменений после кардиоторакальной хирургии на основе моделей искусственного интеллекта». Прикладные науки 13.4 (2023): 2120.
  3. Нуграха, Дионисий Адианто Тирта и Аулия М.Т. Насутион. «Сравнение метода извлечения текстурных признаков для обнаружения COVID-19 с помощью глубокого обучения». Международная конференция IEEE по кибернетике и вычислительному интеллекту (CyberneticsCom), 2022 г.. ИИЭР, 2022.
  4. Перейра, Катарина. Анализ прогнозирования риска послеоперационных осложнений в кардиоторакальной хирургии. Дисс. 2022.

Заключение

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

Используя PyFeats, разработчики и исследователи могут получить доступ к комплексному набору методов извлечения признаков, адаптированных к анализу изображений. Будь то текстурные функции, морфологические функции, функции на основе гистограмм, многомасштабные функции или моменты, PyFeats позволяет пользователям эффективно извлекать важную информацию из изображений.

Более того, PyFeats упрощает процесс установки, обеспечивая беспроблемную настройку. Выполнив несколько простых шагов, вы можете настроить и запустить PyFeats, готовый улучшить ваши проекты компьютерного зрения с его богатыми возможностями извлечения функций.

Универсальность PyFeats выходит за рамки предопределенных методов извлечения функций. Эта библиотека служит платформой для инноваций, предлагая пользователям исследовать и разрабатывать свои собственные методы извлечения функций, адаптированные к конкретным потребностям их проектов.

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

Прощаясь, мы призываем вас приступить к извлечению функций с помощью PyFeats. Раскройте всю мощь функций, раскройте скрытый потенциал ваших изображений и проложите путь к новаторским решениям компьютерного зрения.

С PyFeats весь мир извлечения функций у вас под рукой. Примите его и убедитесь в том, какое преобразующее влияние оно может оказать на ваши усилия по компьютерному зрению. Удачной добычи!

Рекомендации

Для получения подробных ссылок проверьте: https://github.com/giakou4/pyfeats