Авторы: Жармухамбет Миржан Ерланулы, Таныкпаева Балауса Ерденовна
Должность: магистр естественных наук, старший преподаватель
Учебное заведение: Костанайсий Государственный Университет им. А. Байтурсынова
Населённый пункт: Костанай
Наименование материала: Статья
Тема: Сегментация цветных изображений на основе кластеризации по методу k - средних.
Раздел: высшее образование
Сегментация цветных изображений на основе кластеризации по
методу k-средних.
Сегментация изображения представляет собой разделение или разбиение
изображения
на
области
по
сходству
свойств
их
точек.
Наиболее
часто
сегментацию проводят по яркости для одноцветного изображения и цветовым
координатам для цветного изображения. Применяется также сегментация,
основанная
на
контурах,
сегментация,
при
которой
в
каче стве
разделительного признака используется текстура и сегментация по форме.
Существует возможность просмотра шести основных цветов изображения:
фоновый
цвет,
красный,
зеленый,
пурпурный
(фиолетовый),
желтый
и
красно-фиолетовый. Визуально эти цвета очень легко различаются между
собой. Цветовое пространство L*a*b* (еще известное как CIELAB или CIE
L*a*b*) позволяет четко отмечать эти визуальные различия.
Цветовое пространство L*a*b* получено на основе трехцветных значений
CIE
XYZ.
Пространство
L*a*b*
включает
информацию
о
значении
интенсивности 'L*', значении цветности 'a*' (показывает какой цвет выбран
на красно-зеленой оси) и значении цветности 'b*' (показывает какой цвет
выбран на голубо-желтой оси).
При анализе цветов используются окрестности небольших размеров и при
их вычислении берется усреднение в пространстве L*a*b*. Эти цветовые
метки можно использовать при классификации каждого пикселя.
Каждый цветовой маркер представляется некоторыми значениями 'a*' и 'b*'.
Поэтому
существует
возможность
классификации
каждого
пикселя
изображения на основе вычисления евклидового расстояния между пикселем
и цветовым маркером. Минимальное евклидовое расстояние соответствует
минимальному расстоянию между рассматриваемыми пикселями и маркером.
Например, если дистанция между двумя пикселями и красным цветовым
маркером является минимальной, то пиксели будут отмечены как красные.
Сегментация объектов
Д л я
н а ч а л а
н е м н о г о
т е о р и и :
Сегментация
—
это
процесс
разделения
цифрового
изображения
на
несколько сегментов (множеств пикселей). Проще говоря, это вещь, которая
позволяет
определить
какие
пиксели
из
данного
множества
относятся
к
F e r r a r i ,
а
к а к и е
к
P e u g e o t .
Очень
эффективным
с
точки
зрения
вычислительных
ресурсов
является
использование
для
сегментации
методов
кластерного
анализа.
Суть
кластеризации состоит в том, что все исходные объекты (в данном случае
пиксели
)
разбиваются
на
несколько
не
пересекающихся
групп
таким
образом,
чтобы
объекты,
попавшие
в
одну
группу,
имели
сходные
характеристики,
в
то
время
как
у
объектов
из
разных
групп
эти
характеристики
должны
значительно
отличаться.
Полученные
группы
называются кластерами. Исходными значениями в простейшем способе для
кластеризации являются координаты пикселя (x, y), в более сложных случаях,
например для полутоновых изображений, используется трехмерный вектор
( x ,
y ,
I ( x ,
y )
) ,
г д е
I ( x ,
y )
—
г р а д а ц и и
с е р о г о
и пятимерный вектор если используется RGB.
Метод к-средних
Центроид — точка которая является центром кластера.
k-средних (k-means) — наиболее популярный метод кластеризации.
Алгоритму широко отдается предпочтение из-за его простоты реализации,
большой скорости (а это очень важно при работе с видео).
Действие алгоритма таково, что он стремится минимизировать суммарное
квадратичное отклонение точек кластеров от центров этих кластеров. В
простонародье говоря, это итеративный алгоритм, который делит данное
множество пикселей на k кластеров точки, которых являются максимально
приближенными к их центрам, а сама кластеризация происходит за счет
смещения этих же центров. Такой себе принцип разделяй и властвуй.
Также следует оговорить то, что метод к-средних очень чувствительный к
шуму, который может существенно исказить результаты кластеризации.Так
что в идеале, перед кластеризацией, нужно прогнать кадры через фильтры
предназначиные для его уменьшения.
Вот собственно сам принцип простейшей кластеризации методом к-средних:
1.
Надо выбрать из множества k пикселей те пиксели, которые будут
центроидами соответствующих k кластеров.
Выборка начальных центроидов может быть как рандомной так и по
определенному алгоритму.
2.
Входим в цикл, который продолжается до тех пор, пока центроиды
кластеров не перестанут изменять свое положение.
3.
Обходим каждый пиксель и смотрим, к какому центроиду какого
кластера он является близлежащим.
4.
Нашли близлежащий центроид? Привязываем пиксель к кластеру этого
центроида.
5.
Перебрали все пиксели? Теперь нужно высчитать новые координаты
центроидов k кластеров.
6.
Теперь проверяем координаты новых центроидов. Если они
соответственно равны предыдущим центроидам — выходим из цикла,
если нет возвращаемся к пункту 3.
Преобразование изображения из цветовой системы RGB в цветовую
систему L*a*b*.
Какое количество цветов видно на изображении, когда не принимать во
внимание возможность комбинации яркостей? На самом деле их три: белый,
голубой и розовый. Следует отметить различия этих цветов между собой.
Цветовое пространство L*a*b* (оно еще известно как CIELAB или CIE
L*a*b*) дает возможность различать эти визуальные различия.
Цветовое пространство L*a*b* получено на основе трехцветных значений
CIE XYZ. Пространство L*a*b* включает информацию о значении
интенсивности 'L*', значении цветности 'a*', которое показывает какой цвет
выбран на красно-зеленой оси и значение цветности 'b*' показывает какой
цвет выбран на голубо-желтой оси. Вся информация о цветах содержится в
значениях 'a*' и 'b*'. Оценить разницу между двумя цветами можно с
использованием евклидового расстояния.
Преобразуем изображение в цветовое пространство L*a*b* с использованием
функций makecform и applycform.
Классификация цветов в пространстве 'a*b*' с использованием
кластеризации (метод k-средних).
Кластеризация приводит до разделения объектов на группы. Кластеризация
методом k-средних приводит также к локализации объектов в пространстве.
Поиск разделения, т.е. какой объект к какому классу принадлежит,
происходит на основе анализа метрического расстояния между объектами.
Далее на основании информации о цветах в пространстве 'a*b*', каждому
пикселю объекта присваивается значение 'a*' и 'b*'. Используем
кластеризацию методом k-средних для разделения объектов на три кластера.
Для этого используем евклидовую метрику.
Присвоение меток каждому пикселю изображения на основе метода k-
средних.
Для каждого объекта на исходном изображении метод k-средних возвращает
индекс соответствующего кластера. Значение параметра cluster_center,
которое получено в результате применения метода k-средних будет
использовано при дальнейшей демонстрации метода.