You are on page 1of 75

Міністерство освіти і науки України

Коледж інженерії та управління


Національного авіаційного університету

ДИПЛОМНИЙ ПРОЕКТ

Київ 2018
Коледж інженерії та управління НАУ
Відділення Інформаційних технологій
Циклова комісія Інженерії програмного забезпечення

«ЗАТВЕРДЖУЮ» «ЗАТВЕРДЖУЮ»
Заступник директора з НР Голова циклової комісії
____________ О.В. Родіонова ____________ Н.А. Рябчук
«____» ___________ 20__ р. «____» ___________ 20__ р.

ДИПЛОМНИЙ ПРОЕКТ
Пояснювальна записка

Тема: «Програмний модуль розпізнавання людського обличчя у відеопотоці»

Студента Афанас’єва Дмитра Андрійовича

Група 407 РПЗ напрям підготовки 6.050103 «Програмна інженерія»


спеціальність 5.05010301 «Розробка програмного забезпечення»
освітньо-кваліфікаційний рівень молодший спеціаліст
кваліфікація 3121 «Технік-програміст»

Студент Д.А. Афанас’єв


підпис ініціали, прізвище

Керівник
дипломного проекту О.П. Нечипорук
підпис ініціали, прізвище

Київ 2018
Коледж інженерії та управління НАУ
Відділення Інформаційних технологій
Циклова комісія Інженерії програмного забезпечення
Освітньо-кваліфікаційний рівень молодший спеціаліст
Спеціальність 5.05010301 «Розробка програмного забезпечення»

ЗАТВЕРДЖУЮ
Голова циклової комісії
Н.А. Рябчук
« » 20__ р.

ТЕХНІЧНЕ ЗАВДАННЯ
НА ДИПЛОМНИЙ ПРОЕКТ

студенту Афанас’єву Дмитру Андрійовичу


прізвище, ім'я, по батькові
1 Тема проекту: «Програмний модуль розпізнавання людського обличчя у
відеопотоці»

Керівник проекту Нечипорук Олена Петрівна


прізвище, ім'я, по батькові
затверджено наказом по КІтУ НАУ від «20» 02 2018 року № 34-Ст

2 Строк подання студентом проекту 07 червня 2018 року

3 Вихідні дані до проекту: ОС Window або Linux; візуальний інтерфейс


користувача; розробка структури програмного модулю; модифікація алгоритму
LBPH; програмна реалізація модулю розпізнавання людського обличчя у
відеопотоці.
4 Зміст розрахунково-пояснювальної записки (перелік питань, які підлягають
опрацюванню): У вступі описати мету роботи, розглянути поставлену проблему
з точки зору її актуальності, коротко охарактеризувати сучасний рівень розв’язання
даної проблеми; навести основні технічні характеристики програмного засобу, що
розробляється та очікуваний техніко-економічний ефект від його реалізації.
У загальній частині детально описати задачі, розв’язання яких планується
здійснити у дипломному проекті, вимоги до структури та технічних характеристик
розроблюваного програмного засобу та його складових частин, відомі методи
розв’язання поставлених задач, обґрунтування обраних методів, організацію
зберігання, пошуку та обробки інформації, модель досліджуваної системи або
процесу та алгоритми, виконати обґрунтування вибору середовища розробки
програмного засобу.
У розділі «Спеціальна частина» описати алгоритм створення програмного
засобу, засоби реалізації, виконати порівняльний аналіз реалізованого програмного
засобу та програм-аналогів, розробити інструкцію роботи користувача.
У розділі «Економічна частина» повинні міститись: загальна характеристика
та призначення роботи, розрахунок витрат на створення програмного засобу,
висновки економічної доцільності розробки і впровадження проекту.
У розділі «Охорона праці» розкрити питання про вимоги безпеки до робочого
місця програміста, заходи та засоби протипожежного захисту та вплив
виробничого середовища на працівників під час обслуговування ЕОМ.
У висновках надати оцінку отриманих результатів проектування, можливі
галузі застосування розробки, порівняти отримані результати по всіх
характеристиках програмного засобу до програмної системи, вказати на переваги,
недоліки та перспективи подальшого розвитку результатів роботи.
У розділі «Перелік використаних джерел» перелічити літературні та
електронні інформаційні джерела, використані в процесі роботи над дипломним
проектом.
У додатки включити код програми.
5 Консультанти розділів проекту

Дата
Прізвище, ініціали та посада
Розділ прийняття Підпис
консультанта
завдання

1 Нечипорук О.П., викладач

2 Нечипорук О.П, викладач

3 Гаврутенко Л.А., викладач

4 Миронович І.П., викладач

нормо-
Юзюк О.О., викладач
контроль

6 Дата видачі завдання 22 лютого 2018 року

Студент Д.А. Афанас’єв


підпис ініціали та прізвище

Керівник
дипломного проекту О.П. Нечипорук
підпис ініціали та прізвище
Зміст
Перелік умовних позначень, символів, одиниць, скорочень і термінів 7

Вступ 8

1 Загальна частина 9

1.1 Постановка задачі 9

1.2 Теоретичні відомості 10

1.3 Обгрунтування вибору мови програмування 23

2 Спеціальна частина 30

2.3 Опис алгоритму створення програмного засобу 30

2.2 Опис засобів реалізації 36

2.3 Порівняльний аналіз програмного модулю та програм-аналогів 42

2.4 Інструкція роботи користувача 48

3 Економічна частина 60

3.1 Характеристика роботи та її призначення 60

3.2 Розрахунок витрат на створення програмного продукту 60

3.3 Висновки щодо економічної доцільності розробки та впровадження


проекту 65

4 Охорона праці 66

4.1 Вимоги безпеки до робочого місця програміста 66

4.2 Заходи та засоби протипожежного захисту 67

4.3 Основні чинники професійного захворювання при роботі з


персональним комп’ютером 68

Висновки 72

Перелік використаних джерел 74

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
дані, для реєстрації свого обличчя як власника системи. Другорядною вимогою є
покрокова візуалізація попередньої обробки зображення до процесу розпізнавання.
Програмний модуль повинен мати графічний інтерфейс користувача та
розділений на дві компоненти – блок аутентифікації та блок навчання системи.
Найбільш критичними параметрами системи є швидкодія розпізнавання та його
точність, виключаючи можливість аутентифікації третьою особою. Можливе
використання бібліотек машинного бачення.
Забезпечення задовільного рівня (точності) розпізнавання облич.

1.2 Теоретичні відомості


1.2.1 Метод Віоли-Джонса для знаходження облич
Основні принципи, на яких базується метод, що описані в [9, с. 137-154], такі:
– використовуються зображення в інтегральному уявленні, що дозволяє
швидко знаходити необхідні об'єкти;
– використовуються ознаки Хаара, за допомогою яких відбувається
пошук потрібного об'єкта (в даному контексті – обличчя та його рис);
– використовується бустинг (від англ. boost – поліпшення, посилення)
для вибору відповідних ознак для шуканого об'єкта на даній частині зображення;
– всі ознаки надходять на вхід класифікатора, який дає результат «вірно»
або «не вірно»;
– використовуються каскади ознак для швидкого відкидання зображень,
де не знайдено обличчя.
Тренування класифікаторів йде дуже повільно, але результати пошуку
обличчя дуже швидкі, саме тому був обраний даний метод розпізнавання осіб на
зображенні. Алгоритм Віоли-Джонса є одним з найкращих по співвідношенню
показників ефективність розпізнавання до швидкості роботи, згідно дослідження
[1]. Також цей детектор має вкрай низьку ймовірність помилкового виявлення
обличчя.

10
Даний метод в загальному вигляді шукає обличчя і риси обличчя за
загальним принципом вікна сканування, де сканується зображення вікном пошуку,
а потім застосовується класифікатор до кожного положення.
Алгоритм використовує інтегральне представлення зображення [2].
Інтегральне представлення дозволяє швидко обраховувати сумарну яскравість
будь-якої прямокутної області зображення, при чому який би це прямокутник не
був, час розрахунку залишається незмінним.
Інтегральне представлення зображення – це матриця, що співпадає за
розмірами з вихідним зображенням. В кожному її елементі зберігається сума
інтенсивності всіх пікселей, що знаходяться лівіше та вище даного елемента.
Елементи матриці розраховуються за формулою (1.1).

𝑖≤𝑥,𝑗 ≤𝑦
𝐼𝐼(𝑥, 𝑦) = ∑𝑖=0, 𝑗=0 𝐼(𝑖, 𝑗), (1.1)

де 𝐼(𝑖, 𝑗) – яскравість пікселя вихідного зображення.


Кожен елемент матриці 𝐼𝐼[𝑥, 𝑦] на рис. 1.1 представляє собою суму пікселей
в прямокутнику від (0, 0) до (х, у), тобто значення кожного пікселя (х, у) дорівнює
сумі значень всіх пікселів лівіше і вище даного пікселя (х, у). Розрахунок цієї
матриці виконується лінійний час, пропорціональний кількості пікселей в
зображенні, тому інтегральне зображення прораховується за один прохід.
Розрахунок матриці можливий за формулою (1.2).

𝐼𝐼(𝑥, 𝑦) = 𝐼(𝑥, 𝑦)– 𝐼𝐼(𝑥 − 1, 𝑦 − 1) + 𝐼𝐼(𝑥, 𝑦 − 1) + 𝐼𝐼(𝑥 − 1, 𝑦), (1.2)

де 𝐼𝐼(𝑥, 𝑦) — елемент матриці інтенсивності;


𝐼(𝑖, 𝑗) – яскравість пікселя вихідного зображення.

11
Рисунок 1.1 — Зображення та його інтегральне представлення
За допомогою такої інтегральної матриці можна обчислити суму пікселей
довільного прямокутника довільної площі. Наприклад, нехай в прямокутнику
ABCD на рис. 1.2 є шуканий об’єкт D.

Рисунок 1.2 — Приклад прямокутника ABCD з шуканим об’єктом


Суму всередині прямокутника можна представити у вигляді суми та різниці
суміжних прямокутників за формулою (1.3).

𝑆(𝐴𝐵𝐶𝐷) = 𝐿(𝐴) + 𝐿(С) − 𝐿(𝐵) − 𝐿(𝐷), (1.3)

де S – сума всередині прямокутника;


L – число всередині внутрішнього прямокутника.
Приклад розрахунку наведений на рис. 1.3.

12
Рисунок 1.3 — Приклад розрахунку суми та різниці суміжних прямокутників
В методі Віоли-Джонса використовуються ознаки Хаара.
Ознака – відображення 𝑓 => 𝐷, де 𝐷𝑓 – множина допустимих значень
ознаки.
Якщо задані ознаки 𝑓1 , … , 𝑓𝑛 , то вектор ознак 𝑥 = (𝑓1 (𝑥), … , 𝑓𝑛 (𝑥))
називають ознаковим описом об’єкта х ∈ 𝑋. Ознаковий опис можна
ототожнювати з самими об’єктами. При цьому множина 𝑋 = 𝐷𝑓1 ∗ … ∗ 𝐷𝑓𝑛
називається ознаковим простором.
Каскад Хаара – це набір примітивів, для яких розраховується їх згортка з
зображенням (в загальному випадку – операція обрахунку нового значення
обраного пікселя, що враховує значення оточуючих його пікселей).
Використовуються найпростіші примітиви, що складаються з прямокутників
та мають лише два рівня, +1 та -1. При цьому кожен прямокутник використовується
декілька разів різного розміру. Під згорткою маємо на увазі формулу (1.4).
𝑆 = 𝑋 – 𝑌, (1.4)
де Y – сума елементів зображення в темній області;
X – сума елементів зображення в світлій області.

13
Візуальний приклад згорток наведений на рис. 1.4.

Рисунок 1.4 — Приклад згорток


Такі згортки підкреслюють структурну інформацію об’єкта: наприклад для
центру обличчя людини завжди буде від’ємною згортка на рис 1.5.

Рисунок 1.5 — Приклад згортки


Очі будуть завжди темніше, ніж область між ними, так само як область роту
буде темніше за лоб (див. рис. 1.5). Чим більше використовується різноманітних
примітивів, тим точніше можна потім класифікувати об’єкт. Ознаки Хаара дають
точне значення перепаду яскравості по осі Х та Y відповідно.
Приклад накладання згорток на зображення зображений на рис. 1.6.
Кількість варіантів місцезнаходження ознак у вікні 24 на 24 близько 160000
шт. Це відбувається за рахунок зміни масштабу ознак та їх положення у вікні
сканування.

14
Рисунок 1.6 — Вихідне зображення
Для вибору ознак з такої кількості варіантів використовується алгоритм
бустингу AdaBoost – алгоритм посилення класифікаторів (ефективна модель, що
допускає мало помилок класифікації називається «сильною», а «слабка» не
дозволяє надійно розділяти класи або давати точні передбачення) та їх об’єднання
у «комітет». Цей алгоритм може використовуватися з декількома алгоритмами
класифікації для поліпшення їх ефективності. AdaBoost є адаптивним у тому сенсі,
що кожний наступний комітет класифікаторів будується по об’єктам, що були
вірно класифіковані попередніми комітетами. AdaBoost чутливий до шуму в даних.
Але тим не менш, він довго тренується та потребує велику кількість навчальних
прикладів.
Для даної задачі AdaBoost працює наступним чином: кожна ознака
застосовується до кожного зображення. Вибираються ознаки з найменшою
кількістю помилок. Спочатку тестовим зображенням призначається однакова вага,
після кожної неправильної класифікації вага зображення збільшується. Точкою
зупинки є необхідна точність, досягнена певна кількість помилок або вибрана
необхідна кількість ознак. Після даної операції кількість ознак значно зменшується,
але у фотографіях, зазвичай, обличчя займає малу область, і щоб не перевіряти всі

15
ознаки в непотрібних областях, ввели поняття «каскад класифікаторів». Тепер
ознаки групуються по стадіям. Перші стадії містять малу кількість ознак, в кожній
наступній стадії їх кількість буде збільшуватись. Область, що пройшла всі стадії, є
обличчям. Поетапний приклад процесу класифікації наведений на рис 1.7. На рис.
1.8 наведена візуалізація вікна пошуку ознак класифікатором.

Рисунок 1.7 — Стадії класифікації

Рисунок 1.8 — Вікно пошуку ознак класифікатором


1.2.2 Алгоритм Local Binary Patterns Histograms
Після знаходження обличчя необхідно розпізнати його, тобто визначити його
належність. Для вирішення цієї задачі буде використаний алгоритм Local Binary
Patterns, що має свої коріння в області аналізу 2D текстур.
Зображення розбивається на частини і в кожній частині кожен піксель
порівнюється з сусідніми 8 пікселями. Якщо значення центрального пікселя більше
сусіднього, записується 0, інакше 1. Таким чином, для кожного пікселя є деяке
двійкове число, наприклад 11001111. З 8 оточуючими пікселями можливо 28 різних
комбінацій, які мають назву Local Binary Patterns або LBP, стадії формування якого
16
наведені на рис. 1.9. Далі на основі цих чисел для усіх частин, на які були розбиті
зображення, обраховується гістограма, приклад наведений на рис. 1.10. Всі
гістограми частин об’єднуються в єдиний вектор, що характеризує зображення в
цілому. Для порівняння двох обличь потрібно порівняти ці вектори.

Рисунок 1.9 — Формування оператору LBP

Рисунок 1.10 — Формування гістограми


Більш формальним описом оператору LBP є формула (1.4), згідно [5, с. 4-5].

𝐿𝐵𝑃(𝑥𝑐 , 𝑦𝑐 ) = ∑𝑃−1 𝑝
𝑝=0 2 𝑠(𝑖𝑝 − 𝑖𝑐 ), (1.4)

де (𝑥𝑐 , 𝑦𝑐 ) — центральний піксель з яскравістю 𝑖𝑐 ;


𝑖𝑝 — яскравість сусідніх пікселей;
𝑠 — сигнум-функція, що приймає значення 1 коли її параметри більше
або дорівнюють нулю.
Цей опис дозволяє опрацьовувати дуже дрібні деталі зображення. Фактично
автори могли конкурувати з найсучаснішими результатами класифікації текстур.
Незабаром після того, як оператор був опублікований, було зазначено, що
фіксована область сусідів не може розпізнати деталі, що відрізняються за своїми
масштабами. Тому був запропонований оператор extended LBP, який дозволяє
17
використовувати змінну сусідства. Ідея полягає у можливості вибору будь-якої
кількості сусідів на колі при змінному радіусі, що дозволяє захоплювати наступних
сусідів на рис. 1.11.

Рисунок 1.11 — Можливе захоплення сусідніх пікселей

Для заданої точки (𝑥𝑐 , 𝑦𝑐 ) позиція сусіда (𝑥𝑝 , 𝑦𝑝 ), 𝑝 ∈ 𝑃 може бути


обрахована за формулами (1.5) та (1.6).

2𝜋𝑝
𝑥𝑝 = 𝑥𝑐 + 𝑅𝑐𝑜𝑠 ( ); (1.5)
𝑃
2𝜋𝑝
𝑦𝑝 = 𝑦𝑐 − 𝑅𝑠𝑖𝑛( ), (1.6)
𝑃

де 𝑅 — радіус заданого кола;


𝑃 — набір точок.
Для знаходження значення яскравості в точках довільного оточення пікселя
використовується білінійна інтерполяція. Тобто точці присвоюється середнє
зважене значення сусідніх пікселей. В усьому іншому оператор працює так само,
як класичний LBP.
Однак видно, що зі збільшенням кола, збільшується кількість розрядів в
числах, які необхідно опрацьовувати. Тобто для оточення з радіусом 2 з 16 точок
необхідно вже працювати з числами, що складаються з 16 біт, i кількість смуг
гістограми стає великим (рис 1.12).

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.

Рисунок 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

Результат тесту є незадовільним, бо середня точність знаходиться на рівні,


що не відповідає поставленій задачі (точність розпізнавання повинна бути не
менше 85%) і така система не може бути використана для захисту даних.
На відеофреймах є багато деталей, що можуть погіршити результати. Якщо
використати алгоритм Віоли-Джонса для виявлення обличчя людини на
зображенні, можна покращити результати, тому що оцінюватися буде лише
виділене обличчя без зайвих деталей. Використовуючи попередні вхідні дані та
використовуючи виявлення обличчя перед обробкою алгоритмом LBPH,
отримаємо результати у табл. 1.2.
Таблиця 1.2 – Результат тестування модифікованого алгоритму методом
Віоли-Джонса
Кількість невірних Середня точність, Середній час, мс
передбачень %
Відеопотік 1 0 73 62
Відеопотік 2 10 70 52
Відеопотік 3 25 67 55

Отже, згідно результату, наведеного в табл. 1.2, використання алгоритму


Віоли-Джонса для фільтрування кадрів виявленням обличчя збільшило результат
точності на 24% у порівнянні з оригінальним алгоритмом (див. табл. 1.1).

22
Це відбувається через те, що алгоритм не звертає уваги на фон відео. Також
видно, що час обробки збільшився лише близько на 10 мс у двох випадках, тому
висновком є те, що алгоритм Віоли-Джонса виконується швидко, а навантаження
на алгоритм LBPH зменшилося, бо немає необхідності перевіряти усе зображення,
а не його частину зі знайденим обличчям.
Але все одно результат можна покращити, зробивши алгоритм інваріантним
при невеликих нахилах голови людини. Цей результат можна отримати, якщо
знайти на обличчі людини очі, знайти кут нахилу голови та вирівняти зображення
за цим кутом. Задачу класифікації очей можна закріпити також за алгоритмом
Віоли-Джонса, бо як було перевірено вище, він показує задовільні результати.
Результати третього тесту наведені у табл. 1.3.
Таблиця 1.3 – Результат тестування модифікованого алгоритму методом
Віоли-Джонса з вирівнюванням обличчя
Кількість невірних Середня точність, Середній час, мс
передбачень %
Відеопотік 1 0 85 69
Відеопотік 2 7 90 59
Відеопотік 3 9 84 60

Результати, наведені у табл. 1.3, можуть забезпечити правильне


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

1.3 Обгрунтування вибору мови програмування


1.3.1 Бібліотеки CCV та OpenCV
OpenCV (Open Source Computer Vision Library) випущена під ліцензією BSD
і, отже, безкоштовна як для академічного, так і для комерційного використання.
Вона має інтерфейси C ++, C, Python і Java і підтримує Windows, Linux, Mac OS,

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
відповідно).

Рисунок 2.1 — Діаграма прецедентів блоку розпізнавання людського обличчя при


аутентифікації

30
Рисунок 2.2 — Діаграма прецедентів блоку для тренування моделі LBPH
Архітектуру блоку розпізнавання людського обличчя при здійсненні
аутентифікації користувача описує структурна схема, зображена на рисунок 2.3.

Інтерфейс користувача

Пристрій для отримання


зображення

Менеджер Менеджер
відеопотоку аутентифікації

Модуль фільтрації Модуль захисту


зображення даних

Модуль Модуль
Модуль виявлення Модуль розпізнання
перетворення вирівнювання
обличчя обличчя
зображення обличчя

Каскад Каскад
класифікатору класифікатору Модель LBPH
облич очей

Рисунок 2.3 — Структурна схема блоку розпізнавання людського обличчя при


аутентифікації

31
Згідно схеми (див. рис. 2.3), кадри з пристрою для отримання зображення
потрапляють до менеджеру відеопотоку. Завдання менеджера відеопотоку –
фільтрація кадрів та перетворення зображення у формат, що може бути оброблений
менеджером аутентифікації.
Фільтрація кадрів необхідна, щоб зберегти швидкодію обробки зображення,
а також це зменшить шанс невірного спрацювання та зменшить навантаження на
комп’ютер користувача.
Після обробки менеджером відеопотоку, оброблений кадр потрапляє в
модуль виявлення обличчя, що використовує каскад класифікатору облич. Модуль
виявлення облич у разі успіху відправляє дані про позицію обличчя на кадрі до
інтерфейсу користувача, який виконує виділення області з обличчям.
У разі успіху роботи модуля виявлення обличчя, обрізаний кадр з обличчям
направляється менеджером аутентифікації до модулю вирівнювання обличчя, який
використовує каскад класифікатору очей для горизонтального розташування кадру.
Виявлене та вирівняне обличчя направляється до модулю розпізнавання
обличчя, який в результаті роботи відправляє команду до інтерфейсу користувача
промаркувати область кадру, на якому було знайдено обличчя, та у разі успішного
розпізнавання, дає команду модулю захисту даних припинити свою роботу.
Модуль захисту даних виконує всю роботу по блокуванню вводу з
клавіатури, і у випадку отримання сигналу із модуля розпізнавання обличчя,
припиняє блокувати клавіатуру та повідомляє про це користувача через інтерфейс
користувача.
Порядок виконання дій проілюстровано схемою алгоритму на рис. 2.4.
На схемі присутній основний параметр, зміна якого впливає на успіх
аутентифікації користувача – відсоток розпізнавання. Цей параметр збільшується
лише у випадках, коли алгоритм впевнений, що людина на зображенні точно
співпадає з людиною, що має право доступу до даних. Коли розпізнається обличчя
іншої людини, даний параметр скидається до нуля.

32
Початок

Вхідний
відеопотік
з камери

Ні Кадр Так
доступний

Ні Так
i % 2 == 0

Пропустити кадр

Перевести
зображення в
градації сірого

++i
Виявити обличчя
на зображенні
алгоритмом
Віоли-Джонса

Ні Кількість облич Так


більше 0

Виділити регіон
першого
знайденого
обличчя

Знайти очі на
обличчі
алгоритмом
Віоли-Джонса

Ні Кількість очей Так


дорівнює 2

Ні Кут між очима Так


Отримати номер
менше 25 градусів
людини та точність
розпізнавання за
допомогою алгоритму Повернути
LBPH
зображення, щоб
очі знаходилися
на одному рівні
Ні Номер людини Так
дорІвнює 1

Ні Відхилення Так
розпізнавання
менше 35
Обнулити
значення Збільшити
відсотків відсоток
розпізнання розпізнавання на
10

Ні Відсоток Так Розблокування


розпізнавання
більше 100 клавіатури

Кінець

Рисунок 2.4 — Схема алгоритму блоку розпізнавання обличчя при аутентифікації

33
Аналогічно представлена архітектура блоку для тренування моделі LBPH на
рис. 2.5.

Рисунок 2.5 — Структурна схема блоку тренування моделі LBPH


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

34
Початок

ВІдео-
файл

Так Кадр Ні
++i доступний

Ні Так Помилка
i % 7 == 0
читання

Перевести
зображення в
градації сірого

Виявити обличчя
на зображенні
алгоритмом
Віоли-Джонса

Ні Кількість облич Так


більше 0

Виділити регіон
першого
знайденого
обличчя

Вивести
знайдене
обличчя

Знайти очі на
обличчі
алгоритмом
Віоли-Джонса

Ні Кількість очей Так


дорівнює 2

Вивести
вирівняне
обличчя

Ні Кут між очима Так


менше 25 градусів
Ні Режим Так
автоматичного
зберігання Повернути
зображення, щоб
Зберігти очі знаходилися
вирівняне на одному рівні
обличчя

Кінець

Рисунок 2.6 — Схема алгоритму обробки відеофайлу блоком тренування моделі

35
2.2 Опис засобів реалізації
За результатами розробки архітектури проекту, були побудовані структурні
схеми, які необхідно реалізувати на програмному рівні.
Відповідно до структурної схеми блоку розпізнавання людського обличчя
при аутентифікації (див. рис. 2.3) побудовано діаграму класів (рис. 2.7), що
відображає всі функціональні компоненти, що наявні у додатку.

Рисунок 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 — Взаємозв’язок користувача із менеджером відеопотоку і
менеджером аутентифікації

Рисунок 2.9 — Послідовність обробки зображення менеджером аутентифікації


38
На рис. 2.9 було розглянуто випадок, коли на кадрі присутнє людське
обличчя. Для повного опису алгоритму див. рис. 2.4.
Програмна реалізація архітектури додатку для тренування моделі LBPH
приведена на рис. 2.10.
Клас VideoFilter необхідний для перетворення кадрів з відео у формат, який
може бути використаний класом QFaceTrainer.
Клас QFaceTrainer є контролюючим класом, так само «опитуючи» інші класи,
як і в додатку розпізнавання людського обличчя.
Повторно використовуються компоненти EyesAligner, FaceDetector, що
успадковані від CascadeDetector. Роль та робота цих компонентів така ж сама, як і
в блоці розпізнавання обличчя при аутентифікації.
Також клас QFaceTrainer містить в собі екземпляр класу-сутності ImageProxy,
роль якого — зберігати результати обробки зображення та відтворювати їх в
інтерфейсі користувача.
Клас LBPHTrainer, згідно структурної схеми (див. рис. 2.5), є менеджером
тренування моделі та не є пов’язаним з іншою частиною блока, бо він лише
використовує дані, що були створені на попередньому етапі обробки даних.
Зберігає в собі всі необхідні дані для тренування моделі, а саме: набір негативних
зображень (тобто зображень облич інших людей), набір позитивних даних
(зображення обличчя користувача, може бути створено за допомогою даного
блоку, але ця умова не є обов’язковою), а також внутрішній масив підписів, що
створюється на етапі розбору теки методом findFiles, яку задає користувач. Тому
користувач при виборі негативних зображень для стійкості системи повинен
гарантувати, що на одну теку є лише одне обличчя. Присутні методи для
тренування, збереження та очищення тренованої моделі. Тренування моделі
відбувається асинхронно методом trainModelAsync, бо цей процес не є швидким і
потребує часу.

39
Рисунок 2.11 — Діаграма класів додатку тренування моделі LBPH та створення
набору даних для навчання
Процедура роботи користувача із функцією виявлення облич для створення
наборів даних для тренування на прикладі розбору одного відеофрейму із наданого
користувачем відеопотоку та із ввімкненим автоматичним режимом зберігання
описана діаграмою послідовності на рис. 2.12 та 2.13.

40
Рисунок 2.12 — Взаємозв’язок користувача із менеджером відеопотоку і
менеджером обробки зображень

Рисунок 2.13 — Послідовність обробки відеокадру менеджером обробки


зображень
41
2.3 Порівняльний аналіз програмного модулю та програм-аналогів
Згідно структури програмного модулю, що описана у підрозділі 2.1,
програмний модуль складається з двох частин, що можуть використовуватися
окремо та мають різну функціональність та власні аналоги, тому описуються
окремо.
Аналогами блоку розпізнавання людського обличчя при аутентифікації є
PAM Face Authentication, Blink! та VeriFace.
PAM Face Authentication – це Linux додаток, що дозволяє виконувати
аутентифікацію за допомогою розпізнавання обличчя. Додаток також поділяється
на дві частини – блок аутентифікації та блок навчання. Даний проект більше не
підтримується розробниками, але має відкритий код. Використовує стару версію
OpenCV та Qt.
Blink! – це Windows додаток компанії Luxand. На веб-сторінці продукту
розробники гарантують, що програма розпізнає людину незалежно від змін
обличчя (наприклад стрижка, окуляри, борода). Працює у двух режимах –
«Звичайний» та «Підвищена безпека». У режимі підвищеної безпеки зміни обличчя
не допускаються. Скриншот під час аутентифікації користувача зображений на рис.
2.15.
VeriFace – це Windows додаток компанії Lenovo. Має широкий спектр
налаштувань. Головною перевагою серед усіх інших додатків є наявність функції
Live Check, яка дозволяє перевірити, що на зображенні жива людина, а не
фотографія, але це призводить до втрати швидкодіїї. Є дуже гарно
документованою. На даний час не підтримується та не працює на Windows 10.
Порівняння представлене у табл. 2.1 для порівняння блоку розпізнавання
людського обличчя при здійсненні аутентифікації з основними та найбільш
популярними програмами-аналогами.

42
Рисунок 2.14 — Налаштування додатку VeriFace

Рисунок 2.15 — Скриншот додатку Blink! під час аутентифікації користувача

43
Таблиця 2.1 — Порівняння блоку аутентифікації із аналогами
Критерій оцінки Створений PAM Face Blink! VeriFace
програмний Authentication
блок
Універсальність + + + +
Постійність - - + -
Мала кількість + - + +
обмежень
Швидкодія + + - -
Підтримка + - - -
багатоплатформності

При наданні оцінки програмному забезпеченню, що пов’язане з системами


розпізнавання обличчя, можна виділити наступні атрибути:
– універсальність;
Для деяких людей розпізнавання обличчя може працювати не так добре, як
для інших. Наприклад наявність бороди або довгого волосся може ускладнити
задачу розпізнавання. Атрибут «універсальність» гарантує, що наявність таких
ознак не завадить успішному розпізнаванню. Модифікація алгоритму LBPH
алгоритмом Віоли-Джонса дозволяє уникнути оцінки подібних ознак, бо
виділяються лише основні ознаки обличчя.
– постійність;
З віком обличчя людини змінюється. Атрибут «постійність» гарантує, що з
плином часу не буде необхідності навчати модель знову. На даний час, створений
програмний блок не задовільняє дану вимогу. Але породжуючи декілька
альтернативних схожих зображень з одного навчального прикладу зможе усунути
цей недолік.
– мала кількість обмежень;

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 каскадами
Хаара.

Рисунок 2.16 — Скриншот роботи додатку Videobox

47
2.4 Інструкція роботи користувача
2.4.1 Інструкція роботи користувача блоку розпізнавання обличчя при
аутентифікації
Після запуску додатку користувач буде бачити вікно, що зображене на рис.
2.17.

Рисунок 2.17 — Вікно «Home» додатку


Головне вікно додатку складається з 6 основних частин:
1. Зображення з веб-камери.
2. Індикатор розпізнавання.
3. Список доступних веб-камер.
4. Кнопка для переходу на вікно «Home».
5. Кнопка для переходу на вікно «Help».
6. Індикатор завантаження.
Для переходу на інше вікно, достатньо натиснути ліву кнопку миші та
потягнути вліво так, як зображено на рис. 2.18 (або вправо для того щоб
повернутися). Також швидко можна переміститися за допомогою кнопок на нижній
панелі (кнопка під номером 4 та 5, див. рис. 2.17).

48
Рисунок 2.18 — Перехід з однієї сторінки на іншу

Рисунок 2.19 — Вікно «Home» Додатку


Вікно «Home» містить 3 основні частини:
7. Короткі відомості для користувача.

49
8. Текстове поле екстренного пін-коду.
9. Цифрова екранна клавіатура.
У випадку, якщо додаток не може правильно розпізнати користувача, є
можливість ввести пін-код для розблокування ПК користувача. Достатньо ввести
його за допомогою клавіатури (номер 9) і система автоматично розблокується.
Після завантаження додатку, почнеться процес розпізнавання користувача у
реальному часі. Якщо обличчя знайдене, користувач побачить прямокутник з
двома підписами навколо свого обличчя (рис 2.20).

Рисунок 2.20 — Обличчя користувача знаходиться у кадрі


10. Ім’я користувача, якщо відомо, інакше – «Unknown».
11. Відсоток впевненості збігу.
Відсоток впевненості збігу є індикатором впевненості алгоритму у тому, що
користувач у кадрі знаходиться в базі даних.

50
Залежно від цих параметрів, що задають стан розпізнавання, прямокутник
може бути чотирьох кольорів (рис. 2.21 – 2.24).

Рисунок 2.21 — Користувач не є авторизованим

Рисунок 2.22 — Впевненість розпізнавання дуже низька, може означати хибне


спрацьовування

51
Рисунок 2.23 — Впевненість розпізнавання середня, але необхідно покращити
якість зображення (наприклад, приблизити обличчя)

Рисунок 2.24 — Впевненість розпізнавання висока, лише при цьому стані


індикатор розпізнавання буде зростати

Коли індикатор розпізнавання (див. рис 2.17, номер 2) дійде до кінця,


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

52
2.4.2 Інструкція роботи користувача блоку тренування моделі LBPH
Головне вікно блоку тренування моделі LBPH після запуску додатку буде
виглядати так, як зображено на рис. 2.25.

Рисунок 2.25 — Головне вікно додатку


Головне вікно складається з 5 основних частин:
1. Відеопотік.
2. Вирівняне зображення обличчя.
3. Кадр, що обробляється.
4. Знайдене обличчя.
5. Кнопка меню налаштувань.
Натиснувши на кнопку меню налаштувань (компонент 5, див. рис. 2.25),
відкриється меню налаштувань (рис. 2.26).

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).

Рисунок 2.30 — Вигляд головного вікна програми з кнопкою для збереження


обличчя
Параметри класифікатору очей та облич дозволяють користувачу
скористатися власними каскадами Хаара (або використати альтернативні з
бібліотеки OpenCV). Вказувати ці каскади власноруч не обов’язково, бо за
замовчуванням додаток використовує haarcascade_eye_tree_eyeglasses та

57
haarcascade_frontalface_alt з комплекту бібліотеки OpenCV. Також є можливість
змінювати мінімальний та максимальний розмір об’єктів.
Група тренування моделі дає користувачу можливість створити та зберігти
модель LBPH. На рис. 2.31 – 2.34 зображено процес тренування моделі.
Спочатку необхідно вказати теку з позитивними зображеннями, тобто
зображеннми, на яких є обличчя користувача (див. рис. 2.31). Найкращі результати
можна отримати, якщо створювати зображення облич за допомогою цього додатку,
але це не є обов’язковим.

Рисунок 2.31 — Вибір позитивних зображень


Аналогічно можна вказати теку з вибіркою негативних зображень,
розподіливши їх на теки (одне обличчя на одну теку, кількість зображень
необмежена), див. рис. 2.32.

Рисунок 2.32 — Вибір негативних зображень


58
Якщо тека негативних зображень не вказана, буде доповнена вже
натренована модель позитивними зображеннями, це дозволить швидко створити
модель із власним обличчям та використовувати її.
Також важливо вказати, зображення якого формату використовувати.
Далі необхідно обрати теку, де буде збережена модель та визначити її назву
(за бажанням).
Коли всі необхідні параметри будуть вказані, потрібно натиснути на кнопку
«Update model» (див. рис.2.33), що запустить процес навчання. Цей процес може
тривати довго, по його закінченню користувач отримає повідомлення про
завершення (див. рис 2.34).

Рисунок 2.33 — Вказані всі параметри тренування

Рисунок 2.34 — Повідомлення про завершення тренування


В результаті тренування користувач отримує файл з розширенням xml, який
може використовувати в блоці розпізнавання обличчя при аутентифікації.

59
3 Економічна частина
3.1 Характеристика роботи та її призначення
Результатом дипломного проекту є розробка програмного модулю, що
складається з блоку розпізнавання обличчя при аутентифікації користувача у
персональний комп’ютер та блоку тренування моделі LBPH.
Концепція даного програмного забезпечення перевірена на практиці та має
лише кілька аналогів на великому ринку, а технічні та споживчі властивості
продукту знаходяться на рівні аналогів, згідно розділу 2.
Практично дана концепція не потребує додаткового фінансування, а складові
для реалізації ідеі відомі та давно використовуються. Термін реалізації ідеї менше
року, що дає змогу швидко вийти на ринок.

3.2 Розрахунок витрат на створення програмного продукту


Розрахунок вартості витрат на матеріали виконуємо виходячи з витрат на
допоміжні матеріали, перелік яких приведений в табл. 3.1.
Таблиця 3.1 — Допоміжні матеріали
Найменування Виробник і Одиниця Норма Ціна, Вартість,
матеріалу марка виміру затрат грн грн
Офісний папір MAESTRO 500 шт 0,2 89,98 18
формату А4 Standart, A4,
80г / м2, 500л,
клас C
Картридж SUPERPRINT 1 шт 5 190 950
SP.R-.PGI470
Лазерний диск VERBATIM 1 шт 2 10,02 20,04
CD-R 52x
Всього 988,04

60
Загальна вартість допоміжних матеріалів складає 988 грн 04 коп.
Розрахунок витрат на оплату праці програміста виконуємо за формулою
(3.1).
ЗЗП
СПП = t ∙ TЗПГОД , (3.1)
де t - трудоємність створення програмного продукту, год.;
ТЗПГОД - середня оплата програміста за годину праці, грн./год.
Дані про трудоємність операцій, виконуваних в процесі створення
програмного продукту, приведені в табл. 3.2.
Таблиця 3.2 – Трудоємність операцій
Найменування операції Витрати, год

Постановка задачі 6

Розробка алгоритму 15

Реалізація програмних модулів 18

Відлагодження 12

Тестування 10

Всього 61

Середню оплату програміста за годину праці приймаємо рівною 38 грн./год.


Виходячи з цього, витрати на оплату праці програміста згідно формули (3.1)
становитимуть:
ЗЗП
СПП =38 грн. 00 коп. ∙ 61 год = 2318 грн. 00 коп.

Виконуємо утримання із заробітної плати та нарахування, табл. 3.3.

61
Таблиця 3.3 – Утримання із заробітної плати та нарахування
Вид Розмір Утримання із заробітної Нарахування
виплати заробітної плати
плати, грн
Заробітна 2318,00 Військовий Податок на Єдиний
плата збір (ВЗ) доходи соціальний
фізичних осіб внесок
(ПДФО)
34 грн. 77 417 грн. 24 коп. 509 грн. 96
коп. коп.

1,5% 18% 22%

Визначимо річний фонд часу роботи ПЕОМ за формулою (3.2).


ТЕОМ = ТГОД ∙ (ТДН – ТВИХ ) – ТТИЖ ∙ ТПРОФ , (3.2)
де TГОД - кількість робочих годин, год./добу;
ТДН - загальна кількість днів у році, діб;
ТВИХ - кількість святкових і вихідних днів, діб;
ТТИЖ - число робочих тижнів у році, тижнів;
ТПРОФ - час профілактики по кожному тижню, год./тиждень.
Таким чином, річний фонд часу роботи ПЕОЕМ
дорівнює:
ТЕОМ = 12 год./добу∙(365 діб-114 діб)-35 тижнів∙2 год./тиждень = 2942 год.
Балансову вартість ПЕОМ обчислимо за формулою (3.3).
СБАЛ = СРИН • ЗУСТ , (3.3)
де СРИН - ринкова вартість ПЕОМ, грн.;
ЗУСТ - витрати на доставку й встановлення ПЕОМ, грн.
Витрати на доставку й встановлення ПЕОМ складають 10% від ринкової

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 коп.

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


формулою (3.9).
ЗЗАГ = ЗЗП
СПП / 3 , (3.9)
де ЗЗП
СПП - витрати на оплату праці програміста, грн.

Розрахуємо витрати на освітлення, опалення та послуги:


ЗЗАГ = 2318 грн. 00 коп. / 3 = 772 грн. 67 коп.
Обчислення собівартості програмного продукту за статтями витрат
наводяться в табл. 3.4.

64
Таблиця 3.4 – Собівартість програмного продукту за статтями витрат
Статті витрат Сума, грн.
Сировина та матеріали 988,04
Заробітна плата 2318,00
Єдиний соціальний внесок 509,96
Витрати на оплату машинного часу 466,32
Загальновиробничі витрати 772,67
Повна собівартість 5054,99

Оптову ціну програмного продукту визначаємо за формулою (3.10).


ЦРЕАЛ = СПОВ • (1 + РН / 100) , (3.10)
де СПОВ - повна собівартість виробу, грн.;
РН - нормативний рівень рентабельності, %.
Вважатимемо нормативний рівень рентабельності рівним 25% і розрахуємо
оптову ціну програмного продукту:
ЦРЕАЛ = 5054 грн. 99 коп. ∙ (1 + 25 / 100) = 6318 грн. 74 коп.

3.3 Висновки щодо економічної доцільності розробки та впровадження


проекту
Результатом впровадження проекту є підвищення безпеки систем, у даному
випадку – захист персональних даних користувача, де у якості ідентифікатору
виступає обличчя користувача, що виключає можливість отримання доступу до
даних третіми особами. Блок тренування моделі LBPH збільшить ефективність
роботи розробників систем, де необхідна велика кількість даних для машинного
навчання.
Отже, створення програмного засобу є доцільним з економічної точки зору,
бо його собівартість відносно мала і дорівнює 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 мм.

4.2 Заходи та засоби протипожежного захисту


Системи пожежної безпеки – це комплекс організаційних заходів і технічних
засобів, спрямованих на запобігання пожежі та збитків від неї. [6]
Відповідно до нормативних документів з охорони праці пожежна безпека
об'єкта повинна забезпечуватися системою запобігання пожежі, системою
протипожежного захисту і системою організаційно-технічних заходів.

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

4.3 Основні чинники професійного захворювання при роботі з


персональним комп’ютером
До основних шкідливих факторів, що впливають на стан здоров’я людей, що
працюють за комп’ютером відносять:
 сидяче положення протягом тривалого часу.
Здавалося б, за комп'ютером людина сидить в розслабленій позі, однак вона
є для організму вимушеною і неприємною: напружені шия, м'язи голови, руки і
плечі, звідси зайве навантаження на хребет , остеохондроз, а у дітей - сколіоз.
Працююча за комп'ютером людина тривалий час повинна зберігати відносно
нерухоме положення, що негативно позначається на хребті і циркуляції крові у
всьому організмі (застій крові). Особливо сильно застій крові виражений на рівні
органів малого тазу та кінцівок. При тривалих порушеннях циркуляції крові
порушується живлення тканин і пошкоджуються стінки судин, що в свою чергу
призводить до їх необоротного розширення. Таке розширення судин
спостерігається, наприклад, при геморої. Крім того, малорухливий спосіб життя
часто призводить до ожиріння;
 захворювання прямої кишки.

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

You might also like