Московский государственный университет имени М.В.Ломоносова
Опубликован: 23.04.2007 | Доступ: свободный | Студентов: 3280 / 442 | Оценка: 4.18 / 3.71 | Длительность: 17:54:00
ISBN: 978-5-9556-0098-7
Специальности: Программист
Лекция 10:

Выделение объекта на фоне

< Лекция 9 || Лекция 10: 123 || Лекция 11 >
Аннотация: Введение. Алгоритм "Волшебная палочка". Алгоритм "Умные ножницы". Сегментация при помощи разрезов на графах. Заключение.

10.1. Введение

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

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

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

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

10.2. Алгоритм "Волшебная палочка"

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

Рассмотрим, как производится шаг алгоритма. Пусть у нас есть изображение A с цветами пикселей A(x, y). Будем считать, что на множестве цветов задана метрическая функция \rho (C_1,C_2), определяющая расстояние между двумя цветами.

Пусть пользователь указал пиксель (x0, y0) с цветом A(x0, y0). Тогда рассматривается двухцветное изображение B того же размера, что и A, задаваемое правилом

B(x, y) =  \left\{ \begin{array}{lrl} 1, & \text{если} & {\rho {A(x, y), A(x_0, y_0)) \le \tau} \\
0, & \text{иначе.} & \\
\end{array} \right.

Иными словами, B содержит единицы для пикселей с цветом, отличающимся от цвета пикселя, указанного пользователем, не более чем на \tau, где \tau - порог чувствительности, задаваемый пользователем. Как мы увидим, чем он выше, тем больше пикселей выделится на данном шаге.

На втором этапе происходит нахождение связной области цвета 1 на изображении B, содержащей пиксель (x0, y0). Это может быть выполнено при помощи любого алгоритма заполнения области с затравкой ( "Заполнение многоугольников и областей" ). Найденная область \Omega является связной и содержит пиксели цветов, похожих на цвет пикселя, который был указан пользователем.

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

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





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

Рис. 10.1. Выделение объекта при помощи алгоритма "Волшебная палочка". Первый рисунок - исходное цветное изображение. Второй - результат шага алгоритма. Пользователь указал точку на штанах человека, имеющих насыщенный желтый цвет. Третий - результат шага алгоритма. Пользователь указал точку на куртке человека, имеющей красный цвет. Четвертый - результат шага алгоритма. Пользователь указал ту же точку на куртке человека, но порог чувствительности увеличен на 50%.
< Лекция 9 || Лекция 10: 123 || Лекция 11 >