Введение 4
1 Современные методы распознавания текста 6
1.1 Метод сопоставления с образцом 6
1.2 Статистический метод 8
2 Нейросетевой метод распознавания текста 10
2.1 Основные концепции нейронных сетей 10
2.1.1 Модели нейронов 10
2.1.2 Функции активации 11
2.2 Простейшие архитектуры нейронных сетей 13
2.3 Процесс обучения нейронных сетей 16
2.3.1 Обучение с учителем 16
2.3.2 Алгоритмы оптимизации 17
2.3.3 Классический стохастический градиентный спуск 17
2.3.4 Модификации классического стохастического градиентного
спуска 19
2.4 Сверточные нейронные сети 21
2.4.1 Архитектура сверточных нейронных сетей 21
2.4.2 Преимущества сверточных нейронных сетей в распознавании
изображений 23
2.5 Реализация нейронных сетей с помощью библиотеки
TensorFlow 24
3 Описание архитектуры и возможностей разработанной
программы 26
3.1 Возможности разработанной программы 26
3.2 Используемые данные 28
3.3 Модуль preprocess 29
3.4 Модуль neural_network 30
3.5 Модуль text_recognition 31
3.6 Графический интерфейс программы 33
4 Тестирование разработанной программы 35
Заключение 42
СПИСОК ЛИТЕРАТУРЫ 44
Сфера информационной безопасности тесно связана с таким трендом в мире информационных технологий, как искусственный интеллект или машинное обучение. Алгоритмы машинного обучения используются для решения различных задач информационной безопасности: биометрическая идентификация личности, распознавание изображений, анализ трафика сети, борьба с вредоносным ПО и т.д.
В настоящее время биометрические методы идентификации личности становятся все более и более актуальной технологией. Их растущая популярность обусловлена рядом преимуществ по сравнению с обычными способами идентификации. Преимущество биометрических систем идентификации, по сравнению с традиционными подходами, заключается в том, что идентифицируется не внешний предмет, принадлежащий человеку, а собственно, сам человек. Наиболее популярным способом решения задач идентификации личности является использование систем искусственного интеллекта.
Существуют различные концепции создания искусственного интеллекта, однако на самом базовом уровне их можно поделить на две основных. Первая концепция отличается тем, что при создании систем искусственного интеллекта целью является копирование человеческого мышления - семиотический подход. Вторая концепция строится на принципе биологических нейронных сетей, которые моделируют интеллектуальную деятельность - биологический подход.
На сегодняшний день наиболее популярным является биологический подход, в нем уже достигнуты большие успехи. Данный подход так же называют машинное обучение (Machine Learning) и глубинное машинное обучение (Deep Learning). Системы искусственного интеллекта, созданные с помощью алгоритмов машинного обучения, способны решать три основных типа задач: задачи регрессии, классификации и кластеризации.
Задачи классификации по-другому называют задачами теории распознавания образов. Распознавание образов — это отнесение исходных данных к определенному классу с помощью выделения существенных признаков, характеризующих эти данные, из общей массы несущественных данных.
Одной из задач распознавания образов является распознавание рукописного текста. В целом, распознавание текста широко применяется для оцифровки старинных книг, автоматизации проверки различных форм и бланков. Задача распознавания рукописного печатного текста является подводящей сразу для двух задач информационной безопасности: идентификации личности по почерку или росписи и распознавания текста в различных системах безопасности, таких как, например, распознавание номерных знаков автомобилей. Одним из наиболее эффективных инструментов для распознавания текста являются сверточные искусственные нейронные сети.
Цель работы: разработка программы распознавание рукописного текста, выполненного печатным шрифтом, на основе сверточных нейронных сетей и сравнение эффективности и быстродействия используемых алгоритмов.
Поставленная цель потребовала решения следующих задач:
1) изучить современные методы распознавания текста;
2) освоить инструменты разработки: среду разработки PyCharm для языка программирования Python, библиотеки для работы с изображениями (PIL, matplotlib), библиотеку для машинного обучения и нейронных сетей (TensorFlow);
3) разработать программу распознавания рукописного текста, выполненного печатным шрифтом;
4) исследовать возможности, быстродействие и эффективность разработанной программы;
5) сравнить эффективность и быстродействие используемых алгоритмов.
1. Изучены современные методы распознавания текста: метод сопоставления с образцом, статистические методы (байесовский классификатор); детально рассмотрен нейросетевой метод: модель нейрона, функции активации, алгоритмы оптимизации, основные архитектуры нейронных сетей, включая сверточные нейронные сети.
2. Изучены инструменты разработки: среда разработки PyCharm 2018.1 для языка программирования Python, библиотека для машинного обучения и работы с нейронными сетями TensorFlow, библиотеки для работы с изображениями PIL, matplotlib.
3. Собран набор экспериментальных данных, в котором представлены образцы 9 людей - по 4480 образцов русских рукописных букв (по 140 на каждую букву). Всего было отобрано и обработано 32000 изображений букв (по 1000 на каждую букву).
4. Разработана программа, состоящая из трех модулей:
а) модуль предобработки экспериментальных материалов, включающий в себя:
1) обработку собранных экспериментальных данных,
2) увеличение количества экспериментальных данных путем применения операций поворота,
3) бинаризацию и изменение размера изображений,
4) разделение набора данных на обучающую, тестовую и контрольную выборки;
б) модуль работы с нейронными сетями, осуществляющий:
1) маркировку обучающей, тестовой и контрольных выборок,
2) создание и обучение нейронной сети с различными параметрами: количество слоев свертки, набор данных для обучения и тестирования, размер окна свертки,
3) сохранение параметров обученной нейронной сети;
в) модуль распознавания текста, предназначенный для:
1) загрузки параметров обученных нейронных сетей,
2) преобразования, анализа и визуализации отклика нейронной сети,
3) проведения тестов для вычисления точности распознавания нейронных сетей, побуквенного анализа точности распознавания нейронных сетей,
4) распознавания текста с заполненного бланка.
5. Разработанная программа была протестирована на двух наборах экспериментальных данных: наборе CoMNIST с сайта kaggle.comи наборе данных, собранном самостоятельно. Тестирование включало в себя обучение нейронных сетей при различных параметрах и вычисление точности распознавания каждой из обученных сетей. Всего было обучено 54 нейронных сети. Наиболее эффективной нейронной сетью была признана трехслойная сверточная нейронная сеть с окном 7х7 пикселов, обученная на наборе собранных данных, расширенном операцией поворота (от -5° до 5° с шагом 2°). Точность распознавания данной сети - 87.5 %. Для нее был проведен побуквенный анализ, точность распознавания букв от 72 % (буква «Щ») до 100 % (буква «Ш»). Средняя точность распознавания каждой буквы равна 88.3 %.
Adam: A method for stochastic optimization [Conference] / auth. Ba Jimmy and Kingma Diederik // International Conference on Learning Representations. - 2015. - pp. 1-3.
Adaptive subgradient methods for online learning and stochastic optimization [Journal] / auth. Duchi John, Hazan Elad and Singer Yoram // The Journal of Machine Learning Research. - 2011. - 12. - pp. 2143-2145.
Deep Sparse Rectifier Neural Networks [Journal] / auth. Glorot Xavier, Bordes Antoine and Bengio Y // Journal of Machine Learning Research. - Fort Lauderdale : JMLR, 2011. - p. 318.
Feature Extraction Methods for Character Recognition - a Survey [Journal] / auth. Due Trier Oivind, Taxt Torfinn and Jain Anil K. // Pattern Recognition. - Oslo : Elsevier, 1996. - pp. 6-9.
File Encryption using Fisher-Yates Shuffle [Conference] / auth. Hazra Tapan Kumar [и др.] // 6th International Conference and Workshop on Computing and Communication. - Vancouver : IEEE Xplore, 2015. - p. 2.
Naive Bayes Classifier for Character Recognition [Journal] / auth. Aboura Khalid // Information Technology and Robotics. - Dubai : N&N Global TEchnology, 2016. - p. 2.
Neural Networks and Learning Machines [Book] / auth. Haykin Simon. - Hamilton : Prentice Hall, 2009. - pp. 48-52.
On the importance of initialization and momentum in deep learning [Conference] / auth. Sutskever Ilya // Proceedings of the 30th international conference on machine learning. - 2013. - p. 6.
Optical Character Recognition Implementation Using Pattern Matching [Journal] / auth. Mohammad Faisal [и др.] // International Journal of Computer Science and Information Technologies. - Pune : Techscience Publications, 2015. - Vol. 5. - p. 2089.
Performance Analysis of Various Activation Functions in Generalized MLP Architectures of Neural Networks [Journal] / auth. Bekir Karlik and Vehbi Olgac // International Journal of Artificial Intelligence and Expert Systems. - 2011. - 4 : Vol. 1. - p. 113.
The Elements of Statistical Learning: Data Mining, Inference, and Prediction [Book] / auth. Trevor Hastie, Robert Tibshirani and Jerome Friedman. - Stanford : Springer, 2009. - pp. 210-211.
Метод распознавания шрифта текста с изображения [Журнал] / авт. Коробов Д. В. и Патин М. В. // Молодой ученый. - 2016 г.. - 12. - стр. 162-164.