Перечень Сокращений и обозначений 4
Введение 5
1 Актуальность и цели исследования 6
1.1 Актуальность 6
1.2 Постановка задачи 7
2 Используемые методы распознавания цифр на изображении 9
2.1 Сверточные нейронные сети 9
2.1.1 Архитектура сверточных нейронных сетей 11
2.1.2 Обучение сверточных нейронных сетей 13
2.1.3 Преимущества в распознавании рукописных цифр: 16
2.1.4 Ограничения сверточных нейронных сетей в распознавании рукописных цифр: 17
2.2 Vision Transformer (ViT) 18
2.2.1 Архитектура ViT 19
2.2.2 Преимущества ViT 20
2.2.3 Обучение ViT 20
3 Разработка программного обеспечения 21
3.1 Выбор языка программирования 21
3.2 Используемые библиотеки 22
3.3 Описание работы итоговой нейронной сети и замеры точности 24
3.4 Описание кода 42
4 Результаты тестирования 48
4.1 Успешные распознования 48
4.2 Ошибочные распознования 59
Заключение 62
Список использованных источников 63
В процессе развития человечества все чаще поднимается вопрос об автоматизации каких либо процессов и благодаря технологиям, автоматизация все больше и больше проникает в нашу повседневную жизнь. С появлением искусственного интеллекта, специализированного оборудования становится проще решать типовые задачи.
Одной из таких задач является оптическое распознавание символов (OCR), в том числе распознавание рукописного текста. Одной из важных проблем в рукописном тексте, это отсутствие стандарта написания, в отличии от печатного, каждый человек имеет свой подчерк. Цифры имеют наклон, лишние завитки или черточнки, что цифру не меняет, но делает ее уникальной в написании.
В данной работе разрабатывается программное обеспечение (ПО) которое позволит пользователю рисовать цифры в графическом интерфейсе и изучается распознование математических цифр с помощью искусственного интеллекта.
Существует два типа распознавания рукописных символов: online и offline распознавание. Online распознавание например используется в сенсорных экранах. ПО отслеживает движения пальца пользователя, когда он рисует символы, далее эта информация участвует в алгоритме определения символа написанного пользователем.
В oflline распозновании доступна только конечная информация, к примеру различные сканы рукописных документов. Этот тип сложнее за счет того, что неизвестно как автор писал символы, подчерк, стилевые особенности, низкое качество рассматриваемого изображения,
Решение задачи offline распознавания математических цифр и будет рассмотрено в этой работе.
В данной работе было разработано приложение для распознавания цифр с использованием сверточной нейронной сети и трансформера. Программа предоставляет удобный и интуитивно понятный интерфейс, позволяющий пользователям нарисовать цифру на планшете и автоматически определить ее.
Одной из ключевых особенностей разработанного приложения является использование библиотек PyQt5 для создания графического интерфейса и Keras для работы с нейронными сетями. Это обеспечивает высокую производительность и эффективность в распознавании цифр.
Программа применяет алгоритм выполнения скриншота для захвата изображения цифры, после чего преобразует его в формат, подходящий для обработки нейронной сетью. Нейронная сеть, обученная на размеченных данных, проводит классификацию цифры и выводит результат на экран.
Таким образом, разработанное приложение представляет собой эффективный инструмент для распознавания рукописных цифр с помощью технологии искусственного интеллекта. Его простота использования и точность делают его полезным инструментом в различных сферах, включая образование, банковское дело, медицину и другие. В будущем возможно расширение функциональности программы и ее применение в новых областях, что сделает ее еще более полезной и востребованной.
1. Qurashi A. W., Holmes V., Johnson A. P. Document processing: Methods for semantic text similarity analysis //2020 International Conference on INnovations in Intelligent SysTems and Applications (INISTA). - IEEE, 2020. - С. 1-6.
2. Pradhan N. et al. A Review on Text Similarity Technique used in IR and its Application //International Journal of Computer Applications. - 2015. - Т. 120. - №. 9. - С. 29-34.
3. Российская государственная библиотека [Электронный ресурс]. URL: https://www.rsl.ru/(дата обращения: 20.04.2024)
4. UMAP [Электронный ресурс]. URL: https://umap-learn.readthedocs.io/en/latest/index.html (дата обращения: 21.04.2024)
5. Бенджио Иошуа, Гудфеллоу Ян. Глубокое обучение. — ДМК Пресс, 2018. — 652 с.
6. Yaser S. Abu-Mostafa, Malik Magdon-Ismail, Hsuan-Tien Lin. Learning From Data. — AMLBook, 2012. — 213 с.
7. PyTorch [Электронный ресурс]. URL: https://pytorch.org/(дата обращения: 05.11.2023)
8. Подготовка данных для машинного обучения [Электронный ресурс]. URL:https://machinelearningmastery.ru/data-preparation-for-machine-learning- cleansing-transformation-feature-engineering-d2334079b06d/(дата обращения: 05.06.2023)
9. Шолле Франсуа, Глубокое обучение на Python 2-е межд. издание. - СПб.: Питер, 2023 — 576 с .
10. Daniel Graupe, Deep Learning Neural Networks. Design and Case Studies. — World Scientific Publishing Company, 2016. — 280 с.