Вестник МГТУ, том 13, №3, 2010 г.
стр. 607-612
УДК 004.932.2
Выделение фрагментов плоского изображения на основе его представления в виде скалярного поля
И.А. Волков
Санкт-Петербургский государственный университет телекоммуникаций им. проф. М.А. Бонч-Бруевича, факультет сетей связи, систем коммутации и вычислительной техники, кафедра цифровой вычислительной техники и информатики
Аннотация. В статье представлены результаты продолжения работы в области обработки графической информации на основе ее представления в виде скалярных полей. Предложен алгоритм выделения фрагментов плоских изображений. Выделенные фрагменты представляются в виде линейных структур, подходящих для задач машинного зрения.
Abstract. The algorithm for image fragment selection has been proposed in the paper. Selected shapes are presented as a linear structure suitable for computer vision tasks. This paper continues the work in the field of image processing based on its presentation as scalar fields.
Ключевые слова: обработка изображений, полевая модель изображения, выделение контуров, выделение сегментов Keywords: image processing, field image presentation, fragment selection, image segmentation
1. Введение
В работе (Болтов, Волков, 2007) предлагается подход к обработке изображений, основанный на их представлении в виде скалярного или векторного поля. Для описания скалярного поля может быть выбрано уравнение Пуассона, векторного - уравнение Ляме (в данной статье далее будут рассматриваться только скалярные поля). Такое представление позволило разделить все пиксели изображения на два типа: обычные и особые, которые характеризуются резкими (выше заданного порога) перепадами градации цветности. Указанные перепады представляют собой разрывы среды первого рода и описываются производной функции Дирака, которую с точки зрения теории поля можно интерпретировать как источник типа диполь. При таком разделении пикселей исходное изображение можно представить в виде поля особых точек (предикативного поля) и остаточного поля:
U(x,y) = UOT(x,y) + иост(х,у),
где U(x,y) - исходное изображение, UOT(x,y) - поле особых точек, иост(х,у) - остаточное поле.
Особые точки образуют абрис изображения. Они могут быть объединены в цепочки (кромки), каждая из которых является самостоятельным фрагментом изображения. Поле особых точек является частным решением двумерного уравнения Пуассона (Болтов, Волков, 2007):
Аиот (x,y ) = X(kxi ■ dUxi -§ '(x - x0i)§(y - y0i) + kyi • dUyi -§(x - x0i)§ '(y - y0i) ) ,
i=1
где Д - оператор Лапласа, n - количество особых точек, kxi и kyi - проекции нормали к контуру на x и y (для контуров, образованных из пикселей, эти параметры принимают значение либо 0, либо 1), dUxi и dUyi -перепады градаций цветности по х и у соответственно, 5 - функция Дирака, (x0i, y0i) - i-я особая точка.
Для практических применений более удобно от бесконечного пространства перейти к решению краевой задачи, в которой на границах окна размером n*n поле обращается в 0. Бесконечное пространство в контексте данной задачи означает, что вклад каждой особой точки учитывается во всех пикселях изображения. При конечном окне вклад особой точки в поле особых точек ограничивается размерами окна. Чем больше окно, тем более качественное поле особых точек. Осуществляя далее переход к дискретному пространству при учете особенностей поведения поля в окрестностях особых точек, можно получить практическую формулу для построения поля особых точек (Болтов, Волков, 2007):
1
U- (x,y)=X
П i=1 j=-a k=—a
(~1)jdUxi • x3 x2 + (y — y0i + 2 •j)2
(—1)kdU
yi
• Уз
(x — x0i + 2 •k)2 + У2
(1)
где a - размер окна,
607
Волков И.А. Выделение фрагментов плоского изображения...
Х3 =
Разность исходного изображения и поля особых точек представляет собой плавное поле, которое, в частности, может быть представлено в виде разложения по полиномам Чебышева (Болтов, Волков, 2007) или в некотором приближении полностью заменено сглаженным изображением. Разделение на два указанных поля представляет основу модели, которую в дальнейшем будем называть полевой.
С альтернативным применением уравнения Пуассона для обработки изображений можно ознакомиться в статье (Кононов, 2009).
2. Постановка задачи
Задаче распознавания образов изображений, как правило, предшествуют задачи обработки изображений с целью улучшения тех или иных качеств (эрозия и дилатация) или с целью разбиения изображения на части (сегментация, морфологический анализ и выделение фрагментов).
В настоящей работе решается задача построения процедуры выделения фрагментов плоского изображения на основе полевой модели. Такая процедура может быть основана на объединении особых точек в кромки, которые сформируют линейные образы фрагментов изображения - последовательность точек, образующих ломаную линию. В статье (Чечель, Чистов, 2010) обосновано применение таких линейных образов для задач машинного зрения. Объединенные в кромки точки могут быть обработаны по формуле (1) для получения предикативного поля изображения, что также позволяет использовать алгоритм выделения кромок в задаче сжатия изображений.
3. Двуцветные изображения
Достаточно широкий класс графической информации представляют собой черно-белые изображения: чертежи, графика, эстампы, рукописи и т.д. В этой группе изображений применяется только две градации цветности: 0 (черный цвет) и 255 (белый цвет). Поэтому основное значение здесь приобретают геометрические линии, и систему выделения фрагментов этих изображений можно также рассматривать как идеальный полигон для отработки механизма формирования кромок.
Алгоритм формирования кромок является определяющим в задаче выделения фрагментов изображения и его назначение - преобразовать плоский (при необходимости и объемный) абрис в набор линейных образов. Кромки представляют собой "материал" для построения поля особых точек по формуле (1). Группируя особые точки по принадлежности к кромкам, поле особых точек можно разбить на компоненты - поля особых точек отдельных кромок. Каждая такая компонента является отдельным фрагментом изображения, а кромка - его линейным образом.
Основная сложность в теоретическом плане при реализации алгоритма формирования кромок связана с тем, что на уровне пикселей кромка является ломаной линией (имеют место неоднородности), что не позволяет вычислять необходимый для построения поля градиент вдоль этой линии методами традиционной математики. В специально разработанной модели обработка линии (кромки) осуществляется попиксельно, для каждого пикселя определяется код обработки по рекуррентной формуле:
где Codtek и Codprev - коды обработки в текущей точке и предыдущей точке, Cdgeo - геометрический код, описывающий геометрическое перемещение по фрагменту из предыдущей точки в текущую точку, F1 -обобщенная функция, которая определяется набором формальных правил.
Эти формальные правила должны быть сформулированы следующим образом: если
присоединение текущей точки к кромке происходит по формуле (2) и критериям соответствия цветовым градациям, то восстановление перепадов цветности будет соответствовать перепадам градации, полученных непосредственным сканированием исходного изображения. В двуцветных изображениях уровень градации цветности внутри кромки не изменяется, поэтому критерием соответствия цветовым градациям внутри кромки будет равенство цвета текущей точки и цветов остальных точек в кромке.
Для разработки функции F1 введены понятия "виртуальная" и "действительная" производные -это производные по направлению по осям x, y, х1 и y1, причем оси x и x1, у и у1 попарно противоположны по направлению, а x и y, x1 и y1 попарно перпендикулярны. На физическом уровне упрощенно наличие действительных и виртуальных производных можно иллюстрировать как представление пикселя в виде двух передних и двух задних фронтов. Перепады градации цветности перед передними фронтами
Codtek F1( Codprev , CdgeoX
(2)
608
Вестник МГТУ, том 13, №3, 2010 г.
стр. 607-612
рассматриваются как действительные производные. Перепады градации цветности после задних фронтов определяются как виртуальные производные. Фактически эти параметры введены как реакция на тот факт, что, производя операции на уровне пикселей, невозможно игнорировать их протяженность и считать пиксели на физическом уровне бесконечно малой величиной.
Действительные и виртуальные производные считаются для каждой особой точки. Если значение производной больше некоторого порога, производная будет учитываться при построении кромки. Особой точке сопоставляется набор возможных кодов обработки (при учете указанных производных): 0 [хд, уд]; 1 [хв, уд]; 2 [хв, ув]; 3 [хд, ув] (здесь хд, уд и хв, ув соответственно учет
действительной и виртуальной производной функции изображения по х и у). Каждая точка может быть обработана несколько раз по разным кодам.
Алгоритм формирования кромок состоит из следующих пунктов:
1. Определяется первая точка кромки и фиксируется перепад градаций (его величина должна быть таковой, чтобы точка могла получить статус особой), координаты, и код обработки.
2. В окрестности первой точки ищется смежная точка, достаточно близкая по перепаду к предыдущей точке (перепад меньше заданной величины) и соответствующая коду обработки (код обработки новой точки образуется на основе правил перехода из предыдущей точки при учете ее кода).
3. Предыдущий шаг повторяется для поиска следующей смежной точки до тех пор, пока в восьмикомпонентной окрестности предыдущей точки есть точки, удовлетворяющие критериям принадлежности ее к данной кромке.
4. Если возможности включения в кромку по пункту 3 исчерпаны, то по соответствующим правилам код обработки изменяется, и рассматривается возможность повторного включения этой точки, но уже с другим кодом обработки. После этого повторяются пп. 2 и 3.
5. Если повторное включение точки в кромку невозможно, то осуществляется выход из процедуры формирования данной кромки и переход к обработке следующей линии.
Рассмотрим на примерах приведенный алгоритм. На рис. 1 представлен круг. Линейный образ (кромка), соответствующая этому кругу, помечена цифрами и буквами. В предложенной технологии этот фрагмент будет описан одной линией с последовательностью точек: 1-2-3-4-5-6-7-8-9-a-b-c-d-e-f-h. При этом точки 1..2 имеют 0 код обработки, т.к. в них учитываются только действительные производные по x и у; аналогично точки 3..6 - 1 код; 7..a - 2 код; b..e - 3 код и f..h - 0 код.
На рис. 2 изображено кольцо. Точки 1..2 имеют действительные производные по x и у и виртуальную производную по у. Следовательно, они могут быть обработаны по двум кодам: 0 и 3. Точки 4, 8, c, h имеют все четыре возможные производные, поэтому могут быть обработаны по любому коду. Линейный образ для приведенного фрагмента представляется одной линией и содержит 32 точки: 1-2-3-4-5-6-7-8-9-a-b-c-d-e-f-h-h-f-e-d-c-b-a-9-8-7-6-5-4-3-2-1. Процесс кодирования в этом случае происходит следующим образом:
■ первые 16 точек кодируются, как и в предыдущем случае;
■ кодирование оборвалось на точке h, после чего этой точке был присвоен новый код обработки, который привел к новой логической ветви кодирования.
■ новая ветвь кодирования закончилась в точке 1, так как при двойном проходе этой кромки все возможные логические ветви были исчерпаны.
Кромка фрагмента, изображенного на рис. 3, представляет собой последовательность точек, образующих непрерывную линию: 1-2-3-4-5-5-4-3-6-7-7-6-3-2-1. Особенность этой кромки заключается в том, что узловая точка 3 содержится в ней три раза, и именно это обстоятельство даёт возможность представить этот фрагмент в виде одной кромки. Очевидно, что в точке 3 имеются три производные: две действительные (по х и у) и одна виртуальная (по у). Первое появление этого пикселя имеет место после точки 2 с кодом обработки 1. После этого на точку 3 накладывается запрет при следующем посещении с
у 4
b a 9
c 8
d 7
e 6
f 5
h 4
1 2 3
у 4.
b a 9
c 8
d 7
e 6
f 5
h 4
1 2 3
у 4
х 0
7
6
4 5
2
Рис. 1. Тестовое изображение "Круг"
Рис. 2. Тестовое изображение Рис. 3. Тестовое изображение
"Окружность" "Y"
0
х
0
х
609
Волков И.А. Выделение фрагментов плоского изображения...
действительной производной по у и виртуальной производной по х (типы производных для кода обработки 1). Второе посещение точки 3 осуществляется по коду обработки 2 и, соответственно, под запрет попадают виртуальные производные по х и по у. Единственной доступной для проверки производной в точке 3 осталась действительная производная по х. Именно эта производная соответствует коду обработки 3, который вырабатывается геометрическим кодом при третьем посещении указанной точки. Это является основанием для очередного включения этой точки в кромку. В общем случае точка рассматривается как кандидат на включение в ту или иную кромку до тех пор, пока хотя бы производная одного типа не находится под запретом. Теоретически число включений пикселя в одну или несколько кромок не может превышать трех (любые три кода обработки перекрывают все типы производных). При обработке двух противоположных кодов (0-2 и 1-3) в одной точке, которые в сумме перекрывают все 4 типа производных, максимально возможное включение в кромки уменьшается до 2. Это характерно для линий толщиной в 1 пиксель.
На рис. 4а представлено черно-белое изображение "Клякса" из тестового полигона разработчиков полевой модели. Изображение состоит из 1 фрагмента черного цвета. При его обработке описанной процедурой формирования кромки на выходе получается одна кромка. На рис. 4б представлено поле особых точек кромки изображения рис. 4а. Размер окна равен 1 пиксель, поэтому на данном изображении виден только контур фрагмента. На рис. 4в также изображено поле особых точек рис. 4а, но окно равно 64 пикселя, поэтому фрагмент полностью закрашен. В общем случае для полной закраски фрагментов окно должно иметь размер равный размеру самого большого фрагмента (или в предельном случае размеру изображения).
Рис. 4а. Исходное черно-белое изображение "Клякса"
Рис. 4б. Выделенный фрагмент изображения "Клякса" (размер окна равен 1)
Рис. 4в. Выделенный фрагмент изображения "Клякса" (размер окна равен 64)
4. Цветные изображения
Цветовые плоскости в данной модели обрабатываются раздельно. Увеличение количества градаций цветности в каждой цветовой плоскости до 256 в явном виде процедуру выделения фрагментов не изменяет. Однако в некоторых случаях расположения одних фрагментов в окрестностях других с близкими уровнями цветовых градаций могут приводить к объединению в кромки точек разных фрагментов. Для решения этой проблемы помимо геометрического критерия добавления точек в кромку необходимо добавить цветовой критерий. Для записи цветовой информации в кромку помимо геометрического кода необходимо добавить запись информации о цвете. Это возможно сделать двумя путями: добавляя информацию об уровне цветовой градации конкретной точки или о перепаде градации. Очевидно, что оба случая являются недостаточными, т. к. не несут информации о цветности в окружении, что приведет к ошибке, если, например, в окружении одной кромки будет вторая кромка. Для добавления информации об окружении достаточно добавить кромку, описывающую фрагмент целиком.
На рис. 5 представлено тестовое изображение с тремя фрагментами. Пусть в пикселях, обозначенных цифрами, уровень градации цветности равен 100. В ячейках, помеченных латинскими буквами, уровень градации цветности достигает 200. Ячейки, обозначенные другими символами, имеют уровень градации цветности 50. Цветность в непомеченных ячейках равна нулю.
Пусть порог для определения особых точек равен 25 (в этом случае все помеченные точки являются особыми). Используя в качестве критерия для объединения пикселей в кромки близость цветовых градаций, получим соответственно различным градациям цветности 3 кромки и плюс кромку, опоясывающую весь фрагмент. В общем случае, используя критерий близости цветовых градаций, в кромку могут быть объединены пиксели с разным уровнем градации цветности.
у А
о
Л
& 7
@ $ ! * 6
5
4 d e f
3 c
2 b
1 a
Рис. 5. Тестовое изображение с тремя фрагментами
610
Вестник МГТУ, том 13, №3, 2010 г.
стр. 607-612
Рис. 6а. Исходное тестовое изображение
Рис. 6б. Кромки тестового изображения
Рис. 6в. Поле особых точек тестового изображения (окно = 128, порог = 15)
На рис. 6а представлено тестовое изображение, на котором изображены стандартные геометрические фигуры разных цветов. На изображении присутствуют пересечения фрагментов с разным уровнем цветовых градаций. На рис. 6б черным цветом показаны кромки рис. 6а. На рис. 6в изображено поле особых точек, построенное по кромкам. Как видно из сравнения рис. 6а и рис. 6б все элементы исходного изображения описываются кромками. В данном примере всего 35 кромок, каждая из которых соответствует фигуре: части линии, квадрату, кругу или букве. Буква "А" имеет две кромки: одна внешняя, опоясывает фрагмент целиком, вторая - внутренняя.
5. Выделение фрагментов зашумленных изображений
Черно-белые изображения - это, как правило, изображения, созданные в графических редакторах (чертежи, графики, схемы), т.е. изначально цифровые. Вследствие этого они не содержат шумов. Цветные изображения, как правило, получаются с аппаратных считывающих устройств (сканирующих или фотографирующих) и содержат помехи.
Шумы могут вносить негативный эффект в результат процедуры выделения фрагментов изображений. Для улучшения качества выделения фрагментов вместо оригинального изображения следует обрабатывать разностное изображение, полученное вычитанием из исходного изображения его сглаженной копии (Яне, 2007). Сглаженное изображение может быть получено средствами полевой технологии (Болтов, Волков, 2010).
Например, при сжатии изображений алгоритмом jpeg на краях фрагментов формируется ореол в виде пикселей с низкой яркостью. Этот ореол также обрабатывается механизмом кромки (при условии срабатывания порога). Указанный шум, как правило, сосредоточен на линиях перепада градаций цветности и имеет локальный характер, поэтому для его фильтрации в алгоритм обработки кромок достаточно добавить ветвь отсечения кромок с малым количеством точек. При таком подходе отсекается порядка 10 % кромок в цветных полутоновых изображений, что не влияет на качество поля особых точек.
6. Заключение
В работе предложен подход выделения фрагментов изображений. Этот подход базируется на полевой модели, что позволяет реализовать указанную операцию непосредственно в плоскости оригинала (в цветовой плоскости). Сравнивая предложенный алгоритм с подходом к сегментации изображения на основе слежения по контуру (Яне, 2007) можно выделить следующие преимущества:
• в основе лежит построение линейного описания фрагмента (кромки), пригодное для анализа в системах машинного зрения;
• алгоритм является более быстрым, т.к. обрабатываются только особые точки (число этих точек составляет, как правило, не более 5-25 % от общего числа точек в изображении);
• управление глобальным порогом позволяет выделять фрагменты слоями;
• возможна компактная запись фрагмента.
К недостаткам можно отнести сложность реализации процедуры построения кромки (и, как следствие, возрастание вероятности появления ошибок в коде).
611
Волков И.А. Выделение фрагментов плоского изображения...
Литература
Болтов Ю.Ф., Волков И.А. Сжатие графической информации на основе её представления в виде полевой структуры. Труды учебных заведений связи. СПб., СПбГУТ, № 176, с.98-113, 2007.
Болтов Ю.Ф., Волков И.А. Сглаживание изображений на основе решения краевой задачи. Журнал телекоммуникации, № 5, c.29-37, 2010.
Кононов В., Конушин В. Применение уравнения Пуассона в задачах обработки изображений [Электронный ресурс]. Сетевой журнал "Компьютерная Графика и Мультимедиа". - М., 2009. -№ 7(1). URL: http://cgm.computergraphics.ru/issues/issue17/poissonimaging.
Чечель А.О., Чистов В.С. Анализ статических сцен с применением концепции полевых структур: математическая модель. Современное телевидение. Труды 18-й Междунар. научно-техн. конференции, Москва, 16-17марта 2010 г., М., ФГУПМКБ "Электрон", c.206-209, 2010.
Яне Б. Цифровая обработка изображений. М., Техносфера, 584 с., 2007.
612