Ім'я файлу: Курсова (2) (Автосохраненный).docx
Розширення: docx
Розмір: 1075кб.
Дата: 18.11.2021
скачати


ЗМІСТ

ВСТУП 4

АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ 7

1.1 Розпізнавання рукописних математичних формул 7

1.2 Огляд аналогічних проектів та існуючих рішень 8

1.3 Огляд готових рішень для створення нейронних мереж 12

1.4 Змагання з розпізнаванні математичних формул 14

ТЕОРЕТИЧНА ЧАСТИНА 16

2.1 Згорткові нейронні мережі 16

2.2 Алгоритм BFS (breadth-first search) 18

ПРОЕКТУВАННЯ 19

3.1 Варіанти використання системи розпізнавання формул 20

3.2 Проектування графічного інтерфейсу користувача 22

РЕАЛІЗАЦІЯ 24

4.1 Формування навчальної вибірки 24

4.2 Топологія нейронної мережі 22

4.2 Розпізнавання формули 26

4.2 Розробка аплікація 29

ТЕСТУВАННЯ 30

ВИСНОВОК 32

ВИКОРИСТАНА ЛІТЕРАТУРА 33

ПРОГРАМА 35

ВСТУП

Основні визначення

Штучні нейронні мережі (ШНМ) (Artificial neural networks, ANN) - спрощені моделі біологічних нейронних мереж .

Згорткові нейронні мережі (СНС, CNN) дуже схожі на звичайні нейронні мережі: вони також побудовані на основі нейронів, які володіють постійно змінюваних вагою і зсувами. Кожен нейрон отримує деякі вхідні дані, виконує скалярний добуток інформації та в окремих ситуаціях супроводжує це нелінійністю. Як і у випадку з звичайними нейронними мережами, вся CNN висловлює одну диференційовану функцію внеску (ефективний внесок): з одного боку, це необроблені пікселі зображення, з іншого - висновок класу або групи ймовірних класів, які характеризують картинку.

Класифікація - один з розділів машинного навчання, присвячений вирішення наступного завдання. Є безліч об'єктів (ситуацій), розділених деяким чином на класи. Завдання класифікації визначити кінцеву множини об'єктів, для яких відомо, до яких класів вони належать.

Це безліч називається навчальною вибіркою. Класова приналежність інших об'єктів не відома. Потрібно побудувати алгоритм, здатний класифікувати довільний об'єкт з початкової множини.

Завдання сегментації може бути сформульована як розбиття вихідного зображення на безліч непересічних зв'язкових областей, асоційованих з об'єктами спостерігається сцени або їх частинами відповідно до деякими обраними критеріями.

Актуальність теми дослідження

Завдання розпізнавання друкованого і рукописного тексту набула актуальності у зв’язку з широким розповсюдженням комп’ютерних технологій. Існує безліч рішень задачі розпізнавання тексту, аж до онлайн-сервісів [20]. Рівень розпізнавання існуючих інструментів дозволяє автоматизувати обробку машинописного тексту і звести до мінімуму необхідність постобробки людиною. Наприклад, такими можливостями володіє програма ABBYY FineReader і програма InftyReader [4]. Обидві ці програми практично точно розпізнають друковані математичні формули. Однак в розпізнаванні рукописних математичних формул цей рівень ще досягнуто.

З 2011 до 2019 року проводилося щорічне змагання з розпізнавання математичних формул - CROHME (Competition on Recognition of Online Handwritten Mathematical Expressions). Останнє подібне змагання було проведено в 2019 році. Перемогу здобула команда «WIRIS» [11]. Для класифікації окремих символів ними були використані технології нейронних мереж.

Ідея розпізнавання символів за допомогою штучних нейронних мереж розглядалася Яном Лекуном і іншими дослідниками в роботі «Handwritten character recognition using neural networks architecture» [8]. Завдання розпізнавання символів є завданням класифікації. Для вирішення цього завдання в основному використовуються згорткові нейронні мережі. Завдання розпізнавання машинописного тексту / формул і рукописного тексту практично вирішено, проте розпізнавання рукописних математичних виразів, як і раніше, є актуальним завданням на сьогоднішній день. Найбільш перспективним підходом до вирішення даного завдання є застосування нейромережевих технологій.

Мета і завдання дослідження

Метою даної роботи є проектування системи обробки математичних рукописних формул, перетворення рукописних формул в цифрові формати LaTeX, MathML. Система повинна бути реалізована в вигляді аплікації.

Для здійснення поставленої мети необхідно вирішити наступні завдання.

  • Провести огляд існуючих аналогів і наукової літератури з розпізнавання рукописного тексту і математичних формул.

  • Підготувати навчальну та тестову вибірку рукописних формул.

  • Розробити нейронну мережу для розпізнавання рукописних математичних символів.

  • Провести тестування нейронної мережі.

  • Реалізувати систему обробки рукописних математичних формул у вигляді аплікації і провести її тестування.


РОЗДІЛ 1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ

1.1 Розпізнавання рукописних математичних формул

Розпізнавання математичних виразів є більш складним завданням розпізнавання, ніж розпізнавання символів, тому що крім розпізнавання безпосередньо математичного символу необхідно також розпізнати структуру математичного виразу.

У науковій літературі розділяють два види розпізнавання рукописних символів: онлайн і оффлайн.

Онлайн розпізнавання має на увазі безпосереднє малювання формули на комп'ютері в режимі реального часу. При цьому ведеться збір додаткової інформації у вигляді часу і координат кожного штриха.

Оффлайн розпізнавання має на увазі відсутність інформації про час написання символу, дано тільки зображення, яке містить формулу, на якому формулу потрібно знайти і розпізнати, тобто виділити символи на фоні, розбити на рядки і т.д.

У даній роботі буде розглядатися завдання оффлайн розпізнавання.

1.2 Огляд аналогічних проектів та існуючих рішень

Розглянемо існуючі рішення в області розпізнавання математичних формул.

Detexify [2]

Даний веб-сервіс дозволяє малювати символ онлайн, а потім розпізнає його і надає дані найбільш ймовірних символів. Приклад роботи сервісу представлений на малюнку 1.



Рис. 1. Приклад роботи веб-сервісу Detexify

Варто зазначити, що даний сервіс відмінно справляється зі своїм завданням. Також його вихідний код повністю відкритий і викладений на GitHub [6].

Недоліком даного сервісу є те, що виробляється розпізнавання тільки одного символу. Також значним мінусом є неможливість завантажити своє зображення.

Shapecatcher [16]

Цей сервіс дуже схожий за своїм функціоналом з попереднім. Основною відмінністю є те, що тут відбувається розпізнавання Unicode-символів.

Як і в попередньому сервісі, можливо розпізнавання лише одного символу. І так само тільки намальованого онлайн. Приклад роботи сервісу представлений на малюнку 2.



Рис. 2. Веб-сервіс Shapecatcher в дії

Google Docs [3]

У Документах Google також представлена подібна можливість розпізнавання намальованого онлайн символу. Виглядає і працює так ж, як і в двох попередніх сервісах.

Цей інструмент дуже зручний для пошуку і вставки в документ необхідного вам спеціального символу. Приклад роботи представлений на малюнку 3.



Рис. 3. Розпізнавання спеціальних символів в Google Docs

Mathematical Expression Recognition [9]

Даний сервіс, на відміну від усіх попередніх, надає можливість розпізнавання декількох символів. На виході система видає LaTeX-код. Приклад роботи сервісу ви можете побачити на малюнку 4.



Рис. 4. Приклад роботи MER

Photomath [13]



Рис. 5. Приклад роботи програми Photomath

Photomath - це додаток для Android, що дозволяє автоматично вирішувати прості математичні приклади, просто знявши їх на камеру.

Система автоматично розпізнає формулу на фотографії, а також проводить її обчислення. Вміє вирішувати лише прості приклади, в одну строчку, без інтегралів і т.д. Приклад представлений на малюнку 5.

Порівняння аналогів

У таблиці табл. 1 представлений порівняльний аналіз всіх аналогів, розглянутих вище.

Табл. 1. Порівняння аналогів

Формат

Критерій

Detexify

Shapecatcher

Google Docs

MER

Photomath

Онлайн









-

Офлайн

-

-

-

-



LaTeX



-

-



-

Unicode

-





-

-

Розпізнавання декілька символів

-

-

-





Розпізнавання дробових виразів

-

-

-





Розпізнавання виразів з інтегралами

-

-

-





Покрокове рішення

-

-

-

-




Велика частина аналогів є онлайн розпізнавання. Єдиним представником оффлайн розпізнавання в цьому списку є мобільний додаток Photomath, який має широкий функціонал, але не видає формулу у вигляді LaTeX-коду.

1.3 Огляд готових рішень для створення нейронних мереж

Перша згорткова нейронна мережа для розпізнавання символів була представлена в 1998 році французьким дослідником Яном Лекуном (Yann LeCun) [7]. Називається вона LeNet. Структура даної мережі представлена на малюнку нижче.



Рис. 6. Структура нейронної мережі LeNet

Для мови програмування Python існує велика кількість готових бібліотек для роботи з нейронними мережами. Використання цих бібліотек покликане в значній мірі спростити завдання розробки нейронних мереж. Далі в цьому розділі будуть розглянуті найбільш популярні з них.

TensorFlow [17]

Дуже популярна бібліотека, що розробляється Google. Документація для даної бібліотеки добре опрацьована. Також дуже багато документації в Інтернеті і прикладів нейронних мереж для даної бібліотеки.

Для подання нейронної мережі тут використовуються графи, а для зберігання даних багатовимірні масиви - тензори.

Theano [18]

Інша не менш популярна бібліотека для Python. Бібліотека отримала свою назву на честь імені дружини давньогрецького філософа і математика Піфагора - Феано (або Теано). Так само, як і інших бібліотеках, є інтеграція з бібліотекою NumPy [12]. Присутня можливість проведення обчислень як на CPU, так і на GPU.
Keras [5]

Бібліотека, а якщо бути точніше, фреймворк для створення нейронних мереж. Keras, є надбудовою над TensorFlow і Theano і може використовувати будь-яку з цих двох бібліотек для проведення обчислень. з всіх бібліотек ця найбільш зручна і проста для розуміння. нові шари тут додаються лише з використанням однієї функції. Гарна документація і безліч готових прикладів - все це є великим перевагою для Keras.

За підсумками огляду бібліотек було вирішено використовувати Keras, як найбільш зрозумілу і просту для новачків. Його функціоналу нам буде досить для побудови необхідної нам нейронної мережі.

PyTorch [21]

PyTorch — відкрита бібліотека машинного навчання на основі бібліотеки Torch, що використовують для таких застосувань, як комп'ютерне бачення та обробка природної мови.Розробляє її переважно група дослідження штучного інтелекту компанії Facebook. Вона є вільним та відкритим програмним забезпеченням, що випускають під ліцензією Modified BSD. І хоча інтерфейс Python є більш відшліфованим, і головним зосередженням розробки, PyTorch також має зовнішній інтерфейс і для C++. Крім того, програмне забезпечення ймовірнісної мови програмування Pyro компанії Uber використовує PyTorch як внутрішній інтерфейс.

За підсумками огляду бібліотек було вирішено використовувати PyTorch, як найбільш зрозумілу і просту для новачків. Її функціоналу нам буде досить для побудови необхідної нам нейронної мережі.


1.4 Змагання з розпізнавання математичних формул.

Змагання CROHME проводилося з 2011 по 2019 рік. З кожним роком результати і складність розпізнавання збільшувалася. Разом з цим зростала і кількість даних, що використовуються для навчання і тестування розроблених систем. Так, наприклад, в 2011 році для навчання використовувалося 921 математичне вираз і 348 для тестування [10]. Тоді як, в 2019 ця кількість даних досягло 12836 і 1447 для навчання і для тестування відповідно.

Разом з тим, як зростала кількість даних, збільшувалася і складність, і якість розпізнавання. Максимальна точність розпізнавання основного завдання (рукописних математичних формул) в 2011 році становила 22,41%, такий результат показала команда з організаторів конкурсу, яка в самому змаганні не брала участь. У 2019 році кращий результат по цьому завданню вже був 73,65%, цей результат був продемонстрований командою «MyScript».

Змагання складається з декількох завдань. У 2019 році їх було чотири, деякі з яких мали підзадачі. Вони були визначені в такий спосіб.

  1. Розпізнавання формул. Розпізнавання рукописних математичних формул (основне завдання).

  2. Розпізнавання символів. Класифікація окремих математичних символів.

  3. Розпізнавання структури. Розпізнавання структури математичної формули.

  4. Матричне розпізнавання. Розпізнавання виразів, що містять матриці з рукописних штрихів. Дане завдання була експериментальною.

Вихідні дані (математичні вирази) зберігаються в файлах з форматом inkML. Це прості текстові файли, написані в XML-форматі. InkML-файл складається з 3 частин: координати штрихів, істина на рівні символів, істина на рівні математичного виразу.

Деякі команди використовували власні, приватні, дані для навчання. У 2019 році команді MyScript, таким чином вдалося досягти точності 73,65%. Для цього були використані близько 30 000 власних математичних формул. У той же час, команда WIRIS, використовуючи лише надані організаторами дані, досягла результату 49,61%.

Висновки по першому розділу

Для завдання розпізнавання рукописних математичних формул вже існує ряд підходів і їх реалізації. Однак більшість з них має істотні недоліки. Наприклад, не дозволяють завантажити власне зображення і не надають зручний графічний інтерфейс для роботи. Також, велика частина цих інструментів не має зручного виведення результату в різні формати (LaTeX і т.п.). необхідно буде врахувати ці недоліки при розробці власного додатка.

Розвиток і популярність нейромережевих технологій є додатковим стимулом до того, щоб проводити дослідження в цій області. Також є безліч існуючих бібліотек для створення і навчання нейронних мереж, які полегшують це завдання. варто прийняти до уваги і той факт, що на змаганні CROHME активно застосовуються нейромережеві технології. Один з кращих результатів показала команда «MyScript» з точністю 74,65%. Тим самим завдання розпізнавання рукописних математичних формул із застосуванням нейромережних технологій є актуальною.
РОЗДІЛ 2 ТЕОРЕТИЧНА ЧАСТИНА.

2.1 Згорткові нейронні мережі

Згорткові нейронні мережі, як архітектура штучних нейронних мереж, були запропоновані Яном Лекуном (Yan LeCun) в 1988 році. Ця архітектура спрямована на ефективне розпізнавання зображень. Приклад згорткової нейронної мережі представлений на малюнку 7.



Рис. 7. Приклад згорткової нейронної мережі

Основною ідеєю є чергування шарів згортки і шарів підвибірки. За рахунок того, що враховується двовимірність зображення, згорткові нейронні мережі показують себе краще на розпізнаванні зображень, ніж інші види штучних нейронних мереж.

Алгоритм роботи шару згортки полягає в наступному, кожен фрагмент вихідного зображення множиться на матрицю (ядро) згортки, отримані результати сумуються і записуються в початкове положення, але вже на іншому зображенні. Цей процес зображений на малюнку 8.

Також, крім шарів згортки, використовуються шари підвибірки. Такий шар дозволяє зменшити розмірність зображення. Вважається що наявність ознаки, важливіше його положення. Суть методу полягає в тому, що група пікселів (наприклад, 2 на 2) стискається до одного. зазвичай для цього використовується функція максимуму. Приклад роботи шару підвибірки представлений на малюнку 9.



Рис. 8. Приклад згортки зображення

Після проходження декількох шарів згортки і підвибірки, кількість каналів збільшується, а розмірності зображень зменшуються. На цьому етапі відбувається перехід до повнозв'язних верств. В результаті, останній шар має розмірність, відповідну числу класів.



Рис. 9. Приклад роботи шару підвибірки з функцією максимуму

2.2 Алгоритм BFS (breadth-first search)

Алгоритм BFS або пошук в ширину є методом обходу графа. Його основна суть полягає в тому, що відбувається послідовний обхід рівнів графа, який починається з вершини-джерела.

Покрокове виконання алгоритму.

  1. Помітити вершину, з якої починається пошук, і помістити в порожню чергу.

  2. Витягти з черги вершину і позначити її.

  3. Додати в чергу всі сусідні вершини, які ще не позначені і не додано в чергу.

  4. Якщо черга порожня, значить всі вершини переглянуті.

  5. Інакше повертаємося до пункту 2.

Висновки по другому розділу

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


РОЗДІЛ 3 ПРОЕКТУВАННЯ

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

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

Вимоги до класів нейронної мережі

У кінцевий набір класів повинні входити:

  • цифри (10 штук);

  • букви латинського алфавіту верхнього і нижнього регістрів (52 штуки);

  • букви грецького алфавіту (48 штуки);

  • математичні символи: +, -, =.

Разом: 113 класів, кожен клас відповідає за один символ.

Вимоги до системи розпізнавання формул

На підставі аналізу предметної області та опису теоретичної частини були визначені наступні функціональні вимоги до розробки.

  1. Користувач повинен мати можливість вибрати і завантажити зображення.

  2. Користувач повинен мати можливість отримати готовий результат у форматі LaTeX

  3. Система повинна завантажувати зображення користувача.

  4. Система повинна розпізнавати символи на зображенні і формувати їх в готову формулу.


3.1 Варіанти використання системи розпізнавання формул

Для проектування програми було використано мову графічного опису для об'єктно-орієнтованого програмування UML. Була побудована модель взаємодії зовнішнього актора з програмною системою у вигляді діаграми варіантів використання (use-case diagram).

Отримана діаграма зображенана малюнку 10.



Рис. 10. Діаграма варіантів використання

На представленій діаграмі зображений 1 актор:

Користувач - людина, що користується системою і використовує певні функції.

Для кожного актора визначені свої варіанти використання.

Користувачеві доступні наступні функції:

  1. Завантажити зображення-користувач вибирає зображення для розпізнавання і завантажує його на сервер;

  2. Запустити процес розпізнавання завантаженого файлу — користувач натискає на кнопку "розпізнати" і починається процес розпізнавання;

  3. Скопіювати результат розпізнавання — користувач може скопіювати результат розпізнавання в спеціальних текстових полях.

Діаграми діяльності

На основі вимог до системи була розроблена діаграма діяльності, представлена на малюнку 11.

Ця діаграма показує, як відбувається процес взаємодії користувача з системою.



Рис. 11. Діаграма діяльності

3.2. Проектування графічного інтерфейсу користувача

Інтерфейс аплікації повинен бути простим і зрозумілим, але при цьому повинен повністю забезпечувати необхідну функціональність.

Інтерфейс аплікації складається з 3 основних частин: меню, блок з кнопками і інформаційний блок. Меню містить кнопки для завантаження зображення Користувачем. Блок кнопок містить основну функціональність програми. Результат виводиться в інформаційному блоці, в якому містяться: вихідне зображення, результат у вигляді LaTeX коду, а також покрокове опрацювання зображень. Остання кнопка генерує файл з формулою, який відкривається в діалоговому вікні.

Макет графічного інтерфейсу користувача зображений на малюнку 12.



Рис. 12. Макет графічного інтерфейсу
Висновки по третьому розділу

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

4. РЕАЛІЗАЦІЯ

Засоби розробки

Для розробки програмної частини для розпізнавання формул було використано високорівневу мову програмування Python 3.6. Розробка велася в середовищі розробки Spyder(anaconda3)[15] і на операційній системі Windows [1]. Для мови програмування Python було використано стандартні бібліотеки 2python, а також Pytorth, Tkinter[19], Pillow [14] тощо.

Для реалізації інтерфейсу була використана технологія Tkinter.

4.1. Формування навчальної вибірки

Для навчання розпізнаванню формул було використано дві збірки зображень. Перша містила 986 картинок, друга - 8 835. Для навчання було використано 111 класів, серед яких немає схожих символів. Підсумковий список символів можна побачити на малюнку 13.



Рис. 13. Візуальне представлення класів

Підсумкова кількість символів для навчання близько 87 462 символів. Після формування необхідних даних, було проведено тренування згорткової нейронної мережі.


4.2. Топологія нейронної мережі

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



Рис. 13. Структура згорткової нейронної мережі

Отримана нейронна мережа складається з:

  • 4 шарів згортки;

  • 2 шарів підвибірки;

  • 2 повноцінних шарів.

На вхідних шар подається чорно-біле зображення, розміром 28x28 пікселів. На виході - повнозв'язний шар, розміром, відповідним кількості класів.

4.3. Розпізнавання формули

На початку відбувається підготовка зображення. Зокрема, зображення бінарізуется. Потім, відбувається пошук зв'язкових компонент в зображенні. Занадто малі за розміром прибираються. Далі, кожен символ готується до розпізнавання, і подається на розпізнавання нейронної мережі. Результати розпізнавання нейронної мережі збираються і відбувається післяобробка символів. На даному етапі, як раз, і збирається формула. Далі розпізнана формула перетвориться в потрібний формат і виводиться користувачеві.

У наступних підрозділах буде детально висвітлено кожен етап розпізнавання формули.

Підготовка зображення

На даному етапі відбувається попереднє поліпшення вихідного зображення. Воно бінарізуется і з нього забирається зайвий шум.

Алгоритм сегментації

Для виділення символів з фону використовується алгоритм BFS. Після того, як були виділені всі області зв'язності, деякі з них відкидаються, зокрема, ті, які є занадто маленькими за розміром (шум).

Потім, для кожного символу визначається його положення, кордони, точка центру. Ця інформація буде використана в подальшому.

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

Для того, щоб розпізнати зображення з символами за допомогою нейронної мережі, їх слід підготувати, тобто перетворити в потрібний формат.

Процес підготовки символу до розпізнавання можна описати так.

  1. Символ обрізається по краях з вихідного зображення.

  2. Зображення перетвориться в квадратне по більшому краю.

  3. Розміри отриманого зображення перетворюються в 20x20.

  4. По краях додається порожній простір і розмір збільшується до 28х28 пікселів.

Описаний процес представлений на малюнку 16.



Рис. 14. Перетворення символу

Отримане зображення перетворюється в одновимірний масив розміром 784 елемента (28х28 пікселів). І нормується, тобто значення від 0 до 255 перетворюються на значення в інтервалі від 0 до 1.

Розпізнавання символів

На даному етапі відбувається розпізнавання кожного окремо взятого символу за допомогою нейронної мережі.

Визначення положення символу в формулі

Після того, як символи були розпізнані, проводиться їх додаткова обробка.

Символи упорядковано зліва направо, і далі оцінюється їх приналежність до ступеня або до нижнього індексу. Для цього обчислюється кут між центрами поточного і попереднього символу.

  1. Якщо кут більше 30 і менше 60 градусів, то це ступінь.

  2. Якщо кут більше -60 і менше -30 градусів, то це нижній індекс.

Візуально це можна побачити на малюнку 17.



Рис. 15. Визначення положення по куту

Далі обробляються всі символи, розпізнані як символ «мінус». І якщо два мінуси йдуть підряд, причому вони знаходяться один під одним, то два даних символу перетворюються в один - «рівність».

З'єднання окремих символів у формулу

Після того як були оброблені всі символи, необхідно їх зібрати в одну формулу.

Символи збираються послідовно, зліва направо. Для кожного символу визначається його LaTeX-код і положення в формулі.

4.4. Розробка аплікація

Для того, щоб процес розпізнавання формул був максимально зручним був розроблений інтерфейс, який дозволяє розпізнавати формули.

Дизайн сервісу

Для аплікації, згідно макету (Рис. 12), за допомогою розширення tkinter було сформовано інтерфейс користувача.



Рис. 16. Шаблон аплікації

Принцип роботи

Коротко про схему роботи аплікації. Користувач завантажує своє зображення. Зображення обробляється і зберігається за допомогою функцій бібліотеки Pillow. Після цього користувач має можливість працювати з завантаженим зображенням. Для того, щоб користувач міг побачити процес розпізнавання, була додана можливість покрокового розпізнавання. Скріншоти, що демонструють роботу аплікації представлені в додатку 1.

Висновки по четвертому розділу

На основі розробленої архітектури була реалізована аплікація для розпізнавання рукописних математичних формул. Розроблений сервіс відповідає запропонованим вимогам.
5. ТЕСТУВАННЯ

Тестування нейронної мережі

Згорткова нейронна мережа була навчена на 20 епохах. При навчанні нейронна мережа показала значення точності 81.230%, а функція втрат 17.160%.

В якості опції підрахунку втрат використовувалася категорійна крос-ентропія (categorical cross-entropy), а для оптимізації - стохастичний градієнтний спуск (Stochastic Gradient Descent).

Функціональне тестування

Було виконано функціональне тестування згідно з функціональними вимогами, представленими в розділі 3.2. Результати тестування наведені нижче.

Тест №1.

Мета: перевірка запуску.

Очікуваний результат: аплікація повинна завантажуватися і виводитись.

Висновок: очікуваний і отриманий результат збігаються, мета досягнута.

Тест №2.

Мета: перевірити завантаження зображення і запуск процесу розпізнавання.

Очікуваний результат: сервіс повинен завантажити вибране зображення і запустити процес розпізнавання. Отримані результати зображені на малюнках в додатку.

Висновок: очікуваний і отриманий результат збігаються, мета досягнута.

Тест №3.

Мета: перевірити процес розпізнавання символів на зображенні.

Очікуваний результат: при натисканні на кнопку «Розпізнати», додаток повинен почати процес розпізнавання символів на зображенні і після закінчення процесу, видати результат користувачеві.

Висновок: очікуваний і отриманий результат збігаються, мета досягнута.

Тест №4.

Мета: перевірити автоматичне виділення тексту в текстових полях з LaTeX і MathML кодом. Очікуваний результат: при кліці на текстове поле, текст автоматично виділяється. Висновок: очікуваний і отриманий результат збігаються, мета досягнута.

Висновок по п'ятому розділу

Було проведено функціональне тестування відповідно до вимог. Згорткова нейронна мережа також була протестована на основі спеціального набору символів. Наведено тестування сервісу на спеціальному наборі зображень.

ВИСНОВОК

В рамках курсової було опрацьовано основні технології для розпізнавання рукописних математичних формул. В ході розробки були вирішені наступні завдання.

  1. Було проведено огляд існуючих аналогів і наукової літератури з розпізнавання рукописного тексту і математичних формул.

  2. Була підготовлена ​​навчальна і тестова вибірка рукописних символів.

  3. Розроблено нейронну мережу для розпізнавання рукописних математичних символів.

  4. Проведено тестування нейронної мережі.

  5. Реалізована система обробки рукописних математичних формул у вигляді аплікації і проведено її тестування.

Подальший напрямок роботи

Планується продовжувати розробку і поліпшення сервісу, а зокрема:

  1. Покращити відсоток розпізнавання символів нейронною мережею шляхом збільшення навчальної вибірки.

  2. Збільшити кількість класів в навчальній вибірці.

  3. Збільшити швидкість розпізнавання.

  4. Розробити mobile-app яка б використовувала цей сервіс для динамічного розпізнавання формул і формування готових файлів.

  5. Розробити веб-аплікацію (аналогічно до попереднього пункту).

  6. Добавити можливість розв’язку рівнянь.

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

  1. Windows. Оф. сайт. URL: https://www.microsoft.com/uk-ua/windows.

  2. Detexify LaTeX handwritten symbol recognition. URL: http://detexify.kirelabs.org/classify.html.

  3. Google Документы. URL: http://docs.google.com/.

  4. InftyReader. Офіційний сайт. URL: http://www.inftyreader.org/.

  5. Keras. Офіційна документація. URL: https://keras.io/ .

  6. kirel/detexify: Latex Symbol Classifier Web Frontend. URL: https://github.com/kirel/detexify.

  7. LeCun Y. LeNet-5, convolutional neural networks. URL: http://yann.lecun.com/exdb/lenet/.

  8. Matan O. Handwritten Character Recognition Using Neural Network Architectures. / O. Matan, R. Kiang, C. Stenard, et al. // Proceedings of the 4th US Postal Service Advanced Technology Conference. – 1990. – Vol. 9. – P. 1003-1011.

  9. Mathematical Expression Recognition. URL: http://cat.prhlt.upv.es/mer/.

  10. Mouchere H. CROHME2011 : Competition on Recognition of Online Handwritten Mathematical Expressions. / H. Mouchere, C. Viard-Gaudin, D. H. Kim, et al. // 2011 International Conference on Document Analysis and Recognition. – 2011. – Vol. 4. – No. 1. – P. 1497–1500.

  11. Mouchere H. ICFHR 2016 CROHME : Competition on Recognition of Online Handwritten Mathematical Expressions. / H. Mouchere, C. ViardGaudin, R. Zanibbi, et al. // 2016 15th International Conference on Frontiers in Handwriting Recognition (ICFHR). – 2016. – Vol. 5. – No. 1. – P. 607–612. 37.

  12. NumPy. Офіційний сайт. URL: https://numpy.org/.

  13. Photomath. Google Play App.

  14. Pillow. Офіційна документація. URL: https://pillow.readthedocs.io/stable/.

  15. Anaconda. Офіційний сайт. URL: https://www.anaconda.com/.

  16. Shapecatcher: Unicode Character Recognition. URL: https://shapecatcher.com/.

  17. TensorFlow. Офіційний сайт. URL: https://www.tensorflow.org/

  18. Theano. Оф. документація. URL: http://deeplearning.net/software/theano/.

  19. Tkinter. Оф. документація. URL: https://docs.python.org/3/library/tk.html.

  20. Write Math. URL: http://write-math.com/.

  21. Pytorch. Офіційний сайт. https://pytorch.org/

Програма

Скріншоти програми



Рис. 1. Результати виконання програми



Рис. 2. Формування PDF файлу



Рис. 3. Розпізнавання складних формул

Покрокове розпізнавання



Рис. 4. Вхідне зображення



Рис. 5. Покрокове розпізнавання


скачати

© Усі права захищені
написати до нас