Моделирование процесса идентификации графических объектов тема диссертации и автореферата по ВАК РФ 05.13.18, кандидат технических наук Курушин, Даниил Сергеевич

  • Курушин, Даниил Сергеевич
  • кандидат технических науккандидат технических наук
  • 2011, Пермь
  • Специальность ВАК РФ05.13.18
  • Количество страниц 104
Курушин, Даниил Сергеевич. Моделирование процесса идентификации графических объектов: дис. кандидат технических наук: 05.13.18 - Математическое моделирование, численные методы и комплексы программ. Пермь. 2011. 104 с.

Оглавление диссертации кандидат технических наук Курушин, Даниил Сергеевич

Оглавление

Список иллюстраций

Список таблиц б

Введение

1 Анализ современного состояния исследований в области распознавания текста

1.1 Общие вопросы оптического распознавания

текста

1.2 Основные принципы OCR

1.3 Основные методы OCR

1.4 Подходы к распознаванию рукописного текста

1.5 Программные продукты для распознавания рукописного текста

1.5.1 ABBYY FineReader Рукопись

1.5.2 Система Cognitive Forms

1.5.3 Панель рукописного ввода CellWriter

1.6 Выводы

2 Идентификация графических объектов

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

2.2 Анализ известных способов идентификации рукописных символов

2.3 Сегментация изображения

2.4 Математическая модель распознавания элементов рукописи

2.5 Выводы

3 Разработка проблемно-ориентированного комплекса программ, верификация моделей

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

3.2 Используемое математическое и программное обеспечение

3.3 Сегментация

3.4 Скелетизация

3.5 Экспериментальная проверка

3.6 Выводы

Заключение

Список литературы

Приложения

Список иллюстраций

1.1 Обзор методов распознавания рукописного текста

1.2 Cell Writer, режимы обучения и распознавания

2.1 Пример рукопечатного текста

2.2 Отдельные рукопечатные символы

2.3 Пример слитного рукописного текста

2.4 Пример слитного рукописного текста, символы частично разделены

2.5 Пример рукописного текста, в результате оцифровки залиты элементы символов «ы», «е», «а»

2.6 Проведение косого разреза, продемонстрированное в работе [64]

2.7 Использование многослойной нейронной сети для распознавания символов

2.8 Текст до и после сегментации

2.9 Выделение сегментов и определение углов поворота

3.1 Архитектура программного продукта

3.2 Реализация модуля загрузки изображения

3.3 Скелетизация контуров

3.4 Последовательные преобразования в модуле Filter

3.5 Рукописный текст до и после обработки

3.6 Печатный текст с неоднородным шумом до и после обработки

3.7 Реализация алгоритма обработки изображения

3.8 Выделение краев, (а) Оригинальная картинка; (Ь) слишком много узловых точек; (с) слишком мало узловых точек; (d) хорошее выделение краёв

3.9 Обработка искажений, имеющихся в растровом изображении

3.10 Варианты контуров для символа «W»

3.11 Слева — оригинальное изображение, в центре изображение после обработки программой AutoTrace, справа — после обработки Potrace

3.12 Пример SVG-файла, получаемого после векторизации

3.13 SVG-файл, в котором построена скелетизирующая полилиния

3.14 Алгоритм разбора SVG

3.15 Координаты точек на кривой

3.16 Анализ слова

3.17 Использование многослойной нейронной сети для распознавания символов

3.18 Обработка штриха

3.19 Структура сети Хопфилда

3.20 Алгоритм подстройки весов сети Хопфилда

3.21 Алгоритм расчета состояния сети

3.22 Генерация выходного вектора

3.23 Правило преобразования входного вектора для сети Хопфил-

Да

3.24 Создание и использование многослойного персептрона

Список таблиц

3.1 Сравнение результатов работы рокасе и Ах^оТУасе

выми моделями

Рекомендованный список диссертаций по специальности «Математическое моделирование, численные методы и комплексы программ», 05.13.18 шифр ВАК

Введение диссертации (часть автореферата) на тему «Моделирование процесса идентификации графических объектов»

Введение

Первые работы по распознаванию рукописного текста относятся к концу 1970-х - началу 1980-х годов (History of Pen and Gesture Computing: Annotated Bibliography in On-line Character Recognition, Pen Computing, Gesture User Interfaces and Tablet and Touch Computers). С тех пор был достигнут определенный прогресс в части распознавания отдельных символов, вводимых стилусом (реже мышью) в специальные поля. Также с приемлемым качеством решается задача распознавания т.н. рукопечат-ных символов, вводимых в поля анкет (т.н. блоклеттерсы). Существенно большую сложность представляет распознавание неограниченного слитного рукописного текста, причем ряд исследователей вообще полагает эту задачу неразрешимой на современном уровне развития технологий «Решить задачу распознавания слитного текста с высоким результатом можно будет, только когда компьютер сможет понимать смысл предлагаемого текста» [56].

Задача распознавания оцифрованной рукописи может быть решена несколькими методами. Так, выделяют модели, основанные на идентификации отдельных объектов и их частично упорядоченных наборов. В 1998 г. Larry S. Yaeger, Brandyn J. Webb и Richard F. Lyon для компьютера Apple NEWTON разработали модель, комбинирующую нейронные сети и контекстно-зависимый поиск для распознавания символов, вводимых стилусом в специальное поле на экране.

A.B. Мисюрёв, исследуя возможности идентификации таких объектов, как символы кириллического алфавита, цифры и иные знаки, ис-

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

Принципиально другой подход рассмотрен в работах Котович Н. В., Славина О. А., Клейнберга Е. и др. Он основан на предварительной ске-летизации изображения, преобразовании его в векторную форму и последующей идентификации векторного представления символов. Исследования Пламодон Р. и Шрииари С. показывают меньшую чуствитель-ность таких моделей к искажениям символов, возникающим при письме и сканировании.

Современные системы, поддерживающие распознавание рукописного текста преимущественно ориентированы на работу с отдельными символами. Исключение составляет Stylus Handwriting Input Panel, однако эта система допускает только ввод текста «на лету» и не способна к распознаванию растровых изображений. Другим исключением является служба Evernote, предлагающая услугу индексирования рукописных документов на большинстве языков. Однако Evernote распознает лишь отдельные слова в тексте и тратит на индексирование одного документа до 24-х часов. Как можно видеть, в современных комплексах программ проблема распознавания слитного рукописного текста решена лишь частично.

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

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

фических объектов из рукописи и их последующей идентификации. Задачами настоящей работы являются:

1. Анализ существующих методов распознавания рукописного текста, изучение применяемых моделей выделения и идентификации графических примитивов — элементов рукописи.

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

3. Разработка модели скелетизации векторных представлений графических объектов.

4. Разработка адаптированной нейросетевой модели идентификации примитивов, предназначенной для работы со структурными представлениями графических объектов.

5. Доказательство персептронной представимости структурных представлений графических объектов.

6. Создание проблемно-ориентированного комплекса программ на основе численных методик решения вышеуказанных задач.

7. Проверка модели путем сравнения результатов идентификации с известными моделями и результатми, полученными экспертами.

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

Методы исследования. Для решения задач, сформулированных в работе, использованы методы нейросетевого анализа, обработки изображений, вычислительного эксперимента, искусственного интеллекта, технологии объектно-ориентированного программирования. При разработке проблемно-ориентированного программного комплекса использовались АЯП Python и java, среда разработки Netbeans 6.9.

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

Научная новизна работы состоит в следующем:

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

2. Впервые разработан адаптационный слой нейросетевой модели, что позволило понизить размерность нейронной сети на 1 - 2 порядка;

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

4. Впервые предложен метод геометрической скелетизации векторных представлений графических объектов.

Практическая ценность:

1. Предложенная модель и ее программная реализация позволяют снизить размерность нейронной сети, используемой для идентификации графических объектов, на 1 - 2 порядка.

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

3. Разработанные модели и программное обеспечение может использоваться в таких сферах, как распознавание образов, робототехника (ориентирование в пространстве), идентификация объектов и т.п.

Внедрение результатов. Разработанная модель идентификации графических примитивов используется в учебном процессе Пермского национального исследовательского политехнического университета и Пермского государственного национального исследовательского университета при изучении дисциплин «Системы искусственного интеллекта», «Компьютерная графика», «Автоматическая обработка естественного языка».

Апробация работы. Результаты работы докладывались на следующих конференциях и семинарах:

1. Международная научно-практическая конференция «Перспективы развития информационных технологий», 2011, Новосибирск.

2. Научный семинар кафедры математического моделирования систем и процессов Пермского государственного технического университета, 2011, Пермь, рук. д.ф.-м.н., профессор Трусов П.В.

3. Научно-практический семинар кафедры информационных технологий и автоматизированных систем Пермского государственного технического университета, 2010, Пермь, рук. д.э.н., профессор Файз-рахманов P.A.

4. Международная интернет-конференция «Инновационные технологии: теория, инструменты, практика», 2010, Пермь.

5. Краевая дистанционная научно-практическая конференция «Молодежная наука Прикамья», 2009, Пермь.

6. Всероссийская конференция «Теория и практика речевых исследований», 2001, Москва.

Основные научные положения, выносимые на защиту:

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

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

3. Полученный в ходе работы проблемно-ориентированный комплекс программ позволяет разбивать рукопись на графические примитивы и идентифицировать Pix с вероятностью 0.81-0.98.

Публикации. Соискатель имеет И опубликованных работ по теме диссертации в центральных (5 работ) и местных (6 работ) изданиях, в которых отражены основные положения диссертации.

Личный вклад автора. Постановка задачи осуществлялась совместно с научным руководителем к.т.н., д.э.н., проф. Долговой Е.В. Основные результаты диссертационного исследования получены автором самостоятельно. Автором проведен анализ предметной области, предложена гипотеза о том, что графические примитивы, составляющие слитный рукописный текст, могут быть формально описаны постоянным конечным количеством сегментов, разработано структурное описание графического примитива, предложена и исследована модель идентификации. Все предложенные математические модели алгоритмизированы с использованием АЯП Python и Java.

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

Автором разработан проблемно-ориентированный комплес программ, предназначенный для исследования и уточнения параметров моделей.

Объем и структура работы. Диссертация состоит из введения, трех глав, заключения, списка литературы; изложена на 87 страницах, содержит 15 рисунков; библиографический список включает 67 наименований, 4 приложения, 14 таблиц.

Похожие диссертационные работы по специальности «Математическое моделирование, численные методы и комплексы программ», 05.13.18 шифр ВАК

Заключение диссертации по теме «Математическое моделирование, численные методы и комплексы программ», Курушин, Даниил Сергеевич

З.б Выводы

По материалам третьей главы формулируются следующие выводы:

1. Разработанные на основании модели, описанной во второй главе исследования, алгоритмы удовлетворяют предъявляемым к ним требованиям по устойчивости к искажениям.

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

3. Качество распознавания текста с использованием данной модели (в зависимости от аккуратности почерка и настройки модели) составляет от 0.81 до 0.98.

Заключение

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

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

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

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

Список литературы диссертационного исследования кандидат технических наук Курушин, Даниил Сергеевич, 2011 год

Литература

[1] Долгова Е.В., Курушин Д.С. Концепция математического моделирования сегментации слитного рукописного текста // Вестник МГОУ. 2011. №1. Серия «Физика и математика». С. 53-57.

[2] Долгова Е.В., Курушин Д.С. Адаптация математической модели нейронной сети для системы распознавания слитного рукописного текста // Вестник МГОУ. 2011. №1. Серия «Физика и математика». С. 91-96.

[3] Долгова Е.В., Курушин Д.С. Исследование математической модели штрихов рукописного текста. // Вестник МГОУ. 2011. №1. Серия «Физика и математика». С. 97-105.

[4] Курушин Д.С., Нестерова Н.М., Низамутдинов О.Б. Технология «адаптивной эквивалентности» как способ автоматического анализа текста // Формирование гумманитарной среды и внеучебная работа в вузе, техникуме, школе: Материалы III Всерос. науч. — практ. конф. (22-23 апреля 1999г.): Т. IV /ПГТУ. - Пермь, 1999. - С. 699-700.

[5] Курушин Д.С., Нестерова Н.М. О проблеме моделирования понимания в автоматизированных обу-

чающих системах // Визуальная культура XX века и проблемы современного образования: Материалы между нар. молодеж. иауч.-практ. конф. Пермь, 10-11 дек. 1999 г. / ПГТУ - Пермь, 1999. - С. 7678.

[6] Куру шин Д. С., НестероваН.М., Низамутдинов О.Б. Проект обучающей системы с использованием технологий искусственного интеллекта // Теоретические и прикладные аспекты информационных технологий: Сб. науч. тр. — вып. 47 / РосНИ-ИУМС. - Пермь, 1998. - С. 50-54

[7] Курушин Д.С., Санникова А.Г., Левченко A.M. О возможности применения эвристических алгоритмов для автоматического распознавания значений счетчиков посещаемости интернет-ресурсов / / Вестник ПГТУ. Электротехника, информационные технологии, системы управления. №3/Федер. агенство но образованию, ПГТУ — Пермь: Издательство ПГТУ, 2009. - С. 279-288

[8] Курушин Д.С., Баринова И.А., Маркарян A.M., Нестерова Н.М., Серова Т.С. и др. Моделирование процессов понимания. «Семантика текста»: от формализованного представления содержания текста к его автоматическому выделению //С любовью к тексту: [монография]; Восточ. ин-т экономики, гуманитар, наук, управления и права. — Уфа, 2006. - С. 69-74.

[9] Курушин ДС., Нестерова Н.М., Новиков А.И. О возможности автоматического распознавания

смысловой внутренней формы текста / Новосиб. гос. ун-т. — Новосибирск, 1999. -- С. 114-115.

[10] Курушин Д.С., Нестерова Н.М., Новиков А.И. Использование XML-технологий для моделирования процесса понимания текста // 2-ая Всероссийская конференция «Теория и практика речевых исследований»/ РАН Ин-т языкознания, Москва, 6-7 дек. 2001 г. - М., 2001. - С. 76-78.

[11] Курушин Д.С. О возможности использования нечетких алгоритмов проверки открытых вопросов в автоматизированных системах контроля знаний // Электротехника, ИТ, системы управления. 2009. №3. — С. 84-88.

[12] Garris M.D. Form Design for High Accuracy Optical Character Recognition. IEEE Transactions PAMI, 1996.

[13] Rocha J., Sakoda В., Zhou J., Pavlidis T. Deferred Interpretation of Grayscale Saddle Features for Recognition of Touching and Broken Characters // Proceedings of Document Recognition, SPIE. Vol. 2181. - San Jose, CA, 1994. Pp. 342-350.

[14] Gillies A., Hepp D., Rovner R., Whalen M.

Handwritten Text Recognition System for Processing Census Forms // Proceedings of the IEEE International Conference on Systems, Man and Cybernetics. Vol. 3. 1995. Pp. 2335-2340.

[15] Gader P.D., Mohamed M., Chiang J.H. Segmentation-Based Handwritten Work Recognition // Proceedings

of the USPS Advanced Technology Conference. — Washington, DC, 1992.

[16] Kimura F., Shridar M., Narasimhamurthi N. Lexicon Directed Segmentation-Recognition Procedure for Unconstrained Handwritten Words // Proceedings of the Third International Workshop on Frontiers in Handwriting Recognition. — Buffalo, NY, 1993.

[17] Michael D. G. Component-Based Handprint Segmentation Using Adaptive Writing Style Model. NISTIR 5843 (Internal report of National Institute of Standards and Technology).

[18] Арлазаров В.JI., Славин О.А. Алгоритмы распознавания и технологии ввода текстов в ЭВМ // Информационные технологии и вычислительные системы 1996, № 1.

[19] Арлазаров В.Л., Астахов А.Д., Троянкер В.В., Ко-тович Н. В. Адаптивное распознавание символов // Интеллектуальные технологии ввода и обработки информации. — М.: Эдиториал УРСС, 1998.

[20] Мислорев А.В. Использование искусственных нейронных сетей для распознавания рукопечатных символов // Интеллектуальные технологии ввода и обработки информации. — М.: Эдиториал УРСС, 1998.

[21] Постников В.В. Разработка методов наложения формы на графическое изображение документа // Интеллектуальные технологии ввода и обработки информации. — М.: Эдиториал УРСС, 1998.

[22] Система распознавания стандартных форм Cognitive Forms. — Режим доступа http: / /www.cognitive.ru

[23] LeCun Y., Matan 0., Boser В., Denker J.S., Henderson D., Howard R.E., Hubbard W., Jackel L.D., Baird H.S. Handwritten Zipcode Recognition With Multilayer Networks // Proc. of International Conference 011 Pattern Recognition. — Atlantic City, 1990.

[24] Krzyzak A., Dai W., Suen C.Y. Unconstrained Handwritten Character Classification Using Modified Backpropagation Model // Proc. 1st Int. Workshop on Frontiers in Handwriting Recognition. — Montreal, Canada, 1990.

[25] Lee S.-W., Kim Y.H. Off-line Recognition of Totally Unconstrained Handwritten Numerals Using Multilayer Cluster Neural Network // Proc. Of the 12th I APR International Conference on Pattern Recognition. — Jerusalem, Israel. 1994.

[26] Schapire R. The Strength of Weak Learnability // Machine Learning. Vol. 5. 1990.

[27] Drucker H., Schapire R., Simard P. Boosting Performance in Neural Networks // International Journal of Pattern Recognition and Artificial Intelligence. Vol. 7. 1993.

[28] Fukushima K. Neocognition: a hierarchical neural network capable of visual pattern recognition // Neural Networks. 1998.

[29] Knerr S., Personnaz L., Dreyfus G. Handwritten digit recognition by neural networks with single-layer training // IEEE Transactions on Neural Networks. 1992.

[30] Lee Y. Handwritten digit recognition using К neares-neighbor, radial-basis function, and back-propagation neural networks // Neural Computation. 1991.

[31] Martin G.L., Pitman J. A. Recognizing hand-printed letters and digits using backpropagation learning // Neural Computation. 1991.

[32] Классификация и кластер. — M. : Мир, 1980.

[33] Розанов Ю.А. Теория вероятностей, случайные процессы и математическая статистика. — М. : Наука, 1989.

[34] Ян Д.Е., Анисимович К.В., Шамис A.JI. Новая технология распознавания символов. Теория, практическая реализация, перспективы. — М. : Препринт, 1995.

[35] Промахина И.М., Коростелев А.П. Об одном классе вероятностных рекуррентных алгоритмов распознавания. — М. : Препринт, 1984.

[36] Корн Г., Корн Т. Справочник по математике. — М. : Наука, 1984.

[37] Pao Y.-H. Adaptive pattern recognition and neural network. — Addison-Wesley, 1989.

[38] Журавлев Ю.И. Алгоритмы вычисления оценок и их применение. — Ташкент: Фан, 1974.

[39] Шикин Е.В., Боресков А.В. Компьютерная графика. — М. : Мир, 1995.

[40] Местецкий JI.M. Непрерывный скелет бинарного изображения // Графикон-99. Материалы Международной конференции. — М., 1999.

[41] Денисов И., Кузьмин К. Эффективный алгоритм построения остова растрового изображения// Графикон-99. Материалы Международной конференции. — М., 1999.

[42] Бутаков Е.А., Островский В.И., Фадеев И.Л. Обработка изображений на ЭВМ. — М.: Радио и связь, 1987.

[43] Препарата Ф., Шеймос М. Вычислительная геометрия: Введение. — М. : Мир, 1989.

[44] Кузин JI.T. Основы кибернетики, Т.2. — М. : Энергия, 1979.

[45] T.Pavliclis. Algorithms for Graphics and Image Processing. Computer Science Press, Rockville,MD, 1982.

[46] L.Lam, S.W. Lee, C.Y. Suen, Thinning Methodologies: A Comprehensive Survey. IEEE Trans.: Pattern Analysis and Machine Intelligence, vol.14, pp.869-885, 1992.

[47] Plamondon R., Suen C.Y., Bourdeau M., Barriere C.. Methodologies for Evaluating Thinning Algorithms for Character Recognition // Int'l. J. Pattern

Recognition and Artificial Intelligence, special issue thinning algorithms. 2003.

[48] Smith S.J., Bourgoin M.O., Sims K., Voorhees H.L.. Handwritten character classification using nearest neighbor in large databases // IEEE Transactions on Pattern Analysis and Machine Intelligence. 1994.

[49] Wakahara T. Shape machine using LAT and its application to hand-written character recognition // IEEE Transactions on Pattern Analysis and Machine Intelligence. 1994.

[50] Lam L., Suen C.Y. An Evaluation of Parallel Thinning Algorithms for Character Recognition // IEEE Transactions on Pattern Analysis and Machine Intelligence. 1995.

[51] Plamondon R., Srinari S. On-Line and Off-Line Handwriting Recognition: A Comprehensive Survey /'/ IEEE Transactions on Pattern Analysis and Machine Intelligence. 2000.

[52] Madahvanath S., Kleinberg E., Govindraraju V.. Holistic Verification of Handwritten Phrases // IEEE Transactions on Pattern Analysis and Machine Intelligence. 1999.

[53] Себастиан Г. Процессы принятия решения при распознавании образов. — Киев, 1965.

[54] Славин О.А., Корольков Г.В., Болотин П.В. Методы распознавания грубых объектов // Развитие безбумажных технологий в организациях. — М., 1999.

[55] Щепин Е.В., Непомнящий Г.М. К топологическому подходу в анализе изображений // Геометрия, топология и приложения: Межвузовский сборник научных трудов. — М., 1990.

[56] Абраменко А. Компьютер читает. — Режим доступа: http://ocrai.narod.ru/fr.html

[57] Теплая Н.А., Михайлов А.А., Постников В.В. Алгоритмы сегментации рукопечатных символов // Сб. статей по материалам научной конференции аспирантов, соискателей и молодых исследователей СМУ. Выпуск XI. Магадан, 2004.

[58] Котович Н.В., Славин О.А. Распознавание скелетных образов. ----- Режим доступа: http://artid.es. org.ru/cn/showdetail. php?cid=5774

[59] Doyle W. Operations Useful for Similarity-Invariant Pattern Recognition // Journal of the ACM. 2002.

[60] Сегментация изображений методом квантилей. — Режим доступа: http://habrahabr.ru/blogs/image_processing/114153/

[61] Шаров С.А. Статистика слов в русском языке. — Режим доступа: http://www.lingvisto.org/artikoloj/ru_stat.html

[62] Jaehwa P., Govindaraju V., Srihari S. Efficient word segmentation driven by unconstrained handwritten phrase recognition //In Proceedings of International Conference on Document Analysis and Recognition, 2009.

[63] Seiinger P. Potrace: a polygon-based tracing algorithm языке. — Режим доступа: http://potrace.sourceforge.net/potrace.pdf

[64] Райер И.А. Сегментация штрихов и их соединений при распознавании рукописного текста // Материалы Международной конференции по компьютерной графике и машинному зрению. М., 1999.

[65] Кузнецов A.B. Распознавание рукописного текста [Электронный ресурс]. — Электрон, текстовые дан. — 2001. — Режим доступа:

http : // ww w. masters. donntu. edu. ua/2001/fvti/kuznetsov/diss/

[66] Suen H.M., Wang J.F. Segmentation of Uniform Colored Text from Color Graphics Background // VISP-144, 1997.

[67] Мерков A.B. Основные методы, применяемые для распознавания рукописного текста. — Режим доступа:

http : //www. recognition, mccme. ru/pub/RecognitionLab.html j\

[68] Willis N. Cell Writer: Распознаватель рукописного текста для Линукс с открытыми кодами. — Режим доступа: http://rus-linux.net/lib.php?name=MyLDP/comfort/handwriting.html.

[69] Seiinger P. Potrace. — Режим доступа: http: / / potrace.sourceforge.net/

[70] AutoTrace. — Режим доступа: http: / / autotrace.sourceforge.net /

[71 ] Faux I.D., Pratt M. J.. Computational Geometry for Design and Manufacture // Ellis Horwood Series in Mathematics and its Applications. — Ellis Horwood, New York, NY, USA, 1999.

[72] Knuth D.E. The METAFONTbook, volume C of Computers and Typesetting. — Addison-Wesley, Reading, MA, USA, 1986.

[73] Tapia E., Rojas R. A Survey on Recognition of OnLine Handwritten Mathematical Notation. 2007.

[74] Layton M. Augmented Statistical Models for Classifying Sequence Data. 2006.

Приложение А. Скелетизация текста

package example;

import java.io.*;

import j ava.awt.*;

import javax.imageio.ImagelO;

public class Main extends Frame {

public static void main(String[] args) { // TODO code application logic here LoadPict izob = new LoadPict(args[0]); Filter izobl = new Filter (izob. GetlmageO); File f = new File(args [1]);

System.out.println(izobl.ih);

System.out.println(izobl.iw);

izobl.img = izobl.convertImageToBufferedlmage(izob.img); izobl.Binary(izobl.img); izobl.noizeless(izobl.img); izobl.sceletization(izobl.img); // izobl.noizeless(izobl.img); // izobl.addPixels(izobl.img); // izobl.invert(izobl.img); try {

ImagelO.write(izobl.img, "PNG", f); } catch (Exception ex) { ex.printStackTrace 0;

>

}

>

package example; import java.awt.*; import java.awt.image.*; public class LoadPict extends Frame { private int w = 400, h = 400; Image img; int[] pix; String prim; PixelGrabber pg;

int ih, iw; int max_hist = 0; int hist [] ;

public LoadPict(String name) { this.prim = name;

img = Toolkit.getDefaultToolkitO•getlmage(this.prim); iw = img.getWidth(this); ih = img.getHeight(this);

pg = new PixelGrabber(img, 0, 0, iw, ih, true); try {

pg.grabPixels();

pix = (int [J) pg.getPixels();

} catch (InterruptedException e) { }

ih = pg.getHeight(); iw = pg.getWidthO ;

}

public Image Getlmage() { return img;

}

}

package example; import java.awt.*; import j ava.awt.image.*; public class Filter extends Frame { Bufferedlmage img; Image origin_img; int[] pix; int iw, ih;

WritableRaster bones_raster; Filter(Image IMG) { origin_img = IMG; iw = origin_img.getWidth(this) ; ih = origin_img.getHeight(this);

}

public Bufferedlmage convertImageToBufferedlmage(Image image) {

Bufferedlmage bimage = new Bufferedlmage(image.getWidth(this), image.getHei Graphics2D g = bimage.createGraphics();

g.drawImage(image, 0, 0, null); g.dispose(); return bimage;

}

public Bufferedlmage convertlmageToBufferedlmagel(Image image) {

Bufferedlmage bimage = new Bufferedlmage(image.getWidth(this), image.getHei

Graphics2D g = bimage.createGraphics();

g.drawlmage(image, 0, 0, null);

g.dispose();

return bimage;

}

public void Contrast(Bufferedlmage BIM) { float[] sharpenMatrix = {O.Of, O.Of, O.Of, O.Of, l.Of, 0, Of, O.Of, O.Of, O.Of};

BufferedlmageOp sharpenFilter = new Convolve0p(new Kernel(3, 3, sharpenMatr

ConvolveOp.EDGE_N0_0P, null); sharpenFilter.filter(BIM, null);

}

public void Binary(Bufferedlmage BIM) {

WritableRaster raster = BIM.getRaster().createCompatibleWritableRaster(iw, int bright = 0x00;

int average_bright = 0x00; int [] array_bright; array_bright = new int [4]; this.plot(BIM.getRaster O); for (int x=2;x<iw-2; x++) { for (int y=2;y<ih-2; y++) {

BIM.getRaster().getSamples(x, y, 1, 1, 0, array_bright); //matr = matr_syn(array_bright); for (int k = 0; k < array_bright.length; k++) { bright += array_bright[k];

}

average_bright = bright / array_bright.length;

if (BIM.getRaster().getSample(x, y, 0) > average_bright + 110) {

raster.setSample(x, y, 0, 0x00); } else {

raster.setSample(x, y, 0, Oxff);

}

bright = 0x00; average_bright = 0x00;

}

>

BIM.setData(raster); this.plot(BIM.getRaster()); this.plot(raster); this.img = BIM;

this.img = convertImageToBufferedlmagel(this.img); this,bones_raster = this.img.getRaster();

>

/* public void Binary(Bufferedlmage BIM) {

WritableRaster raster = BIM.getRaster().createCompatibleWritableRaster(iw, ih int bright = 0x00;

int average_.bright = 0x00;

int [] array_bright;

int [] matr;

array_bright = new int [4];

for (int x=2;x<iw-2; x++) {

for (int y = 2; y < ih - 2; y++) {

array_bright = BIM.getRaster().getSamples(x, y, 2, 2, 0, array_bright);

//matr = matr_syn(array_bright);

for (int k = 0; k <array_bright.length-2; k++) {

bright +=array_bright[k]; >

average_bright = bright /array_bright.length-1; bright=array_bright [array_bright.length-1];

if (bright > average_bright+55) {

raster.setSample(x+l, y+1, 0, 0x00); } else {

raster.setSample(x+l, y+1, 0, Oxff); }

bright = 0x00;

average_bright = 0x00; }

>

BIM.setData(raster); this.img = BIM;

this.img = convertImageToBufferedlmagel(this.img);

this .bones_raster = this . img.getRasterQ ;

}*/

public void noizeless(Bufferedlmage BIM) {

WritableRaster raster = BIM.getRasterO-createCompatibleWritableRaster(iv,

// new int [4];

int bright = 0x00; for (int x=l;x<iw-2; x++) { for (int y=l;y<ih-2; y++) {

int[] array_bright = BIM.getRasterO .getSamples(Xj y, 2, 2, 0, (int[])n for (int k = 0; k < array.bright.length; k++) bright += array_bright[k] II System.out.println(bright);

if (bright > 1) raster.setSample(X) y, 0, 1); else raster.setSample(x, bright = 0x00;

}

>

this,bones_raster = raster; BIM.setData(raster); this.plot(raster);

>

public int[] matr_syn(int [] ARRAY) { int[] MATR = new int [ARRAY.length] ; /*MATR[0] = ARRAY[4]; MATR [1] = ARRAY[1] MATR[2] = ARRAY[2] MATR [3] = ARRAY[5] MATR[4] = ARRAY[8] MATR [5] = ARRAY[7] MATR[6] = ARRAY[6] . MATR [7] = ARRAY[3] MATR[8] = ARRAY[0];*/ MATR[0] = ARRAY [0] MATR [1] = ARRAY[1] MATR [2] = ARRAY[2] MATR [3] = ARRAY[3] /*MATR[0] = ARRAY [4];

MATR[1] = ARRAY[1]

MATR [2] = ARRAY[2]

MATR[3] = ARRAY[5]

MATR [4] - ARRAY[8]

MATR[5] = ARRAY[7]

MATR[6] = ARRAY[6]

MATR [7] = ARRAY[3]

MATR [8] = ARRAY[0] return MATR;

*/

>

public void sceletization(Bufferedlmage BIM) { int[] array_bright = new int[9]; int[] matr = new int[array_bright.length]; int A = 0, B = 0;

for (int x = 2; x < iw - 2; x++) { for (int y=2;y<ih-2; y++) { A = 0; B = 0;

array_bright = BIM.getRasterQ.getSamples(x, y, 3, 3, 0, (int[]) null); matr = matr_syn(array_bright); for (int a = 1; a < matr.length; a++) { A += matr[a];

}

for (int b = 1; b < matr.length - 1; b++) {

if (matr[b] B += 1;

}

0

matr [b + 1] == 1) {

>

1]

0

if (matr[matr.length B += 1;

}

if ((2 <= A) && B == 1) { bones_raster.setSample(x, y, 0, 0);

}

>

}

BIM.setData(bones_raster); plot(bones_raster);

matr [1]

1) {

public void invert(Bufferedlmage BIM) { byte bright;

for (int x = 0; x < iw - 1; x++) { for (int y = 0; y < ih - 1; y++) {

bright = (byte) BIM.getRaster().getSample(x, y, 0); if (bright == 0) {

bones_raster.setSample(x, y, 0, 1); > else if (bright == 1) {

bones_raster.setSample(x, y, 0, 0) ;

}

>

}

for (int i=0; i < iw - 1; i++) { bones_raster.setSample(i, 0, 0, 1); bones_raster.setSample(i, 1, 0, 1); bones_raster.setSample(i, 2, 0, 1); bones_raster.setSample(i, ih - 1, 0, 1); bones_raster.setSample(i, ih - 2, 0, 1) ; bones_raster.setSample(i, ih - 3, 0, 1);

}

for (int i = 0; i < ih - 1; i++) {

bones_raster.setSample(0, i, 0, 1); bones_raster.setSample(1, i, 0, 1); bones_raster.setSample(2, i, 0, 1); bones_raster.setSample(iw - 1, i, 0, 1); bones_raster.setSample(iw - 2, i, 0, 1); bones_raster.setSample(iw - 3, i, 0, 1); bones_raster.setSample(iw - 4, i, 0, 1);

>

bones_raster.setSample(iw - 1, ih - 1, 0, 1) • BIM.setData(bones_raster);

>

public void addPixels(Bufferedlmage BIM) { int[] array_bright = new int[9]; int[] matr = new int [array_bright.length] ; int A = 0, B = 0, C = 1, D = 0; for (int x=2;x<iw-2; x++) {

for (int у = 2; у < ih - 2; y++) {

BIM.getRasterQ.getSamples(x, y, 3, 3, 0, array_bright); matr = matr_syn(array_bright); A = 0;

if (matr[0] == 0) {

A = matr [8] * matr [4] + matr[l] * matr [5] + matr [2] * matr [6] + matr[ if (1 <= A && A < 3) {

bones_raster.setSample(x +1, у + 1, 0, 1);

}

>

}

}

BIM.setData(bones_raster);

}

private void plot(WritableRaster raster) { System.out.println(raster.toString()); for (int x=0; x<iw; x++) { for (int y=0; y<ih; y++) {

System.out.println(raster.getSample(x, y, 0));

>

}

}

}

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