Ela.kpi.ua



НАЦ?ОНАЛЬНИЙ ТЕХН?ЧНИЙ УН?ВЕРСИТЕТ УКРА?НИ?КИ?ВСЬКИЙ ПОЛ?ТЕХН?ЧНИЙ ?НСТИТУТ ?МЕН? ?ГОРЯ С?КОРСЬКОГО??НСТИТУТ ПРИКЛАДНОГО СИСТЕМНОГО АНАЛ?ЗУКАФЕДРА МАТЕМАТИЧНИХ МЕТОД?В СИСТЕМНОГО АНАЛ?ЗУНа правах рукописуДо захисту допущеноУДК 004.932.4 В. о. зав?дувача кафедри ММСАО.Л.Тимощук?___? ____________ 2019 р.Маг?стерська дисертац?яна здобуття ступеня маг?стра за спец?альн?стю 122 Комп’ютерн? науки на тему: ?Cистема вiзуального тестування?Виконав: студент ?? курсу, групи КА-83 мпАбiбула?в ?вген Олексiйович____________Кер?вник: доцент кафедри ММСА,к.т.н, доц. Дiдковська М.В.____________Рецензент: Доц кафедри ПЗКС, к.т.н., доц. Заболотня Т.М.____________Засв?дчую, що у ц?й маг?стерськ?й дисертац??нема? запозичень з праць ?нших автор?вбез в?дпов?дних посиланьСтудент ____________Ки?в2019НАЦ?ОНАЛЬНИЙ ТЕХН?ЧНИЙ УН?ВЕРСИТЕТ УКРА?НИ?КИ?ВСЬКИЙ ПОЛ?ТЕХН?ЧНИЙ ?НСТИТУТ ?МЕН? ?ГОРЯ С?КОРСЬКОГО??НСТИТУТ ПРИКЛАДНОГО СИСТЕМНОГО АНАЛ?ЗУКАФЕДРА МАТЕМАТИЧНИХ МЕТОД?В СИСТЕМНОГО АНАЛ?ЗУР?вень вищо? осв?ти— другий (маг?стерський)Спец?альн?сть— 122 ?Комп’ютерн? науки?ЗАТВЕРДЖУЮВ. о. зав?дувача кафедри ММСАО. Л. Тимощук?___? ____________ 2019 р.ЗАВДАННЯна маг?стерську дисертац?ю студента Аб?була?ва ?вгена Олекс?йовича1. Тема дисертац??: ?Система в?зуального тестування?, науковий кер?вник дисертац?? Д?дковська Марина В?тал??вна, к.ф.-м.н., доцент, затверджен? наказом по ун?верситету в?д ?___? _________ № ______2. Терм?н подання студентом дисертац??: 13 грудня 2019 р.3. Об’?кт досл?дження: Зображення, методи для ?х анал?зу та пор?вняння4. Предмет досл?дження: методи машинного навчання, як? застосовуються в задачах в?зуального тестування5. Перел?к завдань, як? потр?бно розробити:1) досл?дити сучасний стан та особливост? застосування метод?в машинного навчання у вир?шенн? проблеми в?зуального тестування;2) розробити систему в?зуального тестування на основ? згортково? нейронно? мереж?;3) досл?дити модель та на ?? основ? створити програмний продукт;4) пошук даних для застосування в програм?;5) розробити стартап-проект виведення на ринок результат?в досл?дження;6) розробити концептуальн? висновки за результатами наукового досл?дження6. Ор??нтовний перел?к граф?чного (?люстративного) матер?алу:1). Приклад вх?дного зображення для в?зуального тестування та проблеми ?снуючих метод?в (рис.);2). Детальний опис проблем, з якими стикаються при автоматизованому в?зуальному тестуванн?(рис.);3). Схема побудовано? системи(рис.);4). Приклади функц?онування створеного програмного продукту (рис.);5). Таблиц? у розд?л? стартап-проекту7. Ор??нтовний перел?к публ?кац?й: Публ?кац?я науково? статт? у фаховому журнал? ?Системн? досл?дження та ?нформац?йн? технолог???: Вир?шення проблеми згладжування шрифт?в за допомогою метод?в машинного навчання8. Дата видач? завдання: 05 вересня 2019 р.Календарний план№ з/пНазва етап?в виконання маг?стерсько? дисертац??Терм?н виконання етап?в маг?стерсько? дисертац??1.Концептуальний вступ дисертац??. Формулювання об’?кта, предмета, ц?л?, завдань, новизни, практично? значущост? результат?в05.09.2019—13.09.20192.Перший розд?л. Огляд л?тературно-?нформац?йних джерел. Понят?йно-категор?альний апарат. Характеристика об’?кта16.09.2019—27.09.20193.Другий розд?л. Розгляд ?снуючих метод?в для анал?зу та обробц? зображень та тексту30.09.2019—18.09.20194.Трет?й розд?л. ?мплементац?я отриманих результат?в у програмний продукт. Тестування програми21.10.2019—15.11.20195.Четвертий розд?л. Стартап-проект18.11.2019—21.11.20196.Концептуальн? висновки. Перспективи розвитку отриманих р?шень22.11.2019—26.11.2019Студент ?.О.Аб?була?вНауковий кер?вник дисертац??М.В.Д?дковськаРЕФЕРАТМаг?стерська дисертац?я: 68 с., 12 рис., 25 табл., 18 джерел. Зд?йснено пор?вняльний анал?з р?зних п?дход?в пор?вняння зображень як складово? запропоновано? автоматизовано? системи п?дтримки прийняття р?шень для проведення автоматизованого в?зуального тестування. Метою запропоновано? системи ? з?ставлення зображень та знаходження в?дм?нностей в стил?, для п?двищення якост? системи в?зуального тестування.Предметом досл?дження ? побудування системи в?зуального тестування з допомогою метод?в машинного навчання. Об’?ктом досл?дження ? зображення ?нтерфейсу, отриман? в ход? роботи ?нших програм.Система проводить тестування в дек?лька етап?в: вид?лення тексту, пор?вняння зображення без тексту, пор?вняння тексту та отримання загального результату. Згорткова нейронна мережа да? змогу вид?лити текст на зображенн? та провести класиф?кац?ю вид?леного тексту. Ц?ллю ? вид?лення границь символу та його вилучення з загального зображення. Для цього були розглянуто дек?лька вар?ант?в розп?знавання символ?в, а саме: розп?знавання окремих символ?в, розп?знавання тексту. Реал?зац?я данно? концепц?? була ?мплементована та протестована на в?дкритому набор? даних. Вид?лення тексту окремо в?д зображення та ?х анал?з окремо один в?д одного показало б?льш точн? результати з меншою к?льк?стю помилок на контур? символ?в. Подальше досл?дження може включати використання б?льш досконалих моделей для вид?лення тексту, а також розробка б?льш складних метрик для оц?нки результат?в под?бних моделей.В?ЗУАЛЬНЕ ТЕСТУВАННЯ, РОЗП?ЗНАВАННЯ ТЕКСТУ, ЗГОРТКОВ? НЕЙРОНН? МЕРЕЖ?, ЗГЛАДЖУВАННЯ ШРИФТ?В, АВТОМАТИЧНЕ ТЕСТУВАННЯABSTRACTMaster's Thesis: 68 pages, 12 figures, 25 tables, 18 parative analysis of different image comparison approaches as part of the proposed automated decision support system for automated visual testing has been performed.?The purpose of the proposed system is to compare images and find differences in style, to improve the quality of the visual testing system.The object of the study is to build a visual testing system using machine learning methods.?The subject of the study is images of the interface obtained during the work of other programs.The system performs testing in several stages: text selection, image comparison without text, text comparison and overall result. A convolutional neural network lets you highlight text in an image and classify selected text. The purpose is to isolate the borders of a character and remove it from the overall image. Several character recognition options were considered for this purpose, namely: character recognition, text recognition.The implementation of this concept has been done and tested using an open dataset. Separating the text from the image and analyzing it separately from each other showed more accurate results with fewer errors on the character outline. Further research may include the use of more sophisticated models for text selection, and the development of more sophisticated metrics to evaluate the results of such models.VISUAL TESTING, TEXT RECOGNITION, CONVOLUTIONAL NEURAL NETWORKS, FONT SMOOTHING, AUTOMATIC TESTING Зм?ст TOC \o "1-3" \h \z \u Вступ PAGEREF _Toc27204179 \h 8РОЗД?Л 1 АНАЛ?З ЗАДАЧ? В?ЗУАЛЬНОГО ТЕСТУВАННЯ PAGEREF _Toc27204180 \h 101.1Об’?кт та предмет досл?дження PAGEREF _Toc27204181 \h 101.2 Огляд ?снуючих р?шень PAGEREF _Toc27204182 \h 121.3 Поточний стан технолог?й оптичного розп?знавання тексту PAGEREF _Toc27204183 \h 131.4 Загальний алгоритм оптичного розп?знавання тексту PAGEREF _Toc27204184 \h 131.5 Ознаки символ?в, використовуван? для автоматичного розп?знавання PAGEREF _Toc27204185 \h 141.5.1 Ознаковий метод. PAGEREF _Toc27204186 \h 141.5.2 Еталон? методи. PAGEREF _Toc27204187 \h 151.5.3 Основн? п?дходи та р?шення PAGEREF _Toc27204188 \h 161.6 Шрифт залежн? та шрифт незалежн? алгоритми PAGEREF _Toc27204189 \h 171.6.1 Алгоритм розп?знавання класу шрифтових метод?в PAGEREF _Toc27204190 \h 171.6.2 Алгоритм розп?знавання класу безшрифтових метод?в PAGEREF _Toc27204191 \h 191.8 Використання штучно? нейронно? мереж? PAGEREF _Toc27204192 \h 211.9 Висновки до розд?лу PAGEREF _Toc27204193 \h 24РОЗД?Л 2. ПРОЕКТУВАННЯ СИСТЕМИ PAGEREF _Toc27204194 \h 262.1. Опис предметно? област? PAGEREF _Toc27204195 \h 262.2 Визначення вимог та завдань PAGEREF _Toc27204196 \h 272.3 Опис функц?оналу системи PAGEREF _Toc27204197 \h 272.4 Опис нейронно? мереж? PAGEREF _Toc27204198 \h 282.5 Метод попередньо? обробки PAGEREF _Toc27204199 \h 312.6 Сегментац?я PAGEREF _Toc27204200 \h 332.7 Висновки до розд?лу PAGEREF _Toc27204201 \h 34РОЗД?Л 3 АНАЛ?З АРХ?ТЕКТУРИ ПРОГРАМНОГО ПРОДУКТУ PAGEREF _Toc27204202 \h 363.1 Виб?р та анал?з датасету програмного продукту PAGEREF _Toc27204203 \h 363.2 Виб?р та анал?з арх?тектури програмного продукту PAGEREF _Toc27204204 \h 363.3 Анал?з зображення без тексту PAGEREF _Toc27204205 \h 403.4 Анал?з вимог користувача до програмного продукту PAGEREF _Toc27204206 \h 413.5 Кер?вництво користувача PAGEREF _Toc27204207 \h 433.6 Висновки до розд?лу PAGEREF _Toc27204208 \h 45РОЗД?Л 4 РОЗРОБЛЕННЯ СТАРТАП-ПРОЕКТУ PAGEREF _Toc27204209 \h 474.1 Опис ?де? про?кту PAGEREF _Toc27204212 \h 474.2 Технолог?чний аудит ?де? про?кту PAGEREF _Toc27204213 \h 494.3 Анал?з ринкових можливостей запуску стартап-про?кту PAGEREF _Toc27204214 \h 514.4 Розроблення ринково? стратег?? про?кту PAGEREF _Toc27204215 \h 584.5 Розроблення маркетингово? програми стартап-про?кту PAGEREF _Toc27204216 \h 604.6 Висновки до розд?лу PAGEREF _Toc27204217 \h 64ВИСНОВКИ PAGEREF _Toc27204218 \h 65ПЕРЕЛ?К ПОСИЛАНЬ PAGEREF _Toc27204219 \h 67ДОДАТОК А Л?СТИНГ ПРОГРАМИ PAGEREF _Toc27204220 \h 69ВступПри розробц? будь-якого програмного продукту одним ?з найб?льш важливих фактор?в, як? будуть впливати на його конкурентоспроможн?сть, ? його ?нтерфейс. Тому компан?? витрачають досить значну частину бюджету проекту для залучення дизайнер?в, як? зможуть створити ??деальний? дизайн. Але в процес? розвитку програмного продукту можуть зм?нюватися вимоги, ц?л?, а, як результат, ? ?нтерфейс. До того ж, ?нод? ц? зм?ни значн?, наприклад зм?на ц?льово? аудитор?? чи нав?ть повна зм?на напрямку д?яльност?, а ?нод? зм?ни можуть бути зовс?м м?зерн?, а саме треба зм?стити логотип на один п?ксель. Тому добре було б мати який-небудь ?нструмент, що буде показувати нам ц? зм?ни в ?нтерфейс?. Тут на допомогу ? приходить в?зуальне тестування. Причому, зараз т?льки починають з’являтися готов? р?шення для автоматизованого в?зуального тестування, але все ж б?льш?сть роботи проводиться вручну.Таким чином, метою роботи ? розробка системи вiзуального тестування. Для досягнення цих ц?лей вир?шен? наступн? завдання:1. Проведено анал?з ?снуючих п?дход?в для визначення найл?пшо? стратег?? реал?зац?? модуля.2. Проведено анал?з р?зних арх?тектур модуля тестування.3. Реал?зовано таку систему у вигляд? десктоп-додатку.Об’?ктом досл?дження ? п?дходи та методи обробки та розп?знавання зображень та ?х пор?вняння. Предметом досл?дження ? системи пор?вняння зображень.Наукова новизна отриманих результат?в у тому, що:Запропоновано застосування згортково? нейронн? мереж? для знаходження та анал?зу тексту в системах в?зуального тестування;Запропоновано алгоритм для вирiшення проблеми згладжування шрифт?в.Практичними результатами роботи ? розробка арх?тектури системи в?зуального тестування та ?? реал?зац?я.Робота склада?ться з 4 розд?л?в. В першому розд?л? розглядаються ?снуюч? системи в?зуального тестування. Другий розд?л присвячений огляду алгоритм?в розп?знавання тексту. В третьому розд?л? описано особливост? практично? реал?зац?? системи в?зуального тестування, а також опис технолог?? нейронно? мереж? завдяки як?й вир?шено поставлену задачу. Четвертий розд?л присвячений огляду особливостей розробки стартап-проекту на основ? даних досл?джень. РОЗД?Л 1 АНАЛ?З ЗАДАЧ? В?ЗУАЛЬНОГО ТЕСТУВАННЯОб’?кт та предмет досл?дженняНайпрост?шим р?шенням дано? проблеми може бути просте поп?ксельне пор?вняння двох зображень з ц?ллю знайти р?зницю. ?, насправд?, цей вар?ант д?йсно в?добразить вс? в?дм?нност?, але чи справд? вони вс? важлив?. Як виявилось, н?. Деяк? в?дм?нност?, як? може розп?знати машина, насправд?, ? малозначимими, оск?льки для людини вони будуть зовс?м непом?тними. Так, наприклад, простий текст може стати причиною, через яку тести ?впадуть?, тобто покажуть результат, який нас не задовольня?. Проблема згладжування шрифту ? довол? серйозною для в?зуального тестування, оск?льки р?зн? машини можуть проводити цю процедуру використовуючи р?зн? алгоритми. Наприклад ось так вигляда? л?тера ?А? висотою в 8 п?кселей (рис. 1.1). Рисунок 1.1 – Зображення велико? л?тери ?А?Причому перше зображення без згладжування, а друге – з ним. Це, так зване Grayscale згладжування. Але саме воно ?нод? може приводити до чогось, на кшталт цього (рис. 1.2, 1.3 та 1.4)Рисунок 1.2 – Зображення - шаблон.Рисунок 1.3 – Зображення яке ми отримали в результат?.Рисунок 1.4 – Результат пор?вняння двох зображень ?з ефектом згладжування шрифт?в.Як можна побачити, р?зн? алгоритми для згладжування, та р?зн? конф?гурац?? комп’ютер?в дають нам майже р?зн? зображення, з точки зору машини. Але для нас ця р?зниця ? неважливою, адже в обох випадках текст знаходиться в однакових м?сцях, до того ж повн?стю однаковий текст. Тому нам треба розробити систему, яка була б нечутлива до под?бного ефекту. Головною проблемою у вказаних випадках ? оптим?зований алгоритм розп?знавання символ?в, який зможе правильно ? швидко розп?знавати символи. Виходячи з цього об’?ктом досл?дження ? алгоритм розп?знавання символ?в, а до предмету досл?джень в?дноситься сама нейронна мережа. 1.2 Огляд ?снуючих р?шень Б?льш?сть сучасних OCR д?ють на трьох р?внях: символ?в, сл?в, стор?нок. Однак ABBYY, в?дпов?дно до принцип?в IPA, ввела в FineReader ще один р?вень – всього багатостор?нкового документа. Перш за все це знадобилося для коректного в?дтворення лог?чно? структури, яка в сучасних документах ста? все складн?ше. [1] Саме для цього ? була розроблена ADRT (Adaptive Document Recognition Technology) – технолог?я анал?зу ? синтезу документа на лог?чному р?вн?. В к?нцевому п?дсумку вона допомага? зробити результат роботи FineReader максимально схожим на ориг?нал. [2] Серед под?бних до Abby FineReader систем можна назвати: SimpleOCR; OmniPage; Readiris; CuneiForm. Окремо сл?д вид?лити Tesseract – це система розп?знавання текст?в, що у 1985-1994 рр. розроблялася Hewlett-Packard, а з 2006 ? в?льною ? поширю?ться компан??ю Google та дуже стр?мко розвива?ться у останн? роки. [3]Що до систем в?зуального тестування, то на сьогодн?шн?й день ?снують так? системи як:Gemini;Hermione.Але ц? системи так само мають проблеми ?з згладжуванням шрифту.1.3 Поточний стан технолог?й оптичного розп?знавання текстуДостатньо точного розп?знавання символ?в у друкованому текст? на сьогодн?шн?й день можна досягти т?льки у випадку ч?ткого зображення, такого як у друкованих документах. При дан?й постановц? задач? точн?сть перевищу? 99%, а абсолютна точн?сть може бути досягнута т?льки шляхом посл?дуючого виправлення вручну людиною. 1.4 Загальний алгоритм оптичного розп?знавання текстуСьогодн? у св?т? ?сну? дуже багато р?зних програм розп?знавання символ?в, але сл?д зазначити, що здатн?сть читати не як?сний текст, прочитаний людиною, все ще перевищу? можливост? комп'ютера. Кожен надрукований текст ма? деяку властив?сть - шрифт, у який в?н набраний. В?дпов?дно, ?сну? два типи алгоритм?в розп?знавання символ?в: шрифтов? та незалежн? в?д шрифту. Алгоритми, що залежать в?д шрифту, використовують важливу ?нформац?ю про шрифт з л?терами. Це означа?, що у додатку повинен бути повний зразок тексту, надрукованого цим шрифтом. Програма вим?рю? та анал?зу? р?зн? характеристики шрифт?в та вставля? ?х у свою базу дов?дкових характеристик. ?сну? три основн? методи розп?знавання тесту: Метод шаблону; Методи шаблон?в перетворюють зображення одного символу в растровий, пор?внюють його з ус?ма шаблонами, доступними в баз? даних, ? вибирають шаблон ?з найменшою к?льк?стю р?зних точок ?з вх?дним зображенням. Методи шаблон?в достатньо ст?йк? до дефект?в зображення ? мають високу швидк?сть обробки вх?дних даних, але над?йно розп?знаються лише т? шрифти, шаблони яких ?м в?дом?. ? якщо розп?знаний шрифт трохи в?др?зня?ться в?д дов?дкового, шаблонн? методи можуть помилитися нав?ть при обробц? зображень дуже як?сно? якост?.Структурний метод; Структурне методолог?чне розп?знавання збер?га? ?нформац?ю не про сучасне написання персонажа, а про його тополог?ю. Стандарт м?стить ?нформац?ю про в?дносне розташування окремих компонент?в. Перевагою методу ? оп?р зм?щенню та обертанню символу на невеликий кут, р?зним стил?стичним вар?ац?ям шрифт?в. Однак, коли кут повороту становить десятки градус?в, цей метод не можна використовувати для розп?знавання символ?в. При використанн? цього методу так? функц??, як розм?р розкладених л?тер ? нав?ть шрифти, на яких в?н був надрукований, нев?дом?. Однак основною проблемою цього методу ? ?дентиф?кац?я, яка м?стить певн? дефекти. [4]1.5 Ознаки символ?в, використовуван? для автоматичного розп?знавання 1.5.1 Ознаковий метод. Методи знак?в заснован? на тому, що малюнок вир?вню?ться з вектором знак?в. Суть розп?знавання у пор?внянн? вектора ознак ?з набором приклад?в вектор?в одного виду. Переваги методу - простота реал?зац??, хороша здатн?сть до узагальнення, висока швидк?сть розп?знавання. Недол?ком цього способу ? висока чутлив?сть дефект?в зображення. Кр?м того, функц?? функц?й мають ще один недол?к - на етап? створення функц?? втрача?ться деяка ?нформац?я про символ.Виб?р функц?? незалежний, тому ?нформац?я про в?дносне розташування елемент?в символ?в втрача?ться. [5] 1.5.2 Еталон? методи.Дов?дков? методи передбачають пор?вняння заданого, невп?знаного характеру з набором деяких стандарт?в. Для цього використовуйте нейронн? мереж?, як? необх?дно заздалег?дь заповнити стандартами. ?сну? к?лька алгоритм?в пор?вняння тексту з? стандартом.Найпрост?ший вар?ант - пор?вняння п?ксел?в за п?кселем, але в?н вимага? пор?внянних р?вн?в зображення. ?нш? вар?анти - це накладки та зм?щення накладок, у яких зображення вир?внюються м?ж собою. Методи тестування рукописного та друкованого тексту на перший погляд схож?, але сутт?во р?зн?. Стандарти рукописного тексту, на в?дм?ну в?д л?тер шрифту, ? лише грубими зразками. Це значно зб?льшу? ймов?рн?сть помилки. [6]У типов?й систем? оптичного розп?знавання символ?в (OCR) введен? символи читаються та оцифровуються за допомогою оптичного сканера. П?сля цього кожен символ п?дда?ться локал?зац?? та розпод?лу, ? отримана матриця попередньо обробля?ться, тобто розгладжу?ться, ф?льтру?ться ? нормал?зу?ться. В результат? попередньо? обробки вид?ляються в?дм?нн? риси, п?сля яких проводиться класиф?кац?я. 1.5.3 Основн? п?дходи та р?шенняАлгоритм скелетон?зац??Це спос?б розп?знавання одинарних б?нарних зображень на основ? побудови скелет?в цих зображень та вибору скелета ребер та вузл?в. Пот?м в?дпов?дно до сп?вв?дношення ребер, ?х к?лькост? та к?лькост? вузл?в склада?ться таблиця в?дпов?дних зображень. Наприклад, скелет кола буде одним вузлом, скелет л?тери "Р" матиме три ребра та два вузли, а ребра будуть 2: 2: 1. У програмуванн? цей метод ма? к?лька можливих реал?зац?й, Б?льш детальну ?нформац?ю про метод скелетон?зац?? можна знайти нижче за посиланням розд?лу. [7] Нейрона мережа Даний метод був дуже популярним у 60-х - 70-х роках, трохи затопивши ?х, зменшуючись, оск?льки сол?дна к?льк?сть вимага? значних обчислювальних потужностей, як? зазвичай в?дсутн? на простих моб?льних платформах. Однак сл?д пам’ятати, що нейронн? мереж? ?нод? дають дуже ц?кав? результати, завдяки яким вони не мають жодно? структури, тим б?льше, що деяк? нейронн? мереж? здатн? декомпресувати ?нвар?антн?сть. Наприклад, мереж? на основ? neoconetron можуть ?дентиф?кувати деяк? характеристики та порушувати ?х так, н?би вони повертаються. [8] ?нвар?антн? числа З геометр?? зображень можна вибрати к?лька чисел, ?нвар?антних розм?ру та обертанню зображень, а пот?м можна скласти таблицю, яка в?дпов?да? цим цифрам конкретного зображення (майже як в алгоритм? скелетон?зац??). Прикладами ?нвар?антних чисел ? число Ейлера, ексцентриситет, ор??нтац?я (у сенс? розташування головно? ос? ?нерц?? в?дносно чогось ?нвар?антного). Поточечное процентне пор?вняння з еталоном Потр?бно виконати деяку попередню обробку, щоб отримати ?нвар?антн?сть щодо розм?ру та положення, а пот?м пор?вняння з п?дготовленою базою стандарт?в зображень - якщо зб?га?ться б?льше н?ж певний тег, то ми вважа?мо, що зображення буде розп?знане. [9]1.6 Шрифт залежн? та шрифт незалежн? алгоритми 1.6.1 Алгоритм розп?знавання класу шрифтових метод?вЦей метод заснований на концепц?? однотипних даних. Тобто фокусу?ться на вже знайомих шрифтах, тобто метод? шрифту [10]. Алгоритми, що залежать в?д шрифту або шрифту, використовують апр?орну ?нформац?ю про шрифт, яка друку? певн? л?тери, цифри чи символи. Це означа?, що система розп?знавання повинна бути забезпечена повним зразком тексту, надрукованого шрифтом. Програма вим?рю? та анал?зу? р?зн? характеристики шрифту та запису? ?х у свою базу дов?дкових характеристик. П?сля завершення цього процесу шрифт оптичного розп?знавання символ?в готовий розп?знати саме цей шрифт. Цей процес умовно можна назвати навчальною програмою. Подальше навчання повторю?ться для ряду шрифт?в, що залежить в?д сфери застосування.До недол?к?в цього способу можна в?днести наступн? фактори:Алгоритм повинен заздалег?дь знати шрифт, який в?н отриму? для розп?знавання, тобто в?н повинен збер?гати у сво?й баз? даних р?зн? характеристики цього шрифту. Як?сть розп?знавання тексту, надрукованого випадковим шрифтом, буде прямо пропорц?йним сп?вв?дношенню цього шрифту з шрифтами, що м?стяться в баз? даних системи розп?знавання. При велик?й к?лькост? друку в процес? навчання неможливо охопити вс? шрифти та ?х модиф?кац??. Наприклад, ?Пол?графбуммаш? СРСР використовував для стандартизац?? близько 15-20 р?зних шрифт?в свого часу, а в сучасних комп'ютеризованих системах друку документ?в використову?ться близько 200 р?зних шрифт?в, ? з кожним роком ця к?льк?сть зб?льшу?ться ? зб?льшу?ться. ?ншими словами, цей фактор обмежу? ун?версальн?сть таких алгоритм?в.Програма розп?знавання вимага? блоку налаштувань для певного шрифту. Очевидно, що цей блок зробить свою частку помилок у ?нтегральн?й оц?нц? якост? розп?знавання, або функц?ю установки шрифту доведеться покласти на користувача. [11]Програма, заснована на алгоритм? шрифт?в, розп?зна? символи в?д користувача з особливими знаннями про шрифти в ц?лому, про ?х групи та в?дм?нност? один в?д одного, шрифти, в яких друку?ться документ користувача. Можна зауважити, що якщо паперовий документ не був створений користувачем ? прийшов до нього нев?домим способом, не ?сну? регулярного способу з’ясувати, за допомогою яких шрифт?в документ був надрукований. Потреба у спец?ал?зованих знаннях звужу? коло потенц?йних користувач?в та спрямову? ?х на орган?зац??, як? мають в?дпов?дний персонал.З ?ншого боку, шрифтовий п?дх?д ма? значну перевагу, завдяки чому в?н активно використову?ться ?, швидше за все, буде використаний у майбутньому. А саме, розробивши апр?орну ?нформац?ю про символ?в, ви можете побудувати досить точн? та над?йн? алгоритми розп?знавання. Взагал? при побудов? алгоритму розп?знавання шрифту над?йн?сть та як?сть розп?знавання символ?в ? ?нту?тивно зрозум?лим та значенням, яке може бути виражено математично точно. Це значення визнача?ться як в?дстань у будь-якому метричному простор? в?д опорного символу, наданого програм? в процес? навчання, до символу, який програма намага?ться розп?знати.1.6.2 Алгоритм розп?знавання класу безшрифтових метод?в?нший клас алгоритм?в - без шрифт?в або шрифт?в, тобто алгоритм?в, як? не мають апр?орних знань про символи, що надходять до них як вих?дн? дан?. Так? алгоритми вим?рюють та анал?зують р?зн? характеристики (ознаки), притаманн? л?терам, як? практично не зм?нюються в будь-якому шрифт? [12]. У деяких випадках алгоритм, що залежить в?д шрифту, може не мати процесу навчання. У цьому випадку характеристики символ?в вим?рюються, кодуються та розм?щуються в баз? даних самим користувачем. Але на практиц? це р?дк?сний випадок, коли цей вар?ант справд? вир?шу? проблему розп?знавання. Б?льш загальним способом створення бази даних ? п?дготовка програми до вилучення символ?в у режим? реального часу.До недол?к?в такого п?дходу можна в?днести так? фактори:Д?йсно досяжна як?сть розп?знавання тексту нижча, н?ж алгоритми шрифту. Це пов’язано з тим, що р?вень узагальнення при вим?рюванн? характеристик символ?в значно кращий, н?ж у випадку алгоритм?в, що залежать в?д шрифту. Фактично це означа?, що р?зн? припущення та груб?сть при вим?рюванн? характеристик символ?в для роботи алгоритм?в без шрифту можуть бути в 2–20 раз?в б?льшими, н?ж шрифти.Сл?д вважати великим усп?хом, якщо без алгоритму шрифту ? адекватний ? ф?зично обгрунтований, тобто, природно, виплива? з основно? процедури алгоритму коеф?ц??нт над?йност? розп?знавання. Часто доводиться погоджуватися, що оц?нка точност? або в?дсутня, або створена штучно. Штучна оц?нка передбача?, що вона сутт?во не зб?га?ться з ймов?рн?стю правильного розп?знавання, передбаченою алгоритмом.Переваги такого п?дходу т?сно пов'язан? з його недол?ками. Основними перевагами ?:Ун?версальн?сть. Це означа?, що, з одного боку, можлив?сть використання цього п?дходу у випадках, коли потенц?йна р?зноман?тн?сть символ?в, як? можуть ув?йти в систему як початков?, досить велика. З ?ншого боку, за рахунок ?х здатност? до узагальнення так? алгоритми можуть екстраполювати накопичен? знання поза навчальним зразком, тобто наполегливо розп?знавати символи, далек? в?д присутн?х у навчальн?й виб?рц?. [тринадцять]Пристосован?сть. Процес вивчення алгоритм?в, залежних в?д шрифту, зазвичай прост?ший та ?нтегрован?ший у тому сенс?, що навчальний зразок не фрагментований на р?зн? класи (шрифти, шпильки тощо). Однак нема? необх?дност? п?дтримувати в баз? даних характеристик р?зн? умови сп?в?снування цих клас?в. Проявом адаптивност? ? також той факт, що часто можливо створити майже повн?стю автоматичн? тренувальн? процедури.Зручн?сть у процес? використання програми. Якщо програма заснована на алгоритмах, залежних в?д шрифту, користувач не зобов’язаний н?чого знати про стор?нку, яку в?н хоче ввести в пам'ять комп’ютера, ? пов?домляти про ц? знання програм?. Це також спрощу? користувальницький ?нтерфейс програми через в?дсутн?сть набору параметр?в та д?алог?в, як? служать для навчання та управл?ння базою функц?й. У цьому випадку процес розп?знавання може бути представлений користувачев? як "чорна скринька" (при цьому користувач повн?стю позбавлений можливост? контролювати або будь-яким чином зм?нювати х?д процесу розп?знавання). Як результат, це призводить до розширення кола потенц?йних користувач?в, включаючи людей з м?н?мальною комп'ютерною грамотн?стю.1.8 Використання штучно? нейронно? мереж?Штучн? нейронн? мереж? широко використовуються для розп?знавання символ?в. Алгоритми, розроблен? для нейронних мереж для розп?знавання символ?в, не часто створюються таким чином: зображення символу, що ? вх?дним зображенням для читання, зменшу?ться до певного стандартного розм?ру. Зазвичай зображення зменшу?ться до 16х16 п?ксел?в.Значення яскравост? у вузлах нормал?зованого зображення використовуються як вх?дн? параметри нейронно? мереж?. К?льк?сть вих?дних параметр?в нейронно? мереж? дор?вню? к?лькост? розп?знаних символ?в. Результат розп?знавання - символ, який в?дпов?да? найвищому значенню джерела нейронно? мереж?. П?двищення над?йност? таких алгоритм?в зазвичай пов'язане з пошуку б?льш ?нформативних вх?дних ознак або ускладненням структури нейронно? мереж?.Над?йн?сть розп?знавання та потреба програми в обчислювальних ресурсах багато в чому залежать в?д вибору структури та параметр?в нейронно? мереж?. Зображення ф?гур зменшуються до одного розм?ру (28x28 п?ксел?в). Отримане зображення пода?ться на вх?д нейронно? мереж?, яка ма? три внутр?шн? р?вн? та 10 вузл?в верхнього р?вня. Нижн? шари мереж? не повн?стю пов'язан? м?ж собою. Нижн? вузли мають загальний наб?р ваг. Все це, на думку розробник?в, повинно п?двищити здатн?сть нижчих р?вн?в мереж? розр?зняти основн? функц?? зображення. Щоб зб?льшити здатн?сть мереж? до узагальнення та зменшення необх?дно? к?лькост? обчислювально? пам'ят? та пам'ят?, невикористан? ваги видаляються. В результат? к?льк?сть незалежних параметр?в скорочу?ться вчетверо. Навчання нейронно? мереж? проводиться на набор? 7300 символ?в, тест на багато 2000 символ?в. Похибки розп?знавання приблизно 1% на навчальному набор? та 5% на тестовому. [15]В якост? вх?дних параметр?в нейронно? мереж? зам?сть значень яскравост? у вузлах нормованого растру можна використовувати значення, що характеризують р?зницю яскравост?. Ц? вх?дн? параметри дозволяють краще розмежувати меж? л?тер. Об'?кти розп?знавання зменшуються до 16х16 п?ксел?в. Пот?м вони додатково обробляються для вид?лення областей з найб?льшою р?зницею яскравост?. Одним ?з широко застосовуваних метод?в п?двищення точност? розп?знавання ? одночасне використання дек?лькох р?зних модул?в розп?знавання та подальша ?нтеграц?я результат?в (наприклад, шляхом голосування). Дуже важливо, щоб алгоритми, як? використовуються цими модулями, були максимально незалежними. Цього можна досягти за допомогою модул?в розп?знавання, як? використовують принципово р?зн? алгоритми розп?знавання, а також спец?ального п?дбору навчальних даних.Один ?з цих метод?в був запропонований к?лька рок?в тому ? базувався на використанн? трьох модул?в розп?знавання (машин). Першу машину навчають звичайним чином. Друга машина вивча? символи, як? були в?дф?льтрован? першою машиною, так що друга машина бачить сум?ш символ?в, 50% з яких перша машина була розп?знана правильно, а 50% - неправильно. Нарешт?, трет?й автомоб?ль д?зна?ться про символ?в, як? розр?зняють результати розп?знавання 1-? та 2-? машини. Ус? три машини використовують розп?знаван? символи п?д час тестування. Оц?ню?ться потужн?сть ус?х трьох автомоб?л?в. Характер ?з найвищим загальним балом розп?зна?ться.Зазвичай алгоритм розп?знавання базу?ться на розд?ленн? растра ?з зображенням л?тер основних ознак та подальшому використанн? штучно? нейронно? мереж? для оц?нки близькост? вх?дного зображення з символами заданого набору букв. Результатом роботи ? сукупн?сть оц?нок, як? в?дображають ступ?нь близькост? розп?знаного персонажа з персонажами заданого набору символ?в. [16] Наб?р вп?знаваних символ?в може включати л?тери та цифри. Входи розп?знавання символ?в перетворюються в один розм?р. В?дм?нною рисою реал?зованого алгоритму ? використання нейронно? мереж? з достатньо великою к?льк?стю вх?дних функц?й. Ориг?нальне зображення вид?ля? основн? риси, що характеризують р?зницю яскравост? у вузлах растра. Нейронна мережа ма? один внутр?шн?й шар, що м?стить 100 вузл?в ? ? ун?версально пов'язаним, тобто кожен внутр?шн?й вузол з'?днаний з ус?ма вх?дними вузлами, а кожен вузол верхнього р?вня з'?днаний з ус?ма вузлами внутр?шнього шару. Для зменшення к?лькост? обчислень розп?знавання використову?ться не кожен вх?дний символ для кожного вп?знаваного зображення символу, а лише його частина, тобто вектор вх?дних параметр?в нейронно? мереж? сильно розведений. [17]Для того, щоб система розп?знавання тексту працювала, необх?дно ввести цифровий файл ?з в?дсканованим текстом (текстовим елементом). Наступним етапом системи розп?знавання тексту ? так звана ?сегментац?я? та попередня п?дготовка даних. На цьому етап? роботи в?дбува?ться вир?внювання елемент?в тексту. Елементами тексту можуть бути фотограф?? з певними розд?лами тексту, в?дсканованими частинами стор?нок та под?бними параметрами цифрового макета. П?сля вир?внювання вс? так? елементи повинн? бути видален? ?з зайвих частинок, тобто текст повинен складатися виключно з тих символ?в, з якими система ?знайома?, а решта - для очищення поля зору системи або просто пропустити так? елементи. Дал? необх?дна процедура б?наризац??, яка поляга? в ?золяц?? фону та додаткового для зчитування елемент?в як б?лих елемент?в, а необх?дний текст пода?ться в систему виключно як чорний текст. Пот?м система розп?знавання розд?ля? стовпц? та рядки з текстом, розбива? суц?льний текст на слова ? масштабу? зображення для легкого пор?вняння з уже встановленими "еталонними" словами та символами.Надал? розп?знавання тексту викону?ться символом одним ?з двох метод?в:метод ?Пор?вняння ?з зображенням?;Метод адаптивного розп?знавання.Кожен з цих метод?в ма? певн? переваги та недол?ки та р?зн? найкращ? ситуац?? для ?х застосування, про як? буде сказано нижче. [18]П?сля того як ми отримали вих?д п?сля програми, необх?дним ? дуже важливим кроком ? ??п?двищення швидкост? програми та п?двищення точност? отриманих даних. Для цього потр?бно додати к?лька словник?в, як? допоможуть систем? певного набору символ?в скласти слова, як? найб?льше задовольняють лог?ку всього тексту та виправити деяк? невелик? неточност? в словах. Також важливим способом п?двищення точност? вих?дних даних ? включення системи грамот вп?знавання в правила граматики, щоб правильно в?др?знити ?менник в?д д??слова та ?нш? под?бн? в?дм?нки. 1.9 Висновки до розд?лу В першому розд?л? було розглянуто загальну ?нформац?ю щодо ?снуючих метод?в анал?зу та обробки даних, наведено ?стор?ю перших нейронних мереж та проблеми, що виникали у р?зн? часи розвитку ?нтелектуально? технолог??. Було розглянуто актуальн?сть обрано? задач? розпiзнавання тексту. Наведено та проанал?зовано методи та п?дходи розпiзнавання тексту. Також розглянуто ?снуюч? ?нструменти для створення власно? системи розпiзнавання тексту ? приклади використання дано? технолог??.Було встановлено, що задач? розпiзнавання тексту сьогодн? ? надзвичайно актуальними для прискорення роботи та п?двищення точност? будь-яко? системи. Для реал?зац?? продукту необх?дно розробити арх?тектуру нейронно? мереж? та створити дв? виб?рки даних: для навчання та для тестування. Завданням дипломно? роботи ? побудова модуля розпiзнавання тексту з допомогою нейронних мереж, анал?з та виб?р найоптимальн?ших параметр?в мереж? для точно? та швидко? роботи програмного продукту. Постановка задач? включа?:виконання анал?зу роботи р?зних структур мереж? пом?ж ?снуючих стандарт?в або побудованих власноруч;обрання найб?льш доц?льно? виб?рки для навчання та тестування модуля;визначення оптимально? к?лькост? навчальних епох;виконання анал?зу роботи р?зних оптим?зац?йних механ?зм?в;анал?з якост? роботи реал?зованого модуля;формулювання рекомендац?й щодо використання програмного продукту та можливих шлях?в його вдосконалення.РОЗД?Л 2. ПРОЕКТУВАННЯ СИСТЕМИ2.1. Опис предметно? област?Незважаючи на те, що в даний час б?льш?сть документ?в склада?ться на комп’ютерах, завдання створення повн?стю електронного документооб?гу ще далеко не завершено. Як правило, ?снуюч? системи охоплюють д?яльн?сть окремих орган?зац?й, а обм?н даними м?ж орган?зац?ями зд?йсню?ться за допомогою традиц?йних паперових документ?в. Завдання перекладу ?нформац?? з паперу на електронн? нос?? ? актуальною не лише в межах потреб, що виникають у системах робочого процесу. Сучасн? ?нформац?йн? технолог?? дозволяють значно спростити доступ до накопичених людством ?нформац?йних ресурс?в за умови ?х перекладу в електронну форму. Найпрост?ший ? найшвидший спос?б - сканувати документи за допомогою сканер?в. В результат? отримують цифрове зображення документа - граф?чний файл. Текстове представлення ?нформац?? ? б?льш кращим, н?ж граф?чне. Цей вар?ант значно скорочу? витрати на збер?гання та передачу ?нформац?? та дозволя? реал?зувати вс? можлив? сценар?? використання та анал?зу електронних документ?в. Тому практичний ?нтерес представля? переклад паперу в текстовий електронний документ. Вх?д системи розп?знавання отриму? растрову карту стор?нки документа. Для алгоритм?в розп?знавання бажано, щоб зображення було найвищо? якост? для введення. Якщо зображення шумн?, р?зк? та мають низький контраст, це ускладнить завдання алгоритм?в розп?знавання. Крок сегментац?? ? дуже важливим у цьому п?дход?, оск?льки методи класиф?кац?? на основ? контуру проваляться без над?йно? сегментац??. Обробка йде за традиц?йним поетапним кроком трубопроводу, але деяк? етапи були незвичними в ?хн?й день ? можуть все ще залишатися. Перший крок - зв’язок анал?зу компонент?в, в якому збер?гаються контури компонент?в.2.2 Визначення вимог та завданьОсновними вимогами до програми ?:Розроблена система повинна розп?знавати символи, присутн?й у зображенн?.Система повинна показувати пов?домлення про помилку користувачев?, коли вх?дн? дан? не в потр?бному формат?.Система повинна забезпечувати як?сть обслуговування користувачев?.Система повинна забезпечувати точн?сть для розп?знавання.Основним функц?оналом програми ?:Надсилання зображення для розп?знавання.Отримання результату тестування. 2.3 Опис функц?оналу системиСистема повинна надавати користувачев? можлив?сть виконувати наступн? операц??:Надання зображення для розп?знавання систем? через завантаження його у в?кн?Отримання результату тестування в окремому в?кн?, або у вигляд? файлу.2.4 Опис нейронно? мереж?Типова система розп?знавання рукописного тексту склада?ться з дек?лькох основних етап?в, а саме: попередня обробка зображення, сегментац?я, отримання признак?в, класиф?кац?я та пост-обробка. Загальна принципова схема зображена на рисунку 2.1.Отримання зображенняПри отриманн? зображення система розп?знавання отриму? зображення в якост? вх?дного зображення. Зображення повинне мати певний формат, такий як JPEG, BMP, PNG ? т. д. Це зображення може бути отримане за допомогою сканера, цифрово? камери, або будь-якого ?ншого в?дпов?дного пристрою цифрового введенняРисунок 2.1 – Загальна принципова схема розв’язання задач? розп?знаванняПопередня обробкаПопередня обробка - це ряд операц?й, що виконуються з? сканованим вх?дним зображенням. Це значно покращу? зображення, роблячи його сегментарним. Посл?довн?сть операц?й, як? виконуються на зображенн?, зображена на рисунку 2.2. Процес б?наризац?? перетворю? чорно-б?ле зображення у б?нарне зображення за допомогою глобально? методики порогового визначення. Розширення ребер у б?наризованому зображенн? зд?йсню?ться методом в?дб?лювання, розширення зображення та заповнення отвор?в у ньому - це операц??, що виконуються на останн?х двох етапах для отримання попередньо обробленого зображення, придатного для сегментац??.Рисунок 2.2 – Алгоритм попередньо? обробки зображенняСегментац?я На етап? сегментац?? зображення посл?довност? символ?в розкладаються на п?дстор?нки ?ндив?дуального символу. У запропонован?й систем? попередньо оброблене вх?дне зображення сегменту?ться на окрем? символи, присвоюючи кожному символу число через процес маркування. Це позначення нада? ?нформац?ю про к?льк?сть символ?в на зображенн?.Класиф?кац?я та розп?знаванняКрок класиф?кац?? ? частиною прийняття р?шень у систем? розп?знавання. Св?тчаста нейронна мережа використову?ться для класиф?кац?? та розп?знавання рукописних символ?в. Сегментоване зображення з останнього кроку пода?ться на вх?д. Загальна к?льк?сть нейрон?в у вих?дному шар? становить 26, оск?льки запропонована система призначена для розп?знавання англ?йського алфав?ту.Пост-обробкаЕтап п?сля обробки ? завершальним етапом запропоновано? системи розп?знавання. Тут в?дпов?дн? розп?знан? символи друкуються в структурованому текст? шляхом обчислення екв?валентного значення ASCII за допомогою ?ндексу розп?знавання тестового шаблону.2.5 Метод попередньо? обробки Необх?дн? дан? п?ддаються дек?льком етапам попередньо? обробки, як? будуть використан? в описовому етап? анал?зу символ?в. Попередня обробка ма? на мет? отримати дан?, як? буде зручно використовувати для систем оптичного розп?знавання символ?в. Основними завданнями попередньо? обробки ?:Ф?льтрування шумуП?д час сканування документа сканован? зображення можуть бути забруднен? аддитивним шумом, ? ц? неяк?сн? зображення вплинуть на наступний крок обробки документа. Тому необх?дний крок попередньо? обробки для пол?пшення якост? зображення перед перенесенням на наступн? етапи обробки документа. Шум може призвести до в?ддалених помилкових сегмент?в, довгого м?жряддя тощо, тому для кращо? ?нформац?? важливо видалити вс? ц? помилки. Зображення мають багато тип?в шуму. Один шум присадки, який назива?ться "шум сол? та перцю", - це чорн? та б?л? точки, розкидан? по всьому зображенню, як? можна знайти майже у вс?х документах. Методи зниження шуму можна розд?лити на дв? основн? групи, а саме: Ф?льтрац?я - спрямована на видалення шуму та зменшення б?чних точок, вони зазвичай в?дбуваються через шорстку поверхню запису та / або спричинен? низькою швидк?стю виб?рки пристрою збору даних.Морфолог?чн? операц?? - зазвичай використовуються як ?нструмент обробки зображень для отримання компонент?в зображення, корисних для представлення та опису форми д?лянки. Морфолог?чн? операц?? можуть бути усп?шно використан? для усунення шуму на зображенн? документа через погану як?сть паперу та чорнила, а також помилков? рухи руки.Б?наризац?я зображень чорно-б?лих символ?в ? важливим кроком у розп?знаванн? символ?в в режим? офлайн. Хороша б?наризац?я полегшу? сегментац?ю та розп?знавання символ?в. Процес б?наризац?? перетворю? чорно-б?ле зображення у б?нарне зображення. Виявлення кра?вКра? характеризують меж? об'?кт?в ? тому корисн? для сегментац??, ре?страц?? та ?дентиф?кац?? об'?кт?в. Виявлення кра?в зображення значно зменшу? к?льк?сть даних ? в?дф?льтрову? марну ?нформац?ю, збер?гаючи важлив? структурн? властивост? зображення. ?сну? багато способ?в визначення кра?в. Однак б?льш?сть р?зних метод?в можна згрупувати у дв? категор??: метод град??нта та метод Лапласа. Метод град??нта виявля? кра?, шукаючи максимум ? м?н?мум у першому пох?дному зображенн?. Метод Лапласа зд?йсню? пошук нульових переход?в у другому пох?дному зображенн? для пошуку ребер.Розширення та заповненняВиявлення спотворень - асиметр?я може виникнути в результат? процесу сканування. ?сну? к?лька загальних метод?в виявлення перекосу стор?нки; деяк? покладаються на виявлення з'?днаних компонент?в ? пошук середн?х кут?в, що з'?днують ?х центро?ди. Асиметр?ю сл?д усунути, оск?льки це знижу? точн?сть документа. Кут нахилу обчислю?ться, а похил? л?н?? роблять горизонтальними на кут нахилу.Оц?нка та нормал?зац?я нахилу - рукописний текст зазвичай характеризу?ться похилими символами. Зокрема, символи можуть бути нахилен? або вправо вл?во, або навпаки. Кр?м того, р?зн? вар?анти можуть з’являтися не т?льки в текст?, але ? в межах одного слова. Корекц?я нахилу не вплива? на узгоджен?сть сл?в, ? отриман? слова ? природними. Нормал?зац?я нахилу використову?ться для нормал?зац?? вс?х символ?в до стандартно? форми. Найпоширен?ший метод оц?нки нахилу - обчислення середнього кута близьких вертикальних елемент?в.2.6 Сегментац?яУ методах розп?знавання символ?в сегментац?я ? найважлив?шим процесом. Сегментац?я викону?ться для розд?лення зображення на окрем? символи. Сегментац?я рукописного слова на р?зн? област? (верхн?й середн?й та нижн?й) та символи ? складн?шою, н?ж у друкованих документах. В основному це поясню?ться м?нлив?стю м?ж символьних в?дстаней, перекосом, нахилом, розм?ром, тобто рукописним написом. ?нод? компоненти двох посл?довних символ?в можуть бути зад?ян? або перекрит?, ? ця ситуац?я ускладню? завдання сегментац??. В ?нд?йських мовах такий дотик або накладення часто виника? через зм?нн? символи верхньо? та нижньо? зони. Сегментац?я ? важливим кроком, оск?льки ступ?нь, в як?й слова, рядки або символи можна розд?лити, безпосередньо вплива? на швидк?сть розп?знавання тексту.?сну? два типи сегментац??:Зовн?шня сегментац?я - розклада? макет стор?нки на ?? лог?чн? одиниц?. Зовн?шня сегментац?я - це вид?лення р?зних блок?в письма, таких як абзаци, речення чи слова. Це найважлив?ша частина анал?зу документ?в. Анал?з та розп?знавання документ?в спрямован? на автоматичне вилучення ?нформац??, представлено? на папер? та адресовано? з самого початку, до людського розум?ння. Сегментац?я стор?нки - один з важливих крок?в в анал?з? макета ? особливо складний при робот? з? складними макетами. Макет стор?нки анал?зу?ться у два етапи: Перший етап - це структурний анал?з, який стосу?ться сегментування зображення на блоки компонент?в документа (абзац, рядок, слово тощо). Другий - це функц?ональний анал?з, який використову? макет, розм?р та р?зн? правила розм?тки для позначення функц?онального зм?сту компонент?в документа. Пот?м сегментац?я стор?нки зд?йсню?ться шляхом пошуку текстурованих д?лянок у чорно-б?лому кольор?. Внутр?шня сегментац?я - це операц?я, яка намага?ться розкласти посл?довн?сть символ?в на п?добрази окремих символ?в. Хоча за останн? десять рок?в ц? методи надзвичайно розвинулися ? з'явилися р?зн? методи, сегментац?я рукописного шрифту на символи залиша?ться невир?шеною проблемою. 2.7 Висновки до розд?луВ процес? анал?зу було вид?лено основн? необх?дн? етапи проведення анал?зу зображення, необх?дного для роботи програми. В рамках цього було вид?лено наступне: розп?знавання та анал?з тексту, а також анал?з зображення Було розглянуто ?снуюч? методи для обробки тексту на зображенн? та обрано найб?льш придатний для вир?шення поставлено? задач?.РОЗД?Л 3 АНАЛ?З АРХ?ТЕКТУРИ ПРОГРАМНОГО ПРОДУКТУ3.1 Виб?р та анал?з датасету програмного продуктуОдн??ю з найважлив?ших частин роботи ? розп?знавання тексту, з метою п?двищення якост? проведення тестування, то в якост? датасету було обрано MJSynth, який склада?ться з 9 м?льйон?в зображень з б?льш н?ж 90 тис. англомовних сл?в на них.Зображення в датасет? створен? штучно в дек?лька етап?в, як? можна побачити на рисунку 3.1.Рисунок 3.1 – Етапи створення елемент?в датасету3.2 Виб?р та анал?з арх?тектури програмного продуктуКласичн? модел? згорткових мереж ? надто складними для навчання на персональному комп’ютер?. Нав?ть при довол? високих параметрах компонент, спроба навчання арх?тектури VGG-16 на 100 епохах, з потр?бних 5000, тривала б?льше 2 годин, а точн?сть була в межах 10-13%. Ця система виявилась не д??здатною для виб?рки малого розм?ру, тому було вир?шено за основу взяти VGG-11 – спрощену 11-шарову верс?ю, зазначено? вище VGG-16 та звичайн? згортков? мереж? з р?зною к?льк?стю та типами шар?в, та р?зними параметрами.Таким чином, у виб?рц? взяли участь 4 р?зн? арх?тектури системи. Перший модуль ма? наступну арх?тектуру: 5 пар посл?довних згорткових ? агрегуючих шар?в, п?сля останньо? агрегац?? застосову?ться функц?я виключення нейрон?в. Ця ж функц?я швидше буде видалена до наступного повного шару. Останн?й шар використову? функц?ю soft-max.Другий модуль в?дпов?да? стандарту VGG-11, що можна побачити на малюнку 3.2. Трет?й модуль - це сум?ш попередн?х арх?тектур, ма? п'ять блок?в згорткових ? агрегац?йних шар?в - перш? три мають лише один згортковий шар, два ?нш? по два. В арх?тектур? ? два повнозв’ян? шари. Це було зроблено для прискорення роботи системи.Рисунок 3.2 – В?дображення арх?тектури VGG-11П?сля проведення навчання протягом 5000 епох та вал?дац?? на тестовому зразку зображень було отримано пор?вняльну таблицю роботи, яка викладена нижче. Кл?тини показують час роботи останн?х 100 епох ? середню точн?сть нейронно? мереж? на 100 епохах тренувань. (Таблиця 3.1)Таблиця 3.1 – Пор?вняльна таблиця роботи структур нейронних мережНомер епохиVGG-11Модуль №1Модуль №212.67s – 0.12462.35s – 0.09523.62s - 0.118210086.7s – 0.304527.2s - 0.796933.1s - 0.792720084.1s – 0.493122.7s – 0.890623.2s - 0.979450089.7s – 0.637825.4s – 1.00025.7s - 0.9817100073.1s – 0.917538.0s – 1.00026.7s – 1.000150076.9s - 0.925221.6s – 1.00021.7s – 0.9912200074.8s - 0.985624.4s – 1.00023.7s – 0.9437250070.6s - 0.985626.25s – 1.00020.6s – 0.9972300073.4s – 1.00024.5s – 1.00022.4s – 1.000350078.46s – 1.00026.86s – 1.00024.9s – 1.000400083.4s – 0.978127.2s – 1.00030.1s – 1.000500073.7s – 1.00026.34s – 1.00025.3s – 1.000Тестування0.957230.969720.96345Тому, залежно в?д даних, отриманих ?з таблиц?, виберемо найб?льш точний, тобто перший модуль, який використову? функц?ю вилучення нейрон?в. Ця нейромережева структура показала один з найшвидших результат?в навчання при меншому витраченому часу. Ця таблиця показу?, що б?льш складн? системи займають б?льше часу, а навчання в?дбува?ться пов?льн?ше. (Таблиця 3.2)Перев?римо вибрану нейронну мережу та тренуйтеся на 1000, 2000, 5000 та 7000 епох, оск?льки к?льк?сть епох може зм?нити точн?сть системи. Ця м?нлив?сть дозволя? визначити, коли мереж? потр?бна додаткова п?дготовка та коли почати переквал?ф?кац?ю, тобто переквал?ф?кац?ю, як навчання. Результати навчання так?:Таблиця 3.2 – Вплив к?лькост? епох навчання на точн?сть мереж?К?льк?сть епох1000200050007000Точн?сть0.953410.962340.969720.95468Нов? дан? показують, що найб?льш точна система з'явля?ться в середньому значенн? епохи навчання. На 1000 цикл?в нейронна мережа залиша?ться недонавчанною, ? з 7000 цикл?в точн?сть знижу?ться, коли система почина?перенавчатися. Томуберемо значення 5000 як стандартне ? побуду?мо остаточну систему. (Таблиця 3.3)При вивченн? нейронних мереж важливий виб?р оптим?затора. Оптим?затор поширю? помилки по вс?й мереж? та зм?ню? значення параметр?в п?д час кроку навчання. Б?бл?отека Tensorflow забезпечу? готову реал?зац?ю оптим?затора для використання в систем?. Тому було вир?шено перев?рити працездатн?сть р?зних оптим?затор?в на конкретн?й структур?.Таблиця 3.3 – Вплив вибору оптим?затора на точн?сть мереж?Оптим?заторAdamaxMomentumSMORMS3Nesterov momentumТочн?сть0.973010.838030.904320.92387Як видно з таблиц? результат?в, AdamaxOptimizer забезпечу? найкращу точн?сть. Завдання оптим?затора в систем? - м?н?м?зувати функц?ю помилок на конкретному етап? навчання, вказаному як параметр. Щоб уникнути парал?чу системи, рекоменду?ться з часом зменшити значення кроку навчання.AdamaxOptimizer збер?га? тренувальний крок для кожного вагового параметра та експоненц?ального середнього попереднього схилу. Зараз оптим?затор ? одним з найпопулярн?ших оптим?затор?в нейронно? мереж? (рис. 3.3).Рисунок 3.3 – Отримана структура системиОтже, отримана нейронна мережа ма? 7-шарову структуру, ма? величин навчання 5000 епох, використовуючи оптим?затор AdamaxOptimizer та дозволя? отримати точн?сть 97.301% на тестов?й виб?рц?.3.3 Анал?з зображення без текстуВид?лення та анал?з тексту на зображенн? лише один з етап?в роботи програмного продукту. Наступним етапом ? пор?вняння зображення, яке лишилось з зображенням-еталоном, на якому так само був видалений текст. Пор?вняння проходить поп?ксельно з? знаходженням в?дстан? м?ж кольорами у в?дпов?дних п?кселях. Для знаходження в?дстан? використову?ться формула у кольоровому простор? LCH. (формула 3.1)E*= L'kLSL2+ C'kCSC2+ H'kHSH2+RTC'kCSCH'kHSH (3.1)В процес? експерименту було отримано значення р?зниц? E = 0.8, яке да? р?зницю в кольорах, непом?тну для ока. Але оск?льки нам важливо розм?щення та кол?р елемент?в на зображенн?, р?зниця була взята трохи менше, а саме 0.6. Таким чином проходить пор?вняння зображень ? якщо в?дстань б?льше за зазначений пор?г, то вважа?ться, що п?ксел? р?зн?, ? зафарбову?ться в красний кол?р, ?накше – в б?лий.Таким чином, отриму?ться пор?вняння зображень без тексту, в той самий час, проходить анал?з вир?заних сл?в ?з зображення. Пор?вню?ться значення тексту в вир?заних елементах, а пот?м пор?внюються сам? елементи на сп?впад?ння кольор?в. В результат? отриму?мо зображення ?з р?зницею м?ж зображеннями. 3.4 Анал?з вимог користувача до програмного продуктуЯкщо проанал?зувати вимоги до модуля, то можна побачити два типи користувача – кл??нт та програма Наведена дал? схема (рис. 3.4) показу?, що вза?мод?я в?дбува?ться через ?нтерфейс програми. З точки зору користувача, робота з модулем буде зд?йснюватися наступним чином: користувач завантажу? зображення у програму, програма декоду? зображення до потр?бного формату та в?дправля? його нейронн?й мереж?, нейронна мережа вид?ля? весь текст на зображенн? та зам?ня? його на област? зафарбован? одним кольором. П?сля цього програма проводить анал?з окремо зображення без тексту та окремих частин тексту. Отримавши результати обробки окремо, форму?ться зображення з загальними результатами.Рисунок 3.4 – Use Case д?аграма системиПри користуванн? системою сл?д завантажити зображення-еталон та вибрати його в програм?. Пот?м так само треба вибрати вх?дне зображення, яке буде пор?внюватися. Модуль робить запит до навченно? нейронно? мереж? та отриму? зображення з результатами пор?вняння з еталоном. Б?бл?отека дозволя? збер?гати та завантажувати навчену нейронну мережу, тому процес навчання проводиться лише один раз, п?сля чого класиф?катор буде завантажуватись з файлу для анал?зу вх?дного зображення та збер?гатись у к?нц? роботи, не витрачаючи значний час на повторне налаштування.3.5 Кер?вництво користувачаВсе, що потр?бно зробити користувачев?, щоб розпочати роботу з модулем в?зуального тестування – це завантажити зображення у систем?.Вх?дн? зображення для програми зображено на рисунках 3.5 та 3.6. Результати роботи представлен? на рисунку 3.7.Рисунок 3.5 – Еталонне зображенняРисунок 3.6 – Зображення, для пор?внянняРисунок 3.7 – Результати роботи програмиП?сля роботи програми через деякий час на екран? з’явиться зображення з р?зницею м?ж зображеннями, отримане з роботи програми.3.6 Висновки до розд?луУ третьому розд?л? було проанал?зовано датасет зображень ?з текстом. П?сля ствердження виб?рки тестувальних та тренувальних зображень було розглянуто р?зн? арх?тектури майбутнього програмного продукту.Велик? класичн? арх?тектури не приймали участь у моделюванн? через ?х надм?рну складн?сть, отже р?шення приймалось серед менш складних моделей арх?тектур, таких як VGG-11. Наступним етапом стало визначення оптимально? к?лькост? навчальних епох, оск?льки це напряму вплива? на точн?сть. П?сля цього було проведено пор?вняння вбудованих оптим?затор?в, серед яких AdamaxOptimizer показав найб?льшу точн?сть.Також було визначено вза?мод?ю кл??нта з системою, зображена д?аграма роботи модуля ? розглянуто переваги та недол?ки системи такого типу. Було представлено кер?вництво користувача щодо роботи з програмою та проведено анал?з в?дпов?д? програми, яку отриму? кл??нт. РОЗД?Л 4 РОЗРОБЛЕННЯ СТАРТАП-ПРОЕКТУУ даному розд?л? буде розглянуто ключов? особливост? розроблено? системи як майбутнього стартап-проекту. Проект розглядатиметься як система в?зуального тестування.4.1 Опис ?де? про?ктуСпочатку проанал?зу?мо та подамо у вигляд? таблиц? зм?ст ?де? стартап-проекту, можлив? напрямки застосування та основн? вигоди, як? може отримати користувач товару. Ц? характеристики стартап-проекту зображено в таблиц? 4.1.Таблиця 4.1 - Опис ?де? стартап-проектуЗм?ст ?де?Напрямки застосуванняВигоди для користувачаПрограмний додаток для в?зуального тестування.1. Застосування як системи в?зуального тестування на веб-сайтах.Можлив?сть швидко отримати результат тестування.М?н?мальн? витрати на апаратне забезпечення (сервер).2. Застосування як системи в?зуального тестування на ПК.Можлив?сть проводити тестування без завантаження приватно? ?нформац?? на сервер.Тепер зробимо анал?з потенц?йних техн?ко-економ?чних переваг ?де? пор?вняно ?з пропозиц?ями конкурент?в. Результати анал?зу зображено в таблиц? 4.2.Таблиця 4.2 – Визначення сильних, слабких та нейтральних характеристик ?де? проекту№ п/пТехн?ко-економ?чн? характери-тики ?де?Товари/концепц?? конкурент?вW (слабка сторона)N (нейтральна сторона)S (сильна сторона)М?й проектКонку-рент 1Конку-рент 21.Ц?на2000$/ р?к4000$/ р?к5000$/ р?к+2.Прибутки30000$/ р?к40000$/ р?к20000$/ р?к+3.Контроль якост?Анал?-тики та прог-рам?стиАнал?-тики, прог-рам?сти та деяк? кл??нтиПрог-рам?сти+4.Динам?ка галуз?Швид-каПов?-льнаШвид-ка+5.Пост?йн? витрати10000$/ р?к20000$/ р?к15000$/ р?к+6.Зм?нн? витрати5000$ -10000$/ р?к1000$ -2000$/ р?к2000$ -5000$/ р?к+7.Патенти на продуктиНема?Патент на кож-ний проектДек?-лька патен-т?в на винах?д+8.Гнучк? ц?ниЦ?на ?динаЦ?на вар?ю-?ться з року в р?кЦ?на ?дина+Продовження таблицi 4.2№ п/пТехн?ко-економ?чн? характери-тики ?де?Товари/концепц?? конкурент?вW (слабка сторона)N (нейтральна сторона)S (сильна сторона)М?й проектКонку-рент 1Конку-рент 28.Гнучк? ц?ниЦ?на ?динаЦ?на вар?ю-?ться з року в р?кЦ?на ?дина+9.Законо-давч? обмеженняОбмеження на використання приватних даних (голоса) людини – GDRPНема?Обме-ження на к?ль-к?сть розро-бник?в+4.2 Технолог?чний аудит ?де? про?ктуВизначимо технолог?чну зд?йсненн?сть ?де? проекту за допомогою анал?зу таких складових, як технолог??, за якою буде виготовлено товар зг?дно ?де? проекту, ?снування таких технолог?й, чи ?х необх?дно розробити / доробити, доступн?сть таких технолог?й авторам проекту. Результати даного анал?зу зображено в таблиц? 4.3.Таблиця 4.3 – Технолог?чна зд?йсненн?сть ?де? проекту?дея проектуТехнолог?? ?? реал?зац??Наявн?сть технолог?йДоступн?сть технолог?йПрограмний додаток для проведення в?зуального тестування.Технолог?я проектування та розробки системи для вилучення ознак з зображення.ТакДан? технолог?? доступн?, але разом з ними необх?дно використати подальш? методи (класиф?катори), задля зб?льшення точност? ?дентиф?кац??.Технолог?я проектування та розробки класиф?катор?вsklearn.ТакДан? технолог?? доступн?, однак, штатного функц?оналу все ще не вистача? для вир?шення поставлених задач.Технолог?я зд?йснення пор?вняльного анал?зу sklearn. .neighbors.LocalOutlierFactorТакДан? технолог?? доступн?.Обрана технолог?я реал?зац?? ?де? проекту: технолог?я вилучення ознак з зображення, класиф?кац?? та пор?вняння (sklearn).4.3 Анал?з ринкових можливостей запуску стартап-про?ктуПроведемо анал?з попиту: наявн?сть попиту, обсяг, динам?ка розвитку ринку. Результати даного анал?зу зображено в таблиц? 4.4. Таблиця 4.4 – Попередня характеристика потенц?йного ринку стартап-проекту№ п/пПоказники стану ринку (найменування)Характеристика1К?льк?сть головних гравц?в, од32Загальний обсяг продаж, грн/ум.од300?0003Динам?ка ринку (як?сна оц?нка)Зроста?4Наявн?сть обмежень для входу (вказати характер обмежень)Висока точн?сть розп?знавання, швидкод?я, невибаглив?сть до ресурс?в5Специф?чн? вимоги до стандартизац?? та сертиф?кац??Нема?, GDRP6Середня норма рентабельност? в галуз? (або по ринку), %80Таким чином, за попередн?м оц?нюванням, ринок ? привабливим для входження. Надал? визначимо потенц?йн? групи кл??нт?в, ?х характеристики, та сформу?мо ор??нтовний перел?к вимог до товару для кожно? групи. Ц? дан? зображено в таблиц? 4.5.Таблиця 4.5 – Характеристика потенц?йних кл??нт?в стартап-проекту№ п/пПотреба, що форму? ринокЦ?льова аудитор?я (ц?льов? сегменти ринку)В?дм?нност? у повед?нц? р?зних потенц?йних ц?льових груп кл??нт?вВимоги споживач?в до товару1Система в?зуального тестування у веб-додаткахМалий б?знесМалому б?знесу буде потр?бно мати панель для адм?н?страц?? наявних в систем? акаунт?в.При цьому заплативши м?н?мум грошей на сервери.Кл??нти прагнуть збереженню ?х особистих даних (зображень). Також прагнуть точност? та швидкод?? в?д системи.2Система в?зуального тестування у desktop-верс??Малий б?знесУ малого б?знесу може виникнути потреба у ?нтеграц?? дано? системи в?зуального тестування з ?ншими системами тестуванняКл??нти прагнуть збереженню ?х особистих даних (зображень). Також прагнуть точност? та швидкод?? в?д системи.П?сля визначення потенц?йних груп кл??нт?в проведемо анал?з ринкового середовища: складемо таблиц? фактор?в, що сприяють ринковому впровадженню проекту (таблиця 4.6), та фактор?в, що йому перешкоджають (таблиця 4.7).Таблиця 4.6 – Фактори загроз№ п/пФакторЗм?ст загрозиМожлива реакц?я компан??1В?дсутн?сть попитуБ?знес може не оц?нити переваги продукту, або ж у ц?лому в?дмовитися в?д ведення нарадАкцентувати увагу на кл??нтах, що вже скористалися продуктом, якщо так? ?, навести ?нфограф?ку результативност? (оч?кувану), запропонувати знижку потенц?йному кл??нту в рамках тендеру.2Неточне розп?знаванняПотрапляння шум?в на зображення, або пошкодження файлу можуть привести до зниження точност? системи в?зуального тестування Розробка ? випуск оновлення ядра системи, де виправлена ця проблема.Таблиця 4.7 – Фактори можливостей№ п/пФакторЗм?ст можливост?Можлива реакц?я компан??1Кобренд?нгПропозиц?я в?д певно? компан??, що спец?ал?зу?ться на системах в?зуального тестування, розробити сп?льний продуктВид?лення частини штату на реал?зац?ю проекту, п?дготовка акц?йних пропозиц?й по переходу на новий продукт ?снуючим кл??нтам. Надал? проведемо анал?з пропозиц??: визначимо загальн? риси конкуренц?? на ринку. Результати даного анал?зу зображен? в таблиц? 4.8.Таблиця 4.8 – Ступеневий анал?з конкуренц?? на ринкуОсобливост? конкурентного середовищаВ чому проявля?ться дана характеристикаВплив на д?яльн?сть п?дпри?мства (можлив? д?? компан??, щоб бути конкурентоспроможною)1. Чиста конкуренц?яГравц? ринку не мають явних переваг один над однимБ?льш виг?дн? умови на тендерах, агресивний маркетинг2. Рег?ональна конкуренц?яГравц? ринку – ?нтернац?ональн? п?дпри?мстваВих?д на т? ринки, як? ще не зайнят? конкурентами3. Внутр?шньогалузева конкуренц?яГравц? ринку знаходяться в одн?й галуз? – розробц? ПЗ4. Товарно-видова конкуренц?яУс? продукти гравц?в ринку мають одне призначенняРозробка найб?льш ?нту?тивного ?нтерфейсу, розробка ун?кальних граф?чних пакет?в, оптим?зац?я алгоритм?в (щоб анал?з проходив швидше, н?ж у конкурент?в)5. Конкурентн? переваги нец?нов?Продукти в?др?зняються гнучк?стю, функц?оналом (незначно) ? над?йн?стю.У маркетингу неявно пор?внювати власний продукт з ?ншими, робити виг?дн? ц?нов? пропозиц??6. Марочна конкуренц?яЗначна увага прид?ля?ться бренду, що розробив продуктКобренд?нгТепер визначимо та об?рунту?мо фактори конкурентоспроможност?, як? зображен? в таблиц? 4.9.Таблиця 4.9 – Об?рунтування фактор?в конкурентоспроможност?№ п/пФактор конкурентоспроможност?Об?рунтування (наведення чинник?в, що роблять фактор для пор?вняння конкурентних проект?в значущим)1Невибаглив?сть до апаратних ресурс?в (сервер?в). А отже дешевизна апаратних ресурс?в, потр?бних для нашо? системиВ продукт? використане по?днання класичних метод?в розп?знавання тексту та метод?в Машинного навчання2Швидкод?яВ продукт? використане по?днання класичних метод?в розп?знавання тексту та метод?в Машинного навчання3?нтеграц?яПродукт може бути використаний в будь-якому веб-сайт? захищеному протоколом ssl. Продукт не потребу? придбання спец?ал?зованого апаратного забезпечення4Модульн?стьЗамовник може обирати тип продукту (веб-додаток, або desktop-верс?ю)5Гнучк?стьКожен замовник ма? можлив?сть замовити розширення функц?оналу продукту п?д його конкретн? задач?Таблиця 4.10 – Анал?з конкуренц?? в галуз? за М. ПортеромСкладов? анал?зуПрям? конкуренти в галуз?Потенц?йн? конкурентиПостачальни-киКл??нтиТовари-зам?нникиДинам?ка галуз?, продуктова л?н?я, бар’?ри проникнен-няНаявн?сть товарних знак?в, доступ до ресурс?в, патенти на продуктиКонцентрац?я постачальни-к?в, диференц?ац?я витратР?вень чутливо-ст? до зм?ни ц?н, прибутки, контроль якост?Ц?на, лояльн?сть спожива-ч?вВиснов-ки:Конкурен-ц?я не ? ?нтенсив-ною, адже даний ринок ще н?ким не зайнятий.Для входу на ринок необх?дно створити товарний знак та написати бета-верс?ю програм-ного продукту. На даний момент потенц?й-них конкурент?в нема?.Постачаль-ники не диктують умови роботи на ринку, бо програмному продукту не потр?бно постачання.Кл??нти диктують умови роботи на ринку, бо вони ? ?диним джерелом прибутку компан??.При наявност? товар?в зам?нник?в необх?дно буде зменшува-ти ц?ну програм-ного продукту чи створю-вати ПЗ для ?нших техн?чних систем.За визначеними факторами конкурентоспроможност? проведемо анал?з сильних та слабких стор?н стартап-проекту. Результати даного анал?зу зображено в таблиц? 4.11.Таблиця 4.11 – Пор?вняльний анал?з сильних та слабких стор?н системи ?VisualT?№ п/пФактор конкуренто-спроможност?Бали 1-20Рейтинг товар?в-конкурент?в у пор?внянн? з VisualT–3–2–10+1+2+31?нтеграц?я16*2Модульн?сть15*3Гнучк?сть17*Тепер проведемо SWOT-анал?з на основ? вид?лених загроз ? можливостей, та сильних ? слабких стор?н проекту. SWOT-матриця зображено в таблиц? 4.12.Таблиця 4.12 – SWOT-анал?з стартап-проектуСильн? сторони: автоматизац?я в?зуального тестування, швидкод?яСлабк? сторони: ?нтеграц?я ма? пройти ?з залученням розробник?в на сторон? замовникаМожливост?: Кобренд?нгЗагрози: Неточн?сть розп?знавання, в?дсутн?сть попиту, порушення прав конфеденц?йност? споживач?в (GDRP)На основ? SWOT-анал?зу розробимо альтернативи ринково? повед?нки для виведення стартап-проекту на ринок та ор??нтований оптимальний час ?х ринково? реал?зац?? з огляду на потенц?йн? проекти конкурент?в, що можуть бути виведен? на ринок. Дан? альтернативи зображено в таблиц? 4.13.Таблиця 4.13 – Альтернативи ринкового впровадження стартап-проекту№ п/пАльтернатива (ор??нтовний комплекс заход?в) ринково? повед?нкиЙмов?рн?сть отримання ресурс?вСтроки реал?зац??1Реал?зац?я можливост? використання системи не т?льки на веб-сайтах, а й ПКСередня18 м?сяц?в2Створення системи ?нтеграц?? з додатками, як? використовуються для тестуванняВисока24 м?сяц?3Розробка MVPВисока12 м?сяц?вСеред даних альтернатив було обрано третю альтернативу, адже строки ?? реал?зац?? найменш? та ? ймов?рн?сть отримання ресурс?в.4.4 Розроблення ринково? стратег?? про?ктуДля розроблення ринково? стратег?? першим кроком необх?дно описати ц?льов? груп потенц?йних споживач?в, як? можна побачити в таблиц? 4.14.Таблиця 4.14 – Виб?р ц?льових груп потенц?йних споживач?в№ п/пОпис проф?лю ц?льово? групи потенц?йних кл??нт?вГотовн?сть споживач?в сприйняти продуктОр??нтов-ний попит в межах ц?льово? групи (сегменту)?нтенсив-н?сть конкуренц?? в сегмент?Простота входу у сегмент1.Малий б?знесСередня5-10 п?дпри-?мств в р?кСередняСередня2.Середн?й б?знесГотов?5-10 п?дпри- ?мств в р?кСлабкаСередня3.Великий б?знесГотов?3-5 заклад?в в р?кСлабкаСкладнаБуло обрано ц?льову групу п?дпри?мств групи малого б?знеса.Для роботи в обраних сегментах ринку необх?дно сформувати базову стратег?ю розвитку, яку ображено в таблиц? 4.15.Таблиця 4.15 – Визначення базово? стратег?? розвиткуСтратег?я охоплення ринкуКлючов? конкурентоспроможн? позиц?? в?дпов?дно до обрано? альтернативиБазова стратег?я розвиткуКонцентрац?я на потребах одного ц?льового сегменту – веб-сайтах.Створений продукт ? дешевим у використанн? та ?новац?йнимСтратег?я спец?ал?зац??.Наступним кроком ? виб?р стратег?? конкурентно? повед?нки, яку зображено в таблиц? 4.16.Таблиця 4.16 – Визначення базово? стратег?? конкурентно? повед?нкиЧи ? проект ?першопрох?д-цем? на ринку?Чи буде компан?я шукати нових споживач?в, або забирати ?снуючих у конкурент?в?Чи буде компан?я коп?ювати основн? характеристики товару конкурента, ? як??Стратег?я конкурентно? повед?нкиТак.Компан?я буде шукати нових споживач?в, але ?, за потреби, буде намагатися забирати ?снуючих у конкурент?в.Компан?я, за потреби, буде коп?ювати характеристики конкурент?в.Стратег?я заняття конкурентно? н?ш?.Тепер розробимо стратег?ю позиц?онування, що поляга? у формуванн? ринково? позиц?? (комплексу асоц?ац?й), за яким споживач? мають ?дентиф?кувати торг?вельну марку/проект. ?? зображено в таблиц? 4.17.Таблиця 4.17 – Визначення стратег?? позиц?онуванняВимоги до товару ц?льово? аудитор??Базова стратег?я розвиткуКлючов? конкурентоспро-можн? позиц?? власного стартап-проектуВиб?р асоц?ац?й, як? мають сформувати комплексну позиц?ю власного проекту (три ключових)Система розп?знавання ма? бути точною.Система ? невибагливою до ресурс?вСистема ? щвидкоюПроведен-ня крупних оновлень (оптим?-зац?я розрахун-к?в), створення додатков-ого функц?она-лу.Товар ? ?новац?йним (в тренд?) та дешевим у використанн? пор?вняно з альтернативами Швидке пор?вняння зображення ?з еталоном, можлив?сть роботи оффлайн, невибаглив?сть до ресурс?в 4.5 Розроблення маркетингово? програми стартап-про?ктуСформу?мо маркетингову концепц?ю товару, який отрима? споживач. В таблиц? 4.18 зображено результати попереднього анал?зу конкурентоспроможност? товару. Таблиця 4.18 – Визначення ключових переваг концепц?? потенц?йного товару№ п/пПотребаВигода, яку пропону? товарКлючов? переваги перед конкурентами (?снуюч? або так?, що потр?бно створити)1.Проведення автоматичного в?зуального тестування. Точне проведення автоматичного в?зуального тестування.Доступн?сть для компан?й з невеликим кап?талом.2.Невибаглив?сть до апаратних ресурс?вНевибаглив?сть до апаратних ресурс?в кл??нтаДоступн?сть для компан?й з невеликим кап?талом.3.Швидкод?яШвидкод?я системиБ?льша швидк?стьНадал? розробимо трир?вневу маркетингову модель товару: уточнимо ?дею продукту, його ф?зичн? складов?, особливост? процесу його надання. Дана модель зображена в таблиц? 4.19.Таблиця 4.19 – Опис трьох р?вн?в модел? товаруР?вн? товаруСутн?сть та складов??. Товар за задумомПрограмний продукт – система в?зуального тестування, яка дозволя? користувачу пор?внювати зображення та текст.??. Товар у реальному виконанн?Властивост? / характеристики:1. Можлив?сть завантажити необх?дн? зображення у р?зному формат?2. Можлив?сть провести пор?вняння зображення. Як?сть: програмний продукт пройшов вс? етап? тестування та готовий до використання.Файл з розширенням “.py”, в?ртуальне середовище.Марка: назва орган?зац??-розробника ?AE?, назва товару ?VisualT?.Продовження таблиц? 4.19Р?вн? товаруСутн?сть та складов????. Товар ?з п?дкр?пленнямСпец?ал?ст ?з впровадження встановлю? ПЗ.В?дд?л розробки п?дтриму? житт?д?яльн?сть ПЗ.Захист програмного продукту буде орган?зовано за допомогою ноу-хау.Тепер визначимо ц?нов? меж?, якими необх?дно керуватись при встановленн? ц?ни на потенц?йний товар, яке передбача? анал?з ц?ни на товари-аналоги або товари субститути, а також анал?з р?вня доход?в ц?льово? групи споживач?в. Анал?з проводився експертним методом ? його результати зображено в таблиц? 4.20.Таблиця 4.20 – Визначення меж встановлення ц?нР?вень ц?н на товари-зам?нникиР?вень ц?н на товари-аналогиР?вень доход?в ц?льово? групи споживач?вВерхня та нижня меж? встановлення ц?ни на товар/послугу3000-5000 $/р?к5000-6000 $/р?к12000-50000 $/р?кНижня межа – 3000 $/р?к, верхня межа - 5000 $/р?кНадал? визначимо оптимальну систему збуту, в межах якого прийма?ться р?шення. Дану систему зображено в таблиц? 4.21. Таблиця 4.21 – Формування системи збутуСпециф?ка закуп?вельно? повед?нки ц?льових кл??нт?вФункц?? збуту, як? ма? виконувати постачальник товаруГлибина каналу збутуОптимальна система збутуКл??нт виплачу? грош? на р?к, тод? до нього приходить спец?ал?ст ?з впровадження ?нформац?йних систем ? встановлю? ПЗ на комп’ютер кл??нта.Встановити програмний продукт на комп’ютери кл??нт?в.Один посередник – спец?ал?ст по впровадженню ?нформац?йних систем.Канал збуту одного р?вня.Тепер розробимо концепц?ю маркетингових комун?кац?й, що спира?ться на попередньо обрану основу для позиц?онування, визначену специф?ку повед?нки кл??нт?в. Дану концепц?ю зображено в таблиц? 4.22. Таблиця 4.22 – Концепц?я маркетингових комун?кац?йСпециф?ка повед?нки ц?льових кл??нт?вКанали комун?кац?й, якими користуються ц?льов? кл??нтиКлючов? позиц??, обран? для позиц?онува-нняЗавдання рекламного пов?домленняКонцепц?я рекламного зверненняКл??нт намага?ться знайти нов? методи проведення тестування.Мережа ?нтернет, соц?альн? мереж?, в?део-портали.Швидкод?я, невибаглив?сть до апаратних ресурс?в, ?новац?йн?сть ПЗ, в?дносно невелика варт?сть ПЗ.Продемонструва-ти швидкод?ю, дешевизну експлуатац??, ?новац?йн?сть та в?дносну невелику варт?сть ПЗ.Показати можлив?сть за невелику ц?ну зац?кавити користувач?в свого вебсайту.4.6 Висновки до розд?луВ даному розд?л? було повн?стю виконано перший етап розроблення стартап-проекту, а саме, виконано маркетинговий анал?з стартап-проекту. За допомогою нього можна сказати, що ?сну? можлив?сть ринково? комерц?ал?зац?? проекту, адже на ринку програм систем в?зуального тестування наявний попит на системи в?зуального тестування, до того ж рентабельн?сть роботи ? досить високою.З огляду на потенц?йну групу кл??нт?в, а саме, малий б?знес, що ма? вебсайт з приватним контентом для сво?х кл??нт?в, та ?новац?йн?сть технолог?? ? велик? перспективи впровадження даного програмного забезпечення. Для ринково? реал?зац?? проекту доц?льно обрати таку альтернативу впровадження: створення MVP та впровадження його в невелику к?льк?сть веб-сайт?в малих б?знес?в.ВИСНОВКИУ маг?стерськ?й дисертац?? була розглянута тема автоматизованого в?зуального тестування. Актуальн?сть задач? поляга? у недосконалост? аналог?в серед готових р?шень та довол? стр?мкому розповсюдженн? нейронних мереж в ус?х сферах житт?д?яльност?. Метою дипломно? роботи була розробка модуля пор?вняння зображень з попередн?м анал?зом найоптимальн?шо? арх?тектури нейронно? мереж?.У першому розд?л? була розглянута загальна теор?я розп?знавання зображень. Був наведений анал?з актуальност? задач? розп?знавання та пор?вняння ?снуючих п?дход?в та обрано метод, який найкраще п?дходить для нашо? задач?. Також були проанал?зован? сучасн? б?бл?отеки для роботи з нейронними мережами, одна з яких була використана у дан?й дипломн?й робот?. Приклади використання систем розп?знавання тексту охопили сферу безпеки, осв?ти та соц?альних мереж.У другому розд?л? б?льш детально було розглянуто поставлену задачу. Було приведено критер?? оц?нювання якост? роботи, серед них найпопулярн?ший – точн?сть нейронно? мереж?. Було розглянуто р?зн? алгоритми розп?знавання тексту та ?х етапи, один з яких ? представлений в дан?й робот?.Трет?й розд?л присвячений практичн?й реал?зац?? програмного продукту. Було проведено глибокий пор?вняльний анал?з роботи р?зних арх?тектур нейронно? мереж?, пом?ж них вибрана найкраща для подальшо? роботи. Також проанал?зовано точн?сть розп?знавання при навчанн? мереж? на р?зн?й к?лькост? епох та при використанн? р?зних представлених у б?бл?отец? оптим?затор?в. П?сля чого наведено схеми роботи готового програмного продукту та результати його роботи.Система здатна проводити пор?вняння зображень з еталоном з високою точн?стю. У подальшому модуль можна розширити на б?льшу к?льк?сть шрифт?в для тексту та реал?зувати паралельну обробку символ?в чи тексту на одному зображенн?.ПЕРЕЛ?К ПОСИЛАНЬДивак М.П. Методичний пос?бник з дисципл?ни ?Системний анал?з?. Терноп?ль: Терноп?льська академ?я народного господарства, 2004. 136 с.B. Pang and L. Lee. Opinion mining and sentiment analysis. Foundations and Trends in Information Retrieval archive. Foundations and Trends in Information Retrieval archive. 2008. Vol. 2. P. 90 – 94.T. Mikolov et al. Efficient estimation of word representations in vector space. Computer science. 2013. Vol. 3. P. 37 – 45.K. S. Tai et al. Improved semantic representations from tree-structured long short-term memory network. Computational Linguistics. 2015. Vol. 2. P. 6 – 11.Michael A. Nielsen. Neural Networks and Deep Learning. URL: Уоссермен Ф. Нейрокомпьютерная техника: Теория и практика. Москва: Мир, 1992. 184 c. ?ван Гудфелов, Йоша Бенг?о, Арон Коурв?лле. ?Машинне навчання? URL: .Кононюк А.Ю. Нейронн? мереж? ? генетичн? алгоритми. Ки?в: Корн?йчук, 2008. 446 с. Савчук Т.О., Ярема ?.О. Використання нейронних мереж для розп?знавання символ?в. В?нниця: В?нницький нац?ональний техн?чний ун?верситет, 2005. 84 с.Zaccone G. Deep Learning with TensorFlow. Birmingham: Packt Publishing, 2017. 300p.Местецький Л.М. Математичн? методи розп?знавання образ?в. Москва: МГУ, 2004. 239 с.Копча-Горячк?на Г.Е. Теор?я розп?знавання образ?в. Ужгород: Видавництво ДВНЗ ?Ужгородського нац?онального ун?верситету?, 2016. 59 с.Хайкин С. Нейронные Сети: Полный Курс. Онтар?о: McMaster University, 2006. 1104 с. Wang T., Wu D., Coates A. End-To-End Text Recognition With Convolutional Neural Networks. Stanford: Stanford University, 2012. 60 p. Bishop C. Pattern Recognition and Machine Learning. New York: Springer New York, 2016. 738 p. Raschka S. Python Machine Learning. Birmingham: Packt Publishing, 2005. 456 p. Locascio N. Fundamentals of Deep Learning. Sebastopol: O'Reilly Media Inc, 2017. 298 p. Плюси та м?нуси використання MVC. URL: ДОДАТОК А Л?СТИНГ ПРОГРАМИfrom PIL import Imageimport cv2import numpy as npimport trimport matplotlib.pyplot as pltfrom colormath.color_objects import sRGBColor, LabColorfrom colormath.color_conversions import convert_colorfrom colormath.color_diff import delta_e_cie2000IMAGE_COLOR_DISTANCE = 0.1TEXT_COLOR_DISTANCE = 2.3TEXT_DIFFERENCE = 0.5BACKGROUND = Truecolor_map = { 'red': [255, 0, 0], 'black': [0, 0, 0], 'white': [255, 255, 255]}def color_distance(color_1, color_2): color1_rgb = sRGBColor(color_1[0], color_1[1], color_1[2]) color2_rgb = sRGBColor(color_2[0], color_2[1], color_2[2]) color1_lab = convert_color(color1_rgb, LabColor) color2_lab = convert_color(color2_rgb, LabColor) return delta_e_cie2000(color1_lab, color2_lab)def compare_images(template, actual, distance): difference = [] difference_coef = 0 for i, row in enumerate(template): difference.append([]) for j, cell in enumerate(template[i]): if color_distance(template[i][j], actual[i][j]) > distance: difference_coef += 1 difference[i].append(color_map['red']) elif not BACKGROUND: difference[i].append(color_map['white']) else: difference[i].append(template[i][j]) difference_coef = difference_coef / (len(template) * len(template[0])) return difference, difference_coefdef fill_text(image, texts): for text in texts: for i in range(text[0][2]): for j in range(text[0][3]): image[text[0][1] + j][text[0][0] + i] = color_map['white']def get_max_text(texts_1, texts_2): max_texts = [] for i in range(len(texts_1)): max_text = [] for j in range(2): max_text.append(min([texts_1[i][0][j], texts_2[i][0][j]])) for j in range(2): max_text.append(max([texts_1[i][0][j + 2], texts_2[i][0][j + 2]])) max_texts.append([max_text] + [texts_1[i][1], texts_2[i][1]]) return max_textsdef get_image_part(image, coords): new_image = [] for j in range(coords[3]): new_image.append([]) for i in range(coords[2]): new_image[j].append(image[coords[1] + j][coords[0] + i]) return new_imagedef recognize(img): if isinstance(img, numpy.ndarray): height, width = img.shape if height != 32: new_width = int(width * 32 / height + 0.5) img_arr = cv2.resize(img, (new_width, 32), cv2.INTER_CUBIC) else: img_arr = img else: if isinstance(img, str): img_pil = Image.open(img).convert("L") elif isinstance(img, Image.Image): if img.mode != "L": img_pil = img.convert("L") else: img_pil = img else: raise NotImplementedError() if img_pil.height != 32: new_width = int(img_pil.width * 32 / img_pil.height + 0.5) img_pil = img_pil.resize((new_width, 32), Image.BICUBIC) img_arr = numpy.asarray(img_pil, dtype="float32") / 255. height, width = img_arr.shape size = numpy.array([width, height], dtype="int32") num = _libc.tr_recognize( numpy.ctypeslib.as_ctypes(img_arr), numpy.ctypeslib.as_ctypes(size), 2, ) if num <= 0: return None, None crnn_prob = numpy.zeros((num,), "float32") crnn_index = numpy.zeros((num,), "int32") if not _read(crnn_prob, FLAG_CRNN_PROB): return None, None if not _read(crnn_index, FLAG_CRNN_INDEX): return None, None txt = "" prob = 0. idx_pre = -1 count = 0 for pos in range(num): idx = crnn_index[pos] if idx > 0: if idx != idx_pre: txt += char_table[idx] # txt += char_table[idx] count += 1 prob += crnn_prob[pos] idx_pre = idx return txt, float(prob / max(count, 1))def detect(img, flag=FLAG_RECT): if isinstance(img, str): img_pil = Image.open(img).convert("L") elif isinstance(img, Image.Image): if img.mode != "L": img_pil = img.convert("L") else: img_pil = img else: raise NotImplementedError() img_arr = numpy.asarray(img_pil, dtype="float32") / 255 size = numpy.array([img_pil.width, img_pil.height], dtype="int32") num = _libc.tr_detect( numpy.ctypeslib.as_ctypes(img_arr), numpy.ctypeslib.as_ctypes(size), 2, flag ) if num <= 0: return None if flag == FLAG_RECT: rect_arr = numpy.zeros((num, 4), "float32") elif flag == FLAG_ROTATED_RECT: rect_arr = numpy.zeros((num, 5), "float32") else: raise NotImplementedError(flag) if not _read(rect_arr, flag): return None return rect_arrdef _sort_blocks(blocks): def block_cmp(b1, b2): list1 = [b1[0][0], b1[0][1], b1[0][2], b1[0][3]] list2 = [b2[0][0], b2[0][1], b2[0][2], b2[0][3]] if len(b1[0]) == 4: list1[0] += list1[2] / 2 list1[1] += list1[3] / 2 list2[0] += list2[2] / 2 list2[1] += list2[3] / 2 flag = 1 if list1[0] > list2[0]: list1, list2 = list2, list1 flag = -1 if list2[1] + list1[3] / 2 < list1[1]: return flag return -flag blocks.sort(key=cmp_to_key(block_cmp), reverse=False)def run(img, px=3, py=0): if isinstance(img, str): img_pil = Image.open(img).convert("L") elif isinstance(img, Image.Image): if img.mode != "L": img_pil = img.convert("L") else: img_pil = img else: raise NotImplementedError() rect_arr = detect(img_pil, FLAG_RECT) if rect_arr is None: return [] rect_arr = numpy.int0(rect_arr) results = [] for rect in rect_arr: x, y, w, h = rect x -= px w += px * 2 line_pil = img_pil.crop((x, y, x + w, y + h)) txt, prob = recognize(line_pil) if txt != "": results.append(((x, y, w, h), txt, prob)) _sort_blocks(results) return resultstemplate = cv2.imread('1.png')actual = cv2.imread('2.png')template_1 = cv2.imread('1.png')actual_1 = cv2.imread('2.png')print('Images downloaded')texts_1 = tr.run('1.png')texts_2 = tr.run('2.png')print('Text recognized')max_text = get_max_text(texts_1, texts_2)fill_text(template_1, max_text)fill_text(actual_1, max_text)# result_image = template_1result_image, coef = compare_images(template_1, actual_1, IMAGE_COLOR_DISTANCE)print('Images without text compared')for text in max_text: new_template = get_image_part(template, text[0]) new_actual = get_image_part(actual, text[0]) _, text_difference = compare_images(new_template, new_actual, TEXT_COLOR_DISTANCE) for i in range(text[0][2]): for j in range(text[0][3]): if text[1] != text[2] or text_difference > TEXT_DIFFERENCE: result_image[text[0][1] + j][text[0][0] + i] = color_map['red'] elif not BACKGROUND: result_image[text[0][1] + j][text[0][0] + i] = color_map['white']plt.imshow(result_image)plt.show() ................
................

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

Google Online Preview   Download