Введение 3
Обзор существующих решений 4
Постановка задачи 4
Обзор литературы 5
Глава 1. Общий подход к решению 7
Глава 2. Описание архитектуры 8
2.1. Свёрточная нейронная сеть 8
2.2. Рекуррентная нейронная сеть 10
2.3. Encoder-decoder архитектура 14
2.4. Механизм Attention 15
Глава 3. Обзор моделей 16
3.1. WYGIWYS 16
3.2. SAT 17
3.3. Im2Latex 17
Глава 4. Данные 19
Глава 5. Обучение и результаты 22
Глава 6. Программная реализация 25
Заключение 26
Список литературы 27
Задача распознавания символов (англ. optical character recognition, OCR) хорошо изучена и является очень важной составляющей любого проекта, который занимается автоматизацией документооборота или внедрения безбумажных технологий.
Распознавание применяется для преобразования документов различных форматов в текстовое представление. Такое представление позволяет осуществлять редактирование, поиск выражений, слов или фраз, хранить документ в более компактной форме, демонстрировать или распечатывать материал, не теряя качества, анализировать информацию, а также применять к тексту форматирование или преобразовывать текст в речь.
Отдельной важной подзадачей символьного распознавания документов является распознавание математических формул. Её важность и актуальность обусловлена тем, что большое количество уже существующих научных заметок, статей и книг содержат сложные математические конструкции, формулы и выражения, а доступ к текстовым вариантам таких изданий по тем или иным причинам оказывается затруднен.
Процесс распознавания математических выражений является более сложным процессом, нежели распознавание текста. Текст является одномерной последовательностью символов, математическая формула — двумерная конструкция. Текст может содержать только буквы или цифры, в математической формуле количество допустимых к использованию символов неограничено. В тексте отдельно взятые символы не имеют смысла (за исключением акронимов), а семантической единицей является слово, т.е. последовательный набор символов. В математической формуле каждый символ имеет свой смысл. Более того, один и тот же символ в разных контекстах может иметь разный смысл [1], [2].
В случае с математическими выражениями помимо распознавания непосредственно математического символа необходимо также уметь распознавать структуру всей формулы, а разбор неточностей осложняется тем фактом, что в языке математики отсутствует единый, универсальный словарь.
Исходя из перечисленных выше отличий, можно прийти к выводу о том, что задачи распознавания текстов и задачи распознавания математических формул должны иметь несколько разные подходы к решению.
В работе изучена проблема распознавания математических выражений на изображениях. Были рассмотрены различные подходы для выделения и распознавания формул в тексте. В конечном счете был выбран end-to- end подход, использующий глубокие сети. Был подготовлен набор данных из пар корректных формул - изображений. Были рассмотрены различные модели глубоких сетей, две из них были обучены на подготовленных данных. Написана программа с пользовательским интерфейсом, позволяющая обработать входные изображения и выгрузить результат в .csv файл.
Модели показали очень хорошие результаты на подготовленном наборе данных. Тем не менее, как было отмечено в Главе 5, модели оказались крайне чувствительны к различным отклонениям характера данных: изменение разрешения, шрифта, добавление шумов резко снижает качество распознавания. Впрочем, такое поведение моделей нейронных сетей, обученных на однородных данных, ожидаемо, и если не выходить за установленные рамки, программой можно успешно пользоваться. В противном же случае система нуждается в доработке.
[1] Zanibbi R., Blostein D. Recognition and retrieval of mathematical expressions // Int. J. Doc. Anal. Recognit. 2012. Vol. 15, no. 4. P. 331-357. doi: 10.1007/s10032-011-0174-4.
[2] Jacob R. Bruce, Mathematical Expression Detection and Segmentation in Document Images. (2014).
[3] Сайт ABBYY FineReader. URL: https://www.abbyy.com/en- eu/finereader/ (дата обращения 14.03.2020).
[4] Сайт Mathpix. URL: https://mathpix.com/ (дата обращения 14.03.2020).
[5] Документация API Mathpix. URL: https://docs.mathpix.com/ (дата обращения 14.03.2020).
[6] Примеры результатов работы Mathrix. URL: https://github.com/Mathpix/api-examples/raw/master/results.pdf (дата обращения 14.03.2020).
[7] Сайт InftyReader. URL: http://www.inftyreader.org/ (дата обращения 15.03.2020).
[8] About InftyReader, ChattyInfty and InftyEditor. URL: http://www.inftyreader.org/?p=166 (дата обращения: 15.03.2020).
[9] Docs Matter. URL: https://www.yunmai.com/en/products.html (дата обращения 15.03.2020).
[10] Tesseract. URL: https://github.com/tesseract-ocr/ (дата обращения 15.03.2020).
[11] Theodore Bluche. Mathematical Formula Recognition using Machine Learning Techniques. (2010).
[12] Chaudhuri B.B. Digital Document Processing: Major Directions and Recent Advances (Advances in Pattern Recognition). Springer-Verlag, Berlin, Heidelberg, 2006.
[13] Garain U., Chaudhuri B.. On Development and Statistical Analysis of a Corpus for Printed and Handwritten Mathematical Expressions // Comput. Sci. Prepr. Arch. 2002. Vol. 2002, no. 7. P. 689-699. [Электронный ресурс]. URL: https://ssrn.com/abstract=3125396.
[14] Garain U., Chaudhuri B.B. A corpus for OCR research on mathematical expressions // Int. J. Doc. Anal. Recognit. 2005. Vol. 7, no. 4. P. 241-259. doi: 10.1007/s10032-004-0140-5.
[15] Shafait F., Keysers D., Breuel T.M. (2006) Performance Comparison of Six Algorithms for Page Segmentation. In: Bunke H., Spitz A.L. (eds) Document Analysis Systems VII. DAS 2006. Lecture Notes in Computer Science, vol 3872. Springer, Berlin, Heidelberg. doi: 10.1007/11669487_33
...