Адаптивные подходы к сегментации гиперспектральных данных: сравнительный анализ и перспективы развития
- Authors: 1
-
Affiliations:
- Самарский университет
- Issue: Vol 1 (2024)
- Pages: 360-361
- Section: ЧАСТЬ I. Информационные технологии и техническая кибернетика
- URL: https://vietnamjournal.ru/osnk-sr2024/article/view/632796
- ID: 632796
Cite item
Full Text
Abstract
Обоснование. Гиперспектральные изображения представляют собой многоканальные изображения, которые содержат информацию о спектральных характеристиках объектов на изображении. Они широко используются в различных областях, таких как дистанционное зондирование Земли, медицина, агрономия и другие.
Сегментация гиперспектральных изображений является сложной задачей из-за высокой размерности данных и наличия шума. В связи с этим разработка эффективных алгоритмов сегментации гиперспектральных изображений является актуальной проблемой.
Цель — изучить методы сегментации гиперспектральных изображений для разработки своего метода
Методы. Для разработки методов сегментации были изучены библиотеки PIL, cv2, numpy, matplotlib для Python. Было уделено особое внимание изучению пороговой сегментации [1, 4], сегментации кластеризацией [2, 4], сегментации регионов и морфологической сегментации [3, 4].
Результаты. На начальном этапе были разработаны алгоритмы сегментации изображений. Был представлен ряд изображений, которые подверглись сегментированию (рис. 1).
Рис. 1. Пороговая обработка, кластеризация, сегментация регионов
Начинаем с разработки алгоритма сегментации, основанного на пороговой обработке. Изначально переводим изображение градации серого. В разработанном коде пороговое значение равно 100. Этот параметр применяется к нашим изображениям с помощью метода .point(). Таким образом, при помощи данного метода значение каждого пикселя черно-белого изображения сравнивается с пороговым значением. И если значение пикселя больше порогового значения, пикселю присваивается значение 255, а если наоборот, значение 0. В конце мы создаем новое пустое изображение с черным фоном и того же размера, что и начальное изображение. Воспользовавшись функцией composite(), мы накладываем нашу маску на черное пустое изображение. Получаем итоговое сегментированное изображение в цвете.
В качестве алгоритма кластеризации берется K-Means Clustering. Он используется для разбиения изображения на сегменты со схожими свойствами. Мы загружаем изображение в переменную. Так как изображение представляет собой двумерный массив с данными пикселей, то мы преобразуем изображение в одномерный массив. Используем алгоритм KMeans по различному количеству кластеров. С помощью функции kmeans.cluster_centers_ мы присваиваем пикселям значение центройда, к которому они относятся.
В качестве сегментации регионов берется популярный алгоритм водораздела. Он эффективен при сегментации изображения с похожими соприкасающимися друг с другом объектами. Мы используем библиотеку OpenCV. Сначала нужно преобразовать изображение в градации серого. Для алгоритма водораздела мы предварительно обрабатываем изображение для лучшего результата. Первая обработка — это пороговая сегментация. Затем необходимо обработать контур нашего объекта с помощью математической морфологии. Его получают путем вычитания эрозии изображения из его расширения. Эрозия сжимает яркие области изображения, а дилатация расширяет их. Морфологический градиент представляет собой разницу между ними. Следующим шагом находим маркеры объектов, чтобы можно было реализовать метод водораздела. Конечным преобразованием является выделение контура объекта на изображении.
Выводы. В ходе сравнения можно выделить, что пороговая обработка самая легкая в программной реализации и математической. Однако, при ее одиночном использовании, она плохо справляется со сложными объектами и подходит больше для сегментации текстов или объектов, сильно отличающихся от фона. Этот метод лучше использовать в качестве начальной обработки изображения перед другим методом.
Метод кластеризации хорошо выделяет кластеры на сложных изображениях. При этом можно варьировать количество кластеров, подбирая необходимый вид изображения. Этот метод хорошо работает для начальной обработки изображения.
Метод водораздела в сочетании с пороговой и морфологической обработкой выглядит наиболее полно, при этом видно, что он еще довольно сильно не доработан. Если использовать этот метод в совокупности с предыдущими, можно довольно четко выделить необходимый объект.
Full Text
Обоснование. Гиперспектральные изображения представляют собой многоканальные изображения, которые содержат информацию о спектральных характеристиках объектов на изображении. Они широко используются в различных областях, таких как дистанционное зондирование Земли, медицина, агрономия и другие.
Сегментация гиперспектральных изображений является сложной задачей из-за высокой размерности данных и наличия шума. В связи с этим разработка эффективных алгоритмов сегментации гиперспектральных изображений является актуальной проблемой.
Цель — изучить методы сегментации гиперспектральных изображений для разработки своего метода
Методы. Для разработки методов сегментации были изучены библиотеки PIL, cv2, numpy, matplotlib для Python. Было уделено особое внимание изучению пороговой сегментации [1, 4], сегментации кластеризацией [2, 4], сегментации регионов и морфологической сегментации [3, 4].
Результаты. На начальном этапе были разработаны алгоритмы сегментации изображений. Был представлен ряд изображений, которые подверглись сегментированию (рис. 1).
Рис. 1. Пороговая обработка, кластеризация, сегментация регионов
Начинаем с разработки алгоритма сегментации, основанного на пороговой обработке. Изначально переводим изображение градации серого. В разработанном коде пороговое значение равно 100. Этот параметр применяется к нашим изображениям с помощью метода .point(). Таким образом, при помощи данного метода значение каждого пикселя черно-белого изображения сравнивается с пороговым значением. И если значение пикселя больше порогового значения, пикселю присваивается значение 255, а если наоборот, значение 0. В конце мы создаем новое пустое изображение с черным фоном и того же размера, что и начальное изображение. Воспользовавшись функцией composite(), мы накладываем нашу маску на черное пустое изображение. Получаем итоговое сегментированное изображение в цвете.
В качестве алгоритма кластеризации берется K-Means Clustering. Он используется для разбиения изображения на сегменты со схожими свойствами. Мы загружаем изображение в переменную. Так как изображение представляет собой двумерный массив с данными пикселей, то мы преобразуем изображение в одномерный массив. Используем алгоритм KMeans по различному количеству кластеров. С помощью функции kmeans.cluster_centers_ мы присваиваем пикселям значение центройда, к которому они относятся.
В качестве сегментации регионов берется популярный алгоритм водораздела. Он эффективен при сегментации изображения с похожими соприкасающимися друг с другом объектами. Мы используем библиотеку OpenCV. Сначала нужно преобразовать изображение в градации серого. Для алгоритма водораздела мы предварительно обрабатываем изображение для лучшего результата. Первая обработка — это пороговая сегментация. Затем необходимо обработать контур нашего объекта с помощью математической морфологии. Его получают путем вычитания эрозии изображения из его расширения. Эрозия сжимает яркие области изображения, а дилатация расширяет их. Морфологический градиент представляет собой разницу между ними. Следующим шагом находим маркеры объектов, чтобы можно было реализовать метод водораздела. Конечным преобразованием является выделение контура объекта на изображении.
Выводы. В ходе сравнения можно выделить, что пороговая обработка самая легкая в программной реализации и математической. Однако, при ее одиночном использовании, она плохо справляется со сложными объектами и подходит больше для сегментации текстов или объектов, сильно отличающихся от фона. Этот метод лучше использовать в качестве начальной обработки изображения перед другим методом.
Метод кластеризации хорошо выделяет кластеры на сложных изображениях. При этом можно варьировать количество кластеров, подбирая необходимый вид изображения. Этот метод хорошо работает для начальной обработки изображения.
Метод водораздела в сочетании с пороговой и морфологической обработкой выглядит наиболее полно, при этом видно, что он еще довольно сильно не доработан. Если использовать этот метод в совокупности с предыдущими, можно довольно четко выделить необходимый объект.
About the authors
Самарский университет
Author for correspondence.
Email: daria180301@gmail.com
студентка
Russian Federation, СамараReferences
- pylot.me [Электронный ресурс]. Лукьянов А. Обработка изображений с помощью библиотеки Pillow в Python. Режим доступа: https://pylot.me/article/33-obrabotka-izobrazhenij-s-pomoshyu-biblioteki-pillow-v-python/
- www.youtube.com [Медиа-ресурс]. Симаков В. Кластеризация изображений. Режим доступа: https://www.youtube.com/watch?v=fg_NzaQgA5w
- www.geeksforgeeks.org [Электронный ресурс]. Image segmentation with watershed algorithm — OpenCV Python. Режим доступа: https://www.geeksforgeeks.org/image-segmentation-with-watershed-algorithm-opencv-python/
- Тумаков Д.Н., Каюмов З.Д., Егорчев А.А., и др. Алгоритмические методы сегментации изображений. Казань: Издательство Казанского университета, 2023. 40 с.
- Лукашик Д.В. Анализ современных методов сегментации изображений // Экономика и качество систем связи. 2022. № 2. С. 57–65. EDN: OGMOGV
- Hu L., Qi C., Wang Q. Spectral-Spatial Hyperspectral Image Classification Based on Mathematical Morphology Post-Processing // Procedia Comput Sci. 2018. Vol. 129. P. 93–97. doi: 10.1016/j.procs.2018.03.054
- Галкин С.А., Селяев А.А. Исследование алгоритмов пороговой обработки изображений для решения задачи выделения объекта в последовательности видеокадров // IEEE transactions on image processing. 1996. Т. 5, № 8. С. 1266–1271.
Supplementary files
