Что такое суперпиксель?

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

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

Суперпиксели в контексте сегментации изображений

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

  • Медицинская визуализация
  • Обнаружение объекта (обнаружение лиц, пешеходов)
  • Задачи распознавания (распознавание лица, отпечатков пальцев)
  • Видеонаблюдение и др.

Алгоритм SLIC (простая линейная итеративная кластеризация) для генерации суперпикселей

Этот алгоритм генерирует суперпиксели путем кластеризации пикселей на основе их цветового сходства и близости в плоскости изображения. Это делается в пятимерном пространстве [labxy], где [lab] - это цветовой вектор пикселя в цветовом пространстве CIELAB, а xy - позиция пикселя. Нам необходимо нормализовать пространственные расстояния, чтобы использовать евклидово расстояние в этом пространстве 5D, потому что максимально возможное расстояние между двумя цветами в пространстве CIELAB ограничено, тогда как пространственное расстояние в плоскости xy зависит от размера изображения. Поэтому для кластеризации пикселей в этом 5D пространстве была введена новая мера расстояния, учитывающая размер суперпикселей, которая описана ниже.

Измерение расстояния

Некоторые полезные обозначения-

Этот алгоритм принимает в качестве входных данных желаемое количество суперпикселей примерно одинакового размера K. В начале алгоритма выбираются K центров кластеров суперпикселей Cₖ = [lₖ, aₖ, bₖ, xₖ, yₖ] с k = [1, K] с регулярными интервалами сетки S. Поскольку пространственная протяженность любого суперпикселя составляет приблизительно S² (приблизительная площадь суперпикселя), можно с уверенностью предположить, что пиксели, связанные с этим центром кластера, лежат в пределах области 2S × 2S вокруг суперпикселя. центр на плоскости xy. Нормализованная мера расстояния (Dₛ), которая будет использоваться в пространстве 5D, определяется как:

Dₛ = dₗₐᵦ +( m/S)*dₓᵧ …. (eq 1)

где dₗₐᵦ = √ ((lₖ − lᵢ) ² + (aₖ − aᵢ) ² + (bₖ − bᵢ) ²), dₓᵧ = √ ((xₖ − xᵢ) ² + (yₖ − yᵢ) ²), а Dₛ - сумма лабораторного расстояния (dₗₐᵦ) и расстояния в плоскости xy (dₓᵧ), нормированного на интервал сетки S. В Dₛ вводится переменная m, позволяющая контролировать компактность суперпикселя. Чем больше значение m, тем компактнее кластер. Это значение может быть в диапазоне [1,20].

Алгоритм

Этот алгоритм начинается с выборки K регулярно расположенных центров кластера и их перемещения в начальные местоположения, соответствующие самой низкой позиции градиента в окрестности 3 × 3 (это делается для того, чтобы не размещать их на краю и уменьшить шансы выбора зашумленного пикселя) . Градиенты изображения вычисляются как:

G(x,y) = ‖I(x+ 1,y)−I(x−1,y)‖²+‖I(x,y+ 1)−I(x,y−1)‖²

где I (x, y) - лабораторный вектор, соответствующий пикселю в позиции (x, y), а ‖.‖ - норма L2. При этом учитывается информация как о цвете, так и об интенсивности. Каждый пиксель изображения связан с ближайшим центром кластера, область поиска которого перекрывает этот пиксель. После того, как все пиксели связаны с ближайшим центром кластера, новый центр вычисляется как средний вектор labxy всех пикселей, принадлежащих кластеру.

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

Алгоритм SLIC можно резюмировать следующим образом:

Моя реализация алгоритма SLIC на python находится в Репозитории GitHub. Некоторые результаты моей реализации (с K = 100 и m = 20) -

Ссылки

[1] http://www.kev-smith.com/papers/SLIC_Superpixels.pdf

[2] https://www.youtube.com/watch?v=-hmUbB-Y8R0

[3] https://en.wikipedia.org/wiki/Image_segmentation

[4] https://github.com/BIDS/BSDS500 (для набора данных сегментации изображений)