- •Глава 3
- •3.1. Задача описания
- •3. 1.1. Содержательная
- •3.1.2. Общие подходы
- •3.2. Методы и алгоритмы
- •3.2.1. Категории признаков.
- •3.2.2. Методы и алгоритмы
- •Сканирующий алгоритм определения связности
- •3.2.2. Методы и алгоритмы
- •Методы и алгоритмы подсчета признаков
- •Алгоритм подсчета метрических признаков на пирамидах
- •Сканирующий алгоритм вычисления метрических признаков
- •3.3. Методы вычисления
- •3.4. Структурные методы
- •3. 4. 1. Структурные методы
- •Методы сегментации кривых
- •Алгоритм оценки кривизны дискретной кривой через кусочно-линейную аппроксимацию кривой
- •Алгоритм вычисления углов дискретной кривой через анализ поведения угла отклонения касательной к кривой
- •3. 4. 1. Синтез структурных
- •1) , 4) ,
- •2) , 5) ,
- •3) , 6) ,
- •Алгоритм построения «дерева полосок»
- •3. 4. 3. Структурные методы
- •Построение реляционные дескриптивных структур на основе разбиения области
- •Алгоритм разбиения многоугольника на выпуклые составляющие
- •Алгоритм построения дерева вогнутостей
- •Алгоритм прослеживания границ для построения дерева связности
- •Построение реляционных дескриптивных структур на основе декомпозиции области через покрытие
Алгоритм вычисления углов дискретной кривой через анализ поведения угла отклонения касательной к кривой
begin
/* расширение кривой */
for j :=1 to2m do
begin xj+N:=xj;yj+N := yj end;
/*назначение первой точки кривой временной вершиной*/
v0 := 1; p := 0; c := 0;
repeat
l := vp
/* формирование и анализ условной оси отсчета */
определить условную ось отсчета как дискретную дугу
X(l) = {(хj, уj); j := l, l + 1, ..., l + m - 1};
вычислить нормализованную матрицу рассеяния А для дуги X(l)
if ((1 – 4 detA)1/2 <)then
begin
отменить ось отсчета X(l);
l :=l + 1
end
else
begin
утвердить ось отсчета Х(1);
if(l – vp>d) then
/* определение вершины сравнением с параметром d */
begin
с : = с + 1; р := р + 1; vp := l;
пометить вершину vp как вершину превышения параметра d
end
else
begin
/*определение вершины анализом отклонения касательной */
repeat
k := vp + 1;
определить дискретную дугу
Y(k) = {(хj, уj); j := k, k + 1, ..., k + m - 1};
вычислить нормализованную матрицу рассеяния В для дуги Y(k)
Найти косинус уела отклонения касательной для дуг Х(l), Y(k) no формуле
(*) ;
k := k + 1
until ((k>N + 1) or (cos2cos2)
if (k >N + l) then
/*уточнение места вершины */
определить множество значений отклонений касательной для дискретных дуг
Y(j - m), Y(j) по формуле (*) как
;
if ({j+1 - j} меняет знак для j = k, k + 1, ..., k + m — 1) then
vp+1:=j
else
vp+1:=k+ m/2;
пометить вершину vp+1 как вершину превышения порога отклонения касательной;
с := с + 1;
р :=р+ 1;
end
end
until l>N
end
При этом в алгоритме приняты следующие обозначения:
Y(k) — дискретная дуга (подмножество точек кривой), состоящая из m точек, начиная с k-й;
X((l), Y(k)) — угол отклонения касательной для двух дискретных дуг Х(l), Y(k);
aij, bij — элементы матриц рассеяния А и B двух дискретных дуг;
det А — определитель матрицы А:
vp — идентификатор вершины (порядковый номер точки, соответствующей вершине на дискретной кривой);
р —порядковый номер вершины.
Методы кусочно-линейной аппроксимации достаточно детально освещены в [14, 17].
Отметим, что иногда в качестве примитивных элементов контура удобно принимать более сложные конструкции, чем прямолинейные отрезки и углы. Например, примитивами могут выступать дуги заданной конфигурации. В этом случае в аппроксимации участвуют кривые выше первого порядка либо форма примитивов описывается комбинацией прямолинейных отрезков и углов [37, 71].
3. 4. 1. Синтез структурных
описаний кривых
Синтез структурных описаний осуществляется посредством установления формальных отношений между примитивными элементами, выделенными на предыдущем этапе. Можно выделить три подхода к решению проблемы синтеза структурных описаний. В рамках синтаксического подхода, непосредственно заимствованного из классической теории формальных грамматик и языков, изображение описывается строковыми (одномерными) грамматиками, символами алфавита которых являются примитивные элементы формы, либо грамматиками более высокой размерности (грамматиками сетей, таблиц, графов, деревьев). Отметим, что при использовании грамматик более высокой размерности устраняется недостаток одномерной конкатенации символов-примитивов и делается возможным использование грамматик указанного типа для описания не только контурных изображений, но и областей. Таким образом, исходное изображение может интерпретироваться как строка языка, порожденного некоторой грамматикой. Синтаксический разбор этой строки осуществляет проверку корректности организации данной строки в отношении правил грамматики, представляющей некоторый класс форм. Дерево разбора используется для структурного описания формы объекта (изображения) [28, 43].
Синтактико-семантнческий подход к синтезу структурных описаний основан на использовании атрибутных грамматик (одномерных и более высокой размерности), учитывающих семантическую информацию при описании изображении в явном виде. Здесь по-прежнему синтаксический разбор является заключительной фазой анализа, но введение семантических правил делает описание изображения более информативным [43, 45]. Альтернативный подход к синтезу структурных описаний кривых — использование реляционных структур, устанавливающих отношение между выделенными примитивными элементами без использования синтаксических методов. Такими структурами могут быть взвешенные графы (устанавливающие обычно пространственные отношения между примитивами) или «деревья полосок» (strip trees), устанавливающие отношения типа «часть— целое» [32, 47, 65].
Синтаксические методы используют в задачах распознавания и описания зрительных образов, что накладывает строгие требования на тип входного изображения [43]:
объекты изображения могут быть разложены на относительно небольшое число примитивов, причем примитивы должны быть выделены четко и однозначно;
примитивы должны быть распознаваемы автоматической процедурой;
изображение должно быть хорошо структурировано.
В этой связи наиболее эффективное применение синтаксические методы нашли в таких задачах, как анализ рукописных и печатных текстов, иероглифов, волновых форм, печатных плат, чертежно-графической информации (ЧГИ) и т. д. [28, 43, 44, 45]. К сожалению, далеко не все классы реальных изображений обладают указанными выше свойствами. Не всегда удается легко распознавать примитивы. Поэтому при их выборе часто требуется компромисс между использованием примитивов как фундаментальных частей изображения и простотой их распознавания. Обычно для контурных изображений хорошими примитивами являются отрезки линий (прямолинейные отрезки могут быть охарактеризованы началом, концом, длиной и углом наклона отрезка, криволинейные — началом, концом и кривизной).
На этапе синтеза структурного описания осуществляется конструирование (вывод) грамматики, порождающей язык описания изображения. Здесь также приходится выбирать между описательной мощностью грамматики и эффективностью распознаватели (алгоритма синтаксического анализа).
Создано множество эвристических процедур вывода грамматик для описания изображений хромосом, шрифтов, химических структур, отпечатков пальцев. Поиски эффективных дескриптивных грамматик привели к созданию грамматик более высокой размерности (сетей, таблиц, графов. деревьев) [28, 43]. В настоящее время сформулированы два основных аналитических подхода к проблеме вывода грамматик — через перенумерацию и посредством индуктивного вывода [43]. Первый использует информацию о наборе строк целевого языка и наборе строк, не принадлежащем целевому языку. Второй исходит из рекурсивной структуры грамматики: рекурсивная структура ищется путем отсечения и вставки подстрок из «правильной» строки и проверки результирующей строки на «правильность» [43].
Наиболее привлекательное свойство синтаксических методов описания заключается в возможности задавать практически произвольную допустимую степень детализации иерархической структуры формы и получать таким образом не только глобальное описание формы, но и локальное описание нужной точности.
Как уже отмечалось, применение строковых грамматик часто неэффективно, а иногда просто невозможно, например, для множества классов изображений в силу одномерного характера конкатенации символов. В целях устранения недостатков, свойственных одномерной конкатенации, разработаны грамматики более высокой размерности [28, 35, 43, 69]. В монографии [28] подробно освещены проблемы применения одномерных грамматик, а также грамматик деревьев, сетей, графов в задачах синтеза структурного описания изображений. Интересным классом дескриптивных грамматик более высокой размерности являются и грамматики таблиц.
Изометрическая грамматика таблиц [35, 69] есть пятерка G = (VN, VT, Р, S, #), где, как обычно, VN — конечное непустое множество нетерминальных символов; VT—конечное непустое множество терминалов; и —фон, или пустой символ; Р — конечное множество продукций в форме , где и — геометрически идентичные таблицы (массивы), построенные на множестве ; состоит не из всех пустых символов #; — начальный символ. Подстановки совершаются следующим образом: таблицау непосредственно выводима из х, если существует продукция , такая, что — подтаблица из x, а у идентична x, только вместо подтаблицы содержит в соответствующем месте подтаблицу . Язык L(G), порожденный грамматикой таблиц, — множество всех таблиц, составленных из терминальных символов, символов # и выводимых из символа S на фоне, состоящем из символа #.
В качестве примера рассмотрим грамматику таблиц, порождающую всевозможные конфигурации формы латинской U с тремя сторонами произвольной длины [69]:
G = ({S, S1, S2, S3}, {a}, P, S, #).
Продукции из Р: