- •Введение
- •1. Обзор основных подходов
- •1.1. Искусственные нейронные сети
- •1.2. Обучающееся векторное квантование
- •1.3. Метод опорных векторов
- •2.1. Формальная постановка задачи
- •2.3. Предварительная обработка изображения
- •2.4. Признаковое описание рукописного символа
- •2.5. Обучение регулярного многослойного персептрона
- •2.6. Применение решающего правила
- •3. Описание реализации программной системы
- •3.1. Структура программной системы
- •3.2. Описание основных классов
- •3.3. Организация пользовательского интерфейса
- •3.3.1. Вспомогательное приложение
- •3.3.2. Основное приложение
- •Заключение
- •Список литературы
- •А.1. Классы для поддержки работы с растровыми изображениями
Государственное образовательное учреждение высшего профессионального образования «Нижегородский государственный университет
им. Н.И. Лобачевского»
Факультет вычислительной математики и кибернетики
Кафедра математического обеспечения ЭВМ
Направление «Информационные технологии»
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА БАКАЛАВРА
Тема:
«Классификация рукописных символов многослойными персептронами»
Допущена к защите:_______________
Заведующий кафедрой:
профессор, д.ф.-м.н. Стронгин Р. Г. «___»__________20___года
Выполнил: студент группы 8409 Решетников Александр Николаевич
Подпись
Научный руководитель:
профессор, д.т.н. Турлапов В. Е. Подпись
Нижний Новгород
2010
СОДЕРЖАНИЕ |
|
Введение............................................................................................................................................. |
3 |
1. Обзор основных подходов............................................................................................................ |
5 |
1.1. Искусственные нейронные сети............................................................................................ |
6 |
1.2. Обучающееся векторное квантование.................................................................................. |
7 |
1.3. Метод опорных векторов....................................................................................................... |
8 |
2. Модели, методы и алгоритмы, положенные в основу разработки программной системы.. |
10 |
2.1. Формальная постановка задачи........................................................................................... |
10 |
2.2. Основные этапы решения поставленной задачи................................................................ |
11 |
2.3. Предварительная обработка изображения ......................................................................... |
12 |
2.4. Признаковое описание рукописного символа.................................................................... |
14 |
2.5. Обучение регулярного многослойного персептрона ........................................................ |
16 |
2.6. Применение решающего правила....................................................................................... |
25 |
3. Описание реализации программной системы........................................................................... |
26 |
3.1. Структура программной системы....................................................................................... |
26 |
3.2. Описание основных классов................................................................................................ |
27 |
3.3. Организация пользовательского интерфейса..................................................................... |
30 |
3.3.1. Вспомогательное приложение...................................................................................... |
30 |
3.3.2. Основное приложение................................................................................................... |
35 |
Примеры решения задачи............................................................................................................... |
42 |
Заключение....................................................................................................................................... |
44 |
Список литературы.......................................................................................................................... |
45 |
Приложение А. Исходные коды базовых компонентов программной системы....................... |
46 |
А.1. Классы для поддержки работы с растровыми изображениями....................................... |
46 |
А.2. Классы для поддержки функционирования многослойного персептрона..................... |
60 |
2
Введение
В настоящее время во многих областях человеческой деятельности приходится иметь дело с текстовой информацией, представленной не только документами с печатным текстом, но и рукописными документами. Например, это может быть документация паспортновизовой службы, заполнение анкет, приём заявлений от населения органами власти и т.п. Увеличение объёма информации в таких документах приводит к необходимости их автоматизированного распознавания и перевода в электронный печатный вид для последующего анализа.
Несмотря на то, что исследованием проблемы распознавания рукописного текста начали заниматься сравнительно давно (с 70-х годов XX века), до сих пор разработчики программного обеспечения в этой области сталкиваются с огромным количеством трудностей. Эти трудности связаны как с многообразием почерков разных людей, так и с множеством вариантов начертания одного и того же символа в рамках почерка конкретного человека.
Наиболее сложным в распознавании отдельно взятого рукописного слова является случай, когда не удаётся учесть его семантику или смысловую нагрузку в зависимости от контекста, в котором это слово встретилось. В этом случае его приходится распознавать посимвольно.
Все известные на сегодняшний день методы распознавания рукописных символов можно разделить на 2 группы: интерактивные (распознавание символов в режиме их текущего ввода) и пассивные методы (распознавание ранее написанных символов). Первая группа методов используется в системах реального времени, в которых осуществляется сенсорный ввод рукописных символов, а входными данными являются траектории указывающего устройства (мышь, перо, стилус и т.д.). Системы, решающие задачу распознавания с помощью второй группы методов, работают с цифровыми изображениями символов, созданными различными устройствами (фотокамера, сканер и т.д.).
Если системы, распознающие рукописные символы интерактивно (PenReader, CalliGrapher и др.), достаточно эффективно справляются со своей задачей, то системы, решающие задачу в рамках второго подхода, имеют невысокую точность распознавания (в среднем 70-75%), их намного меньше по сравнению с системами первой группы и они очень дорогие (из них наиболее распространёнными на сегодняшний день являются FineReader и OmniPage). Поэтому разработка алгоритмов и методов распознавания ранее написанного текста или отдельных символов (то есть в пассивном режиме) имеет широкую практическую
3
значимость и является актуальной задачей при совершенствовании систем электронного документооборота.
Целью данной работы является разработка и апробация программной системы, способной к распознаванию рукописных символов на изображениях, представленных файлами в определённом графическом формате. Основная часть работы состоит из 3 разделов. В первом разделе приводится краткий обзор основных подходов и методов, применяемых для решения задачи распознавания рукописных символов, и аргументация в пользу выбора подхода, используемого в данной работе. Во втором разделе излагаются конкретные модели, методы и алгоритмы, которые были применены для разработки программной системы. В третьем разделе приводится описание разработанных приложений.
4