Авторы: Башков Е.А., Вовк О.Л
Источник: V международная конференция «Интеллектуальный анализ информации ИАИ-2005». – Киев, 2005. - с. 50-59.
В работе предлагается статистический иерархический агломератив-ный алгоритм для выделения подобных областей изображений по цветовым характеристикам. Отличительной особенностью рассматриваемого алгоритма является битовая маска взаимосвязей и рангов цветовых признаков. Также в статье приведены обоснования возможности применения данного алгоритма для кластеризации изображений на регионы.
Повышенный интерес научных исследователей в сфере компьютерного  зрения к анализу оцифрованных изображений делает все более актуальной проблему  выделения областей изображений по цветовому подобию. В общем виде данная  проблема представляет собой задачу кластеризации – распределения пикселей  изображений на несколько групп, однородных по цветовым характеристикам.  Полученные группы обычно представляет собой объекты (некоторые области)  изображений. Решение такой задачи актуально как при поиске изображений в электронных  коллекциях так и при анализе визуальной информации (к примеру, при медицинской  диагностике).
Все методы кластеризации изображений можно условно разделить  на две группы: статистические методы кластеризации [1] и методы кластеризации,  основанные на выделении перепадов яркости [2].
Цель предлагаемой работы – на основании статистических  технологий кластеризации  разработать  алгоритм выделения значимых областей (регионов, кластеров). В качестве основного  применения рассматриваемого в работе алгоритма предполагается контекстный поиск  изображений в базах данных [3].

Рис. 1. Пример кластеризации изображения
Таблица 1. Маска рангов компонентов пространства RGB
| Старшие биты | |||
| компонент | предел изменения компонента | ранг | маска | 
| B | [xl …GL] | низкий | 0 0 0 0 0 0 0 0 1 | 
| (GL…GH] | средний | 0 0 0 0 0 0 0 1 0 | |
| (GH… xh] | высокий | 0 0 0 0 0 0 1 0 0 | |
| G | [xl …GL] | низкий | 0 0 0 0 0 1 0 0 0 | 
| (GL…GH] | средний | 0 0 0 0 1 0 0 0 0 | |
| (GH… xh] | высокий | 0 0 0 1 0 0 0 0 0 | |
| R | [xl …GL] | низкий | 0 0 1 0 0 0 0 0 0 | 
| (GL…GH] | средний | 0 1 0 0 0 0 0 0 0 | |
| (GH… xh] | высокий | 1 0 0 0 0 0 0 0 0 | |
Таблица 2. Маска взаимосвязей компонентов пространства RGB
| Младшие биты | ||
| компоненты | связь цветовых характеристик | маска | 
| R и G | R>G | 0 0 0 0 0 0 0 0 1 | 
| R=G | 0 0 0 0 0 0 0 1 0 | |
| R<G | 0 0 0 0 0 0 1 0 0 | |
| R и B | R>B | 0 0 0 0 0 1 0 0 0 | 
| R=B | 0 0 0 0 1 0 0 0 0 | |
| R<B | 0 0 0 1 0 0 0 0 0 | |
| G и B | G>B | 0 0 1 0 0 0 0 0 0 | 
| G=B | 0 1 0 0 0 0 0 0 0 | |
| G<B | 1 0 0 0 0 0 0 0 0 | |
Кроме того, предлагается “размывать” границы, как отношений,  так и уровней, с помощью введения некоторой погрешности маски – eps. 
                          Приведем анализ рангов цветовых характеристик. К примеру,  пусть X1=x1, тогда:
                          если x1<=(GL+eps), то Х1 имеет низкий уровень;
                          если x1>=(GH– eps), то Х1 имеет высокий уровень;
                          если (х1>(GL– eps) или х1<(GН+eps)), то Х1 имеет  средний уровень.
                          Кроме того, необходимо так подбирать eps, чтобы было  удовлетворено условие: (GL+ eps)<(GН– eps).
                          В отношении между компонентами X1 и Х2 присутствует связь, к  примеру  “>”, в случае, если  удовлетворяется условие X1 > Х2; кроме того, предполагается, что если выполняется  условие X1 < (Х2+ eps), то между X1 и Х2 существует и связь “=”. Аналогичными  являются рассуждения и для отношения “<”. 
                          Таким образом, стоит отметить, что как пара компонентов  может иметь одновременно две связи (к примеру, больше и равно), так и отдельный  компонент может иметь два уровня (к примеру, низкий и средний).
                          Разработанный иерархический агломеративный алгоритм предназначен  для кластеризации изображений в трехмерном цветовом пространстве RGB (т.е. для  каждой точки изображения вектор характеристик содержит свойства красного,  зеленого и синего компонентов) и состоит из двух основных этапов.
                          1. Этап полной связи. Предполагается, что изначально каждый  пиксель изображения представляет собой отдельный кластер (свойство агломеративности);  на этом шаге происходит группировка точек изображения в кластеры с одинаковыми  битовыми масками. Т.е. для каждого пикселя изображения формируется маска  взаимосвязей и рангов, затем пиксели с различными масками разносятся в разные  кластеры (соответственно, кластеры с одинаковыми масками объединяются в один  кластер). Данный этап предназначен для ускорения процесса кластеризации изображения.  Для формального описания рассмотренного этапа введем следующие классы,  переменные и методы:
                          класс Cluster (описание его переменных и методов – рис. 2.);
                          класс Color, объекты которого отражают цветовые характеристики  в пространстве RGB;
                          ArrMask – массив битовых масок взаимосвязей и рангов  кластеров. Для данного массива предполагается наличие методов Добавить(маска  элемента) и Удалить(маска элемента) элемент;
                          ArrColors – массив цветов анализируемого изображения,  элементы массива типа Color;
                          Np – количество точек анализируемого изображения;
                          ArrCluster – массив кластеров изображения, элементы массива  типа Cluster. Для данного массива предполагается наличие методов Длина(), Добавить(кластер),  Удалить(кластер), ПоискМаски(маска кластера). Последний  метод предполагает возращение булевого  результата ({Да, Нет}) – есть ли в массиве элемент с заданной параметром маской;
                          CurrMask – рассматриваемая маска;
                          CurrCluster – текущий кластер (объект типа Cluster);
                           i, j – переменные цикла.
 
 
Рис.2. Описание класса Cluster
 
Рис.3. Блок-схема этапа полной связи
Этап одиночной связи. Для полученных на предыдущем этапе  кластеров строится матрица близости (расстояний) между кластерами. В качестве  расстояния между кластерами используется среднее Евклидово расстояние между всеми  парами точек, входящих в кластеры, расстояние между которыми рассчитывается. В  полученной матрице происходит поиск наиболее “близких” кластеров (т.е.  минимумов матрицы близости). Если расстояния между несколькими парами кластеров  являются одинаковыми и минимальными, то, в первую очередь, в качестве “близких”  кластеров, выбираются кластеры с минимальной площадью. Найденные “близкие”  кластеры объединяются, образуя новые кластеры, для которых производится  перерасчет центров. Из матрицы расстояний удаляются строки и столбцы,  соответствующие объединенным кластерам, и добавляется строка и столбец,  соответствующие полученному кластеру. Причем, объединение кластеров с  минимальным расстоянием матрицы близости производится только при выполнении  условия “сравнимости” масок кластеров; в противном случае процесс кластеризации  заканчивается. Обозначим маски кластеров,   претендующих  на  объединение – M1 и М2. Тогда основные стадии  анализа выполнения условия “сравнимости” масок следующие: 
                          расчет результирующей маски объединения: Mr=M1&M2  (& – побитовое умножение);
                          установка начального значения количества эквивалентных бит  анализируемых масок: Kb=0;
                          анализ всех соответствующих триад масок Mr, M1 и М2 в  отдельности: 
                          Если ((Mr & 7) И  НЕ((M1  & 2 ИЛИ M2 & 2)  И
                           ((M1 & 4 И M2 & 1) ИЛИ (M2 & 4 И M1  & 1))))
                          То Kb= Kb+1
                          переход к следующей триаде масок: Mr= Mr>>3, M1= M1>>3  и M2= M2>>3;
                          возращение к анализу следующей триады масок.
                          анализ полученного числа эквивалентных битов:
                          Если (Kb>=Kopt) (Kopt подбирается экспериментально) 
                          То  условие  “сравнимости” масок выполняется;
                          Иначе условие “сравнимости ” масок не выполняется.
                          Т.е. при анализе триад масок количество эквивалентных бит  инкрементируется, если конъюнкция масок кластеров содержит хотя бы одну единицу  (Mr &  7), причем пара триад рассматриваемых масок не должна быть двух следующих типов  (НЕ ((M1 & 2 ИЛИ M2 & 2) И ((M1 & 4 И M2 & 1) ИЛИ (M2 & 4 И  M1 & 1)))): 1) (1 1 0) и (0 1 1); 2) (0 1 1) и (1 1 0).
              Для  наглядного описания этапа одиночной связи c помощью блок-схемы (рис. 4) кроме  обозначений, введенных для описания предыдущего этапа, необходимо описание  следующих:
                          D – матрица расстояний между кластерами, для которой  предполагается наличие методов: ОбъединениеКластеров(индекс кластера1,  идекскластера2) (в основе метода – удаление строк и столбцов матрицы,  соответствующих кластеру1 и кластеру 2, добавление новой строки и столбца,  соответствующих кластеру, полученному в результате объединения кластера 1 и  кластера2; соответствующие изменения происходят и массиве ArrCluster), ПоискМинимумов(нижний  предел минимума) (возвращает массив минимумов матрицы D, элементы которой  являются координатами строк и столбцов минимальных элементов; при поиске  диагональные элементы не рассматриваются – они нулевые; нижний предел отражает  границу, выше которой минимумы анализируются, необходим для рассмотрения  минимумов только между “сравнимыми” кластерами). Элементы матрицы D (с учетом  обозначений введенных выше) рассчитываются как:
  
  
  
 
   (1)
 (1)

Рис.4. Блок-схема этапа одиночной связи
  
Рис.5. Зависимость энтропии изображений от числа кластеров