Scientific journal
Scientific Review. Technical science
ISSN 2500-0799
ПИ №ФС77-57440

SEGMENTATION OF PORTRAIT IMAGES ON THE BASIS OF THE SLIC ALGORITHM

Vorontsov A.N. 1 Rybkin S.V. 1
1 Kaluga branch of the Federal State Budget Education Institution of Higher Education «Moscow State Technical University named after N.E. Bauman (National Research University)»
Проведен общий анализ компьютерного зрения. Рассмотрены варианты анализа изображения и обосновано использование суперпикселей для анализа изображения. Кратко рассмотрены дивизионные, агломеративные и дискриминационные алгоритмы разбиения изображения на суперпиксели. Подробно рассмотрен дискриминационный алгоритм SLIC. Проведен обзорный анализ реализации алгоритма SLIC для языка matlab. В процессе обзорного анализа были выявлены и пояснены характерные особенности реализации алгоритма. Проведен эксперимент по подбору параметров в рамках решения задачи тегирования частей портретных изображений. В рамках эксперимента на основе 10 портретных изображений было сгенерировано 4200 конечных изображений, разбитых на суперпиксели. Для каждого портретного изображения было сгенерировано 420 конечных изображений с уникальным набором параметров. Эмпирическим путем была произведена выборка наиболее удачных результатов работы алгоритма. Проведен статистический анализ параметров изображений, набор которых включает в себя ожидаемое количество суперпикселей в результате, коэффициент веса между пространственной и цветовой компонентой, включение небольших групп пикселей в состав ближайшего суперпикселя, способ вычисления центра кластера. Сделаны выводы о влиянии фона изображения на результат алгоритма. Выведен рекомендуемый набор параметров для решения поставленной задачи.
A general analysis of computer vision is carried out. The variants of image analysis are considered and the use of super pixels for image analysis is justified. Briefly considered are divisional, agglomerative and discriminatory algorithms for splitting an image into super pixels. The discrimination algorithm SLIC is considered in detail. An overview analysis of the implementation of the SLIC algorithm for matlab is performed. In the course of the review, the characteristic features of the implementation of the algorithm were revealed and explained. The experiment on selection of parameters within the framework of the solution of the task of tagging parts of portrait images was carried out. In the experiment, based on 10 portrait images, 4200 final images were generated, divided into super pixels. For each portrait image, 420 final images with a unique set of parameters were generated. Empirically, the most successful results of the algorithm were selected. A statistical analysis of image parameters is performed, the set of which includes the expected number of super pixels, resulting in a weight coefficient between the spatial and color component, the inclusion of small groups of pixels in the nearest super pixel, the calculation of the cluster center. Conclusions are made about the effect of the background of the image on the result of the algorithm. The recommended set of parameters for solving the set task is derived.
super pixels
SLIC
computer graphics
image processing
color space Lab
statistics

Компьютерное зрение является одной из наиболее перспективных и востребованных областей применения вычислительной техники.

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

Изображение готовят разными способами, однако наиболее распространенным из них является сегментация, т.е. разбиение изображения на относительно однородные сегменты [1, 2].

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

Исходя из вышесказанного, можно отметить, что основным требованием к сегментам (или, как их чаще называют, «суперпикселям») является следующее: пиксели, которые включены в суперпиксель, должны быть схожи между собой и в большей степени должны отличаться от пикселей из другого сегмента. В таком случае необходимо использовать алгоритм, который по определенной закономерности будет выяснять «близость» пикселей друг к другу и при необходимости – относить их в разные сегменты [3].

Такие алгоритмы можно разделить на следующие три больших группы: Дивизионные (разделяющие); Агломеративные (объединяющие); Дискриминационные [4].

Отметим, что в первых двух группах изображение обычно представляют в виде ненаправленного взвешенного графа G = (V, E), где V – вершины, а E – грани, соединяющие смежные пиксели. Мерой сходства вершин i и j является вес грани w(i, j).

Дивизионные алгоритмы изначально представляют изображение как один большой суперпиксель, а затем делят его на кластеры. С другого конца подходят к решению задачи агломеративные, которые считают, что в изображении изначально каждый пиксель является суперпикселем, а затем объединяют их. Несмотря на разницу в подходе, недостаток у этих видов алгоритма общий – необходимо учитывать, до какой глубины у нас идет разделение/объединение пикселей в суперпиксели.

Несколько отличным путем идут дикриминационные алгоритмы. Изначально они разбивают изображения на некоторые кластеры, а уже потом итеративно уточняют их границы. К этой группе алгоритмов принадлежит и алгоритм SLIC (Simple Linear Iterative Clustering).

Алгоритм SLIC относится к классу дискриминационных алгоритмов. Вначале он формирует большое количество кластеров в пятимерном пространстве. Это пространство labxy. Оно состоит из трех координат цвета – lab и двух координат пространства – xy. Затем он проходит по пикселям и вычисляет их расстояние до центра кластеров. Пиксель приписывается к ближайшему центру, а затем центры тоже уточняются и т.д. В результате получаем k кластеров со сложной формой. В данной статье рассматривается реализация алгоритма SLIC для языка matlab, предложенная в статье [5].

Входными параметрами для данной реализации являются: само исходное изображение, k – число суперпикселей, на которое необходимо будет разбить изображение (в алгоритме предусмотрено дальнейшее уточнение количества суперпикселей для формирования устойчивой сетки), m – это весовой коэффициент, связывающий цветовую и пространственную составляющие), в данной реализации рекомендуется ставить значение 10, допустимо выставление значений в диапазоне 5...40, seRadius в случае, если область меньше указанного значения, то она присоединяется к ближайшему суперпикселю (данную опцию можно отключить. Рекомендуются значения 1 или 1.5), colopt – значение этого параметра показывает то, каким образом должен вычисляться центр кластера, mw – размер окна для медианной фильтрации.

В качестве результата своей работы алгоритм возвращает следующее: L – размеченное изображение по заданному количеству суперпикселей (1...k), Am – матрица сопряженности сегментов (Am(i,j) – показывает, что сегменты i и j смежные/связные или нет).

Атрибуты суперпикселя хранятся в структуре Sp: значения цветовых компонент – L,a,b; значения строки и столбца – r,c; стандартные отклонения цветовых компонент – stdL, stda, stdb; число включенных пикселей – N; список ребер, который данная реализация не использует – edges; d – расстояние от приписанного центра суперпикселя.

В данной реализации были использованы предложения Радхакришны Ачанты [5] – суперпиксели инициализируются вместо четырехугольной сетки в шестиугольной, также в реализации нет смещений начальной позиции кластера, поскольку после первого обновления центров кластера это будет неактуально.

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

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

С помощью ожидаемого числа суперпикселей, которое передавалось во входных параметрах, рассчитаем расстояние между центрами кластеров в сетке, а затем получим количество узлов по вертикали (при этом нужно учесть, что количество узлов в четной и нечетной колонке будет различным из-за шестиугольной сетки). Теперь можно пересчитать расстояние между центрами сетки (S). То же самое сделаем со строками. Теперь, когда известно среднее количество ячеек в столбце и строке, их можно перемножить и получить верное количество суперпикселей.

Теперь инициализируем следующие переменные: матрицу C с информацией о центрах кластеров размерностью 6хk (где k – это количество суперпикселей), здесь 1:3 отводится для значений Lab, 4:5 – строка и столбец центра, а 6 – количество пикселей. Метки пикселей находятся в матрице размерностью, совпадающей с размером изображения L. Матрица d будет содержать расстояния пикселей от центров кластеров.

Затем производится инициализация кластеров, после чего запускается непосредственно сам алгоритм. В данной реализации предусмотрено 10 итераций алгоритма, который запускается при этом для каждого кластера. При запуске алгоритма вокруг суперпикселя происходит выделение фрагмента изображения, после чего внутри него рассчитывается расстояние от каждого пикселя до центра кластера (при этом в реализации предусмотрено вычисление расстояния двумя разными способами). Если расстояние до центра данного кластера меньше, чем расстояние до центра другого кластера, то обновляем информацию.

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

Набор входных параметров для функции расчета расстояния до центра кластера: C – рассматриваемый кластер, im – подызображение вокруг кластера, r1 и c1 – строка и столбец верхнего левого угла подызображения, S – размер сетки, m – весовой коэффициент, который связывает цвет и координату. Функция возвращает матрицу расстояний от каждого пикселя до центра кластера.

В рамках исследования поставлена задача тегирования сегментов портретных изображений (волосы, кожа, остальное) с использованием нейронных сетей [6, 7], одной из частей создаваемой модели является алгоритм сегментации [8]. С помощью алгоритма SLIC планируется сегментировать портретные изображения [4], однако для этого необходимо выбрать параметры, с которыми можно будет запускать алгоритм и получать результат, подходящий для дальнейшего использования.

Для решения данной задачи было выбрано 10 портретных изображений, и для каждого из них алгоритм сгенерировал 420 вариантов разбиения на сегменты. После этого из каждого множества нами были отобраны наиболее удачные результативные изображения, в результате отбора мы получили 42 изображения. В первую очередь обратим внимание на количество суперпикселей в данной подборке (табл. 1).

Таблица 1

Распределение суперпикселей в отобранных изображениях

Количество
суперпикселей в изображении

10

20

30

40

50

60

70

Число изображений с этим параметром

2

4

3

6

13

9

5

 

Интересным является тот факт, что наилучшим значением является количество суперпикселей, равное 50–13 отобранных картинок имеют данное количество суперпикселей, при этом большее количество пикселей дает несколько более худший результат (9 и 5 изображений), а меньшее – результат ухудшается в два раза (6 изображений). Таким образом, мы выявили оптимальное количество суперпикселей для портретного изображения – 50. Различия можно увидеть на рис. 1.

Теперь необходимо подобрать параметр m – вес между пространственной и цветовой компонентой. На этот раз мы будем рассматривать исключительно изображения с количеством суперпикселей 50 (табл. 2).

vor1.tif

a) б) в)

Рис. 1. Различия изображения с разным количеством суперпикселей:
a) 40 суперпикселей; б) 50 суперпикселей; в) 60 суперпикселей

Таблица 2

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

m

5

10

15

20

30

количество изображений

2

3

3

3

2

 

Как мы видим из таблицы, равное количество изображений имеет три веса – 10, 15 и 20. Для нашей цели мы возьмем средний вес (15), но в дальнейшем анализе будем учитывать и другие веса. На рис. 2 мы можем наблюдать сравнения изображений с различными весами.

Рассмотрим значение величины seRadius, регионы с размером меньше seRadius – присваиваются ближайшему суперпикселю. Обратим внимание на то, что при использовании входного параметра seRadius = 0 опция не используется.

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

Таблица 3

Распределение seRadius

m

seRadius

10

15

20

Сумма:

0

3

2

2

7

1

0

1

1

2

1,5

0

0

0

0

 

Рассмотрим статистику по способу вычисления центра кластера – mean/median, но при таком количестве суперпикселей явной разницы замечено не было (см. рис. 4), вследствие чего в качестве метода вычисления будем использовать mean.

vor2.tif

a) б) в)

Рис. 2. Изображения с 50 суперпикселями и весом между цветовой и пространственной компонентой, равным: a) 10; б) 15; в) 20

vor3.tif

a) б) в)

Рис. 3. Изображения с seRadius равным: a) 0; б) 1; в) 1,5

vor4.tif

a) б)

Рис. 4. Вычисление центров кластеров при помощи: a) mean; б) median

vor5.tif

a) б)

Рис. 5. Разница между распределением суперпикселей на изображениях
с однородным и разнородным фоном

Исходя из нашего эксперимента, мы определили следующий набор рекомендуемых параметров: 50 суперпикселей, вес между цветовой и пространственной компонентой – 10, seRadius = 0, центр кластера вычисляется с помощью mean.

Применим ко всем 10 фото обработку с заданными параметрами. Как можно заметить, в случае с однородным фоном результат лучше, чем в случае с фоном, на котором расположено большое количество объектов, поскольку они «перетягивают» на себя суперпиксели (рис. 5). Кроме того, из-за нехватки суперпикселей на лице некоторые суперпиксели захватывают часть волос и лица.

Если рассматривать средний результат по фото, то можно отметить, что он соответствует поставленной задаче: в большей части случаев есть возможность отделить суперпиксели, соответствующие коже, волосам и остальному.