РЕФЕРАТ 4
ВВЕДЕНИЕ 6
1 ДАННЫЕ И ИХ ПРЕДОБРАБОТКА 7
1.1 Входные данные для для всей системы 7
1.1.1 Преобразование из цветного в оттенки серого 7
1.1.2 Выравнивание яркости изображения 7
1.1.3 Применение порогового преобразования 9
1.2 Входные данные для алгоритма классификации 10
2 ЗАДАЧА СЕГМЕНТАЦИИ ИСХОДНОГО ИЗОБРАЖЕНИЯ 11
2.1 Постановка задачи сегментации 11
2.2 Сегментация методами библиотеки OpenCV 12
3 ЗАДАЧА КЛАССИФИКАЦИИ НАЙДЕННЫХ СИМВОЛОВ 14
3.1 Постановка задачи классификации 14
3.2 Теоретические основы используемых методов классификации 14
3.3 Реализация и сравнение используемых методов классификации 18
4 ПОСТРОЕНИЕ СТРУКТУРЫ ВЫРАЖЕНИЯ 21
ЗАКЛЮЧЕНИЕ 23
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 24
Задача распознавания рукописных математических выражений стала актуальной в современном мире в связи с сильным развитием цифровых носителей информации и способов ее обработки и передачи.
Есть множество решений по оцифровке математических выражений, реализованных в виде десктопных приложений и веб-сервисов. Например, ABBYY FineReader, который отлично справляется с печатными выражениями, но не достиг такого же уровня в распознавании рукописных выражений. Кроме того, существующие решения ориентированы на пользователей и не могут быть использованы для автоматизации. Поэтому было решено предложить систему распознавания рукописных математических выражений, которая должна быть ориентирована на использование программистами и реализована в виде модуля для языка Python.
Целью данной работы является разработка системы по распознаванию математических выражений на изображении с возможностью их вычисления с помощью библиотеки SymPy, предназначенной для символьных вычислений на языке Python. Система должна быть реализована в виде модуля для языка Python.
Для выполнения цели были поставлены следующие задачи:
1) Рассмотреть методы предобработки данных, представленных в виде изображений.
2) Рассмотреть методы решения задачи сегментации для изображений.
3) Подготовить выборку из символов для обучения и проверки качества построенных моделей для задачи классификации.
4) Реализовать разные методы машинного обучения и сравнить как они справляются с задачей классификации рукописных символов.
5) Реализовать алгоритм по построению структуры выражения из полученных на этапе классификации результатов.
6) Реализовать парсер из полученный структуры выражения в структуру, используемую в библиотеке символьных вычислений SymPy.
В ходе разработки были решены следующие задачи:
1) Были изучены и реализованы методы предобработки изображений.
2) Был изучен и реализован метод сегментации.
3) Была подготовлена выборка из символов для обучения и проверки качества построенных моделей для задачи классификации.
4) Были реализованы методы машинного обучения для решения задачи классификации.
5) Сравнены результаты реализованных методов, сделаны выводы
6) Предложен и реализован алгоритм по построению структуры выражения.
7) Реализована система, на вход которой подается изображение, а на выходе получаем результат вычисления выражения.
1) https://ru.bmstu.wiki/KoppeKn,HH_HpKQCTH_H_KQHTpacTHQCTH —Изображений
2) https://www.intuit.ru/studies/professional_skill_improvements/courses /1105/lecture/17989?page=9
3) Linda G. Shapiro and George C. Stockman (2001): «Computer Vision», pp 279—325, New Jersey, Prentice-Hall, ISBN 0-13-030796-3
4) https://docs.opencv.org
5) Suzuki, S., and Be, K. (1985). Topological structural analysis of digitized binary images by border following. Computer Vision, Graphics, and Image Processing 30, 32-46. doi:10.1016/0734-189X(85)90016-7.
6) McHugh, Sean. "Digital Cameras: Does Pixel Size Matter? Part 2: Example Images using Different Pixel Sizes (Does Sensor Size Matter?)". Retrieved 2010-06-03.
7) Rohankar, Jayant (Nov 2013). "SURVEY ON VARIOUS NOISES AND TECHNIQUES FOR DENOISING THE COLOR IMAGE"(PDF).
International Journal of Application or Innovation in Engineering
& Management. 2 (11). Retrieved 15 May 2015.
8) Mitchell T. Machine Learning. — McGraw-Hill Science/Engineering/Math, 1997
9) https://keras.io/
10) https://scikit-learn.org/stable/
11) https://www.sympy.org/ru/index.html
12) Николенко, Кадурин, Архангельская: Глубокое обучение. Погружение в мир нейронных сетей.
13) Francois Chollet: Deep Learning with Python
14) Frank Rosenblatt: The perceptron: a probabilistic model for information storage and organization in the brain.
15) Айвазян С. А., Бухштабер В. М., Енюков И. С., Мешалкин Л. Д. Прикладная статистика: классификация и снижение размерности. — М.: Финансы и статистика, 1989.