Muthukrishnan R, Radha M. — Алгоритмы выделения контуров для сегментации изображений. Сегментация в цветовом пространстве RGB

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство образования и науки РФ

Рязанский государственный радиотехнический университет

Кафедра ИИБМТ

Курсовая работа

Методы обработки изображений. Сегментация

Выполнил ст. гр. 432М:

Алёшин С.И.

Проверил доц. каф. ИИБМТ:

Каплан М.Б.

Рязань 2014

Введение

1. Представление изображений

3. Форматы изображений

4. Типы изображений

5.1 Изменение контраста

5.2 Сглаживание шумов

5.3 Подчеркивание границ

5.4 Медианная фильтрация

5.5 Сегментация изображений

5.5.3 Выделение контуров

5.5.7 Методы разреза графа

6. Описание функций

7. Тестирование алгоритма

Заключение

Приложение

Введение

Ещё в середине XX века обработка изображений была по большей части аналоговой и выполнялась оптическими устройствами. Подобные оптические методы до сих пор важны, в таких областях как, например, голография. Тем не менее, с резким ростом производительности компьютеров, эти методы всё в большей мере вытеснялись методами цифровой обработки изображений. Методы цифровой обработки изображений обычно являются более точными, надёжными, гибкими и простыми в реализации, нежели аналоговые методы. В цифровой обработке изображений широко применяется специализированное оборудование, такое как процессоры с конвейерной обработкой инструкций и многопроцессорные системы. В особенной мере это касается систем обработки видео. Обработка изображений выполняется также с помощью программных средств компьютерной математики, например, MATLAB, Mathcad, Maple, Mathematica и др. Для этого в них используются как базовые средства, так и пакеты расширения Image Processing.

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

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

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

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

В данной работе изложены основные методы цифровой обработки изображений. В особой мере уделено внимание методам сегментации изображений. Реализована программа для одного из методов сегментации с помощью пакета прикладных программ MatLAB.

1. Представление изображений

Принципиальными вопросами в теории обработки изображений являются вопросы: формирования, ввода, представления в компьютере и визуализации. Форму поверхности можно описать в виде функции расстояния F(x, y) от поверхности до точки изображения с координатами x и y. Учитывая, что яркость точки на изображении зависит исключительно от яркости соответствующего участка поверхности, то можно считать, что визуальная информация с определенной степенью точности отражает состояние яркости или прозрачности каждой точки. Тогда под изображением понимается ограниченная функция двух пространственных переменных f(x, y), заданная на ограниченной прямоугольной плоскости Oxy и имеющая определенное множество своих значений. Например, черно-белая фотография может быть представлена как f(x, y)?0, где 0?x?a, 0?y?b и f(x, y) - яркость (иногда называемая оптической плотностью или степенью белизны) изображения в точке (x, y); a - ширина кадра, b - высота кадра.

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

Ввод изображений в компьютер неизбежно связан с дискретизацией изображений по пространственным координатам x и y и квантованием значения яркости в каждой дискретной точке. Дискретизация достигается с помощью координатной сетки, образованной линиями, параллельными осям x и y декартовой системы координат. В каждом узле такой решетки делается отсчет яркости или прозрачности носителя зрительно воспринимаемой информации, которая затем квантуется и представляется в памяти компьютера. Элемент изображения, полученной в процессе дискретизации изображения, называется пиксел. Для качественного представления полутонового изображения достаточно 28 = 256 уровней квантования, т.е. 1 пиксел изображения кодируется 1 байтом информации.

Основными характеристиками изображений являются:

1. Размер изображения;

2. Глубина цвета;

3. Разрешение.

2. Кодирование цветных изображений

Цвет - это феномен, который является результатом взаимодействия света, объекта и прибора (наблюдателя).

Экспериментально установлено, что любой цвет можно представить в виде суммы определенных количеств трех линейно независимых цветов.

Три линейно независимых цвета называют первичными цветами.

Они определяют цветовую координатную систему (ЦКС) или цветовую схему, т.е. набор первичных цветов для получения остальных цветов.

Цветовые схемы подразделяются на две разновидности: цветовые схемы от излучаемого света и от отраженного света.

Система RGB.

Ее первичными цветами являются красный (Red) с длиной волны 700 нм, зеленый (Green) с длиной волны 546,1 нм и синий (Blue) с длиной волны 435,8 нм. Система RGB является аддитивной.

При этом тот или иной цвет получается сложением первичных цветов.

Система CMYK.

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

Система CMYK является основой для цветовой печати.

Она основана на субтрактивной модели CMY (Cyan - голубой, Magenta - пурпурный, Yellow - желтый) - модели вычитания цветов. Основных цветов здесь по-прежнему три.

Для улучшения качества полиграфического изображения в систему добавлен черный цвет.

Система HSB.

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

Разновидностью этой системы является схема HSL.

3. Форматы изображений

В настоящее время используется большое количество различных форматов графических файлов. Наиболее широко распространенными из них являются форматы TIFF, GIF, JPEG, PNG и BMP.

Формат TIFF (Tagget Image Format) является одним из наиболее надежных и универсальных форматов для хранения сканированных цветных изображений с высоким качеством. В нем может быть использовано сжатие по алгоритму LZW, т.е. он относится к форматам хранения изображений без потерь.

Формат GIF (Graphics Interchange Format) имеет цветовую палитру в 256 цветов и использует для сжатия алгоритм без потерь LZW. Если исходное количество цветов больше 256, то часть цветовой информации будет утрачена.

Формат JPEG (Join Photographers Expert Group) основан на одноименном алгоритме для сжатия изображений. Он относится к алгоритмам сжатия с потерями и предназначен для хранения полноцветных изображений с высоким коэффициентом сжатия. При использовании формата возможно управление параметром качества от 0 (максимальное сжатие) до 100 (максимальное качество). Коэффициент сжатия в зависимости от качества от 10 до 1000. Этот формат чаще других применяют для хранения полноцветных фотографических изображений, которые не предназначены для дальнейшей обработки.

Формат PNG - растровый формат хранения графической информации, использующий сжатие без потерь по алгоритму Deflate. Формат PNG спроектирован для замены устаревшего и более простого формата GIF, а также, в некоторой степени, для замены значительно более сложного формата TIFF. Формат PNG позиционируется прежде всего для использования в сети Интернет и редактирования графики. Он имеет следующие основные преимущества перед GIF: практически неограниченное количество цветов в изображении; опциональная поддержка альфа-канала; возможность гамма-коррекции; двумерная чересстрочная развёртка.

Формат BMP (BitMaP) относится к собственным растровым форматам операционной системы Windows. Он пригоден для хранения изображений как в индексированном виде с палитрой до 256 цветов, так и в виде полноцветных RGB - изображений с глубиной цвета 24 бита. Возможно применение алгоритма сжатия RLE.

4. Типы изображений

4.1 Двухуровневое (или монохроматическое) изображение

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

Каждый пиксел такого изображения представлен одним битом, поэтому это самый простой тип изображения.

1. Полутоновое изображение. Такое изображение со шкалой из 2n уровней составлено из n-битовых слоев.

2. Цветное изображение. Такое изображение описывается в одном из форматов, представленных выше.

3. Изображение с непрерывным тоном. Этот тип изображений может иметь много похожих цветов (или полутонов). Когда соседние пикселы отличаются всего на единицу, глазу практически невозможно различить их цвета. В результате такие изображения могут содержать области, в которых цвет кажется глазу непрерывно меняющимся. В этом случае пиксел представляется или большим числом (в полутоновом случае) или тремя компонентами (в случае цветного образа). Изображения с непрерывным тоном являются природными или естественными (в отличие от рукотворных, искусственных); обычно они получаются при съемке на цифровую фотокамеру или при сканировании фотографий или рисунков.

4. Дискретно-тоновое изображение (оно еще называется синтетическим). Обычно, это изображение получается искусственным путем. В нем может быть всего несколько цветов или много цветов, но в нем нет шумов и пятен естественного изображения. Примерами таких изображений могут служить фотографии искусственных объектов, машин или механизмов, страницы текста, карты, рисунки или изображения на дисплее компьютера. (Не каждое искусственное изображение будет обязательно дискретно-тоновым. Сгенерированное компьютером изображение, которое должно выглядеть натуральным, будет иметь непрерывные тона, несмотря на свое искусственное происхождение.) Искусственные объекты, тексты, нарисованные линии имеют форму, хорошо определяемые границы. Они сильно контрастируют на фоне остальной части изображения (фона). Прилегающие пикселы дискретно-тонового образа часто бывают одиночными или сильно меняют свои значения. Такие изображения плохо сжимаются методами с потерей данных, поскольку искажение всего нескольких пикселов буквы делает ее неразборчивой, преобразует привычное начертание в совершенно неразличимое. Дискретно-тоновые изображения, обычно, несут в себе большую избыточность. Многие ее фрагменты повторяются много раз в разных местах изображения.

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

5. Методы обработки изображений

Предварительный анализ изображений позволяет сделать вывод о том, что:

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

Во-вторых, подавляющее большинство методов основано на выделении объектов на изображении и дальнейшем их анализе.

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

5.1 Изменение контраста

Слабый контраст обычно вызван малым динамическим диапазоном изменения яркости, либо сильной нелинейностью в передаче уровней яркости. Простейшим методом контрастирования является функциональное отображение градации яркости fij в gij, то есть gij = R(fij). На практике очень часто используют линейные функциональные отображения. Если в результате неравномерности освещения при фотографировании или изготовлении фотографий, возникает ситуация, когда различные участки изображения обладают разным контрастом. В таком случае для изменения контраста используют адаптивные алгоритмы контрастирования. Примером может служить алгоритм локального усиления контраста. Экспериментальные исследования подтвердили высокую эффективность работы алгоритма в том случае, если на снимке присутствуют области с явно завышенным или заниженным контрастами.

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

изображение сегментация программа контраст

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

5.2 Сглаживание шумов

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

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

где - множество точек, принадлежащих окрестности точки (включая и саму точку); - число точек в окрестности.

Рассмотренный метод эффективно устраняет аддитивный и импульсный шум в каждом элементе изображения.

5.3 Подчеркивание границ

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

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

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

5.4 Медианная фильтрация

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

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

5.5 Сегментация изображений

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

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

5.5.1 Пороговые методы сегментации

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

В этом случае изображение обрабатывается по пикселям и преобразование каждого пикселя входного изображения в выходное определяется из соотношения:

где - параметр обработки, называемый порогом, и - уровни выходной яркости. Обработка по пикселям, положение которых на изображении не играет никакой роли, называется точечной . Уровни и играют роль меток. По ним определяют, к какому типу отнести данную точку: к H0 или к H1. Или говорят, что H0 состоит из фоновых точек, а H1 из точек интереса . Как правило, уровни и соответствуют уровням белого и черного. Будем называть классы H1 (он же класс интереса) классом объекта, а класс H0 классом фона.

Естественно сегментация может быть не только бинарной и в таком случае существующих классов больше, чем два. Такой вид сегментации называется многоуровневым. Результирующее изображение не является бинарным, но оно состоит из сегментов различной яркости. Формально данную операцию можно записать следующим образом:

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

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

где - изображение, а - некоторая характеристика точки изображения, например, средняя яркость в окрестности с центром в этой точке.

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

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

5.5.2 Методы наращивания областей

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

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

5.5.3 Выделение контуров

Не редко приходится сталкиваться с задачей нахождения периметров, кривизны, факторов формы, удельной поверхности объектов и т.д. Все перечисленные задачи так или иначе связаны с анализом контурных элементов объектов.

Методы выделения контуров (границ) на изображении можно разделить на следующие основные классы:

методы высокочастотной фильтрации;

методы пространственного дифференцирования;

методы функциональной аппроксимации.

Общим для всех этих методов является стремление рассматривать границы как область резкого перепада функции яркости изображения; отличает же их вводимая математическая модель понятия границы и алгоритм поиска граничных точек.

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

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

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

5.5.4 Методы, основанные на кластеризации

Метод K -средних - это итеративный метод, который используется, чтобы разделить изображение на K кластеров. Базовый алгоритм приведён ниже:

1. Выбрать K центров кластеров, случайно или на основании некоторой эвристики;

2. Поместить каждый пиксель изображения в кластер, центр которого ближе всего к этому пикселю;

3. Заново вычислить центры кластеров, усредняя все пиксели в кластере;

4. Повторять шаги 2 и 3 до сходимости (например, когда пиксели будут оставаться в том же кластере).

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

K может быть выбрано вручную, случайно или эвристически.

Этот алгоритм гарантированно сходится, но он может не привести к оптимальному решению.

Качество решения зависит от начального множества кластеров и значения K.

5.5.5 Методы с использованием гистограммы

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

Улучшение этого метода - рекурсивно применять его к кластерам на изображении для того, чтобы поделить их на более мелкие кластеры. Процесс повторяется со всё меньшими и меньшими кластерами до тех пор, когда перестанут появляться новые кластеры.

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

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

5.5.6 Методы разрастания областей

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

Метод разрастания областей из семян требует дополнительного ввода. Результат сегментации зависит от выбора семян. Шум на изображении может вызвать то, что семена плохо размещены. Метод разрастания областей без использования семян - это изменённый алгоритм, который не требует явных семян. Он начинает с одной области - пиксель, выбранный здесь незначительно влияет на конечную сегментацию. На каждой итерации он рассматривает соседние пиксели так же, как метод разрастания областей с использованием семян. Но он отличается там, что если минимальная не меньше, чем заданный порог, то он добавляется в соответствующую область. В противном случае пиксель считается сильно отличающимся от всех текущих областей и создаётся новая область, содержащая этот пиксель.

Один из вариантов этого метода основан на использовании яркости пикселей. Среднее и дисперсия области и яркость пикселя-кандидата используется для построения тестовой статистики. Если тестовая статистика достаточна мала, то пиксель добавляется к области, и среднее и дисперсия области пересчитывается. Иначе, пиксель игнорируются и используется для создания новой области.

5.5.7 Методы разреза графа

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

5.5.8 Сегментация методом водораздела

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

В такой интерпретации рассматриваются точки трех видов:

1. локального минимума;

2. точки, находящиеся на склоне, т.е. с которых вода скатывается в один и тот же локальный минимум;

3. точки локального максимума, т.е. с которых вода скатывается более чем в один минимум.

Разделение соприкасающихся предметов на изображении является одной из важных задач обработки изображений. Часто для решения этой задачи используется так называемый метод маркерного водораздела. При преобразованиях с помощью этого метода нужно определить "водосборные бассейны" и "линии водораздела" на изображении путем обработки локальных областей в зависимости от их яркостных характеристик.

Метод маркерного водораздела является одним из наиболее эффективных методов сегментации изображений.

При реализации этого метода выполняются следующие основные процедуры:

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

2. Вычисление маркеров переднего плана изображений. Они вычисляются на основании анализа связности пикселей каждого объекта.

3. Вычисление фоновых маркеров. Они представляют собой пиксели, которые не являются частями объектов.

4. Модификация функции сегментации на основании значений расположения маркеров фона и маркеров переднего плана.

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

6. Описание функций

В данной работе представлен алгоритм сегментации изображения с помощью метода маркерного водораздела.

Основные функции, используемые при создании программы:

Функция fspecial создает двумерный фильтр указанного типа;

Функция imfilter - морфологическая операция создания изображения градиента;

Функция watershed преобразования водораздела от изображения;

Функция label2rgb преобразовывает исходное изображение в полутоновое;

Функция imregionalmax определяет все локальные максимумы изображения;

Функция imextendedmin находит "низкие" пятна на изображении, лежащие глубже некоторого заданного порогового уровня по сравнению с их ближайшим окружением;

Функция imimposemin модифицирует полутоновое изображение так, что локальные минимумы достигаются только в отмеченных положениях; другие величины пикселов повышаются для исчезновения всех прочих точек локального минимума;

Функции imreconstruct и imcomplement - реконструкция изображения с помощью морфологических операций раскрытия (закрытия.)

7. Тестирование алгоритма

При реализации данного метода были выполнены следующие процедуры:

1. Считываем изображение и преобразуем его в полутоновое (рисунок 1);

Рисунок 1. Исходное (слева) и полутоновое (справа) изображения.

2. Используем значения градиента в качестве функции сегментации (рисунок 2);

Рисунок 2. Значения градиента.

3. Проводим морфологические операции над изображением (рисунок 3);

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

4. Вычисляем маркеры переднего плана и фона изображения (рисунок 4);

Рисунок 4. Маркеры переднего плана (слева) и фона (справа) изображения.

5. Строим границы водоразделов (рисунок 5);

Рисунок 5. Границы водоразделов.

6. Отображаем маркеры и границы объектов на полутоновом изображении (рисунок 6);

Рисунок 6. Маркеры и границы объектов.

7. Отображаем результат сегментации с помощью цветового изображения (слева) и использую полупрозрачный режим (справа).

Рисунок 7 Результаты сегментации.

Заключение

В данной работе разработан метод маркерного водораздела для сегментации изображения.

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

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

Список используемых источников

1. Гонсалес Р., Вудс Р. Цифровая обработка изображений. - М.: Техносфера, 2005. 1072 с.

2. Прэтт У. Цифровая обработка изображений. - М.: Мир, кн.1, 1982. 312с.

3. Ярославский Л.П. Введение в цифровую обработку изображений. - М: Сов. радио, 1979. 312 с.

4. Прэтт У. Цифровая обработка изображений. - М: Мир, кн. 1, 1982. 480с.

5. http://www.ict.edu.ru/lib/

6. http://matlab.exponenta.ru/imageprocess/book2/76.php

7. Визильтер Ю.В. Обработка и анализ цифровых изображений с примерами на LabVIEW и IMAQ VIsion. - М: ДМК, 2011. 464 с.

8. Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде MATLAB. - М: Техносфера, 2006. 616 с.

9. http://matlab.exponenta.ru/imageprocess/book2/48.php

10. Сэломон Д. Сжатие данных, изображений и звука. - М.: Техносфера, 2004. 368 с.

Приложение

Считаем изображение

rgb=imread("C:\Users\Name\Documents\MATLAB\picture1.jpeg");

Представим его в виде полутонового

I=rgb2gray(rgb);figure,imshow(I);

Вычисляем значение градиента

hy=fspecial("sobel"); hx=hy";

Iy=imfilter(double(I), hy, "replicate");

Ix=imfilter(double(I), hx, "replicate");

gradmag=sqrt(Ix.^2+Iy.^2);

Применим метод водораздела

L=watershed(gradmag);Lrgb=label2rgb(L);

Морфологические операции

se = strel("disk",15);

Ie = imerode(I, se);Iobr = imreconstruct(Ie, I);

Iobrd = imdilate(Iobr, se);

Iobrcbr = imreconstruct(imcomplement(Iobrd), imcomplement(Iobr));

Iobrcbr = imcomplement(Iobrcbr);

Вычислим локальные максимумы

fgm = imregionalmax(Iobrcbr);

Наложим маркеры на изображение

I2 = I;I2(fgm) = 255;

Удаляем отдельные изолированные пиксели

se2 = strel(ones(3,3));fgm2 = imclose(fgm, se2);fgm3 = imerode(fgm2, se2);

Удаление заданного числа пикселей

fgm4 = bwareaopen(fgm3, 20);

Наложим на исходное изображение

I3 = I;I3(fgm4) = 255;

Вычислим маркеры фона

bw = im2bw(Iobrcbr, graythresh(Iobrcbr));

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

D = bwdist(bw);DL = watershed(D);bgm = DL == 0;

figure, imshow(bgm), title("bgm");

Корректируем значение градиента

gradmag2 = imimposemin(gradmag, bgm | fgm4);

L = watershed(gradmag2);

Наложим маркеры и границы объектов на иходное изображение

I4 = I;I4(imdilate(L == 0, ones(3, 3)) | bgm | fgm4) = 255;

Отображение результа с помощью цветного изображения

Lrgb = label2rgb(L, "jet", "w", "shuffle");

Наложим маркеры и границы объектов на полупрозрачное изображение

figure, imshow(I), hold on

himage = imshow(Lrgb);

set(himage, "AlphaData", 0.3);

title("Lrgb2");

Размещено на Allbest.ru

...

Подобные документы

    Цифровые рентгенографические системы. Методы автоматического анализа изображений в среде MatLab. Анализ рентгеновского изображения. Фильтрация, сегментация, улучшение изображений. Аппаратурные возможности предварительной нормализации изображений.

    курсовая работа , добавлен 07.12.2013

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

    курсовая работа , добавлен 18.01.2017

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

    курсовая работа , добавлен 20.01.2016

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

    реферат , добавлен 15.01.2017

    Компьютерная графика и обработка изображений электронно-вычислительными машинами являются наиболее важным аспектом использования ЭВМ во всех сферах человеческой деятельности. Разработка "подсистемы линейной сегментации", описание алгоритма и логики.

    дипломная работа , добавлен 23.06.2008

    Задачи цифровой обработки изображений. Методы пороговой сегментации. Создание программы представления рисунка в виде матрицы и применения к нему пороговой обработки. Разработка интерфейса программы загрузки и фильтрации изображения с выбранным порогом.

    курсовая работа , добавлен 12.11.2012

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

    курсовая работа , добавлен 27.01.2015

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

    дипломная работа , добавлен 10.06.2013

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

    курсовая работа , добавлен 17.06.2013

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

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

Операция порогового разделения, которая в результате дает бинарное изображение, называется бинаризацией. Целью операции бинаризации является радикальное уменьшение количества информации, содержащейся на изображении. В процессе бинаризации исходное полутоновое изображение, имеющее некое количество уровней яркости, преобразуется в черно-белое изображение, пиксели которого имеют только два значения – 0 и 1

Пороговая обработка изображения может проводиться разными способами.

Бинаризация с нижним порогом
Бинаризация с нижним порогом
Бинаризация с нижним порогом является наиболее простой операцией, в которой используется только одно значение порога:

Все значения вместо критерия становятся 1, в данном случае 255 (белый) и все значения(амплитуды) пикселей, которые больше порога t - 0 (черный).

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

Бинаризация с двойным ограничением
Для выделения областей, в которых значения яркости пикселей может меняться в известном диапазоне, вводится бинаризация с двойным ограничением (t 1
Так же возможны другие вариации с порогами, где пропускается только часть данных (средне полосовой фильтр).

Неполная пороговая обработка
Данное преобразование дает изображение, которое может быть проще для дальнейшего анализа, поскольку оно становится лишенным фона со всеми деталями, присутствующими на исходном изображении.

Многоуровневое пороговое преобразование
Данная операция формирует изображение, не являющееся бинарным, но состоящее из сегментов с различной яркостью.

Что касается бинаризации, то по сути все. Хотя можно добавить, что есть глобальная, которая используется для всего изображения и так же существует локальная, которая захватывает часть картинки (изображения).

Локальная пороговая обработка
Метод Отса
Метод использует гистограмму распределения значений яркости пикселей растрового изображения. Строится гистограмма по значениям p i =n i /N, где N – это общее кол-во пикселей на изображении, n i – это кол-во пикселей с уровнем яркости i. Диапазон яркостей делится на два класса с помощью порогового значения уровня яркости k,k - целое значение от 0 до L. Каждому классу соответствуют относительные частоты ω 0 ω 1:

Средние уровни для каждого из двух классов изображения:
Далее вычисляется максимальное значение оценки качества разделения изображения на две части:
где (σ кл)2=ω 0 ω 1 (μ 1 -μ 0) 2 , – межклассовая дисперсия, а (σ общ) 2 – это общая дисперсия для всего изображения целиком.

Определение порога на основе градиента яркости изображения
Предположим, что анализируемое изображение можно разделить на два класса – объекты и фон. Алгоритм вычисления порогового значения состоит из следующих 2 шагов:
1. Определяется модуль градиента яркости для каждого пикселя
изображения

2. Вычисление порога:
Итого
Что нашел с радостью выложил вам, в дальнейшем, если получится и будет время, постараюсь реализовать часть алгоритмов. Это лишь малая часть всего, что сегодня существует, но я рад поделится и этим.
Спасибо за внимание.

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


Методы, которые будут рассмотрены в данной статье:

  1. Метод выращивания регионов ;
  2. Метод водораздела ;
  3. Метод нормальных разрезов .

Исследование методов сегментации на модельных изображениях

Исследование методов сегментации первоначально проводилось моделях изображений. В качестве моделей использовались девять видов изображений.




Результаты исследования показали:

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

Исследование методов сегментации на изображениях объекта

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


Исходное изображение Метод выращивания регионов Метод нормальных разрезов Метод водораздела

Результаты:

  • Метод выращивания регионов не обеспечивает локализацию сегментов на изображениях объекта;
  • Рассмотренные методы водораздела и нормальных разрезов в исходном виде не обеспечивают локализацию представленных объектов;
  • Метод нормальных разрезов обеспечивает локализацию объектов на изображениях объектов.

Результаты

Результаты проведенного исследования:

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

Этим летом мне посчастливилось попасть на летнюю стажировку в компанию Itseez . Мне было предложено исследовать современные методы, которые позволили бы выделить местоположения объектов на изображении. В основном такие методы опираются на сегментацию, поэтому я начала свою работу со знакомства с этой областью компьютерного зрения.
Сегментация изображения - это разбиение изображения на множество покрывающих его областей. Сегментация применяется во многих областях, например, в производстве для индикации дефектов при сборке деталей, в медицине для первичной обработки снимков, также для составления карт местности по снимкам со спутников. Для тех, кому интересно разобраться, как работают такие алгоритмы, добро пожаловать под кат. Мы рассмотрим несколько методов из библиотеки компьютерного зрения OpenCV .

Алгоритм сегментации по водоразделам (WaterShed)


Алгоритм работает с изображением как с функцией от двух переменных f=I(x,y) , где x,y – координаты пикселя:


Значением функции может быть интенсивность или модуль градиента. Для наибольшего контраста можно взять градиент от изображения. Если по оси OZ откладывать абсолютное значение градиента, то в местах перепада интенсивности образуются хребты, а в однородных регионах – равнины. После нахождения минимумов функции f , идет процесс заполнения “водой”, который начинается с глобального минимума. Как только уровень воды достигает значения очередного локального минимума, начинается его заполнение водой. Когда два региона начинают сливаться, строится перегородка, чтобы предотвратить объединение областей . Вода продолжит подниматься до тех пор, пока регионы не будут отделяться только искусственно построенными перегородками (рис.1).




Рис.1. Иллюстрация процесса заполнения водой

Такой алгоритм может быть полезным, если на изображении небольшое число локальных минимумов, в случае же их большого количества возникает избыточное разбиение на сегменты. Например, если непосредственно применить алгоритм к рис. 2, получим много мелких деталей рис. 3.


Рис. 2. Исходное изображение


Рис. 3. Изображение после сегментации алгоритмом WaterShed

Как справиться с мелкими деталями?

Чтобы избавиться от избытка мелких деталей, можно задать области, которые будут привязаны к ближайшим минимумам. Перегородка будет строиться только в том случае, если происходит объединение двух регионов с маркерами, в противном случае будет происходить слияние этих сегментов. Такой подход убирает эффект избыточной сегментации, но требует предварительной обработки изображения для выделения маркеров, которые можно обозначить интерактивно на изображении рис. 4, 5.


Рис. 4. Изображение с маркерами


Рис. 5. Изображение после сегментации алгоритмом WaterShed с использованием маркеров

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


Рис. 6. В качестве маркеров использовались контуры, имеющие длину выше определенного порога


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

Mat image = imread("coins.jpg", CV_LOAD_IMAGE_COLOR); // выделим контуры Mat imageGray, imageBin; cvtColor(image, imageGray, CV_BGR2GRAY); threshold(imageGray, imageBin, 100, 255, THRESH_BINARY); std::vector > contours; std::vector hierarchy; findContours(imageBin, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE); Mat markers(image.size(), CV_32SC1); markers = Scalar::all(0); int compCount = 0; for(int idx = 0; idx >= 0; idx = hierarchy, compCount++) { drawContours(markers, contours, idx, Scalar::all(compCount+1), -1, 8, hierarchy, INT_MAX); } std::vector colorTab(compCount); for(int i = 0; i < compCount; i++) { colorTab[i] = Vec3b(rand()&255, rand()&255, rand()&255); } watershed(image, markers); Mat wshed(markers.size(), CV_8UC3); for(int i = 0; i < markers.rows; i++) { for(int j = 0; j < markers.cols; j++) { int index = markers.at(i, j); if(index == -1) wshed.at(i, j) = Vec3b(0, 0, 0); else if (index == 0) wshed.at(i, j) = Vec3b(255, 255, 255); else wshed.at(i, j) = colorTab; } } imshow("watershed transform", wshed); waitKey(0);

Алгоритм сегментации MeanShift

MeanShift группирует объекты с близкими признаками. Пиксели со схожими признаками объединяются в один сегмент, на выходе получаем изображение с однородными областями.


Например, в качестве координат в пространстве признаков можно выбрать координаты пикселя (x, y) и компоненты RGB пикселя. Изобразив пиксели в пространстве признаков, можно заметить сгущения в определенных местах.

Рис. 7. (a) Пиксели в двухмерном пространстве признаков. (b) Пиксели, пришедшие в один локальный максимум, окрашены в один цвет. (с) - функция плотности, максимумы соответствуют местам наибольшей концентрации пикселей. Рисунок взят из статьи .

Чтобы легче было описывать сгущения точек, вводится функция плотности :
– вектор признаков i -ого пикселя, d - количество признаков, N - число пикселей, h - параметр, отвечающий за гладкость, - ядро. Максимумы функции расположены в точках сгущения пикселей изображения в пространстве признаков. Пиксели, принадлежащие одному локальному максимуму, объединяются в один сегмент. Получается, чтобы найти к какому из центров сгущения относится пиксель, надо шагать по градиенту для нахождения ближайшего локального максимума.

Оценка градиента от функции плотности

Для оценки градиента функции плотности можно использовать вектор среднего сдвига
В качестве ядра в OpenCV используется ядро Епанечникова :


- это объем d -мерной сферы c единичным радиусом.


означает, что сумма идет не по всем пикселям, а только по тем, которые попали в сферу радиусом h с центром в точке, куда указывает вектор в пространстве признаков . Это вводится специально, чтобы уменьшить количество вычислений. - объем d -мерной сферы с радиусом h, Можно отдельно задавать радиус для пространственных координат и отдельно радиус в пространстве цветов. - число пикселей, попавших в сферу. Величину можно рассматривать как оценку значения в области .


Поэтому, чтобы шагать по градиенту, достаточно вычислить значение - вектора среднего сдвига. Следует помнить, что при выборе другого ядра вектор среднего сдвига будет выглядеть иначе.


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

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

Пример кода для запуска алгоритма:

Mat image = imread("strawberry.jpg", CV_LOAD_IMAGE_COLOR); Mat imageSegment; int spatialRadius = 35; int colorRadius = 60; int pyramidLevels = 3; pyrMeanShiftFiltering(image, imageSegment, spatialRadius, colorRadius, pyramidLevels); imshow("MeanShift", imageSegment); waitKey(0);
Результат:


Рис. 8. Исходное изображение


Рис. 9. После сегментации алгоритмом MeanShift

Алгоритм сегментации FloodFill

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

Такой алгоритм может быть полезен для заливки области со слабыми перепадами цвета однородным фоном. Одним из вариантов использования FloodFill может быть выявление поврежденных краев объекта. Например, если, заливая однородные области определенным цветом, алгоритм заполнит и соседние регионы, то значит нарушена целостность границы между этими областями. Ниже на изображении можно заметить, что целостность границ заливаемых областей сохраняется:

Рис. 10, 11. Исходное изображение и результат после заливки нескольких областей

А на следующих картинках показан вариант работы FloodFill в случае повреждения одной из границ в предыдущем изображении.


Рис. 12, 13. Иллюстрация работы FloodFill при нарушение целостности границы между заливаемыми областями

Пример кода для запуска алгоритма:

Mat image = imread("cherry.jpg", CV_LOAD_IMAGE_COLOR); Point startPoint; startPoint.x = image.cols / 2; startPoint.y = image.rows / 2; Scalar loDiff(20, 20, 255); Scalar upDiff(5, 5, 255); Scalar fillColor(0, 0, 255); int neighbors = 8; Rect domain; int area = floodFill(image, startPoint, fillColor, &domain, loDiff, upDiff, neighbors); rectangle(image, domain, Scalar(255, 0, 0)); imshow("floodFill segmentation", image); waitKey(0);
В переменную area запишется количество “залитых" пикселей.
Результат:


Алгоритм сегментации GrabCut

Это интерактивный алгоритм выделения объекта, разрабатывался как более удобная альтернатива магнитному лассо (чтобы выделить объект, пользователю требовалось обвести его контур с помощью мыши). Для работы алгоритма достаточно заключить объект вместе с частью фона в прямоугольник (grab). Сегментирование объекта произойдет автоматически (cut).


Могут возникнуть сложности при сегментации, если внутри ограничивающего прямоугольника присутствуют цвета, которые встречаются в большом количестве не только в объекте, но и на фоне. В этом случае можно поставить дополнительные метки объекта (красная линия) и фона (синяя линия).


Рассмотрим идею алгоритма. За основу взят алгоритм интерактивной сегментации GraphCut, где пользователю надо поставить маркеры на фон и на объект. Изображение рассматривается как массив . Z - значения интенсивности пикселей, N -общее число пикселей. Для отделения объекта от фона алгоритм определяет значения элементов массива прозрачности , причем может принимать два значения, если = 0 , значит пиксель принадлежит фону, если= 1 , то объекту. Внутренний параметр содержит гистограмму распределения интенсивности переднего плана и гистограмму фона:
.
Задача сегментации - найти неизвестные . Рассматривается функция энергии:

Причем минимум энергии соответствует наилучшей сегментации.


V (a, z) - слагаемое отвечает за связь между пикселями. Сумма идет по всем парам пикселей, которые являются соседями, dis(m,n) - евклидово расстояние. отвечает за участие пар пикселей в сумме, если a n = a m , то эта пара не будет учитываться.
- отвечает за качество сегментации, т.е. разделение объекта от фона.

Найдя глобальный минимум функции энергии E , получим массив прозрачности . Для минимизации функции энергии, изображение описывается как граф и ищется минимальный разрез графа. В отличие от GraphCut в алгоритме GrabCut пиксели рассматриваются в RGB пространстве, поэтому для описания цветовой статистики используют смесь гауссиан (Gaussian Mixture Model - GMM). Работу алгоритма GrabCut можно посмотреть, запустив сэмпл OpenCV

Редактирование изображений и создание коллажей было бы весьма захватывающим процессом, если бы не приходилось тратить бо́льшую часть времени на кропотливую разметку объектов. Задача еще усложняется, когда границы объектов размыты или присутствует прозрачность. Инструменты “Photoshop”, такие как «магнитное лассо» и «волшебная палочка», не очень интеллектуальны, поскольку ориентируются лишь на низкоуровневые признаки изображения. Они возвращают жёсткие (Hard) границы, которые затем нужно исправлять вручную. Подход Semantic Soft Segmentation от исследователей Adobe помогают решить эту непростую задачу, разделяя изображение на слои, соответствующие семантически значимым областям, и добавляя плавные переходы на краях.

«Мягкая» сегментация

Группа исследователей из лаборатории CSAIL в MIT и швейцарского университета ETH Zürich, работающая под руководством Ягыза Аксоя, предложила подойти к этой проблеме, основываясь на спектральной сегментацией, добавив к ней современные достижения глубокого обучения. С помощью текстурной и цветовой информации, а также высокоуровневых семантических признаков, извлечённых , по изображению строится граф специального вида. Затем по этому графу строится матрица Кирхгофа (Laplacian matrix). Используя спектральное разложение этой матрицы, алгоритм генерирует мягкие контуры объектов. Полученное с помощью собственных векторов разбиение изображения на слои можно затем использовать для редактирования.

Обзор предложенного подхода

Описание модели

Рассмотрим метод создания семантически значимых слоёв пошагово:

1. Спектральная маска. Предложенный подход продолжает работу Левина и его коллег, которые впервые использовали матрицу Кирхгофа в задаче автоматического построения маски. Они строили матрицу L, которая задаёт попарное сходство между пикселями в некоторой локальной области. С помощью этой матрицы они минимизируют квадратичный функционал αᵀLα с заданными пользователем ограничениями, где α задаёт вектор значений прозрачности для всех пикселей данного слоя. Каждый мягкий контур является линейной комбинацией K собственных векторов, соответствующих наименьшим собственным значениям L, которая максимизирует так называемую разреженность маски.

2. Цветовая близость. Для вычисления признаков нелокальной цветовой близости исследователи генерируют 2500 суперпикселей и оценивают близость между каждым суперпикселем и всеми суперпикселями в окрестности радиусом 20% размера изображения. Использование нелокальной близости гарантирует, что области с очень похожими цветами останутся связными в сложных сценах, подобных изображённой ниже.

Нелокальная цветовая близость

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

Семантическая близость

4. Создание слоёв. На этом шаге с помощью вычисленных ранее близостей строится матрица L. Из этой матрицы извлекаются собственные векторы, соответствующие 100 наименьшим собственным значениям, а затем применяется алгоритм разреживания, который извлекает из них 40 векторов, по которым строятся слои. Затем количество слоёв ещё раз уменьшается с помощью алгоритма кластеризации k-means при k = 5. Это работает лучше, чем простое разреживание 100 собственных векторов до пяти, поскольку такое сильное сокращение размерности делает задачу переопределённой. Исследователи выбрали итоговое число контуров равным 5 и утверждают, что это разумное число для большинства изображений. Тем не менее, это число можно изменить вручную в зависимости от обрабатываемого изображения.


Мягкие контуры до и после группировки

5. Семантические векторы признаков. Для вычисления семантической близости использовались векторы признаков, посчитанные с помощью нейросети. Основой нейросети стала DeepLab-ResNet-101, обученная на задаче предсказания метрики. При обучении поощрялась максимизация L2-расстояния между признаками разных объектов. Таким образом, нейросеть минимизирует расстояние между признаками, соответствующими одному классу, и максимизирует расстояние в другом случае.

Качественное сравнение со схожими методами

Изображения, приведённые ниже, показывают результаты работы предложенного подхода (подписанные как «Our result») в сравнении с результатами наиболее близкого подхода мягкой сегментации - спектрального метода построения маски - и двумя state-of-the-art методами семантической сегментации: методом обработки сцен PSPNet и методом сегментации объектов Mask R-CNN.


Качественные сравнения мягкой семантической сегментации с другими подходами

Можно заменить, что PSPNet и Mask R-CNN склонны ошибаться на границах объектов, а мягкие контуры, построенные спектральным методом, часто заходят за границы объектов. При этом описанный метод полностью охватывает объект, не объединяя его с другими, и достигает высокой точности на краях, добавляя мягкие переходы, где это требуется. Однако стоит заметить, что семантические признаки, использованные в данном методе, не различают два разных объекта, принадлежащих к одному классу. В результате множественные объекты представлены на одном слое, что видно на примере изображений жирафов и коров.

Редактирование изображений с помощью мягких семантических контуров

Ниже приведено несколько примеров применения мягких контуров для редактирования изображений и создания коллажей. Мягкие контуры можно использовать для применения конкретных изменений к разным слоям: добавления размытия, изображающего движение поезда (2), раздельной цветовой коррекции для людей и для фона (5, 6), отдельной стилизации для воздушного шара, неба, ландшафта и человека (8). Конечно, то же самое можно сделать с помощью созданных вручную масок или классических алгоритмов выделения контура, но с автоматическим выделением семантически значимых объектов такое редактирование становится значительно проще.

Использование мягкой семантической сегментации для редактирования изображений

Заключение

Данный метод автоматически создаёт мягкие контуры, соответствующие семантически значимым областям изображения, используя смесь высокоуровневой информации от нейронной сети и низкоуровневых признаков. Однако у этого метода есть несколько ограничений. Во-первых, он относительно медленный: время обработки изображения с размерами 640 x 480–3–4 минуты. Во-вторых, этот метод не создаёт отдельные слои для разных объектов одного класса. И в-третьих, как показано ниже, этот метод может ошибиться на начальных этапах обработки в случаях, когда цвета объектов очень похожи (верхний пример), или во время объединения мягких контуров возле больших переходных областей (нижний пример).

Случаи ошибок алгоритма

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