Please use this identifier to cite or link to this item:
https://er.chdtu.edu.ua/handle/ChSTU/6487| Title: | Дослідження систем глибинного навчання для автоматизації розпізнавання об’єктів у відеопотоці |
| Authors: | Уткіна, Тетяна Юріївна Строкін, Денис Андрійович |
| Issue Date: | Jan-2026 |
| Abstract: | Метою кваліфікаційної роботи є підвищення ефективності систем глибинного навчання для автоматизації розпізнавання об’єктів у відеопотоці за рахунок проведення системного аналізу сучасних методів детекції об’єктів у відеопотоці, що базуються на згорткових нейронних мережах, розробки структурної моделі автоматизованої системи розпізнавання об’єктів у відеопотоці «VideoDetect», розробки моделі функціонування системи розпізнавання під час аналізу відеокадру, починаючи від захоплення даних до видачі результатів детекції та трекінгу, розробки алгоритмів попередньої обробки, детекції та відстеження об’єктів, що дозволить здійснювати моніторинг та аналіз поведінки об’єктів у відеопотоці в реальному масштабі часу. Об’єкт дослідження – процес автоматизації розпізнавання об’єктів у відеопотоці за допомогою систем глибинного навчання. Предмет дослідження – системи глибинного навчання для автоматизації розпізнавання об’єктів у відеопотоці. Вирішено наступні основні завдання: 1. Розроблено структурну модель та модель функціонування системи розпізнавання об’єктів у відеопотоці «VideoDetect» під час аналізу відеокадру, починаючи від захоплення даних до видачі результатів детекції та трекінгу. 2. Розроблено алгоритми попередньої обробки, детекції та відстеження об’єктів, що включають фільтрацію шумів, нормалізацію, застосування моделей згорткових нейронних мереж Faster R-CNN, YOLOv5 та YOLOv8, а також механізм відстеження за допомогою показника IoU. Запропонована система забезпечує оперативну і точну детекцію об’єктів у відеопотоці, що дозволяє підвищити точність та стабільність систем відеоспостереження при відстеженні об’єктів на потокових лініях у задачах промислової автоматизації. |
| URI: | https://er.chdtu.edu.ua/handle/ChSTU/6487 |
| Appears in Collections: | 174 Автоматизація, комп'ютерно-інтегровані технології та робототехніка (Автоматизація та комп'ютерно-інтегровані системи та компоненти) |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| М_174_2025_Строкін.pdf Restricted Access | 1.62 MB | Adobe PDF | View/Open Request a copy |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КАФЕДРА РОБОТОТЕХНІКИ ТА СПЕЦІАЛІЗОВАНИХ
КОМП’ЮТЕРНИХ СИСТЕМ
на тему: Дослідження систем глибинного навчання для автоматизації
розпізнавання об’єктів у відеопотоці
Виконав: здобувач вищої освіти 2 курсу,
групи МАКІТ-2409
спеціальності 174 «Автоматизація,
комп’ютерно-інтегровані технології та
робототехніка»
(освітня програма «Спеціалізовані комп’ютерні
системи»)
Денис СТРОКІН
(ім’я та ПРІЗВИЩЕ)
Керівник Тетяна УТКІНА
(ім’я та ПРІЗВИЩЕ)
Рецензент
(ім’я та ПРІЗВИЩЕ)
Захист дозволяю:
зав. кафедри, д.т.н., професор Валентина ЛУКАШЕНКО
(ім’я та ПРІЗВИЩЕ)
Черкаси 2025
ЗМІСТ
ЗАГАЛЬНА ХАРАКТЕРИСТИКА РОБОТИ ...................................................... 4
РОЗДІЛ 1. СТАН ПРЕДМЕТУ ДОСЛІДЖЕННЯ ТА ФОРМУЛЮВАННЯ
ЗАВДАНЬ ................................................................................................................. 9
1.1. Огляд розвитку світового ринку систем для автоматизації розпізнавання
об’єктів у відеопотоці ................................................................................................. 9
1.2. Перспективи використання систем для автоматизації розпізнавання
об’єктів у відеопотоці ............................................................................................... 10
1.3. Переваги та недоліки використання систем для автоматизації
розпізнавання об’єктів у відеопотоці ...................................................................... 11
1.4. Основні компоненти систем для автоматизації розпізнавання об’єктів у
відеопотоці ................................................................................................................. 13
1.5. Формулювання проблемних завдань дослідження ...................................... 14
1.6. Висновки .......................................................................................................... 15
РОЗДІЛ 2. СИСТЕМНИЙ АНАЛІЗ СУЧАСНИХ СИСТЕМ ДЛЯ
АВТОМАТИЗАЦІЇ РОЗПІЗНАВАННЯ ОБ’ЄКТІВ У ВІДЕОПОТОЦІ ...... 17
2.1. Системи для автоматизації розпізнавання об’єктів у відеопотоці ............ 17
2.2. Системи глибинного навчання у завданнях розпізнавання об’єктів ......... 18
2.3. Методи глибинного навчання в системах відеоаналітики ......................... 21
2.4. Обґрунтування доцільності розробки системи для автоматизації
розпізнання об’єктів у відеопотоці .......................................................................... 46
2.5. Висновки .......................................................................................................... 50
РОЗДІЛ 3. ОСОБЛИВОСТІ АВТОМАТИЗАЦІЇ ПРОЦЕСУ
РОЗПІЗНАВАННЯ ВИЗНАЧЕНОЇ ГРУПИ ОБ’ЄКТІВ ................................. 51
3.1. Формальна постановка завдання розпізнавання об’єктів для автономних
транспортних систем ................................................................................................ 51
2
3.2. Особливості процесу розпізнавання об’єктів в автономних транспортних
системах ..................................................................................................................... 54
3.3. Вибір датасету для системи автоматизації розпізнання об’єктів у
відеопотоці ................................................................................................................. 58
3.4. Особливості формування навчальної вибірки ............................................. 61
3.5. Вибір моделей згоркових нейронних мереж для тестування ..................... 66
3.6. Висновки .......................................................................................................... 67
РОЗДІЛ 4. РОЗРОБКА СИСТЕМИ ДЛЯ АВТОМАТИЗАЦІЇ
РОЗПІЗНАВАННЯ ОБ’ЄКТІВ У ВІДЕОПОТОЦІ «VIDEODETECT» ........ 68
4.1. Розробка структурної моделі системи для автоматизації розпізнавання
об’єктів «VideoDetect» .............................................................................................. 68
4.2. Розробка моделі функціонування системи для автоматизації
розпізнавання об’єктів «VideoDetect» ..................................................................... 69
4.3. Розробка алгоритмів попередньої обробки, детекції та трекінгу .............. 72
4.4. Розробка та навчання моделі Faster R-CNN ................................................. 75
4.5. Розробка та навчання моделі YOLOv5 ......................................................... 78
4.6. Розробка та навчання моделі YOLOv8 ......................................................... 81
4.7. Порівняльний аналіз моделей Faster R-CNN, YOLOv5 та YOLOv8 .......... 85
4.8. Висновки .......................................................................................................... 89
ВИСНОВКИ ............................................................................................................. 91
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ............................................................ 93
ДОДАТКИ ............................................................................................................... 93
Додаток А. Лістинг програми навчання моделі Faster R-CNN .......................... 95
Додаток Б. Лістинг програми навчання моделі YOLOv5 ................................. 105
Додаток В. Лістинг програми навчання моделі YOLOv8 ................................. 108
3
ЗАГАЛЬНА ХАРАКТЕРИСТИКА РОБОТИ
Стрімкий розвиток інформаційних технологій та впровадження
інтелектуальних систем у різні сфери людської діяльності зумовлюють
підвищений інтерес до досліджень, пов’язаних із комп’ютерним зором та
автоматичним розпізнаванням об’єктів. Сучасний світ рухається у напрямі
тотальної цифровізації, і обробка відеоданих стає одним із ключових ресурсів
для побудови безпечних, ефективних, автономних та високоавтоматизованих
систем [1-2].
Особливу увагу привертають технології автоматичної детекції об’єктів у
відеопотоці, оскільки вони становлять основу для реалізації цілої низки
критично важливих застосувань: від систем підтримки водія та автономного
керування транспортними засобами до механізмів моніторингу безпеки,
автоматизації промислових процесів та робототехніки [3-4].
Актуальність. Автономні автомобілі, сучасні системи
відеоспостереження, безпілотні літальні апарати, системи контролю доступу та
концепція «розумного міста» безпосередньо залежать від ефективності
алгоритмів комп’ютерного зору [5].
Розпізнавання об’єктів у відеопотоці є складною задачею, яка включає не
лише визначення наявності об’єкта, але й точну його локалізацію та
класифікацію, а також перевірку стійкості моделі до змін умов освітлення,
ракурсу, фону та шумів. Додаткову складність створює необхідність обробки
великої кількості кадрів із мінімальною затримкою, що вимагає використання
оптимізованих архітектур глибинного навчання [6-8].
Саме тому дослідження, спрямовані на аналіз, порівняння та оцінювання
ефективності різних моделей глибинного навчання в задачах автоматичної
детекції об’єктів у відеопотоці, є актуальними як у науковому, так і у
прикладному аспектах. Робота спрямована на визначення сильних і слабких
сторін сучасних архітектур, встановлення закономірностей у їх поведінці на
4
реальних даних та формування практичних рекомендацій для впровадження у
високонавантажених інтелектуальних системах [9-10].
Мета і завдання дослідження. Метою кваліфікаційної роботи магістра є
підвищення ефективності систем глибинного навчання для автоматизації
розпізнавання об’єктів у відеопотоці за рахунок проведення системного аналізу
сучасних методів детекції об’єктів у відеопотоці, що базуються на згорткових
нейронних мережах, визначення їх переваг та недоліків, розробки структурної
моделі автоматизованої системи розпізнавання об’єктів у відеопотоці
«VideoDetect», розробки моделі функціонування системи розпізнавання під час
аналізу відеокадру, починаючи від захоплення даних до видачі результатів
детекції та трекінгу, розробки алгоритмів попередньої обробки, детекції та
відстеження об’єктів, що включають фільтрацію шумів, нормалізацію,
застосування моделей згорткових нейронних мереж Faster R-CNN, YOLOv5 та
YOLOv8, а також механізм відстеження за допомогою показника IoU, що
дозволить здійснювати моніторинг та аналіз поведінки об’єктів у відеопотоці в
реальному масштабі часу.
Запропонована автоматизована система розпізнавання об’єктів у
відеопотоці «VideoDetect» забезпечує оперативну і точну детекцію об’єктів у
відеопотоці, що дозволяє підвищити точність та стабільність систем
відеоспостереження при відстеженні об’єктів на потокових лініях у задачах
промислової автоматизації.
Для досягнення цієї мети необхідно вирішити наступні завдання:
− провести системний аналіз сучасних методів детекції об’єктів у
відеопотоці, що базуються на згорткових нейронних мережах, визначити їх
переваги та недоліки;
− розробити структурну модель автоматизованої системи розпізнавання
об’єктів у відеопотоці «VideoDetect»;
5
− розробити модель функціонування системи розпізнавання під час
аналізу відеокадру, починаючи від захоплення даних до видачі результатів
детекції та трекінгу;
− розробити алгоритми попередньої обробки, детекції та відстеження
об’єктів, що включають фільтрацію шумів, нормалізацію, застосування
моделей згорткових нейронних мереж Faster R-CNN, YOLOv5 та YOLOv8, а
також механізм відстеження за допомогою показника IoU;
− виконати порівняння моделей згорткових нейронних мереж Faster R-
CNN, YOLOv5 та YOLOv8 в контексті роботи з відеопотоком, встановити
взаємозв’язки між архітектурою зазначених моделей та їх здатністю до
генералізації, особливо в умовах шуму, низької якості відео, швидкого руху та
змін освітлення;
− сформувати рекомендації щодо адаптації моделей згорткових
нейронних мереж YOLO та Faster R-CNN при обмежених обчислювальних
ресурсах для застосувань, де критичними є швидкість та стійкість, у режимі
реального часу.
Об’єкт дослідження – процес автоматизації розпізнавання об’єктів у
відеопотоці за допомогою систем глибинного навчання.
Предмет дослідження – системи глибинного навчання для автоматизації
розпізнавання об’єктів у відеопотоці.
Методи дослідження. Для розв’язання поставлених завдань були
використані наступні методи: теорії аналізу та синтезу, методи глибинного
навчання на базі згорткових нейронних мережах, оптимізаційні алгоритми
(SGD, AdamW), методи регуляризації, аналітичні методи оцінювання точності,
(включно з mAP@50, mAP@50-95, precision, recall), прийоми аугментації
даних, для штучного розширення навчальної вибірки, експериментальні методи
порівняння моделей у контрольованих і реальних умовах та статистичні методи
аналізу отриманих результатів.
6
Наукова новизна одержаних результатів:
− систематизована інформація про сучасні методи детекції об’єктів у
відеопотоці, що базуються на згорткових нейронних мережах, визначено їх
переваги та недоліки;
− розроблено структурну модель автоматизованої системи
розпізнавання об’єктів у відеопотоці «VideoDetect»;
− розроблено модель функціонування системи розпізнавання під час
аналізу відеокадру, починаючи від захоплення даних до видачі результатів
детекції та трекінгу.
Практичне значення одержаних результатів полягає в наступних
аспектах:
− розроблено алгоритми попередньої обробки, детекції та відстеження
об’єктів, що включають фільтрацію шумів, нормалізацію, застосування
моделей згорткових нейронних мереж Faster R-CNN, YOLOv5 та YOLOv8, а
також механізм відстеження за допомогою показника IoU;
− проведено порівняння моделей згорткових нейронних мереж
Faster R-CNN, YOLOv5 та YOLOv8 в контексті роботи з відеопотоком,
встановлено взаємозв’язки між архітектурою зазначених моделей та їх
здатністю до генералізації, особливо в умовах шуму, низької якості відео,
швидкого руху та змін освітлення;
− сформовано рекомендації щодо адаптації моделей згорткових
нейронних мереж YOLO та Faster R-CNN при обмежених обчислювальних
ресурсах для застосувань, де критичними є швидкість та стійкість, у режимі
реального часу.
Апробація результатів роботи. Результати роботи доповідалися й
обговорювалися на студентській науковій конференції:
− дні студентської науки ЧДТУ, 22-24 квітня, м. Черкаси, Україна, 2025.
7
Публікації. Результати досліджень опубліковані в тезі доповідей:
1. Строкін Д. А., Уткіна Т. Ю. Дослідження систем глибинного навчання
для автоматизації розпізнавання об’єктів у відеопотоці [Електронний ресурс]
/ [упоряд. : Єгорова О. В., Захарова О. В., Тичков В. В. та ін.]. Студентська
науково-практична конференція ЧДТУ : зб. тез доповідей,
22–24 квітня 2025 р. М-во освіти і науки України, Черкас. держ. технол. ун-т.
Черкаси : ЧДТУ, 2025. С. 31–32.
Структура та обсяг кваліфікаційної роботи. Кваліфікаційна робота
складається з вступу, 4 розділів, висновків, списку використаних джерел та
3 додатки. Робота викладена на 113 сторінках. Ілюстрована 21 рисунком.
Таблиць 7. Список використаних джерел містить 31 найменування.
8
РОЗДІЛ 1. СТАН ПРЕДМЕТУ ДОСЛІДЖЕННЯ ТА
ФОРМУЛЮВАННЯ ЗАВДАНЬ
1.1. Огляд розвитку світового ринку систем для автоматизації
розпізнавання об’єктів у відеопотоці
Системи автоматизованого розпізнавання об’єктів у відеопотоці пройшли
значну еволюцію за останні два десятиліття, перетворившись із
вузькоспеціалізованих академічних розробок на ключовий технологічний
компонент сучасних інтелектуальних інформаційних систем [1-2].
Зростання обсягів відеоданих, розвиток обчислювальних засобів та поява
сучасних алгоритмів глибинного навчання сприяли формуванню глобального
ринку відеоаналітики, який демонструє стабільне зростання та високий рівень
інтеграції в різні галузі [27].
Характерною особливістю розвитку ринку є перехід від класичних
методів комп’ютерного зору (SIFT, HOG, Haar-каскади) до глибинних
нейронних мереж, що забезпечили значне підвищення точності та
універсальності [2, 31]. Зокрема, поява архітектур AlexNet, VGG та ResNet
стала переломним моментом у формуванні сучасних систем розпізнавання, а
подальший розвиток у вигляді
R-CNN, Faster R-CNN, SSD, YOLO та EfficientDet підвищив як точність, так і
швидкість роботи моделей, що дозволило застосовувати їх для обробки
відеопотоку в реальному часі [3-4, 6, 16, 19].
Світовий ринок систем розпізнавання об’єктів активно зростає завдяки
широкому спектру застосувань. Однією з найбільш динамічних сфер є
автономний транспорт, де точність і швидкість детекції відіграють ключову
роль для безпеки пасажирів та учасників дорожнього руху [5, 18]. Водночас
технології відеоаналітики активно використовуються у системах
відеоспостереження, промисловій автоматизації, робототехніці, логістиці,
охороні та роздрібній торгівлі [11, 27].
9
Загалом ринок характеризується високою конкуренцією між виробниками
апаратного забезпечення (NVIDIA, Intel, Qualcomm), розробниками
програмного забезпечення (Google, Meta AI Research, OpenCV Foundation) та
інтеграторами комплексних рішень.
У сучасних умовах відбувається зміщення акцентів у бік моделей, що
оптимізовані для edge обчислень – компактних пристроїв, здатних виконувати
обробку відеоданих безпосередньо на місці [12, 20, 27, 31]. Цей підхід знижує
затримку, підвищує конфіденційність даних та зменшує навантаження на
хмарні сервіси.
Таким чином, світовий ринок систем автоматизованого розпізнавання
об’єктів продовжує стійко розвиватися, а ключові тенденції полягають у
підвищенні продуктивності алгоритмів, оптимізації моделей для роботи в
умовах реального часу та розширенні сфери застосування за рахунок інтеграції
з іншими технологіями штучного інтелекту.
1.2. Перспективи використання систем для автоматизації
розпізнавання об’єктів у відеопотоці
Перспективи подальшого впровадження систем автоматизованого
розпізнавання об’єктів безпосередньо пов’язані з розвитком методів
глибинного навчання, зростанням обсягів відеоданих та потребою суспільства в
автоматизації процесів аналізу навколишнього середовища [31].
Сучасні моделі демонструють високі показники ефективності, однак
можливості їх застосування значно ширші й виходять за межі традиційних
сфер, таких як відеоспостереження або автономний транспорт [27].
Одним із ключових напрямів перспективного розвитку є зростання
точності моделей при збереженні високої швидкості. Це особливо важливо для
систем реального часу, де кожна мілісекунда затримки може відігравати
критичну роль – наприклад, у системах автономного водіння або моніторингу
безпеки [28]. У цьому контексті моделі родини YOLO (зокрема YOLOv8 та
10
більш сучасні модифікації) демонструють значний потенціал завдяки
оптимізації структури мереж і підвищенню здатності до генералізації [17, 25].
Подальший розвиток пояснюваного штучного інтелекту (Explainable AI)
відкриває нові горизонти у використанні систем детекції в безпекових сферах.
У майбутньому такі системи не лише визначатимуть наявність об’єктів,
але й надаватимуть аналітичні висновки щодо прийнятих рішень, що є
критично важливим для автономних транспортних засобів та промислових
роботів [11, 27].
У контексті теми даної кваліфікаційної роботи магістра перспективи
використання систем розпізнавання об’єктів у відеопотоці є особливо
значущими. Автономні автомобілі потребують надійних алгоритмів, здатних
працювати в умовах різноманітних погодних ситуацій, складних сцен, різної
освітленості та високої динаміки руху [5, 18].
Саме тому моделі Faster R-CNN, YOLOv5 та YOLOv8, що аналізуються в
дослідженні, мають стати основою для розробки високоточних систем, де
пріоритетами є безпека, стабільність та швидка адаптація до змін оточуючого
середовища [4, 24-25].
1.3. Переваги та недоліки використання систем для автоматизації
розпізнавання об’єктів у відеопотоці
Системи розпізнавання об’єктів у відеопотоці мають низку суттєвих
переваг, які забезпечують їх широке застосування в різних галузях. Однією з
головних переваг є здатність до швидкої та автоматизованої обробки великих
обсягів даних, що дає змогу зменшити потребу в ручному аналізі та підвищити
оперативність прийняття рішень [27].
Крім того, сучасні нейронні мережі використовують складні архітектури,
здатні розпізнавати об’єкти за різних умов освітлення, масштабу та ракурсу, що
забезпечує високу точність та універсальність [31].
11
Ще однією важливою перевагою є можливість інтеграції таких систем у
мобільні та вбудовані пристрої завдяки розвитку edge обчислень [12]. Це
дозволяє застосовувати технології розпізнавання в режимах із низькою
затримкою, що особливо актуально для автономних транспортних
систем [5, 18]. Такі системи здатні працювати навіть за відсутності стабільного
інтернет з’єднання, а також забезпечують додатковий рівень безпеки
даних [20].
Попри переваги, системи розпізнавання мають і певні недоліки. Одним із
ключових є значна залежність від обчислювальних ресурсів, особливо під час
навчання нейронних мереж. Моделі високої точності потребують великих
наборів даних, потужних графічних процесорів та значного часу на
оптимізацію параметрів [2-4].
Крім того, системи можуть демонструвати зниження точності в умовах
сильних погодних змін, низької освітленості або надмірної кількості об’єктів у
сцені [11, 27].
Також важливо враховувати ризики, пов’язані з помилковими
спрацьовуваннями та пропуском критичних об’єктів. У випадку автономного
транспорту такі недоліки можуть мати серйозні наслідки, що підкреслює
необхідність ретельного тестування та комбінування різних методів
детекції [18, 28]. Вирішення цих проблем полягає у вдосконаленні архітектур,
залученні багатомодальних моделей, використанні трансформерів та методів
підвищення стійкості до шуму [17, 25, 31].
Системи розпізнавання об’єктів у відеопотоці мають значну кількість
переваг, що робить їх одним із ключових інструментів сучасних інформаційних
технологій. Висока точність, здатність працювати в реальному часі та
можливість інтеграції в широке коло галузей забезпечують їх популярність та
перспективність.
Разом з тим, певні обмеження, пов’язані з обчислювальними витратами,
залежністю від датасетів та складністю налаштування, вимагають зваженого
12
підходу до впровадження. Розуміння цих особливостей дозволяє коректно
формувати завдання дослідження та визначати напрями подальшої оптимізації.
1.4. Основні компоненти систем для автоматизації розпізнавання
об’єктів у відеопотоці
Типова система для автоматизації розпізнавання об’єктів у відеопотоці
складається з декількох ключових компонентів, які забезпечують її стабільну
роботу та можливість інтеграції в різні сфери діяльності [27, 31].
Одним із базових компонентів є джерело даних – камера або сенсор, який
здійснює фіксацію зображення чи відео. Сучасні відеосенсори здатні
передавати дані в реальному часі з високою роздільною здатністю, що є
важливим для точності роботи моделей [20].
Другим важливим компонентом є модуль попередньої обробки даних, що
виконує нормалізацію, шумозаглушення, перетворення кольорових просторів
та інші операції, необхідні для покращення якості вхідного сигналу [2, 12]. Цей
етап має ключове значення, оскільки від його результатів залежить подальша
ефективність моделі детекції [3].
Центральним елементом системи є модель глибинного навчання, яка
безпосередньо здійснює розпізнавання об’єктів. Саме цей компонент відповідає
за аналіз відеопотоку та визначення наявності об’єктів у кожному кадрі [4, 17].
Залежно від архітектури модель може працювати в режимі реального часу або з
певною затримкою [25, 28].
Додатково системи можуть містити модулі пост обробки, що
відповідають за фільтрацію результатів, немаксимальне придушення,
відстеження об’єктів та підготовку вихідних даних до подальшої інтеграції в
системи управління [11, 27].
У комплексних рішеннях до системи можуть входити сервери для
зберігання даних, диспетчерські модулі, хмарні сервіси та засоби
аналітики [31].
13
Кожен із компонентів системи розпізнавання об’єктів відіграє важливу
роль у забезпеченні надійності роботи в цілому. Структура таких систем
включає як апаратні засоби отримання даних, так і складні алгоритмічні модулі
для їх аналізу та інтерпретації.
Правильне проєктування, налаштування та інтеграція кожного елемента
визначають ефективність застосування систем глибинного навчання для
автоматичного розпізнавання у відеопотоці, що є ключовим у сучасних
інтелектуальних рішеннях.
1.5. Формулювання проблемних завдань дослідження
− провести системний аналіз сучасних методів детекції об’єктів у
відеопотоці, що базуються на згорткових нейронних мережах, визначити їх
переваги та недоліки;
− розробити структурну модель автоматизованої системи розпізнавання
об’єктів у відеопотоці «VideoDetect»;
− розробити модель функціонування системи розпізнавання під час
аналізу відеокадру, починаючи від захоплення даних до видачі результатів
детекції та трекінгу;
− розробити алгоритми попередньої обробки, детекції та відстеження
об’єктів, що включають фільтрацію шумів, нормалізацію, застосування
моделей згорткових нейронних мереж Faster R-CNN, YOLOv5 та YOLOv8, а
також механізм відстеження за допомогою показника IoU;
− виконати порівняння моделей згорткових нейронних мереж Faster R-
CNN, YOLOv5 та YOLOv8 в контексті роботи з відеопотоком, встановити
взаємозв’язки між архітектурою зазначених моделей та їх здатністю до
генералізації, особливо в умовах шуму, низької якості відео, швидкого руху та
змін освітлення;
− сформувати рекомендації щодо адаптації моделей згорткових
нейронних мереж YOLO та Faster R-CNN при обмежених обчислювальних
14
ресурсах для застосувань, де критичними є швидкість та стійкість, у режимі
реального часу.
1.6. Висновки
1. Проведено системний аналіз розвитку систем для автоматизації
розпізнавання об’єктів у відеопотоці – від класичних методів обробки
зображень до сучасних архітектур глибинного навчання, включно зі
згортковими нейронними мережами та моделями трансформеру. Визначено, що
актуальність використання таких систем зростає під впливом глобальних
процесів цифровізації, розвитку автономного транспорту, інтелектуальних
систем відеоспостереження та автоматизації промислових процесів.
Відзначено, що сучасні підходи забезпечують значно вищу точність і
швидкодію порівняно з традиційними алгоритмами.
2. Визначено перспективи використання систем для автоматизації
розпізнавання об’єктів у відеопотоці. Визначено чинники, що сприяють
поширенню таких технологій, а також чинники, які гальмують їх ефективну
інтеграцію – чутливість до умов зйомки, потреба у великих обчислювальних
ресурсах, залежність від якості навчальних даних.
3. Визначено переваги використання систем для автоматизації
розпізнавання об’єктів у відеопотоці – висока точність, можливість роботи в
режимі реального часу, адаптивність до різних платформ та здатність
автоматично витягувати складні ознаки зображень – на основі огляду сучасних
архітектур згорткових нейронних мерж Faster R-CNN, YOLOv5, YOLOv8 та ін.
А також встановлено низку характерних недоліків – високі вимоги до
обчислювальних ресурсів, залежність від великого та якісного датасету,
ймовірність зниження точності в умовах реального відеопотоку, можливість
помилок через шум або артефакти зображення.
4. Розглянуто основні компоненти систем для автоматизації
розпізнавання об’єктів у відеопотоці. Проаналізовано структуру моделей
15
згорткових нейронних мереж, описано ключові функціональні блоки –
згорткові шари, повністю зв’язані шари, функції активації, оптимізатори та
механізми регуляризації. Розглянуто особливості формування навчальних
вибірок, методи аугментації, а також специфіку роботи алгоритмів
класифікації, локалізації та детекції у режимі обробки відеопотоку.
5. На основі аналізу стану предметної галузі сформовано основні
завдання дослідження.
16
РОЗДІЛ 2. СИСТЕМНИЙ АНАЛІЗ СУЧАСНИХ СИСТЕМ
ДЛЯ АВТОМАТИЗАЦІЇ РОЗПІЗНАВАННЯ
ОБ’ЄКТІВ У ВІДЕОПОТОЦІ
2.1. Системи для автоматизації розпізнавання об’єктів у відеопотоці
Системи автоматизованого розпізнавання об’єктів у відеопотоці є
ключовим компонентом сучасних технологій комп’ютерного зору, штучного
інтелекту та інтелектуальних систем. Їх розвиток зумовлений потребою в
автоматизації аналізу складних динамічних сцен, де дані надходять у вигляді
неперервного потоку відеокадрів. Такий тип обробки даних є критичним для
автономного транспорту, систем безпеки, відеоаналітики, робототехніки та
інших застосувань, що потребують високої точності та низької затримки.
У загальному випадку процес розпізнавання об’єктів включає декілька
етапів: вилучення ознак, локалізацію потенційних об’єктів, класифікацію
знайдених регіонів та відстеження об’єктів у часовому вимірі. Історично
методи розпізнавання еволюціонували від алгоритмів, що покладалися на ручне
проєктування ознак (HOG, SIFT, Haar-каскади), до повністю автономних
моделей глибинного навчання, здатних самостійно формувати високорівневі
репрезентації вхідних даних.
Поява згорткових нейронних мереж (CNN) стала переломним етапом у
розвитку галузі. Моделі, такі як AlexNet [17], VGG, ResNet [18], забезпечили
значне зростання точності розпізнавання завдяки здатності до глибокого
витягнення ознак. Використання CNN стало фундаментом для сучасних
детекторів об’єктів, серед яких можна виокремити двоетапні (R-CNN, Fast R-
CNN, Faster R-CNN) та одноетапні методи (YOLO, SSD, EfficientDet).
Двоетапні детектори відзначаються високою точністю, оскільки вони
розділяють процес виявлення об’єктів на: генерацію регіонів-кандидатів та їх
класифікацію. Особливої уваги заслуговує Faster R-CNN, який завдяки мережі
17
регіональних пропозицій (RPN) значно прискорив обчислення без істотної
втрати точності [9].
Одноетапні моделі YOLO та SSD, у свою чергу, виконують локалізацію
та класифікацію в межах одного проходу мережі, що робить їх оптимальними
для задач реального часу. Модельні родини YOLOv5 та YOLOv8 демонструють
високу продуктивність при роботі на пристроях із обмеженими ресурсами,
забезпечуючи від 60 до 120 FPS, що є критично важливим для автономних
систем.
Особливим аспектом систем відеорозпізнавання є робота з відеопотоком
у режимі реального часу. Тут додатковими викликами є:
− непередбачувана динаміка сцени;
− шуми та артефакти відеокодека;
− зміна освітлення;
− оклюзії та перехрещення об’єктів;
− необхідність синхронізації між кадрами.
Покращення точності та продуктивності можливе завдяки застосуванню
таких методів, як немаксимальне придушення (NMS), відстеження (DeepSORT,
ByteTrack), а також використання багаторівневих ознак (FPN, PANet).
Сучасні моделі також застосовують архітектури трансформерів (Vision
Transformers), що дозволяє поліпшувати глобальне розуміння сцени [20].
У підсумку, теоретичні основи сучасних систем розпізнавання об’єктів
поєднують у собі класичні алгоритмічні підходи та досягнення глибинного
навчання, дозволяючи створювати високопродуктивні та точні рішення для
роботи з відеопотоками різної складності.
2.2. Системи глибинного навчання у завданнях розпізнавання
об’єктів
Глибинне навчання (Deep Learning) є ключовою технологією сучасних
систем комп’ютерного зору, що забезпечує можливість автоматизованого
18
аналізу складних візуальних даних. Розвиток глибинного навчання став
фундаментом для побудови ефективних моделей розпізнавання об’єктів у
відеопотоці, що широко використовуються в автономному транспорті, системах
безпеки, робототехніці та промисловості.
Глибинні нейронні мережі складаються з багатьох шарів, кожен з яких
виконує певну трансформацію даних. Базовими компонентами таких мереж є:
− вхідний шар, що приймає зображення у вигляді багатовимірних
масивів;
− приховані шари, які виконують математичні перетворення та
екстрагують ознаки різного рівня абстракції;
− вихідний шар, що формує результат – класи об’єктів та їх просторові
координати.
Збільшення глибини мережі дозволяє виділяти складніші структури та
залежності в зображенні, проте потребує більших обчислювальних ресурсів та
вдосконалених методів оптимізації.
Згорткові нейронні мережі (CNN) є основою всіх сучасних детекторів
об’єктів. CNN використовують фільтри (ядра згортки), що сканують
зображення та формують карти ознак. Основні компоненти CNN:
− згорткові шари (Convolutional layers) – виділяють локальні та
глобальні ознаки;
− шари підвибірки (Pooling layers) – зменшують розмірність та
підвищують стійкість до шуму;
− повнозв’язні шари (Fully Connected layers) – застосовуються в
класифікаційних частинах моделей.
Архітектури ResNet, VGG, MobileNet та EfficientNet найчастіше
використовуються як backbone – базова частина моделі, що відповідає за
екстракцію ознак.
19
Сучасні системи розпізнавання включають такі етапи детекції об’єктів:
1. Екстракція ознак за допомогою глибинних CNN.
2. Генерація регіонів-кандидатів (у двоетапних моделях, наприклад
Faster R-CNN).
3. Класифікація та регресія координат – визначення класу й уточнення
рамки.
4. Немаксимальне придушення (NMS) – видалення дублюючих рамок.
Ці етапи можуть виконуватися як окремими модулями (двохетапні
моделі), так і в єдиному обчислювальному циклі (одноетапні моделі типу
YOLO та SSD).
Переваги глибинних моделей у відеопотоці. Глибинне навчання
забезпечує:
− здатність працювати з великими обсягами даних;
− високу стійкість до шуму та змін умов освітлення;
− адаптивність до нових класів об’єктів під час донавчання;
− можливість оптимізації під слабкі обчислювальні пристрої.
Це робить такі моделі особливо корисними в автономних системах, де
одночасно необхідна точність та робота в реальному часі.
Теоретичне місце моделей Faster R-CNN та YOLO. У контексті цього
дослідження важливо підкреслити відмінності теоретичних підходів:
− Faster R-CNN – двоетапна модель із високою точністю завдяки
використанню RPN для локалізації об’єктів у складних сценах;
− YOLOv5/YOLOv8 – одноетапні моделі, що працюють значно швидше,
оскільки виконують прогноз класів та координат одночасно.
Таким чином, вибір моделі залежить від балансу між точністю та
швидкістю, що є критичним для обробки відеопотоку.
20
2.3. Методи глибинного навчання в системах відеоаналітики
2.3.1 Архітектура R-CNN та її модифікації
Архітектура R-CNN (Regions with Convolutional Neural Networks) стала
одним із перших проривів у застосуванні глибинного навчання для завдань
детекції об’єктів. Вона запропонувала принципово новий підхід, який поєднав
класичні методи виділення регіонів із потужністю згорткових нейронних мереж
для класифікації та регресії координат.
На рис. 2.1 представлено цикл метода R-CNN.
Рис. 2.1 – Метод R-CNN
До появи R-CNN більшість детекторів покладалися на ручні
ознаки (HOG, SIFT) та класифікатори (SVM), які мали суттєві обмеження щодо
продуктивності та здатності узагальнення.
Метод R-CNN, уперше представлений Ross Girshick у 2014 році, був
істотним кроком у бік повної автоматизації процесу розпізнавання об’єктів.
В табл. 2.1 наведена порівняльна таблиця R-CNN та її версій.
21
Таблиця 2.1
Порівняння R-CNN, Fast R-CNN та Faster R-CNN
R-CNN Fast R-CNN Faster R-CNN
Час тестування 48 sec 1 sec 0.1 sec
Прискорення 1x 25x 250x
mAP 66.0 66.8 66.8
Вилучення блоку- Вибірковий Вибірковий
RPN
кандидата пошук пошук
CNN + Rol CNN + Rol
Вилучення ознаки CNN
pooling pooling
CNN + Rol CNN + Rol
Класифікація SVM
pooling pooling
Основні етапи роботи R-CNN. Архітектура R-CNN складається з трьох
ключових етапів:
1. Генерація регіонів-кандидатів. Для кожного зображення метод
Selective Search генерує приблизно 2000 регіонів, які потенційно можуть
містити об’єкти. Цей метод використовує ієрархічну сегментацію та різні
евристики для вибору регіонів максимально різної форми та розміру.
2. Екстракція ознак за допомогою CNN. Кожен кандидат обрізається до
фіксованого розміру (227 × 227 пікселів у класичній реалізації) і пропускається
через згорткову мережу, що дає високоінформативний вектор ознак.
Використання CNN стало головною інновацією, завдяки якій точність детекції
значно зросла.
3. Класифікація та уточнення рамки. Для кожного регіону:
− SVM класифікує об’єкт за класами;
− регресор уточнює координати рамки.
Недоліки R-CNN і мотивація для модифікацій. Попри свою новаторську
сутність, R-CNN мала декілька критичних недоліків:
− висока обчислювальна вартість – кожен регіон проходить CNN
окремо, що призводить до тисяч обчислень;
− великі вимоги до пам’яті;
22
− повільне навчання (кожен етап тренується окремо: CNN, SVM,
регресор координат);
− затримка в обробці, що унеможливлює застосування в реальному часі.
Це стало поштовхом до створення кількох “поколінь” модифікацій, кожна
з яких суттєво покращувала швидкість і точність.
2.3.2 Алгоритм Selective Search
Алгоритм Selective Search є одним із ключових методів генерації регіонів-
кандидатів (region proposals) у класичних підходах до задачі виявлення
об’єктів [4]. Він був розроблений як компроміс між повним перебором
можливих областей (exhaustive search), що є обчислювально надзвичайно
затратним, та методами сегментації, які часто не враховують варіативності
форм і розмірів об’єктів.
Selective Search поєднує у собі два підходи: низькорівневу сегментацію
зображення та ієрархічне групування подібних регіонів, створюючи
структуроване дерево можливих областей, що потенційно містять об’єкти [12].
На рис. 2.2 наведено приклад роботи Selective Search.
Рис. 2.2 – Етапи вибіркового пошуку
23
Алгоритм базується на припущенні, що об’єкти складаються з візуально
схожих і просторово суміжних частин, тому об’єднання таких частин дозволяє
виділити осмислені регіони.
Selective Search став одним із найважливіших елементів архітектури
R-CNN, вперше показавши, що попередньо згенеровані регіони-кандидати
можуть значно підвищувати точність традиційних моделей детекції [4].
Основний принцип роботи. Selective Search працює у два етапи:
1. Сегментація зображення на дрібні однорідні області. Зазвичай
використовується алгоритм Felzenszwalb and Huttenlocher segmentation
algorithm, який ділить зображення на багато малих суперпікселів.
2. Ієрархічне об’єднання схожих областей. На основі різних критеріїв
подібності (колір, текстура, розмір, форма, просторове сусідство) області
послідовно об’єднуються, формуючи набір дедалі більших регіонів.
У процесі об’єднання на кожній ітерації утворюється новий набір
регіонів-кандидатів, які потім передаються нейронній мережі або іншому
класифікатору для визначення наявності об’єкта.
Розглянемо детальний опис етапів алгоритму Selective Search.
1. Початкова сегментація зображення. Алгоритм починає роботу з
розбиття зображення на суперпікселі, що дозволяє:
− зменшити складність подальшої обробки;
− виділити початкові осмислені регіони;
− уникнути аналізу кожного окремого пікселя.
Сегментація виконується за принципом мінімізації різниці між
суміжними елементами з урахуванням кольору та градієнтів.
2. Обчислення показників подібності регіонів. Для кожної пари сусідніх
регіонів обчислюється ступінь подібності. Використовуються такі критерії:
− подібність кольору – визначається через гістограми;
− подібність текстури – враховує інформацію про локальні візуальні
патерни;
24
− подібність розміру – віддає пріоритет об’єднанню регіонів із
подібною площею;
− просторова близькість – регіони мають бути сусідніми;
− форма та межі – плавність або прямолінійність меж також впливає на
вибір сусідніх регіонів.
Це дозволяє алгоритму об’єднувати регіони не лише на основі кольору,
але й складніших візуальних характеристик.
3. Ієрархічне об’єднання регіонів. Алгоритм працює за принципом
жадібного (greedy) об’єднання:
− серед усіх пар регіонів вибирається пара з найбільшою подібністю;
− такі регіони об’єднуються у більший регіон;
− для нового регіону обчислюються нові метрики;
− процес повторюється до об’єднання всіх областей.
У результаті формується ієрархічне дерево регіонів-кандидатів, яке
включає як дрібні, так і великі області.
4. Генерація фінального набору регіонів-кандидатів. На кожному кроці
об’єднання алгоритм зберігає:
− початкові суперпікселі;
− регіони, створені на ранніх етапах;
− великі регіони, отримані під кінець роботи.
Таким чином, Selective Search генерує багаторівневий набір регіонів, який
покриває всі можливі масштаби об’єктів на зображенні.
Кількість таких регіонів зазвичай становить 1500–2000, що є
компромісом між повнотою охоплення та швидкістю.
Варіанти Selective Search. Існує два основні режими роботи алгоритму:
1. Selective Search Fast:
− використовує менше критеріїв подібності;
− швидший, але менш точний.
25
2. Selective Search Quality:
− використовує всі критерії;
− забезпечує найвищу точність;
− приблизно у 2-3 рази повільніший.
У наукових роботах зазвичай використовується Quality.
Переваги Selective Search:
− не потребує навчання моделі;
− досить висока точність генерації регіонів;
− добре працює на різноманітних зображеннях;
− дозволяє створити багаторівневі області різних розмірів;
− став стандартом для R-CNN.
Недоліки Selective Search:
− повільний (≈2 секунди на зображення);
− не масштабований до відеопотоків;
− не враховує високорівневі ознаки (лише низькорівневі);
− складний для оптимізації під GPU;
− не підходить для реального часу.
Саме ці недоліки стали однією з причин появи Fast R-CNN, Faster R-CNN
та регіонних пропозицій, що генеруються нейронними мережами (RPN).
2.3.3 Регресія рамок обмеження
Регресія рамок обмеження (англ. Bounding Box Regression) є одним із
ключових етапів у процесі точного визначення просторового розташування
об’єктів на зображенні. Хоча попередні етапи детекції зазвичай формують лише
приблизні координати області, у якій може міститися об’єкт (наприклад, через
Selective Search, Sliding Window або Region Proposal Network), саме регресія
рамок забезпечує можливість уточнювати форму, положення та масштаб
знайдених регіонів. Завдяки цьому покращується точність моделей детекції та
26
забезпечується коректне охоплення об’єктів без зайвих втрат чи
перекривань [3].
На рис. 2.3 зображено червону рамку об’єкта отриману від вибіркового
пошуку та синю рамку отриману в результаті зсуву регресії.
Рис. 2.3 – Регресія рамки обмеження
Мета та завдання регресії рамок обмеження. Основним завданням
регресії є мінімізація помилки між запропонованою моделлю рамкою та
реальною (еталонною) рамкою, що задана у даних ground truth.
На вхід подається:
− набір попередніх рамок (регіонів-кандидатів);
− ознаки (features), витягнуті з відповідних областей зображення.
На виході отримуємо:
− уточнені координати рамки, переведені у систему координат
зображення.
Це дає можливість значно збільшити кількість правильних збігів
(True Positives) та зменшити площу помилкового захоплення фону.
Формат представлення рамок. Зазвичай рамка обмеження описується
чотирма параметрами:
− x – координата лівої верхньої точки по горизонталі;
− y – координата по вертикалі;
− w – ширина рамки;
27
− h – висота рамки.
У сучасних моделях також використовують параметри центру (cx, cy)
замість x, y, що полегшує математичні операції під час регресії.
Принцип роботи регресії. Регресія рамок працює як модель передбачення
корекцій (offsets) для кожного параметра рамки. Наприклад, передбачаються
значення:
− Δx – зміщення рамки по осі X;
− Δy – зміщення по осі Y;
− Δw – масштабування ширини;
− Δh – масштабування висоти.
Фактично модель не генерує координати з нуля, а навчається наскільки
потрібно змістити або розширити початковий регіон.
Після цього уточнена рамка обчислюється як:
cx' = cx + Δx · w,
cy' = cy + Δy · h,
w' = w · exp(Δw),
h' = h · exp(Δh),
Експонента використовується для стабільності під час масштабування.
Математична постановка задачі. Задача регресії ставиться як
мінімізація функції втрат. Найчастіше використовують:
Smooth L1 Loss (Huber Loss)
Це гібрид між L1 та L2 втратою:
0.52, || < 1
ℎ 1() = {
|| − 0.5, інакше
Використання Smooth L1 замість L2 дозволяє:
− уникати різких градієнтів;
− зменшувати чутливість до викидів;
28
− забезпечити стабільнішу збіжність під час навчання.
Використання в класичних моделях детекції:
1. R-CNN. Регресія виконується окремою лінійною моделлю для
кожного класу. Цей підхід був першим, що значно підвищив точність детекції.
2. Fast R-CNN. Регресія інтегрована в CNN та виконується однією
мережею разом із класифікацією.
3. Faster R-CNN. Регресія виконується двічі:
− у Region Proposal Network (корекція anchor-боксів),
− у детекторі (уточнення об’єкта).
4. YOLO та SSD. Регресія є ключовим компонентом алгоритму
передбачення координат сітковими комірками або anchor-боксами.
Регресія у YOLO-системах. YOLO передбачає координати безпосередньо
відносно:
− комірки сітки (grid cell);
− anchor-боксу;
− нормалізованої системи координат.
Для кожного об’єкта модель передбачає:
− tx – зміщення по X;
− ty – зміщення по Y;
− tw – логарифмічне масштабування ширини;
− th – логарифмічне масштабування висоти.
Після цього координати переводяться у глобальні:
= () + ,
= () + ,
=
∗ ,
ℎ = ℎ ∗ ℎ.
29
Це дозволяє значно підвищити точність локалізації навіть на складних
зображеннях.
Переваги регресії рамок обмеження:
− значне збільшення точності локалізації об’єктів;
− можливість коректувати помилки регіонів-кандидатів;
− зменшення кількості помилкових спрацьовувань;
− коректна робота при різних масштабах та аспектах зображення;
− покращення показників IoU (Intersection over Union).
Обмеження та недоліки:
Попри ефективність, регресія має ряд обмежень:
− якість регресії залежить від точності початкових регіонів-кандидатів;
− надмірно великі зсуви можуть призводити до “вибуху градієнта” на
ранніх етапах навчання;
− необхідність ретельного налаштування anchor-боксів у моделях
типу YOLO/SSD;
− залежність від правильного вибору функції втрат.
2.3.4 Немаксимальне придушення NMS
Немаксимальне придушення NMS (англ. Non-Maximum Suppression,) є
одним із ключових етапів післяобробки результатів детекції об’єктів, який
забезпечує відбір найбільш релевантних рамок обмеження серед множини
кандидатів.
У процесі виявлення об’єктів сучасні моделі, такі як Faster R-CNN,
YOLO, SSD та RetinaNet, зазвичай генерують велику кількість перекривних
рамок, кожна з яких має власний рівень довіри (confidence score). Без
процедури NMS система видавала б множину накладених одна на одну рамок,
що суттєво знижувало б зручність інтерпретації результатів та створювало
хибне враження про кількість об’єктів.
30
Алгоритм NMS розроблений для вибору однієї найбільш достовірної
рамки, одночасно видаляючи або придушуючи всі інші рамки, які надмірно
перекриваються з нею.
Таким чином, NMS є обов’язковою стадією формування фінального
результату детекції. Немаксимальне придушення сортує всі прямокутники за їх
коефіцієнтом впевненості, обирає найвпевненішій прямокутник й видаляє всі
інші, які сильно перекриваються з ним [3]. Цей процес повторюється для всіх
прямокутників, поки не залишиться один (рис. 2.4).
Загальний принцип роботи NMS. Процес NMS можна представити у
вигляді послідовності дій:
1. Сортування всіх рамок за рівнем довіри (score) у порядку спадання.
2. Вибір рамки з найвищим score як базової (опорної).
3. Обчислення показника IoU (Intersection over Union) між базовою
рамкою та всіма іншими.
4. Видалення рамок, IoU яких перевищує заданий поріг (наприклад, 0.5).
5. Повторення процесу для всіх залишених рамок.
Рис. 2.4 – Немаксимальне придушення
У результаті відбираються лише ті рамки, які:
− мають високий рівень довіри;
31
− не перекривають одна одну надмірно;
− представляють різні об’єкти сцени.
Критерій перетину рамок (IoU). Ключовим елементом NMS є показник
перетину-в-об’єднанні (IoU):
(∩
= .
(∪
Значення IoU використовується для оцінки того, наскільки дві рамки
накладаються одна на одну.
IoU > порога → рамка вважається дублем і видаляється.
IoU ≤ порога → рамка зберігається.
Значення порога встановлюється експериментально (поширені значення –
0.3, 0.5 або 0.6).
Проблеми класичного NMS. Попри простоту, класичний NMS має низку
недоліків:
1. Жорсткість порога. Фіксований поріг може призвести до того, що:
− коректні рамки будуть видалені;
− слабші, але важливі для детекції можуть втрачатися.
2. Проблеми при щільних об’єктах. У сценах, де об’єкти знаходяться
поруч (люди у натовпі, автомобілі на стоянці), рамки часто мають високий
показник IoU. Це може призвести до того, що NMS обере лише одну з них, а
інші – придушить.
3. Чутливість до відхилень score. Дві рамки, які дуже схожі за
розташуванням, але відрізняються score лише на 1-2 %, можуть призвести до
неправильного видалення.
Ці обмеження стимулювали розробку вдосконалених варіантів NMS.
Розглянемо покращені методи NMS.
1. Soft-NMS. Soft-NMS не видаляє рамки повністю, а знижує їхній score
відповідно до IoU:
− чим більший IoU;
32
− тим сильніше знижується score рамки.
Це дозволяє уникати втрати корисних детекцій у сценах зі скупченням
об’єктів.
Результати:
− підвищення recall;
− зменшення кількості пропущених об’єктів;
− краща робота при перекриттях.
2. DIoU-NMS та CIoU-NMS. Ці методи використовують модифіковані
метрики IoU з урахуванням:
− відстані між центрами рамок;
− різниці співвідношень сторін;
− взаємного розташування рамок.
Переваги:
− більш точне видалення дублюючих рамок;
− краще розділення об’єктів, що знаходяться поруч;
− стабільність при різних масштабах.
3. Adaptive NMS (A-NMS). Поріг IoU підбирається динамічно, залежно
від:
− щільності об’єктів на сцені,
− типу об’єкта,
− рівня довіри.
Метод актуальний для складних відеопотоків та багатокластерних
зображень.
2.3.5 Fast R-CNN
Fast R-CNN (2015) оптимізував архітектуру R-CNN шляхом перенесення
обчислення ознак на рівень усього зображення. Послідовність блоків зображена
на рис. 2.5.
33
Рис. 2.5 – Метод Fast R-CNN
Ключові інновації Fast R-CNN:
1. Одна CNN для всього зображення, а не для кожного регіону окремо.
Це зменшило час обчислень у десятки разів.
2. ROI Pooling. Спеціальний шар, який дозволяє виділяти ознаки для
кожного регіону, “вирізаючи” їх із загальної карти ознак CNN.
3. Єдиний етап навчання. Класифікація та регресія координат
виконуються однією мережею.
Переваги Fast R-CNN:
1. Збільшення швидкості у 10-30 разів.
2. Значне зростання точності порівняно з R-CNN.
3. Зменшення споживання пам’яті.
Недоліки Fast R-CNN:
1. Все ще залежить від Selective Search, який працює повільно – близько
2 секунд на зображення.
2. Недостатня швидкість для відеопотоку.
2.3.6 Faster R-CNN
Faster R-CNN (2015-2017) усунув найбільшу проблему – повільний
Selective Search. Послідовність блоків зображена на рис. 2.6.
34
Рис. 2.6 – Метод Faster R-CNN
Головна інновація: Region Proposal Network (RPN).
RPN – це невелика CNN, яка працює поверх тієї ж карти ознак, що і
детектор, генерує тисячі якорів (anchors) та визначає ймовірність наявності
об’єкта та регресує рамку.
Потік роботи Faster R-CNN:
1. Зображення → CNN → карта ознак.
2. Карта ознак → RPN → регіони-кандидати.
3. ROI Pooling → класифікація та регресія координат.
Це дозволило:
− зменшити час обробки в рази;
− досягти високої точності на малих об’єктах;
− зробити архітектуру придатною для складних сцен із великою
кількістю об’єктів.
Переваги Faster R-CNN:
1. Висока точність у складних умовах.
2. Краща генералізація на реальних відео.
3. Здатність розпізнавати дрібні та частково закриті об’єкти.
35
Недоліки:
1. Обмежена швидкість (6-10 FPS на звичайному GPU).
2. Не найкращий вибір для роботи “жорстко в реальному часі”.
2.3.7 YOLO – одноетапний підхід
YOLO поділяє вхідне зображення на сітку S × S (наприклад, 7 × 7 або
13 × 13 у ранніх версіях).
Для кожної комірки сітки модель передбачає:
− координати рамки обмеження (bx, by, bw, bh);
− рівень довіри (confidence score);
− розподіл імовірностей класів (class probabilities).
Одночасно аналізується вся сцена, що забезпечує цілісність розуміння
об’єкта у контексті, меншу кількість хибних локалізацій та значно вищу
швидкість.
Послідовність блоків зображена на рис. 2.7.
Рис. 2.7 – Метод YOLO
YOLO як задача регресії. YOLO виконує детекцію у вигляді
багатовихідної регресії:
() → {(, , , ℎ , , ())}.
36
На відміну від методів, таких як Selective Search або RPN, YOLO не
генерує регіонів-кандидатів, а безпосередньо для кожної комірки сітки робить
передбачення щодо того, чи містить вона об’єкт.
Це значно зменшує кількість обчислень та затримку.
Архітектурні особливості YOLO. У класичному вигляді модель
складається з:
− Backbone – мережа для витягування ознак (Darknet, CSPDarknet,
MobileNet);
− Neck – об’єднання багаторівневих ознак (PANet, FPN);
− Head – блок передбачення координат, класів, objectness.
У YOLOv5 та YOLOv8 структура стала більш модульною, включаючи:
− CSP-блоки для ефективної обробки;
− SPPF (Spatial Pyramid Pooling – Fast);
− PANet для кращої передачі градієнтів;
− розділення на варіанти Nano/Small/Medium/Large/Xlarge для різних
ресурсів.
На рис. 2.8-2.9 наведено порівняльні графіки швидкості і точності роботи
найсучасніших детекторів об’єктів.
60
50
YOLOv6
40
YOLOv5
30 YOLOv7
YOLOv8
20
YOLOX
10 PP-YOLOE
0
200 400 600 800 1000 1200
Рис. 2.8 – Порівняння сучасних детекторів об’єктів. FPS при розмірі батчу 32.
Всі моделі протестовано за допомогою TensorRT 7
37
60
50
YOLOv6
40
YOLOv5
30 YOLOv7
YOLOv8
20
YOLOX
10 PP-YOLOE
0
0 10 20 30 40 50 60
Рис. 2.9 – Порівняння сучасних детекторів об’єктів по критеріям пропускної
здатності. Всі моделі протестовані за допомогою TensorRT 7
Використання anchor-боксів та anchor-free підхід. Версії YOLO до v7
використовують anchor-бокси – попередньо визначені співвідношення сторін
рамок.
Модель прогнозує корекції (offsets) відносно цих anchor-боксів.
YOLOv8 перейшла до anchor-free архітектури, що дозволяє уникнути
проблеми підбору оптимальних anchor-боксів, зменшити кількість
гіперпараметрів, покращити узагальнення на нетипових об’єктах та
пришвидшити процес навчання.
Функція втрат у YOLO. У YOLO використовуються складні комбінації
функцій втрат:
− Localization loss – помилка у координатах рамки (L1, CIoU, DIoU);
− Objectness loss – оцінка наявності об’єкта;
− Classification loss – розпізнавання класу.
У YOLOv5 та YOLOv8 використовується CIoU Loss, що враховує IoU,
відстань між центрами та різницю пропорцій сторін рамок.
Це дає значне покращення точності локалізації.
38
Оптимізації, що дозволили працювати в реальному часі. YOLO став
проривом завдяки поєднанню:
− одноетапного підходу → мінімум обчислень;
− повного огляду сцени → менше помилок локалізації;
− компактної нейронної архітектури → легкий inference;
− ефективних операцій згортки → менша затримка;
− інтеграції NMS → швидка післяобробка.
Завдяки цьому YOLO може працювати на серверних GPU, на
одноплатних комп’ютерах (Jetson Nano, Raspberry Pi), на мобільних пристроях
та edge-обладнанні.
Переваги YOLO:
− робота в реальному часі (30-120 FPS і більше);
− одноетапна архітектура → висока ефективність;
− простота інтеграції у мобільні пристрої;
− висока точність на великих наборах даних;
− універсальність (детекція людей, об’єктів, тварин, техніки,
автомобілів тощо).
Недоліки YOLO:
− нижча точність у порівнянні з деякими двоетапними методами на
складних датасетах;
− потенційна втрата дрібних об’єктів при низькій роздільності;
− залежність від якості попередньої обробки та NMS.
2.3.8 SSD – Single Shot MultiBox Detector
SSD (Single Shot MultiBox Detector) є одноетапною архітектурою детекції
об’єктів, розробленою з метою забезпечення високої швидкості роботи при
збереженні достатньо високої точності локалізації. Подібно до YOLO, модель
SSD виконує всі операції детекції під час одного проходу нейронної мережі,
однак її ключова відмінність полягає у використанні багаторівневих карт ознак
39
та множини масштабованих областей прив’язки (default boxes, або prior boxes).
Такий підхід дозволяє SSD ефективно обробляти об’єкти різних розмірів, що є
однією з найпоширеніших проблем у задачах комп’ютерного зору.
SSD стала одним із перших методів, що поєднали одноетапну детекцію з
багаторівневою обробкою ознак, забезпечуючи високу точність на середніх та
малих об’єктах, при цьому не втрачаючи продуктивності.
Основна ідея SSD. SSD формує передбачення об’єктів одночасно на
декількох рівнях мережі, використовуючи карти ознак, що мають різний
масштаб і різну щільність інформації.
Для кожної карти ознак передбачаються:
− координати рамок обмеження;
− ступінь наявності об’єкта (objectness);
− класи об’єктів.
Такий підхід охоплює як дрібні, так і великі об’єкти:
− вищі шари → великі карти ознак → добре передають дрібні деталі →
детекція малих об’єктів;
− нижчі шари → грубі карти ознак → великі receptive fields → детекція
великих об’єктів.
Послідовність блоків зображена на рис. 2.10.
Рис. 2.10 – Метод SSD
40
Базова архітектура SSD. Оригінальна модель SSD300/SSD512
складається з трьох ключових компонентів:
1. Backbone (VGG-16 або MobileNet). Використовується глибока
нейронна мережа для витягування низькорівневих ознак. Найчастіше – VGG-16
зі спрощенням (видалено повнозв’язні шари).
2. Додаткові згорткові шари. Після backbone додаються декілька
конволюційних шарів різних розмірів, які створюють багатомасштабні карти
ознак. Наприклад: карта 38 × 38, 19 × 19, 10 × 10, 5 × 5, 3 × 3, 1 × 1.
3. Модуль передбачення (Prediction Heads). На кожну карту ознак
накладаються фільтри, які прогнозують параметри множини prior-боксів, класи
об’єктів, ступінь достовірності.
4. Prior Boxes (Default Boxes). SSD використовує множину попередньо
визначених рамок (“default boxes”) із різними: співвідношеннями сторін,
масштабами, орієнтаціями.
Ці рамки є аналогом anchor-боксів, але SSD має більш гнучкий механізм
їх підбору.
Для кожного пікселя карти ознак існує набір default boxes, і мережа
виконує:
− регресію зміщення (offsets) для корекції цих рамок;
− класифікацію їхнього вмісту.
Це дозволяє моделі охоплювати широкий спектр можливих форм
об’єктів.
5. Процес передбачення. Для кожної карти ознак SSD передбачає:
N bounding boxes, для кожної – C класів + 1 фоновий, а також 4 параметри
регресії координат. Кількість передбачених рамок може становити декілька
тисяч, що згодом обробляється NMS.
6. Функція втрат SSD. SSD використовує комбіновану функцію втрат:
1
= (
+ )
41
де L_conf – softmax або focal loss для класифікації, L_loc – Smooth L1 для
регресії рамок, N – кількість позитивних відповідностей (matched priors), α –
коефіцієнт ваги (часто 1).
SSD використовує механізм Hard Negative Mining – вибір найбільш
складних негативних прикладів у співвідношенні 3:1. Це значно підвищує
стійкість до фону.
7. Продуктивність SSD. SSD стала популярною завдяки ідеальному
балансу:
− висока швидкість. SSD300 працює із продуктивністю 46-60 FPS на
GPU та 20-30 FPS на мобільних платформах;
− висока точність. При близьких значеннях FPS точність SSD
перевищує YOLOv1 і наближається до точності двоетапних моделей;
− добра робота з малими об’єктами. Завдяки багаторівневим картам
ознак SSD здатна виявляти: людей на відстані, дрібні об’єкти в індустріальних
застосуваннях та малі транспортні засоби, тварин, знаки тощо. Це робить її
корисною для відеоспостереження.
8. Варіації та покращення SSD. На основі SSD створено багато
модифікацій:
− SSD-Lite (MobileNet + depthwise convolution) → мобільні пристрої;
− DSSD (Deconvolutional SSD) → покращена обробка ознак з
допомогою деформаційних шарів;
− FSSD → вдосконалений FPN для передачі багаторівневих ознак;
− RetinaNet (натхненна SSD) → високоточна одноетапна модель.
Переваги SSD:
− справжня робота в реальному часі;
− висока точність на багатьох датасетах;
− ефективність у роботі з малими об’єктами;
− гнучкість у виборі backbone;
− простота інтеграції.
42
Недоліки SSD:
− гірша точність у порівнянні з новими моделями (YOLOv8, DETR,
EfficientDet);
− велика кількість прогнозованих рамок → навантаження на NMS;
− недостатня якість детекції дуже малих об’єктів на великих
роздільностях.
2.3.9 EfficientDet
EfficientDet є однією з найефективніших сучасних архітектур для задач
детекції об’єктів, яка поєднує високу точність, низьке енергоспоживання та
можливість масштабування під різні обчислювальні ресурси. Модель
розроблена командою Google Brain як частина родини ефективних нейронних
мереж EfficientNet, і стала логічним розвитком ідеології оптимізації
співвідношення продуктивність/якість.
На відміну від класичних архітектур (YOLO, SSD, Faster R-CNN), які
масштабуються шляхом збільшення кількості шарів або розміру карт ознак,
EfficientDet використовує комбіновану стратегію масштабування (Compound
Scaling), що дозволяє пропорційно змінювати: глибину моделі (depth), ширину
мережі (width), роздільну здатність вхідних зображень та складність BiFPN.
Таке збалансоване масштабування забезпечує набагато кращу
ефективність у порівнянні з моделями, що збільшуються лише в одному вимірі.
Послідовність блоків зображена на рис. 2.11.
Риc. 2.11 – Метод EfficientDet
43
Основна ідея EfficientDet. EfficientDet вирішує дві ключові проблеми
сучасних обчислювальних моделей:
1. Ефективність обчислень. Модель повинна працювати на різних
пристроях – від високопродуктивних серверів до мобільних платформ.
2. Масштабованість. Архітектура має легко адаптуватися до різних
вимог – від простих задач відеоспостереження до складних систем автономного
керування.
Вирішення цих завдань досягається завдяки двом інноваціям:
− EfficientNet backbone – високоефективна мережа для витягування
ознак;
− BiFPN (Bidirectional Feature Pyramid Network) – новий механізм
багатонапрямного об’єднання ознак.
3. Архітектура EfficientDet. EfficientDet складається з трьох основних
частин:
− Backbone – EfficientNet. EfficientNet використовує Mobile Inverted
Bottleneck Convolution (MBConv), механізм squeeze-and-excitation та
комбіноване масштабування. Це дозволяє отримати кращі ознаки на всіх рівнях
глибини, менше обчислень і компактну структуру.
У версіях EfficientDet-D0…D7 використовується EfficientNet відповідного
масштабу.
− BiFPN – двонаправлена піраміда ознак. BiFPN (Bidirectional
Feature Pyramid Network) виконує злиття ознак з різних рівнів глибини.
У класичному FPN: об’єднання ознак відбувається зверху вниз з
одностороннім потоком інформації.
У PANet: потік стає двостороннім.
У BiFPN: об’єднання багаторівневих ознак оптимізоване, вводиться
механізм learnable weights, непотрібні з’єднання видаляються (pruned
connections) та використовуються легкі операції з низькою складністю.
44
Перевагами BiFPN є ефективна передача контексту між дрібними та
великими об’єктами, покращена робота з малими об’єктами та зменшення
обчислювальних витрат.
BiFPN може повторюватись декілька разів (stacked BiFPN), що визначає
масштаб моделі.
− Prediction Head. Шар передбачення складається з регресійної
голови (bbox regression head) та класифікаційної голови (classification head).
На відміну від інших архітектур, EfficientDet використовує окремі
lightweight heads для кожного рівня, shared parameters для зменшення розміру
моделі та depthwise convolutions для пришвидшення обчислень.
4. Механізм комбінованого масштабування (Compound Scaling).
EfficientDet використовує параметр φ, який визначає масштаб моделі. При
збільшенні φ модель рівномірно збільшує вхідну роздільну здатність, кількість
каналу в BiFPN (width), кількість повторень BiFPN (depth) і масштаб backbone.
Таким чином, отримано моделі:
− EfficientDet-D0 – легка модель для мобільних пристроїв;
− EfficientDet-D1–D3 – середній рівень складності;
− EfficientDet-D4–D7 – для високоточних задач і серверних GPU;
− EfficientDet-D7x – одна з найточніших детекторних моделей свого
часу.
5. Продуктивність EfficientDet. EfficientDet демонструє:
− високу точність. На COCO показники AP (average precision):
EfficientDet-D0 наздоганяє SSD та YOLOv3 при значно менших ресурсах,
EfficientDet-D7 досягає рівня моделей типу Faster R-CNN з ResNet-152;
− високу швидкість. Базові моделі працюють у режимі реального
часу: D0: 25-35 FPS на GPU, D1-D3: 15-25 FPS;
− енергоефективність. Мобільні моделі EfficientDet витрачають
до 5-10 разів менше FLOPs у порівнянні з аналогами.
45
Переваги EfficientDet:
− масштабованість під будь-який рівень ресурсів;
− використання BiFPN забезпечує кращий обмін ознаками;
− висока ефективність при малих обчисленнях;
− якісна робота з об’єктами різних розмірів;
− хороша точність навіть у легких моделях;
− відносно невеликий розмір ваг.
Недоліки EfficientDet:
− складніший процес навчання в порівнянні з YOLOv8;
− залежність від точності реалізації BiFPN;
− повільніша інференс-швидкість у старших моделях на слабких
пристроях.
2.4. Обґрунтування доцільності розробки системи для автоматизації
розпізнання об’єктів у відеопотоці
Аналіз сучасних методів виявлення та розпізнавання об’єктів у
зображеннях та відеопотоці показує, що, незважаючи на значний прогрес у
галузі комп’ютерного зору, існуючі рішення все ще мають ряд критичних
недоліків, які ускладнюють їх застосування в реальних умовах експлуатації.
Дані рейтингу моделей для детекції за роками [26] наведено на рис. 2.12.
Рис. 2.12 – Рейтинг моделей для детекції за роками по параметру box mAP
46
Більшість класичних алгоритмів демонструють обмежену адаптивність,
недостатню швидкість або низьку точність при роботі у складних сценаріях, що
стримує їх широке впровадження у промислові, безпекові та транспортні
системи.
До основних проблем, характерних для традиційних методів детекції,
відносять такі аспекти:
1. Нестабільність роботи при складних умовах відеозйомки. Класичні
підходи, побудовані на методах сегментації, попіксельного аналізу чи пошуку
за шаблонами, значною мірою залежать від зовнішніх факторів: низького рівня
освітлення, атмосферних перешкод (туман, дощ), часткового перекриття
об’єктів, високої динаміки сцени або великої кількості дрібних елементів. У
таких умовах точність та повнота детекції знижуються у декілька разів.
2. Висока ресурсоємність R-CNN-похідних алгоритмів. Двоетапні
моделі, які виконують попередню генерацію регіонів-кандидатів (Selective
Search, EdgeBoxes тощо), мають надмірні обчислювальні витрати. Це робить їх
придатними переважно для серверів та продуктивних GPU, але майже
недоступними для мобільних чи edge-пристроїв.
3. Складність оптимізації під обмежені обчислювальні ресурси. Багато
класичних моделей не мають механізмів масштабування глибини чи ширини
мережі, що унеможливлює їх адаптацію до задач з низькою доступною
потужністю або до відеопотоку високої частоти кадрів.
4. Недостатня швидкодія для аналізу відео в реальному часі. Режим
реального часу є критичним у сферах безпеки, автономного водіння,
робототехніки, моніторингу транспортних потоків та управління міською
інфраструктурою. Однак значна частина алгоритмів не здатна забезпечити
обробку відео зі швидкістю 25-60 кадрів за секунду при збереженні високої
точності.
47
5. Залежність від ручного налаштування параметрів та обмежена
універсальність моделей. Класичні методи не здатні автоматично адаптуватися
до нових типів об’єктів або до суттєво змінених умов сцени, що призводить до
необхідності переобчислення параметрів або повного переналаштування
системи.
Враховуючи зазначені проблеми, актуальним завданням є створення
системи детекції, яка поєднує:
− високу швидкість роботи;
− точність сучасних глибоких нейронних мереж;
− можливість масштабування під доступні ресурси;
− стабільність при зміні умов зйомки.
Враховуючи зростання кількості джерел відеоінформації та збільшення
вимог до точності й швидкості обробки даних, створення системи виявлення
об’єктів на основі сучасних моделей YOLO, SSD та EfficientDet є технічно
обґрунтованим і актуальним завданням. Застосування цих архітектур дозволяє
отримати високопродуктивне, гнучке та масштабоване рішення, здатне
працювати в реальних умовах та задовольняти вимоги до режиму реального
часу.
Тому розробка такої системи має безсумнівну практичну цінність та
відповідає сучасним тенденціям у галузі комп’ютерного зору, штучного
інтелекту та автоматизованої обробки відеоданих.
Необхідність використання сучасних моделей YOLO, SSD та EfficientDet.
У цьому дослідженні пропонується створення системи автоматичного
виявлення об’єктів на основі сучасних одноетапних і багаторівневих
алгоритмів: YOLO, SSD та EfficientDet, які вирішують більшість згаданих
проблем та представляють найбільш практично застосовні архітектури на
сьогодні.
48
Переваги використання цих моделей включають:
− високу точність у складних умовах, зокрема у багатолюдних сценах,
при часткових перекриттях, низькому освітленні та швидкій зміні кадрів;
− підтримку реалізації в режимі реального часу, що забезпечується
оптимізованою архітектурою одноетапної детекції;
− адаптивність і масштабованість, особливо у випадку EfficientDet, який
може бути налаштований відповідно до доступної обчислювальної потужності;
− здатність працювати на різних типах пристроїв: від серверів до
мобільних платформ та edge-комп’ютерів;
− можливість розширення кількості класів об’єктів без суттєвих змін у
структурі моделі;
− зниження ресурсоємності у порівнянні з традиційними регіонними
детекторами завдяки ефективній оптимізації архітектури.
Функціональні можливості та архітектура запропонованої системи.
Розроблювана система виконує такі функції:
− автоматичне виявлення об’єктів у зображенні або відеопотоці з
використанням однієї чи декількох моделей сучасної нейронної детекції;
− попередня обробка кадрів, включаючи нормалізацію, масштабування
та фільтрацію шумів;
− одночасне виконання класифікації та локалізації;
− застосування немаксимального придушення (NMS) та його
оптимізованих варіантів для уникнення дублюючих рамок;
− формування списку детектованих об’єктів з координатами, класами та
рівнем впевненості;
− локальне або віддалене збереження результатів, що дозволяє
інтегрувати систему у server-side аналітику;
− можливість адаптації під різні сценарії застосування.
49
Сфери застосування системи. Запропонована система може бути
використана у широкому спектрі завдань, таких як:
− системи відеоспостереження та безпеки;
− контроль транспортних потоків та розпізнавання транспортних
засобів;
− автоматизація промисловості;
− моніторинг міського середовища;
− інтелектуальні системи Smart City;
− підрахунок відвідувачів та аналітика потоків людей;
− робототехніка та автономні системи навігації.
2.5. Висновки
1. Систематизована інформація про сучасні методи детекції об’єктів у
відеопотоці, що базуються на згорткових нейронних мережах, визначено їх
переваги та недоліки. Дослідження охоплює фундаментальні основи
комп’ютерного зору, еволюцію глибинних архітектур, порівняння класичних і
сучасних методів детекції.
2. Обґрунтована доцільність розробки автоматизованої системи
розпізнавання об’єктів у відеопотоці, здатної працювати в умовах реального
часу.
50
РОЗДІЛ 3. ОСОБЛИВОСТІ АВТОМАТИЗАЦІЇ ПРОЦЕСУ
РОЗПІЗНАВАННЯ ВИЗНАЧЕНОЇ ГРУПИ ОБ’ЄКТІВ
3.1. Формальна постановка завдання розпізнавання об’єктів для
автономних транспортних систем
Формальна постановка завдання є важливим етапом розробки
автоматизованої системи розпізнавання об’єктів у відеопотоці, оскільки саме
предметна область визначає вимоги до точності, швидкодії, надійності та
адаптивності алгоритмів.
В межах даної кваліфікаційної роботи магістра обрано завдання
виявлення та класифікації об’єктів у контексті автономних та напівавтономних
транспортних систем. Такий вибір є обґрунтованим з огляду на сукупність
технічних, соціальних та економічних чинників, які наведено нижче.
1. Актуальність та швидкий розвиток автономних транспортних
систем. Індустрія автономного транспорту (Self-Driving Vehicles) демонструє
одне з найдинамічніших зростань серед технологій, що базуються на штучному
інтелекті [5, 18]. Глобальні компанії (Tesla, Waymo, NVIDIA, Mercedes,
Mobileye) інвестують значні ресурси у вдосконалення алгоритмів
комп’ютерного зору, оскільки саме здатність до надійного розпізнавання
об’єктів є ключовою умовою для безпечного руху [27].
Системи автономного водіння залежать від можливості в реальному часі
виявляти такі об’єкти:
− пішоходів;
− транспортні засоби;
− дорожні знаки;
− світлофори;
− велосипедистів;
− тварин;
− елементи дорожньої інфраструктури.
51
Висока складність та критичність задачі роблять її перспективною для
дослідження та вимагають застосування саме сучасних нейромережевих
моделей, таких як YOLO, SSD та EfficientDet.
2. Високі вимоги до швидкодії та точності – оптимальне середовище
для тестування сучасних моделей. Автономний автомобіль – це система, що
приймає рішення у реальному часі. Помилка у визначенні об’єкта може
спричинити аварійні ситуації, тому до алгоритмів детекції висуваються
надзвичайно жорсткі вимоги:
− висока швидкість (обробка 30-60+ кадрів на секунду);
− мінімальна затримка (інференс до 20-30 мс);
− висока точність локалізації навіть при часткових перекриттях чи
низькому освітленні;
− надійність при складних умовах зйомки (ніч, дощ, сніг, туман);
− стійкість до шумів та артефактів камери.
Саме тому завдання розпізнавання дорожніх об’єктів є одним із
найпоказовіших сценаріїв для дослідження можливостей сучасних детекторів,
що дозволяє оцінити роботу моделі у максимально реалістичних умовах.
3. Широка доступність навчальних датасетів. Для завдання
розпізнавання дорожніх об’єктів існує значна кількість відкритих датасетів, які
використовуються у світових дослідженнях, а саме:
− KITTI Vision Benchmark Suite;
− COCO (Common Objects in Context);
− BDD100K;
− Cityscapes;
− Waymo Open Dataset;
− nuScenes;
− ApolloScape.
Наявність великих високоякісних датасетів дозволяє:
− забезпечити коректне навчання моделі;
52
− провести об’єктивну оцінку точності;
− повторити експерименти у майбутньому;
− підвищити наукову цінність роботи.
Це робить обрану область зручною та науково обґрунтованою для
дослідження.
4. Висока наукова та інженерна практичність. Розв’язання задачі
розпізнавання об’єктів для автономних автомобілів дозволяє:
− застосувати найсучасніші методи глибинного навчання;
− протестувати модель в умовах, максимально наближених до
реальних;
− отримати результати, які можуть бути використані на практиці;
− дослідити поведінку моделі при стресових та стандартних умовах.
Більшість промислових систем автономного водіння використовують
моделі класу YOLO, SSD та EfficientDet у модифікованих варіантах. Тому
обрана тема є не лише академічно цікавою, але й практично значущою.
5. Можливість подальшої модернізації системи. Задача розпізнавання
дорожніх об’єктів відкриває можливості для розширень:
− підрахунок густини руху;
− оцінка траєкторій об’єктів (tracking);
− виявлення потенційних зіткнень;
− прогнозування поведінки пішоходів;
− адаптація до різних погодних умов;
− інтеграція з системами навігації та LIDAR.
Така масштабованість робить завдання зручним для побудови
повноцінної інтелектуальної системи.
6. Соціальна значущість та безпека. Сфера автономного транспорту
безпосередньо впливає на безпеку людей. Поліпшення алгоритмів
розпізнавання дозволяє:
− знижувати аварійність;
53
− зменшувати людський фактор;
− підвищувати ефективність дорожнього руху;
− зменшувати шкідливі викиди за рахунок оптимізації маршруту.
Це робить тему актуальною не лише технологічно, а й соціально.
3.2. Особливості процесу розпізнавання об’єктів в автономних
транспортних системах
Розпізнавання об’єктів є однією з ключових підсистем автономних
транспортних комплексів, оскільки саме точність і стабільність роботи
алгоритмів комп’ютерного зору визначають можливість безпечного
переміщення автомобіля у реальних динамічних умовах дорожнього
середовища [5, 27].
У межах роботи інтелектуальної системи транспортний засіб
зобов’язаний не лише коректно виявляти об’єкти навколо себе, а й здійснювати
їх класифікацію, аналіз поведінкових характеристик, прогнозування траєкторій
та прийняття рішень у режимі реального часу [4, 17].
Таким чином, модуль розпізнавання є базовим елементом таких функцій,
як екстрене гальмування, утримання у смузі руху, асистування у міських
умовах, уникнення зіткнень та адаптивне керування [6, 28].
Сенсорна архітектура інтелектуального транспортного засобу. Для
формування достовірної моделі навколишнього середовища автономні
автомобілі застосовують комплексну багатосенсорну платформу, що поєднує
різнорідні фізичні канали сприйняття:
1. Відеокамери. Забезпечують отримання RGB-зображень високої
роздільності, на основі яких система виконує ідентифікацію дорожніх знаків,
розмітки, світлофорів, пішоходів, велосипедистів та інших транспортних
засобів. Камери є основним джерелом семантичної інформації та забезпечують
найближче до людського сприйняття уявлення про дорожню сцену.
54
2. Лазерні далекоміри (LiDAR). Лідари формують тривимірне
представлення оточення у вигляді хмар точок, що дає змогу отримувати точні
метричні характеристики: відстані, розміри та орієнтації об’єктів. Цей сенсор є
особливо важливим для аналізу просторової структури дороги та складних
міських ландшафтів.
3. Радари (RADAR). Радіолокаційні датчики забезпечують високу
стійкість до атмосферних перешкод – туману, дощу, снігу, пилових частинок –
й дозволяють точно визначати швидкість і напрямок руху об’єктів. Їх
використовують у блоках адаптивного круїз-контролю та системах
попередження зіткнень.
4. Ультразвукові сенсори. Застосовуються для контролю оточення на
малих дистанціях. Вони ефективні при паркуванні або в умовах обмеженого
простору, де потрібна точність вимірювання декількох десятків сантиметрів.
Об’єднання сенсорних даних. Центральна задача бортової системи полягає
в об’єднанні різнорідних потоків даних з метою формування цілісного,
деталізованого та узгодженого опису дорожньої ситуації. Сучасні системи
застосовують як класичні методи фільтрації (Kalman Filter, Particle Filter), так і
нейронні моделі мультимодальної інтеграції, що дозволяє досягти високої
точності навіть при неповних або частково пошкоджених даних.
Основні вимоги до системи розпізнавання в автономних транспортних
засобах:
1. Висока точність детекції та класифікації. Алгоритми повинні
забезпечувати стабільне функціонування в умовах:
− нічного освітлення та поганої видимості;
− складних атмосферних явищ (туман, дощ, сніг);
− засвічення від фар або сонячного світла;
− часткового перекриття об’єктів;
− високої варіативності дорожніх знаків та ситуацій.
55
Статистичні дослідження свідчать, що зменшення точності навіть
на 2-3 % призводить до суттєвого підвищення ризику аварій у щільному
міському потоці.
2. Робота в режимі реального часу. Оскільки транспортний засіб
рухається з високою швидкістю, обробка відеопотоку має здійснюватися в
інтервалі 10-30 мс (0.01-0.03 секунди).
Найпоширеніші моделі:
− YOLOv8/YOLOv9 – понад 60 FPS на сучасних GPU;
− EfficientDet (D0-D1) – енергоефективні варіанти для edge-пристроїв;
− BEVFormer, DETR3D – спеціалізовані 3D-архітектури для роботи з
хмарами точок LiDAR.
Будь-які затримки можуть мати критичні наслідки, оскільки навіть 100 мс
затримки відповідають переміщенню автомобіля на декілька метрів.
3. Висока надійність та безвідмовність. Система зобов’язана
працювати:
− у циклі 24/7, за будь-яких погодних умов;
− з можливістю автоматичного перемикання на резервні контури
при поломці сенсора;
− у режимі безпечної деградації (“safe mode”) у випадку критичних
збоїв.
Такі компанії як Tesla, Waymo, Mercedes-Benz впроваджують
багаторівневі дублюючі контури (hardware redundancy), що мінімізує
ймовірність відмови.
4. Адаптивність до рідкісних (corner-case) сценаріїв. Серед найбільш
проблемних ситуацій:
− поява тварин на дорозі;
− раптова зміна траєкторії велосипедиста;
− нетипові дорожні роботи;
− часткове перекриття дороги;
56
− взаємодія з аварійними службами.
Для компенсації нестачі реальних даних використовують генеративні
моделі (GAN, Diffusion Models), що дозволяють синтезувати складні дорожні
сцени у великих масштабах.
До методів глибинного навчання для автономного транспорту належать:
1) Одноетапні детектори (Real-Time) оптимізовані для високої
швидкості обробки:
− YOLOv7–YOLOv9;
− SSD;
− EfficientDet.
2) Двоетапні детектори (High Precision) використовуються у
підсистемах, де необхідна висока точність контурів:
− Faster R-CNN;
− Mask R-CNN.
3) 3D-детектори (LiDAR-based) здатні інтегрувати 2D-зображення з
3D-хмарами точок для створення повного просторового представлення сцени:
− PointPillars;
− PointNet++;
− VoxelNet;
− BEVFusion.
5. Прогнозування траєкторій. Після детекції система має передбачити
поведінку об’єкта на горизонті 1-3 секунди. Для цього застосовуються:
− рекурентні нейронні мережі (LSTM);
− трансформерні моделі (MotionTransformer);
− графові мережі (GNN), які моделюють взаємодію між учасниками
дорожнього руху.
Цей етап особливо важливий для пішоходів, де поведінкові патерни
найбільш непередбачувані.
57
6. Роль датасетів у навчанні автономних систем. Для навчання та
тестування моделей використовуються великі спеціалізовані набори даних:
− KITTI – класичний датасет для 3D-детекції;
− Waymo Open Dataset – один із найбільших на сьогодні;
− nuScenes – багатомодальний датасет із синхронізованими
лидарами та радарами;
− Cityscapes – високоякісні міські сцени;
− ApolloScape – набори даних для азійських дорожніх умов.
Чим ширше охоплення сценаріїв, тим вищою є узагальнювальна здатність
моделі.
3.3. Вибір датасету для системи автоматизації розпізнання об’єктів у
відеопотоці
Одним із найважливіших етапів розробки системи розпізнавання об’єктів
у відеопотоці є вибір датасету, що використовується для навчання, валідації та
тестування моделей глибинного навчання.
Якість вхідних даних безпосередньо впливає на точність моделі, її
здатність до узагальнення, стійкість до змін зовнішнього середовища та
поведінку у реальних сценаріях.
Для п треб даної роботи було обрано Udacity Self-Driving Car Dataset,
який відповідає вимогам дослідження та забезпечує достатню різноманітність
дорожніх ситуацій. Обґрунтуємо вибір цього датасету.
Udacity Self-Driving Car Dataset є одним із найбільш популярних та
методологічно збалансованих наборів даних у сфері автономного водіння.
Серед причин, що обумовили його вибір, можна виділити такі:
1. Реалістичність сцен. Усі кадри отримані з камер реальних
дослідницьких автомобілів, що забезпечує відповідність даних фактичним
умовам дорожнього руху.
58
2. Велика кількість дорожніх сценаріїв. Містить як міські, так і заміські
сцени, включаючи нічні умови, повороти, перехрестя, зупинки, смуги розгону,
наявність світлофорів тощо.
3. Підтримка сучасних моделей комп’ютерного зору. Анотації
представлені у форматі bounding boxes, що дозволяє використовувати датасет
для навчання моделей YOLO, SSD, RetinaNet, Faster R-CNN тощо.
4. Оптимальна роздільність кадрів (512 × 512 px). Забезпечує баланс
між точністю зображення та обчислювальною ефективністю.
5. Відкритість ліцензії. Датасет можна застосовувати в академічних
роботах і дослідницьких проєктах без обмежень.
6. Збалансованість для завдань багатокласової детекції. Набір містить
об’єкти різних типів: транспортні засоби, пішоходи, світлофори, мотоциклісти
тощо.
Таким чином, вибір датасету є методологічно обґрунтованим для
дослідження моделей розпізнавання у реальних дорожніх умовах.
Розглянемо структуру та зміст Udacity Self-Driving Car Dataset.
Версія датасету, використана у роботі, містить 30 000 зображень,
отриманих фронтальною камерою експериментального автономного
автомобіля. Кожне зображення має фіксовану роздільну здатність
512 × 512 пікселів, що є оптимальною для більшості сучасних нейронних
мереж.
Структура датасету включає:
− оригінальні RGB-кадри;
− анотації у форматі COCO-подібних bounding boxes;
− метадані щодо класів об’єктів та координат міток;
− 1 720 неанотованих кадрів, що можуть бути використані для
тестування або як негативні приклади.
Такий набір дозволяє формувати тренувальні вибірки різної складності та
проводити порівняльні експерименти.
59
Класи та розподіл міток. Датасет містить 11 класів об’єктів, загальною
кількістю 97 942 анотації. Візуальна діаграма цих 11 класів показана на рис. 3.1.
автомобілі
пішоходи
червоні сигнали світлофора
зелені сигнали
вантажні автомобілі
корпуси світлофорів
мотоциклісти
червоні ліві сигнали
зелені ліві сигнали
Рис. 3.1 – Класи датасету та кількість прикладів
Розподіл за класами виглядає так:
− 64 399 – автомобілі;
− 10 806 – пішоходи;
− 6 870 – червоні сигнали світлофора;
− 5 465 – зелені сигнали;
− 3 623 – вантажні автомобілі;
− 2 568 – корпуси світлофорів;
− 1 864 – мотоциклісти;
− 1 751 – червоні ліві сигнали;
− 310 – зелені ліві сигнали;
− 272 – жовті сигнали;
− 14 – жовті ліві сигнали.
З наведеного видно, що клас “автомобіль” суттєво домінує над іншими,
що є типовим для дорожніх сцен та відповідає статистиці реальних умов.
Аналіз дисбалансу та його вплив. Датасет, як і більшість наборів даних з
автомобільної сфери, демонструє виражений дисбаланс класів. Зокрема, понад
65 % усіх міток – це автомобілі, рідкісні сигнали світлофорів (жовті ліві
сигнали) зустрічаються менш ніж у 0,02 % кадрів.
60
Такий дисбаланс може призвести до спотворення результатів тренування,
зниження точності прогнозів для рідкісних класів та погіршення поведінки
моделі у нестандартних сценаріях.
Для компенсації були застосовані класичні методи:
− перевагове зважування (class weights);
− збільшення кількості рідкісних прикладів (oversampling);
− аугментації з використанням нелінійних перетворень.
Порівняння з альтернативними датасетами. Під час вибору датасету
також було розглянуто інші популярні набори:
Таблиця 3.1
Порівняння з альтернативними датасетами
Датасет Переваги Недоліки
Висока якість 3D-даних, Мала кількість
КІТТІ фокус на автономну зображень, обмежений
систему керування набір класів
Багатомодельність
Високі вимоги до
niScenes (LiDAR + RADAR +
обчилювальних ресурсів
камери), точні анотації
Дуже великий обсяг (≈20
Один з найбільших у
Waymo Open Dataset ТБ), непростий у
світі
використанні
Ідеальний для Низька придатність для
Cityscapes
сегментації детекції об’єктів
У підсумку Udacity Dataset виявився найбільш збалансованим варіантом
щодо розміру, рівня анотацій, ресурсних вимог та доступності для моделей
типу YOLO.
3.4. Особливості формування навчальної вибірки
Вибір відповідного датасету є одним із ключових етапів дослідження
завдання розпізнавання об’єктів за допомогою глибинних нейронних мереж.
Коректне формування навчальної вибірки безпосередньо визначає ефективність
моделі, її здатність до узагальнення та стійкість до різних умов зйомки. У даній
61
роботі використано датасет, що відповідає основним вимогам сучасних завдань
комп’ютерного зору: репрезентативності, надійності анотацій, достатньому
обсягу даних і широкому використанню у науковій літературі. Такі
характеристики гарантують можливість об’єктивного порівняння якості
моделей та забезпечують коректність процесу навчання.
Репрезентативність датасету. Репрезентативність передбачає, що
датасет містить широкий спектр різноманітних дорожніх ситуацій, класів
об’єктів та умов зйомки. Це дає змогу моделі вивчати різні патерни поведінки
та зовнішнього вигляду об’єктів, що значно підвищує її здатність працювати у
реальних, непередбачуваних умовах. Наявність різних класів об’єктів –
транспортних засобів, пішоходів, світлофорів, дорожніх знаків – дозволяє
забезпечити комплексне навчання моделей детекції.
Якість та повнота анотацій. Не менш важливим критерієм є якість
анотацій. Точні координати об’єктів та коректне маркування класів визначають
точність навчання алгоритмів локалізації та класифікації. Неправильні або
неповні мітки можуть призвести до суттєвих похибок у фінальній моделі,
особливо якщо йдеться про дрібні або рідкісні об’єкти, які потребують
максимальної точності.
Достатній обсяг даних. Обсяг датасету також відіграє важливу роль.
Велика кількість зображень забезпечує статистичну надійність отриманих
результатів, зменшує ризик перенавчання та сприяє кращому узагальненню
моделі. Значна кількість прикладів кожного класу дозволяє моделі вивчати
широкий спектр варіацій об’єктів, їх форм, розмірів, положень і взаємодій
у сцені.
Популярність і дослідницька цінність. Використання відомого датасету,
що активно застосовується у дослідницькій спільноті, надає можливість
порівнювати результати з наявними науковими роботами. Це робить
дослідження більш інформативним й дозволяє оцінити релевантність та якість
моделей відносно загальноприйнятих стандартів.
62
Сутність завдання дослідження. Основне завдання роботи полягає у
розпізнаванні об’єктів на зображеннях за допомогою сучасних архітектур
глибинних згорткових нейронних мереж, що охоплює декілька ключових
підзавдань:
1. Класифікація об’єктів. Визначення типу об’єкта на зображенні –
наприклад, автомобіль, пішохід, вантажівка, світлофор тощо. Це завдання
дозволяє моделі розрізняти різні категорії учасників дорожнього руху.
2. Локалізація об’єктів. Встановлення положення об’єкта за допомогою
обмежувальних рамок (bounding boxes). Локалізація є критично важливою для
систем автономного водіння та інтелектуального відеоспостереження, де
важливим є не тільки факт наявності об’єкта, а й його точне місце у просторі
кадру.
3. Порівняння ефективності моделей. Серед сучасних моделей детекції
об’єктів існують різні архітектури – YOLOv5/YOLOv8, EfficientDet, Faster
R-CNN та ін. Необхідно провести їх оцінку за ключовими показниками:
− точність розпізнавання (mAP);
− швидкість обробки кадрів (FPS);
− стійкість до варіацій умов освітлення та складності сцен;
− продуктивність на обмежених обчислювальних ресурсах.
При оцінювані продуктивності різних моделей глибинного навчання та
визначення їх можливостей й обмежень у завданнях детекції об’єктів особлива
увага приділяється:
− точності – здатності моделі правильно виявляти об’єкти різних
класів;
− швидкодії – можливості працювати у режимі реального часу;
− стабільності – поведінці моделі за змінних умов зйомки;
− адаптивності – здатності коректно обробляти рідкісні або складні
випадки.
63
Ідеальним результатом дослідження є створення або вибір моделі, яка
демонструє:
− високу точність виявлення та класифікації об’єктів основних
дорожніх класів;
− мінімальні похибки локалізації, що важливо для безпечних рішень
автономного транспорту;
− високу швидкість роботи, яка дає змогу застосовувати модель у
системах реального часу – наприклад, у автономних автомобілях, робототехніці
або системах відеоспостереження;
− стійкість і адаптивність до зміни умов освітлення, шумів, руху камери
та інших факторів, характерних для реальних дорожніх сцен.
Досягнення таких характеристик сприяє підвищенню якості сучасних
систем комп’ютерного зору й створює передумови для їх успішного
застосування в автономних системах керування, інтелектуальних транспортних
рішеннях, робототехніці та інших галузях, де швидке і точне розпізнавання
об’єктів є критично важливим.
У процесі вирішення завдання розпізнавання об’єктів на зображеннях за
допомогою згорткових нейронних мереж виникають специфічні труднощі,
пов’язані як із природою самого завдання, так і з характеристиками обраного
датасету. До ключових аспектів належать обсяг та якість тренувальних даних,
різноманітність представлених об’єктів, баланс класів, а також можливість
застосування додаткових технік для підвищення точності моделі.
Однією з основних проблем може стати нестача або нерівномірність
тренувальних даних. Незбалансовані класи або невелика кількість прикладів
для окремих категорій призводять до того, що модель схильна краще
розпізнавати часті об’єкти, ігноруючи рідкісні. Така ситуація може стати
причиною перенавчання – моделі, що демонструє високу якість на
тренувальному наборі, але має низьку ефективність на нових, невідомих
зображеннях.
64
Для подолання цих обмежень застосовують кілька підходів:
1. Аугментація даних. Методи аугментації дозволяють штучно
збільшити обсяг тренувального набору за рахунок модифікацій існуючих
зображень. До таких змін належать обертання, масштабування, горизонтальні
віддзеркалення, зміна яскравості, контрасту, зсуви та інші варіації. Аугментація
покращує узагальнюючу здатність моделі та зменшує ризик перенавчання,
забезпечуючи більшу варіативність тренувальних прикладів [17].
2. Використання синтетичних даних. Синтетичні зображення, створені
засобами комп’ютерної графіки або за допомогою генеративно-змагальних
мереж (GAN), можуть слугувати корисним доповненням реального датасету.
Вони здатні моделювати складні умови освітлення, погоди або ракурси, які
недостатньо представлені у вихідному наборі. Це дає змогу суттєво розширити
різноманіття даних й підвищити стійкість моделі.
3. Використання передтренованих моделей (transfer learning).
Передтреновані архітектури, такі як ResNet, VGG або MobileNet, містять
загальні знання, отримані під час навчання на великих датасетах (наприклад,
ImageNet). Використання таких моделей як основи дозволяє скоротити час
навчання, зменшити потребу у великому обсязі тренувальних даних та
підвищити точність моделей, адаптуючи їх до конкретної задачі шляхом
тонкого донавчання (fine-tuning) на спеціалізованих даних [18].
З урахуванням зазначених нюансів обраного датасету, застосування
аугментації, синтетичних даних та методів трансферного навчання є доцільним
та ефективним підходом для підвищення точності та надійності розпізнавання
об’єктів. Використання цих методів дозволяє компенсувати недоліки датасету,
збільшити різноманіття тренувальних прикладів й покращити загальну
продуктивність моделі, навіть за умов обмежених обчислювальних або
інформаційних ресурсів.
65
3.5. Вибір моделей згоркових нейронних мереж для тестування
Для проведення експериментального дослідження було обрано три
сучасні та репрезентативні моделі для задач розпізнавання об’єктів: Faster R-
CNN, YOLOv5 та YOLOv8. Вибір саме цих архітектур зумовлений їх науковою
значущістю, широкою практичною застосовністю та можливістю порівняти
різні підходи до побудови систем детекції об’єктів.
Першою моделлю, включеною до аналізу, є Faster R-CNN. Це одна з
найвпливовіших архітектур у галузі комп’ютерного зору, яка у свій час стала
проривом у підвищенні швидкості та точності виявлення об’єктів. Її ключова
особливість – використання регіональної пропозиційної мережі (RPN), що
генерує області-кандидати значно швидше, ніж традиційні методи
регіонального пошуку. Faster R-CNN демонструє високу точність й часто
застосовується, як еталонна модель у наукових дослідженнях, тому вона слугує
чудовою базою для порівняння з більш сучасними алгоритмами.
Другою обраною моделлю стала YOLOv5, яка на сьогодні є однією з
наймасштабніше використовуваних моделей у промислових і наукових
застосуваннях. Архітектура YOLO (You Only Look Once) відома своєю високою
швидкістю інференсу та можливістю роботи в режимі реального часу, що
робить її особливо корисною у системах відеоспостереження, робототехніці та
мобільних платформах. YOLOv5 отримала широке ком’юніті-підтримання,
численні оптимізації та різні варіанти розмірів моделей, що робить її гнучким
інструментом для досліджень.
Третьою обраною моделлю є YOLOv8, найновіше покоління в сімействі
YOLO. Вона поєднує в собі низку інновацій – покращені механізми екстракції
ознак, оновлені функції втрат, оптимізовані шари та адаптивні методи
навчання. YOLOv8 забезпечує підвищену точність у виявленні дрібних
об’єктів, кращу стабільність роботи та ще вищу продуктивність при інференсі.
Завдяки актуальності та сучасним підходам у розробці ця модель дозволяє
66
оцінити, яких результатів можна досягти з використанням останніх досягнень
глибинного навчання.
Окремою перевагою всіх трьох моделей є адаптивність до обмежених
обчислювальних ресурсів. Вони підтримують зменшені варіанти архітектур та
оптимізовані режими роботи, що дозволяє запускати навчання та тестування
навіть на апаратному забезпеченні середнього рівня [13].
Такий вибір моделей дає змогу всебічно порівняти різні підходи – від
двоетапних до одноетапних детекторів – та провести узагальнений аналіз їх
ефективності в реальних прикладних задачах розпізнавання об’єктів.
3.6. Висновки
1. Виконано формальну постановкe завдання розпізнавання об’єктів для
автономних транспортних систем та обґрунтовано вибір датасету, який
використовується для навчання й порівняння моделей глибинного навчання.
Встановлено, що якість навчальної вибірки відіграє визначальну роль у
формуванні ефективних систем комп’ютерного зору, оскільки саме від
репрезентативності даних, коректності анотацій та балансу класів залежить
точність та узагальнювальна здатність моделей.
2. Обраний датасет є репрезентативним, містить значний обсяг
різноманітних дорожніх ситуацій та забезпечує достатню кількість анотованих
прикладів для кожної категорії об’єктів. Це створює надійну основу для
навчання сучасних архітектур глибинних нейронних мереж, зокрема тих, що
використовуються для завдань детекції – YOLO, SSD, Faster R-CNN та ін.
Завдяки високій якості анотацій та реалістичності зображень датасет дозволяє
моделювати умови, близькі до реальних сценаріїв автономного транспорту.
3. Визначено три ключові напрями роботи: класифікація об’єктів, їх
просторова локалізація та порівняння ефективності різних моделей детекції, що
дозволить комплексно оцінити продуктивність моделей, їх здатність працювати
в режимі реального часу та стійкість до змін умов зйомки.
67
РОЗДІЛ 4. РОЗРОБКА СИСТЕМИ ДЛЯ АВТОМАТИЗАЦІЇ
РОЗПІЗНАВАННЯ ОБ’ЄКТІВ У ВІДЕОПОТОЦІ «VIDEODETECT»
4.1. Розробка структурної моделі системи для автоматизації
розпізнавання об’єктів «VideoDetect»
Структурна модель системи (рис. 4.1) визначає її ключові підсистеми, їхні
функції та взаємозв’язки під час обробки відеопотоку. Система «VideoDetect»
побудована за модульним принципом, що дозволяє комбінувати різні моделі
детекції, оптимізувати продуктивність або масштабувати систему відповідно до
вимог користувача.
Рис. 4.1 – Структурна модель системи розпізнання об’єктів «VideoDetect»
Архітектура системи включає такі основні модулі:
1. Модуль захоплення відеопотоку. Забезпечує отримання кадрів із
локального файлу, вебкамери або IP-камери. Передає зображення у форматі,
який може бути використаний модулями нижчого рівня.
2. Модуль попередньої обробки зображення. Виконує нормалізацію,
масштабування та шумозаглушення. Мета – підготувати вхідний кадр до подачі
68
у модель детекції, забезпечивши стабільну роботу алгоритмів у змінних умовах
освітлення, руху та якості відео.
3. Модуль детекції об’єктів. Реалізує роботу вибраної моделі (Faster R-
CNN, YOLOv5 або YOLOv8). На цьому етапі система генерує початкові рамки
обмеження та значення довіри для кожного виявленого об’єкта.
4. Модуль NMS-фільтрації (Non-Maximum Suppression). Застосовується
для усунення дублюючих рамок і відбору найбільш релевантних детекцій.
Модуль отримує вихід моделі детекції та повертає оптимальний набір
виявлених об’єктів.
5. Модуль трекінгу об’єктів. Відповідає за відстеження позицій об’єктів
між кадрами. Використовує інформацію попередніх детекцій, оновлює
траєкторії та асоціює ідентифікатори об’єктів.
6. Модуль візуалізації та логування. Забезпечує графічне відображення
результатів детекції та трекінгу, збереження статистики, а також експорт
результатів у потрібному форматі.
Зображення даних між модулями передається у вигляді проміжних
структур, що забезпечує чіткий поділ відповідальностей та можливість
незалежної модифікації кожного компонента. Така архітектура дозволяє гнучко
змінювати алгоритми детекції та трекінгу, покращувати якість розпізнавання
або адаптувати систему для роботи в реальному часі.
4.2. Розробка моделі функціонування системи для автоматизації
розпізнавання об’єктів «VideoDetect»
Модель функціонування системи (рис. 4.2) описує послідовність
перетворення вхідного відеопотоку у вихідні дані про виявлені та відстежені
об’єкти. На відміну від структурної моделі, яка визначає склад та взаємодію
модулів, модель функціонування встановлює динамічну логіку обробки даних та
регламентує порядок обміну інформацією між елементами системи.
69
Рис. 4.2 – Модель функціонування системи розпізнання об’єктів «VideoDetect»
Робота системи «VideoDetect» ґрунтується на поетапному виконанні
операцій обробки зображень, детекції та трекінгу, що завершується
візуалізацією та передаванням результатів. Узагальнений алгоритм
функціонування наведено нижче:
1. Отримання вхідного відеопотоку. На першому етапі здійснюється
ініціалізація джерела даних. Система може обробляти статичні відеофайли,
потоки веб-камер або мережеві потокові джерела. Якщо вхідний потік
недоступний або завершений, функціонування системи припиняється.
2. Попередня обробка зображень. Кожен отриманий кадр проходить
первинну підготовку, що включає:
− масштабування до розміру, сумісного з моделлю детекції;
− нормалізацію інтенсивності пікселів;
70
− шумоподавлення (фільтрація високочастотних перешкод);
− перетворення кольорового простору у формат, необхідний для
обчислення ознак.
Попередня обробка забезпечує підвищення точності детекції в умовах
зміни освітлення, низької контрастності або наявності артефактів
відеокодування.
3. Детекція об’єктів у кадрі. Підготовлений кадр передається до обраної
моделі детекції (Faster R-CNN, YOLOv5 або YOLOv8). Результатом цього етапу
є формування множини гіпотез – обмежувальних рамок (bounding boxes) із
відповідними класами та значеннями достовірності (confidence score). На цьому
етапі детектор оцінює ймовірність належності локальних областей кадру до
визначених категорій об’єктів.
4. Фільтрація результатів методом NMS. Для усунення зайвих та
дубльованих детекцій застосовується алгоритм Non-Maximum
Suppression (NMS). Він відкидає рамки, що перекривають одна одну із
близькими ймовірностями, та залишає лише найбільш інформативні. Якщо
після фільтрації у кадрі не залишилося жодного об’єкта, система переходить до
обробки наступного кадру без виконання трекінгу.
5. Відстеження об’єктів у відеопотоці. На цьому етапі система
здійснює трекінг об’єктів, що залишилися після фільтрації. Алгоритм асоціює
об’єкти між поточним та попередніми кадрами, формує їх траєкторії та
підтримує стабільні ідентифікатори. Трекінг дозволяє визначати рух об’єктів,
появу нових та зникнення тих, що були раніше присутні у сцені.
6. Візуалізація та реєстрація результатів. У фінальній фазі результати
аналізу накладаються на відеокадр у вигляді:
− обмежувальних рамок;
− назв об’єктів та ймовірностей;
− унікальних ідентифікаторів треків.
71
Додатково система може здійснювати журналювання параметрів
роботи (FPS, кількість об’єктів, статистику класів) та зберігати дані у зовнішні
модулі або файли.
Функціональна модель системи «VideoDetect» визначає алгоритм
перетворення відеопотоку на структуровану інформацію про об’єкти та
дозволяє інтегрувати різні моделі детекції без зміни логіки роботи системи.
Такий підхід забезпечує масштабованість, можливість заміни або комбінування
детекторів та адаптацію системи до різних умов середовища.
Робота системи «VideoDetect» ґрунтується на поетапному виконанні
операцій обробки зображень, детекції та трекінгу, що завершується
візуалізацією та передаванням результатів.
4.3. Розробка алгоритмів попередньої обробки, детекції та трекінгу
Алгоритмічне забезпечення системи «VideoDetect» визначає порядок
програмної реалізації ключових етапів обробки відеоданих. На відміну від
моделі функціонування (див. п. 4.2), даний підрозділ описує формальні
алгоритми у вигляді процедур та умов, які виконуються програмними
модулями системи.
4.3.1 Алгоритм попередньої обробки відеокадру
Метою попередньої обробки є підвищення якості вхідного зображення та
приведення його до формату, сумісного з моделлю детекції. Зокрема, алгоритм
повинен мінімізувати вплив шумів, освітлення та відмінностей у роздільній
здатності.
Опис етапів попередньої обробки:
− масштабування до фіксованого розміру (залежно від моделі);
− перетворення у формат тензора;
− нормалізація пікселів (0…1 або стандарт ImageNet);
− опціонально – згладжування шумів (Gaussian Blur;
− зміна кольорового простору (BGR → RGB).
72
Алгоритм – Попередня обробка відеокадру:
Algorithm Preprocess(Frame F):
F ← Resize(F, TargetResolution)
F ← ConvertColor(F, RGB)
F ← Normalize(F)
if NoiseDetected(F):
F ← GaussianBlur(F)
return Tensor(F)
Умовний оператор NoiseDetected() може визначати знижену
контрастність або наявність високочастотного шуму.
4.3.2 Алгоритм детекції об’єктів
Алгоритм детекції в системі «VideoDetect» реалізований у вигляді
виклику однієї з трьох нейронних моделей: Faster R-CNN, YOLOv5 або
YOLOv8. Незалежно від вибору моделі, на виході формується множина
кандидатів із рамками, класами та ймовірнісними оцінками (табл. 4.1).
Таблиця 4.1
Структура вихідних даних
Позначення Значення
Ві Координати рамки (х, у, w, h)
Сі Клас об’єкта
Рі Достовірність (confidence)
Алгоритм – Процедура детекції об’єктів у відеокадрі:
Algorithm Detect(PreprocessedFrame T):
D ← Model(T)// Результати моделі
For each object o in D:
Extract BoundingBox Bᵢ
Extract Class Cᵢ
Extract Confidence Pᵢ
return { (Bᵢ, Cᵢ, Pᵢ) }
Модель обирається на етапі налаштування системи без зміни логіки
алгоритму, що забезпечує масштабованість та можливість заміни детектора.
73
4.3.3 Алгоритм фільтрації результатів NMS
Алгоритм Non-Maximum Suppression виконує відбір найбільш
достовірних детекцій шляхом порівняння перекриттів рамок (IoU – Intersection
over Union). Якщо дві рамки перекриваються і мають близькі оцінки,
зберігається лише найбільш інформативна.
Алгоритм NMS:
Algorithm NMS(Detections D, Threshold IoU_T):
Sort D by Confidence descending
Result ← {}
While D not empty:
o ← D[0]
Result ← Result ∪ {o}
For each x in D:
if IoU(o, x) > IoU_T:
Remove x from D
Remove o from D
return Result
У практичній реалізації IoU_T ∈ [0.3; 0.6] залежно від моделі.
4.3.4 Алгоритм трекінгу об’єктів
Трекінг виконується для збереження стабільних ID об’єктів між кадрами.
У системі використовується асоціаційний підхід: для кожного нового об’єкта
шукається найближче положення у попередньому кадрі.
Принцип роботи алгоритму трекінгу:
− зіставлення детекцій з попередніми позиціями на основі IoU;
− присвоєння ID новим об’єктам;
− видалення ID для об’єктів, які зникли з кадру.
Алгоритм – Відстеження ідентифікаторів об’єктів у відеопотоці:
Algorithm Tracking(Current D, Previous Tracks T):
For each detection d in D:
Find t in T with max IoU(d, t)
if IoU(d, t) > IoU_T:
Assign ID(d) = ID(t)
else:
Assign NewID(d)
74
Update T using new positions
return UpdatedTracks
Алгоритмічні засади системи «VideoDetect» забезпечують
формалізований та уніфікований підхід до обробки відеоданих. Використання
стандартизованих процедур попередньої обробки, детекції та трекінгу дозволяє:
− адаптувати систему до різних моделей машинного навчання;
− зменшити залежність від конкретних архітектур;
− забезпечити коректну роботу в умовах шумів та неякісних
відеопотоків;
− зберігати стабільні траєкторії руху об’єктів у реальному часі.
Таким чином, система реалізує модульний програмно-алгоритмічний
підхід, що створює передумови для подальшого удосконалення моделей
можливим у майбутньому.
4.4. Розробка та навчання моделі Faster R-CNN
У межах системи «VideoDetect» для підвищення точності детектування
було обрано модель двостадійного типу Faster R-CNN. Дана архітектура
характеризується послідовною обробкою регіонів-кандидатів (Region Proposal
Network) та подальшою класифікацією із уточненням координат
обмежувальних рамок, що забезпечує високу точність локалізації об’єктів у
складних відеосценах.
4.4.1 Обґрунтування вибору архітектури Faster R-CNN
На відміну від одностадійних детекторів типу YOLO, Faster R-CNN
послідовно виконує два етапи аналізу областей інтересу, що підвищує якість
локалізації та точність класифікації. Такий підхід особливо ефективний у
випадках:
− часткового перекриття об’єктів;
− низького контрасту сцени;
− наявності дрібних об’єктів;
75
− високого рівня шумів і артефактів.
Попри збільшену тривалість обробки кадру, архітектура Faster R-CNN є
доцільним вибором для еталонної оцінки точності систем детекції, що дозволяє
використовувати її результати як базові для подальшого порівняння.
4.4.2 Конфігурація моделі та вибір екстрактора ознак
У якості екстрактора ознак у моделі Faster R-CNN використано мережу
ResNet-18, доповнену мережевою структурою FPN (Feature Pyramid Network).
Обґрунтування вибору наведено нижче:
− ResNet-18 характеризується мінімальною кількістю параметрів серед
ResNet-моделей, що безпосередньо зменшує обчислювальну складність;
− застосування FPN забезпечує ефективне виділення об’єктів різного
масштабу та підвищує точність визначення малих об’єктів;
− використання попередньо навченої мережі на ImageNet зменшує
кількість епох навчання та запобігає перенавчанню на обмеженому датасеті.
Таким чином, комбінація ResNet-18 та FPN була обрана як оптимальний
баланс між точністю та обчислювальними витратами.
4.4.3 Підготовка та структура навчального датасету
Для навчання моделі застосовано датасет у форматі COCO, що включає
такі структурні компоненти:
− images – зображення з визначеними параметрами (ширина, висота,
унікальний ідентифікатор);
− annotations – координати обмежувальних рамок та відповідні їм класи;
− categories – перелік класів детектування;
− meta-інформація – додаткові відомості, необхідні для ідентифікації
датасету.
Дані було розділено у співвідношенні 80 % – для навчання, 20 % – для
валідації, що забезпечує репрезентативність тестування та мінімізує ризик
перенавчання моделі.
76
4.4.4 Налаштування гіперпараметрів
Навчання моделі здійснювалося із застосуванням оптимізатора
SGD (Stochastic Gradient Descent), оскільки експериментальні перевірки
показали кращу стабільність у порівнянні з Adam та RMSProp. Параметри
оптимізації наведено у табл. 4.2.
Таблиця 4.2
Налаштування параметрів навчання Faster R-CNN
Параметри Значення
Швидкість навчання (Learning rate) 0.005
Момент (Momentum) 0.9
Загасання ваг (Weight decay) 0.0005
Розмір пакета (Batch size) 2
Тип планувальника MultiStepLP
Значення batch size було обмежене наявними апаратними ресурсами та
високими вимогами моделі до відеопам’яті.
4.4.5 Алгоритм навчання моделі
Процедура навчання реалізує послідовне коригування ваг на основі
функції втрат, що складається з класифікаційної складової та регресії
обмежувальних рамок. Алгоритм наведено нижче.
Алгоритм – Навчання Faster R-CNN
Algorithm TrainFasterRCNN(Dataset Train, Dataset Val):
Initialize Model with pretrained ResNet-18 FPN
Initialize Optimizer (SGD) and Scheduler
For each epoch:
Set model to TrainMode
For each batch in Train:
Predictions ← Model(batch.images)
Loss ← ComputeLoss(Predictions,
batch.annotations)
Backpropagation(Loss)
Optimizer.step()
Scheduler.step()
Evaluate model on Val using mAP and ValidationLoss
77
Return TrainedModel
4.4.6 Результати навчання та аналіз
Графічні результати валідації наведено на рис. 4.3.
mAP per epoch
60
50
40
30
20
10
0
2 4 6 8 10
mAP per epoch
Рис. 4.3. – Оцінка точності моделі на кожній епосі
За підсумками навчання встановлено:
− показники train loss та validation loss зменшуються монотонно
протягом епох;
− відсутня суттєва різниця між train та val втратами, що свідчить про
коректний рівень узагальнення моделі;
− модель демонструє стабільне детектування малих та частково
перекритих об’єктів, що підтверджує ефективність FPN та двостадійної
архітектури.
4.5. Розробка та навчання моделі YOLOv5
У системі «VideoDetect» модель YOLOv5 розглядається як
високопродуктивне рішення для завдань розпізнавання у реальному часі.
На відміну від двостадійних детекторів, таких як Faster R-CNN,
архітектура YOLO реалізує процес визначення обмежувальних рамок та
класифікації об’єктів у межах єдиного етапу, що безпосередньо зменшує часову
78
складність інференсу. Завдяки цьому YOLOv5 є доцільним вибором для
розробки практичних систем моніторингу та аналізу потоку відеоданих.
4.5.1 Обґрунтування вибору архітектури YOLOv5
YOLOv5 належить до сімейства одностадійних детекторів, що
оптимізують процес виявлення за допомогою регресії координат та
класифікації у єдиній згортковій мережі.
Основними перевагами використання YOLOv5 є:
− висока швидкодія, що забезпечує придатність до систем
реального часу;
− автоматизовані процедури аугментації даних, які покращують
узагальнювальну здатність без явного збільшення розміру датасету;
− гнучка масштабованість, що дозволяє адаптувати модель до різних
апаратних можливостей (версії n, s, m, l, x);
− зменшені вимоги до пам’яті, у порівнянні з аналогами.
Для системи «VideoDetect» обрано модифікацію YOLOv5s, яка
забезпечує найкращий баланс між пропускною здатністю, точністю та
ресурсними вимогами.
4.5.2 Підготовка та структура навчального датасету
Для навчання YOLOv5 застосовувався датасет із розподілом на три
підмножини: train, validation та test. Структура підготовлених даних відповідала
стандарту YOLO та включала:
− зображення (JPEG/PNG);
− текстові файли анотацій у форматі: <class_id> <x_center> <y_center>
<width> <height>.
Усі координати нормалізовано відносно ширини та висоти зображення,
що дозволяє використовувати дані незалежно від роздільної здатності. Розподіл
даних здійснено у пропорції 70 % – 20 % – 10 %, що забезпечує достатність
тестування після завершення навчання.
79
4.5.3 Налаштування гіперпараметрів та аугментація
Навчання моделі виконувалося протягом десяти епох із використанням
автоматичних процедур аугментації. До переліку застосованих методів
належать:
− Mosaic Augmentation – комбінування чотирьох зображень у рамках
одного прикладу;
− Hue-Saturation-Value (HSV) Transformations – варіації колірного
спектра;
− Random Scaling і Flipping – масштабування та віддзеркалення.
Основні гіперпараметри подано в табл. 4.3.
Таблиця 4.3
Значення гіперпараметрів навчання YOLOv5s
Параметри Значення
Кількість Епох 10
Batch size 16
Image size 512
Швидкість навчання 0.01
Втрати обмежувальних рамок CloU Loss
Оптимізатор Adam
4.5.4 Алгоритм навчання YOLOv5s
Процедура навчання YOLOv5 реалізує автоматичне логування метрик,
збереження оптимальних ваг та періодичне оновлення параметрів оптимізатора.
Формалізований опис наведено нижче.
Алгоритм – Навчання моделі YOLOv5s
Algorithm TrainYOLOv5(Dataset D):
Initialize Model YOLOv5s with pretrained weights
For each epoch:
LoadBatch(D.train)
PerformAugmentation()
Predictions ← Model(BatchImages)
ComputeLoss(Predictions, GroundTruth)
80
Backpropagation()
UpdateWeights()
Evaluate(D.val) using mAP, Precision, Recall
SaveBestWeights()
Return BestTrainedModel
4.5.5 Результати навчання та аналіз
Оцінка точності моделі на кожній епосі приведені на рис. 4.4.
mAP per epoch
70
60
50
40
30
20
10
0
2 4 6 8 10
mAP per epoch
Рис. 4.4 – Оцінака точності моделі на кожній епосі
За результатами навчання встановлено:
− збіжність значень train loss та validation loss, що підтверджує
коректність гіперпараметрів;
− підвищення mAP протягом усіх епох, що свідчить про ефективність
аугментацій;
− високу продуктивність при інференсі (60-65 FPS) на пристроях із
обмеженою продуктивністю.
4.6. Розробка та навчання моделі YOLOv8
YOLOv8 є останнім поколінням алгоритмів сімейства YOLO,
оптимізованих для систем реального часу. Вона поєднує високошвидкісну
81
обробку відеопотоку та підвищену точність локалізації у порівнянні з
попередніми одностадійними детекторами.
Архітектура YOLOv8 містить низку структурних покращень, зокрема
використання блоків C2f, змінену голову детектора, оптимізовану функцію
втрат та вдосконалену процедуру формування якорів, що забезпечує
стабільнішу збіжність під час навчання.
4.6.1 Обґрунтування вибору архітектури YOLOv8
Модель YOLOv8 продовжує концепцію регресії координат bounding box
та класифікації в єдиному проході через згорткову нейронну мережу. У
порівнянні з YOLOv5, нова архітектура пропонує:
− підвищену точність завдяки C2f-блокам, що зменшують втрату
просторової інформації;
− оновлену голову детектора, яка покращує регресію координат;
− адаптивну генерацію якорів, що автоматично підлаштовується під
структуру датасету;
− оптимізовану функцію втрат, що зменшує розбіжності для дрібних
об’єктів.
Для системи «VideoDetect» використано модифікацію YOLOv8n (Nano),
яка, будучи найменшою серед доступних моделей, зберігає високий рівень
точності при мінімальному споживанні ресурсів. Це робить її особливо
ефективною під час розгортання на вбудованих або мобільних системах.
4.6.2 Структура та підготовка датасету
Модель навчалася на тому самому датасеті, що й YOLOv5, із розподілом
на train, validation та test. Анотації збережено в аналогічному форматі. Таким
чином було забезпечено:
− експериментальну порівнюваність, тобто умови навчання моделей
були однаковими;
82
− стабільність оцінки якості, оскільки метрики перевірялися на тих
самих тестових зразках.
Процедури попередньої обробки та нормалізації анотацій ідентичні
описаним у підрозділі 4.5.
4.6.3 Гіперпараметри навчання та функція втрат
Навчання YOLOv8 здійснювалося протягом десяти епох. Модель
використовує автоматизовані аугментації, а також оновлений механізм
формування якорів (anchor-free), що покращує розпізнавання малих цільових
об’єктів.
Основні гіперпараметри узагальнено в табл. 4.4.
Таблиця 4.4
Налаштування гіперпараметрів навчання YOLOv8n
Параметри Значення
Кількість Епох 10
Batch size 16
Image size 512
Швидкість навчання 0.01
Функція втрат DFL + CLoU
Оптимізатор SGD
Функція втрат DFL (Distribution Focal Loss) спрямована на підвищення
точності локалізації за рахунок розподільної оцінки координат рамки, а
CIoU Loss забезпечує коректнішу регресію в умовах перекриття та віддалених
об’єктів.
4.6.4 Алгоритм навчання YOLOv8n
Процес навчання YOLOv8 формалізується наступним чином:
Алгоритм – Навчання моделі YOLOv8n
Algorithm TrainYOLOv8(Dataset D):
Initialize YOLOv8n with pretrained weights
For each epoch:
83
Batch ← LoadBatch(D.train)
PerformAutoAugment(Batch)
Predictions ← ForwardPass(Batch)
Loss ← Compute(DFL, CIoU)
Backpropagation()
UpdateWeights()
Evaluate(D.val) via mAP, Precision, Recall
SaveBestWeights()
Return BestTrainedModel
4.6.5 Результати навчання та продуктивність YOLOv8
На рис. 4.5. показано результати в графіку розбитому на епохи.
mAP per epoch
70
60
50
40
30
20
10
0
2 4 6 8 10
mAP per epoch
Рис. 4.5 – Оцінка точності моделі на кожній епосі
За результатами навчання встановлено:
− показник mAP перевищив результати YOLOv5, що підтверджує
ефективність оновленої архітектури;
− значення train loss та val loss збігалися протягом навчання, що
засвідчує правильний підбір гіперпараметрів;
− частота обробки відеопотоку становила 65-70 FPS на пристрої з
обмеженою GPGPU-продуктивністю, що на 10-15 % перевищує показники
YOLOv5s;
84
− попри покращену архітектуру, YOLOv8 демонструє втрату точності
на дрібних або перекритих цілях, що є типовим недоліком одностадійних
детекторів.
Таким чином, YOLOv8 може бути рекомендованою для застосування у
високошвидкісних системах моніторингу та автономних інтелектуальних
системах, однак у завданнях із критичною потребою в точній локалізації
доцільно розглядати двостадійні моделі, зокрема Faster R-CNN.
4.7. Порівняльний аналіз моделей Faster R-CNN, YOLOv5 та
YOLOv8
Виконаємо порівняння трьох сучасних архітектур детекції об’єктів –
Faster R-CNN, YOLOv5 та YOLOv8 – на основі їх точності (mAP), швидкості
роботи (FPS) та часу навчання.
Метою аналізу є визначення оптимального підходу для впровадження в
систему автоматичного розпізнавання об’єктів у відеопотоці «VideoDetect».
4.7.1 Порівняння показників точності (mAP)
Вимірювання середньої точності здійснювалося на тестовому наборі
даних після завершення навчання кожної з моделей. Графічні результати
наведено на рис. 4.6.
Аналіз показників точності показав:
− YOLOv8 продемонструвала найвищий mAP (≈65 %), що свідчить про
її вдосконалену архітектуру та стабільну збіжність протягом короткого циклу
навчання;
− Faster R-CNN посіла друге місце (≈60 %), демонструючи більш точну
локалізацію об’єктів у складних сценах, попри повільну збіжність;
− YOLOv5 показала найнижчий результат (≈53 %), однак зберігла
стабільний розвиток метрики протягом усіх епох.
85
70
60
50
40 Faster R-CNN
30 YOLOv5
20 YOLOv8
10
0
2 4 6 8 10
Рис. 4.6 – Порівняння динаміки зміни середньої точності
протягом десяти епох навчання трьох моделей
Таким чином, за точністю детекції YOLOv8 є найефективнішою, проте
Faster R-CNN забезпечує кращу локалізацію, особливо для дрібних і частково
перекритих цілей.
4.7.2 Порівняння швидкості обробки відеопотоку (FPS)
Швидкість моделей вимірювалася в умовах реального часу на одній
апаратній конфігурації. Результати порівняння швидкості обробки відеопотоку
наведено на рис. 4.7:
− Faster R-CNN – 6-8 FPS, що є недостатнім для систем оперативного
реагування;
− YOLOv5 – 60-65 FPS, чого достатньо для більшості систем
відеоспостереження і мобільних застосунків;
− YOLOv8 – 65-70 FPS, що робить її найшвидшою архітектурою серед
протестованих і оптимальною для високочастотних потоків даних.
86
80
70
60
50 Faster R-CNN
40 YUOLOv5
30 YOLOv8
20
10
0
FPS
Рис. 4.7. – Порівняння обробки кадрів трьох моделей
Отже, за швидкістю інференсу лідером є YOLOv8, тоді як Faster R-CNN
доцільно використовувати лише у тих випадках, де критично важлива точність і
локалізація, а не швидкодія.
4.7.3 Порівняння часу навчання
Час навчання однієї епохи наведено на рис. 4.8.
1200
1000
800
Faster R-CNN
600
YOLOv5
YOLOv8
400
200
0
Training time per Epoch (seconds)
Рис. 4.8 – Порівняння часу навчання за одну епоху
для трьох різних моделей.
87
За результатами порівняння часу навчання:
− Faster R-CNN потребує близько 960 секунд, що обумовлено
двостадійною архітектурою;
− YOLOv5 – 115 секунд, що робить її найбільш зручною для
експериментальних та практичних систем з регулярним донавчанням;
− YOLOv8 – 119 секунд, демонструє результат, близький до YOLOv5,
але із покращеними метриками якості.
Таким чином, час навчання моделей YOLO узгоджується з їхньою
архітектурною ефективністю й не створює значних обчислювальних витрат для
системи «VideoDetect».
4.7.4 Порівняння моделей розпізнавання об’єктів
Результати порівняння розпізнавання об’єктів різними моделями
наведено в табл. 4.5.
Таблиця 4.5
Порівняння моделей розпізнавання об’єктів
Середня Час
FPS Характерні
Модель точність навчання
(інференс) особливості
(mAP) сек/епоху
Висока точність
Faster R- локалізації,
~60 % 6-8 960
CNN найгірша
швидкість
Висока
продуктивність,
стабільність, але
YOLOv5s ~53 % 60–65 115
проблеми з
дрібними
об’єктами
Найкращий баланс
швидкість/точність,
YOLOv8n ~65 % 65–70 119
покращена
архітектура
88
На основі проведеного дослідження встановлено:
− найточнішу детекцію забезпечує YOLOv8, однак вона поступається
Faster R-CNN у частині локалізації складних дрібних об’єктів;
− найвищу швидкодію демонструє YOLOv8, що робить її найкращим
варіантом для потокових систем реального часу;
− Faster R-CNN доцільно застосовувати для завдань підвищеної
точності, зокрема у медичних дослідженнях, аерофотозніманні, відеоаналітиці
із високими вимогами до якості локалізації;
− YOLOv5 є компромісним рішенням, що забезпечує прийнятну
точність й високу швидкість при мінімальних обчислювальних витратах;
− оптимальна модель для системи «VideoDetect» – YOLOv8, оскільки
вона поєднує точність, швидкодію та можливість розгортання на апаратних
засобах із низькою продуктивністю.
Таким чином, результати підтверджують, що вибір архітектури детекції
повинен ґрунтуватися на балансі між швидкістю обробки, точністю локалізації
та ресурсними можливостями конкретної цільової системи.
4.8. Висновки
1. Розроблено структурну модель автоматизованої системи
розпізнавання об’єктів у відеопотоці «VideoDetect».
2. Розроблено модель функціонування системи розпізнавання під час
аналізу відеокадру, починаючи від захоплення даних до видачі результатів
детекції та трекінгу.
3. Розроблено алгоритми попередньої обробки, детекції та відстеження
об’єктів, що включають фільтрацію шумів, нормалізацію, застосування
моделей згорткових нейронних мереж Faster R-CNN, YOLOv5 та YOLOv8, а
також механізм відстеження за допомогою показника IoU.
4. Проведено порівняння моделей згорткових нейронних мереж Faster R-
CNN, YOLOv5 та YOLOv8 в контексті роботи з відеопотоком, встановлено
89
взаємозв’язки між архітектурою зазначених моделей та їх здатністю до
генералізації, особливо в умовах шуму, низької якості відео, швидкого руху та
змін освітлення;
5. Сформовано рекомендації щодо адаптації моделей згорткових
нейронних мереж YOLO та Faster R-CNN при обмежених обчислювальних
ресурсах для застосувань, де критичними є швидкість та стійкість, у режимі
реального часу.
90
ВИСНОВКИ
В кваліфікаційній роботі магістра вирішена науково-технічна задача
підвищення ефективності систем глибинного навчання для автоматизації
розпізнавання об’єктів у відеопотоці за рахунок проведення системного аналізу
сучасних методів детекції об’єктів у відеопотоці, що базуються на згорткових
нейронних мережах, визначення їх переваг та недоліків, розробки структурної
моделі автоматизованої системи розпізнавання об’єктів у відеопотоці
«VideoDetect», розробки моделі функціонування системи розпізнавання під час
аналізу відеокадру, починаючи від захоплення даних до видачі результатів
детекції та трекінгу, розробки алгоритмів попередньої обробки, детекції та
відстеження об’єктів, що включають фільтрацію шумів, нормалізацію,
застосування моделей згорткових нейронних мереж Faster R-CNN, YOLOv5 та
YOLOv8, а також механізм відстеження за допомогою показника IoU, що
дозволить здійснювати моніторинг та аналіз поведінки об’єктів у відеопотоці в
реальному масштабі часу.
У результаті виконання досліджень отримано наступні наукові і
практичні результати:
− систематизована інформація про сучасні методи детекції об’єктів у
відеопотоці, що базуються на згорткових нейронних мережах, визначено їх
переваги та недоліки;
− розроблено структурну модель автоматизованої системи
розпізнавання об’єктів у відеопотоці «VideoDetect»;
− розроблено модель функціонування системи розпізнавання під час
аналізу відеокадру, починаючи від захоплення даних до видачі результатів
детекції та трекінгу;
− розроблено алгоритми попередньої обробки, детекції та відстеження
об’єктів, що включають фільтрацію шумів, нормалізацію, застосування
моделей згорткових нейронних мереж Faster R-CNN, YOLOv5 та YOLOv8, а
також механізм відстеження за допомогою показника IoU;
91
− проведено порівняння моделей згорткових нейронних мереж
Faster R-CNN, YOLOv5 та YOLOv8 в контексті роботи з відеопотоком,
встановлено взаємозв’язки між архітектурою зазначених моделей та їх
здатністю до генералізації, особливо в умовах шуму, низької якості відео,
швидкого руху та змін освітлення;
− сформовано рекомендації щодо адаптації моделей згорткових
нейронних мереж YOLO та Faster R-CNN при обмежених обчислювальних
ресурсах для застосувань, де критичними є швидкість та стійкість, у режимі
реального часу.
Запропонована автоматизована система розпізнавання об’єктів у
відеопотоці «VideoDetect» забезпечує оперативну і точну детекцію об’єктів у
відеопотоці, що дозволяє підвищити точність та стабільність систем
відеоспостереження при відстеженні об’єктів на потокових лініях у задачах
промислової автоматизації.
92
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Szeliski R. Computer Vision: Algorithms and Applications. – Springer,
2022.
2. Gonzalez R., Woods R. Digital Image Processing. – Pearson, 2018.
3. Girshick R. Fast R-CNN // Proceedings of ICCV. – 2015.
4. Ren S., He K., Girshick R., Sun J. Faster R-CNN: Towards Real-Time
Object Detection with Region Proposal Networks // IEEE TPAMI. – 2017.
5. Geiger A., Lenz P., Urtasun R. Vision meets Robotics: The KITTI Dataset
// IJRR. – 2013.
6. Redmon J., Divvala S., Girshick R., FarhadiA. You Only Look Once:
Unified, Real-Time Object Detection // CVPR. – 2016.
7. Bochkovskiy A., Wang C.-Y., Liao H.-Y. M. YOLOv4: Optimal Speed and
Accuracy of Object Detection – arXiv:2004.10934, 2020.
8. Lin T.-Y., Maire M., Belongie S. et al. Microsoft COCO: Common Objects
in Context // ECCV. – 2014.
9. Tan M., Le Q. EfficientNet: Rethinking Model Scaling for Convolutional
Neural Networks // ICML. – 2019.
10. Dosovitskiy A. et al. An Image is Worth 16 x 16 Words: Transformers for
Image Recognition at Scale // ICLR. – 2021.
11. Montgomery M. K., Bhowmik A. Computer Vision: Object Detection in
Adversarial Vision. CRC Press, 2024.
12. Munir M. Accelerators for Convolutional Neural Networks. Wiley, 2023.
13. Razavi-Far R. et al. Generative Adversarial Learning: Architectures and
Applications. Springer, 2022. doi: 10.1007/978-3-030-91390-8
14. Ren S., He K., Girshick R., Sun J. Faster R-CNN: Towards Real-Time
Object Detection with Region Proposal Networks. IEEE Transactions on Pattern
Analysis and Machine Intelligence, 2017. doi: 10.1109/TPAMI.2016.2577031
93
15. Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun. Faster R-CNN:
Towards Real-Time Object Detection with Region Proposal Networks.
arXiv:1506.01497, 2016.
16. Tan M., Pang R., Le Q. V. EfficientDet: Scalable and Efficient Object
Detection. Proceedings of the IEEE/CVF Conference on Computer Vision and
Pattern Recognition (CVPR), 2020. doi: 10.1109/CVPR42600.2020.01079
17. Terven J., Córdova-Esparza D.-M., Romero-González J.-A. A
Comprehensive Review of YOLO Architectures in Computer Vision: From YOLOv1
to YOLOv8 and YOLO-NAS. Machine Learning and Knowledge Extraction, 2023.
Vol. 5 (4), pp. 1680–1716. doi: 10.3390/make5040083
18. Udacity Self-Driving Car Dataset. Roboflow. URL:
https://public.roboflow.com/object-detection/self-driving-car
19. Wei Liu, Anguelov D., Erhan D., Szegedy C., Reed S., Fu C.-Y., Berg A.
C. SSD: Single Shot MultiBox Detector. European Conference on Computer Vision.
Springer, 2016.
20. Weidman S. Deep Learning from Scratch: Building with Python from First
Principles. O’Reilly Media, 2019. 250 p.
21. Строкін Д. А., Уткіна Т. Ю. Дослідження систем глибинного навчання
для автоматизації розпізнавання об’єктів у відеопотоці [Електронний ресурс]
/ [упоряд. : Єгорова О. В., Захарова О. В., Тичков В. В. та ін.]. Студентська
науково-практична конференція ЧДТУ : зб. тез доповідей,
22–24 квітня 2025 р. М-во освіти і науки України, Черкас. держ. технол. ун-т.
Черкаси : ЧДТУ, 2025. С. 31–32.
22. Lin T.-Y. et al. Microsoft COCO: Common Objects in Context. ECCV
2014. doi: 10.1007/978-3-319-10602-1_48
23. Paszke A. et al. PyTorch: An Imperative Style, High-Performance Deep
Learning Library. NeurIPS, 2019.
24. Ultralytics YOLOv5 Documentation. URL: https://docs.ultralytics.com
94
25. Ultralytics YOLOv8 Documentation. URL:
https://docs.ultralytics.com/models/yolov8
26. Object detection methods performance on COCO test-dev dataset from
2015 to 2023. URL: https://www.researchgate.net/figure/Object-detection-methods-
performance-on-COCO-test-dev-dataset-from-2015-to-2023_fig4_377367955
27. Zhang Z., Zhang T., Sun J. Deep Learning for Object Detection: A
Comprehensive Review. IEEE Transactions on Neural Networks and Learning
Systems, 2021. doi: 10.1109/TNNLS.2021.3054913
28. Huang J., Rathod V., Sun C. et al. Speed/Accuracy Trade-Offs for Modern
Convolutional Object Detectors. Proceedings of the IEEE Conference on Computer
Vision and Pattern Recognition (CVPR), 2017. doi: 10.1109/CVPR.2017.351
29. Dollar P., Tu Z., Perona P., Belongie S. Integral Channel Features. British
Machine Vision Conference (BMVC), 2009.
30. Long J., Shelhamer E., Darrell T. Fully Convolutional Networks for
Semantic Segmentation. CVPR, 2015. doi: 10.1109/CVPR.2015.7298965
31. Goodfellow I., Bengio Y., Courville A. Deep Learning. – MIT Press, 2016.
95
ДОДАТКИ
Додаток А.
Лістинг програми навчання моделі Faster R-CNN
ПРОГРАМА НАВЧАННЯ МОДЕЛІ FASTER R-CNN
Текст програми
UA.ЧДТУ.25068-01 12 01-1
Листів 11
Розробник:
студент II курсу
групи МАКІТ-2409 Денис СТРОКІН
2025
UA.ЧДТУ.25068-01 12 01-1
#Навчання Faster R-CNN (PyTorch)
#Файл: train_faster_rcnn.py
#Призначення: підготовка, навчання та валідація моделі Faster R-
CNN з ResNet-50-FPN backbone
#Примітки: оптимізовано під Windows + GTX 1650.
import os
import argparse
import time
import datetime
import json
from pathlib import Path
from collections import defaultdict
import numpy as np
import pandas as pd
from tqdm import tqdm
import torch
from torch.utils.data import Dataset, DataLoader
import torchvision
from torchvision import transforms
from torchvision.models.detection import fasterrcnn_resnet50_fpn
from torchvision.ops import boxes as box_ops
# pycocotools для COCO-eval
from pycocotools.coco import COCO
from pycocotools.cocoeval import COCOeval
import cv2
# --------------------Конфігурація за замовчуванням -----------
DEFAULT_DEVICE = 'cuda' if torch.cuda.is_available() else 'cpu'
PRINT_FREQ = 50
# -------------------------------------------------------------
# -------------------Dataset: COCO-подібний PyTorch Dataset ---
class CocoLikeDataset(Dataset):
"""
Простий Dataset для COCO-подібного JSON (згенерованого
Додатком А).
Повертає зображення (PIL/np) та таргет у форматі, який очікує
torchvision Faster R-CNN:
target = {
'boxes': Tensor[N,4] (x1,y1,x2,y2),
'labels': Tensor[N],
'image_id': Tensor[1],
'area': Tensor[N],
'iscrowd': Tensor[N]
}
2
UA.ЧДТУ.25068-01 12 01-1
"""
def __init__(self, images_root, coco_json, transforms=None):
self.images_root = Path(images_root)
self.coco = COCO(str(coco_json))
self.img_ids = list(self.coco.imgs.keys())
self.transforms = transforms
def __len__(self):
return len(self.img_ids)
def __getitem__(self, idx):
img_id = self.img_ids[idx]
img_info = self.coco.loadImgs(img_id)[0]
img_path = self.images_root / img_info['file_name']
# Завантажуємо зображення (BGR -> RGB)
img = cv2.imread(str(img_path))
if img is None:
raise FileNotFoundError(f"Не вдалося прочитати
зображення: {img_path}")
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
h, w = img.shape[:2]
ann_ids = self.coco.getAnnIds(imgIds=img_id)
anns = self.coco.loadAnns(ann_ids)
boxes = []
labels = []
areas = []
iscrowd = []
for ann in anns:
# bbox у COCO: [x,y,w,h]
x, y, bw, bh = ann['bbox']
x1 = x
y1 = y
x2 = x + bw
y2 = y + bh
# Кліп у межі
x1 = max(0, x1)
y1 = max(0, y1)
x2 = min(w, x2)
y2 = min(h, y2)
if x2 <= x1 or y2 <= y1:
continue # некоректна анотація
boxes.append([x1, y1, x2, y2])
labels.append(ann['category_id']) # COCO ids мають
починатись з 1
areas.append(ann.get('area', (x2 - x1) * (y2 - y1)))
iscrowd.append(ann.get('iscrowd', 0))
3
UA.ЧДТУ.25068-01 12 01-1
boxes = torch.as_tensor(boxes, dtype=torch.float32)
labels = torch.as_tensor(labels, dtype=torch.int64)
areas = torch.as_tensor(areas, dtype=torch.float32)
iscrowd = torch.as_tensor(iscrowd, dtype=torch.int64)
target = {}
target["boxes"] = boxes
target["labels"] = labels
target["image_id"] = torch.tensor([img_id])
target["area"] = areas
target["iscrowd"] = iscrowd
# Опціональні трансформації – тут можна додати
Albumentations, але для FRCNN бажано
# зберігати формат float32 у масштабі [0,1] та розміри як
float
if self.transforms:
# Albumentations очікує uint8 з BGR або RGB, повертає
також bboxes у форматі pascal_voc
augmented = self.transforms(image=img,
bboxes=boxes.tolist(), category_ids=labels.tolist())
img = augmented['image']
new_bboxes = augmented['bboxes']
if len(new_bboxes) > 0:
boxes = torch.as_tensor(new_bboxes,
dtype=torch.float32)
target["boxes"] = boxes
target["labels"] =
torch.as_tensor(augmented['category_ids'], dtype=torch.int64)
else:
# якщо аугментація видалила bbox (дуже рідко) –
залишаємо оригінал
pass
# Перетворення у тензор (C,H,W), float
img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
img = img.astype(np.float32) / 255.0
img = torch.from_numpy(img).permute(2, 0, 1).contiguous()
return img, target
# Функція коллатора для DataLoader (більшість детекторів
потребують list батчу)
def collate_fn(batch):
return tuple(zip(*batch))
# --------------------Модель: Faster R-CNN + ResNet-50-FPN -------
def get_model(num_classes, pretrained_backbone=True):
"""
Створює Faster R-CNN з ResNet-50-FPN backbone.
4
UA.ЧДТУ.25068-01 12 01-1
num_classes: кількість класів включно з фон (COCO-style ->
фон=0)
Примітка: torchvision fasterrcnn_resnet50_fpn за замовчуванням
має pretrained=True (на COCO)
"""
# Викликаємо модель з torchvision
model = fasterrcnn_resnet50_fpn(pretrained=False,
pretrained_backbone=pretrained_backbone)
in_features =
model.roi_heads.box_predictor.cls_score.in_features
# Замінюємо head для потрібної кількості класів
model.roi_heads.box_predictor =
torchvision.models.detection.faster_rcnn.FastRCNNPredictor(in_feat
ures, num_classes)
return model
# ------------------Розбиття даних (train/val) за COCO----------
def split_coco_dataset(coco_json_path: Path, val_fraction=0.2,
out_dir: Path = None, seed=42):
"""
Розділяє COCO JSON на train/val за image_id.
Повертає шляхи до нових JSON файлів: train_json, val_json
Якщо out_dir задано – зберігає файли туди.
"""
coco = COCO(str(coco_json_path))
img_ids = coco.getImgIds()
np.random.seed(seed)
np.random.shuffle(img_ids)
n = len(img_ids)
n_val = int(n * val_fraction)
val_ids = set(img_ids[:n_val])
train_ids = set(img_ids[n_val:])
def filter_json(img_ids_set):
images = [coco.imgs[i] for i in img_ids_set]
ann_ids = coco.getAnnIds(imgIds=list(img_ids_set))
annotations = [coco.anns[a] for a in ann_ids]
categories = list(coco.cats.values())
out = {
"info": coco.dataset.get("info", {}),
"licenses": coco.dataset.get("licenses", []),
"images": images,
"annotations": annotations,
"categories": categories
}
return out
train_json = filter_json(train_ids)
val_json = filter_json(val_ids)
5
UA.ЧДТУ.25068-01 12 01-1
if out_dir:
ensure_dir(out_dir)
train_path = out_dir / "train_annotations.json"
val_path = out_dir / "val_annotations.json"
with open(train_path, 'w', encoding='utf-8') as f:
json.dump(train_json, f, ensure_ascii=False, indent=2)
with open(val_path, 'w', encoding='utf-8') as f:
json.dump(val_json, f, ensure_ascii=False, indent=2)
return train_path, val_path
else:
return train_json, val_json
def ensure_dir(p: Path):
p.mkdir(parents=True, exist_ok=True)
# ------------------Тренування однієї епохи---------------------
def train_one_epoch(model, optimizer, data_loader, device, epoch,
print_freq=PRINT_FREQ):
model.train()
running_loss = 0.0
it = 0
start = time.time()
for images, targets in data_loader:
images = list(img.to(device) for img in images)
targets = [{k: v.to(device) for k, v in t.items()} for t
in targets]
loss_dict = model(images, targets)
losses = sum(loss for loss in loss_dict.values())
optimizer.zero_grad()
losses.backward()
optimizer.step()
running_loss += losses.item()
it += 1
if it % print_freq == 0:
avg = running_loss / it
elapsed = time.time() - start
print(f"[Epoch {epoch}] Iter {it} AvgLoss: {avg:.4f}
Elapsed: {str(datetime.timedelta(seconds=int(elapsed)))}")
avg_loss = running_loss / max(1, it)
return avg_loss
# ---------------------Оцінка (COCO-eval)-----------------------
def evaluate_coco(model, data_loader, device, coco_gt):
"""
Проганяє модель по data_loader, збирає предикти, формує COCO-
format результат та виконує COCOeval.
6
UA.ЧДТУ.25068-01 12 01-1
Повертає словник з основними метриками ([email protected]:0.95, [email protected],
...).
"""
model.eval()
results = []
img_ids = []
with torch.no_grad():
for images, targets in tqdm(data_loader,
desc="Evaluation"):
images = list(img.to(device) for img in images)
outputs = model(images)
# outputs – список словників з keys: boxes, labels,
scores
for out, t in zip(outputs, targets):
image_id = int(t['image_id'].item())
img_ids.append(image_id)
boxes = out['boxes'].cpu().numpy()
scores = out['scores'].cpu().numpy()
labels = out['labels'].cpu().numpy()
for box, score, label in zip(boxes, scores,
labels):
x1, y1, x2, y2 = box
w = x2 - x1
h = y2 - y1
# COCO expects category_id to match ground-
truth ids
results.append({
"image_id": image_id,
"category_id": int(label),
"bbox": [float(x1), float(y1), float(w),
float(h)],
"score": float(score)
})
if len(results) == 0:
print("[WARN] Немає передбачень від моделі для COCOeval.")
return {"mAP": 0.0}
# Зберігаємо результати в тимчасовий json
res_file = "tmp_results.json"
with open(res_file, 'w', encoding='utf-8') as f:
json.dump(results, f, ensure_ascii=False, indent=2)
coco_dt = coco_gt.loadRes(res_file)
coco_eval = COCOeval(coco_gt, coco_dt, iouType='bbox')
coco_eval.evaluate()
coco_eval.accumulate()
coco_eval.summarize()
# Основні метрики доступні у stats
stats = coco_eval.stats
metrics = {
7
UA.ЧДТУ.25068-01 12 01-1
"mAP_0_5_0_95": float(stats[0]),
"mAP_0_5": float(stats[1]),
"mAP_0_75": float(stats[2]),
"AR_1": float(stats[6]),
"AR_10": float(stats[7]),
"AR_100": float(stats[8])
}
# Видаляємо тимчасовий файл
os.remove(res_file)
return metrics
# -------------------Основний тренувальний цикл---------------
def run_training(args):
device = torch.device(args.device if torch.cuda.is_available()
else "cpu")
print(f"[INFO] Використовується пристрій: {device}")
out_dir = Path(args.out_dir)
ensure_dir(out_dir)
# Розбиття COCO на train/val (якщо ще не розбито)
coco_json_path = Path(args.coco_json)
if args.split_train_val:
print("[INFO] Розбиття COCO JSON на train/val...")
train_json, val_json = split_coco_dataset(coco_json_path,
val_fraction=args.val_fraction, out_dir=out_dir, seed=args.seed)
train_ann = train_json
val_ann = val_json
train_json_path = out_dir / "train_annotations.json"
val_json_path = out_dir / "val_annotations.json"
else:
# Очікуємо, що користувач вказав окремі файли
# Якщо зазначено директрію з 'train_annotations.json' і
'val_annotations.json' – використовуєм
if args.train_json and args.val_json:
train_json_path = Path(args.train_json)
val_json_path = Path(args.val_json)
else:
# Для простоти – беремо один COCO JSON і
використовуємо весь як train, а валідацію робимо через параметр
val_fraction
train_json_path, val_json_path =
split_coco_dataset(coco_json_path, val_fraction=args.val_fraction,
out_dir=out_dir, seed=args.seed)
# Ініціалізація COCO ground truth для валідації
coco_gt = COCO(str(val_json_path))
# Dataset та DataLoader
8
UA.ЧДТУ.25068-01 12 01-1
# Трансформації – мінімальні; аугментації можна застосувати у
Dataset, але тут залишаємо базові
train_dataset = CocoLikeDataset(args.images_dir,
train_json_path, transforms=None)
val_dataset = CocoLikeDataset(args.images_dir, val_json_path,
transforms=None)
train_loader = DataLoader(train_dataset,
batch_size=args.batch_size, shuffle=True,
num_workers=args.num_workers, collate_fn=collate_fn)
val_loader = DataLoader(val_dataset, batch_size=1,
shuffle=False, num_workers=args.num_workers,
collate_fn=collate_fn)
# Кількість класів – беремо з COCO categories
cats = coco_gt.loadCats(coco_gt.getCatIds())
# Передбачається, що category ids у JSON починаються з 1 і є
неперервними
max_cat_id = max([c['id'] for c in cats])
num_classes = max_cat_id + 1 # + фон (якщо фон = 0)
print(f"[INFO] Кількість класів (включно з фоном):
{num_classes}")
# Ініціалізуємо модель
model = get_model(num_classes=num_classes,
pretrained_backbone=True)
model.to(device)
# Оптимізатор (AdamW рекомендований для швидкої збіжності) та
Scheduler
optimizer = torch.optim.AdamW(filter(lambda p:
p.requires_grad, model.parameters()), lr=args.lr,
weight_decay=args.weight_decay)
scheduler = torch.optim.lr_scheduler.StepLR(optimizer,
step_size=args.lr_step, gamma=args.lr_gamma)
best_map = 0.0
history = []
for epoch in range(1, args.epochs + 1):
t0 = time.time()
train_loss = train_one_epoch(model, optimizer,
train_loader, device, epoch, print_freq=PRINT_FREQ)
scheduler.step()
elapsed = time.time() - t0
# Валідація на COCO
metrics = evaluate_coco(model, val_loader, device,
coco_gt)
current_map = metrics.get("mAP_0_5_0_95", 0.0)
9
UA.ЧДТУ.25068-01 12 01-1
is_best = current_map > best_map
if is_best:
best_map = current_map
# зберігаємо найкращу модель
torch.save(model.state_dict(), str(out_dir /
"best_model.pth"))
# зберігаємо чекпоінт кожної епохи
ckpt = {
"epoch": epoch,
"model_state_dict": model.state_dict(),
"optimizer_state_dict": optimizer.state_dict(),
"scheduler_state_dict": scheduler.state_dict(),
"train_loss": train_loss,
"metrics": metrics
}
torch.save(ckpt, str(out_dir /
f"checkpoint_epoch_{epoch}.pth"))
# Логування
row = {
"epoch": epoch,
"train_loss": train_loss,
"mAP_0_5_0_95": metrics.get("mAP_0_5_0_95"),
"mAP_0_5": metrics.get("mAP_0_5"),
"time_sec": elapsed
}
history.append(row)
df_hist = pd.DataFrame(history)
df_hist.to_csv(out_dir / "training_log.csv", index=False)
print(f"[Epoch {epoch}] TrainLoss: {train_loss:.4f} mAP:
{current_map:.4f} Time: {elapsed:.1f}s")
print("[INFO] Навчання завершено. Найкращий mAP:
{:.4f}".format(best_map))
# ----------------------Парсер аргументів----------------------
def parse_args():
parser = argparse.ArgumentParser(description="Тренування
Faster R-CNN (ResNet50-FPN) на COCO dataset")
parser.add_argument('--coco_json', type=str, required=True,
help='Шлях до COCO JSON (annotations_coco.json)')
parser.add_argument('--images_dir', type=str, required=True,
help='Папка з зображеннями (повні імена як у COCO JSON)')
parser.add_argument('--out_dir', type=str,
default='faster_rcnn_experiment', help='Директорія для збереження
ваг/логів')
parser.add_argument('--epochs', type=int, default=12,
help='Кількість епох')
10
UA.ЧДТУ.25068-01 12 01-1
parser.add_argument('--batch_size', type=int, default=4,
help='Batch size для тренування (залежить від VRAM)')
parser.add_argument('--num_workers', type=int, default=2,
help='Кількість робочих процесів для DataLoader')
parser.add_argument('--lr', type=float, default=1e-4,
help='Learning rate для AdamW')
parser.add_argument('--weight_decay', type=float, default=1e-
4, help='Weight decay')
parser.add_argument('--lr_step', type=int, default=6,
help='Крок scheduler StepLR')
parser.add_argument('--lr_gamma', type=float, default=0.1,
help='Gamma scheduler StepLR')
parser.add_argument('--device', type=str,
default=DEFAULT_DEVICE, help='Пристрій: cuda або cpu')
parser.add_argument('--split_train_val', action='store_true',
help='Автоматично розбити COCO JSON на train/val (записує у
out_dir)')
parser.add_argument('--train_json', type=str, default='',
help='Якщо у вас є окремий train json - шлях до нього')
parser.add_argument('--val_json', type=str, default='',
help='Якщо у вас є окремий val json - шлях до нього')
parser.add_argument('--val_fraction', type=float, default=0.2,
help='Доля валід. вибірки при split_train_val')
parser.add_argument('--seed', type=int, default=42,
help='Random seed')
return parser.parse_args()
if __name__ == "__main__":
args = parse_args()
run_training(args)
11
Додаток Б.
Лістинг програми навчання моделі YOLOv5
ПРОГРАМА НАВЧАННЯ МОДЕЛІ YOLOv5
Текст програми
UA.ЧДТУ.25068-01 12 01-1
Листів 3
Розробник:
студент II курсу
групи МАКІТ-2409 Денис СТРОКІН
2025
UA.ЧДТУ.25068-01 12 01-1
#Навчання YOLOv5 (PyTorch)
#Файл: train_yolov5.py
#Призначення: підготовка та навчання моделі YOLOv5 на власному
датасеті
import os
import yaml
from pathlib import Path
# =============================================================#
1. СТВОРЕННЯ КОНФІГУРАЦІЙНОГО YAML-ФАЙЛУ ДЛЯ ДАТАСЕТУ
# =============================================================
os.makedirs("dataset", exist_ok=True)
dataset_yaml = {
"train": "dataset/images/train",
"val": "dataset/images/val",
"test": "dataset/images/test",
"nc": 11,
"names": [
"car",
"pedestrian",
"red_light",
"green_light",
"truck",
"traffic_light_body",
"motorcyclist",
"red_left",
"green_left",
"yellow",
"yellow_left"
]
}
with open("dataset/udacity.yaml", "w", encoding="utf-8") as f:
yaml.dump(dataset_yaml, f, allow_unicode=True)
print("[INFO] YAML файл для датасету створено.")
# =============================================================
# 2. ЗАВАНТАЖЕННЯ YOLOv5 (через офіційний репозиторій)
# =============================================================
print("[INFO] Клонування репозиторію YOLOv5...")
os.system("git clone https://github.com/ultralytics/yolov5.git")
print("[INFO] Встановлення залежностей...")
os.system("pip install -r yolov5/requirements.txt")
2
UA.ЧДТУ.25068-01 12 01-1
# =============================================================
# 3. НАВЧАННЯ МОДЕЛІ YOLOv5
# =============================================================
print("[INFO] Початок навчання YOLOv5...")
os.system(
"python yolov5/train.py "
"--img 512 "
"--batch 8 "
"--epochs 50 "
"--data dataset/udacity.yaml "
"--weights yolov5s.pt "
"--project yolov5_results "
"--name yolov5_udacity "
"--cache"
)
print("[INFO] Навчання YOLOv5 завершено.")
# =============================================================
# ПЕРЕГЛЯД РЕЗУЛЬТАТІВ
# =============================================================
print("[INFO] Перевірте результати у каталозі:")
print(" yolov5_results/yolov5_udacity/")
# =============================================================
# ЕКСПОРТ У ONNX
# =============================================================
print("[INFO] Експорт моделі в ONNX...")
os.system(
"python yolov5/export.py "
"--weights yolov5_results/yolov5_udacity/weights/best.pt "
"--img 512 "
"--batch 1 "
"--include onnx"
)
print("[INFO] Експорт завершено. Файл best.onnx створено.")
3
Додаток В.
Лістинг програми навчання моделі YOLOv8
ПРОГРАМА НАВЧАННЯ МОДЕЛІ YOLOv8
Текст програми
UA.ЧДТУ.25068-01 12 01-1
Листів 4
Розробник:
студент II курсу
групи МАКІТ-2409 Денис СТРОКІН
2025
UA.ЧДТУ.25068-01 12 01-1
# =============================================================
# ПОВНИЙ КОД НАВЧАННЯ МОДЕЛІ YOLOv8 ДЛЯ РОЗПІЗНАВАННЯ ОБ’ЄКТІВ
# (Windows, Python, GTX 1650)
# =============================================================
from ultralytics import YOLO
import yaml
import os
# =============================================================
# 1. СТВОРЕННЯ КОНФІГУРАЦІЙНОГО ФАЙЛУ ДЛЯ YOLOv8
# =============================================================
# Переконуємося, що каталог dataset існує
os.makedirs("dataset", exist_ok=True)
# Вміст конфігураційного YAML-файлу для датасету Udacity
udacity_yaml = {
"train": "dataset/images/train",
"val": "dataset/images/val",
"test": "dataset/images/test",
"nc": 11,
"names": [
"car",
"pedestrian",
"red_light",
"green_light",
"truck",
"traffic_light_body",
"motorcyclist",
"red_left",
"green_left",
"yellow",
"yellow_left"
]
}
# Запис у файл udacity.yaml
with open("dataset/udacity.yaml", "w", encoding="utf-8") as f:
yaml.dump(udacity_yaml, f, allow_unicode=True)
print("[INFO] Конфігураційний файл udacity.yaml створено.")
# =============================================================
# 2. ЗАВАНТАЖЕННЯ ПОПЕРЕДНЬО НАВЧЕНОЇ МОДЕЛІ YOLOv8
# =============================================================
# Використовуємо YOLOv8n – найшвидшу і найменшу модель,
2
UA.ЧДТУ.25068-01 12 01-1
# оптимальну для GPU GTX 1650.
print("[INFO] Завантаження моделі YOLOv8n...")
model = YOLO("yolov8n.pt")
# =============================================================
# 3. НАВЧАННЯ МОДЕЛІ НА ДАТАСЕТІ UDACITY
# =============================================================
print("[INFO] Початок навчання YOLOv8...")
results = model.train(
data="dataset/udacity.yaml", # шлях до YAML-конфігурації
epochs=50, # кількість епох навчання
imgsz=512, # розмір вхідних зображень
batch=8, # оптимально для GTX 1650
workers=2, # кількість потоків для
завантаження даних
device=0, # GPU
lr0=0.001, # початкова швидкість
навчання
optimizer="SGD", # оптимізатор
momentum=0.937,
weight_decay=0.0005,
patience=15, # рання зупинка
project="yolo_results", # каталог з усіма
експериментами
name="yolov8_udacity", # назва конкретного запуску
verbose=True
)
print("[INFO] Навчання завершено.")
print(f"[INFO] Найкращі ваги збережено у:
yolo_results/yolov8_udacity/weights/best.pt")
# =============================================================
# 4. ПЕРЕГЛЯД РЕЗУЛЬТАТІВ НАВЧАННЯ
# =============================================================
print("[INFO] Перевірте результати у каталозі:")
print(" yolo_results/yolov8_udacity/")
print("Там розміщені графіки, метрики та прогнозовані
зображення.")
# =============================================================
# 5. ТЕСТУВАННЯ НА ОКРЕМОМУ ЗОБРАЖЕННІ
# =============================================================
# Якщо хочете автоматично протестувати одну картинку –
розкоментуйте:
3
UA.ЧДТУ.25068-01 12 01-1
# test_img = "test.jpg" # будь-яке зображення
# model.predict(
# source=test_img,
# imgsz=512,
# conf=0.35,
# save=True
# )
# print("[INFO] Виконано тестову детекцію.")
# =============================================================
# 6. ЕКСПОРТ МОДЕЛІ У ФОРМАТ ONNX
# =============================================================
print("[INFO] Експорт моделі у формат ONNX...")
model.export(format="onnx")
print("[INFO] Експорт завершено – файл best.onnx створено.")
4