ELAKPI: Home



НАЦ?ОНАЛЬНИЙ ТЕХН?ЧНИЙ УН?ВЕРСИТЕТ УКРА?НИ?КИ?ВСЬКИЙ ПОЛ?ТЕХН?ЧНИЙ ?НСТИТУТ ?МЕН? ?ГОРЯ С?КОРСЬКОГО??НСТИТУТ ПРИКЛАДНОГО СИСТЕМНОГО АНАЛ?ЗУКАФЕДРА МАТЕМАТИЧНИХ МЕТОД?В СИСТЕМНОГО АНАЛ?ЗУНа правах рукописуДо захисту допущеноУДК _004.932.2____В. о. зав?дувача кафедри ММСАО.Л.Тимощук?___? ____________ 2018 р.Маг?стерська дисертац?яна здобуття ступеня маг?стра за спец?альн?стю 122 Комп’ютерн? наукина тему: ?Система розп?знавання рукописного тексту на основ? динам?чного передбачення?Виконав: студент ?? курсу, групи КА-74 мпБаляс Олександр Олегович____________Кер?вник: доцент ММСА,к. т. н., Тимощук Оксана Леон?д?вна ____________Рецензент:____________Засв?дчую, що у ц?й маг?стерськ?й дисертац??нема? запозичень з праць ?нших автор?вбез в?дпов?дних посиланьСтудент ____________Ки?в2018Нац?ональний техн?чний ун?верситет Укра?ни?Ки?вський пол?техн?чний ?нститут ?мен? ?горя С?корського??нститут прикладного системного анал?зуКафедра математичних метод?в системного анал?зуР?вень вищо? осв?ти – другий (маг?стерський) Спец?альн?сть (спец?ал?зац?я) – 122 ?Комп’ютерн? науки? (??нтелектуальний анал?з даних в управл?нн? проектами?)ЗАТВЕРДЖУЮЗав?дувач кафедри__________ О. Л. Тимощук?___? _____________2018 р.ЗАВДАННЯна маг?стерську дисертац?ю студенту Балясу Олександру Олеговичу1. Тема дисертац?? ?Система розп?знавання рукописного тексту на основ? динам?чного передбачення?, науковий кер?вник дисертац?? Тимощук Оксана Леон?д?вна, к.т.н., доцент кафедри ММСА, затверджен? наказом по ун?верситету в?д ?07?_листопада_ 2018 р. № 4121-с2. Терм?н подання студентом дисертац??: 3. Об’?кт досл?дження: виб?рка цифрових зн?мк?в, що м?стять друкований та рукописний текст. Виб?рка м?стить наб?р параметр?в, на основ? яких проводиться прогнозування.4. Предмет досл?дження: методи та п?дходи для розп?знавання рукописного тексту.5. Перел?к завдань, як? потр?бно розробити: 1) Обрати предметну область;2) Зд?йснити анал?з ?снуючих даних;3) Провести огляд та обрати п?дходящий математичний апарат;4) зд?йснити постановку задач? маг?стерсько? дисертац??;5) Провести анал?з ?снуючих моделей та метод?в оц?нювання точност? моделей;6) Зд?йснити огляд особливостей систем розп?знавання тексту, зд?йснити моделювання;7) Створити програмний продукт;8) Провести пор?вняльний анал?з результат?в.6. Ор??нтовний перел?к граф?чного (?люстративного) матер?алу: 1) Структура статистичних даних;2) Процедура побудова алгоритму розп?знавання;3) Процедура побудови програмного продукту7. Ор??нтовний перел?к публ?кац?й: 8. Дата видач? завдання:Календарний план№ з/пНазва етап?в виконання маг?стерсько? дисертац??Терм?н виконання етап?в маг?стерсько? дисертац??Прим?тка1Оформлення концептуального вступу07.09.2018 - 09.09.20182Написання першого та другого розд?л?в09.09.2018 - 15.10.20183Робота над трет?м розд?лом16.10.2018 - 02.11.20184Оформлення четвертого розд?лу03.11.2018 - 20.11.20185Формулювання висновк?в та анал?з отриманих результат?в21.11.2018 - 26.11.2018Студент Баляс О. О.Науковий кер?вник дисертац??Тимощук О. Л.РЕФЕРАТМаг?стерська дисертац?я: 99 с., 14 рис., 26 табл., 22 джерел. Тема маг?стерсько? дисертац??: ?Система розп?знавання рукописного тексту на основ? динам?чного передбачення?.Об’?кт досл?дження – цифров? зн?мки, що м?стять друкований та рукописний текст.Предмет досл?дження – методи та п?дходи для розп?знавання друкованого та рукописного тексту.Мета роботи – розробка системи для розп?знавання рукописного ? друкованого тексту на основ? динам?чного передбачення.Методи досл?дження – алгоритми на п?дходи для задач розп?знавання рукописного тексту. Проведений огляд ?снуючих метод?в розп?знавання тексту ?з цифрових зображень, а також проведено пор?вняльний анал?з серед ус?х метод?в.Проведено декомпозиц?ю задач? та обрано найефективн?ш? методи та алгоритми для задач? розп?знавання тексту.Створено програмний продукт для виявлення тексту з цифрових фотограф?й. У робот? представлен? результати роботи програми на створен?й виб?рц? зображень рукописного та друкованого тексту.Модель побудована за допомогою мови програмування Python, а сам програмний продукт за допомогою фреймворку JavaFX.РОЗП?ЗНАВАННЯ, ТЕКСТ, РУКОПИСНИЙ, ФОТОГРАФ??, JAVAFX, JAVA, PYTHONABSTRACTMaster dissertation: 99 pp., 14 pp., 26 pp., 22 sources.Theme of the master's thesis: "The system of recognition of the handwritten text on the basis of dynamic prediction".The object of research is digital images containing printed and handwritten text.Subject of research - methods and approaches for recognition of printed and handwritten text.The purpose of the work is to develop a system for recognizing handwritten and printed text based on dynamic prediction.Methods of research - algorithms on approaches for the recognition of handwritten text.An overview of existing methods for recognizing text from digital images was conducted, and a comparative analysis was performed among all methods.A decomposition of the problem was made and the most effective methods and algorithms for the text recognition problem were selected.A software product for detecting text from digital photos has been created. The paper presents the results of the program work on a sample of handwritten and printed text images.The model is built using the Python programming language, and the software product itself using the JavaFX framework.RECOGNITION, TEXT, PHOTOGRAPHY, JAVAFX, JAVA, PYTHONЗм?ст TOC \o "1-3" \h \z \u ПЕРЕЛ?К ПРИЙНЯТИХ ПОЗНАЧЕНЬ ТА СКОРОЧЕНЬ PAGEREF _Toc531334398 \h 8ВСТУП PAGEREF _Toc531334399 \h 9РОЗД?Л 1 ЗАГАЛЬНИЙ АНАЛ?З МЕТОД?В РОЗП?ЗНАВАННЯ ТЕКСТУ PAGEREF _Toc531334400 \h 111.1 Еволюц?я п?дход?в призначених для оптичного розп?знавання тексту PAGEREF _Toc531334401 \h 111.2 Понят?йний апарат PAGEREF _Toc531334402 \h 131.3 Поточний стан технолог?й оптичного розп?знавання тексту PAGEREF _Toc531334403 \h 231.4 Загальний алгоритм оптичного розп?знавання тексту PAGEREF _Toc531334404 \h 24 1.4.1 Алгоритм розп?знавання класу шрифтових метод?в PAGEREF _Toc531334405 \h 251.4.2 Алгоритм розп?знавання класу безшрифтових метод?в PAGEREF _Toc531334406 \h 271.5 Алгоритми розп?знавання рукописних символ?в PAGEREF _Toc531334407 \h 291.6 Розп?знавання рукописних символ?в PAGEREF _Toc531334408 \h 371.7 Використання нейронних мереж як один ?з метод?в розп?знавання тексту PAGEREF _Toc531334409 \h 391.8 Огляд ? характеристика ?снуючих комплекс?в розп?знавання письмового тексту PAGEREF _Toc531334410 \h 41Висновки до розд?лу PAGEREF _Toc531334411 \h 45РОЗД?Л 2 РОЗП?ЗНАВАННЯ РУКОПИСНОГО ТЕКСТУ НА ОСНОВ? ПЕРЕДБАЧЕННЯ PAGEREF _Toc531334412 \h 472.1 Понят?йний апарат PAGEREF _Toc531334413 \h 472.2 Нейронна мережа в задачах обробки зображень PAGEREF _Toc531334414 \h 492.3 Основн? принципи роботи алгоритму PAGEREF _Toc531334415 \h 532.4 Реал?зац?я системи розп?знавання тексту на основ? динам?чного передбачення PAGEREF _Toc531334416 \h 58Висновки до розд?лу PAGEREF _Toc531334418 \h 67РОЗД?Л 3 АНАЛ?З ЕКСПЕРИМЕНТАЛЬНИХ ДАНИХ ЗА РЕЗУЛЬТАТОМ РОБОТИ ПРОГРАМНОГО МОДУЛЯ PAGEREF _Toc531334419 \h 683.1 Обгрунтування вибору засоб?в створення продукту PAGEREF _Toc531334420 \h 683.2 Використання програмного продукту PAGEREF _Toc531334421 \h 703.3Проведення експеримент?в та анал?з отриманих результат?в. PAGEREF _Toc531334422 \h 74 3.3.1Результат розп?знавання малих частин рукописного тексту PAGEREF _Toc531334423 \h 75 3.3.2 Результат розп?знавання великих частин рукописного тексту PAGEREF _Toc531334424 \h 76 3.3.3Результат розп?знавання малих частин друкованого тексту PAGEREF _Toc531334425 \h 78Висновки до розд?лу PAGEREF _Toc531334426 \h 79РОЗД?Л 4 РОЗРОБЛЕННЯ СТАРТАП-ПРОЕКТУ PAGEREF _Toc531334427 \h 804.1 Опис ?де? проекту PAGEREF _Toc531334428 \h 804.2 Технолог?чний аудит ?де? проекту PAGEREF _Toc531334429 \h 82 4.3 Анал?з ринкових можливостей запуску стартап-проекту PAGEREF _Toc531334430 \h 83 4.4 Розроблення ринково? стратег?? проекту PAGEREF _Toc531334431 \h 90 4.5 Розроблення маркетингово? програми стартап-проекту PAGEREF _Toc531334432 \h 92Висновки до розд?лу PAGEREF _Toc531334433 \h 95ВИСНОВКИ ПО РОБОТ? ТА РЕКОМЕНДАЦ?? ДО ПОДАЛЬШИХ ДОСЛ?ДЖЕНЬ PAGEREF _Toc531334434 \h 96ПЕРЕЛ?К ПОСИЛАНЬ …………………………………………………………………...……..97ПЕРЕЛ?К ПРИЙНЯТИХ ПОЗНАЧЕНЬ ТА СКОРОЧЕНЬOРТ – оптичне розп?знавання текстуOCR – optical character recognitionШНМ – штучна нейронна мережаПХ – перетворення ХафаВСТУППройшли т? часи, коли вс? документи орган?зац?й, книжки, форми, дов?дки ? т.д. збер?галися т?льки в паперовому або друкованому вигляд?. В останн? десятир?ччя перед сусп?льством постала проблема переведення тексту друкованих книжок в б?льш зручний для 21 стор?ччя цифровий формат. За останн? 7-8 рок?в за допомогою систем компан?? ?Гугл? було оцифровано б?льше 15 м?льйон?в книжок ? це число росте з кожним днем. В наш? дн? майже вс? компан?? ведуть електронний документооб?г, в б?бл?отеках можна взяти не лише друкован? п?дручники, а дов?дки в державних установах поступово починають видавати в електронному вигляд?. Все це допомага? опрацьовувати р?зного роду документи дуже швидко та зручно вести детальний зв?т по вс?м галузям.В таких випадках за велико? к?лькост? документ?в на паперових нос?ях необх?дно перевести так? документи в електронний вигляд. Але переводити ус? документи не в автоматизованому порядку дуже складно та дуже затратно. Тому необх?дно впроваджувати та використовувати розп?знавання ус?х вид?в документ?в, починаючи в?д чек?в ? зак?нчуючи багатотомними паперовими прим?рниками керування ракетами.На перший погляд, може здатися, що це наст?льки несутт?ва автоматизац?я, що не треба ?й прид?ляти занадто багато часу. Але це не так. За останн?ми досл?дженнями середньостатистична компан?я в середньому втрача? близько 10 в?дсотк?в свого прибутку т?льки через ту причину, що хтось ?з сп?вроб?тник?в при ручному введенн? документ?в допускав досить сутт?в? помилки. ?ншою шокуючою цифрою ? те, що 40 в?дсотк?в робочого часу витрача?ться лише на пошук ориг?налу документу (в паперовому вигляд?), якщо в компан?? в?дсутн?й електронний документооб?г. ? що вже казати про те, що б?льш?сть документ?в ? тим чи ?ншим типом форм, тобто структурованим документом ч?тко задано? форми. Враховуючи цифри, наведен? вище, можна оц?нити нав?ть в грошовому екв?валентн? вигоду в?д впровадження системи розп?знавання р?зного роду документ?в, форм чи, нав?ть, книжок.Переведення друкованого (написаного) тексту в цифровий формат зд?йсню?ться за допомогою систем оптичного розп?знавання символ?в (optical character recognition – OCR). Система зд?йсню? поетапне оцифрування ? розп?знавання кожного символа, що отриму? на вход?РОЗД?Л 1 ЗАГАЛЬНИЙ АНАЛ?З МЕТОД?В РОЗП?ЗНАВАННЯ ТЕКСТУ1.1 Еволюц?я п?дход?в призначених для оптичного розп?знавання текстуНаприк?нц? 1920-их рр. Густав Таущек розробив в Н?меччин? патент на створений ним метод оптичного розп?знавання тексту (ОРТ). Через дек?лька рок?в до нього в цю галузь ув?йшов Гендель, який 1933 року свторив патент на схожий метод у США. В 1935 Таущек отримав другий патент США за метод, що був под?бний до його попереднього. Його розробка представляла собою девайс, який використову? патерни розп?знавання [1].В середин? ХХ стол?ття Дев?д Х. Шепард, анал?тик з гарними знаннями в криптограф?? з агентства безпеки збройних сил США, проанал?зував задачу переформатування пов?домлень, як? були надрукован? у дв?йковий код для обробки комп'ютером [1]. Пот?м створив систему, що розв'язу? дану проблему. П?сля того як отримав патент США за цю розробку, в?н спов?стив про це в ?Вашингтон Дейл? Ньюз? (кв?тень 51-го року) ? в ?Нью-Йорк Таймс? (грудень 53-го). П?сля цього Шепард створив свою власну компан?ю, що створю? ?нтелектуальн? пристро?. За наступн? дек?лька рок?в ця компан?я створила перш? у св?т? комерц?йн? системи для розп?знавання текстових символ?в.Найперша така створена система була використана в 1955 роц? для ?Readers Digest?. Наступну систему продали компан?? ?Stedart oil? для зчитування банк?вських карт та для правильно? ? зручно? роботи ?з друкованими чеками. ?нш? системи, що поставлялися компан??ю Шепарда були продан? в к?нц? 1950-х рок?в, у тому числ? сканер стор?нок для нац?ональних пов?тряних сил США для читання й передач? машинописних пов?домлень. Через дек?лька рок?в IBM змогла отримати л?ценз?ю на використання певних патент?в Шепарда [1].П?сля 1960-их рр. ?Readers Digest? ? ?RCA? почали сп?впрацю для того, щоб розробити свою власну приватну систему для читання документ?в, яка залуча? ОРТ, призначену для оцифрування сер?йних номер?в купон?в ?Readers Digest?, що повернулися з рекламних оголошень. Для документ?в, надрукованих принтером ?RCA?, був обраний спец?альний текст OCR-A [2]. Машина для роботи з документами працювала напряму з комп'ютером RCA 301 (одним ?з перших супер комп'ютер?в). Швидк?сть роботи комп’ютера була 25 файл?в за секунду: вона перев?ряла кожен новий вх?дний файл, кр?м тих, як? вона не змогла обробити правильно. Поштова служба Сполучених Штат?в використову? машини, що зад?юють ОРТ, для сортування пошти починаючи з 1965 року на основ? технолог?й, розроблених досл?дником Яковом Рабиновим. В ?вроп? першою державною компан??ю, що використову? машини ?з функц??ю розп?знавання тексту, був британський поштамт. Канадська пошта залуча? системи ОРТ з 1971 року й по сьогодн? [3]. Спочатку в центр? сортування системи розп?знавання зчитують ?м'я й адресу одержувача й друкують штрих-код на конверт?. В?н наноситься спец?альним чорнилом, яке пот?м можна побачити ультраф?олетовому св?тл?. Це в?дбува?ться задля того, щоб уникнути плутанини з адресою, заповненою людиною, що може бути в будь-якому м?сц? на конверт?.1974 року новатор Рей Курцвейл в?дкрив свою компан?ю ?Курцвейл Комп'ютер Продактс?, ? почав працювати над розвитком сво?? власно? ОРТ системи, здатно? розп?знати текст, надрукований будь-яким шрифтом. В?н уважав, що найкраще залучення ц??? технолог?? — створення машини, яка б могла читати текст для незрячих. [3]. Цей комп’ютер вимагав винаходу в?дразу двох нових технолог?й розробки — сканер тексту та певний синтезатор мовлення, що переводить текст у мову. К?нцевий продукт був представлений 13 с?чня 1976 на прес-конференц??, очолювано? Курцвейлом ? учасниками нац?онально? федерац?? сл?пих.В 1978 роц? компан?я ?Курцвейл Комп'ютер Продактс? розпочала використання комерц?йно? верс?? комп'ютерно? системи ОРТ[3,4]. Через два роки в?н продав сво? д?тище ?Ксерокс?, яка дуже хот?ла заробити на системах розп?знавання символ?в. Тож ця компан?я невдовз? перетворилася на доч?рню компан?ю великого монопол?ста ?Ксерокс?.1.2 Понят?йний апаратОптичне розп?знавання текстуОптичне розп?знавання тексту (OCR) — явля? собою механ?чну чи електронну трансформац?ю фотограф?й чи рисунк?в машинописного, друкованого або рукописного в певну посл?довн?сть образ?в, як? в подальшому в?дображаються в будь-якому текстов?й програм?. Дане розп?знавання ма? широке використання при конвертац?? книг та ?нших текстових документ?в в електронний формат, задля спрощення шляхом автоматизац?? комерц?йних систем обл?ку або для публ?кац?? текст?в на веб-стор?нках. Завдяки оптичному розп?знаванню тексту з'явля?ться можлив?сть редагувати документ, зд?йснювати пошук сл?в чи фраз, збер?гати текст в б?льш стисл?й форм?, зд?йснювати демонстрац?ю або друкувати текстовий документ, при цьому не втрачаючи як?сть, проводити анал?з ?нформац??, а також зд?йснювати електронний переклад текст?в, форматування або конвертування в мовлення. Оптичне розп?знавання тексту ? одн??ю з найб?льш досл?джуваних проблем у галузях розп?знавання образ?в, штучного ?нтелекту ? комп'ютерного зору.Система ОРТ вимага? кал?брування задля роботи з певним шрифтом; у пепередн?х верс?ях, для програмування було необх?дно зображення кожного символу, програма одночасно могла працювати т?льки з одним шрифтом. На сьогодн?шн?й день найб?льш поширеними ?, так зван?, ??нтелектуальн?? системи, як? здатн? розп?знавати б?льш?сть шрифт?в при високому ступен? точност?. Деяк? з таких систем оптичного розп?знавання тексту можуть в?дновлювати вих?дне форматування тексту, включаючи зображення, колонки й ?нш? нетекстов? компоненти.ПерцептронПерцептрон, або персептрон (англ. perceptron в?д лат. perceptio — сприйняття) — являю собою математичну або комп'ютерну модель сприйняття ?нформац?? мозком (к?бернетична модель мозку), що була запропонована Френком Розенблатом 1957 року й реал?зована у вигляд? електронно? системи ?Марк-1?. У 1960 роц? перцептрон став одн??ю з перших моделей нейромереж, а ?Марк-1? — першим у св?т? нейрокомп'ютером. Усупер?ч сво?й простот?, перцептрон здатен до навчання ? розв'язання досить складних завдань. Основною математичною задачею, з якою в?н здатний впоратися, явля?ться л?н?йне розд?лення дов?льних нел?н?йних множин, так зване забезпечення л?н?йно? сепарабельност?.Перцептрон ма? у склад? усього три типи елемент?в (Рис. 1.1), а саме: сигнали, що надходять в?д передавач?в, передаються до асоц?ативних елемент?в, а в?дтак до реагуючих. Тобто, перцептрони дозволяють створити наб?р ?асоц?ац?й? м?ж вх?дними стимулами та необх?дною реакц??ю на виход?. В б?олог?чному план? такий процесс можна пор?вняти, наприклад, з перетворення ?нформац??, отримано? зором у ф?з?олог?чну в?дпов?дь рухових нейрон?в. Звертаючись до сучасно? терм?нолог??, перцептрони можна класиф?кувати як штучн? нейронн? мереж?:а) З одним прихованим шаром;б) З пороговою передавальною функц??ю;в) З прямим розповсюдженням сигналу.Рисунок 1.1 – Лог?чна схема перцептрону з трьома виходамиОпис елементарного перцептронаСклад елементарного перцептрона явля? собою елементи трьох тип?в: S-елементи, A-елементи та одного R-елементу. S-елементи — це шар сенсор?в, або рецептор?в. У ф?зичному вт?ленн? вони можуть уособлювати св?тлочутлив? кл?тини с?тк?вки ока або фоторезистори матриц? камери. Кожен з рецептор?в здатен перебувати в одному з двох стан?в — спокою або збудження, ? т?льки в останньому випадку в?н переда? одиничний сигнал до наступного шару, асоц?ативним елементам.A-елементи називаються асоц?ативними, тому що кожному такому елементов?, як правило, в?дпов?да? ц?лий наб?р (асоц?ац?я) S-елемент?в. A-елемент актив?зу?ться, щойно к?льк?сть сигнал?в в?д S-елемент?в на його вход? перевищу? певну величину θ.Сигнали в?д збуджених A-елемент?в, сво?ю чергою, передаються до суматора R, причому сигнал в?д i-го асоц?ативного елемента переда?ться з коеф?ц??нтом ω_i[5]. Цей коеф?ц??нт назива?ться вагою A-R зв'язку.Так само як ? A-елементи, R-елемент п?драхову? суму значень вх?дних сигнал?в, помножених на ваги (л?н?йну форму). R-елемент, а разом з ним ? елементарний перцептрон, вида? ?1?, якщо л?н?йна форма перевищу? пор?г θ, ?накше на виход? буде ?-1?. Математично, функц?ю, що реал?зу? R-елемент, можна записати так (1.1):fx=sign(i=1nωixi-?)f{\displaystyle f(x)=sign(\sum _{i=1}^{n}w_{i}x_{i}-\theta )}(1.1)Навчання елементарного перцептрона поляга? у зм?н? вагових коеф?ц??нт?в зв'язк?в A-R. Ваги зв'язк?в S-A (як? можуть приймати значення (-1; 0; 1)) ? значення порог?в A-елемент?в обираються рандомно на самому початку ? в подальшому не зм?нюються. П?сля навчання перцептрон готовий працювати в режим? розп?знавання або узагальнення [6]. У цьому режим? перцептрону пред'являються ран?ше нев?дом? йому об'?кти (Рис. 1.2), й в?н повинен встановити, до якого класу вони належать. Робота перцептрона поляга? в наступному: при пред'явленн? об'?кта, збуджен? A-елементи передають сигнал R-елементу, що дор?вню? сум? в?дпов?дних коеф?ц??нт?в ω_i. Якщо ця сума позитивна, то ухвалю?ться р?шення, що даний об'?кт належить до першого класу, а якщо вона негативна — то до другого [7].Рисунок 1.2 – Надходження сигнал?в ?з сенсорного поля до розв'язувальних блок?в елементарного перцептрона в його ф?зичному вт?ленн?Нейронн? мереж?Штучна нейронна мережа (ШНМ) — це представлена у вигляд? математично? модел? система, що за сво?м п?дходом побудови нагаду? функц?онування певних б?олог?чних нейронних систем. Також апаратна складова та програмна реал?зац?я для таких систем схожа з принципом мереж нервових кл?тин ?ндив?д?в. Таке поняття з’явилося п?сля вивчення певних процес?в, що моделюються у мозку людини та при спроб? повторити ц? процеси на практиц?. Першим кроком до створення таких систем були нейронки У. Маккалока та У. П?ттса. П?сля створення алгоритм?в навчання, нов? модел?, що почали з’являтися, почали зад?яювати для вир?шення практичних задач: для завдань прогнозування результат?в, в задачах керування та задачах розп?знавання образ?в. ШНМ представляють з себе систему з'?днаних м?ж собою простих обробник?в (штучних нейрон?в), як? вза?мод?ють м?ж собою [8]. Зазвичай так? нейрони ? дуже простими (особливо пор?внюючи ?х з процесорами, що використовуються в комп'ютерах користувач?в). Кожен обробник под?бно? мереж? повинен працювати лише з ?мпульсами, як? в?н пер?одично отриму?, ? сигналами, як? в?н пер?одично надсила? ?ншим обробникам. Окр?м того, якщо нейрони з’?днан? в достатньо велику мережу ?з вза?мод??ю, що п?дда?ться керуванню, то така локальна система здатна виконувати не т?льки прост?, а й складн? завдання.Розглядаючи дану тему з точки зору машинного навчання, нейронна мережа ? певним випадком метод?в дискрим?нантного анал?зу, метод?в кластерування, розп?знавання образ?в тощо.З точки зору математики, навчання нейронних мереж — це багатопараметрична задача нел?н?йно? оптим?зац??.З к?бернетично? точки зору, НМ можна зад?ювати в задачах адаптивного керування, ? також як алгоритми для робототехн?ки.З? сторони розвитку обчислювально? техн?ки та програмування, за допомогою нейронно? мереж? можна ефективно розв’язувати задач? паралел?зму.А враховуючи принципи штучного ?нтелекту, нейронна мережа ? основою ф?лософських пошляд?в й основним вектором розвитку в структурному п?дход? до вивчення властивостей побудови (моделювання) природного ?нтелекту за допомогою сучасних алгоритм?в та п?дход?в.Нейронн? мереж? не просто програмуються, якщо виражатися в в звичайному розум?нн? цього слова. Вони навчаються. Можлив?сть навчання — одна з головних переваг нейронних мереж перед ус?ма традиц?йними алгоритмами. Техн?чно, навчання поляга? в знаходженн? коеф?ц??нт?в зв'язк?в м?ж нейронами. В процес? навчання нейронна мережа може виявляти складн? залежност? м?ж вх?дними даними й вих?дними, а також виводити узагальнення. Це значить, що нейронна мережа зможе повернути нам правильну в?дпов?дь, якщо навчання в?дбудеться правильно, за рахунок даних, яких не було в начальн?й виб?рц? або за рахунок спотворених чи зашумлених даних.Класиф?кац?я нейронно? мереж? за типом ?нформац??, що надходить:аналогов? нейронн? мереж? (необх?дно надати ?нформац?ю у вигляд? д?йсних чисел);дв?йков? нейронн? мереж? (необх?дно надати ?нформац?ю у вигляд? дв?йкових чисел).Класиф?кац?я за характером навчання:навчання з учителем — в?дом? потр?бн? результати нейронно? мереж?, ? ми хочемо отримувати под?бн? результати;навчання без учителя — нейронна мережа працю? т?льки з вх?дними даними та самост?йно анал?зу? та виводить вих?дн? результати. Так? мереж? зазвичай називають самоорган?зац?йними;навчання з п?дкр?пленням — система призначення заохочень ? штраф?в в?д умов та середовища;мереж? з ф?ксованими зв'язками (вагов? коеф?ц??нти нейронно? мереж? вибираються одразу, переходячи з завдання, при цьому: dV / dt = 0 , де V —коеф?ц??нти ваги зв’язк?в мереж?);мереж? з динам?чними зв'язками (для них в процес? навчання в?дбува?ться налаштування зв’язк?в синапс?в, тобто dV / dt ≠ 0, де V —коеф?ц??нти ваги зв’язк?в мереж?).Навчання з учителемНавчання з учителем або навчання з в?домими результати — один ?з метод?в машинного навчання, п?д час якого система, що випробову?ться, примусово навча?ться ?з залученням певно? к?лькост? множин результат?в ?стимул-реакц?я? з метою отримання ?реакц??? для сво?х ?стимул?в?, як? до ц??? множини результат?в не належать. Розглядаючи це питання з к?бернетично? точки зору, така система ? одним певного експерименту - к?бернетичного.Задача такого п?дходу поляга? в наступному.М?ж входами та оч?куваними виходами (стимул-реакц?я) може ?снувати певна нев?дома нам залежн?сть. Ми зна?мо лише про к?нцеву к?льк?сть пар прецедент?в— пар ?стимул-реакц?я?, яку називають навчальною виб?ркою. На основ? таких отриманих даних потр?бно встановити належн?сть (побудувати модель в?дносин стимул-реакц?я, як? придатн? для прогнозування), тобто створити алгоритм, який буде здатний для будь-якого об'?кта видати в?дносно точну в?дпов?дь. Для вим?рювання точност? в?дпов?дей, так само як ? в навчанн? на прикладах, може вводитися функц?онал якост?.Задача навчання мереж? може бути сформована так: ми ма?мо певну сукупн?сть реакц?й на стимули та сам? стимули (х та у), нам потр?бно вивести в?дпов?дн?сть м?ж х та у таку, яка в межах допустимо? похибки е буде давати наступне: fx-e ≤y≤fx+e (1.2)Принцип постановки експериментуДаний п?дх?д представля? з себе окремий випадок к?бернетичного експерименту але зв’язок встановлю?ться зворотн?м чином. Така постановка експерименту включа? в себе наявн?сть певно? системи, п?дходу навчання ? методу тестування модел? та системи.Експериментальна модель в такому раз? склада?ться з системи, яку тестують, множини стимул?в, як? одержують ?з зовн?шнього середовища та системи, яка керу? п?дкр?пленням (що регулю? внутр?шн? параметри). Для таких задач можна використати автоматичний пристр?й, що проводить регуляц?ю (наприклад, термостат), або оператора (вчителя), здатну опрацьовувати реакц?? випробовувано? системи ? стимули зовн?шнього середовища через залучення певних шлях?в утримання, як? виправляють стан тако? системи в план? запам’ятовування.Вид?ляють два типи: перший, якщо реакц?я тако? системи не зм?ню? стан середовища, ? другий, якщо система реагу? на зм?ни шляхом зм?ни стимул?в середовища. Так? п?дходи показують нам под?бн?сть таких систем у пор?внянн? з нервовою системою людини. Типолог?я завдань навчання з учителемТипи вх?дних даних:а) опис ознак – ситуац?я, коли певний об'?кт можна описати окремим набором його характеристик, що звуться ознаками. Ц? характеристики можуть бути як числовими, так ? буквенними.б) таблиця, що показу? в?дстань м?ж об’?ктами. Кожен така одиниця зазвичай опису?ться в?дстанями до ?нших одиниць навчально? виб?рки. Такий тип даних зазвичай опрацьовують деяк? методи, зокрема, метод k найближчих сус?д?в, метод парзен?вського в?кна, метод потенц?йних функц?й.в) часовий ряд або сигнал ? посл?довн?стю вим?рювань в час?. Кожне наступне вим?рювання може характеризуватися числом, вектором, а в загальному випадку — певним описом ознак об'?кта, який досл?джу?ться в даний пер?од часу.Трапляються й ц?кав?ш? випадки, коли дан?, що надходять надають у вигляд? текст?в, граф?к?в, результат?в запит?в до АП? тощо. Зазвичай, так? ознаки приводяться до 1-го або 2-го випадку за рахунок попередньо? обробки даних та вид?лення ознак.Типи в?дгук?в:ситуац?я, в як?й множина ймов?рних результат?в неск?нченна (висновки ? числами або векторами);ситуац?я, в як?й множина ймов?рних результат?в;ситуац?я, в як?й в?дпов?д? описують можливу повед?нку явища чи процесу.Задач? прогнозуванняОсобливе значення мають задач? передбачення та прогнозування часових ряд?в, для яких виокремлюють завдання з набором певних специф?чних ознак, тому варто провести ?х класиф?кац?ю. Задач? досл?дження явищ, розвиток яких пов'язаний ?з часом, можна под?лити на дек?лька клас?в:За характером основних ознак об'?кту:- прогнозування явищ, модел? яких представляються як детерм?нован? часов? ряди. Такого роду задач?, можна розв’язати шляхом використання п?дход?в математичного анал?зу;- прогнозування явищ, модел? яких представлен? у вигляд? ?ндетерм?нованих часових ряд?в. Вир?шення такого роду задач вир?шу?ться залученням п?дход?в теор?? ймов?рностей та мат. статистики. Зокрема, реал?зац?? таких явищ, можуть мати вигляд:а) стац?онарного часового ряду;б) нестац?онарного часового ряду, що уособлю?ться певною тенденц??ю розвитку в час?; при оц?нц? нестац?онарних процес?в можна виокремити д?лянки, на яких роботу можна вважати стац?онарною; виб?р пром?жку для формування навчально? множини в такому випадку обира?ться зг?дно задач? прогнозування;За числом ознак об'?кту досл?джень:- одновим?рна задача; - багатовим?рна задача; об'?кт або явище представлен? к?лькома ознаками; задача прогнозування може бути розширена завдяки представленню даних в простор?.За часом випередження розр?зняють види прогноз?в:- короткотерм?новий прогноз, Р в?д одного до двох;- середньотерм?новий прогноз, Р в?д трьох до семи;- довготерм?новий прогноз, Р в?д десяти до п’ятнадцяти.Очевидно, що вид прогнозу сутт?во вплива? на виб?р засоб?в ? метод?в задля його реал?зац??.1.3 Поточний стан технолог?й оптичного розп?знавання текстуДостатньо точного розп?знавання символ?в у друкованому текст? на сьогодн?шн?й день можна досягти т?льки у випадку ч?ткого зображення, такого як у друкованих документах. При дан?й постановц? задач? точн?сть перевищу? 99%, а абсолютна точн?сть може бути досягнута т?льки шляхом посл?дуючого виправлення вручну людиною. Проблеми розп?знавання рукописного ?друкованого? тексту й стандартного рукописного тексту, а також друкованих текст?в ?нших формат?в (особливо з дуже великою к?льк?стю символ?в) ? предметом активних досл?джень сьогодення.Точн?сть роботи даних метод?в може вим?рюватись дек?лькома шляхами, ? по ц?й причин? може сильно вар?юватися. Наприклад, якщо зустр?ча?ться специф?чне слово, що неможливо знайти в словниках певного програмного забезпечення, ? таким чином пошук не?снуючих сл?в може зб?льшити к?льк?сть помилок.Розп?знавання символ?в онлайн деколи можуть плутати з оптичним розп?знаванням символ?в. У той час, коли метод оптичного розп?знавання символ?в явля?ться оффлайн методом розп?знавання символ?в, що працю? з? статичною формою подання тексту, метод онлайн розп?знавання символ?в урахову? рухи п?д час писання. Наприклад, метод онлайн розп?знавання, який використову? PenPoint OS або планшетний ПК, дозволя? визначити, з яко? сторони пишеться рядок: справа л?воруч або зл?ва праворуч.Останн?м часом, саме як комерц?йн? послуги, стали досить в?дом? онлайн системи для розп?знавання рукописного тексту ?на льоту?. Алгоритми таких пристро?в приймають до уваги той факт, що порядок, швидк?сть ? напрямок окремих д?лянок л?н?й уведення в?дом?. Окр?м того, користувачможе використовувати т?льки конкретн? форми письма. Дан? методи не можуть бути використан? в програмному забезпеченн?, що використову? в?дсканован? паперов? документи, тому труднощ? розп?знавання рукописного ?друкованого? тексту, як ? ран?ше, залишаються важливим питанням. На фотограф?ях ?з рукописним ?друкованим? текстом без артефакт?в може бути досягнута точн?сть у 80% — 90%, але з даною точн?стю зображення буде конвертовано в текст ?з десятками помилок на стор?нц?. Дана технолог?я може бути корисною т?льки в досить обмежен?й к?лькост? застосувань.Розп?знавання рукописного тексту ? ще одн??ю часто досл?джуваною проблемою сучасного св?ту. На сьогодн?йшн?й день, досягнута точн?сть такого розп?знаванян значно нижча, ан?ж для рукописного ?друкованого? тексту. Вищих показник?в можна досягнути т?льки використовуючи контекстну й граматичну ?нформац?ю. Наприклад, у процес? розп?знання повинен проводитись пошук ц?лих сл?в у словнику, шо буде значно легше ан?ж намагатися зд?йснити анал?х окремих символ?в з тексту. У нагод? також може стати знання граматики мови, що допоможе охарактеризувати слово: чи ? воно д??словом, прикметником чи ?менником. Форми деяких рукописних символ?в деколи можуть м?стити недостатньо ?нформац??, задля точного (б?льше 98%) розп?знання усього рукописного тексту.Задля вир?шення б?льш складних проблем у сфер? розп?знавання прийнято використовувати, в основному, ?нтелектуальн? системи розп?знавання, так? як штучн? нейронн? мереж?.1.4 Загальний алгоритм оптичного розп?знавання текстуДля того, аби система розп?знавання тексту працювала, необх?дно надати ?й на вх?д певний цифровий файл з в?д сканованим текстом (елемент тексту). Наступним етапом роботи системи розп?знавання тексту ? так звана ?Сегментац?я? та попередня п?дготовка даних. На цьому етап? роботи проводиться вир?внювання елемент?в тексту. Елементами тексту можуть бути фотограф?? з певними частинами тексту, в?дсканован? частини стор?нок ? тому под?бн? вар?анти цифрового розм?щення тексту. П?сля вир?внювання ус? так? елементи необх?дно видалити в?д зайвих частинок, тобто щоб текст складався виключно з тих символ?в, з якими система ?ознайомлена?, а решту – очистити з поля зору системи, або просто пропускати так? елементи. Дал? необх?дно провести процедуру б?наризац??, що явля? собою виокремлення фону та зайвих для зчитування елемент?в як елемент?в б?лого кольору, а необх?дний текст пода?ться до системи виключно як текст чорного кольору. П?сля цього система розп?знавання вид?ля? стовпц? та рядки з текстом, розбива? суц?льний текст на слова та масштабу? зображення для зручного пор?вняння з? вже встановленими на сво?й баз? ?еталонними? словами та символами.Надал?, розп?знавання тексту зд?йсню?ться посимвольно ?з застосуванням одного ?з двох метод?в:- метод ?З?ставлення з образом?;- метод ?Адаптивного розп?знавання?.У кожного з цих метод?в ? певн? плюси та м?нуси та р?зн? найкращ? ситуац?? для ?х застосування, про як? п?де мова трохи нижче.П?сля того, як ми отрима?мо результуюч? вих?дн? дан? п?сля роботи програми, необх?дним ? дуже важливим кроком ? зб?льшення швидкост? роботи програми та покращення точност? отриманих даних. Для цього необх?дно додавати певн? словники, як? допоможуть систем? ?з певного набору символ?в скласти слова, як? найб?льш задовольняють лог?ц? усього тексту та для того, аби в?дкоригувати деяк? др?бн? неточност? у словах. Також досить сутт?вим способом п?двищення точност? вих?дних даних ? залучення системи розп?знавання до правил граматики, аби правильно в?др?знити ?менник в?д д??слова ? ?нш? под?бн? випадки. 1.4.1 Алгоритм розп?знавання класу шрифтових метод?вДаний метод базу?ться на понятт? однотипност? вх?дного тексту. Тобто в?н ор??нтований на вже знайом? шрифти, тобто ? шрифтовим методом [9]. Шрифтов? або шрифтозалежн? алгоритми використовують апр?орну ?нформац?ю про шрифт, яким надрукован? певн? л?тери, числа чи символи. Це означа?, що систем? розп?знавання повинна бути надана повноц?нна виб?рка тексту, надрукованого даним шрифтом. Програма вим?рю? ? анал?зу? р?зн? характеристики шрифту й заносить ?х в свою базу еталонних характеристик. По зак?нченню цього процесу шрифтова програма оптичного розп?знавання символ?в готова до розп?знавання даного конкретного шрифту. Цей процес умовно можна назвати навчанням програми. Дал? навчання повторю?ться для деяко? множини шрифт?в, яка залежить в?д област? застосування програми.До недол?к?в даного методу сл?д в?днести так? фактори:Алгоритм повинен наперед знати шрифт, який йому надходить для розп?знавання, тобто в?н ма? збер?гати в сво?й баз? даних р?зноман?тн? характеристики цього шрифту. Як?сть розп?знавання тексту, надрукованого випадковим шрифтом буде прямо пропорц?йно залежати в?д кореляц?? цього шрифту з шрифтами, що м?стяться в баз? даних системи розп?знавання. При ?снуючому багатств? друковано? продукц?? в процес? навчання неможливо охопити ус? шрифти та ?х модиф?кац??. Наприклад, ?Пол?графбуммаш? СРСР свого часу стандартизував близько 15-20 р?зних шрифт?в, а в сучасних комп’ютерних системах друкування документ?в використову?ться близько 200 р?зних шрифт?в ? з кожним роком ця к?льк?сть все зб?льшу?ться, ? зб?льшу?ться. ?ншими словами, цей фактор обмежу? ун?версальн?сть таких алгоритм?в.Для роботи програми розп?знавання необх?дний блок налаштувань на конкретний шрифт. Очевидно, що цей блок буде вносити свою долю помилок в ?нтегральну оц?нку якост? розп?знавання, або функц?? установки шрифту доведеться покласти на користувача.Програма, що основана на шрифтовому алгоритм? розп?знавання символ?в вимага? в?д користувача спец?альних знань про шрифти загалом, про ?х групи та в?дм?нностях один в?д одного, шрифтах, котрими надрукований документ користувача. Можна в?дм?тити, що у випадку, якщо паперовий документ не створений самим користувачем, а прийшов до нього нев?домим шляхом, не ?сну? регулярного способу д?знатися за допомогою яких шрифт?в цей документ був надрукований. Фактор необх?дност? спец?альних знань звужу? коло потенц?йних користувач?в ? зсува? його в сторону орган?зац?й, що мають у сво?му штат? в?дпов?дних спец?ал?ст?в.З ?ншо? сторони, у шрифтового п?дходу ? сутт?ва перевага, завдяки якому його активно використовують ?, швидше за все, будуть використовувати в майбутньому. А саме, маючи детальну апр?орну ?нформац?ю про символи, можна побудувати досить точн? та над?йн? алгоритми розп?знавання. Загалом, при побудов? шрифтового алгоритму розп?знавання над?йн?сть та як?сть розп?знавання символу явля?ться ?нту?тивно зрозум?лою ? величиною, яку можна виразити математично точно. Ця величина визнача?ться як в?дстань в будь-якому метричному простор? в?д еталонного символу, який нада?ться програм? в процес? навчання, до символу, який програма намага?ться розп?знати.1.4.2 Алгоритм розп?знавання класу безшрифтових метод?в?нший клас алгоритм?в – безшрифтов? або шрифтозалежн?, тобто алгоритми, як? не мають апр?орних знань про символи, що надходять до них у якост? початкових даних. Так? алгоритми вим?рюють та анал?зують р?зноман?тн? характеристики (ознаки) властив? л?терам, як? залишаються практично незм?нними у будь-якому шрифт? [10]. В деяких випадках для шрифтозалежного алгоритму процес навчання може бути в?дсутн?й. В такому випадку характеристики символ?в вим?рю?, коду? та розм?ща? в баз? даних користувач власноруч. Але на практиц?, випадки, коли такий вар?ант д?йсно розв’язу? проблему розп?знавання зустр?ча?ться дуже р?дко. Б?льш загальний шлях створення бази характеристик поляга? у навчанн? програми на виборц? реальних символ?в.До недостатк?в даного п?дходу можна в?днести наступн? фактори: Реально досяжна як?сть розп?знавання тексту нижче, н?ж у шрифтових алгоритм?в. Це пов’язано з тим, що р?вень узагальнення при вим?рах характеристик символ?в набагато кращий, н?ж у випадку шрифтозалежних алгоритм?в. Фактично це означа?, що р?зноман?тн? допущення ? огруб?ння при вим?рах характеристик символ?в для роботи безшрифтових алгоритм?в можуть бути в?д 2 до 20 раз?в б?льше у пор?вняння з? шрифтовими.Варто вважати великим усп?хом, якщо без шрифтовий алгоритм волод?? адекватним та ф?зично об?рунтованим, тобто природно вит?ка? з основно? процедури алгоритму, коеф?ц??нтом над?йност? розп?знавання. Часто приходиться миритися з тим, що оц?нка точност? або в?дсутня, або виявля?ться штучно створеною. П?д штучною оц?нкою ма?ться на уваз? те, що вона сутт?во не сп?впада? з ймов?рн?стю правильного розп?знавання, яку забезпечу? даний алгоритм.Переваги даного п?дходу т?сно пов’язан? з його недол?ками. Основними перевагами ?:Ун?версальн?сть. Це означа?, що з одн??? сторони, можлив?сть використання цього п?дходу у випадках, коли потенц?йна р?зноман?тн?сть символ?в, як? можуть надходити в систему у якост? початкових, досить велика. З ?ншого боку, за рахунок закладено? в них здатност? узагальнювати, так? алгоритми можуть екстраполювати накопичен? знання за меж? навчально? виб?рки, тобто ст?йко розп?знавати символи, по виду далеких в?д тих, як? були присутн? в навчальн?й виб?рц?.Технолог?чн?сть. Процес навчання шрифтозалежних алгоритм?в зазвичай ? б?льш простим ? ?нтегрованим в тому сенс?, що навчальна виб?рка не фрагментована на р?зн? класи (по шрифтах, кеглем ? т.д.). При цьому в?дсутня необх?дн?сть п?дтримувати в баз? характеристик р?зн? умови сп?льного ?снування цих клас?в. Проявом технолог?чност? ? також той факт, що часто вда?ться створити майже повн?стю автоматизован? процедури навчання.Зручн?сть у процес? використання програми. У раз?, якщо програма побудована на шрифтозалежних алгоритмах, користувач не зобов'язаний знати що-небудь про стор?нку, яку в?н хоче ввести в комп'ютерну пам'ять ? пов?домляти про ц? знання програму. Також спрощу?ться призначений для користувача ?нтерфейс програми за рахунок в?дсутност? набору опц?й ? д?алог?в, як? обслуговують навчання ? управл?ння базою характеристик. В цьому випадку процес розп?знавання можна представлятися користувачев? як "чорний ящик" (при цьому користувач повн?стю позбавлений можливост? керувати або яким-небудь чином модиф?кувати х?д процесу розп?знавання). У п?дсумку це призводить до розширення кола потенц?йних користувач?в за рахунок включення в нього людей, як? волод?ють м?н?мальною комп'ютерною грамотн?стю.1.5 Алгоритми розп?знавання рукописних символ?вП?д час вир?шення задач? розп?знавання друкованих ? рукописних символ?в можуть бути залучен? певн? структурн? п?дходи, що передбачають розд?лення образу на окрем? частинки, як? складають текст.Найпершим розглянемо метод, що використову? для ц??? задач? тополог?чний опис зображень, що можна представити у вигляд? плоских граф?в. П?д час цього, в деяких окремих задачах вс? можлив? зображення, як? складають той або ?нший клас, можна вивести як результат певних перетворень деякого зображення. Задача розп?знавання в такому випадку може зводиться до встановлення зб?жност? пред'явленого зображення з одним ?з пор?внюваних. ?? можна виявити за допомогою р?зних вар?ант?в властивостей зображення, що не зм?нюються при його зображуваних перетвореннях. ?нвар?антом, що нада? можлив?сть дати опис зображень, ?, наприклад, позиц?я певно? точки, що визнача?ться к?льк?стю л?н?й, як? в ц?й точц? сходяться. В?дпов?дний опис отримують обходом в певному порядку контур?в зображення з одночасною ф?ксац??ю ?ндекс?в точок. Встановлення гомеоморфност? – власне розп?знавання – зводиться до пор?вняння опис?в пред'явленого зображення ? еталонних зображень клас?в. Основна перевага такого опису – його нечутлив?сть до сильних зм?н зображення. Навчання тополог?чному коду поляга? у створенн? певного набору символ?в, як? застосовуються у пор?внянн? зображень такого роду. Ще одним схожим п?дходом ? алгоритм под??вого розп?знавання. Такий п?дх?д спира?ться на структуру об'?кту, що визнача?ться за допомогою крапок та л?н?й ? не зм?ню?ться при малих зм?нах образ?в. Л?н??, зображен? п?д накладанням матриц?, визначають под??. Под??ве зображення це не т?льки формальний наб?р ознак, але ? адекватний тополог?чний опис. Навчання п?дходу для нейронно? мереж? зводиться до генерац?? списку талонних зображень на достатньо велик?й к?лькост? зобажених об’?кт?в. Перевагами цього методу ?з'являються зд?бн?сть до в?дмов ? висока швидкод?я [11].Недол?ком таких п?дход?в розп?знавання ? велика р?знопланов?сть ? частота зм?н до деформац?й, як? часто опиняються в зображеннях з текстом, що був в?дсканований. Для класу рукописних зображень розриви л?н?й ? передбачуваною зм?ною. Пропонований алгоритм розп?знавання, будучи структурним, по?дну? в соб? так? досто?нства як високу швидкод?ю ? можлив?сть оц?нки в?дпов?дност? розп?знаваних образ?в з еталонними описами. Метод розп?знавання рукодрукованих символ?в явля?ться под??вим методом та м?стить ряд м?нус?в у використанн?, таких як в?дсутн?сть результуючих значень, важк?сть у знаходженн? образ?в, як? складаються з не одн??? компоненти зв’язност?, а дек?лькох, ? велике уточнення результат?в, яке часто втрача? особлив? точки перетину, р?вн?сть образ?в ? т.д. Символ, що розп?зна?ться п?дда?ться методу стоншення (скелетизац??). ?снують р?зноман?тн? методи отримання скелет?в символ?в, що в?др?зняються один в?д одного. Розглянемо метод, який запропонував Щеп?н?н. Цей метод не входить до групи популярних нин? алгоритм?в паралельно? скелетизац??, але його ? не передбачалося використовувати на машинах з паралельною арх?тектурою. В той же час цей п?дх?д ма? багато переваг. Так, цей метод повн?стю збер?га? 8-и| зв'язн?сть початкового зображення. Це дозволя? дуже ефективно застосовувати табличн? дан?, тому алгоритм працю? з великою швидкод??ю – б?льше 1200 знак?в на секунду на процесор? Core i3. Кр?м того, цей метод да? скелетне уявлення товщиною в один п?ксель, що виключа? необх?дн?сть подальшого створення скелету зображення. Цей метод дозволя? збер?гати вс? особливост? задано? картинки, що бува? зручно та дуже корисно при анал?з? розп?знавання [11].Спочатку в?дбува?ться розд?лення початкового образу символу на компоненти зв'язност?, для чого може бути використане л?н?йне представлення, сформоване для под??вого методу. У кожн?й компонент? для кожного зовн?шнього ? кожного внутр?шнього контура знаходяться початков? л?в? верхн? точки. Дал? крок за кроком видаля?ться один шар точок. Для чергово? точки контура розгляда?ться конф?гурац?я восьми сус?дн?х точок. Точка видаля?ться, якщо вона не ? к?нцевою, (тобто не лежить на початковому або к?нцевому ?нтервал? прямо? або поворотно? л?н??) ? якщо п?сля ?? видалення в?с?м ?? сус?д?в як ? ран?ше утворюватимуть зв'язну множину. В?дзначимо, що зв'язн?сть може розум?тися по-р?зному (8-и зв'язн?сть, 4-х зв'язн?сть), тому можна легко отримувати р?зн? види скелетних представлень. П?сля анал?зу точки ? ?? сус?д?в ? можливого видалення точки зд?йсню?ться перех?д до наступно? точки контура так, щоб залишитися на меж? зображення. За один прох?д зняття одного шару точок проводиться для кожно? компоненти по черз? для кожного зовн?шнього, внутр?шн?х контур?в. Процедура повторю?ться до тих п?р, поки символ не буде побудований з одноточково? л?н?? (рис. 1.3.). Рисунок 1.3 - Скелет?зац?я образу|, що склада?ться з 1-го зовн?шнього ? 2-х внутр?шн?х контур?вДля пол?пшення швидкост? надання представлення скелетного образу залуча?ться багато метод?в та п?дход?в. Наприклад, отримання ?нформац?? про ймов?рн?сть появи точки чи наступну перех?дну точку до гранично? меж? ?з залученням ран?ше з?ставлених таблиць, а не через п?драхунок необх?дних параметр?в вершин. Результат отримання символьного скелетного об’?кту – не ф?нальний етап розп?знавання, надал? це скелетне представлення залуча?ться п?зн?ше для того, аби виокремити основн? характеристики символу. Основна причина використання образу скелетизац?? та його представлення поляга? в надан?й можливост? отримання головних ознак основного малюнку, що м?стить текстов? символи[11].Скелетизац?я слугу? основною допом?жною силою в б?льшост? систем ОРТ. Але, для отримання правильного символу дуже важливим ? не сам скелетизац?йний метод (зазвичай скелети виходять досить-таки схожими, незважаючи на р?знотипн?сть алгоритм?в), а наступне залучення представлення, що вийшло з алгоритму скелетизац??. Якщо для розп?знавання використовувати завжди плюс-м?нус однаков? ознаки, то дуже часто на виход? отриму?мо дуже под?бн? результати роботи. П?сля цього перейдемо до теми залучення п?дходу скелетизац?? в задачах знаходження текстових символ?в. П?сля того, як зображення було отримане, воно п?дда?ться алгоритмам анал?зу та ф?ксуються певн? властивост?, наприклад контурна структура чи особлив? характерн? точки, чи ланцюговий код. Особлив? характерн? точки – ф?нальн? точки ? сегменти розбивки – так? точки, сус?ди яких здатн? утворювати не менш як три зв'язн? област?. У приклад? на рис. 1.4 образ ма? 2 внутр?шн?х контури, 1 ф?нальну точку ? 3 сегменти розбивки або тр?оди. Кожен такий новий контур представлений як посл?довний наб?р особливих точок ?, так званого, ланцюгового коду, який можна скласти з прив’язано? точки, номера код?в, ? направленого вектору попередньо? точки на нин?шню точку. В результуючому представленн? в?дбува?ться перескладання, яке заключа?ться у тому, аби прибрати коротк? л?н??, об’?днати близьк? сегменти розбивки та знищити мал? внутр?шн? контури. Для правильно? роботи з зовн?шн?м контуром необх?дно знайти його тополог?чний код, або сам тип. Задля цього необх?дно представити контур як посл?довний наб?р номер?в особливих точок, як? в?дпов?дають обраному симетрично за годинниковою стр?лкою. Дал? перенумерову?мо так? точки ? зм?ню?мо початок контуру, аби виконати спробу ототожнення контура з якимось ?з основних тип?в. Статистичний анал?з на навчальн?й в?иб?рц?, яка м?стить в соб? рукописн? образи великих л?тер укра?нсько? абетки в?д "А" до "Я" ? цифр в?д "0" до "9", показав, що контури, що м?стять в соб? типи, як? в?др?зняються в?д основних склали менше одного в?дсотка [11].Якщо ж вивчати ?нш? ймов?рн? множини символ?в (маленьк? л?тери, л?тери з ?ншомовних абеток) необх?дн? будь-як? ?нш? тополог?чн? набори й коди. Тому, задля цього була створена нова функц?я побудови множин тополог?чних код?в для окремо? задано? множини. Досить просто побудувати ? залучати функц?ю знаходження текстових в?дпов?дник?в використовуючи ?х скелетне представлення без л?м?тац?? номера можливих тополог?чних код?в, що робить зайвим та не необх?дним попередн?й анал?з ймов?рних тип?в. Але треба виокремити той факт, що залучення л?м?тованого набору тополог?чних код?в м?стить в соб? ? ряд переваг, бо нада? можлив?стьдля р?зних код?в легко застосовувати т? або ?нш? спец?ал?зован? функц??, вид?ляти для деяких код?в ?нш? (додатков?) типи особливих точок.Ось деяк? характеристики, що залучаються для задач? ОРТ з використанням п?дходу скелетизац??. Для кожно? особливо? точки такого в?зуального представлення вираховуються вс? можлив? ознаки: нормован? координати особливо? точки (вершини графа);довжина ребра до найближчо? точки пропорц?йно ус?й довжин? графа;нормоване направлення з дано? вершини на наступну особливу точку;нормований вектор входу в вершину та виходу з вершини; зб?гають ?з точн?стю кривизна дуги, точн?ше "л?ва" ? "права" кривизна дуги, що сполуча? особливу вершину з наступною точкою (кривизна зл?ва ? справа). Кривизну можна вирахувати як в?дношення максимально? в?дстан? в?д точок дуги до прямою, що сполуча? вершини, до довжини в?др?зка, що сполуча? т? ж точки [11].Рисунок 1.4 - Приклади|зразки| скелетних ознакРисунок 1.4 показу? основн? тополог?чн? ознаки л?тери ?А?. Рисунок ма? 4 основн? точки – a0, a1, a2, a3. Якщо обходити граф?к по маршруту a0 ==> a1 ==> a2... У точц? a1 в?дображаються так? параметри: вектор r1 – вектор входу в точку, вектор r2 – вектор виходу з точки, вектор r3 – глобальний вектор напряму на наступну особливу точку. Двонаправлений вектор h в?добража? показник в?дхилення в л?ву сторону дуги (a1,a2) в?д прямо?; "праве" в?дхилення дор?вню? 0..Наведений опис показу?, що к?льк?сть параметр?в б?льший за число вершин у 8 раз?в. Цей параметр р?зниться для кожного тополог?чного коду, а однаков? параметри можуть мати р?зне значення для р?зних тополог?чних зображень.Для певних код?в к?льк?сть точок особливостей ? к?льк?сть тополог?чних ознак – дуже мала. Наприклад, для символу нуль тополог?чн? ознаки в?дсутн? взагал?, через те, що в?дсутня жодна особлива точка. У випадку ?нших тополог?чних код?в к?льк?сть властивостей може р?зко зб?льшитися, що потребу? досить велико? к?лькост? еталонних зображень для навчання мереж?. Через це у б?льшост? ситуац?й в задачах ОРТ зад?ю?ться лише певна частина властивостей. Навчання системи заключа?ться у створенн? розп?знаючих дерев у кожного тополог?чного коду, що визначений заздалег?дь.У випадку, коли певний символ п?сля виконання методу проходу по цьому дереву залиша?ться невизначеним, то система намага?ться пол?пшити зображення за допомогою наступних д?й: Якщо символ п?сля проходу по дереву розп?знавання залишився нерозп?знаним, робиться спроба пол?пшення зображення за допомогою наступних операц?й: скле?ти к?нц? л?н?й по напрямах; для вир?шення тако? задач? необх?дно опрацювати вектори напрямку ус?х дуг реал?зац?? скелетного п?дходу. Також, у випадку, коли вектори напрямку л?н?й под?бн? та вказують сам? на себе, то можна використати ?х з’?днання. Оск?льки, це могла бути суц?льна л?н?я, яка деформувалася п?д впливом певних дефект?в сканування чи, нав?ть, написання. склеювання точок скелету, як? розташовуються на найкоротш?й дистанц?? одна в?д одно?;в?дкидання найкоротшо? л?н?? (дуги графа); непотр?бн? коротк? л?н?? зазвичай виникають при рукописному написанн?;не реагувати на мал? компоненти; якщо п?сля проведеного анал?зу стало зрозум?ло, що присутн? дек?лька компонент, то скор?ш за все – з’явилися додатков? перешкоди;прибрати внутр?шн?й контур. У раз?, коли деяк? з контур?в досить маленьк?, то напевно, вони створилися п?сля певного пошкодження зображення або написання, а не ключов? ознаки символу. У випадку, коли зм?ни в скелет? неможлив? – символ нерозп?знаний. В противному випадку викону?мо модиф?кац?ю зображення ?з залученням повторно? скелетизац??, яка залежить в?д типу модиф?кац?? об’?кта. За кожну таку д?ю призначений штраф, який бува? р?зним залежно в?д операц?? чи параметру модиф?кац??.М?ж ?снуючими можливостями обира?мо множину операц?й, яка склада?ться з елемент?в, що м?стять м?н?мальний показник штрафу. Такий параметр вирахову?ться з певно? ф?ктивно? оц?нки, наприклад 256, яка зада?ться певними символами. П?сля того, отриман? колекц?? можемо об’?днати для подальшо? роботи. Характеристики п?дходу розп?знавання символ?в за скелетними ознаками так?: точн?сть – 95.6%, швидкод?я – 16 образ?в/хв. Також до переваг п?дходу можна в?днести ст?йк?сть до певних деформац?й типу, розриви та вигини л?н?й, появи маленьких, ледь пом?тних л?н?й. Ст?йк?сть зада?ться алгоритмом побудови уявлення ? да? методу перевагу в розп?знаванн? рукописних образ?в, яким властив? под?бн? деформац?? [11].П?сля всього вище сказаного, можна сказати, що для задач ОРТ метод скелетизац?? можна пол?пшити за рахунок певних зм?н. Наприклад, сутт?во попрацювавши над етапами навчання ? розп?знавання. Можна, також зам?сть побудови тополог?чного дерева використати нейронну мережу на основ? тих же тополог?чних ознак. Але, також, досить виг?дними ? легк?сть та простота у використанн? першого способу та ?? швидкод?я.Також треба зазначити, що така програма з залученням п?дходу скелетизац?? не часто використову?ться сама по соб?, а лише в комб?нац?? з певними ?ншими п?дходами розп?знавання, що заснован? на абсолютно ?нших принципах, в першу чергу в комб?нац?? з нейронною мережею, яка побудована на ?нших ознаках символ?в. Така комб?нац?я р?зних метод?в розп?знавання рукописних символ?в призводить до досить хороших результат?в роботи.1.6 Розп?знавання рукописних символ?вПитання зчитування рукописних текст?в досить серйозно почало обговорюватися вже у пер?од 50-х ? 60-х рок?в водночас з публ?кац?ями по розп?знаванню образ?в. Одними з перших великих проект?в були так?, як обробка поштово? кореспонденц??, анкетування, перепис населення. При цьому, задля реал?зац?? процесу обробки використовували досить недешев? апаратн? засоби – оптичн? читаюч? пристро?. З часом, ?х стали по?днувати з керуючими машинами, ? як результат, система автоматичного зчитування перетворилася в об'?днання сканера та одного чи дек?лькох ПК. Сфера застосування дано? технолог?? розширилася, зб?льшилася гнучк?сть, знизилася варт?сть, в результат? чого з'явилася можлив?сть розвивати роботи ? меншого масштабу, спрямован? на корпоративн? ц?л?.Сфери використання систем розп?знавання рукописного тексту досить р?зноман?тн?: створення електронних б?бл?отек ? арх?в?в шляхом конвертац?? книг та ?нших документ?в у цифровий комп'ютерний формат; можлив?сть переходу в?д паперового до електронного документооб?гу п?дпри?мств; прийом квитанц?й про комунальн? та ?нш? платеж?; прийом страхових заяв; ре?страц?я авто при постановц? на обл?к, оформлення документ?в про дорожньо-транспортн? пригоди тощо.Вид?ляють два р?зновиди технолог?? розп?знавання рукопису: автономний (off-line) - традиц?йна технолог?я читання паперових документ?в, ? б?льш п?зн?ша — ?оперативна? (on-line), в останн?й, як ?нструменти використовуються перо ? спец?альний екран, чутлив? до руху пера ? ф?ксуюч? його тра?ктор?ю. У свою чергу, Off-line розп?знавання под?ля?ться на к?лька п?двид?в, для кожного з яких також ?снують окрем? технолог??. Таких п?двид?в ?сну? усього три: розп?знавання рукописного тексту, рукодрукованого, просто друкованого. Завдання розп?знавання рукописного тексту явля?ться найб?льш складною з трьох, ? ?снуюч? на сьогодн?шн?й день технолог?? в дан?й сфер? можуть використовуватись т?льки для вир?шення досить обмежених задач, таких як, наприклад, розп?знавання чек?в. Як ? у випадку з розп?знаванням об'?кт?в, основна проблема поляга? в тому, що к?льк?сть можливих вар?ант?в написання будь-якого символу або ?х сполучень можна назвати неск?нченною. Тому ?х класиф?кац?я поста? не те, що просто складною, а дуже складною.Як?сть розп?знавання досить сильно залежить в?д якост? фотограф?й ?з зображенням тексту, що визнача?ться формою символ?в, стилем написання та способом виконання. Легко вп?знаваний за формою знак ? ознакою гарного стилю, оск?льки не м?стить зайвих елемент?в. На практиц? вимоги до якост? символ?в виконуються не завжди, тому прям? помилки ? конфл?ктн? ситуац?? л?кв?довуються шляхом лог?чних ? словникових перев?рок ? втручання оператор?в [12].Не дивлячись на те, що багатьма науковими колективами в розв’язанн? проблеми розп?знавання тексту було досягнуто значн? результати, на сьогодн?шн?й день залиша?ться невир?шеною велика к?льк?сть проблем, вир?шення яких може дозволити п?двищити ефективн?сть розп?знавання нестандартних символ?в автоматизованими системами, у результат? чого зб?льшити результативн?сть процесу введення ? обробки текстово? ?нформац??. Зокрема, найб?льш важливими ? задач?:оц?нки результативност? систем розп?знавання символ?в;оц?нки оптимального розпод?лу процедури розп?знавання на апаратну ? програмну частини;зб?льшення ?нвар?антност? до масштабних ? аф?нних перетворень;сегментац?? на окрем? символи рукописного тексту;задача вид?лення у нестандартних символ?в ?нформативних ознак;розробки ефективних метод?в класиф?кац?? граф?чних зображень символ?в.1.7 Використання нейронних мереж як один ?з метод?в розп?знавання текстуВ процес? розп?знавання тексту майже завжди використовують штучн? НМ. Задля вир?шення задач? ОРТ нейронними мережами обирають алгоритми, як? зазвичай створюються наступним чином: вх?дне для розп?знавання, зображення символу (растр), зводиться до певного стандартного розм?ру. Част?ше за все, застосову?ться растр величиною 16 п?ксел?в на сторону.Як вх?дн? параметри нейронно? мереж?, використовуються значення яскравост? у вузлах нормал?зованого растра. К?льк?сть вих?дних параметр?в нейронно? мереж? прир?вню?ться до к?лькост? символ?в, що розп?знаються. У результат? чого, розп?зна?ться певний символ, якому в?дпов?да? найб?льше з? значень вих?дного вектора нейронно? мереж?. Част?ше за все, п?двищення над?йност? таких алгоритм?в може бути пов'язано або з пошуком б?льш ?нформативних вх?дних ознак, або з ускладненням структури нейронно? мереж?.У якост? вх?дних параметр?в системи можемо використати значення, як? показують зм?ну яскравост?, у противагу цього показника в певних нормал?зованих вузлах растру. Так? значення надають можлив?сть залучати показники, що в?дображають зм?ну яскравост?. Об’?кти, як? потр?бно розп?знати подаються у вигляд? квадрату з? стороною 16 п?ксел?в. Дал? на них наклада?ться додаткова обробка для того, щоб вид?лити д?лянки, в яких зм?на яскравост? найб?льша.Для покращення показника точност? розп?знавання використовують одночасне залучення р?зних модул?в розп?знавання ? подальше об’?днання результат?в на виход?. Також, важливим нюансом ? те, що алгоритми, як? використовуються в цих модулях повинн? бути максимально незалежними. Цього можна досягти використовуючи модул? розп?знавання, як? застосовують абсолютно р?зн? методи та алгоритми, або п?д?бравши для нейронно? мереж? спец?альн? дан?.Нейронну мережу навча?мо у звичайному стил? – з використанням алгоритму зворотнього поширення помилки. Система отриму? на вх?д документ, що в?добража? символи. П?д нас навчання системи, вона бере файли зв?дси й перебира? цикл?чно. Кожне зображення з файлу отриму? сво? первинн? характеристики. Дал? система викону? прямий прох?д по мереж?, а п?сля того – зворотний. Показник величини ваг зм?ню?ться п?сля роботи з кожним символом.Для того, аби покращити процес навчання, необх?дн? т? символи, як? погано розп?знаються, проглядати найчаст?ше. У вир?шенн? тако? задач? допомага? кеш, де можна збер?гати зображення, що важко п?ддаються методам ОРТ.Для кожного етапу задач? ОРТ можна залучати р?зн? фактори, як? сприяють розп?знаванню: - шаг зм?нювання параметр?в системи;- залучення регуляризац?? системи; - ?стор?я процесу навчання системи;- залучення додаткового шуму й перекручувань знак?в; - момент зупинки процесу навчання. Рекомендовано запоб?гати слабкого навчання системи та сильного ?? перенавчання; - розм?р кешу слабких растр?в ? в?дносна частота вибору растр?в з навчально? бази ? з кешу поганих символ?в.Даний п?дх?д може бути покращений за рахунок б?льш зм?стовного подання ознак та фактор?в для розп?знавання символ?в. Залучення значно б?льшо? БД та зб?льшення показника пам’ят? системи безумовно пол?пшить показник якост? розп?знавання. Така мережа повинна працювати в режим?, що дуже схожий до реального часу, а значить – досить швидким та над?йним [12].1.8 Огляд ? характеристика ?снуючих комплекс?в розп?знавання письмового текстуЗазвичай програми для вир?шення задач ОРТ мають змогу працювати з растровими зображеннями, як? створен? через камеру або, нав?ть, сканер.Головна мета таких систем заключа?ться в змоз? проанал?зувати растрову ?нформац?ю ? привласнити певний зн?мок до окремого правильного символу. П?сля того, як процес розп?знавання завершиться, така система ма? змогу зберегти форматування документ?в та застосовувати окрем? символи в потр?бному м?сц?. Нов?тн? системи такого плану можуть працювати з ус?ма популярними текстовими ? граф?чними форматами, також багато з них працюють вже з PDF та HTML.Для користувача робота з такими системами повинна бути максимально простою та зрозум?лою. Для цього створюють прост? базов? автоматичн? режими, як? працюють з файлами.Важливим параметром при робот? з такою системою ? показник зручност? вибору мови розп?знавання. Також важливим показником ? зрозум?л?сть ?нтерфейсу, що призначений для користувача. П?д час вир?шення задач? ОРТ у випадку, коли присутн? дек?лька р?зних мов, результат роботи програми прямою м?рою залежить в?д змоги системи формувати мовн? групи.На сьогодн?шн?й день на ринку конкуру? досить багато програм, як? вир?шують задачу ОРТ.Найпершою розглянемо програму-л?дера FineReader. Це система компан?? ABBYY Software, яка ран?ше створювалася ф?рмою Bit Software. Остання верс?я системи волод?? величезною к?льк?стю формат?в для збереження. Продукт ма? функц?ональн?сть розп?знавання з PDF-файл?в. Остання технолог?я компан?? - Intelligent Background Filtering (?нтелектуальна ф?льтрац?я фону) нада? можлив?сть користувачу прибрати в?домост? про текстуру документу та певн? шуми. Незважаючи на те, що люди не в?дчувають проблем у читанн? у присутност? таких момент?в, систем? зазвичай бува? досить важко правильно працювати з буквенними символами. Система FineReader ма? змогу виокремлювати м?сця, де м?ститься схожий текст за допомогою виокремлення тексту в?д загального фону документу за рахунок того, що знаходить ? видаля? точки, розм?р яких менше м?н?мального допустимого значення. При цьому контури букв збер?гаються, так що точки фону, що близько розташован? до цих контур?в, не вносять перешкод, здатних пог?ршити як?сть розп?знавання тексту [13].ABBYY FormReader ?нша програма в?д ABBYY, що вир?шу? задачу ОРТ, ядро яко? розм?щене на ABBYY FineReader Engine. Призначення ц??? програми поляга? у розп?знаванн? та обробц? форм, що можуть бути заповнен? вручну. За словами виробник?в, система ABBYY FormReader може опрацювувати певн? форми з заф?ксованою схемою так само добре, як ? форми, структура яких може зм?нюватися. OCR CuneiForm найб?льший конкурент FineReader на ус?х ринках св?ту. Програма створена в Рос?? за допомогою компан?? Cognitive Technologies. За ?х словами цей продукт в?др?зня?ться р?внем розп?знавання, особливо для текст?в низько? якост?; вбудованим редактором тексту, який ма? вс? основн? особливост?, що й конкуренти.Ця прорама здатна працювати з будь-якими пол?граф?чними ? машинописними гарн?турами для основних тип?в зображень та текст?в. Винятком ? лише рукописн? тексти. Додатково система ма? змогу працювати з таблицями р?зно? структури, без особливих ч?тких форм та л?н?й; зм?нювати та збер?гати результати сво?? роботи в багатьох табличних форматах. Також дуже зручною ? можлив?сть експортац?? результат?в в основн? продути MS Office..Дал? розглянемо продукт Омн?Пейдж в?д СканСофт. Безкоштовна верс?я системи постача?ться на додачу до нових сканер?в. За словами автор?в системи, ?х програма практично з 99,9% точн?стю працю? з документами, що було надруковано, повторюючи детально форматування стовпц?в таблиць, перенесень, заголовк?в, п?дрозд?л?в, тощо Також присутн?й функц?онал збереження у основн? типи документ?в в?д Microsoft, PDF ? в 20 ?нших формат?в, робота з PDF файлами, зм?на тексту одразу у формат? PDF. Мережа Ш? нада? можлив?сть автоматично визначати ? коректувати неточност? п?сля прогонки в ручному режим?. Нещодавно створена система нада? можлив?сть розп?знавати документи з поганою як?стю. Перевагами програми ? можлив?сть розп?знавання кольорового тексту ? можлив?сть|спроможн?сть| коректування голосом та жестами.Ус? ключов? переваги кожного програмного продукту зазначено в таблиц? 1.1Таблиця 1.1 - Основна характеристика ?снуючих комплекс?в розп?знавання письмового текстуНазва продуктуЛ?ценз?яОСКоментар?ONLINEOCR.ruП?дпри?мницькаВебДаний серв?с дозволя? розп?знавати мультимовний текст з? сканованого документа чи фотограф??. Виводить результат в ус? зручн? формати (PDF, DOCX, XLSX, TXT, HTML)Продовження таблиц? 1.1img2txt.ruП?дпри?мницькаВебДаний серв?с да? змогу користувачам працювати з багатомовним текстом, який було в?дскановано з документа чи фотограф??. Виводить результат в наступн? редагован? формати (RTF, TXT, HTML)ABBYY FineReaderП?дпри?мницькаУс? десктопн? ОСЗадля роботи з багатьма мовами необх?дна п?дтримка мови на р?вн? системи.OmniPageП?дпри?мницькаWindows, Mac OSСтворено за сприяння Нюанс Комун?кейшнReadirisП?дпри?мницькаWindows, Mac OSСтворено за допомогою бельг?йсько? компан?? ?Р?С груп. Залуча? пакети рег?он?в для п?дтримки аз?йських мов.Persian ReaderП?дпри?мницькаWindowsСпец?ал?зу?ться на мов? фарс? (перська)Kirtas Technologies Arabic OCRП?дпри?мницькаWindowsМоже розп?знавати арабськ? ? англ?йськ? символи на одн?й стор?нц?CuneiFormBSDУс? популярн? десктопн? ОСЗалуча?ться для багатьох м?сць. М?стить збер?гання текстових даних та вм?? розп?знавати складн? таблиц? та структуриПродовження таблиц? 1.1BrainwareП?дпри?мницькаWindows?мпорт даних документ?в та робота з ними. Наприклад, рахунки, чеки ? плат?жкиHOCRGPLLinuxРобота з ?вритомReadSoftП?дпри?мницькаWindowsСканування, розп?знавання ? класиф?кац?я д?лових папер?в наприклад договор?в, рахунк?в ? плат?жних доручень.SILVERCODERS OCR ServerП?дпри?мницькаLinuxВелика п?дтримка р?зномант?них мов св?ту. Додатковий функц?онал: збер?гання, форматування тексту, розп?знавання заплутаних таблиць дов?льно? структури, тощоSmartScoreП?дпри?мницькаWindows, Mac OSВм?? працювати з нотними записами.TesseractApacheWindows, Mac OS X, Linux, OS/2Викуплено компан??ю гуглВисновки до розд?лу У даному розд?л? була розглянута актуальн?сть та ?стор?я розвитку розп?знавання тексту. Кр?м того, проведено анал?з ?снуючих метод?в розп?знавання символ?в, на основ? чого було вид?лено ряд недол?к?в та переваг кожного методу. Також був представлений понят?йний апарат для того, аби повн?стю ор??нтуватися в ус?х розглянутих в робот? методах.РОЗД?Л 2 РОЗП?ЗНАВАННЯ РУКОПИСНОГО ТЕКСТУ НА ОСНОВ? ПЕРЕДБАЧЕННЯ2.1 Понят?йний апаратОкуло-рухова активн?сть ? важливим компонентом повед?нки людей ? тварин, що п?дкреслю? б?льш?сть щоденних перем?щень та вза?мод?й ?з об'?ктами, пристроями або людьми. Перем?щаючи погляд очима, центр зору пост?йно ? активно руха?ться навколо. Сканування в?зуального образу в?дбува?ться, головним чином, за допомогою високошвидк?сних рух?в очима, ? назива?ться сакадами (Yarbus (1967)), що посл?довно охоплюють конкретн? частини в?зуального образу. Незважаючи на те, що даний процес часто зустр?ча?ться у природ?, розп?знавання об'?кт?в через сакади р?дко розгляда?ться в штучному баченн?. Причин багато, серед яких можна вид?лити ?снування високопродуктивних датчик?в, як? забезпечують м?льйони п?ксел?в за низькою ц?ною. Пот?м все б?льш потужн? обчислювальн? пристро? призначаються для паралельних обчислень тих м?льйон?в п?ксел?в, щоб виконати розп?знавання, споживаючи ресурси грубою силою [14].Приклад зору тварин спонука?, однак, до пошуку нових п?дход?в до залучення б?льш простих алгоритм?в. Головним аспектом бачення тварин ? використання активних скануючих пристро?в, здатних рухатися навколо деяких ступен?в свободи для вибору конкретно? точки зору. ?снування набору можливих сенсорних рух?в вимага? розробки спец?альних алгоритм?в, як? повинн? вир?шити проблему вибору точки зору. Програма активного бачення комп'ютера повинна, наприклад, переглянути минулий досв?д, щоб побачити, яку точку зору сл?д використовувати для надання найб?льш корисно? ?нформац?? про в?зуальний образ. Оптим?зац?я процесу пер?одичного перем?щення датчик?в може бути частиною алгоритму комп'ютерного зору, у по?днанн? з традиц?йними п?ксельними операц?ями.У загальному, ?дея вибору точок зору повинна розглядати перш за все обчислення, як? необх?дно зробити для досягнення певного завдання. В?ртуальний скануючий пристр?й, наприклад, повинен д?яти як ф?льтр, який би обирав, яку частину сигналу варто розглянути, ? яку частину сл?д об?йти. Це може бути використано для робот?в ? безп?лотник?в, як? потребують швидкого реагування за допомогою св?тлових та слабких скануючих пристро?в. Под?бним чином, при комп'ютерному зор? мегап?ксельн? зображення ?з високою розд?льною здатн?стю закликають до виб?ркового стиснення зображеннями, щоб уникнути непотр?бних матричних результат?в. Менш ?нту?тивно, пост?йно зростаюч? бази даних,, що навчаються ? як? використовуються в машинному навчанн?, також передбачають ?нтелектуальне сканування даних, таким чином, щоб збер?гати лише вир?шальн? приклади або риси, залежно в?д контексту, перед тим як проводити навчання на ньому. Таким чином, окр?м проблеми вибору точки зору поста? проблема вибору рис, що повинн? спиратися на контекст.Концепц?я активного бачення та/або активного сприйняття присутня в робототехн?чн?й л?тератур? п?д р?зними схваленнями. У Алоймоноса ? сп?вавтор?в (1988), автори розглядають виадок обробки зображень з багатьох точок огляду, тобто показують, що деяк? некоректн? проблеми розп?знавання об'?кт?в стають коректними, як т?льки один ? той же об'?кт розгляда?ться з багатоьх точок огляду. Цей терм?н також був запропонований в Бадж? (1988) як дорожню карта для розробки систем штучного зору, що забезпечу? першу ?нтерпретац?ю активного бачення в умовах посл?довно? оц?нки Бай?са.Парадигма активного висновку була незалежно впроваджена в невролог?ю. Загальний параметр, запропонований Фр?стоном та його колегами, поляга? в тому, що загальн?й тенденц?? мозку до подолання непередбачуваних чутт?в? под?й через будування ним генеративних моделей, що покращують сво? прогнози з часом ? роблять св?т б?льш легко сприйнятним. Це вдосконалення зд?йсню?ться головним чином шляхом створення виб?рок з середовища та вилучення статистичних ?нвар?ант?в, як? використовуються задля прогнозування майбутн?х под?й. Таким чином, побудова тако? модел? спира?ться на витяг певного набору ?нвар?ант?в та ?х орган?зац?? задля ефективно? обробки вх?дних сенсорних даних шляхом прогнозного кодування (див. Рао ? Баллард (1999)). Це пропозиц?я, нагаду? теор?ю автокодування запропоновану Х?нтоном ? Земелем (1994), але вводить нову перспективу щодо ?? кодування формально сполучаючи побудову словника з даних та (оптимальне) керування двигуном. Зокрема, керування двигуном розгляда?ться як особлива реал?зац?я процесу в?дбору, тобто ? основою для оц?нки складного апостер?орного розпод?лу.2.2 Нейронна мережа в задачах обробки зображеньВ складних задачах ОРТ ситуац?я потребу?, аби в?дбувалося створення систем що використовують у сво?й основ? нейронн? мереж?. Вони можуть м?стити властивост?, що ор??нтован? на вир?шення конкретних завдань враховуючи так? характеристики об’?кта як: зб?льшення, ор??нтац?я у простор?, в?зуальн? показники[15]. М?ж тим нейронн? мереж? мають такий ?стотний недол?к як недостачу певних вм?лих та ефективних п?дход?в, що вир?шують задачу знаходження в?дпов?дних об’?кт?в для динам?чних зображень. Основними проблемами в реал?зац?? ц??? задач? ? висока вар?ативн?сть ознак та певна деформац?я об’?кт?в у простор?. Стиснення просторових властивостей викону?ться шляхом знаходження ?нтегральних ? ?нвар?антних зм?н в?зуальних перетворень малюнк?в. Досить важливим методом у вир?шенн? задач? розп?знавання зображень в?д?гра? метод алгебра?чних перетворень та геометричних ?нвар?ант?в. Так, як приклад, ?нвар?анти слушно використовуються для виявлення об’?кт?в пов?тряного простору ? танк?в, рукописних ? друкованих л?тер, властивостей вузла стикування косм?чного корабля, ? ще багатьох под?бних об'?кт?в. Мат п?д?рунтя таких властивостей нап?взм?нених фотограф?й засноване на теор?? алгебра?чних перетворень.Нейронн? мереж? складаються з елемент?в, як? звуться формальними нейронами. В такому випадку, кожен з нейрон?в отриму? множину вх?дних сигнал?в, що надходять до його канал?в в?д групи дуже под?бних нейрон?в. П?сля цього в?дбува?ться опрацювання даних, яке вже включа? в себе попередн? сигнали ? адапту?ться з ними ?з залученням навчальних процедур. Дал? в?дбува?ться в?дправка результат?в наступн?й множин? нейрон?в. Показник зв’язку м?ж нейронами зада?ться за допомогою ваг?в, як? показують наск?льки ?х ?нформац?я важлива для нашо? мереж? та для знаходження результату. Осовний п?дх?д налаштування НМ – це використання п?дход?в оптим?зац?? та зм?н, що зд?йснюються на основ? певних властивостей, здатност? до перенавчання. Головною перевагою НМ ? те, що вс? показники мають можлив?сть сп?впрацювати паралельно. Через це п?двищу?ться результат розп?знавання, особливо, коли робота в?дбува?ться з даними, що надходять в реальному час?. Системи розв’язку задач ОРТ, як? побудован? на НМ, застосовують ??рарх?чну структуру. Спершу напрям властивостей зм?ню?ться п?д впливом високого р?вня похибок, але надал? система все б?льше ? б?льше навча?ться знаходити результати за значно менший час. Б?льш?сть з таких НМ потребу? використання багатошарових перцептрон?в. Вони завдячують популярн?стю досить широкому обсягу можливих задач, як? вони здатн? вир?шити. Част?ше за все вони вир?шують завдання наближення багатовим?рних функц?й, тобто – будують багатовим?рне в?дображення F : x → y , що узагальню? певну задану к?льк?сть пар даних (еталонних в?дображень) {xa ,ya }.В залежност? в?д показника зм?нних, що виходять (значення вх?дних не в?д?гра? вир?шального впливу), наближення функц?? може бути представлене так:- класиф?кац?я (дискретна множина вих?дних значень);- регрес?я (неперервн? вих?дн? дан?).Ус? базов? задач? по розп?знаванню об’?кт?в (зображення, ф?льтрац?я шум?в, робота з часовими рядами) можна звести до таких базових задач.П?дх?д його навчання розглянемо на звичайн?й задач?. Процес навчання перцептрона в?дбува?ться з надання сукупност? (множини) фотограф?й по одн?й вх?д ? зм?ни вагових коеф?ц??нт?в доти, поки вс? зображення не знайдуть оптимальний вих?д. Наприклад, вх?дн? фотограф?? нанесено на показн? карти. Вс? карти под?лено на квадратн? зони ? в?д кожно? тако? зони на персептрон надходить вх?дний сигнал. У раз?, якщо зона м?стить л?н?ю, то в?д не? надходить 1, у противному випадку – 0. Множина таких зон на карт? зада? множину 0 ? 1, як? передаються на входи перцептрона. Основною метою поста? вивчити таку систему включати показчик за умови подавання на нього множини вход?в, як? в?дображають непарне число, ? не вмикати у випадку парного. Рисунок 2.1 в?добража? таку конф?гурац?ю.Рисунок 2.1 – Система розп?знавання образ?в у перцептрон?Можемо прикинути, що направлення х в?добража? демонстрац?йну карту, яку задали для розп?знавання. Кожна компонента xi направлення x множиться на протиставну ?й компоненту wi направлення ваг w . П?сля цього ц? результати складають У випадку, коли сума б?льше за пор?г q , то вих?д нейрона y склада? 1 (покажчик вмика?ться), в ?нш?й ситуац?й – 0. Таку д?ю можна перевести у векторну форму y = xw. Для вивчення НМ в?дображення x передають на вх?д ? вираховують вих?дне значенн y. Коли ма?мо правильний вих?д, то н?чого не в?дбува?ться. Але коли вих?д не в?дпов?да? д?йсност?, то коеф?ц??нт ваг?в, що був при?днаний до вход?в, задля того, аби помилка стала менше.Подивимося як це викону?ться. Припуска?мо, що така карта з зображенням цифри 3, подана на вх?д ? вих?д y, дор?вню? одиниц? (НМ показу? нам непарн?сть). Так я к ми отримали правильний результат, то не коригу?мо ваги. Коли ж на вх?д надходить карта з номером 4 ? вих?д y дор?вню? 1 (непарне число), то ваги, при?днан? до одиничних вход?в, мають бути зменшен?, бо вони надають нам неправильн? дан?. Аналог?чно, у випадку, коли карта з номером 3 да? 0 вих?д, то ваги, при?днан? до 1-их вход?в, необх?дно зб?льшити такий показник, аби виправити величину помилки.За обмежену к?льк?сть виконань НМ знатиме як правильно розд?лити карти по принципу парност? за умови, коли сукупн?сть цифр л?н?йно розд?льна. Тод? для вс?х непарних карт вих?д буде б?льшим в?д певного порогу, а для вс?х парних – нижчим. Варто в?дм?тити той факт, що навчання в?дбува?ться глобально – НМ можна навчити ?з залученням ус??? множини вх?дних показник?в. Персептрони популярн? загалом тому, що у вир?шенн? задач свого спрямування вони показують себе як ун?версальний та ефективний зас?б з урахуванням обчислювально? складност? пристро?в.М?нусом у такому п?дход? ? перевантаження НМ в т?й ситуац??, коли ми безп?дставно зб?льшу?мо к?льк?сть нейрон?в. Також м?нусом слугу? той факт, що ? така множина функц?й, яку неможливо сегментувати ?з застосуванням одношарово? НМ. Так? функц?? називають л?н?йно нерозд?льними, та через це ми змушен? накладати обмеження на використання одношарових НМ.2.3 Основн? принципи роботи алгоритмуКерування сприйняттямАктивний висновок спира?ться на давню ?стор?ю ?мов?рн?сного моделювання в процес? обробки та контролю сигнал?в. Формально кажучи, ф?зичний св?т прийма? форму генеративного процесу, який ? причиною сенсорного потоку. Цей процес не видно сам по соб?, але в?дчува?ться лише через процес вим?рювання шум?в, який забезпечу? вектор спостереження x. Проблема висновку поляга? в оц?нц? основних причин спостереження, що спираються на вектор латентного вектора z ? на керування u. Питання, поставлене Фр?стоном явля? собою конструкц?ю контролера, який визнача? величину контролю u з поточно? оц?нки z, щоб максим?зувати точн?сть процесу оц?нювання. Це мета контролера, керованого сприйняттям[16, 17, 18].Зам?сть того, щоб вибрати u у випадковому порядку, загальною метою активно? структури висновк?в ? виб?р u таким чином, щоб м?н?м?зувати в кращому випадку поточну невизначен?сть щодо z. Знання про z можуть бути в?дображен? в апостер?орному розпод?л? ρ (z). Чим краще знання (точн?сть) про сенсорну сцену, тим нижче ентроп?я р, з:Hp=Ez~p[-logp(z)] (2.1)М?н?м?зац?я апостер?орного значення ентроп?? через д?ю може бути пов'язана з м?н?м?зац??ю вар?ац?йно? зм?нно? енерг??, прикр?плено? до сенсорно? сфери[19]. Таким чином, оч?ку?ться, що керування буде зменшувати ентроп?ю р на кожному кроц?. Це оптимальне значення u нев?домо заздалег?дь, тому що x визнача?ться т?льки п?сля того, як ви вир?шили це р?вняння. Пот?м визнача?ться фреймворк, який ?дентиф?ку? ефект у та його найб?льш ?мов?рний результат, в?дпов?дно до генеративно? модел?.Якщо ми переглянемо попередн?й крок, загальна формула генеративно? модел? - це структура управл?ння зворотним зв'язком, п?д дискретним формал?змом бай?с?вського висновку. Враховуючи початковий стан z0, передбачення в?дновлю? константн? розпод?ли, а саме P (Z | u, z0) - динам?ку посилань, яка генеру? Z - ? P (X | z, u) - процес вим?рювання, що генеру? x -. Пот?м, для майбутнього апостер?орного розпод?лу (правило Бай?са):PZX,u,z0=P(X,Z|u,z0)P(X|u,z0)=PXZ,uP(Z|u,z0)z'PXz',uP(z'|u,z0) (2.2)так що майбутня ентроп?я:EXHpX,u,z0=EX[EZ-logPZX,u,z0] (2.3)? оптимальним U ?:u=argminu∈UEX[H(p)|X,u,z0] (2.4)На практиц? анал?тичн? розрахунки недоступн? (зокрема, для прогнозування наступного розпод?лу х). Отже, потр?бно розглянути оц?нку ~ u, яка повинна спиратися на в?дб?р проб в?д генеративного процесу, щоб передбачити ефект u, тобто:u=argminu1N i=1..N x(i)~PX|u,z0)z(i)~P(Z|xi,u,z0) -logP(zi|xi,u,z0)(2.5)або нав?ть б?льш ч?тка пряма оц?нка за допомогою оц?нок максимально? правдопод?бност? (точкова оц?нка): xu=argmaxxP(x|u,z0) (2.6)zu=argmaxzP(z|xuu,z0) (2.7)u=argminu-logP[zu|xu,u,z0] (2.8)Ця операц?я може бути повторена посл?довно, де фактична модуляц?я u = u~ супроводжу?ться читанням фактичного спостереження x, що, у свою чергу, дозволя? оновлювати фактичний апостер?орний розпод?л по z. Цей оновлений апостер?ор ста? апр?ором до наступного кроку прийняття р?шення, тобто z1 ~ P (Z | x, u, z0), так що може бути зд?йснена нова модуляц?я u1 ? т. Д. Якщо ми позначимо T як останн?й етап процесу, з u0: T -1 - фактична посл?довн?сть елемент?в керування ? x1: T - фактична посл?довн?сть спостережень; остання апостер?орна оц?нка ста? P (Z1: T | x1: T, u0: T -1, z0), що в?дпов?да? Частково спостережуван?й оц?нц? процесу прийняття р?шень Маркова (POMDP) (див. рис. 2.2), суть яко? визначалась б принципами м?н?м?зац?? ентроп??, визначеними вище, саме для полегшення процесу оц?нювання. Таким чином, система активних висновк?в виявля?ться сприйнятливою пол?тикою (основною ?? метою ? полегшення процесу оц?нки).Рисунок 2.2 - Генеративна модельЛог?ка активного баченням поляга? у зовн?шн?й в?зуальн?й сцен? X, яка н?коли не розкрива?ться повн?стю, можна споглядати т?льки певну частину сцени х п?д ор??нтац??ю сенсора u (як це в?дбува?ться в режим? foveated vision). Знаючи, що z ? ?нвар?антним для зм?ни положення датчика u, виявлення z повинно полягати в збор? сенсорних патч?в x через зм?ну u (ор??нтац?я датчик?в) за часом, щоб уточнити оц?нку z. Враховуючи, що для z був обраний певний апр?ор ρ0 (z), виб?р u супроводжу?ться збраженням в?зуального образу, що забезпечу? х, що, у свою чергу, дозволя? уточнити оц?нку z. Кожна саккада повинна консол?дувати припущення про латентний стан z, який може збер?гатися ? поширюватися в?д кроку до кроку, доки не буде з?брано достатньо доказ?в[19].Фреймворк активного бачення дозволя? зд?йснити багато р?зноман?тних спрощень з загально? схеми оц?нки POMDP, враховуючи, що зм?на u не вплива? на компоненти сцени, тобто P (Zt + 1 | u, zt) = P (Zt + 1 | zt). Пот?м, використовуючи статичне припущення, яке припуска?, що не повинно в?дбуватися сутт?вих зм?н на сцен? п?д час процесу досл?дження саккади, тобто ?t, t’, zt = zt’= z. Це, нарешт?, тягне за собою спрощений ланцюжок апостер?орно? оц?нки:PZx1:t+1, u0:t, z0=Pxt+1Z, utPZx1:t, u0:t-1, z0z`Pxt+1z`, utPz`x1:t, u0:t-1, z0 (2.9)випливаючи в остаточну оц?нку P (Z | x1: T, u0: T -1, z0).Тлумачення: фреймворки активних висновк?в, пов'язн? з теор??ю автокодування (м?н?м?зац?я в?льно? енерг??) та прогнозного кодування, дають ч?ткий план д?й для ефективно? реал?зац?? в штучних пристроях. В?н повинен спиратися на три елементи, а саме:- генеративна модель p, яка повинна передбачити наступний вигляд x п?д поточною здогадкою z0 та точка зору u,p.u, z0?z`PXz`,uPz` 0 u, z0 (2.10)- модель висновку q, яка повинна передбачати наступний апостер?ор z п?д уявним видом x та точкою зору u, тобто:q(.|x,u, z0)?P(Z|x,u, z0) (2.11)(за допомогою динам?ки посилань P (Z | u, z0) неявно вбудован? як в генеративн?, так ? у вих?дн? модел? в загальному випадку), - ? пол?тика π, яка повинна використовувати прогноз "два кроки вперед" (спочатку передбачення наступного перегляду а тод? висновок щодо передбаченого виду), щоб видати оптимальний контроль в?дпов?дно до будь-якого р?вняння (5) або р?внянь (6-8).П?д комп'ютерною перспективою зору ? з урахуванням z = z0 (припущення про статичну сцену) кожна р?зниця u в?дпов?да? ?нш?й точц? зору статичного зображення, з набором генеративних {pu (. | Z)}u∈U та висновку {qu (. | x)}u∈U модел? систематично вивчаються для кожно? р?зно? точки зору u. Ц? слабк? класиф?катори м?сцевого характеру контрастують з локально-?нвар?антними ф?льтрами низького р?вня, що використовуються при традиц?йн?й обробц? зображень [20] та / або з першим шаром ф?льтр?в згортки, який використову?ться в згортувальних нейронних мережах.2.4 Реал?зац?я системи розп?знавання тексту на основ? динам?чного передбаченняЯк попередн?й крок, вважа?мо, що передбачуван? та генеративн? модел? навчаються окремо, для того щоб була можлив?сть оц?нити властивост? стратег?? управл?ння окремо. Цей п?дх?д, заснований на модел? для вибору посл?довного вигляду наведено в алгоритмах 1 ? 2.- Значний алгоритм?чний доданок у пор?внянн? з формулами (6-8) - це використання набору динам?чних д?й: U. У кожному повтор? нова вибрана д?я u~ витягу?ться з U, так що наступний виб?р буде зроблений над св?жими напрямками, як? ще не вивчен?. Це реал?зу? принцип гальмування зворотнього зв'язку [21].- Другим алгоритм?чним аспектом ? використання порогу Href, щоб зупинити процес накопичення доказ?в, коли ?х було з?брано достатньо. Цей пор?г ? в?льним параметром алгоритму, який встановлю?, чи нада?мо ми прив?ле? консервативному (щ?льному) або оптим?стичному (порожньому) порогу. Критер?й припинення ма? бути оптим?зованим для розмежування м?ж ресурсозбереженням та точн?стю кодування.FOVEA-BASED MODEL (Основна модель)У б?льшост? хребетних використовуються дв? основн? хитрощ? для м?н?м?зац?? споживання сенсорних ресурс?в в розв?дц? сцени. Перший трюк - це foveated retina, яка концентру? фоторецептори в центр? с?тк?вки, з б?льш деф?цитним розпод?лом на перифер??. Foveated retina дозволя? одночасно обробляти центральн? висок? просторов? частоти та перифер?йн? низькочастотн? частоти (тобто паралельно обробляти дек?лька масштаб?в). Друга хитр?сть - це вже згадане посл?довне вивчення саккадних сцен, що дозволя? захопити ?нформац?ю про високу просторову частоту, де це необх?дно (посл?довна обробка)[19].Алгоритм 1. Пол?тика, заснована на прогнозах.Необх?дн? елементи: p (генератор), q (висновок), ρ (апр?ор), U (наб?р д?й)передбачити z ~ ρ?u ∈ U, генеру?мо x u~ u ~ p (x | z, u)Поверта?мося до u=argmaxu∈Uq(z|x u,u)Алгоритм 2. Вивчення сцени.Необх?дн? елементи: p (генератор), q (висновок), ρ0 (початковий апр?ор), U (задан? д??)ρ ← ρ0тим часом, коли H (ρ)> Href, викону?мообира?мо: u ← Пол?тика, що базу?ться на передбаченн? (p, q, ρ, U)зчиту?мо: xuоновлення: ?z, непарний [z] ← log q (z | xu, u) + log ρ (z)ρ → softmax (odd) (апостер?ор ста? апр?ором наступно? черги)U ← U \ {u)}тим часом поверта?мося до ρОсновна модель бачення, яка пропону?ться, спочатку поклада?ться на вивчення локальних foveated views зображення. В?зуальне перетворення обмежу?ться його основними алгоритм?чними елементами, тобто локальне стиснення зображення в?дпов?дно до певного фокусу[22]. Таким чином, foveal image compression спира?ться на "п?рам?ду" вейвлет-коеф?ц??нт?в 2D Хаара, розм?щених у центр? зору. На приклад? бази даних MNIST ми спочатку перетворю?мо ориг?нальн? зображення в?дпов?дно до 5-р?вневого вейвлет-розкладу (див. рис.2.3-b). Пот?м ми визнача?мо точку зору u як наб?р з 3 координат (i, j, h), з я ?ндекс рядка, j ?ндекс стовпця та h - просторовий масштаб. Кожна u може в?дпов?дати в?зуальному полю, зробленому з трьох вейвлет-коеф?ц??нт?в xi, j, h ∈ R15, отриманих з горизонтального, вертикального та косого ф?льтр?в у м?сц? (i, j) та шкал? h. Мультимасштабна в?зуальна ?нформац?я xi, j ∈ R 15, доступна в координатах (i, j), в?дпов?да? безл?ч? 5 тр?пт коеф?ц??нт?в, а саме xi, j = (xi, j, 5, x[i / 2], [j / 2], 4, x[i / 4], [j / 4], 3, x[i / 8], [j / 8], 2, x[i / 16], [j / 16], 1} (див. рис. 2.3-c), так що кожне багатозначне в?зуальне поле ма? 15 коеф?ц??нт?в (на в?дм?ну в?д 784 п?ксел?в у вих?дному образ?). На рисунку 2.3-b показано в?дновлене зображення з 4 центральних точок зору в координатах (7, 7), (7, 8) (8, 7) ? (8, 8).Для кожно? модел? u = (i, j, h) (загалом 266 слабких моделей) вивча?ться б?льш н?ж 55 000 приклад?в бази даних MNIST. Для кожно? категор?? z та кожно? ор??нтац?? погляду, генеративна модель побудована за набором параметр?в Θz, u = (ρz, u, μz, u, Σz, u), так що ?z, u, x u, u ~ B (ρz, u) × N (μz, u, Σz, u) з B a розпод?лом Берну?лл? та N багатовар?антним гаусовим. Bernouilli пов?домля? про випадки, коли триплет коеф?ц??нта ? нульовим у розглянут?й частин? зображення (що досить часто зустр?ча?ться на перифер?? зображення), що призводить до в?дмови в?д в?дпов?дного триплета в?д розрахунку гауссових момент?в. Кожна результуюча слабка генеративна модель p (X | z, u) явля? собою сум?ш гаусс?в з Бернулл? за 10 лейбл?в MNIST. Для модел? висновку, задн?й можна тут обчислити явно з використанням правила Бай?са, тобто q (Z | x, u) = softmax log p (x | Z, u).Рисунок 2.3 - Foveated image constructionАлгоритм досл?дження саккад ? адаптац??ю алгоритму 2. Процес почина?ться з в?льного припущення, що базу?ться на трактуванн? кореня коеф?ц??нта вейвлета зображення, з якого утворю?ться початкова догадка ρ0. Пот?м кожна наступна саккада обчислю?ться на основ? к?нцевих координат (i, j) ∈ [0, .. 15]2, так що апостер?орний розрахунок базу?ться на дек?лькох тр?йнях коеф?ц??нт?в. П?сля вибору (i, j) вс? в?дпов?дн? координати (h, i, j) в?дкидаються з U ? не можуть бути повторно використан? для майбутньо? апостер?орно? оц?нки (для остаточно? апостер?орно? оц?нки може бути узгоджено з р?вном?рним скануванням над вейвлет-коеф?ц??нтами).Приклад такого вивчення саккадичного зображення представлений на рисунку 2.4-а б?льше одного зразку MNIST. Стан процесу розп?знавання п?сля одного саккаду показано на рис. 2.4-б. Наступна саккада (рис. 2.4-в) спрямову? до област? зображення, що, як оч?ку?ться, допоможе п?дтвердити припущення. Саккада, що продовжу?ться (рис. 2.4-г) робить обстеження, а остання саккада (рис. 2.4-д) дозволя? досягти порогу задньо? ентроп??, встановлено? тут Href = 1e-4. Другий рядок показу? накопичення доказ?в над коеф?ц??нтами триплет?в, та з рис. 2.4-е зображу? апост?р?орне оновлення р?зних напис?в та рис. 2.4-?, що показу? апостер?орну ентроп?ю оновлення в?дпов?дно до коеф?ц??нт?в триплет?в, що зчитуються. Важливо, що для кожно? позиц?? к?нцевого ефектора (i, j) зчитуються к?лька триплет?в (див. рис. 2.3-в). Наприклад, в початковому ор??нтуванн? ока (5) було зчитано 5 триплет?в, а пот?м 4 триплети для кожного продовження саккаду.Модель наочно зображу? реал?стичн? саккади, оск?льки вони охоплюють весь д?апазон зображення та мають тенденц?ю зосереджувати увагу над рег?онами, що м?стять класов? п?ксел?. Реконструкц?я зображення п?сля 4 саккад дозволя? в?зуально визнати "неч?тк?" три, хоча це не ? обов'язковим, якщо саккади були обран? випадковим чином. Отримана тра?ктор?я ?люстру? лог?ку п?дтвердження вгадувань, яка лежить за активною рамкою зору. Кожна саккада спрямову?ться до д?апазону, який повинен п?дтвердити поточну г?потезу. Це твердження зда?ться на перший погляд суперечливим, оск?льки деяк? оч?кують, що око буде спрямовуватися на д?апазони, як? можуть спростувати припущення (заперечувати поточну г?потезу). Насправд? дана ситуац?я не ? тим випадком, коли д?апазони, що п?дтверджують клас, ? б?льш р?дк?сними, ан?ж д?апазони, що спростовують клас, так що рух у напрямку до д?апазону, що п?дтверджу? клас, може принести б?льше ?нформац?? у випадку, якщо, на подив, початкове припущення виявиться нед?йсним.Рисунок 2.4 - Вивчення сцени через саккади в модел? foveated vision. a) Тра?ктор?? саккад над ориг?нальним зображенням (початкова ор??нтац?я погляду вказана червоним "плюсом"). б-д - Прогресивна реконструкц?я зображення п?д час саккад, з коеф?ц??нтами: б) 5 коеф?ц??нт?в триплет?в + кореневий коеф?ц??нт (початкова ор??нтац?я погляду), в) 9 коеф?ц??нт?в триплет?в + кореневий коеф?ц??нт (перша саккада), г) 13 коеф?ц??нт?в триплет?в + кореневий коеф?ц??нт (друга саккада); д) 17 коеф?ц??нт?в триплет?в + кореневий коеф?ц??нт (третя саккада) е) апостер?орне оновлення залежно в?д к?лькост? етап?в читання (зазначаючи, що крок 1 зумовлений для кореневого коеф?ц??нта та наступними кроками для зчитування 3 вейвлет-коеф?ц??нт?в Хаара), з одним кольором на кожну категор?ю (к?льк?сть по рядках забезпечу? конкуруюч? наклейки) ?) Задня ентроп?я оновлю?ться залежно в?д к?лькост? етап?в читання.Пол?тика значимост? (пол?тика поп?ксельного сегментування)Масштабування модел? потребу? вир?шення при розгляд? великих зображень. Пол?тика поклада?ться на два етапи прогнозування (р?вняння (2.6-2.8) та алгоритм 1), який нагаду? значення O (| U |. | Z |), оск?льки в?н прогнозу? наступний апостер?орний розпод?л по z для кожного в?зуального прогнозу xu. Для пор?вняння, параметризована пол?тика ? б?льш ефективною для обчислення, що дозволя? провести одну операц?ю над д?ями, заданими контекстом. На щастя, така параметризована пол?тика тут проста для обчислення. Приймаючи z0 як початкове припущення, ? в?дзначаючи xu,z0 в?зуальне генеративне прогнозування, коли z0 прийма?ться п?д в?зуальну ор??нтац?ю u, припускаючи, що р?вновага апр?ору над латентними станами, незалежно в?д процесу огляду апостер?ору, ?:pu,z0.=p(xu,z0|.,u) z`p(xu,z0|z`,u) (2.12)забезпечуючи при кожному (u, z0) автономний-прогноз, а саме ρu, z0 (z0). Ц? автономн? обчислення передбачають для кожно? здогадки z0 карту поп?ксельного сегментування над u.Низькор?внев? карти поп?ксельного сегментування беруть початок з [21], з багатьма спостереженнями та покращенням стиснення зображень / в?део. У нашому випадку, дана карта обробля?ться для кожно? здогадки z0 , що приводить до вибору точки зору щодо п?дтвердження z0. Пол?тик значимост? дозволя? визначити оптимальний шлях саккаду через образ, який сл?ду? за посл?довн?стю "основних" точок зору з зменшенням значимост? (в?дпов?дно до гальмування повернення). У нашому випадку, точка зору, обрана на кроц? t, залежить в?д поточно? догадки zt, з перемикачем карт на льоту, якщо припущення перегляда?ться протягом курсу саккад.Рисунок 2.5 - Пол?тика значимост?- верхня панель: карти поп?ксельного сегментування, виведен? з модел?, з в?дпов?дними прототипами тра?ктор?й саккад. a) Карта поп?ксельного сегментуваннядля латентного класу "1". б) Прототип 5-саккадно? тра?ктор?? для латентного класу "1" (початкова позиц?я позначена червоним "плюсом") за середн?м класом. в) Карта поп?ксельного сегментування для латентного класу "2". г) Прототип 5-саккадно? тра?ктор?? для латентного класу "2" за середн?м класом. д) Карта поп?ксельного сегментуваннядля латентного класу "3". е) Прототип 5-саккадено? тра?ктор?? для латентного класу "3" за середн?м класом. Нижня панель: пор?вняння пол?тики (л?воруч). Класиф?кац?я для прогнозовано? пол?тики, пол?тик поп?ксельного сегментування та випадково? однор?дно? пол?тики, для р?зних порогових знак?в. Вичерпна швидк?сть розп?знавання (базова л?н?я) визнача?ться швидкими темпами. (середня) К?льк?сть розпод?л?в саккад для прогнозно? пол?тики, пол?тики поп?ксельного сегментування та випадково? пол?тики. Област? вказують на перший ? трет?й квартел?. (праворуч) Середн? та мед?ана саккад?в залежно в?д порогу розп?знання для р?зних розглянутих пол?тик.Приклади таких карт поп?ксельного сегментування наведен? у верхн?й панел? на рисунку 4 для категор?й в?д 1 до 3. Дан? карти дозволяють детально проанал?зувати точне розташування класу (як? виглядають коричневими) як? протилежн? до клас?в невизначеного розташування (в?д бл?до-оранжевого до б?лого). Спочатку потр?бно пом?тити в?дносний деф?цит конкретних клас?в. Ц? "надаюч? докази" м?сцеположення з'являються, як оч?кувалося, вза?мовиключно в?д класу до класу. Оч?ку?ться, що невелика к?льк?сть саккад забезпечить б?льшу частину ?нформац?? про класиф?кац?ю, тод? як ?нша частина зображення начебто не?нформативна (або нав?ть зворотня ?нформативн?й, якщо ? б?луватого кольору). Другий аспект поляга? в тому, що ус? релевантн? м?сцеположення розташован? у центральн?й частин? зображень, тому для саккад дуже мало шанс?в вивчити перифер?ю зображення, де оч?ку?ться незначне знаходження ?нформац??. Це вказу? на те, що модель ма? захопили сутт?ву концентрац?ю ?нформац??, що стосу?ться класу, у центральн?й частин? зображень для цього конкретного навчального комплекту.Нижня частина рис. 2.5 да? огляд модел? повед?нки за функц??ю порогу розп?знання Href. Початкова прогнозована пол?тика пор?вню?ться з (i) пол?тикою поп?кселього сегментування, яка вибира? карту за допомогою поточно? здогадки zt ? (ii) р?вном?рно? випадково? розв?дки (обира? наступну точку зору випадковим чином). Класиф?кац?йн? показники, показан? в л?в?й частин?, монотонно зростають ?з зменшенням порогу розп?знавання. Зважаючи на те, що швидк?сть розп?знавання становить 92% становить верхню межу (що в?дпов?да? вичерпному декодування з 266 слабкими класиф?каторами - близьким екв?валентом л?н?йного класиф?катора), отриму?ться майже оптимальна швидк?сть розп?знавання як для прогнозування, так ? на основ? пол?тики поп?ксельного сегментування Href наближаючись до 1е-5, тод? як випадкова пол?тика виявля?ться явно недостатньо оптимальною. Доповнюючим ефектом ? монотонне зб?льшення к?лькост? саккад з зменшенням Href, показаним у центральн?й ? крайн?й правильн?й ф?гур?. К?льк?сть саккад ? визначною у складност? розп?знання. Розпод?л к?лькост? саккад дуже суперечливий у вс?х випадках (центральна ф?гура), невелика к?льк?сть саккад в б?льшост? випадк?в в?дображають лише незначну частину, ? багато саккад?в р?дше в?дображають "важкодоступний" розп?знання. Для пол?тики прогнозування та пол?тики поп?ксельного розп?знавання, менше 5 саккад достатньо для досягнення порогу визнання б?льш н?ж у 50% випадк?в (у пор?внянн? з приблизно 15 у випадковому випадку досл?дження) для Href = 10-5.Сильним аспект модел?, таким чином, ? ?? здатн?сть ефективно розп?знавати з дуже небагатьма коеф?ц??нтами Хаара (? тому дуже малою к?льк?стью п?ксел?в) в б?льшост? випадк?в за низько? обчислювально? вартост?, використовуючи або повну пол?тику прогнозування, або попередньо оброблен? карти та саккади тра?ктор??. К?льк?сть саккад в?добража? довжину обробки сцени. Наприклад, середня к?льк?сть саккад м?ж 10 та 15, коли Href = 1e-4, в?дпов?да? середньому стисненню 85-90% даних, фактично оброблених для розп?знавання сцени. ?х к?льк?сть може бути б?льшою, якщо пор?г б?льш оптим?стичний, ? меншою, якщо в?н буде б?льш консервативним.Висновки до розд?луУ даному розд?л? було розглянуто як за допомогою нейронно? мереж? можна вир?шувати задач? розп?знавання рукописного тексту. Також був продемонстрований основний алгоритм нейронно? мереж? з функц??ю динам?чного передбачення. П?сля цього був показаний практичний п?дх?д до застосування такого типу мереж? на приклад? розп?знавання рукописних цифрРОЗД?Л 3 АНАЛ?З ЕКСПЕРИМЕНТАЛЬНИХ ДАНИХ ЗА РЕЗУЛЬТАТОМ РОБОТИ ПРОГРАМНОГО МОДУЛЯ3.1 Обгрунтування вибору засоб?в створення продуктуPython — ?нтерпретована об'?ктно-ор??нтована мова програмування високого р?вня з? строгою динам?чною тип?зац??ю. Розроблена в 1990 роц? Гв?до ван Россумом. Структури даних високого р?вня разом ?з динам?чною семантикою та динам?чним зв'язуванням роблять ?? привабливою для швидко? розробки програм, а також як зас?б по?днування наявних компонент?в. Python п?дтриму? модул? та пакети модул?в, що сприя? модульност? та повторному використанню коду. ?нтерпретатор Python та стандартн? б?бл?отеки доступн? як у скомп?льован?й, так ? у вих?дн?й форм? на вс?х основних платформах. В мов? програмування Python п?дтриму?ться к?лька парадигм програмування, зокрема: об'?ктно-ор??нтована, процедурна, функц?ональна та аспектно-ор??нтована.Серед основних ?? переваг можна назвати так?:чистий синтаксис (для вид?лення блок?в сл?д використовувати в?дступи);переносн?сть програм (що властиве б?льшост? ?нтерпретованих мов);стандартний дистрибутив ма? велику к?льк?сть корисних модул?в (включно з модулем для розробки граф?чного ?нтерфейсу);можлив?сть використання Python в д?алоговому режим? (дуже корисне для експериментування та розв'язання простих задач);стандартний дистрибутив ма? просте, але разом ?з тим досить потужне середовище розробки, яке зветься IDLE ? яке написане на мов? Python;зручний для розв'язання математичних проблем (ма? засоби роботи з комплексними числами, може оперувати з ц?лими числами дов?льно? величини, у д?алоговому режим? може використовуватися як потужний калькулятор);в?дкритий код (можлив?сть редагувати його ?ншими користувачами).Python ма? ефективн? структури даних високого р?вня та простий, але ефективний п?дх?д до об'?ктно-ор??нтованого програмування. Елегантний синтаксис Python, динам?чна обробка тип?в, а також те, що це ?нтерпретована мова, роблять ?? ?деальною для написання скрипт?в та швидко? розробки прикладних програм у багатьох галузях на б?льшост? платформ.?нтерпретатор мови Python ? багата Стандартна б?бл?отека (як вих?дн? тексти, так ? б?нарн? дистрибутиви для вс?х основних операц?йних систем) можуть бути отриман? з сайту Python , ? можуть в?льно розповсюджуватися. Цей самий сайт ма? дистрибутиви та посилання на численн? модул?, програми, утил?ти та додаткову документац?ю.?нтерпретатор мови Python може бути розширений функц?ями та типами даних, розробленими на C чи C++ (або на ?нш?й мов?, яку можна викликати ?з C). Python також зручна як мова розширення для прикладних програм, що потребують подальшого налагодження.Саме через це для реал?зац?? само? модел? було обрано мову програмування Python. JavaFX - це програмна платформа для створення та редагування десктопних додатк?в, а також багатих ?нтернет-додатк?в (RIA), як? можуть працювати на р?зних пристроях. JavaFX призначений зам?нити Swing як стандартну б?бл?отеку граф?чних ?нтерфейс?в для Java SE. JavaFX п?дтриму? наст?льн? комп'ютери та веб-переглядач? в Microsoft Windows, Linux ? macOS. JavaFX б?льше не поставля?ться в комплект? з найнов?шою Java, ? в?н не буде п?дтримуватися Oracle, тод? як в?н все ще п?дтриму?ться для поточно? довгостроково? верс?? Java SE 8 до березня 2022 року.Вбудований веб-переглядач WebView в додатку п?дтриму? так? функц?? HTML5:- Канвас;- В?дтворення мед?а;- Форми контролю (кр?м <input type = "color">);- Редагований вм?ст;- ?стор?я обслуговування;- П?дтримка тег?в <meter> та <progress>;- П?дтримка тег?в <detail> та <summary>;- DOM;- MathML;- SVG.П?дтримка доменних ?мен, написаних нац?ональними мовами.Перед верс??ю 2.0 JavaFX розробники використовували статично набрану, декларативну мову п?д назвою JavaFX Script для створення JavaFX-додатк?в. Оск?льки скрипт JavaFX був скомп?льований до байт-коду Java, програм?сти могли також використовувати код Java. Програми JavaFX можуть працювати на будь-якому робочому стол?, який може запускати Java SE або будь-який моб?льний телефон, який може запустити Java ME.Саме для цього, аби отримати найзручн?шу та найб?льш функц?ональну платформу для створення десктопних додатк?в було використано останню верс?ю Java FX.3.2 Використання програмного продуктуП?сля запуску програми перед користувачем в?дкрива?ться головне в?кно програми (Рис. 3.1) з двома клав?шами та зоною результат?в.Рисунок 3.1 – Головне в?кно програмиДля того, аби розпочати роботу з додатком необх?дно обрати фотограф?ю, яка м?стить текст. За допомогою клав?ш? ?Обрати фотограф?ю? можна вибрати будь-який .jpg або .png файл, який м?стить текст, що необх?дно розп?знати (Рис. 3.2).Рисунок 3.2 – Виб?р фотограф?? для розп?знаванняП?сля того, як користувач обира? файл для розп?знавання, в?н знову потрапля? в головне в?кно програми, де вже в?добража?ться обрана ним фотограф?я (Рис 3.3).Рис 3.3 – Головне в?кно програми п?сля обраного файлу для розп?знавання.Дал?, для того, аби отримати результат роботи програмного продукту, необх?дно натиснути на клав?шу ?Розп?знати? ? почнеться процес розп?знавання рукописного чи друкованого тексту (Рис 3.4).Рисунок 3.4 – Результат роботи програмиП?сля того, як користувач отриму? результат, в?н може його скоп?ювати, видалити або виправити на св?й лад. Або можна запустити модель на розп?знавання нових файл?в.Проведення експеримент?в та анал?з отриманих результат?в.Для проведення експеримент?в я вир?шив розп?знавати текст у двох категор?ях для двох тип?в тексту: для розп?знавання 1-2 речень та для розп?знавання ц?ло? стор?нки тексту друкованих та рукописних текст?в. Ус? цифров? зн?мки проводилися з роздрукованих стор?нок, а не з цифрових пристро?в для того, аби покращити як?сть розп?знавання. Ус? текстов? прим?рники мали р?зн? шрифти, що дозволило оц?нити ун?версальн?сть даного програмного забезпечення.Результат розп?знавання малих частин рукописного текстуДля даного експерименту було взято 20 шматк?в тексту по одному – два реченню, записано к?льк?сть загальних символ?в та к?льк?сть неправильних символ?в ? з?брано в одну таблицю (Табл. 3.1).Таблиця 3.1 - Як?сть розп?знавання невеликих шматк?в тексту№ експериментуК-ть символ?вК-ть помилок% розп?знавання1107199,07294693,623126496,834119397,48597594,8568101007106595,28879297,4791101388,1810121595,8711102793,141295297,891399693,94Продовження таблиц? 3.1141081090,7415123695,1216105892,381796297,9218105397,1419103793,220121298,35П?сля отриманих результат?в можна зробити висновок, що система досить добре розп?зна? мал? шматки тексту ?з середн?м результатом трохи кращим за 95% (95,42). ? завжди показу? результат кращий за 85%. Тобто, систем? досить легко можна доручати мал? шматки тексту для розп?знавання, а п?сля цього надавати користувачу для того, аби в?н трохи зм?нював результати для отримання абсолютно правильних даних.3.3.2 Результат розп?знавання великих частин рукописного текстуДля даного експерименту було взято 20 шматк?в тексту по п?в стор?нки чи б?льше, записано к?льк?сть загальних символ?в та к?льк?сть неправильних символ?в ? з?брано в одну таблицю (Табл. 3.2).Таблиця 3.2 - Як?сть розп?знавання великих шматк?в тексту№ експериментуК-ть символ?вК-ть помилок% розп?знавання18941298,6626211897,1310234096,0948838190,83Продовження таблиц? 3.259015294,2368513895,547101511988,2886999786,1298905394,0410104516584,2111120718884,42126795192,491378416079,591482516580158946692,621690131565,041796818281,2188056192,42197108987,4620102119580,9П?сля отриманих результат?в можна зробити висновок, що система трохи г?рше розп?зна? велик? частини тексту ?з середн?м результатом трохи кращим за 88% (88,06). ? досить часто показу? результат кращий за 80%. Тобто, систем? можна доручати велик? шматки тексту, але обов’язково користувач ма? виправляти в?д 10 до 20 в?дсотк?в помилок для того, аби отримати правильний текст на виход?.Результат розп?знавання малих частин друкованого текстуДля даного експерименту було взято 20 шматк?в тексту по одному – два реченню, записано к?льк?сть загальних символ?в та к?льк?сть неправильних символ?в ? з?брано в одну таблицю (Табл. 3.3).Таблиця 3.3 - Як?сть розп?знавання невеликих шматк?в тексту№ експериментуК-ть символ?вК-ть помилок% розп?знавання1107199,07294297,873126298,414119397,48597198,93681010071060100879297,479110199,510121010011102496,251295292,781399296,8914108199,8515123199,9116105199,741796297,9218105010019103397,420121298,34П?сля отриманих результат?в можна зробити висновок, що система досить добре розп?зна? мал? шматки тексту ?з середн?м результатом трохи кращим за 98% (98,32). ? завжди показу? результат кращий за 95%. Тобто, систем? досить легко можна доручати мал? шматки тексту для розп?знавання, а п?сля цього надавати користувачу для того, аби в?н трохи зм?нював результати для отримання абсолютно правильних даних.Висновки до розд?луВ даному розд?л? було представлено обумовлення вибору засобу для створення додатку для розп?знавання символ?в. Описано найкращ? сторони використання обраних р?шень Описано весь програмний продукт та алгоритми його використання. Також були представлен? результати роботи програми, як? в?добразили, що система досить добре справля?ться з малими частинами рукописного тексту (95%) та друкованого тексту(98%) ? трохи г?рше справля?ться з великими (88%).РОЗД?Л 4 РОЗРОБЛЕННЯ СТАРТАП-ПРОЕКТУМетою даного розд?лу ? проведення маркетингового анал?зу стартап проекту для визначення принципово? можливост? його ринкового впровадження та можливих напрям?в реал?зац?? цього впровадження4.1 Опис ?де? проектуОпис ?де? стартап-проекту наведено у таблиц? 4.1Таблиця 4.1 - Опис ?де? стартап-проектуЗм?ст ?де?Напрямки застосуванняВигоди для користувачаСистема розп?знавання рукописного тексту на ус?х можливих поверхнях за допомогою нейронно? мереж?, що визнача? можлив? вар?анти л?тер за рахунок алгоритму донавчання мереж?.1. Розп?знавання старих документ?в ф?нансового зм?стуОтримання старих документ?в ф?нансового зм?сту для подальшого застосування2. Розп?знавання юридичних договор?вОтримання старих юридичних договор?в для подальшого застосування3. Розп?знавання документ?в особистого призначенняОтримання старих (спадкових) документ?в для подальшого застосування4. Розп?знавання ?сторичних документ?вОтримання ?сторичних документ?в для подальшого визначення ? застосування в певних ?сторичних задачах.У таблиц? 4.2 наведено сильн?, слабк? та нейтральн? характеристики ?де? проекту.Таблиця 4.2 - Визначення сильних, слабких та нейтральних характеристик ?де? проектуТехн?ко-економ?чн?характерис-тики ?де?Пор?вняння концепц?? проекту з продуктами можливих конкурент?вW(слабкасторона)N(нейтра-льнасторона)S(сильнасторона)№п/пМ?йпроектКонкурент 1Конкурент 2Конкурент 31.Форма використанняДесктоп + моб?льний додатокВебДесктопМоб?льний кл??нт + веб+2.Соб?варт?стьНизькаСередняСередняВисока+3.Наявн?сть ?нтернету-++++4Крос-платформен?сть+/-+-++4.2 Технолог?чний аудит ?де? проектуТехнолог?чну зд?йсненн?сть ?дей проекту наведено у таблиц? 4.3Таблиця 4.3 - Технолог?чна зд?йсненн?сть ?де? проекту№ п/п?дея проектуТехнолог?? ?? реал?зац??Наявн?сть технолог?йДоступн?сть технолог?й1Створення веб-додаткуFlashНаявнаПлатна, недоступнаJava-appletsНаявнаБезкоштовна, доступнаASP .NETНаявнаБезкоштовна, доступна2Створення моб?льного додаткуAndroidНаявнаБезкоштовна, доступнаiOSНаявнаПлатна, недоступна3Створення десктоп верс?? додаткуJava FXНаявнаБезкоштовна, доступнаPythonНаявнаБезкоштовна, доступнаОбрана технолог?я реал?зац?? ?де? проекту: Створення веб-додатку – Java тому що члени команди мають досв?д роботи а також через поширен?сть технолог?й та простот? розробки, моб?льного – Android бо безкоштовний а також пристро?в на ц??? ОС значно б?льше, створення десктоп верс?? додатку – Python тому що досить висока поширен?сть технолог?й.4.3 Анал?з ринкових можливостей запуску стартап-проектуПопередню характеристику потенц?йного ринку стартап-проекту наведено у таблиц? 4.4.Таблиця 4. SEQ Таблиця \* ARABIC 4 - Попередня характеристика потенц?йного ринку стартап-проекту№ п/пПоказники стану ринку (найменування)Характеристика1К?льк?сть головних гравц?в, од42Загальний обсяг продаж, грн/ум.од1 000 0003Динам?ка ринку (як?сна оц?нка)Стагну?4Наявн?сть обмежень для входу (вказати характер обмежень)Висока точн?сть розп?знавання5Специф?чн? вимоги до стандартизац?? та сертиф?кац??Нема?6Середня норма рентабельност? в галуз? (або по ринку), %50Характеристику потенц?йних кл??нт?в стартап-проекту наведено у таблиц? 4.5Таблиця 4. SEQ Таблиця \* ARABIC 5 - Характеристика потенц?йних кл??нт?в стартап-проекту№ п/пПотреба, що форму? ринокЦ?льова аудитор?я (ц?льов? сегменти ринку)В?дм?нност? у повед?нц? р?зних потенц?йних ц?льових груп кл??нт?вВимоги споживач?в до товару1Розп?знавання документ?в ф?нансового, ?сторичного та юридичного спрямування з метою визначення абсолютного точного зм?сту документ?в.Середн?й та великий б?знесВеликому б?знесу також необх?дно мати можлив?сть розп?знавати будь-як? документи р?зного спрямування.Камера з надвисокою розд?льною здатн?стю для забезпечення точно? дефрагментац?? зображення.2Розп?знавання документ?в особистого призначенняДр?бний б?знесДр?бний б?знес також повинен оцифровувати сво? записи для зручного подальшого проведення анал?зу сильних ? слабких стор?н.Камера з високою розд?льною здатн?стю для забезпечення точно? дефрагментац?? зображення.Фактори загроз наведено у таблиц? 4.6.Таблиця 4.6 - Фактори загроз№ п/пФакторЗм?ст загрозиМожлива реакц?я компан??1В?дсутн?сть попитуБ?знес може не оц?нити переваги продукту, або ж у ц?лому в?дмовитися в?д оцифрац?? документ?вАкцентувати увагу на кл??нтах, що вже скористалися продуктом, якщо так? ?, навести ?нфограф?ку результативност? (оч?кувану), запропонувати знижку потенц?йному кл??нту в рамках тендеру.2Неточне розп?знаванняДефекти та особливост? написання певних ос?б можуть привести до неточностей у текстов?й ?нтерпретац?? документ?в.Розробка ? випуск оновлення розп?знавального пакету, де виправлена ця проблема.Фактори можливостей наведено у таблиц? 4.7.Таблиця 4.7 - Фактори можливостей№ п/пФакторЗм?ст можливост?Можлива реакц?я компан??1Кобренд?нгПропозиц?я в?д певно? компан??, що спец?ал?зу?ться на системах розп?знавання текстових рукописних документ?в, розробити сп?льний продуктВид?лення частини штату на реал?зац?ю проекту, п?дготовка акц?йних пропозиц?й по переходу на новий продукт ?снуючим кл??нтам. У таблиц? 4.8 наведено ступеневий анал?з конкуренц?? на ринку.Таблиця 4.8 - Ступеневий анал?з конкуренц?? на ринкуОсобливост? конкурентного середовищаВ чому проявля?ться дана характеристикаВплив на д?яльн?сть п?дпри?мства (можлив? д?? компан??, щоб бути конкурентоспроможною)1. Чиста конкуренц?яГравц? ринку не мають явних переваг один над однимБ?льш виг?дн? умови на тендерах, агресивний маркетинг2. Рег?ональна конкуренц?яГравц? ринку – ?нтернац?ональн? п?дпри?мстваВих?д на т? ринки, як? ще не зайнят? конкурентами3. Внутр?шньогалузева конкуренц?яГравц? ринку знаходяться в одн?й галуз? – розробц? ПЗ4. Товарно-видова конкуренц?яУс? продукти гравц?в ринку мають одне призначенняРозробка найб?льш ?нту?тивного ?нтерфейсу, розробка ун?кальних пакет?в розп?знавання текстових документ?в, оптим?зац?я алгоритм?в (щоб анал?з проходив швидше, н?ж у конкурент?в)5. Конкурентн? переваги нец?нов?Продукти в?др?зняються гнучк?стю, функц?оналом (незначно) ? над?йн?стю.У маркетингу неявно пор?внювати власний продукт з ?ншими, робити виг?дн? ц?нов? пропозиц??6. Марочна конкуренц?яЗначна увага прид?ля?ться бренду, що розробив продуктКобренд?нгУ таблиц? 4.9 наведено анал?з конкуренц?? в галуз? за М. Портером.Таблиця 4.9 - Анал?з конкуренц?? в галуз? за М. ПортеромСкладов? анал?зуПрям? конкуренти в галуз?Потенц?йн? конкурентиПостачальникиКл??нтиТовари-зам?нникиABBYY FineReader, OmniPage, Readiris , Persian Reader, KirtasДля входження на ринок продукт ма? швидко ? достов?рно виконувати поставлен? задач?В?д зростання к?лькост? постачальник?в незначно зростуть продаж?Споживач? замовлюють додатков? модул? до програмного продуктуЗам?нником товару може стати ведення текстових запис?в п?д час нарадВисновки:Продукти сп?в?снують незалежно ? явно не конкуруютьФормально, аналог?чного продукту на ринку нема?, тож можлив?сть виходу на ринок ?.Умовою виходу на ринок ? система, що однозначно визначатиме рукописний текст також швидко ? точно розп?знаватиме ?х мовлення ? виводитиме його в текстов?й форм?.Терм?н виходу на ринок – 1 р?кПостачальники не диктують умови роботи на ринку.Кл??нти диктують умови лише для додаткових модул?в, що розроблюються для них. Наприклад, замовник може не захот?ти, щоб модуль, розроблений для нього, пропонувався ?ншим замовникамДля того, щоб потенц?йний кл??нт обрав саме цей продукт, необх?дно, щоб в?н був максимально простий, швидкий ? над?йний у використанн?, а також був гнучким ? маштабованим.У таблиц? 4.10 наведено об?рунтування фактор?в конкурентоспроможност?.Таблиця 4.10 - Об?рунтування фактор?в конкурентоспроможност?№ п/пФактор конкурентоспроможност?Об?рунтування (наведення чинник?в, що роблять фактор для пор?вняння конкурентних проект?в значущим)1.?нтеграц?яПродукт може бути використаний абсолютно в любому прим?щенн? за умови наявност? камери з високою розд?льно? здатн?стю. Продукт не потребу? встановлення будь-якого ?ншого спец?ал?зованого ПЗ чи придбання спец?ал?зованого апаратного забезпечення.2.Модульн?стьКожен замовник ?ндив?дуально обира? мовленн?в? пакети для себе, при цьому не втрачаючи можлив?сть докупити ?нш? пакети в майбутньому3.Гнучк?стьКожен замовник ма? можлив?сть замовити розширення функц?оналу продукту п?д його конкретн? задач?4.Розд?лення ос?бПродукт автоматично розпод?ля? базов? слова на ус?х мовах таблиц? 4.11 наведено пор?вняльний анал?з сильних та слабких стор?н Таблиця 4.11 - Пор?вняльний анал?з сильних та слабких стор?н№ п/пФактор конкурентоспроможност?Бали 1-20Рейтинг товар?в-конкурент?в у пор?внянн? з ABBYY Fine Reader–3–2–10+1+2+31.?нтеграц?я*2.Модульн?сть*3.Гнучк?сть*4.Розд?лення ос?б*У таблиц? 4.12 наведено SWOT- анал?з стартап-проекту.Таблиця 4.12 - SWOT- анал?з стартап-проектуСильн? сторони: Розд?лення рукописних символ?в на слова, багатомовн?сть, гнучк?стьСлабк? сторони: ?нтеграц?я обмежена необх?дн?стю наявност? ПК/Сервера з ОС ?Windows?.Можливост?: Кобренд?нгЗагрози: Неточн?сть розп?знавання, в?дсутн?сть попитутаблиц? 4.13 наведено альтернативи ринкового впровадження стартап-проекту.Таблиця 4.13 - Альтернативи ринкового впровадження стартап-проекту№ п/пАльтернатива (ор??нтовний комплекс заход?в) ринково? повед?нкиЙмов?рн?сть отримання ресурс?вСтроки реал?зац??1.Реал?зац?я можливост? використання системи для автоматичного переведення рукописного тексту одразу в цифровий форматСередня0,7 року2.Створення багатокомпонентного вар?анту системи для розп?знавання м?ж дек?лькома р?зними об’?ктамиВисока9 м?сяц?вОбира?мо альтернативу 2, тому що вона ма? б?льшу ймов?рн?сть отримання ресурс?в та менший час реал?зац??.П?сля анал?зу зазначити обрану альтернативу.З означених альтернатив обира?ться та, для яко?: а) отримання ресурс?в ? б?льш простим та ймов?рним; б) строки реал?зац?? – б?льш стислими.4.4 Розроблення ринково? стратег?? проектуУ таблиц? 4.14 наведено виб?р ц?льових груп потенц?йних споживач?Таблиця 4.14 - Виб?р ц?льових груп потенц?йних споживач?в№ п/пОпис проф?лю ц?льово? групи потенц?йних кл??нт?вГотовн?сть споживач?в прийняти продуктОр??нтований попит в межах ц?льово? групи (сегменту)?нтенсивн?сть конкуренц?? в сегмент?Простота входу у сегмент1.Люди з техн?чною осв?тою, що мають схильн?сть та ентуз?азм до покращення робочих процес?вКритичним ? ?нтеграц?я з ?ншими серв?сами, можлив?сть використання сторонн?х пристро?вКонтроль параметр?в прим?щення, автоматизац?я процес?в?сну? 4 конкуренти, як? надають схож? р?шення. До того ж – лише 1 конкурент нада? веб та моб?льний додатки.У сегмент ув?йти просто, необх?дно лише надати можлив?сть до зручного встановлення додатк?в.2.Люди, як? мають достатньо кошт?в ? небайдуж? до впровадження нових р?шеньКритичним ? прост?й та зарозум?лий ?нтерфейсКонтроль параметр?в прим?щеньМаючи простий та зрозум?лий ?нтерфейс, вийти на ринок не складно.3.Люди, як? хочуть економити на оцифрац?? документ?вКритичним ? велика ц?на та ефективн?сть витрат.Автоматизац?я процес?вСкладно, необх?дн? складн? механ?зми енергоефективност?Як? ц?льов? групи обрано: групи 1 або 2У таблиц? 4.15 наведено визначення базово? стратег?? розвитку.Таблиця 4.15 - Визначення базово? стратег?? розвитку№ п/пОбрана альтернатива розвитку проектуСтратег?я охоплення ринкуКлючов? конкурентноспроможн? позиц?? в?дпов?дно до обрано? альтернативиБазов? стратег?? розвитку1Використання веб-додатку для швидко? та зручно? роботиРинкове позиц?юванняПростота використання, пришвидшення роботи, кросплатформен?стьДиференц?ац??У таблиц? 4.16 наведено визначення базово? стратег?? конкурентно? повед?нки. Таблиця 4.16 - Визначення базово? стратег?? конкурентно? повед?нки№ п/пЧи ? проект ?першопрох?дцем? на ринку?Чи буде компан?я шукати нових споживач?в або забирати ?снуючих у конкурент?в?Чи буде компан?я коп?ювати основн? характеристики товару конкурента, ? як??Стратег?я конкурентно? повед?нки1.Н?ТакБуде, наявн?сть як веб, так ? моб?льного додаткуЗайняття конкурентно? н?ш?У таблиц? 4.17 наведено визначення стратег?? позиц?онування.Таблиця 4.17 - Визначення стратег?? позиц?онування№ п/пВимоги до ц?льово? аудитор??Базова стратег?я розвиткуКлючов? конкурентноспроможн? позиц?? власного стартап-проектуВиб?р асо?ац?й, як? мають сформувати комплексну позиц?ю власного проекту (три ключових)1.Простота ?нтерфейсу, можлив?сть кастом?зац?? системиДиференц?ац??Простота користувацького ?нтерфейсу, що дозволя? спростити роботу з системою, можлив?сть кастом?зац??, що вимага? наявн?сть можливост? роботи з сторонн?ми системами та пристроямиКастом?зац?я, простота, гнучк?сть4.5 Розроблення маркетингово? програми стартап-проектуУ таблиц? 4.18 наведено визначення ключових переваг концепц?? потенц?йного товару.Таблиця 4.18 - Визначення ключових переваг концепц?? потенц?йного товару№ п/пПотребаВигода, яку пропону? товарКлючов? переваги перед конкурентами (?снуюч? або так?, що потр?бно створити)1.Кастом?зац?яМожлив?сть ?нтеграц?? з ?ншими системамиМожлив?сть роботи з модулями ?нших систем та пристроями2.Простота ?нтерфейсуПростота та зручн?стьКористувачам не потр?бно замислюватися над тим, як працювати з системоюУ таблиц? 4.19 наведено опис трьох р?вн?в модел? товару.Таблиця 4.19 - Опис трьох р?вн?в модел? товаруР?вн? товаруСутн?сть та складов?1. Товар за задумомОб’?кт дозволя? користувачам налаштувати параметри розп?знавання рукописного тексту 2. Товар у реальному виконанн?Властивост?/характеристикиМ/НмВр/Тх /Тл/Е/ОрНаявн?сть веб-додаткуНаявн?сть моб?льного додатку?нтеграц?я з ?ншими серв?самиПростота використання--Як?сть: зг?дно до стандарту ISO 29119 буде проведено тестуванняМаркування присутн?Моя компан?я ?Баляс ЛТД?3. Товар ?з п?дкр?пленнямВ?дсутня п?дтримка до продажуПост?йна п?дтримка для користувач?в п?сля продажуЗа рахунок чого потенц?йний товар буде захищено в?д коп?ювання: ноу-хау.У таблиц? 4.20 наведено визначення меж встановлення ц?ни.Таблиця 4.20 - Визначення меж встановлення ц?ни№ п/пР?вень ц?н на товари-зам?нникиР?вень ц?н на товари-аналогиР?вень доход?в ц?льово? групи споживач?вВерхня та нижня меж? встановлення ц?ни на товар/послугу160008000250005000У таблиц? 4.21 наведено формування системи збуту.Таблиця 4.21 - Формування системи збуту№ п/пСпециф?ка закуп?вельно? повед?нки ц?льових кл??нт?вФункц?? збуту, як? ма? виконувати постачальник товаруГлибина каналу збутуОптимальна система збуту1.Куп?вля програмного забезпеченняПродаж0 (напряму),1 (через одного посередника)Власна та через посередник?вУ таблиц? 4.22 наведено концепц?я маркетингових комун?кац?й.Таблиця 4.22 - Концепц?я маркетингових комун?кац?й№ п/пСпециф?ка повед?нки ц?льових кл??нт?вКанали комун?кац?й, якими користуються ц?льов? кл??нтиКлючов? позиц??, обран? для позиц?онуванняЗавдання рекламного пов?домленняКонцепц?я рекламного звернення1Замовлення через ?нтернет.?нтернетМожлив?сть кастом?зац?й, наявн?сть десктоп та моб?льного додатку, простота ?нтерфейсуПоказати переваги ПЗ, у тому числ? ? перед конкурентамиДемо-ролик ?з алгоритмом використанняВисновки до розд?луЗг?дно до проведених досл?джень:?сну? можлив?сть ринково? комерц?ал?зац?? проекту;?снують перспективи впровадження з огляду на потенц?йн? групи кл??нт?в, бар’?ри входження не ? високими, проект ма? дв? значн? переваги перед конкурентами;необх?дно реал?зувати десктоп додаток та моб?льний додаток подальша ?мплементац?я ? доц?льною.ВИСНОВКИ ПО РОБОТ? ТА РЕКОМЕНДАЦ?? ДО ПОДАЛЬШИХ ДОСЛ?ДЖЕНЬУ дан?й робот? було розроблено програмний продукт для десктопних девайс?в, який дозволя? користувачев? розп?знавати посимвольно текст з п’яти р?зних мов за допомогою створено? модел? з залученням алгоритму динам?чного передбачення.Отримана система показала досить хорош? результати при розп?знаванн? тексту. Для фотограф?й, як? м?стили в соб? приблизно близько сотн? символ?в середн?й результат розп?знавання становив 95 в?дсотк?в, при чому, завжди м?н?мальний показник досягав значення б?льшого за 85 в?дсотк?в.Система досить добре справля?ться з малими частинами рукописного тексту (95%) та друкованого тексту(98%) ? трохи г?рше справля?ться з великими (88%).Подальшим досл?дженням для ц??? роботи могли б стати впровадження даного алгоритму для задач розп?знавання п?дпис?в.ПЕРЕЛ?К ПОСИЛАНЬHerbert F. The history of OCR, optical character recognition / Herbert F. Schntz – Manchester: Manchester Center, Vt., 1982 – 156 p.Timeline of OCR [Електронний ресурс] – 2018. – Режим доступу до ресурсу: Haven OnDemand[Електронний ресурс] – 2015. – Режим доступу до ресурсу: on Google Glass[Електронний ресурс] – 2014. – Режим доступу до ресурсу: Фомин, С. В. Математические проблемы в биологии / С. В. Фомин, М. Б. Беркинблит – М.: Наука, 1973 – 200 с.Розенблатт Ф. Принципы нейродинамики: Перцептроны и теория механизмов мозга / Френк Розенблат; пер. с англ. В.Я. Алтаева. — М.: Мир, 1965 — 480 с.Брюхомицкий Ю.А. Нейросетевые модели для систем информационной безопасности / Юрий Брюхомицкий — Таганрог: ТРТУ, 2005. — 160 с.Уоссермен Ф.?Нейрокомпьютерная техника: Теория и практика / Френсис Уоссермен; пер. с англ. В.Я.Алтаева. – М.:? Мир, 1992.?— 240?с.Y-H Pao Adaptive pattern recognition and neural network / Yan Hwoo Pao – Boston: Addison-Wesley, 1989 – 164 p.Ян Д. Е. Новая технология распознавания символов. Теория, практическая реализация, перспективы / Д. Е. Ян, К. В. Анисимович, А. Л. Шамис - М.: Препринт, 1995 – 180 с.Щепин Е.В. К топологическому подходу в анализе изображений. Геометрия, топология и приложения (Межвузовский сборник научных трудов)/ Е.В. Щепин, Г.М. Непомнящий – М.: Мир, 1990 – 315 c.А.В. Мисюрёв Использование искусственных нейронных сетей для распознавания рукопечатных символов / Александр Мисюрёв – М.: Эдиториал УРСС, 1998 – 142 c.ABBYY FineReader [Електронний ресурс] – 2018. – Режим доступу до ресурсу: Toward Predictive [Електронний ресурс] – 2018. – Режим доступу до ресурсу: Комп’ютерне моделювання систем процес?в [Електронний ресурс] – 2018. – Режим доступу до ресурсу: 'yuterne_modelyuvannya_system_procesiv/t2/24..htmKalman R.E. A new approach to linear filtering and prediction problems. Journal of Fluids Engineering / Kalman R.E. – Buffalo: ASME, 1960 – 50 p. Baum L. Statistical inference for probabilistic functions of finite state markov chains. The annals of mathematical statistics / Leonard E Baum, Ted Petrie – Beachwood: IMS, 1966 – 1630 p.The free-energy principle : a unified brain theory [Електронний ресурс] – 2010. – Режим доступу до ресурсу: as hypotheses : saccades as experiments. Frontiers in psychology [Електронний ресурс] – 2012. – Режим доступу до ресурсу: multi-view face detection. In Proc. of Computer Vision and Pattern Recognition. [Електронний ресурс] – 2003. – Режим доступу до ресурсу: modelling of visual attention. Nature reviews neuroscience [Електронний ресурс] – 2001. – Режим доступу до ресурсу: of a foveated image coding system for image bandwidth reduction. In Human Vision and Electronic Imaging [Електронний ресурс] – 2001. – Режим доступу до ресурсу: ДОДАТОК А ДЕМОНСТРАЦ?ЙН? МАТЕР?АЛИДОДАТОК Б Л?СТИНГ ПРОГРАМИimport Neuron.Hamming;import Neuron.HopfieldNET;import javafx.beans.value.ChangeListener;import javafx.beans.value.ObservableValue;import javafx.embed.swing.SwingFXUtils;import javafx.event.ActionEvent;import javafx.event.EventHandler;import javafx.fxml.FXML;import javafx.scene.control.TextArea;import javafx.scene.control.TextField;import javafx.scene.image.Image;import javafx.scene.image.ImageView;import javafx.stage.FileChooser;import net.sourceforge.tess4j.Tesseract;import net.sourceforge.tess4j.TesseractException;import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.util.logging.Level;import java.util.logging.Logger;public class Controller { @FXML public TextArea recognitionTextArea;// public TextField neuronCount; @FXML ImageView photoImage; Image image; String text = ""; File file; Tesseract instance; @FXML protected void choosePhoto(ActionEvent event) { FileChooser fileChooser = new FileChooser(); //Set extension filter FileChooser.ExtensionFilter extFilterJPG = new FileChooser.ExtensionFilter("JPG files (*.jpg)", "*.JPG"); FileChooser.ExtensionFilter extFilterPNG = new FileChooser.ExtensionFilter("PNG files (*.png)", "*.PNG"); fileChooser.getExtensionFilters().addAll(extFilterJPG, extFilterPNG); //Show open file dialog file = fileChooser.showOpenDialog(null); instance = Tesseract.getInstance(); instance.setDatapath("C:\\Users\\balya\\IdeaProjects\\TextRecognitionCourseWork\\Tess\\tessdata"); try { BufferedImage bufferedImage = ImageIO.read(file); image = SwingFXUtils.toFXImage(bufferedImage, null); photoImage.setImage(image); } catch (IOException ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } } public void hammingRecognition(ActionEvent actionEvent) { int neurons = 0; try { neurons = Integer.parseInt("10000"); } catch (NumberFormatException e) { e.printStackTrace(); } if (null != file && neurons > 0) { try { String result = instance.doOCR(file); Hamming hamming = new Hamming(); String hamResult = hamming.recognize(result); String last = hamming.setNeuronCount(neurons, hamResult); text += "\n" + last + "\n"; recognitionTextArea.setText(text); recognitionTextArea.appendText(""); } catch (TesseractException e) { System.err.println(e.getMessage()); } recognitionTextArea.textProperty().addListener(new ChangeListener<Object>() { @Override public void changed(ObservableValue<?> observable, Object oldValue, Object newValue) { recognitionTextArea.setScrollTop(Double.MAX_VALUE); } }); } }}public class Main extends Application { ImageView photoImage; @Override public void start(Stage primaryStage) throws Exception{ Parent root = FXMLLoader.load(getClass().getResource("sample.fxml")); primaryStage.setTitle("Balyas Diploma"); primaryStage.setScene(new Scene(root, 900, 675)); primaryStage.show(); } public static void main(String[] args) { launch(args); }}import sysimport tensorflow as tfclass DecoderType: BestPath = 0 BeamSearch = 1 WordBeamSearch = 2class Model: "minimalistic TF model for HTR" # model constants batchSize = 50 imgSize = (128, 32) maxTextLen = 32 def __init__(self, charList, decoderType=DecoderType.BestPath, mustRestore=False): "init model: add CNN, RNN and CTC and initialize TF" self.charList = charList self.decoderType = decoderType self.mustRestore = mustRestore self.snapID = 0 # CNN self.inputImgs = tf.placeholder(tf.float32, shape=(Model.batchSize, Model.imgSize[0], Model.imgSize[1])) cnnOut4d = self.setupCNN(self.inputImgs) # RNN rnnOut3d = self.setupRNN(cnnOut4d) # CTC (self.loss, self.decoder) = self.setupCTC(rnnOut3d) # optimizer for NN parameters self.batchesTrained = 0 self.learningRate = tf.placeholder(tf.float32, shape=[]) self.optimizer = tf.train.RMSPropOptimizer(self.learningRate).minimize(self.loss) # initialize TF (self.sess, self.saver) = self.setupTF() def setupCNN(self, cnnIn3d): "create CNN layers and return output of these layers" cnnIn4d = tf.expand_dims(input=cnnIn3d, axis=3) # list of parameters for the layers kernelVals = [5, 5, 3, 3, 3] featureVals = [1, 32, 64, 128, 128, 256] strideVals = poolVals = [(2, 2), (2, 2), (1, 2), (1, 2), (1, 2)] numLayers = len(strideVals) # create layers pool = cnnIn4d # input to first CNN layer for i in range(numLayers): kernel = tf.Variable( tf.truncated_normal([kernelVals[i], kernelVals[i], featureVals[i], featureVals[i + 1]], stddev=0.1)) conv = tf.nn.conv2d(pool, kernel, padding='SAME', strides=(1, 1, 1, 1)) relu = tf.nn.relu(conv) pool = tf.nn.max_pool(relu, (1, poolVals[i][0], poolVals[i][1], 1), (1, strideVals[i][0], strideVals[i][1], 1), 'VALID') return pool def setupRNN(self, rnnIn4d): "create RNN layers and return output of these layers" rnnIn3d = tf.squeeze(rnnIn4d, axis=[2]) # basic cells which is used to build RNN numHidden = 256 cells = [tf.contrib.rnn.LSTMCell(num_units=numHidden, state_is_tuple=True) for _ in range(2)] # 2 layers # stack basic cells stacked = tf.contrib.rnn.MultiRNNCell(cells, state_is_tuple=True) # bidirectional RNN # BxTxF -> BxTx2H ((fw, bw), _) = tf.nn.bidirectional_dynamic_rnn(cell_fw=stacked, cell_bw=stacked, inputs=rnnIn3d, dtype=rnnIn3d.dtype) # BxTxH + BxTxH -> BxTx2H -> BxTx1X2H concat = tf.expand_dims(tf.concat([fw, bw], 2), 2) # project output to chars (including blank): BxTx1x2H -> BxTx1xC -> BxTxC kernel = tf.Variable(tf.truncated_normal([1, 1, numHidden * 2, len(self.charList) + 1], stddev=0.1)) return tf.squeeze(tf.nn.atrous_conv2d(value=concat, filters=kernel, rate=1, padding='SAME'), axis=[2]) def setupCTC(self, ctcIn3d): "create CTC loss and decoder and return them" # BxTxC -> TxBxC ctcIn3dTBC = tf.transpose(ctcIn3d, [1, 0, 2]) # ground truth text as sparse tensor self.gtTexts = tf.SparseTensor(tf.placeholder(tf.int64, shape=[None, 2]), tf.placeholder(tf.int32, [None]), tf.placeholder(tf.int64, [2])) # calc loss for batch self.seqLen = tf.placeholder(tf.int32, [None]) loss = tf.nn.ctc_loss(labels=self.gtTexts, inputs=ctcIn3dTBC, sequence_length=self.seqLen, ctc_merge_repeated=True) # decoder: either best path decoding or beam search decoding if self.decoderType == DecoderType.BestPath: decoder = tf.nn.ctc_greedy_decoder(inputs=ctcIn3dTBC, sequence_length=self.seqLen) elif self.decoderType == DecoderType.BeamSearch: decoder = tf.nn.ctc_beam_search_decoder(inputs=ctcIn3dTBC, sequence_length=self.seqLen, beam_width=50, merge_repeated=False) elif self.decoderType == DecoderType.WordBeamSearch: # import compiled word beam search operation (see ) word_beam_search_module = tf.load_op_library('TFWordBeamSearch.so') # prepare information about language (dictionary, characters in dataset, characters forming words) chars = str().join(self.charList) wordChars = open('../model/wordCharList.txt').read().splitlines()[0] corpus = open('../data/corpus.txt').read() # decode using the "Words" mode of word beam search decoder = word_beam_search_module.word_beam_search(tf.nn.softmax(ctcIn3dTBC, dim=2), 50, 'Words', 0.0, corpus.encode('utf8'), chars.encode('utf8'), wordChars.encode('utf8')) # return a CTC operation to compute the loss and a CTC operation to decode the RNN output return (tf.reduce_mean(loss), decoder) def setupTF(self): "initialize TF" print('Python: ' + sys.version) print('Tensorflow: ' + tf.__version__) sess = tf.Session() # TF session saver = tf.train.Saver(max_to_keep=1) # saver saves model to file modelDir = '../model/' latestSnapshot = tf.train.latest_checkpoint(modelDir) # is there a saved model? # if model must be restored (for inference), there must be a snapshot if self.mustRestore and not latestSnapshot: raise Exception('No saved model found in: ' + modelDir) # load saved model if available if latestSnapshot: print('Init with stored values from ' + latestSnapshot) saver.restore(sess, latestSnapshot) else: print('Init with new values') sess.run(tf.global_variables_initializer()) return (sess, saver) def toSparse(self, texts): "put ground truth texts into sparse tensor for ctc_loss" indices = [] values = [] shape = [len(texts), 0] # last entry must be max(labelList[i]) # go over all texts for (batchElement, text) in enumerate(texts): # convert to string of label (i.e. class-ids) labelStr = [self.charList.index(c) for c in text] # sparse tensor must have size of max. label-string if len(labelStr) > shape[1]: shape[1] = len(labelStr) # put each label into sparse tensor for (i, label) in enumerate(labelStr): indices.append([batchElement, i]) values.append(label) return (indices, values, shape) def decoderOutputToText(self, ctcOutput): "extract texts from output of CTC decoder" # contains string of labels for each batch element encodedLabelStrs = [[] for i in range(Model.batchSize)] # word beam search: label strings terminated by blank if self.decoderType == DecoderType.WordBeamSearch: blank = len(self.charList) for b in range(Model.batchSize): for label in ctcOutput[b]: if label == blank: break encodedLabelStrs[b].append(label) # TF decoders: label strings are contained in sparse tensor else: # ctc returns tuple, first element is SparseTensor decoded = ctcOutput[0][0] # go over all indices and save mapping: batch -> values idxDict = {b: [] for b in range(Model.batchSize)} for (idx, idx2d) in enumerate(decoded.indices): label = decoded.values[idx] batchElement = idx2d[0] # index according to [b,t] encodedLabelStrs[batchElement].append(label) # map labels to chars for all batch elements return [str().join([self.charList[c] for c in labelStr]) for labelStr in encodedLabelStrs] def trainBatch(self, batch): "feed a batch into the NN to train it" sparse = self.toSparse(batch.gtTexts) rate = 0.01 if self.batchesTrained < 10 else ( 0.001 if self.batchesTrained < 10000 else 0.0001) # decay learning rate (_, lossVal) = self.sess.run([self.optimizer, self.loss], {self.inputImgs: batch.imgs, self.gtTexts: sparse, self.seqLen: [Model.maxTextLen] * Model.batchSize, self.learningRate: rate}) self.batchesTrained += 1 return lossVal def inferBatch(self, batch): "feed a batch into the NN to recngnize the texts" decoded = self.sess.run(self.decoder, {self.inputImgs: batch.imgs, self.seqLen: [Model.maxTextLen] * Model.batchSize}) return self.decoderOutputToText(decoded) def save(self): "save model to file" self.snapID += 1 self.saver.save(self.sess, '../model/snapshot', global_step=self.snapID)import sysimport argparseimport cv2import editdistancefrom src.DataLoader import DataLoader, Batchfrom src.Model import Model, DecoderTypefrom src.SamplePreprocessor import preprocessimport osos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'class FilePaths: "filenames and paths to data" fnCharList = '../model/charList.txt' fnAccuracy = '../model/accuracy.txt' fnTrain = '../data/' fnInfer = '../data/test.png' fnCorpus = '../data/corpus.txt'def train(model, loader): "train NN" epoch = 0 # number of training epochs since start bestCharErrorRate = float('inf') # best valdiation character error rate noImprovementSince = 0 # number of epochs no improvement of character error rate occured earlyStopping = 5 # stop training after this number of epochs without improvement while True: epoch += 1 print('Epoch:', epoch) # train print('Train NN') loader.trainSet() while loader.hasNext(): iterInfo = loader.getIteratorInfo() batch = loader.getNext() loss = model.trainBatch(batch) print('Batch:', iterInfo[0], '/', iterInfo[1], 'Loss:', loss) # validate charErrorRate = validate(model, loader) # if best validation accuracy so far, save model parameters if charErrorRate < bestCharErrorRate: print('Character error rate improved, save model') bestCharErrorRate = charErrorRate noImprovementSince = 0 model.save() open(FilePaths.fnAccuracy, 'w').write( 'Validation character error rate of saved model: %f%%' % (charErrorRate * 100.0)) else: print('Character error rate not improved') noImprovementSince += 1 # stop training if no more improvement in the last x epochs if noImprovementSince >= earlyStopping: print('No more improvement since %d epochs. Training stopped.' % earlyStopping) breakdef validate(model, loader): "validate NN" print('Validate NN') loader.validationSet() numCharErr = 0 numCharTotal = 0 numWordOK = 0 numWordTotal = 0 while loader.hasNext(): iterInfo = loader.getIteratorInfo() print('Batch:', iterInfo[0], '/', iterInfo[1]) batch = loader.getNext() recognized = model.inferBatch(batch) print('Ground truth -> Recognized') for i in range(len(recognized)): numWordOK += 1 if batch.gtTexts[i] == recognized[i] else 0 numWordTotal += 1 dist = editdistance.eval(recognized[i], batch.gtTexts[i]) numCharErr += dist numCharTotal += len(batch.gtTexts[i]) print('[OK]' if dist == 0 else '[ERR:%d]' % dist, '"' + batch.gtTexts[i] + '"', '->', '"' + recognized[i] + '"') # print validation result charErrorRate = numCharErr / numCharTotal wordAccuracy = numWordOK / numWordTotal print('Character error rate: %f%%. Word accuracy: %f%%.' % (charErrorRate * 100.0, wordAccuracy * 100.0)) return charErrorRatedef infer(model, fnImg): "recognize text in image provided by file path" img = preprocess(cv2.imread(fnImg, cv2.IMREAD_GRAYSCALE), Model.imgSize) batch = Batch(None, [img] * Model.batchSize) # fill all batch elements with same input image recognized = model.inferBatch(batch) # recognize text print('Recognized:', '"' + recognized[0] + '"') # all batch elements hold same resultdef main(): "main function" # optional command line args parser = argparse.ArgumentParser() parser.add_argument("--train", help="train the NN", action="store_true") parser.add_argument("--validate", help="validate the NN", action="store_true") parser.add_argument("--beamsearch", help="use beam search instead of best path decoding", action="store_true") parser.add_argument("--wordbeamsearch", help="use word beam search instead of best path decoding", action="store_true") args = parser.parse_args() decoderType = DecoderType.BestPath if args.beamsearch: decoderType = DecoderType.BeamSearch elif args.wordbeamsearch: decoderType = DecoderType.WordBeamSearch # train or validate on IAM dataset if args.train or args.validate: # load training data, create TF model loader = DataLoader(FilePaths.fnTrain, Model.batchSize, Model.imgSize, Model.maxTextLen) # save characters of model for inference mode open(FilePaths.fnCharList, 'w').write(str().join(loader.charList)) # save words contained in dataset into file open(FilePaths.fnCorpus, 'w').write(str(' ').join(loader.trainWords + loader.validationWords)) # execute training or validation if args.train: model = Model(loader.charList, decoderType) train(model, loader) elif args.validate: model = Model(loader.charList, decoderType, mustRestore=True) validate(model, loader) # infer text on test image else: print(open(FilePaths.fnAccuracy).read()) model = Model(open(FilePaths.fnCharList).read(), decoderType, mustRestore=True) infer(model, FilePaths.fnInfer)if __name__ == '__main__': main() ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download