Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Максимова.doc
Скачиваний:
11
Добавлен:
01.04.2025
Размер:
20.86 Mб
Скачать

6.1.7. Сегментация путем выделения границ

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

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

Рассмотрим непрерывную модель изображения. Для этого заменим растр D на прямоугольную область в плоскости (x, у) и определим изображение как функцию В (х, у). Для этого (абстрактного) изображения будем считать, что В (х, у) – диф­ференцируемая функция своих аргументов. Перепад яркости в точке (x0, у0) определяется в этом случае как норма градиента функции В (х, у) в точке (x0, y0), т. е. норма вектора

Норму вектора можно определить различными способами, например:

(6.14)

(6.15)

(6.16)

Однако в силу дискретности поля зрения D непосредственное вычисление В(х, у) невозможно. Чтобы воспользоваться диф­ференцированием для определения перепада яркости в точке, необходимо выбрать один из двух путей:

  • с помощью интерполяции перейти от функции В (i, j) к функ­ции В (х, у), заданной в прямоугольной области плоскости (х, y), содержащей все точки растра D;

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

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

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

Вычислив в каждой точке (i, j) D норму градиента G (i, j), переходим от исходного изображения В (i, j) к «изображению градиентов». Изображение G (i, j) отличается от В (i, j) подчерк­нутыми перепадами яркости. Переход В (i, j)G (i, j) обычно называют контрастированием изображения.

Контрастирование является только частью задачи выделения границ. Для выделения границ следует сформировать критерий принадлежности точки (i, j) границе области объектов. Для фор­мирования такого критерия выбирают некоторый порог Т и точку (i, j) D считают граничной, если G (i, j) > Т. При отсутствии априорной информации для выбора порога Т его на­ходят путем анализа гистограммы изображения G (i, j) примерно тем же путем, что и порог, разделяющий яркость объектов и фона.

Формулы численного дифференцирования для перехода к изо­бражению G (i, j) могут быть самыми различными. Приведем их главные характеристики:

– число точек в окрестности точки (i0, j0), значения яркости в которых влияют на значение G(i0, j0);

– тот или иной вид нормы;

– вид дифференцирования (одномерное или двумерное).

Рис. 6.13. Окна размерами 33 (а) и 55 (б)

Остановимся подробнее на этих характеристиках. Определим «окно» с центром в точке (i, j) как множество точек (i, j) + (т, n), где – q  m, n q, q – параметр окна, от которого зависит его размер [окно содержит (2q + 1)2 точек]. Окно с пара­метром q = 1 приведено на рис. 6.13. а, с параметром q = 2 на рис. 6.13. б. Окно с центром в точке (i, j) = 1 и параметром q будем обозначать Oi, j (q).

Допустим, что для вычисления G (i, j) используется инфор­мация о яркости в некоторых точках окна Oi, j (q). Пусть R Oi, j (q) – множество этих точек. Если все точки из R принад­лежат одной горизонтали, вертикали или диагонали растра, то контрастирование называется одномерным, в противном случае – двумерным.

В случае выбора нормы (6.16) имеет место линейное контрасти­рование, при норме (6.14) или (6.15) – нелинейное.

Значение G(i, j) может отличаться от приближенного значения В(i, I) на постоянный [не зависящий от точки (i, j)] множитель.

Для вычисления G (i, j) удобно ввести так называемые маски, каждая из которых связана с окном определенного размера. Маска Hq, соответствующая окну с параметром q, имеет вид матрицы размером (2q + 1) (2q + 1). Для каждого изображе­ния В (i, j) и маски Hq определим свертку

.

Например, для окна 3x3 и маски свертка

(B*H1)i,j = B(i - 1, j - 1) + B(i, j - 1) +

+ B(i + 1, j -1) – B(i - 1, j + 1) – B(i, j + 1) – B(i + 1, j + 1)

Большинство используемых вычислительных формул основаны на применении масок размером 33. Основными являются опера­торы Робертса, Собела, Превитта, Кирша, разностный оператор, имеющие общий вид:

G(i, j) = || d1(i, j), d2(i, j) || ;

d1(i, j) B*H1(1) ; d2(i, j) B*H1(2).

Эти маски отвечают двумерному дифференцированию. Для вычисления нормы ||d1(i, j), d2(i, j)|| можно применить любую из формул (6.14) – (6.16). Отметим, что маска, используемая для дифференцирования, должна обладать тем свойством, что сумма всех элементов соответствующей матрицы равна 0.

Рис. 6.14, Пример контрастирования:

а – исходное изображение; б, в – контрастированное изображение и его гистограмма (0, 10, 20 – яркость)

Точки (i, j) вблизи границы са­мого растра D могут быть такими, что окно Oi, j (k) выходит за пределы растра. В таких точках можно положить G (i, j) = 0.

Одномерное дифференцирование предполагает использование простейших масок. Примерами являются операторы

и др.

Используя указанные операторы двумерного дифференциро­вания, можно найти ориентацию контура. Если (i, j) – контур­ная точка, то угол ориентации контура равен arctg [d2(i, j) /d1 (i, j) ].

Использование масок размера большего, чем 3x3, существенно увеличивает объем вычислений, в то время как степень контра­стирования возрастает незначительно. В связи с этим маски размером 33 являются наиболее распространенными.

Остановимся подробнее на вопросе о выборе порога Т, необ­ходимого для выделения границ после перехода к изображе­нию G(i, j). Допустим, что отсутствует информация, позволяю­щая выбрать значение Т до контрастирования. В этом случае следует подвергнуть анализу гистограмму изображения G (i, j). Она носит бимодальный характер (имеет кроме глобального ярко выраженный локальный максимум). Экстремумы гистограммы G (i, j) выделить проще, чем экстремумы гистограммы исходного изображения В (i, j). В идеальном случае при использовании, например, оператора Робертса получаем изображение G (i, j) (рис. 6.14). В качестве нормы выбрана сумма модулей, растр имеет размеры 8x8, объект 4x4.

Порог Т соответствует значению, расположенному между точками глобального и локального максимумов, при котором достигается минимум гистограммы G (i, j). Однако для реальных изображений результаты пороговой обработки градиентного поля часто неудовлетворительны – выделяемые края содержат раз­рывы, появляются ложные границы. Степень несоответствия полученной картины реальным границам во многом определяется качеством предварительной фильтрации – сглаживания помех. Поэтому часто алгоритмы выделения границ применяются парал­лельно с алгоритмами фильтрации. После выделения границ неотфильтрованные помехи проявляются более явно. Возникает необходимость применения специальных алгоритмов повторной обработки. После повторной обработки в случае нескольких объектов можно приступить к идентификации контуров.

Наиболее простые и распространенные операторы дифферен­цирования носят имена Робертса и Собела, которые подробно исследовали возможность их применения к реальным картинам.

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

или с помощью масок больших размеров, например

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

Интересен подход, в котором набор 3  3 масок Н(1),..., Н(9) интерпретируется как базис пространства матриц. В каждой точке (i, j) D рассматривается область из девяти элементов разложения, соответствующая окну Оi, j . Ее можно рассматривать как матрицу В размером 3  3. Далее определяется близость В к подпространствам, натянутым на определенную часть базисных матриц. Степень близости определяется с помощью выбранного скалярного произведения в пространстве 3  3 матриц.

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

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

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