Научная статья на тему 'О СИНТАКСИЧЕСКОМ СПОСОБЕ РАСПОЗНАВАНИЯ ОБРАЗОВ'

О СИНТАКСИЧЕСКОМ СПОСОБЕ РАСПОЗНАВАНИЯ ОБРАЗОВ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
299
24
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МАТЕМАТИЧЕСКАЯ ЛИНГВИСТИКА / ЗАДАЧА РАСПОЗНАВАНИЯ ОБРАЗОВ / ПОРОЖДЕНИЕ ИЗОБРАЖЕНИЯ / РАСПОЗНАВАНИЕ ИЗОБРАЖЕНИЯ / ГРАММАТИКА ИЗОБРАЖЕНИЯ / ПРЕДИКАТ / СИНТАКСИЧЕСКИЙ АНАЛИЗ / ГРАФИЧЕСКИЙ ПРИМИТИВ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Светлаков А. В., Царегородцев Е. Л.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ON THE SYNTACTIC METHOD OF PATTERN RECOGNITION

The introduction substantiates the relevance of the topic of work: lists the disadvantages of neural networks in pattern recognition and concludes that it is necessary to use other methods. The paper modifies formal grammars from mathematical linguistics to apply them in the field of pattern recognition. The task of pattern recognition in terms of grammars and formal languages has been formulated, and examples of generating and recognition of specific structures (the structure of type "0", and the notched structure), and the algorithms for image processing based on automata and context-free grammars have been described in words. These algorithms can be implemented in any high-level image-processing programming language. These studies can have a broad application, including technical sciences: for example, to determine the type of building on its visual appearance.

Текст научной работы на тему «О СИНТАКСИЧЕСКОМ СПОСОБЕ РАСПОЗНАВАНИЯ ОБРАЗОВ»

О синтаксическом способе распознавания образов

Светлаков Алексей Владимирович

студент, кафедра прикладной математики и информатики, ФГБОУ ВО «Смоленский государственный университет» в г. Смоленске, seferlian@mail.ru

Царегородцев Евгений Леонидович

кандидат технических наук, доцент, кафедра «Технологические машины и оборудование», ФГБОУ ВО «Национальный исследовательский университет «МЭИ» филиал в г. Смоленске, evgencar@rambler.ru

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

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

Введение

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

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

Постановка задачи

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

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

х

X

о

го А с.

X

го т

о

Задача порождения изображения

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

м о м м

см см о см

о ш т

X

<

т О X X

щем виде грамматика содержит терминальный алфавит, нетерминальный алфавит, правила вывода, которые содержат символы этого алфавита, и аксиому из нетерминального алфавита[1]. Пример простейшей грамматики: Т = {а,Ь), N = {5}, Р = {Б ^ аБЬ\£}, Б - аксиома.

Типичная задача распознавания образов формулируется следующим образом: на вход подается изображение одного из двух классов или и/2, и требуется определить, к какому классу относится изображение. Для данного примера можно сформулировать следующую аналогичную задачу: на вход подаются сначала символы «а», а затем «Ь», пусть класс - это цепочки, состоящие из равного количества указанных символов, ш2 -остальные. Требуется определить класс цепочки. Известно, что данная задача решаема с помощью синтаксического анализа, например, при использовании LL(1)-анализатора: если при анализе удалось получить аксиому 5, цепочка принадлежит классу и?!, в противном случае - и/2. Действительно, данная грамматика порождает язык 1 = {апЪп\п > 0}, и принадлежность языку интерпретируется как принадлежность классу и?±, и таким образом, классификация проводится на основе того, может ли данная цепочка порождаться определенной грамматикой.

Пример был приведен в качестве основы обобщения подобного подхода к изображениям. При работе с ними пусть терминалами будут заранее определенные графические примитивы (точка, отрезок, окружность...), нетерминалы не изменят свой вид. Однако в обычных грамматиках положение терминалов учитывается благодаря их внутренней структуре (возможны только два положения: слева и справа), и нет необходимости учитывать это дополнительно. Изображения двумерны, а это означает, что придется дополнительно учитывать местоположение. Введем в грамматику п-местный предикат, который будет сообщать положение элементов относительно друг друга: например, 1{х,у), что читается как «х расположен левее у». Очевидно, что предикат не является терминалом, поскольку он в явном виде не присутствует в изображении, но и не является нетерминалом, поскольку может находиться в конечных цепочках.

Таким образом, грамматика изображений - это пятерка элементов {Т,И,Р,Р,3), где Т - алфавит графических примитивов (терминалов), N - алфавит нетерминалов, - множество предикатов над терминалами, Р - множество правил вывода, Б -аксиома из нетерминалов. Сентенциальные формы этой грамматики могут содержать терминалы, нетерминалы и предикаты, тогда как язык определяется как множество сентенциальных форм, состоящих из терминалов и предикатов.

Пример 1. Необходимо составить грамматику для порождения изображения числа «0» на табло. Для всех таких чисел достаточно двух терминалов:

а - горизонтальная черта, Ъ - вертикальная черта, и предикатов: А(х,у) - «х находится над у» и 1{х,у) - «х расположен левее у».

Тогда структуру, похожую на «0», можно описать так: А (а,Л(л(ДЬ,Ь),,ЦЬ,Ь)),а)). Для упрощения вида цепочек можно опускать лишние элементы (типа скобок, запятых), заранее имея в виду, что А и Ь - двухместные предикаты, тогда цепочка упростится: АаААЬЬЫЪЪа. Далее следует составить порождающую грамматику, и сделать это можно различными способами. В целях описания общего случая грамматика составлена в нормальной форме Грейбах: ^^ АЯС, С^ АЪЛ, Ъ^ АНН, Н^ ЪЪЪ, Л^ а, Ъ^Ъ (для удобства нетерминалы представлены особыми письменными буквами).

Для построения изображения необходимо уточнять, что именно данный предикат означает в конкретном случае. Обычно на них налагают некоторые ограничения. В частности, А{х,у) будет истинным, когда первый элемент находится непосредственно над вторым, причем при разных размерах меньших объект находится в «границах» большего, в противном случае ложным, для 1{х,у) -аналогично (за исключением требования непосредственности). В таком случае грамматика будет порождать изображение, представленное на рис. 1 (а), но в связи с вариативностью предикатов она будет порождать и структуры на рис. 1 (б). На рис. 1 (в) указаны структуры, которые грамматика породить не может.

а|

в)

□ -л и

пи С!

п

и

Рис. 1. Образы структуры типа «0», а - идеальный случай порождения, б - возможные порождения, в - невозможные порождения.

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

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

сводимых к структурам типа граф[2, с 352]. Необходимо рассмотреть этот язык в контексте введенной в статье определения грамматики.

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

Головиаяточна

*-—У*

а+Ь

ХигхгшмА

э - Ь

а

Рис. 2. Представление языка описания изображений, а - графический примитив с выделенным вектором, б - основные типы предикатов над примитивами

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

Пример 2. Пусть дана грамматика, где терминалами будут следующие объекты: а - горизонтальный отрезок (хвостовая точка слева), Ъ - диагональный отрезок из нижнего левого угла, с - диагональный отрезок из верхнего правого угла. Правила грамматики выглядят так: а*Ъ, Ъ^Ъ + С, С -> с + £|с.

а * Ь+с+а * Ьк +а * Ь+с+а * Ьк +а * Ь+с

Рис. 3. Некоторые порождаемые образы грамматики из примера 2.

Данная грамматика способна порождать зубчатую структуру (рис. 3), то есть цепочки вида а* Ь + с, а*Ь + с + а*Ь + с, а*Ь + с + а*Ь + с + а*Ь + с и так далее. Примечательно, что грамматика является праволинейной регулярной, но, тем не менее, порождает бесконечное множество цепочек (в отличие от предыдущего примера), то есть образ с произвольным количеством зубцов.

Задача распознавания изображения

В математической лингвистике задача распознавания цепочки состоит в определении принадлежности этой цепочки языку (то есть заданной наперед грамматике). Для автоматных грамматик анализатором чаще всего выступает конечный автомат, для КС-грамматик - LL-анализатор (или LR-анализатор). Следует применить подобный подход и здесь, обобщив синтаксический анализ на случай изображений. Если синтаксический анализ выполнен успешно, то изображение принадлежит классу м?!, в противном случае - классу м/2.

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

Левый вывод цепочки из грамматики выглядит так: 5 ^ АЖ ^ АаС ^ АаАЪЛ ^ АаААЯЯЛ. ^ АаААЬШКЛ ^ АаААЬЬЪКА. ^ АаААЬЪЫНЯ ^ АаААЪЪЫЪЪЛ ^ АаААЪЪЫЪЪЛ ^ АаААЬЪЫЪЪЛ ^ АаААЬЬЫЬЬа.

Существенным отличием от классического метода рекурсивного спуска является тот факт, что понадобится стек для хранения предикатов.

На первом шаге аксиома грамматики раскрывается в предикат А и пару нетерминалов. Предикат, учитывающий взаимное положение элементов запоминается в стек, а анализ переходит на следующий этап: на нем нетерминал Л раскрывается в терминал а. Здесь распознаватель считывает изображение и ищет графический примитив, соответствующий терминалу. Если такого не найдено, то анализ завершается с ошибкой, при правильном же изображении такой примитив найдется. На следующем шаге, используется правило С^ АЪЛ, новый предикат записывается в стек. Следующие два шага аналогичны: стек пополняется предикатами А и I. На седьмом шаге с использованием правила Ъ^Ь анализатор ищет вертикальную черту в изображении. Восьмой шаг аналогичен, однако, так как все переменные предиката обратились в терминалы, то предикат Ь снимается со стека, а анализатор проверяет истинность предиката: находится ли найденный примитив справа от

X X

о

го А с.

X

го т

о

м о м м

см см о см

о ш т

X

3

<

т О X X

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

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

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

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

4) Для того, чтобы анализатор знал, когда все переменные предиката проанализированы, можно ввести счетчик переменных: при занесении предиката в стек он обнуляется, при появлении терминала он увеличивает свое значение, а при достижении значения 2 (в общем виде - п) можно производить проверку истинности предиката и снимать его со стека.

5) Если исходная грамматика имеет альтернативные правила, то необходимо осуществлять возврат по правилам.

С учетом разобранного примера и замечаний можно записать алгоритм синтаксического анализа изображения.

Синтаксический анализ изображения из примера 2. Грамматика является автоматной, а значит лучший распознаватель для нее - детерминированный конечный автомат (ДКА). В отличие от

предыдущего примера осуществляется проще, но перед этим необходимо построить соответствующую диаграмму состояний (рис. 4).

Рис. 4. Диаграмма состояний ДКА грамматики из примера 2.

Распознавание образов с помощью ДКА в принципе несложно. Анализ начинается с начального состояния §, по которому возможен переход только в состояние В по терминалу а и предикату «*». Распознаватель считывает изображение и ищет горизонтальный вектор (в этом случае поиск осуществляется не по примитивам, а по их векторам), а также происходит проверка, присоединяется ли какой-либо вектор к данному хвостовой точкой к своей хвостовой точке. Если таких векторов или соединений не нашлось, то анализ завершается с ошибкой. Из состояния В возможен переход только в состояние С по символу Ъ и предикату «+». На этом этапе осуществляется проверка, что найденный на предыдущем шаге вектор действительно соответствует терминалу Ъ, а также производится поиск какого-либо вектора, который примыкает к головной точке Ъ своей хвостовой точкой. Из состояния С возможны два перехода. На этом этапе производится проверка, что найденный вектор соответствует вектору с, а дальше ищется какой-либо вектор, примыкающий своей хвостовой точкой к головной точке с. Если такой вектор найден, то автомат переходит в состояние § и цикл повторяется заново. Если такого вектора нет, то осуществляется переход в конечное состояние О, и образ принимается (анализ успешно завершается).

Замечание: как и в предыдущем примере, поиск следует настроить так, чтобы одномоментно работать с одним вектором. Если до этого до этого нашлось несколько одинаковых векторов, то к ним нужно вернуться, когда анализатор на каком-то этапе зашел в тупик (или когда завершился). Только в случае, когда на каком-то этапе все векторы проверены и отвергнуты, образ отклоняется.

Заключение

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

Сформулирована задача распознавания образов в терминах грамматик и языков, а также рассмотрены примеры порождения и распознавания конкретных структур (структуры типа 0, и зубчатой структуры), и в общих чертах описаны алгоритмы распознавания изображений на основе автоматных и КС-грамматик.

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

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

Дальнейшие возможные направления работы: улучшение алгоритмов и расширение грамматик для решения общей задачи классификации изображений. В частности, если существует несколько классов образов {ш1,ш2,...,шп}, то можно ввести грамматику, в которой 5 = {51,52,.5И_1} -множество аксиом. При проведении синтаксического анализа изображения, если окажется, что 5; порождает изображение, то оно относится к классу (за исключением последнего класса - он соответствует ошибочному результату анализа).

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

On the syntactic method of pattern recognition Svetlakov A.V., TSaregordtsev E.L.

Smolensk State University

JEL classification: C10, C50, C60, C61, C80, C87, C90

The introduction substantiates the relevance of the topic of work: lists the disadvantages of neural networks in pattern recognition and concludes that it is necessary to use other methods. The paper modifies formal grammars from mathematical linguistics to apply them in the field of pattern recognition. The task of pattern recognition in terms of grammars and formal languages has been formulated, and examples of generating and recognition of specific structures (the structure of type "0", and the notched structure), and the algorithms for image processing based on automata and context-free grammars have been described in words. These algorithms can be implemented in any high-level image-processing programming language. These studies can have a broad application, including technical sciences: for example, to determine the type of building on its visual appearance. Keywords: mathematical linguistics, image recognition problem, image generation, image recognition, image grammar, predicate, syntactic analysis, graphic primitive. References

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1. A. Aho, R. Sethi, J. Ullman, S. Lam. Compilers: principles, technologies

and tools, 2nd ed. - 1184 c.

2. Tu J., Gonzalez R. Principles of pattern recognition; Publishing house:

Moscow: Mir, 1978 - 416 p.

3. Formal languages and compilers : tutorial for high schools / A. A. Malyavko. - Moscow : Publishing house Yurait, 2020. - 429 c.

4. Pratt, W. Digital Image Processing: Translated from English - Moscow: World, 1982. - Book 2 - 480 p.

Литература

1. А. Ахо., Р. Сети, Дж. Ульман, С.Лам. Компиляторы: принципы, технологии и инструментарий, 2-е изд. — пер. с англ. - М.: ООО «И. Д. Вильямс», 2008. - 1184 с. Н

2. Ту Дж., Гонсалес Р. Принципы распознава- О ния образов; Изд-во: М.: Мир, 1978 г. - 416 с. А

3. Формальные языки и компиляторы : учебное Ц пособие для вузов / А. А. Малявко. - Москва : Из- _ дательство Юрайт, 2020. - 429 с.

4. Прэтт У. Цифровая обработка изображений: Пер. с англ. — М.: Мир, 1982. — Кн. 2 — 480 с. В

т

м о м м

i Надоели баннеры? Вы всегда можете отключить рекламу.