Professional Documents
Culture Documents
ДИПЛОМНИЙ ПРОЕКТ
Київ 2018
Коледж інженерії та управління НАУ
Відділення Інформаційних технологій
Циклова комісія Інженерії програмного забезпечення
«ЗАТВЕРДЖУЮ» «ЗАТВЕРДЖУЮ»
Заступник директора з НР Голова циклової комісії
____________ О.В. Родіонова ____________ Н.А. Рябчук
«____» ___________ 20__ р. «____» ___________ 20__ р.
ДИПЛОМНИЙ ПРОЕКТ
Пояснювальна записка
Керівник
дипломного проекту О.П. Нечипорук
підпис ініціали, прізвище
Київ 2018
Коледж інженерії та управління НАУ
Відділення Інформаційних технологій
Циклова комісія Інженерії програмного забезпечення
Освітньо-кваліфікаційний рівень молодший спеціаліст
Спеціальність 5.05010301 «Розробка програмного забезпечення»
ЗАТВЕРДЖУЮ
Голова циклової комісії
Н.А. Рябчук
« » 20__ р.
ТЕХНІЧНЕ ЗАВДАННЯ
НА ДИПЛОМНИЙ ПРОЕКТ
Дата
Прізвище, ініціали та посада
Розділ прийняття Підпис
консультанта
завдання
нормо-
Юзюк О.О., викладач
контроль
Керівник
дипломного проекту О.П. Нечипорук
підпис ініціали та прізвище
Зміст
Перелік умовних позначень, символів, одиниць, скорочень і термінів 7
Вступ 8
1 Загальна частина 9
2 Спеціальна частина 30
3 Економічна частина 60
4 Охорона праці 66
Висновки 72
6
Перелік умовних позначень, символів, одиниць, скорочень і термінів
ПК – персональний комп’ютер.
РЛОВ – розпізнавання людського обличчя у відеопотоці.
LBPH – Local Binary Patterns Histograms.
LBP – Local Binary Patterns.
OpenCV – Open Source Computer Vision Library.
CCV – Community Core Vision.
Qt – Quick time.
ЕОМ – електронно-обчислювальна машина.
ВДТ – відеодисплейний термінал.
ПП – периферійні пристрої.
7
Вступ
Задача розпізнавання облич є актуальною в області машинного бачення та
має широкий спектр застосування. Найбільш часто дана технологія
використовується у сфері захисту даних та у сфері безпеки. Системи розпізнавання
облич вже впроваджені та використовуються в Росії та Китаї. Вони дозволяють
знаходити злочинців серед 70 тисяч людей. У сфері захисту даних подібні системи
широко використовуються в таких компаніях як Apple та Samsung.
При розв’язанні задачі облич у відеопотоці однією з основних проблем є
пошук компромісу між якістю (глибиною) розпізнавання та швидкодією. У сфері
захисту даних даний баланс схиляється у сторону якості, а в сфері безпеки
критичними є обидва параметри.
Крім того, розпізнавання об’єктів у відеопотоці ускладнюється наступними
факторами:
– низька якість зображення;
– зміни в освітленні;
– вимоги до аналізу в режимі реального часу;
– зміни у зовнішності людей.
Метою проекту є розробка програмного модулю розпізнавання людського
обличчя у відеопотоці при здійсненні аутентифікації користувача.
Отже, основною задачею, яку повинен вирішити програмний модуль, є
забезпечення неможливості отримання доступу до даних третіми особами,
оперуючи лише даними, отриманими з пристрою для захоплення зображення у
реальному часі. Відповідно до цього, користувач повинен використовувати два
додатки – один безпосередньо для процесу аутентифікації, другий для швидкої
реєстрації свого обличчя в системі.
Основним техніко-економічним результатом очікується підвищення безпеки
персональних даних користувача з мінімальними витратами на технічне
обладнання.
8
1 Загальна частина
1.1 Постановка задачі
Однією зі сфер, що використовує алгоритми розпізнавання людського
обличчя, є сфера захисту даних. Сфера захисту даних також задає режим доступу
до даних, який повинен ідентифікувати користувача, та на основі ідентифікації
надати йому доступ. Даний проект має за ціль підвищити безпеку систем, а саме –
підвищити безпеку даних, що містяться у ПК користувачів та відхилити доступ
третім особам.
Об’єкт – аутентифікація користувача.
Предмет – програмний модуль розпізнавання людського обличчя.
Мета – розробити програмний модуль розпізнання людського обличчя у
відеопотоці при здійсненні аутентифікації користувача.
Відповідно до мети проекту поставлено наступні завдання:
1. Проаналізувати сучасні програмні рішення.
2. Проаналізувати методи розпізнавання обличчя.
3. Розробити структуру програмного модулю.
4. Модифікувати алгоритм LBPH (Local Binary Patterns Histograms).
5. Програмно реалізувати блок аутентифікації користувача модуля РЛОВ
(розпізнавання людського обличчя у відеопотоці).
6. Програмно реалізувати блок тренування моделі LBPH модуля РЛОВ.
7. Протестувати основні параметри програмного модуля РЛОВ.
При розробці проекту необхідно притримуватись наступних вимог:
– програмні вимоги: сумісність з ОС Windows або Linux, наявність
оперативної пам’яті 8 ГБ, пам’ять на жорсткому диску більше 500 МБ та процесор
з частотою 2 ГГц або більше, наявність відеоадаптеру.
– функціональні вимоги: блок аутентифікації повинен захищати дані
користувача, отримувати відеопотік із записуючого пристрою в якості вхідних
даних, обробляти зображення, ідентифікувати користувача та на основі результатів
ідентифікації надавати доступ. Блок тренування моделі повинен дозволяти
користувачу створити власну модель LBPH, використовуючи відеофайли як вхідні
9
дані, для реєстрації свого обличчя як власника системи. Другорядною вимогою є
покрокова візуалізація попередньої обробки зображення до процесу розпізнавання.
Програмний модуль повинен мати графічний інтерфейс користувача та
розділений на дві компоненти – блок аутентифікації та блок навчання системи.
Найбільш критичними параметрами системи є швидкодія розпізнавання та його
точність, виключаючи можливість аутентифікації третьою особою. Можливе
використання бібліотек машинного бачення.
Забезпечення задовільного рівня (точності) розпізнавання облич.
10
Даний метод в загальному вигляді шукає обличчя і риси обличчя за
загальним принципом вікна сканування, де сканується зображення вікном пошуку,
а потім застосовується класифікатор до кожного положення.
Алгоритм використовує інтегральне представлення зображення [2].
Інтегральне представлення дозволяє швидко обраховувати сумарну яскравість
будь-якої прямокутної області зображення, при чому який би це прямокутник не
був, час розрахунку залишається незмінним.
Інтегральне представлення зображення – це матриця, що співпадає за
розмірами з вихідним зображенням. В кожному її елементі зберігається сума
інтенсивності всіх пікселей, що знаходяться лівіше та вище даного елемента.
Елементи матриці розраховуються за формулою (1.1).
𝑖≤𝑥,𝑗 ≤𝑦
𝐼𝐼(𝑥, 𝑦) = ∑𝑖=0, 𝑗=0 𝐼(𝑖, 𝑗), (1.1)
11
Рисунок 1.1 — Зображення та його інтегральне представлення
За допомогою такої інтегральної матриці можна обчислити суму пікселей
довільного прямокутника довільної площі. Наприклад, нехай в прямокутнику
ABCD на рис. 1.2 є шуканий об’єкт D.
12
Рисунок 1.3 — Приклад розрахунку суми та різниці суміжних прямокутників
В методі Віоли-Джонса використовуються ознаки Хаара.
Ознака – відображення 𝑓 => 𝐷, де 𝐷𝑓 – множина допустимих значень
ознаки.
Якщо задані ознаки 𝑓1 , … , 𝑓𝑛 , то вектор ознак 𝑥 = (𝑓1 (𝑥), … , 𝑓𝑛 (𝑥))
називають ознаковим описом об’єкта х ∈ 𝑋. Ознаковий опис можна
ототожнювати з самими об’єктами. При цьому множина 𝑋 = 𝐷𝑓1 ∗ … ∗ 𝐷𝑓𝑛
називається ознаковим простором.
Каскад Хаара – це набір примітивів, для яких розраховується їх згортка з
зображенням (в загальному випадку – операція обрахунку нового значення
обраного пікселя, що враховує значення оточуючих його пікселей).
Використовуються найпростіші примітиви, що складаються з прямокутників
та мають лише два рівня, +1 та -1. При цьому кожен прямокутник використовується
декілька разів різного розміру. Під згорткою маємо на увазі формулу (1.4).
𝑆 = 𝑋 – 𝑌, (1.4)
де Y – сума елементів зображення в темній області;
X – сума елементів зображення в світлій області.
13
Візуальний приклад згорток наведений на рис. 1.4.
14
Рисунок 1.6 — Вихідне зображення
Для вибору ознак з такої кількості варіантів використовується алгоритм
бустингу AdaBoost – алгоритм посилення класифікаторів (ефективна модель, що
допускає мало помилок класифікації називається «сильною», а «слабка» не
дозволяє надійно розділяти класи або давати точні передбачення) та їх об’єднання
у «комітет». Цей алгоритм може використовуватися з декількома алгоритмами
класифікації для поліпшення їх ефективності. AdaBoost є адаптивним у тому сенсі,
що кожний наступний комітет класифікаторів будується по об’єктам, що були
вірно класифіковані попередніми комітетами. AdaBoost чутливий до шуму в даних.
Але тим не менш, він довго тренується та потребує велику кількість навчальних
прикладів.
Для даної задачі AdaBoost працює наступним чином: кожна ознака
застосовується до кожного зображення. Вибираються ознаки з найменшою
кількістю помилок. Спочатку тестовим зображенням призначається однакова вага,
після кожної неправильної класифікації вага зображення збільшується. Точкою
зупинки є необхідна точність, досягнена певна кількість помилок або вибрана
необхідна кількість ознак. Після даної операції кількість ознак значно зменшується,
але у фотографіях, зазвичай, обличчя займає малу область, і щоб не перевіряти всі
15
ознаки в непотрібних областях, ввели поняття «каскад класифікаторів». Тепер
ознаки групуються по стадіям. Перші стадії містять малу кількість ознак, в кожній
наступній стадії їх кількість буде збільшуватись. Область, що пройшла всі стадії, є
обличчям. Поетапний приклад процесу класифікації наведений на рис 1.7. На рис.
1.8 наведена візуалізація вікна пошуку ознак класифікатором.
𝐿𝐵𝑃(𝑥𝑐 , 𝑦𝑐 ) = ∑𝑃−1 𝑝
𝑝=0 2 𝑠(𝑖𝑝 − 𝑖𝑐 ), (1.4)
2𝜋𝑝
𝑥𝑝 = 𝑥𝑐 + 𝑅𝑐𝑜𝑠 ( ); (1.5)
𝑃
2𝜋𝑝
𝑦𝑝 = 𝑦𝑐 − 𝑅𝑠𝑖𝑛( ), (1.6)
𝑃
18
Рисунок 1.12 — Варіанти оточень та вибору сусідів
Але через деякий час було з’ясовано в дослідженні [4], що найбільш
інформативними є так звані «uniform patterns» (універсальні шаблони). Ці шаблони
складаються з не більше визначеного числа переходів від 0 до 1 в записі та навпаки.
Тобто числа 00011000 або 0000000 будуть «uniform patterns», a 00100100 – ні, якщо
задане число переходів – два.
Використовуючи довільний радіус та точки відбору, спостерігається два
ефекти. Більша кількість точок веде до збільшення кількості шаблонів, які можна
опрацювати, а чим більше шаблонів (або можливої інформації) є у наявності, тим
більше обчислювальної потужності необхідно.
Також можна збільшувати радіус. Це веде до розмиття LBP зображення,
опрацьовуються деталі більшого розміру, але падає точність розпізнавання, згідно
рис. 1.13. [8, с. 4-5]
Вісь ординат визначає точність розпізнавання та виражена у значенні від 0
до 1, а вісь абсцис визначає розмір оточення при трьох варіантах радіусу різного
розміру.
За визначенням оператор LBP є надійним проти монотонних перетворень
сірого. Це можна перевірити візуально, дивлячись на образ LBP штучно
модифікованого зображення на рис. 1.15.
19
Рисунок 1.13 — Залежність точності від розміру оточення
Наглядно це можна показати також на рис. 1.14.
20
Рисунок 1.15 — Інтегральне представлення залежно від зміни відтінків сірого
Як показують результати дослідження [3, с. 2-3], LBPH має найбільшу
точність розпізнавання серед аналогічних методів.
1.2.3 Процедура модифікації алгоритму LBPH
Емпіричним шляхом було виявлено, що задовільним рівнем точності
алгоритму є 85% вірних спрацьовувань.
Для оцінки ефективності модифікації було проведено тести оригінального
алгоритму та алгоритму з модифікаціями. Тестування відображає середню точність
(впевненість) розпізнавання, що є еквівалентом відстаней між гістограмами
зображень (див. підрозділ «Алгоритм Local Binary Patterns Histograms»), кількість
невірних визначень, а також середній час обробки одного фрейму.
В якості вхідних даних було використано три відеопотоки, в кожному з яких
оброблено 1000 кадрів. Перший відеофайл містить обличчя власника моделі, зняте
в HD форматі на вулиці при денному освітленні. Другий відеопотік містить
обличчя власника моделі, зняте на веб-камеру з роздільною здатністю 480p при
низькому кімнатному освітленні. Третій відеопоток містить обличчя іншої людини
при денному освітленні в HD форматі.
Результати тестування при використанні натренованої моделі LBPH
(тренування виконувалося на основі фреймів з відеофайлів, що не
21
використовуються при тестуванні) без попередньої обробки кадрів знаходяться у
табл. 1.1.
Таблиця 1.1 – Результат тестування оригінального алгоритму
Кількість невірних Середня точність, Середній час, мс
передбачень %
Відеопотік 1 81 48 52
Відеопотік 2 114 46 42
Відеопотік 3 125 44 61
22
Це відбувається через те, що алгоритм не звертає уваги на фон відео. Також
видно, що час обробки збільшився лише близько на 10 мс у двох випадках, тому
висновком є те, що алгоритм Віоли-Джонса виконується швидко, а навантаження
на алгоритм LBPH зменшилося, бо немає необхідності перевіряти усе зображення,
а не його частину зі знайденим обличчям.
Але все одно результат можна покращити, зробивши алгоритм інваріантним
при невеликих нахилах голови людини. Цей результат можна отримати, якщо
знайти на обличчі людини очі, знайти кут нахилу голови та вирівняти зображення
за цим кутом. Задачу класифікації очей можна закріпити також за алгоритмом
Віоли-Джонса, бо як було перевірено вище, він показує задовільні результати.
Результати третього тесту наведені у табл. 1.3.
Таблиця 1.3 – Результат тестування модифікованого алгоритму методом
Віоли-Джонса з вирівнюванням обличчя
Кількість невірних Середня точність, Середній час, мс
передбачень %
Відеопотік 1 0 85 69
Відеопотік 2 7 90 59
Відеопотік 3 9 84 60
23
iOS та Android. OpenCV була розроблена для обчислювальної ефективності та
сильної спрямованості на додатки в режимі реального часу. Написана в
оптимізованому C / C ++ бібліотека може використовувати багатоядерну обробку.
Також ця бібліотека є багатомодульною (через те, що вона за своїм об’ємом
дуже велика), кожен її модуль реалізує свою вузьку спеціальність. Не обов’язковим
є встановлення всіх модулей – достатньо вибрати основні та ті, що потрібні для
виконання конкретної задачі. Наприклад, для виконання поданого завдання
потрібно використати модуль opencv_objdetect , що потрібен для виявлення об'єктів
на зображенні (а саме пошук облич за допомогою алгоритму Віоли-Джонса).
Аналогом бібліотеки OpenCV є бібліотека CCV (Community Core Vision).
Бібліотека ССV написана на C і позиціонується як компактна, легка
альтернатива OpenCV. Таким чином, ccv потрібна не для експериментів с різними
алгоритмами, а для практичного використання в конкретних додатках.
Але вибір все одно залишається за OpenCV через недоліки ССV:
– CCV не має деяких необхідних функцій, що потрібні для виконання
поставленої задачі;
– CCV знаходиться у стадії активної розробки, тому деякі її частини
працюють неправильно;
– CCV є погано документованою.
Для виконання поставленої задачі можна використовувати OpenCV або
MATLAB.
Для використання бібліотеки OpenCV можна розглядати два варіанти. Це
Python та C++.
1.3.2 MATLAB
Переваги використання MATLAB:
– потужна матрична бібліотека;
Зображення обробляється не тільки як багатомірна матриця, але є можливість
використовувати всі можливості лінійної алгебри у різних алгоритмах.
Підпрограми лінійної алгебри MATLAB є дуже потужними та швидкими.
– toolbox’и;
24
Для кожного виду потреб є набір інструментів. Існують панелі інструментів
для обробки зображень, для комп’ютерного зору, для статистики та машинного
навчання, які представляють реалізацію широкого кола корисних алгоритмів.
Пакет оптимізації MATLAB забезпечує реалізації багатьох алгоритмів оптимізації.
– засоби візуалізації на налагодження;
Однією з переваг використання MATLAB є те, що написання коду,
візуалізація результатів та налагодження відбуваються в одному інтегрованому
середовищі. Це робить розробника надзвичайно продуктивним.
– чудова документація.
Навіть стійкі прихильники OpenCV визнають, що документація MATLAB
краще за документацію OpenCV через свій об’єм та велику кількість прикладів. Це
може зробити написання коду у два рази швидше, ніж використання OpenCV.
Функції MATLAB також краще та швидше за аналогічні в OpenCV.
До недоліків можна віднести:
– ціна MATLAB велика;
Базова версія коштує 2,150$, а з усіма необхідними панелями інструментів
вона буде коштувати 6,850$.
– проблема навчання;
MATLAB є матричним двигуном. Існує метод для написання коду в
MATLAB, який відрізняється від загальноприйнятих методів написання в мовах
програмування, таких як C++ та Python. Якщо користувач не дотримується цього
методу, його код буде надзвичайно повільним.
– швидкість.
Зазвичай програма, написана на MATLAB працює в багато разів повільніше,
ніж програма C++. Вбудовані процедури MATLAB можуть бути дуже швидкими,
але код, який пише розробник, зазвичай працюватиме значно повільніше. Зазвичай
люди пишуть код з обчислювально-інтенсивною частиною на C та інтегрують його
з кодом MATLAB, використовуючи mex.
25
1.3.3 C++ та бібліотека OpenCV
Переваги використання C++ версії бібліотеки OpenCV:
– OpenCV є безкоштовним Open Source проектом;
Тобто його можна використовувати у будь яких проектах, а також
переглядати код та якщо необхідно, виправляти проблеми у коді.
– велика оптимізована бібліотека;
Збірник алгоритмів, доступний в OpenCV затьмарює всі інші альтернативи.
Бібліотека є достатньо оптимізованою. З появою OpenCV 3, розробник може
використовувати Transparent API для використання пристроїв, що сумісні з OpenCL
(наприклад, графічний процесор).
Багато алгоритмів мають реалізацію CUDA (архітектура паралельних
обчислень, що дозволяє істотно прискорити обчислювальну продуктивність
завдяки використанню графічних процесорів Nvidia).
– підтримувані платформи та пристрої;
Завдяки своїй орієнтації на продуктивність OpenCV під С/С++ є бібліотекою
комп’ютерного зору для вбудованих програм та мобільних додатків.
– велика спільнота.
Існує велика спільнота розробників (47 тисяч користувачів), які
використовують та підтримують OpenCV. Цю бібліотеку було завантажено більше
ніж 9 мільйонів разів. Спільнотою OpenCV є сукупність людей з багатьох областей
та галузей. Розробка OpenCV фінансується такими компаніями, як Intel, AMD та
Google.
Проте, є недоліки:
– мала бібліотека для машинного навчання;
Зазвичай розробка додатків для комп’ютерного зору потребує багато
навчальних програм для машинного навчання. C++ OpenCV має невеликий набір
алгоритмів машинного навчання порівняно з вибором, що доступний під час
використання OpenCV для Python.
– візуалізація та налагодження.
26
Відладка та візуалізація є складною задачею в будь-якому середовищі для
C++. Особливо це є значним недоліком, коли розробник використовує новий
алгоритм.
1.3.4 Python та бібліотека OpenCV
Переваги використання Python версії бібліотеки OpenCV:
– простота використання;
Python є простою для вивчення мовою (особливо у порівнянні з C++).
– Python став мовою наукових обчислень;
Кілька років тому MATLAB називали мовою наукових обчислень. Але тепер,
з OpenCV, numpy, scipy, scikit-learn та matplotlib Python забезпечує потужне
середовище для навчання та експериментів з комп’ютерним зором та машинним
навчанням.
– візуалізація та налагодження;
Налагодження з бібліотеками Python є значно легшим за налагодження в C++,
але все одно воно не є дуже легким, так як воно представлено у MATLAB.
– створення веб-додатків.
Python також є популярною мовою для створення веб-сайтів. Фреймворки
Django, Web2py та Flask дозволяють швидко створювати веб додатки. Також
просто використовувати OpenCV з цими веб-фреймворками.
До недоліків можна віднести:
1. слабка документація;
Документація C++ версії бібліотеки OpenCV є не ідеальною. Але
документація для Python набагато гірша. Починаючому розробнику залишається
лише вгадати, як користуватися певними функціями.
2. більш повільний час виконання;
У порівнянні з C++ програми в Python будуть працювати повільніше.
Особливо з використанням графічного процесору, код на C++ може бути у 10 разів
швидше за реалізацію в Python.
3. OpenCV написаний на С/C++.
27
Однією з великих переваг бібліотек з відкритим вихідним кодом – це
здатність розробника змінювати їх відповідно зі своїми потребами. У випадку з
Python, доведеться змінити джерело, написане на C++.
1.3.5 Qt
Також, для забезпечення багатоплатформності та графічного інтерфейсу
було обрано Qt.
Qt (Quick time) – багатоплатформений інструментарій розробки програмного
забезпечення (ПЗ) мовою програмування C++. Дозволяє запускати написане за
його допомогою ПЗ на більшості сучасних операційних систем, просто
компілюючи текст програми для кожної операційної системи без зміни коду.
Містить всі основні класи, які можуть бути потрібні для розробки прикладного
програмного забезпечення, починаючи з елементів графічного інтерфейсу й
закінчуючи класами для роботи з мережею, базами даних, OpenGL, SVG і XML.
Бібліотека дозволяє працювати з мережею та забезпечує багатоплатформенний
доступ до файлів.
До основних переваг можна віднести:
C++ API;
Qt має зручне API для повсякденних задач. В рамках дипломного проекту
можна виділити наявність бібліотек для роботи з STL контейнерами, бібліотеки
роботи з відеокамерами та відеопотоком. Ці бібліотеки є повністю
багатоплатформенними.
Qt Quick;
Qt Quick – зручний та швидкий підхід до створення графічного інтерфейсу
користувача. Використовуючи QML, що є дуже схожим на JavaScript, можна
досягнути високого рівня продуктивності при прототипуванні інтерфейсу в
додатках будь-якої складності.
документація;
28
Qt має великий архів документації, що повністю описує всі доступні
розробнику методи та властивості бібліотек, компонентів, класів, а також має архів
прикладів, що дозволяє якнайшвидше перевірити, як працює функціонал.
відкритий код.
Відкритий код розширює можливості налагодження, але найбільша його
перевага – можливість швидкого створення власних додаткових компонентів та
плагінів.
29
2 Спеціальна частина
2.3 Опис алгоритму створення програмного засобу
Метою дипломного проекту є розробка програмного модулю розпізнавання
людського обличчя у відеопотоці. Програмний модуль поділяється на дві складові
частини:
1. Блок розпізнавання людського обличчя при аутентифікації.
2. Блок тренування моделі LBPH.
Блок тренування моделі містить автоматичне виділення зображень людських
облич з відеофайлу для створення набору даних для навчання.
Блок для тренування моделі також дозволить візуалізувати попередню
обробку зображення перед використанням алгоритму LBPH і є зручним способом
швидко зібрати навчальні дані для блоку розпізнавання людського обличчя при
аутентифікації.
Для визначення основних функцій, які повинен виконувати програмний
модуль, було створено діаграму прецедентів для блоку розпізнавання людського
обличчя при аутентифікації та додатку тренування моделі (рис. 2.1 та 2.2
відповідно).
30
Рисунок 2.2 — Діаграма прецедентів блоку для тренування моделі LBPH
Архітектуру блоку розпізнавання людського обличчя при здійсненні
аутентифікації користувача описує структурна схема, зображена на рисунок 2.3.
Інтерфейс користувача
Менеджер Менеджер
відеопотоку аутентифікації
Модуль Модуль
Модуль виявлення Модуль розпізнання
перетворення вирівнювання
обличчя обличчя
зображення обличчя
Каскад Каскад
класифікатору класифікатору Модель LBPH
облич очей
31
Згідно схеми (див. рис. 2.3), кадри з пристрою для отримання зображення
потрапляють до менеджеру відеопотоку. Завдання менеджера відеопотоку –
фільтрація кадрів та перетворення зображення у формат, що може бути оброблений
менеджером аутентифікації.
Фільтрація кадрів необхідна, щоб зберегти швидкодію обробки зображення,
а також це зменшить шанс невірного спрацювання та зменшить навантаження на
комп’ютер користувача.
Після обробки менеджером відеопотоку, оброблений кадр потрапляє в
модуль виявлення обличчя, що використовує каскад класифікатору облич. Модуль
виявлення облич у разі успіху відправляє дані про позицію обличчя на кадрі до
інтерфейсу користувача, який виконує виділення області з обличчям.
У разі успіху роботи модуля виявлення обличчя, обрізаний кадр з обличчям
направляється менеджером аутентифікації до модулю вирівнювання обличчя, який
використовує каскад класифікатору очей для горизонтального розташування кадру.
Виявлене та вирівняне обличчя направляється до модулю розпізнавання
обличчя, який в результаті роботи відправляє команду до інтерфейсу користувача
промаркувати область кадру, на якому було знайдено обличчя, та у разі успішного
розпізнавання, дає команду модулю захисту даних припинити свою роботу.
Модуль захисту даних виконує всю роботу по блокуванню вводу з
клавіатури, і у випадку отримання сигналу із модуля розпізнавання обличчя,
припиняє блокувати клавіатуру та повідомляє про це користувача через інтерфейс
користувача.
Порядок виконання дій проілюстровано схемою алгоритму на рис. 2.4.
На схемі присутній основний параметр, зміна якого впливає на успіх
аутентифікації користувача – відсоток розпізнавання. Цей параметр збільшується
лише у випадках, коли алгоритм впевнений, що людина на зображенні точно
співпадає з людиною, що має право доступу до даних. Коли розпізнається обличчя
іншої людини, даний параметр скидається до нуля.
32
Початок
Вхідний
відеопотік
з камери
Ні Кадр Так
доступний
Ні Так
i % 2 == 0
Пропустити кадр
Перевести
зображення в
градації сірого
++i
Виявити обличчя
на зображенні
алгоритмом
Віоли-Джонса
Виділити регіон
першого
знайденого
обличчя
Знайти очі на
обличчі
алгоритмом
Віоли-Джонса
Ні Відхилення Так
розпізнавання
менше 35
Обнулити
значення Збільшити
відсотків відсоток
розпізнання розпізнавання на
10
Кінець
33
Аналогічно представлена архітектура блоку для тренування моделі LBPH на
рис. 2.5.
34
Початок
ВІдео-
файл
Так Кадр Ні
++i доступний
Ні Так Помилка
i % 7 == 0
читання
Перевести
зображення в
градації сірого
Виявити обличчя
на зображенні
алгоритмом
Віоли-Джонса
Виділити регіон
першого
знайденого
обличчя
Вивести
знайдене
обличчя
Знайти очі на
обличчі
алгоритмом
Віоли-Джонса
Вивести
вирівняне
обличчя
Кінець
35
2.2 Опис засобів реалізації
За результатами розробки архітектури проекту, були побудовані структурні
схеми, які необхідно реалізувати на програмному рівні.
Відповідно до структурної схеми блоку розпізнавання людського обличчя
при аутентифікації (див. рис. 2.3) побудовано діаграму класів (рис. 2.7), що
відображає всі функціональні компоненти, що наявні у додатку.
36
Клас VideoFilterRunnable представляє собою менеджер відеопотоку та
виконує фільтрацію та перетворення кадрів, а також асинхронно передає кадр на
обробку менеджеру аутентифікації, що представлений класом QCvVideoFilter.
QCvVideoFilter є контролюючим класом, що лише зберігає результати
«опитування» інших класів.
Класи LBPHModel, KeyboardGrabber, EyesAligner та FaceDetector
спроектовані за шаблоном «Одинак» — це гарантує, що клас матиме тільки
один екземпляр, і забезпечує глобальну точку доступу до цього екземпляра.
Точкою доступу є метод instance, що при першому виклику метода створює
статичний об’єкт та використовує його при подальших викликах.
Клас LBPHModel є успадкованим від класу FaceModel — така структура
дозволить швидко розширювати додаток, використовуючі інші алгоритми
розпізнавання, що представлені в бібліотеці OpenCV або власні алгоритми та їх
модифікація.
Класи EyesAligner та FaceDetector є успадкованими від CascadeDetector, бо
використовують однакові параметри налаштувань, але за логікою роботи є різними.
Таке успадкування дозволить додавати нові кроки попередньої обробки
зображення з використанням алгоритму Віоли-Джонса та каскадів Хаара.
Клас KeyboardGrabber призначений для блокування клавіатури,
перехоплюючи системні події. Для Windows він використовує системну подію
LowLevelKeyboardProc із бібліотеки User32.lib, повертаючи недійсні дані, тобто є
«заглушкою» для обробки подій з клавіатури. Для Linux використовується bash
скрипт, що виконує сканування підключених девайсів через xinput
Взаємозв’язок між даними класами у часі та обміном повідомленнями
відображає діаграма послідовності (рис. 2.8 та 2.9).
37
Рисунок 2.8 — Взаємозв’язок користувача із менеджером відеопотоку і
менеджером аутентифікації
39
Рисунок 2.11 — Діаграма класів додатку тренування моделі LBPH та створення
набору даних для навчання
Процедура роботи користувача із функцією виявлення облич для створення
наборів даних для тренування на прикладі розбору одного відеофрейму із наданого
користувачем відеопотоку та із ввімкненим автоматичним режимом зберігання
описана діаграмою послідовності на рис. 2.12 та 2.13.
40
Рисунок 2.12 — Взаємозв’язок користувача із менеджером відеопотоку і
менеджером обробки зображень
42
Рисунок 2.14 — Налаштування додатку VeriFace
43
Таблиця 2.1 — Порівняння блоку аутентифікації із аналогами
Критерій оцінки Створений PAM Face Blink! VeriFace
програмний Authentication
блок
Універсальність + + + +
Постійність - - + -
Мала кількість + - + +
обмежень
Швидкодія + + - -
Підтримка + - - -
багатоплатформності
44
Даний атрибут сильно залежить від технічної реалізації, що висуває деякі
обмеження до якості пристроїв відеозйомки, а також до контролю навколишнього
середовища (наприклад, фону та освітлення). Як зазначалося в розділі 1, алгоритм
LBPH є стійким до перетворень у градаціях сірого, а алгоритм Віоли-Джонса
дозволяє ігнорувати фон. Вирівнювання зображення забезпечує правильне
розпізнавання навіть при нахилах голови.
– швидкодія;
Для деяких систем розпізнавання час є критично важливим, а для інших є
перевагою з точки зору зручності використання. Блок оброблює кадри в
асинхронному режимі, що дозволяє розподілити потік інтерфейсу користувача та
обробки даних, а також має фільтрацію вхідних даних (принцип роботи якої видно
на схемі алгоритму, див. рис. 2.4).
– підтримка багатоплатформності.
Цей параметр є дуже важливим, так як подібні системи можуть
використовуватись як на персональному комп’ютері, так і на вбудованих
пристроях та телефонах. Атрибут «підтримка багатоплатформності» гарантує
невеликий час переносу на іншу платформу, або підтримку багатьох платформ
одразу. Згідно розділу 1, при розробці продукту були використані Qt, що забезпечує
багатоплатформність додатків, створених на ньому, а також використовується
бібліотека OpenCV, яка теж є багатоплатформною.
Блок тренування моделі LBPH є більш вузькоспеціалізованим, тому має мало
аналогів, і призначений не широкому колу користувачів, а спеціалістам та
адміністраторам систем, що використовують велику кількість зображень людських
облич для створення набору даних для навчання систем. Але в той же час може
використовуватися звичайними користувачами для того, щоб блок аутентифікації
«запам’ятав» користувача, не маючи навичок роботи із машинним навчанням.
Нижче приведена таблиця порівняння створеного блоку для тренування
моделі LBPH та автоматичного виділення зображень людських облич з відеофайлу
для створення набору даних для навчання (табл. 2.2).
45
Таблиця 2.2 — Порівняння блоку тренування моделі LBPH із аналогами
Критерій оцінки Створений donatefaces Videobox FaceTracker
програмний
блок
Підтримка + - + -
асинхронного
режиму
Підтримка - + + -
завантаження відео
за веб адресою
Підтримка великої + + - +
кількості форматів
відео та зображень
Візуалізація + - + -
виконання обробки
Розширені + - - +
налаштування
(використання
користувацьких
каскадів)
Підтримка + + + +
багатоплатформності
Аналогами є
donatefaces – Python додаток з відкритим кодом, що дозволяє виділяти
обличчя з відео. Підтримує завантаження відео з Youtube. Не має графічного
інтерфейсу, тому не може візуалізувати процес обробки відео.
Videobox – додаток від компанії MachineBOX. Дозволяє групувати обличчя
із відео та має можливість переглядати процес обробки. Приймає лише формат
46
відеопотоку mp4 та вихідні зображення у форматі jpg. Даний формат має низьку
якість зображення, тому його не рекомендується використовувати при навчанні
моделі LBPH. Скриншот наведений на рис. 2.16.
FaceTracker – додаток з відкритим кодом, написаний на C++. На Linux
працює без графічного інтерфейсу. Має широкий спектр налаштувань.
Використовує власну модель розпізнавання, що є сумісною із OpenCV каскадами
Хаара.
47
2.4 Інструкція роботи користувача
2.4.1 Інструкція роботи користувача блоку розпізнавання обличчя при
аутентифікації
Після запуску додатку користувач буде бачити вікно, що зображене на рис.
2.17.
48
Рисунок 2.18 — Перехід з однієї сторінки на іншу
49
8. Текстове поле екстренного пін-коду.
9. Цифрова екранна клавіатура.
У випадку, якщо додаток не може правильно розпізнати користувача, є
можливість ввести пін-код для розблокування ПК користувача. Достатньо ввести
його за допомогою клавіатури (номер 9) і система автоматично розблокується.
Після завантаження додатку, почнеться процес розпізнавання користувача у
реальному часі. Якщо обличчя знайдене, користувач побачить прямокутник з
двома підписами навколо свого обличчя (рис 2.20).
50
Залежно від цих параметрів, що задають стан розпізнавання, прямокутник
може бути чотирьох кольорів (рис. 2.21 – 2.24).
51
Рисунок 2.23 — Впевненість розпізнавання середня, але необхідно покращити
якість зображення (наприклад, приблизити обличчя)
52
2.4.2 Інструкція роботи користувача блоку тренування моделі LBPH
Головне вікно блоку тренування моделі LBPH після запуску додатку буде
виглядати так, як зображено на рис. 2.25.
53
Рисунок 2.27 — Меню налаштувань
Меню налаштувань має 6 груп налаштувань:
6. Глобальні налаштування.
7. Параметри обробки відео.
8. Параметри зберігання.
9. Параметри класифікатору очей.
10. Параметри класифікатору облич.
11. Тренування моделі.
Глобальні налаштування призначені для вибору відеофайлу та місця
зберігання зображень із відео. Щоб викликати діалог вибору файлу або теки,
необхідно натиснути на кнопку справа від текстового поля (рис 2.28).
54
Рисунок 2.28 — Вибір відеофайлу
Після вибору відеофайлу та закриття меню, зміниться вигляд головного вікна
(рис 2.29). Як видно з зображення, у компонента під номером 1 (див. рис. 2.25)
з’являється нова кнопка у вигляді білої стрілки у вигляді кола. При натисненні на
цю кнопку, відео змінить свою орієнтацію. Також доступна синя кнопка «Почати
програвання», яка починає програвати відеофайл та обробляти його, візуалізуючи
результати обробки у компонентах 2, 3 та 4 (див. рис. 2.25). Відео обробляється у
реальному часі, тому для обробки необхідно почати програвання.
Керувати часом відео можна за допомогою натиснення стрілок вліво та
вправо на клавіатурі. Натиснення стрілки вправо перемістить відео на п’ять секунд
вперед, а вліво – поверне на п’ять секунд назад.
55
Рисунок 2.29 — Вигляд головного вікна після завантаження відеофайлу
Параметри обробки відео дозволяють обрати номер кадру, який буде
оброблятися. Це значить, що можна налаштувати кількість кадрів у секунду, які
будуть оброблені. Зазвичай відео мають близько 30 кадрів у секунду, тому якщо
буде оброблятися лише кожний сьомий кадр, то в секунду загалом буде оброблено
4 кадри. Якщо вибрати в даному налаштуванні значення 1, то кожний фрейм з відео
буде оброблений. Зазвичай між проміжними кадрами немає сильної різниці, тому
даний параметр рекомендується залишити на значенні 7, як найбільш оптимальне
майже у всіх випадках.
Параметри зберігання дозволяють користувачу обрати формат файлу та його
розміри, а також обрати режим зберігання. В режимі автоматичного зберігання
зображення вирівняних облич будуть зберігатися в теці, яку користувач вказав в
56
групі глобальних налаштувань. Якщо цей режим вимкнений, на головному вікні
знизу з’являється кнопка для збереження зображення (рис. 2.30).
57
haarcascade_frontalface_alt з комплекту бібліотеки OpenCV. Також є можливість
змінювати мінімальний та максимальний розмір об’єктів.
Група тренування моделі дає користувачу можливість створити та зберігти
модель LBPH. На рис. 2.31 – 2.34 зображено процес тренування моделі.
Спочатку необхідно вказати теку з позитивними зображеннями, тобто
зображеннми, на яких є обличчя користувача (див. рис. 2.31). Найкращі результати
можна отримати, якщо створювати зображення облич за допомогою цього додатку,
але це не є обов’язковим.
59
3 Економічна частина
3.1 Характеристика роботи та її призначення
Результатом дипломного проекту є розробка програмного модулю, що
складається з блоку розпізнавання обличчя при аутентифікації користувача у
персональний комп’ютер та блоку тренування моделі LBPH.
Концепція даного програмного забезпечення перевірена на практиці та має
лише кілька аналогів на великому ринку, а технічні та споживчі властивості
продукту знаходяться на рівні аналогів, згідно розділу 2.
Практично дана концепція не потребує додаткового фінансування, а складові
для реалізації ідеі відомі та давно використовуються. Термін реалізації ідеї менше
року, що дає змогу швидко вийти на ринок.
60
Загальна вартість допоміжних матеріалів складає 988 грн 04 коп.
Розрахунок витрат на оплату праці програміста виконуємо за формулою
(3.1).
ЗЗП
СПП = t ∙ TЗПГОД , (3.1)
де t - трудоємність створення програмного продукту, год.;
ТЗПГОД - середня оплата програміста за годину праці, грн./год.
Дані про трудоємність операцій, виконуваних в процесі створення
програмного продукту, приведені в табл. 3.2.
Таблиця 3.2 – Трудоємність операцій
Найменування операції Витрати, год
Постановка задачі 6
Розробка алгоритму 15
Відлагодження 12
Тестування 10
Всього 61
61
Таблиця 3.3 – Утримання із заробітної плати та нарахування
Вид Розмір Утримання із заробітної Нарахування
виплати заробітної плати
плати, грн
Заробітна 2318,00 Військовий Податок на Єдиний
плата збір (ВЗ) доходи соціальний
фізичних осіб внесок
(ПДФО)
34 грн. 77 417 грн. 24 коп. 509 грн. 96
коп. коп.
62
вартості ПЕОМ. Вважатимемо, що ринкова вартість ПЕОМ складатиме 5500 грн.
00 коп. і отримаємо балансову вартість ПЕОМ:
СБАЛ = 5500 грн. 00 коп. + (5500 грн. 00 коп. ∙ 0,1) = 6050 грн. 00 коп.
Річні амортизаційні відрахування обчислимо за формулою (3.4):
ЗАМ = СБАЛ • НАМ , (3.4)
де СБАЛ - балансова вартість ПЕОМ, грн.;
НАМ - норма амортизації, %.
Норма амортизації складає 10% від балансової вартості ПЕОМ. Таким чином
річні амортизаційні відрахування складають:
ЗАМ = 6050 грн. 00 коп. ∙ 0,1 = 605 грн. 00 коп.
Вартість електроенергії, споживаної за рік, визначаємо за формулою (3.5).
ЗЕЛ = PПЕОМ • ТПЕОМ • СЕЛ • А , (3.5)
де PПЕОМ - сумарна потужність ПЕОМ, кВт;
ТПЕОМ - річний час роботи ПЕОМ, год.;
СЕЛ - вартість 1 кВт • год. електроенергії, грн.;
А - коефіцієнт інтенсивного використання потужності ПЕОМ.
Сумарна потужність ПЕОМ складає 0,3 кВт. Приймаємо коефіцієнт
інтенсивного використання потужності ПЕОМ рівним 0,8 і обчислюємо вартість
електроенергії, спожитої за рік:
ЗЕЛ = 0,3 кВт ∙ 2942 год. ∙ 1 грн. 00 коп. ∙ 0,8 = 706 грн. 08 коп.
Інші витрати на експлуатацію ПЕОМ (в тому числі й витрати на поточний
та профілактичний ремонт) складають 20 % від балансової вартості ПЕОМ:
ЗПР = 6050 грн. ∙ 0,2 = 1210 грн. 00 коп.
Повні витрати на експлуатацію ПЕОМ визначаємо за формулою (3.6).
ЗПЕОМ = ЗЗП + ЗАМ + ЗЕЛ + ЗПР , (3.6)
де ЗЗП - річні витрати на заробітну плату, грн./рік;
ЗАМ - річні амортизаційні відрахування, грн./рік;
ЗЕЛ - річні витрати на електроенергію, грн./рік;
ЗПР - інші витрати на експлуатацію ПЕОМ, грн./рік.
63
Річні витрати на заробітну плату обчислюємо як добуток середньої заробітної
плати програміста за годину праці та річного фонду часу роботи ПЕОМ: ЗЗП = 38
грн. 00 коп. ∙ 2942 год. = 111796 грн. 00 коп/рік.
Розрахуємо повні витрати на експлуатацію ПЕОМ:
ЗПЕОМ = 111796 грн. 00 коп. + 605 грн. 00 коп. + 706 грн. 08 коп. + 1210 грн.
00 коп. = 114317 грн. 08 коп.
Вартість машинної години визначаємо за формулою (3.7).
СГОД = ЗПЕОМ / ТПЕОМ , (3.7)
де ЗПЕОМ - повні витрати на експлуатацію ПЕОМ, грн.;
ТПЕОМ - річний час роботи ПЕОМ, год.
Отже, вартість машинної години дорівнює СГОД = 114317 грн. 08 коп. / 2942
год. = 38 грн. 86 коп.
Витрати на оплату машинного часу при відлагодженні програми визначаємо
за формулою (3.8).
ЗМВ
СПП = СГОД • ТВ , (3.8)
де СГОД - вартість машинної години, грн./год.;
ТВ - фактичний час відлагодження програмного продукту на
ПЕОМ, год.
З табл. 3.2 видно, що відлагодження програмного продукту складає 12 годин,
тоді:
ЗМВ
СПП = 38 грн. 86 коп. * 12 год. = 466 грн. 32 коп.
64
Таблиця 3.4 – Собівартість програмного продукту за статтями витрат
Статті витрат Сума, грн.
Сировина та матеріали 988,04
Заробітна плата 2318,00
Єдиний соціальний внесок 509,96
Витрати на оплату машинного часу 466,32
Загальновиробничі витрати 772,67
Повна собівартість 5054,99
65
4 Охорона праці
4.1 Вимоги безпеки до робочого місця програміста
Основні вимоги безпеки під час роботи з ЕОМ з ВДТ і ПП, що зазначені у
[7]:
щодня перед початком роботи необхідно очищати екран ВДТ від пилу
та інших забруднень;
після закінчення роботи ЕОМ з ВДТ і ПП повинні бути відключені від
електричної мережі;
у разі виникнення аварійної ситуації необхідно негайно відключити
ЕОМ з ВДТ і ПП від електричної мережі;
не допускається:
виконувати обслуговування, ремонт та налагодження ЕОМ з ВДТ і ПП
безпосередньо на робочому місці оператора;
зберігати біля ЕОМ з ВДТ і ПП папір, дискети, інші носії інформації,
запасні блоки, деталі тощо, якщо вони не використовуються для поточної роботи;
відключати захисні пристрої, самочинно проводити зміни у
конструкції та складі ЕОМ з ВДТ і ПП або їх технічне налагодження;
працювати з ВДТ, у яких під час роботи з’являються нехарактерні
сигнали, нестабільне зображення на екрані тощо;
працювати з матричним принтером за відсутності вібраційного
килимка та зі знятою (піднятою) верхньою кришкою.
При організації робочого місця програміста, яке передбачає роботу з ЕОМ з
ВДТ і ПП для керування технологічним обладнанням (станки з програмним
управлінням, роботизовані технологічні комплекси, обладнання для гнучкого
автоматизованого виробництва тощо), слід передбачати:
достатній простір для програміста;
вільну досяжність органів ручного керування в зоні моторного поля
(відстань по висоті – від 900 до 1330 мм, по глибині – від 400 до 500 мм);
66
розташування екрана ВДТ у робочій зоні, яке буде забезпечувати
зручність зорового спостереження у вертикальній площині під кутом +-30 град.
від лінії зору програміста, а також зручність використання ВДТ під час
коригування керуючих програм одночасно з виконанням основних виробничих
операцій;
можливість повертання екрана ВДТ навколо горизонтальної та
вертикальної осей.
Конструкція робочого місця користувача ЕОМ і ПЕОМ з ВДТ має
забезпечити підтримання оптимальної робочої пози. Робочі місця з ВДТ слід так
розташовувати відносно світових прорізів, щоб природнє світло падало збоку
переважно зліва. При розміщенні робочих столів з ВДТ слід дотримувати такі
відстані між бічними поверхнями: ВДТ 1,2 м, відстань від тильної поверхні
одного ВДТ до екрана іншого ВДТ - 2,5 м. Конструкція робочого столу має
відповідати сучасним вимогам ергономіки і забезпечувати оптимальне
розміщення на робочій поверхні використовуваного обладнання (дисплея,
клавіатури, принтера) і документів. Висота робочої поверхні робочого столу з
ВДТ має регулюватися в межах від 680 до 800 мм, а ширина і глибина -
забезпечувати можливість виконання операцій у зоні досяжності моторного поля
(рекомендовані розміри: від 600 до 1400 мм, глибина – 800 до 1000 мм). Робочий
стіл повинен мати простір для ніг висотою не менше ніж 600 мм, шириною не
менше ніж 500 мм, глибиною (на рівні колін) не менше ніж 450 мм, на рівні
простягнутої ноги – ніж 650 мм.
67
Протипожежний захист об'єкта здійснюється за такими чотирма напрямками:
обмеження розмірів та поширення пожежі;
обмеження розвитку пожежі;
забезпечення безпечної евакуації людей та майна;
створення умов для успішного гасіння пожежі.
Первинні засоби пожежогасіння застосовуються для боротьби з пожежами на
початковій стадії. До них належать: пожежні кран-комплекти, вогнегасники,
пожежний інвентар (резервуари з водою, ящики з піском, пожежні відра, лопати),
а також різний переносний пожежний інструмент (кирки, сокири, багри, ломи
тощо).
68
Серед захворювань прямої кишки геморой є найпоширенішим. Висока
захворюваність цим типом хвороби серед осіб, які проводять багато часу за
комп'ютером пояснюється аж ніяк не шкідливим впливом останнього на організм
людини, а тим, що оператор комп'ютера довгий час займає сидяче положення;
захворювання опорно-рухового апарату.
Часто тривала робота за комп'ютером може стати причиною порушень
постави або викривлення хребта. Найбільш схильні до цього захворювання діти в
яких викривлення хребта проходить за типом сколіозу, тобто викривлення
хребетного стовпа в сторону (латерально). У дорослих людей може виникнути
грижа міжхребцевого диска, що призводить до здавлення нервових корінців і
виникнення радикуліту.
Основною причиною розвитку захворювань хребетного стовпа є
неправильна поза на робочому місці. Як правило, працююча людина
пристосовується і через деякий час перестає відчувати те, що сидить неправильно,
при цьому хвороба продовжує прогресувати;
вплив електромагнітного випромінювання монітора.
Монітори, забезпечені електронною гарматою, є сильним джерелом
електромагнітних полів. Постійне «бомбардування» організму людини
прискореними електронами приводить до різних розладів нервової системи та
очей;
стомлення очей, навантаження на зір.
Читання інформації з монітора викликає перенапруження очей. Виникає це
головним чином тому, що під час читання з монітора відстань від тексту до очей
постійно залишається одна і та ж, через це м'язи очей, що регулюють акомодацію,
перебувають у постійній напрузі. З часом це може призвести до порушення
акомодативної здатності очей і, отже, до порушень зору.
Останнім часом з'явилося кілька нових термінів, що визначають
захворювання очей, викликані довгою роботою за комп'ютером.
69
– дисплейна хвороба (астенопія: від грец. Asten-втома + ops-зір),
характеризується порушенням акомодації очей через тривале перенапруження
війкового тіла. Війкове тіло розташоване відразу під райдужною оболонкою ока і
складається з безлічі м'язових волокон. Війкове тіло являє собою своєрідне м'язове
кільце, усередині якого кріпиться кришталик. Скорочення або розслаблення м'язів
війкового тіла призводить до зміни кривизни кришталика і, отже, змінює його
здатність заломлення. У нормі робота війкових тіл обох очей підтримує
концентрування світлового пучка на обмежену ділянку сітківки. При хронічному
перенапруженні війкового тіла воно втрачає здатність скорочуватися а, отже,
втрачається здатність очей до акомодації (сприйняття об'єктів на різних відстанях);
– синдром сухого ока – збірна назва захворювання викликаного
порушенням зволоження передньої поверхні ока (рогівки) слізною рідиною. У
нормі людина здійснює більше 20 моргальних рухів в секунду. У результаті цього
передня поверхня очей постійно зволожується і очищується слізною рідиною. Під
час роботи за комп'ютером частота моргання зменшується щонайменше в три рази.
При цьому поверхня рогівки «висихає». Синдром сухого ока розвивається через
деякий час роботи за комп'ютером і проявляється печінням в очах, почервонінням
кон'юнктиви, появою судинної сітки на бічних поверхнях очей. Якщо при
виникненні цих ознак робота за комп'ютером припиняється, то симптоми
регресують. Однак під час тривалої роботи за комп'ютером вищевказані симптоми
стають більш стійкими і не зникають після припинення роботи за комп'ютером.
Пояснюється це приєднанням інфекції і порушенням трофіки оболонок ока,
спричинені недостатнім зволоженням очей слізною рідиною.
Також тривала робота за комп'ютером може збільшити ризик таких очних
захворювань як міопія (короткозорість), далекозорість, глаукома.
Тривала робота на клавіатурі призводить до перенапруження суглобів кисті і
м'язів передпліччя. Нервові закінчення подушечок пальців як би розбиваються від
постійних ударів по клавішах, виникають оніміння, слабкість, в подушечках
бігають мурашки. Це може привести до пошкодження суглобового і зв'язкового
апарату кисті, а надалі захворювання кисті можуть стати хронічними;
70
Тривала робота за комп'ютером може стати причиною серйозних нервово-
м'язових розладів. Особливо чутливими ділянками тіла є пальці, кисті рук та
передпліччя. Руки виконують основну частину механічної роботи при роботі за
комп'ютером, при цьому важлива не амплітуда фізичного навантаження (вона, як
правило, досить низька), а час роботи. Як відомо подушечки пальців є найбільш
чутливими ділянками людського тіла. На цьому рівні сконцентрована велика
кількість чутливих нервових закінчень (завдяки цьому пальці виконують функцію
дотику).
При тривалій роботі за комп'ютером (на клавіатурі) нервові закінчення
пальців піддаються постійному роздратуванню. З часом це призводить до
виснаження нервових шляхів здійснюють зв'язок пальців з корою головного мозку.
В результаті виникають порушення координації рухів пальців і судоми кисті та
передпліччя. Англійські дослідники назвали це захворювання RSI (repetitive strain
injury), що перекладається як хронічне захворювання кистей рук.
71
Висновки
1. Проаналізовано сучасні програмні рішення в області розпізнавання
обличчя при аутентифікації користувача та виявлено основні особливості розробки
подібних програмних модулів. Визначено дві програмні складові для розробки
проекту: наявність блоку навчання та блоку аутентифікації.
2. Проаналізовано методи розпізнання обличчя та обрано для реалізації
проекту алгоритм LBPH.
3. Розроблено структуру програмного модуля. Програмний модуль
розділений на дві компоненти, кожна з яких може використовуватися окремо, через
додані розширені налаштування у процесі розробки блока тренування моделі
LBPH.
4. Модифіковано алгоритм LBPH для здійсненнія процедури
аутентифікації користувача, що надало можливість збільшити точність
розпізнавання обличчя.
5. Програмно реалізовано блок аутентифікації, що забезпечує захист
даних способом блокування вводу з клавіатури, виконує попередню обробку
зображення згідно процедури модифікації алгоритму LBPH та надає доступ до ПК
на основі ідентифікації користувача.
6. Програмно реалізовано блок тренування моделі, що дозволяє створити
користувачу власну модель LBPH, використовуючи відеофайли як вхідні дані для
реєстрації свого обличчя як власника системи, а також виконує візуалізацію
попередньої обробки зображення до процесу розпізнавання.
7. Результати роботи модуля РЛОВ протестовано за параметрами
швидкодії та точності розпізнавання.
8. Характеристики системи відповідають вимогам, що наведені у розділі
1.1.
Практичне значення результатів дипломного проектування полягає у:
– наданні можливості підвищити безпеку систем та ПК користувачів;
72
– збільшення ефективності роботи адміністраторів та розробників
систем, які потребують великої кількості тренувальних даних для машинного
навчання.
Згідно розділу 2.3 та розділу 3, програмний модуль та його складові
знаходяться на рівні аналогів, отже даний проект виконаний згідно поставленого
завдання та є економічно доцільним.
73
Перелік використаних джерел
1. Shengcai L. A Fast and Accurate Unconstrained Face Detector
[Електронний ресурс] / L. Shengcai, K. Anil, Z. Stan // IEEE. – 2015. – Режим доступу
до ресурсу: https://arxiv.org/pdf/1408.1656.pdf.
2. Viola P. Rapid Object Detection using a Boosted Cascade of Simple
Features [Електронний ресурс] / P. Viola, M. Jones. – 2001. – Режим доступу до
ресурсу: http://wearables.cc.gatech.edu/paper_of_week/viola01rapid.pdf.
3. Jaturawat P. Effect of variation factors on the processing time of the face
recognition algorithms in video sequence [Електронний ресурс] / P. Jaturawat, M.
Phankokkruad // ICIIP. – 2016. – Режим доступу до ресурсу:
https://www.semanticscholar.org/paper/Effect-of-variation-factors-on-the-processing-
time-Phankokkruad-Jaturawat/422e01be2612b69d5b567abc3b218a01c1cca754.
4. Lahdenoja O. Towards Understanding the Formation of Uniform Local
Binary Patterns / O. Lahdenoja, J. Poikonen, M. Laiho. – Turku, Finland: ISRN Machine
Vision, 2004. – 20 с. – (Volume).
5. Ojala T. A Comparative Study of Texture Measures with Classification
Based on Feature Distributions / T. Ojala, M. Pietikäinen, D. Harwood. – Oulu, Finland:
Elsevier, 1994.
6. СИСТЕМИ ПРОТИПОЖЕЖНОГО ЗАХИСТУ. // Міністерство
національного розвитку, будівництва та житлово-комунального господарства
України. – 2014. – С. 50–56.
7. Наказ Державного комітету України з промислової безпеки, охорони
праці та гірничого нагляду «Про затвердження Правил охорони праці під час
експлуатації електронно-обчислювальних машин» від 26.03.2010 № 65
[Електронний ресурс] – Режим доступу до ресурсу:
http://zakon2.rada.gov.ua/laws/show/z0293-10.
8. Karanwal S. Performance Analysis of Local Binary Pattern Features with
PCA for Face Recognition / Shekhar Karanwal. // Indian Journal of Science and
Technology. – 2017. – С. 4–5.
74
9. Viola P. Robust real-time face detection / P. Viola, M. Jones., 2004. – 173
с. – (International Journal of Computer Vision). – (57).
75