«КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ ІМЕНІ ІГОРЯ СІКОРСЬКОГО»
ІНСТИТУТ ПРИКЛАДНОГО СИСТЕМНОГО АНАЛІЗУ
КАФЕДРА МАТЕМАТИЧНИХ МЕТОДІВ СИСТЕМНОГО АНАЛІЗУ
На правах рукопису До захисту допущено
УДК 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.2019
2. Перший розділ. Огляд літературно- інформаційних джерел. Понятійно- категоріальний апарат. Характеристика об’єкта
16.09.2019—27.09.2019
3. Другий розділ. Розгляд існуючих методів для аналізу та обробці зображень та тексту
30.09.2019—18.09.2019 4. Третій розділ. Імплементація отриманих
результатів у програмний продукт.
Тестування програми
21.10.2019—15.11.2019 5. Четвертий розділ. Стартап-проект 18.11.2019—21.11.2019 6. Концептуальні висновки. Перспективи
розвитку отриманих рішень
22.11.2019—26.11.2019
Студент Є.О.Абібулаєв
Науковий керівник дисертації М.В.Дідковська
РЕФЕРАТ
Магістерська дисертація: 68 с., 12 рис., 25 табл., 18 джерел.
Здійснено порівняльний аналіз різних підходів порівняння зображень як складової запропонованої автоматизованої системи підтримки прийняття рішень для проведення автоматизованого візуального тестування.
Метою запропонованої системи є зіставлення зображень та знаходження відмінностей в стилі, для підвищення якості системи візуального тестування.
Предметом дослідження є побудування системи візуального тестування з допомогою методів машинного навчання.
Об’єктом дослідження є зображення інтерфейсу, отримані в ході роботи інших програм.
Система проводить тестування в декілька етапів: виділення тексту, порівняння зображення без тексту, порівняння тексту та отримання загального результату. Згорткова нейронна мережа дає змогу виділити текст на зображенні та провести класифікацію виділеного тексту. Ціллю є виділення границь символу та його вилучення з загального зображення. Для цього були розглянуто декілька варіантів розпізнавання символів, а саме: розпізнавання окремих символів, розпізнавання тексту.
Реалізація данної концепції була імплементована та протестована на відкритому наборі даних. Виділення тексту окремо від зображення та їх аналіз окремо один від одного показало більш точні результати з меншою кількістю помилок на контурі символів. Подальше дослідження може включати використання більш досконалих моделей для виділення тексту, а також розробка більш складних метрик для оцінки результатів подібних моделей.
ВІЗУАЛЬНЕ ТЕСТУВАННЯ, РОЗПІЗНАВАННЯ ТЕКСТУ, ЗГОРТКОВІ НЕЙРОННІ МЕРЕЖІ, ЗГЛАДЖУВАННЯ ШРИФТІВ, АВТОМАТИЧНЕ ТЕСТУВАННЯ
ABSTRACT
Master's Thesis: 68 pages, 12 figures, 25 tables, 18 sources.
Comparative 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
ЗМІСТ
Вступ...8
РОЗДІЛ 1 АНАЛІЗ ЗАДАЧІ ВІЗУАЛЬНОГО ТЕСТУВАННЯ...10
1.1 Об’єкт та предмет дослідження...10
1.2 Огляд існуючих рішень...12
1.3 Поточний стан технологій оптичного розпізнавання тексту...13
1.4 Загальний алгоритм оптичного розпізнавання тексту...13
1.5 Ознаки символів, використовувані для автоматичного розпізнавання...14
1.5.1 Ознаковий метод...14
1.5.2 Еталоні методи...15
1.5.3 Основні підходи та рішення...16
1.6 Шрифт залежні та шрифт незалежні алгоритми...17
1.6.1 Алгоритм розпізнавання класу шрифтових методів...17
1.6.2 Алгоритм розпізнавання класу безшрифтових методів...19
1.8 Використання штучної нейронної мережі...21
1.9 Висновки до розділу...24
РОЗДІЛ 2. ПРОЕКТУВАННЯ СИСТЕМИ...26
2.1. Опис предметної області...26
2.2 Визначення вимог та завдань...27
2.3 Опис функціоналу системи...27
2.4 Опис нейронної мережі...28
2.5 Метод попередньої обробки...31
2.6 Сегментація...33
2.7 Висновки до розділу...34
РОЗДІЛ 3 АНАЛІЗ АРХІТЕКТУРИ ПРОГРАМНОГО ПРОДУКТУ...36
3.1 Вибір та аналіз датасету програмного продукту...36
3.2 Вибір та аналіз архітектури програмного продукту...36
3.3 Аналіз зображення без тексту...40
3.4 Аналіз вимог користувача до програмного продукту...41
3.5 Керівництво користувача...43
3.6 Висновки до розділу...45
РОЗДІЛ 4 РОЗРОБЛЕННЯ СТАРТАП-ПРОЕКТУ...47
4.1 Опис ідеї проєкту...47
4.2 Технологічний аудит ідеї проєкту...49
4.3 Аналіз ринкових можливостей запуску стартап-проєкту...51
4.4 Розроблення ринкової стратегії проєкту...58
4.5 Розроблення маркетингової програми стартап-проєкту...60
4.6 Висновки до розділу...64
ВИСНОВКИ...65
ПЕРЕЛІК ПОСИЛАНЬ...67
ДОДАТОК А ЛІСТИНГ ПРОГРАМИ...69
ВСТУП
При розробці будь-якого програмного продукту одним із найбільш важливих факторів, які будуть впливати на його конкурентоспроможність, є його інтерфейс. Тому компанії витрачають досить значну частину бюджету проекту для залучення дизайнерів, які зможуть створити «ідеальний» дизайн.
Але в процесі розвитку програмного продукту можуть змінюватися вимоги, цілі, а, як результат, і інтерфейс. До того ж, іноді ці зміни значні, наприклад зміна цільової аудиторії чи навіть повна зміна напрямку діяльності, а іноді зміни можуть бути зовсім мізерні, а саме треба змістити логотип на один піксель. Тому добре було б мати який-небудь інструмент, що буде показувати нам ці зміни в інтерфейсі. Тут на допомогу і приходить візуальне тестування.
Причому, зараз тільки починають з’являтися готові рішення для автоматизованого візуального тестування, але все ж більшість роботи проводиться вручну.
Таким чином, метою роботи є розробка системи вiзуального тестування.
Для досягнення цих цілей вирішені наступні завдання:
1. Проведено аналіз існуючих підходів для визначення найліпшої стратегії реалізації модуля.
2. Проведено аналіз різних архітектур модуля тестування.
3. Реалізовано таку систему у вигляді десктоп-додатку.
Об’єктом дослідження є підходи та методи обробки та розпізнавання зображень та їх порівняння.
Предметом дослідження є системи порівняння зображень.
Наукова новизна отриманих результатів у тому, що:
1) Запропоновано застосування згорткової нейронні мережі для знаходження та аналізу тексту в системах візуального тестування;
2) Запропоновано алгоритм для вирiшення проблеми згладжування шрифтів.
Практичними результатами роботи є розробка архітектури системи візуального тестування та її реалізація.
Робота складається з 4 розділів. В першому розділі розглядаються існуючі системи візуального тестування. Другий розділ присвячений огляду алгоритмів розпізнавання тексту. В третьому розділі описано особливості практичної реалізації системи візуального тестування, а також опис технології нейронної мережі завдяки якій вирішено поставлену задачу. Четвертий розділ присвячений огляду особливостей розробки стартап-проекту на основі даних досліджень.
РОЗДІЛ 1 АНАЛІЗ ЗАДАЧІ ВІЗУАЛЬНОГО ТЕСТУВАННЯ 1.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 Метод попередньої обробки
Необхідні дані піддаються декільком етапам попередньої обробки, які будуть використані в описовому етапі аналізу символів. Попередня обробка має на меті отримати дані, які буде зручно використовувати для систем оптичного розпізнавання символів. Основними завданнями попередньої обробки є:
Фільтрування шуму
Під час сканування документа скановані зображення можуть бути забруднені аддитивним шумом, і ці неякісні зображення вплинуть на наступний