Научная статья на тему 'Разработка библиотеки процедур для лекций-демонстраций и лабораторных работ по курсу «Распознавание образов»'

Разработка библиотеки процедур для лекций-демонстраций и лабораторных работ по курсу «Распознавание образов» Текст научной статьи по специальности «Компьютерные и информационные науки»

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

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Хан Полина Вениаминовна, Самойленко Сергей Борисович

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Хан Полина Вениаминовна, Самойленко Сергей Борисович

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

The methods of images recognizing in higher schools teaching are discussed in this article. The theoretical principles, names, input/output parameters and usage procedures examples written on Wolframe Mathematica language designed for illustrating lectures and tools provision for laboratory works are given.

Текст научной работы на тему «Разработка библиотеки процедур для лекций-демонстраций и лабораторных работ по курсу «Распознавание образов»»

РАЗРАБОТКА БИБЛИОТЕКИ ПРОЦЕДУР ДЛЯ ЛЕКЦИЙ-ДЕМОНСТРАЦИЙ И ЛАБОРАТОРНЫХ РАБОТ ПО КУРСУ «РАСПОЗНАВАНИЕ ОБРАЗОВ»

П.В. Хан, С.Б. Самойленко (КамчатГТУ)

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

The methods of images recognizing in higher schools teaching are discussed in this article.

The theoretical principles, names, input/output parameters and usage procedures examples written on Wolframe Mathematica language designed for illustrating lectures and tools provision for laboratory works are given.

Введение

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

Государственный образовательный стандарт высшего профессионального образования предусматривает ряд курсов, включающих изучение методов распознавания образов. Это, например, курс «Теория обработки информации в системах ближней локации» для специальности 210800 «Автономные информационные и управляющие системы», а также курсы «Системы распознавания образов», «Нейронные сети» для специальности 210100 «Управление и информатика в технических системах».

В то время как теоретические основы методов распознавания могут быть изложены и освоены в виде схематических рисунков, выполненных от руки, математических выкладок и расчетов на калькуляторе, рассмотрение практически важных примеров большой размерности требует применения электронной вычислительной машины. И здесь возникает методологическая проблема: как представить работающий метод в максимально наглядной форме. С одной стороны, изучаемые ранее курсы для студентов перечисленных выше специальностей не дают навыков разработки программного обеспечения. В курсах, связанных с распознаванием образов, также не предусмотрено достаточного количества лабораторных часов для обучения программированию. Следовательно, нельзя требовать от студентов, чтобы они «с нуля» разрабатывали программы, реализующие методы распознавания образов. С другой стороны, как показал опрос студентов, изучивших курс «Нейронные сети», выполнение лабораторных работ на готовом программном обеспечении, где остается только вводить численные параметры и наблюдать графическое представление результатов, не позволяет увидеть связь между изучаемыми на лекциях формулами и процессом обработки реальных данных. В данной работе предпринята попытка нащупать «золотую середину» между вышеупомянутыми подходами путем разработки предметно-ориентированного языка на основе языка программирования и рабочей среды Wolfram Mathematica.

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

Описание и обоснование выбранной методики

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

узнавать не только численные значения входных, выходных и промежуточных значений, но и функции преобразования на различных уровнях обработки данных. Особенностью Wolfram Mathematica является то, что помимо языка программирования и среды разработки, в стандартный пакет поставки входит обширная база знаний и функций для всех разделов математики, а также количественные данные справочного характера по химии, физике и другим наукам. Это позволяет на всех этапах реализации алгоритмов распознавания образов альтернативно использовать либо написанные вручную простые учебные алгоритмы, либо встроенные в систему. Использование встроенных алгоритмов дает возможность проверить корректность реализации учебного алгоритма, повысить быстродействие и точность конечной реализации метода и избежать ручной разработки алгоритма там, где это не необходимо для понимания теоретических основ курса.

Однако использование программы Wolfram Mathematica в компьютерном классе затруднено высокой стоимостью лицензионного дистрибутива. Поэтому в будущем планируется перевести данный пакет демонстраций на какой-нибудь свободно распространяемый функциональный язык программирования, например, на язык Schema. Интерпретируемость и обработка данных

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

Основные определения

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

Распознавание или классификация образа заключается в нахождении вероятности принадлежности его к каждому из М классов и указании класса, соответствующего наибольшему значению вероятности.

Обучающая выборка может непосредственно использоваться в процессе классификации, как это происходит, например, в методе К ближайших соседей. Но чаще процесс классификации делится на два этапа. На первом этапе, называемом обучением, на основе обучающей выборки находятся коэффициенты решающих функций системы. На втором этапе распознаваемый образ (образы) классифицируется путем подстановки в решающие функции [1, 2].

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

Векторизация образов. Классифицироваться и распознаваться могут любые образы, например, двумерные изображения, пространственные распределения значений некоторой величины, временные последовательности. Для этого надо выбрать однозначное отображение между каждым образом рассматриваемого типа на числовой вектор. Компоненты вектора могут быть значениями яркости или некоторой функцией цвета в каждой точке растрового изображения, прочтенного в виде построчной развертки, величиной сигнала в выбранные моменты времени, компонентами Фурье или вейвлет-разложения исходного сигнала или изображения [1].

Описание пакета

Выделение главных компонент. Метод выделения главных компонент (PCA, Principal Component Analysis) применяется для предварительной обработки данных в целях понижения их размерности [3]. Это уменьшает время, затрачиваемое на обучение системы и сам процесс распознавания, а также дает возможность, в академических целях, визуализировать весь набор данных в виде точек на прямой, плоскости или в трехмерном пространстве и на глаз оценить

разделимость классов.

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

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

Получение матрицы проекции несложно и может выполняться в качестве лабораторной работы при наличии встроенного метода поиска собственных векторов матриц.

В данном пакете метод выделения главных компонент реализован в виде функции Set'PCA, которая принимает список векторов образов обучающей выборки и число главных компонент, а возвращает функцию преобразования PCA. Функция PCA содержит найденные собственные вектора, используемые в качестве матрицы проекции. Она принимает вектор образа полной размерности и возвращает его в редуцированном виде. у Генерация входных данных для лабораторных

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

Для генерации двумерных «облаков» n точек с центром в точке х и дисперсией (a, b) вдоль векторов, повернутых относительно осей координат на угол ф, создана функция Random Ball. Функция возвращает х и у координаты сгенерированных точек.

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

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

Символ сначала преобразуется в объект векторной графики Graphics, потом в Bitmap при помощи встроенной функции Rasterize, затем изображение приводится к монохромному виду и на него накладывается шум.

Метод К ближайших соседей (KNN, K Nearest Neighbors). Метод K ближайших соседей является методом классификации без предварительного обучения [3]. В процессе распознавания каждый классифицируемый образец сравнивается со всеми образцами обучающей выборки. Вероятность принадлежности классифицируемого образца к каждому классу определяется долей обучающих образцов данного класса среди K ближайших к классифицируемому образцу.

Реализованная в данном пакете функция KNN является функцией трех переменных, каррированной по последней переменной. То есть после получения первых двух аргументов, обучающей выборки и используемого числа соседей, KNN[TrainingSet, K] становится функцией одного переменного, х, являющегося распознаваемым образцом. Это позволяет использовать KNN[TrainingSet, K] синтаксически так же, как обучаемые заранее

ю

Рис. 1. Пример классов образов

классификаторы, такие как описанный ниже классификатор Байеса.

В коде функции KNN сначала вычисляется массив расстояний от точки х до каждой точки из массива TrainingSet с сохранением разбиения на классы. Потом при помощи встроенных функций Take и Sort выбираются K ближайших точек. Количество выбранных точек в каждом классе подсчитывается функцией BinCount, после чего функцией Ordering определяется номер класса с наибольшим количество элементов из числа K соседей.

Классификатор Байеса (Bayes Classifier). Классификатор Байеса относится к статистическим методам распознавания [1, 2]. Образцы каждого класса априори считаются распределенными по многомерному нормальному закону (распределению Гаусса).

Р(Х wi) = N exp[x - m )W<(х - т)], i=1,..., т. (1)

Доля образцов каждого класса в обучающей выборке N. /N считается репрезентативной в смысле частоты встречаемости образцов данного класса и среди распознаваемых образцов. В отличие от метода KNN в методе Гаусса процессы обучения и собственно распознавания отделены друг от друга. Процесс обучения заключается в вычислении центроидов (средних значений) классов m и обратных матриц ковариации W.

В процессе распознавания образы обучающей выборки уже не нужны. Используются сохраненные значения т и W для каждого класса. Для заданного распознаваемого образа х вычисляются значения решающих функций

N

d. (х) = ln N + (х - т. )Ж (х - т.), i = 1,..., т. (2)

Образ х считается принадлежащим тому классу, решающая функция которого дала наибольшее значение.

Процедура для сравнения эффективности методов распознавания. Для сравнения эффективности различных методов распознавания в данной работе была создана процедура ClaSSifierPerformance. Она принимает два параметра: обученный классификатор и тестовое множество, которое содержит распознаваемые образы, разделенные на классы. Процедура ClaSSifierPerformance возвращает результат в виде таблицы, где каждый столбец относится к одному классу: первая строка показывает обозначение данного класса, вторая и третья строки показывают соответственно, к какому классу и с какой долей в процентах были преимущественно отнесены тестовые образы данного класса. Также в результатах указывается суммарное время выполнения тестов в секундах и общую долю правильных ответов в процентах.

Для примера приведем результаты сравнения эффективности распознавания зашумленных и искаженных изображений цифр от 0 до 9 при помощи классификаторов Байеса и KNN.

Для обучения была сгенерирована выборка двумерных растровых изображений цифр с наклоном и без, жирных и нормальной толщины шрифтами Times, Arial, Courier, Book, Georgia, Garamond, и Euclid, всего по 28 образов на каждую цифру размером 20 х 20 пикселей (рис. 2).

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

Рис. 2. Часть обучающих образов

Рис. З. Часть тестовых образов

Рис. 4 показывает отчет ClaSSifierPerformance для классификатора Байеса. Видно, что, например, цифра 1 была чаще, а именно в 37,5% случаев, принимаема за цифру 4. Цифра 2 в 80% случаев опознана успешно. Лучше всего распознаны цифры 3 и 9. Хотя цифра б и была распознана как б чаще, чем как что-либо еще, доля правильных ответов невелика. В целом правильно опознаны 70% цифр. Затрачено 0,094 с на распознавание всех 400 образов, представляющих 10 классов.

ln[65]:= ClassifierPerfomance [Bayes' Classifier, PCA Test]

Рис. 4. Пример отчета ClassifierPerformance

Аналогичный отчет по обработке тех же данных классификатором KNN показывает, что все цифры были распознаны правильно не менее чем в 85% случаев, однако времени было затрачено примерно в 15 раз больше, чем при работе классификатора Байеса.

Заключение

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

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

Описанный в данном отчете программный инструментарий использовался при проведении занятий по курсу «Системы распознавания образов» в 2008 г. и показал высокую результативность в повышении заинтересованности студентов и усвоении ими связи между теоретическими основами и практикой распознавания образов.

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

Литература

1. Горелик А.Л., Скрипкин В.А. Методы распознавания. Учебное пособие для вузов. -3-е изд. - М.: Высшая школа, 1989. - 232 с.

2. Верхаген К., Дёйн Р., Грун Ф., Йостен Й., Вербек П. Распознавание образов. Состояние и перспективы / Пер. Н.Г. Гуревич. - М.: Радио и связь, 1985. - 104 с.

3. YairShimshoni Introduction to Classification Methods. - Israel, Tel-Aviv University, 1995. - 57 р.

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