Як легко виконати розпізнавання рукописного тексту за допомогою машинного навчання PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Як легко розпізнавати рукописний ввод за допомогою машинного навчання

Як легко розпізнавати рукописний ввод за допомогою машинного навчання

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


Нанонети API OCR має багато цікавого випадки використання. Щоб дізнатись більше, поговоріть із експертом з питань штучного інтелекту Nanonets.


Вступ

Очікується, що обсяг ринку оптичного розпізнавання символів (OCR) до 13.38 року становитиме 2025 мільярда доларів США з річним зростанням на 13.7 %. Це зростання зумовлено швидким оцифруванням бізнес-процесів за допомогою оптичного розпізнавання символів (OCR), щоб зменшити витрати на оплату праці та заощадити дорогоцінні робочі години. Незважаючи на те, що оптичне розпізнавання символів вважалося вирішеною проблемою, є один її ключовий компонент, розпізнавання рукописного тексту (Handwriting OCR) або розпізнавання рукописного тексту (HTR), який все ще вважається складним формулюванням проблеми. Великі відмінності в стилях рукописного тексту між людьми та низька якість рукописного тексту порівняно з друкованим створюють значні перешкоди для перетворення його на текст, який читається машиною. Тим не менш, це критична проблема для багатьох галузей, таких як охорона здоров’я, страхування та банківська справа.

Як легко розпізнавати рукописний ввод за допомогою машинного навчання
Джерело: - https://www.semanticscholar.org/paper/Handwriting-recognition-on-form-document-using-and-Darmatasia-Fanany/

Нещодавні досягнення в глибокому навчанні, такі як поява архітектур трансформаторів, прискорили наш прогрес у зламу розпізнавання рукописного тексту. Розпізнавання рукописного тексту називається інтелектуальним розпізнаванням символів (ICR) через той факт, що алгоритми, необхідні для розв’язання ICR, потребують набагато більшого інтелекту, ніж розв’язування загального OCR.

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


Хочете отримати дані з рукописних форм? Перейдіть до Нанонети і почніть створювати моделі розпізнавання рукописного введення безкоштовно!


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

  1. Величезна мінливість і неоднозначність штрихів від людини до людини
  2. Стиль почерку окремої людини також змінюється час від часу і є непостійним
  3. Погана якість вихідного документа/зображення через погіршення з часом
  4. Текст у друкованих документах розміщений у прямій лінії, тоді як людям не потрібно писати рядок тексту у пряму лінію на білому папері
  5. Скорописний почерк ускладнює розділення та розпізнавання символів
  6. Рукописний текст може змінюватися вправо, що відрізняється від друкованого тексту, де весь текст розташований прямо
  7. Збір хорошого міченого набору даних для навчання недешевий у порівнянні з синтетичними даними

Use cases

Охорона здоров'я та фармацевтика

Оцифровка рецептів пацієнтів є основною проблемою в галузі охорони здоров’я/фармацевтичної промисловості. Наприклад, Roche щодня обробляє мільйони петабайт медичних PDF-файлів. Ще одна сфера, де виявлення рукописного тексту має ключовий вплив, — це реєстрація пацієнтів та оцифрування форми. Додавши розпізнавання рукописного тексту до свого набору послуг, лікарні/фармацевтика можуть значно покращити роботу користувачів

Страхування

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

Як легко розпізнавати рукописний ввод за допомогою машинного навчання
Джерело:- https://www.researchgate.net/figure/mages-of-handwritten-bank-cheques-from-different-countries-a-Brazilian-1-b-American_fig2_226705617

Banking

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

Інтернет-бібліотеки

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

Методи

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

Як легко розпізнавати рукописний ввод за допомогою машинного навчання
  1. Інтернет-методи :- Онлайн-методи включають цифрове перо/стилус і мають доступ до інформації про штрих, розташування пера під час написання тексту, як показано на правому малюнку вище. Оскільки вони, як правило, мають багато інформації щодо потоку написаного тексту, їх можна класифікувати з досить високою точністю, і розмежування між різними символами в тексті стає набагато чіткішим.
  2. Офлайн методи :- Офлайн-методи передбачають розпізнавання тексту після його запису, тому вони не матимуть інформації про штрихи/напрямки, задіяні під час написання, з можливим додаванням деякого фонового шуму від джерела, тобто паперу.

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

методи

Початкові підходи до розпізнавання рукописного тексту включали такі методи машинного навчання, як приховані моделі Маркова (HMM), SVM тощо. Після попередньої обробки початкового тексту виконується вилучення функцій для ідентифікації ключової інформації, такої як петлі, точки перегину, співвідношення сторін тощо. індивідуального характеру. Ці згенеровані функції тепер передаються в класифікатор, скажімо, HMM, щоб отримати результати. Продуктивність моделей машинного навчання досить обмежена через фазу ручного вилучення функцій і їх обмежену здатність до навчання. Етап виділення функцій відрізняється для кожної окремої мови, тому не є масштабованим. З появою глибокого навчання відбулися величезні покращення в точності розпізнавання рукописного тексту. Давайте обговоримо кілька відомих досліджень у галузі глибокого навчання для розпізнавання рукописного тексту

Багатовимірні рекурентні нейронні мережі

RNN/LSTM, як ми знаємо, може мати справу з послідовними даними для виявлення часових закономірностей і отримання результатів. Але вони обмежені роботою з 1D-даними і, отже, не будуть безпосередньо застосовні до даних зображення. Щоб вирішити цю проблему, автори цієї статті запропонували багатовимірну структуру RNN/LSTM, як можна побачити на малюнку нижче

Як легко розпізнавати рукописний ввод за допомогою машинного навчання

Нижче наведена різниця між загальною RNN та багатовимірною RNN. У загальному RNN, прихований рівень каже, що i отримує стан від попереднього прихованого рівня в час i-1. У багатовимірній RNN, скажімо, наприклад, двовимірна RNN, прихований рівень (i, j) отримує стани від кількох попередніх прихованих шарів, тобто (i-2, j) і (i, j-1), і таким чином захоплює контекст з обох висота і ширина зображення, що має ключове значення для чіткого розуміння локального регіону мережею. Це додатково розширено, щоб отримати інформацію не лише з попередніх, але й із майбутніх шарів, подібно до того, як BI-LSTM отримує інформацію від t-1 і t+1. Аналогічно, прихований шар 1D MDRNN i тепер може отримувати інформацію (i-2, j), (i, j-1), (i+1, j), (i, j+1), таким чином фіксуючи контекст у всіх напрямках

Як легко розпізнавати рукописний ввод за допомогою машинного навчання

Вся структура мережі показана вище. Використовується MDLSTM, що є нічим іншим, як заміною блоку RNN блоком LSTM з вищенаведеного обговорення MDRNN. Вхід розбитий на блоки розміром 3×4, які тепер подають у шари MDSTM. Мережа має ієрархічну структуру шарів MDLSTM, за якими слідують рівні прямої подачі (ANN) у тандемі. Потім кінцевий результат перетворюється в одновимірний вектор і передається функції CTC для генерування результату

Часова класифікація коннекціоністів (CTC) це алгоритм, який використовується для виконання таких завдань, як розпізнавання мовлення, розпізнавання рукописного тексту тощо, де доступні лише вхідні дані та вихідна транскрипція, але немає деталей вирівнювання, тобто як певна область у аудіо для мовлення чи певна область у зображеннях для рукописного тексту узгоджується з певним символом. Проста евристика, як-от надання кожному символу однієї області, не спрацює, оскільки кількість місця, яке займає кожен символ, залежить від почерку людини та часу.

Для нашого випадку використання розпізнавання рукописного тексту розглянемо області вхідного зображення для певного речення як вхідні дані X=[x1,x2,…,х**Т] тоді як очікуваний вихід як Y=[y1,y2,…,y**U] . Враховуючи X, ми маємо знайти точний Y. Алгоритм CTC працює, беручи вхідні дані X і розподіляючи всі можливі Y, використовуючи які ми можемо зробити прогноз для кінцевого виходу.

CTC використовує основний символ, наприклад, щоб розрізняти повторювані символи та повторювані символи в області введення. Наприклад, окремий символ може охоплювати кілька областей введення, і, таким чином, CTC буде виводити той самий символ послідовно. Приклад: - Вхідні дані james, а вихід CTC - jjaammmees. Остаточний вихід виходить шляхом згортання повторюваних виходів, отже ми отримуємо Джеймса. Але тепер, щоб представити повторювані символи, які говорять «l» у привітанні, нам потрібно мати розділення, і тому всі виходи розділяються дефісом (-). Тепер вихід для hello може бути h-ee-ll-lll-oo, який, якщо згорнути, стане hello, а не helo. Більше інформації про те, як працює CTC, можна побачити тут СТС.

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

  1. Декодування найкращого шляху :- Це загальне декодування, яке ми обговорювали досі. У кожній позиції беремо вихід моделі і знаходимо результат з найбільшою ймовірністю.
  2. Декодування променевого пошуку :- Замість того, щоб брати один вихід із мережі щоразу, коли пошук променя пропонує зберегти декілька вихідних шляхів із найвищими імовірностями та розширити ланцюжок за допомогою нових вихідних даних та шляхів відкидання з меншою ймовірністю, щоб зберегти розмір променя. Результати, отримані за допомогою цього підходу, більш точні, ніж за допомогою жадібного підходу
  3. Променевий пошук за допомогою мовної моделі :- Пошук за променем дає більш точні результати, ніж пошук по сітці, але він не вирішить проблему отримання значущих результатів. Щоб вирішити цю проблему, ми можемо використати мовну модель разом із пошуком за променем, використовуючи ймовірності з моделі та мовної моделі для отримання кінцевих результатів.

Більш детальну інформацію щодо отримання точних результатів декодування можна переглянути тут стаття

Кодер-декодер і мережі уваги

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

Скануйте, відвідайте та читайте

У цій основоположній роботі Scan, Attend and Read (SAR) автори пропонують використовувати модель на основі уваги для наскрізного розпізнавання рукописного тексту. Основним внеском дослідження є автоматична транскрипція тексту без сегментації на рядки як етап попередньої обробки, що дозволяє сканувати всю сторінку та давати результати.

Як легко розпізнавати рукописний ввод за допомогою машинного навчання

SAR використовує архітектуру на основі MDLSTM, подібну до тієї, яку ми обговорювали вище, з однією невеликою зміною на останньому рівні. Після останнього лінійного шару, тобто останнього блоку Sum на малюнку вище, карти об’єктів згортаються у вертикальному вимірі, і для отримання результатів застосовується остаточна функція softmax.

Як легко розпізнавати рукописний ввод за допомогою машинного навчання

Архітектура SAR складається з архітектури MDLSTM, яка діє як екстрактор функцій. Останній модуль згортання з виходом softmax і втратою CTC замінено модулем уваги та декодером LSTM. Модель уваги, що використовується, є гібридною комбінацією уваги на основі вмісту та уваги на основі розташування, яка більш детально пояснюється в наступній статті. Модулі декодера LSTM беруть попередній стан, попередню карту уваги та функції кодера для створення кінцевого вихідного символу та вектора стану для наступного передбачення.

Конволюція, відвідування та заклинання

У цій роботі пропонується орієнтована на увагу модель від послідовності до послідовності для розпізнавання рукописних слів. Запропонована архітектура складається з трьох основних частин: кодера, що складається з CNN і двонаправленого GRU, механізму уваги, присвяченого зосередженню на відповідних функціях, і декодера, утвореного односпрямованим GRU, здатним писати відповідне слово, персонаж за персонажем.

Як легко розпізнавати рукописний ввод за допомогою машинного навчання

Кодер використовує CNN для вилучення візуальних функцій. Попередньо навчена архітектура VGG-19-BN використовується як екстрактор функцій. Вхідне зображення перетворюється на карту функцій X, яка потім змінюється на X' шляхом поділу всіх каналів на стовпці та їх об’єднання для отримання послідовної інформації. X' далі перетворюється на H за допомогою двонаправленого GRU. GRU — це нейронна мережа, схожа на LSTM за своєю природою, яка може отримувати тимчасову інформацію.

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

  1. Увага на основі вмісту :- Ідея полягає в тому, щоб знайти подібність між поточним прихованим станом декодера та картою ознак із кодера. Ми можемо знайти найбільш корельовані вектори ознак у карті ознак кодера, які можна використовувати для прогнозування поточного символу на поточному кроці часу. Детальніше про те, як працює механізм уваги, можна побачити тут Увага
  2. Увага на основі розташування :- Головним недоліком механізмів визначення місцезнаходження на основі вмісту є те, що існує неявне припущення, що інформація про місцезнаходження вбудована у вихідні дані кодера. Інакше неможливо відрізнити виведення символів, які повторюються з декодера. Наприклад, розглянемо слово Charmander, символ a повторюється в ньому двічі, і без інформації про місцезнаходження декодер не зможе передбачити їх як окремі символи. Щоб полегшити це, поточний символ і його вирівнювання передбачено за допомогою виведення даних кодера та попереднього вирівнювання. Докладніше про те, як працює відвідування на основі розташування, можна побачити тут.

Декодер являє собою односпрямований багатошаровий ГРУ. На кожному кроці часу t він отримує вхідні дані з попереднього кроку часу та контекстний вектор від модуля уваги. Мультиноміальне декодування та згладжування міток досліджуються під час навчання для покращення можливості узагальнення.

Моделі трансформаторів

Незважаючи на те, що мережі кодера-декодера досить добре досягають результатів для розпізнавання рукописного тексту, вони мають вузьке місце в навчанні через задіяні рівні LSTM і, отже, не можуть бути розпаралелені. Останнім часом трансформери були досить успішними і замінили LSTM у вирішенні різноманітних мовних завдань. Давайте зараз обговоримо, як трансформаторні моделі можна застосувати для розпізнавання рукописного тексту.

Зверніть увагу на те, що ви читаєте

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

Як легко розпізнавати рукописний ввод за допомогою машинного навчання

Архітектура мережі складається з наступних компонентів

  1. Візуальний кодер :- Для виділення відповідних функцій і застосування багатоголового візуального самоуваги до різних локацій персонажів
  2. Переписувач тексту :- Він виконує завдання введення тексту, його кодування, застосування самоуваги багатоголової мови та застосування взаємної уваги як до візуальних, так і до текстових функцій.
Візуальний кодер

Магістраль Resnet50 використовується для додаткових функцій, як показано на малюнку вище. Тривимірна карта функцій, отримана від Resnet3 Fc, передається в модуль Temporal Encoding, який змінює форму на 50d, зберігаючи ту саму ширину, а отже, і форму (f x h, w). Це подається на повністю пов’язаний шар, щоб зменшити форму до (f, w), а кінцевий результат – Fc'. Крім того, позиційне кодування TE додається до Fc', щоб зберегти інформацію про позицію, як зазначено в документі Transformer Васвані. Більше інформації про те, як розроблена архітектура трансформатора, можна побачити тут. Вихідні дані пропускаються через повністю підключений шар, щоб отримати остаточну карту об’єктів із формою (f , w). Остаточний результат передається через багатоголовий модуль уваги з 8 головами, щоб отримати візуально насичену карту функцій

Переписувач тексту

Введений текст передається через кодер, який генерує вбудовування на рівні символів. Ці вбудовування поєднуються з тимчасовим розташуванням, подібно до того, як у Visual Encoder за допомогою модуля Temporal Encoder. Цей результат потім передається до модуля самоуваги з кількома заголовками, який подібний до модуля уваги у візуальному кодері. Текстові об’єкти, створені разом із візуальними ознаками з візуального кодера, передаються до модуля взаємної уваги, завданням якого є вирівнювання та комбінування вивчених функцій як із зображень, так і з тексту. Вихідні дані передаються через функцію softmax, щоб отримати кінцевий результат.

При оцінці даних тесту транскрипції недоступні. Таким чином, лише початковий маркер < S > передається як вхід, а перший передбачений символ повертається в систему, яка виводить другий передбачений символ. Цей процес висновку повторюється в циклі, доки не буде створено символ кінця послідовності < E > або коли буде досягнуто максимальної вихідної довжини N.

Генерація рукописного тексту

Генерація рукописного тексту — це завдання створення справжнього рукописного тексту, яке може використовуватися для розширення існуючих наборів даних. Як ми знаємо, глибоке навчання потребує великої кількості даних для навчання, тоді як отримання величезного корпусу позначених зображень рукописного тексту для різних мов є громіздким завданням. Щоб вирішити цю проблему, ми можемо використовувати Generative Adversarial Networks для створення навчальних даних. Давайте обговоримо тут одну з таких архітектур

ScrabbleGAN

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

Як легко розпізнавати рукописний ввод за допомогою машинного навчання

Архітектура складається з повністю згорткового генератора на основі BigGAN. Для кожного символу у вхідних даних вибирається відповідний фільтр, і всі значення об’єднуються разом, які потім помножуються на вектор шуму z, який керує згенерованим стилем тексту. Як видно вище, області, створені для кожного окремого символу, перекриваються, що допомагає генерувати зв’язаний рекурсивний текст, а також забезпечує гнучкість різних розмірів символів. Наприклад, m займає значну частину місця, тоді як e і t займають обмежену площу. Щоб зберегти однаковий стиль для всього слова або речення, вектор стилю z залишається незмінним для всіх символів.

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

Вихідні дані, згенеровані ScrabbleGAN, показані нижче

Як легко розпізнавати рукописний ввод за допомогою машинного навчання

Набори даних:-

  1. IAM :- Набір даних IAM містить близько 100 тисяч зображень слів з англійської мови зі словами, написаними 657 різними авторами. Набір поїздів, тестів та перевірки містить слова, написані взаємовиключними авторами. Посилання :- http://www.fki.inf.unibe.ch/databases/iam-handwriting-database
  2. CVL :- Набір даних CVL складається з семи рукописних документів, написаних приблизно 310 учасниками, в результаті чого було створено приблизно 83 тисячі слів, розділених на набори поїздів і тестів. Посилання :- https://cvl.tuwien.ac.at/research/cvl-databases/an-off-line-database-for-writer-retrieval-writer-identification-and-word-spotting/
  3. РАЙМС :- Містить слова з французької мови з близько 60 тисяч зображень і написані 1300 авторами, що відповідають приблизно 5 листам, написаним кожною особою. Посилання :- http://www.a2ialab.com/doku.php?id=rimes_database:start

Показники: -

Частота помилок символів :- Вона обчислюється як відстань Левенштейна, яка є сумою заміни символів (Sc), вставок (Ic) і видалення (Dc), які необхідні для перетворення одного рядка в інший, поділена на загальну кількість символів у основна правда (Nc)

Як легко розпізнавати рукописний ввод за допомогою машинного навчання

Частота помилок Word :- Він обчислюється як сума замін слів (Sw), вставок (Iw) і видалення (Dw), які необхідні для перетворення одного рядка в інший, поділена на загальну кількість слів у базовій правді (Nw)

Як легко розпізнавати рукописний ввод за допомогою машинного навчання

Навчіть власну модель розпізнавання рукописного тексту

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

дані

Щоб завантажити набір даних IAM, зареєструйтеся з тут. Після реєстрації завантажте Words.tgz з тут. Він містить набір даних рукописних зображень слів. Також завантажте файл анотації words.txt тут.

Якщо ви хочете використовувати свій власний набір даних, вам потрібно дотримуватися структури даних набору даних IAM.

Як легко розпізнавати рукописний ввод за допомогою машинного навчання

Вище показано, як виглядає структура папки набору даних AIM. Тут a01, a02 тощо представляють батьківські папки, кожна з яких має підпапки з даними. Кожна вкладена папка містить набір зображень, ім’я папки додається як префікс до імені файлу.

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

a01-000u-01-00 ok 156 395 932 441 100 VBG номінація

  1. a01-000u-01-00 -> ідентифікатор слова для рядка у формі a01-000u
  2. ok/err -> Індикатор якості виводу сегментації
  3. 156 -> рівень сірого для бінарізації рядка, що містить це слово
  4. 395 932 441 100 -> обмежувальна рамка навколо цього слова у форматі x,y,w,h
  5. VBG -> граматичний тег для цього слова. Ось це дієслово герундій
  6. номінація -> транскрипція цього слова

Архітектура: -

Ми будемо навчати архітектуру на основі CRNN із втратою CTC. CNN використовується для вилучення візуальних ознак, які передаються в RNN, і втрата CTC застосовується до кінця за допомогою жадібного декодера, щоб отримати вихід.

Як легко розпізнавати рукописний ввод за допомогою машинного навчання

Навчання

Ми будемо використовувати код CRNN від тут тренувати нашу модель. Щоб підготувати дані, виконайте наведені нижче дії

python checkDirs.py

Виконайте команду вище, і ви побачите результат, як показано нижче

[ОК] слова/
[OK] words/a01/a01-000u/
[OK] words.txt
[OK] test.png
[OK] words/a01/a01-000u/a01-000u-00-00.png

Тепер ви готові почати тренування.

Перейдіть до кореневого каталогу і виконайте

python main.py --train

результати

Після навчання протягом приблизно 50 епох рівень помилок символів (CER) становить 10.72 %, а коефіцієнт помилок слова (WER) становить 26.45 %, а отже, точність слова становить 73.55 % . Деякі з прогнозів можна побачити на малюнку нижче.

Як легко розпізнавати рукописний ввод за допомогою машинного навчання

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

Підсумки

Хоча відбулися значні зміни в технології, які допомагають краще розпізнавати рукописний текст, HTR є далеко не вирішеною проблемою в порівнянні з OCR і, отже, ще не широко використовується в промисловості. Тим не менш, з темпами розвитку технологій і з появою таких моделей, як трансформери, ми можемо очікувати, що моделі HTR незабаром стануть звичайним явищем.

Щоб отримати додаткові дослідження на цю тему, ви можете почати з тут

Подальше читання

Часова мітка:

Більше від ШІ та машинне навчання