Будь ласка, використовуйте цей ідентифікатор, щоб цитувати або посилатися на цей матеріал:
https://er.chdtu.edu.ua/handle/ChSTU/9756| Назва: | Програмне забезпечення інформаційної системи аналізу об'єктів ландшафту |
| Автори: | Голуб , Сергій Васильович Діденко, Олександра Олександрівна |
| Дата публікації: | 17-чер-2026 |
| Короткий огляд (реферат): | АНОТАЦІЇ
Виконавець: Діденко Олександра Олександрівна. Назва кваліфікаційної роботи бакалавра: " Програмне забезпечення інформаційної системи аналізу об'єктів ландшафту "
Спеціальність: 121 «Інженерія програмного забезпечення».
Установа: Черкаський державний технологічний університет.
Місто, рік: Черкаси, 2026 рік.
Основні ідеї, результати та висновки кваліфікаційної роботи бакалавра:
Основні ідеї:
‒ розгляд реальних потреб цільової аудиторії — екологічних служб, агропромислових підприємств та містобудівних організацій в автоматизації просторового моніторингу територій;
‒ аналіз можливостей архітектури трансформерів штучного інтелекту для автоматичного розпізнавання та колірного виділення природних та інфраструктурних зон на відеопотоці.
Результати:
‒ обґрунтування вибору мови Python, бібліотеки PyTorch та моделі комп'ютерного зору SegFormer для створення інтелектуального ядра програми;
‒ проектування архітектури та розробка додатка з графічним інтерфейсом на базі CustomTkinter з підтримкою апаратного прискорення обчислень NVIDIA CUDA.
Висновки:
‒ доведено ефективність автоматизації розпізнавання об'єктів земної поверхні за допомогою штучного інтелекту, що значно прискорює аналіз знімків порівняно з ручною обробкою;
‒ проведено оцінку технічних аспектів реалізації, переваг локальної обробки даних без сторонніх API та використання методів математичної морфології OpenCV для підвищення якості масок у режимі високої якості (HQ). ANNOTATION Performer: Didenko Oleksandra Oleksandrivna. Title of the qualified bachelor’s work: "Software of the automated system for semantic segmentation of Earth surface images". Specialty: 121 "Software Engineering". Institution: Cherkasy State Technological University. City, year: Cherkasy, 2026. Main ideas, results, and conclusions of the qualified bachelor’s work: Main ideas: ‒ consideration of the real needs of the target audience — ecological services, agro-industrial enterprises, and urban planning organizations in automating spatial territory monitoring; ‒ analysis of AI transformer architecture capabilities for automatic recognition and color highlighting of natural and infrastructural zones on a video stream. Results: ‒ justification of the choice of Python language, PyTorch library, and SegFormer computer vision model for creating the intelligent core of the application; ‒ architectural design and development of a GUI application based on CustomTkinter supporting NVIDIA CUDA hardware acceleration. Conclusions: ‒ proved the effectiveness of automating Earth surface object recognition using artificial intelligence, which significantly accelerates image analysis compared to manual processing; ‒ conducted an evaluation of technical implementation aspects, the advantages of local data processing without third-party APIs, and the use of OpenCV mathematical morphology methods to improve mask quality in high-quality (HQ) mode. |
| URI (Уніфікований ідентифікатор ресурсу): | https://er.chdtu.edu.ua/handle/ChSTU/9756 |
| Розташовується у зібраннях: | 121 Інженерія програмного забезпечення (Інженерія програмного забезпечення) |
Файли цього матеріалу:
| Файл | Опис | Розмір | Формат | |
|---|---|---|---|---|
| Кваліфікаційна робота бакалавра Діденко Олександра Олексндрівна.pdf Restricted Access | 3.97 MB | Adobe PDF | Переглянути/Відкрити Запит копії |
Усі матеріали в архіві електронних ресурсів захищено авторським правом, усі права збережено.
Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
Факультет інформаційних технологій і систем
Кафедра програмного забезпечення автоматизованих систем
ПОЯСНЮВАЛЬНА ЗАПИСКА
до кваліфікаційної роботи
«бакалавра»
освітній рівень
на тему: Програмне забезпечення інформаційної системи аналізу об'єктів
ландшафту
Виконав: студент 4 курсу, групи ПЗ-2204
Спеціальності
121 «Інженерія програмного забезпечення»
(шифр і назва напряму підготовки)
Студентка Діденко О.О.
(прізвище та ініціали)
Керівник Голуб С.М.
(прізвище та ініціали)
Рецензент Прилуцький О.О.
(прізвище та ініціали)
Черкаси 2026
Черкаський державний технологічний університет
повне найменування вищого навчального закладу
Факультет інформаційних технологій і систем
Кафедра програмного забезпечення автоматизованих систем
Освітній рівень бакалавр
Спеціальність 121 «Інженерія програмного забезпечення»
Освітня програма Інженерія програмного забезпечення
ЗАТВЕРДЖУЮ
Зав. кафедри ПЗАС, професор
Голуб С.В.
«___» _______________ 2026 року
З А В Д А Н Н Я
НА КВАЛІФІКАЦІЙНУ РОБОТУ СТУДЕНТУ
Діденко Олександра Олександрівна
(прізвище, ім’я, по батькові)
1.Тему проекту (роботи) Програмне забезпечення інформаційної системи аналізу об'єктів
ландшафту
Керівник проекту (роботи) Голуб Сергій Васильович д.т.н., професор
(прізвище, ім’я , по батькові, науковий ступінь, вчене звання)
Затверджені наказом Черкаського державного технологічного університету від « 26 » лютого
2026 року №00/00
2. Строк подання студентом проекту (роботи) 2 червня 2026 р.
3. Вхідні дані до проекту (роботи) Дослідження предметної області програмного забезпечення
автоматизованої системи семантичної сегментації ландшафту; проектування архітектури
розроблюваного програмного забезпечення (на основі архітектури трансформерів SegFormer);
4. Зміст розрахунково-пояснювальної записки (перелік питань, які потрібно розробити)
Розділ 1. Існуючі методи та засоби розв’язання поставлених завдань;
Розділ 2. Впровадження результатів досліджень у практику проектування програмного
Забезпечення інформаційних систем;
Розділ 3. Розробка та тестування програмного забезпечення;
Висновки;
Список використаних джерел;
Додатки.
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових робіт проекту;
Слайд 1; Слайд 2 ;Слайд 3 ; Слайд 4 ; Слайд 5; Слайд 6 ; Слайд 7 ; Слайд 8; Слайд 9; Слайд 10;
Слайд 11; Слайд 12; Слайд 13; Слайд 14 ;Слайд 15; Слайд 16; Слайд 17; Слайд 18 ; Слайд 19;
Слайд 20; Слайд 21; Слайд 22; Слайд 23; Слайд 24 ;
6. Консультанти розділів проекту (роботи)
Прізвище, ініціали та посади Підпис, дата
Розділ
консультанта Завдання видав Завдання прийняв
1
2
3
7.Дата видачі завдання 02 грудня 2026 р.
КАЛЕНДАРНИЙ ПЛАН
Строк
виконання
№
Назва етапів випускної роботи етапів Примітки
п/п випускної
роботи
1 Постановка задачі виконано
2 Підготовка завдання виконано
3 Погодження завдання виконано
4 Затвердження завдання виконано
Основна стадія
1 Підбір матеріалів виконано
2 Аналіз шляхів вирішення поставленої задачі виконано
3 Розрахунок основних параметрів роботи виконано
4 Вибір кінцевого варіанту проектного рішення виконано
5 Оформлення первісної редакції роботи виконано
Заключна стадія
1 Узгодження прийнятих проектних рішень з виконано
керівником
2 Оформлення пояснювальної записки роботи в виконано
кінцевій редакції
3 Попередній захист роботи виконано
4 Затвердження роботи виконано
5 Рецензування роботи виконано
6 Захист роботи
Студент _____________________ Діденко О.О.
(підпис) (прізвище та ініціали)
Керівник проекту (роботи) _____________________ Голуб С.В.
(підпис) (прізвище та ініціали)
АНОТАЦІЇ
Виконавець: Діденко Олександра Олександрівна.
Назва кваліфікаційної роботи бакалавра: " Програмне забезпечення
інформаційної системи аналізу об'єктів ландшафту "
Спеціальність: 121 «Інженерія програмного забезпечення».
Установа: Черкаський державний технологічний університет.
Місто, рік: Черкаси, 2026 рік.
Основні ідеї, результати та висновки кваліфікаційної роботи бакалавра:
Основні ідеї:
‒ розгляд реальних потреб цільової аудиторії — екологічних служб,
агропромислових підприємств та містобудівних організацій в
автоматизації просторового моніторингу територій;
‒ аналіз можливостей архітектури трансформерів штучного інтелекту
для автоматичного розпізнавання та колірного виділення природних та
інфраструктурних зон на відеопотоці.
Результати:
‒ обґрунтування вибору мови Python, бібліотеки PyTorch та моделі
комп'ютерного зору SegFormer для створення інтелектуального ядра
програми;
‒ проектування архітектури та розробка додатка з графічним
інтерфейсом на базі CustomTkinter з підтримкою апаратного
прискорення обчислень NVIDIA CUDA.
Висновки:
‒ доведено ефективність автоматизації розпізнавання об'єктів земної
поверхні за допомогою штучного інтелекту, що значно прискорює
аналіз знімків порівняно з ручною обробкою;
‒ проведено оцінку технічних аспектів реалізації, переваг локальної
обробки даних без сторонніх API та використання методів
математичної морфології OpenCV для підвищення якості масок у
режимі високої якості (HQ).
ANNOTATION
Performer: Didenko Oleksandra Oleksandrivna.
Title of the qualified bachelor’s work: "Software of the automated system for
semantic segmentation of Earth surface images".
Specialty: 121 "Software Engineering".
Institution: Cherkasy State Technological University.
City, year: Cherkasy, 2026.
Main ideas, results, and conclusions of the qualified bachelor’s work:
Main ideas:
‒ consideration of the real needs of the target audience — ecological services,
agro-industrial enterprises, and urban planning organizations in automating
spatial territory monitoring;
‒ analysis of AI transformer architecture capabilities for automatic
recognition and color highlighting of natural and infrastructural zones on a
video stream.
Results:
‒ justification of the choice of Python language, PyTorch library, and
SegFormer computer vision model for creating the intelligent core of the
application;
‒ architectural design and development of a GUI application based on
CustomTkinter supporting NVIDIA CUDA hardware acceleration.
Conclusions:
‒ proved the effectiveness of automating Earth surface object recognition
using artificial intelligence, which significantly accelerates image analysis
compared to manual processing;
‒ conducted an evaluation of technical implementation aspects, the
advantages of local data processing without third-party APIs, and the use of
OpenCV mathematical morphology methods to improve mask quality in
high-quality (HQ) mode.
ЗМІСТ
ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ ......................................................................... 8
ВСТУП .......................................................................................................................... 9
РОЗДІЛ 1. ІСНУЮЧІ МЕТОДИ ТА ЗАСОБИ РОЗВ’ЯЗАННЯ ПОСТАВЛЕНИХ
ЗАВДАНЬ .................................................................................................................... 13
1.1Основні визначення .................................................................................... 13
1.2Аналіз та моніторинг сучасних аналогів .................................................. 14
1.3Методи реалізації систем семантичної сегментації ................................ 15
1.4Постановка задачі ....................................................................................... 17
ВИСНОВКИ ДО ПЕРШОГО РОЗДІЛУ .................................................................. 19
РОЗДІЛ 2 ВПРОВАДЖЕННЯ РЕЗУЛЬТАТІВ ДОСЛІДЖЕНЬ У ПРАКТИКУ
ПРОЕКТУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ІНФОРМАЦІЙНИХ
СИСТЕМ ..................................................................................................................... 20
2.1. Моделювання предметної області ........................................................... 20
2.1.1.Предметна область моделювання. Модель предметної області.
Словник предметної області. ................................................................... 20
2.1.2 Елементи моделювання предметної облатсі ................................. 22
2.1.3 Робоча область моделювання ......................................................... 23
2.2. Формування та аналіз вимог .................................................................... 25
2.2.1. Формування вимог до програмного забезпечення. Первинні і
детальні вимоги. Вимоги замовника і розробника. Функціональні та
нефункціональні вимоги .......................................................................... 25
2.2.2. Формування вимог за допомогою діаграм прецедентів ............. 28
ЧДТУ262405 002 ПЗ
8
Зм. Лист № документа№ Підпис Дата
Розроб. Ддіодкенукмое Он.тОа. «Програмне забезпечення інформаційної Літ. Лист Листів
Керівник Голуб С.В. системи аналізу об'єктів ландшафту» Д 3
Пояснювальна записка ФІТІС, кафедра ПЗАС,
Н.контр. Півень О.Б.
Затв. Голуб С.В. ПЗ-2204
2.3. Проектування логічної структури програмного комплексу ................. 30
2.3.1. Діаграми класів ............................................................................... 30
2.3.2. Діаграма пакетів .............................................................................. 34
2.4. Архітектурне проектування ..................................................................... 35
2.4.1. Діаграма компонентів ..................................................................... 36
2.4.2. Розгортання програмної системи на апаратних засобах. Діаграма
розгортання ................................................................................................ 38
2.5. Моделювання поведінки системи ........................................................... 39
2.5.1. Діаграма діяльності ......................................................................... 40
2.5.2. Діаграма послідовності .................................................................. 41
2.5.3 Діаграма комунікації ....................................................................... 43
2.5.4 Діаграма скінченного автомату ...................................................... 44
ВИСНОВОК ДО ДРУГОГО РОЗДІЛУ .................................................................... 47
РОЗДІЛ 3 РОЗРОБКА ТА ТЕСТУВАННЯ ПРОГРАМНОГО
ЗАБЕЗПЕЧЕННЯ ....................................................................................................... 49
3.1. Розробка програмного комплексу ........................................................... 49
3.1.1. Обґрунтування вибору засобів реалізації ..................................... 49
3.1.2 Опис структурної та функціональної схем ................................... 50
3.1.3. Опис логічної схеми системи ........................................................ 53
3.1.4. Розробка бази даних ....................................................................... 54
3.1.5. Розробка інтерфейсу користувача ................................................. 57
3.1.6. Опис розробки програмних компонентів ..................................... 60
ЧДТУ262405 002 ПЗ
3.2. Тестування системи .................................................................................. 62
3.2.1. Модальне тестування ...................................................................... 62
3.2.2. Інтеграційне тестування ................................................................. 64
3.2.3. Системне тестування ...................................................................... 66
3.2.4. Приймальне тестування ................................................................. 67
3.3. Приклади впровадженого програмного комплексу .............................. 69
ВИСНОВКИ ДО ТРЕТЬОГО РОЗДІЛУ .................................................................. 74
ВИСНОВОК ................................................................................................................ 76
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ .................................................................. 79
ДОДАТОК А ............................................................................................................... 82
ДОДАТОК Б ............................................................................................................... 84
ДОДАТОК В ............................................................................................................... 91
ДОДАТОК г ................................................................................................................ 98
‒
ЧДТУ262405 002 ПЗ
ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ
AI Artificial Intelligence
БПЛА Безпіло́тний літа́льний апара́т
QGIS Quantum GIS
HQ High Quality
HTTP HyperText Transfer Protocol
CUDA Compute Unified Device Architecture
СУБД Система управління базами даних
SQL Structured Query Language
ЧДТУ262405 002 ПЗ
ВСТУП
Актуальність теми зумовлена необхідністю створення
високоефективного, масштабованого та надійного програмного забезпечення для
автоматизованої обробки геопросторових даних. Сучасні інструменти
семантичної сегментації зображень земної поверхні вимагають інтеграції
складних моделей машинного навчання та комп'ютерного зору (зокрема,
архітектур на основі трансформерів, таких як SegFormer) у готові програмні
комплекси. З точки зору інженерії програмного забезпечення, критично
важливими є завдання проектування гнучкої архітектури ПЗ, оптимізації
обчислювальних ресурсів для обробки відеопотоків у реальному часі,
забезпечення кросплатформності за допомогою сучасних бібліотек інтерфейсу
користувача (наприклад, CustomTkinter), а також реалізація модульної структури
коду для подальшого супроводу та масштабування системи. Розробка
спеціалізованого програмного продукту, що автоматизує процеси просторового
моніторингу та інтегрує інтелектуальні модулі обробки даних, дозволяє вирішити
проблему високої ресурсомісткості та складності налаштування подібних систем,
роблячи їх доступними для кінцевих користувачів у вигляді готового, стабільного
та інтуїтивно зрозумілого програмного застосунку.
Мета розробки
Метою роботи є проектування, програмна реалізація та тестування
кросплатформового програмного застосунку автоматизованої системи
семантичної сегментації зображень земної поверхні на основі архітектури
штучного інтелекту.
Для досягнення поставленої мети необхідно вирішити такі інженерні
завдання:
Розробити гнучку та модульну архітектуру програмного забезпечення, що
забезпечує стабільну інтеграцію моделей комп'ютерного зору (зокрема,
SegFormer) та ефективне керування потоковими мультимедійними даними в
реальному часі;
9
ЧДТУ262405 002 ПЗ
Створити ергономічний та інтуїтивно зрозумілий графічний інтерфейс
користувача (GUI) з використанням сучасних фреймворків;
Реалізувати програмні модулі для автоматизації нейромережевого
інференсу, обробки візуальної інформації та точного математичного розрахунку
геометричних параметрів (площ) сегментованих об'єктів ландшафту;
Забезпечити високу продуктивність, надійність та автономність
функціонування програмного продукту без необхідності постійного підключення
до сторонніх хмарних сервісів
Завдання розробки
Завданням розробки є розробка програмного забезпечення для настільного
додатка "AI Landscape Segmenter", яке реалізує автоматизовану систему
семантичної сегментації зображень, покращуючи швидкість розпізнавання
географічних зон, а також оптимізуючи процеси локальної обробки просторової
інформації. Завдання включають розробку функціоналу для інтеграції
трансформерної моделі глибокого навчання, вибору джерела даних між
локальним файлом та веб-камерою, управління якістю обробки кадрів та
динамічного виведення результатів аналізу.
Об’єкт розробки
Об’єктом розробки є програмне забезпечення автоматизованої системи
аналізу об'єктів ландшафту, зокрема, локальний настільний додаток "AI
Landscape Segmenter".
Предмет розробки є методи, алгоритми, архітектурні рішення та програмні
засоби створення автономної системи семантичної сегментації зображень земної
поверхні «AI Landscape Segmenter».
Зокрема, предмет розробки охоплює:
Аналіз та формалізацію вимог до програмного забезпечення систем
комп'ютерного зору;
Проектування архітектури ПЗ та розробку його функціональної схеми з
урахуванням концепцій модульності та розділення відповідальності (Separation of
Concerns);
10
ЧДТУ262405 002 ПЗ
Програмну реалізацію компонентів інтеграції нейромережевих моделей,
модулів потокової обробки мультимедійних даних та графічного інтерфейсу
користувача.
Методи проєктування та конструювання
Програмний додаток "AI Landscape Segmenter" створений за допомогою
мови програмування Python [1] та фреймворку глибокого навчання PyTorch [2],
що забезпечує його високу надійність та архітектурну гнучкість. Завдяки
використанню цих технологій та інтеграції трансформерної моделі SegFormer [3],
додаток забезпечує не лише високу точність класифікації кожного пікселя
зображення ландшафту, але й стабільну швидкість обробки даних за рахунок
апаратного прискорення NVIDIA CUDA [4]
Опис отриманих результатів
Розроблено спеціалізоване програмне забезпечення, яке дозволяє
виконувати високоточну сегментацію ландшафту. Спроектована система здатна
розпізнавати об'єкти навіть при частковому перекритті або низькій контрастності
зображення. Реалізовано механізм динамічного виведення аналітичної легенди,
що спрощує роботу кінцевого користувача з інтерпретацією даних. Проведені
тести підтвердили працездатність системи при обробці відео високої роздільної
здатності з мінімальними затримками.
Практичне значення отриманих результатів
Впровадження розробленого програмного забезпечення дозволяє
організаціям значно покращити якість моніторингу природних ресурсів,
оптимізувати роботу аналітиків і картографів та підвищити точність оцінки стану
досліджуваних територій. Це дозволяє ефективніше використовувати ресурси та
забезпечувати високий рівень автоматизації рутинних процесів обробки
растрових даних. Завдяки впровадженню такого інноваційного рішення, фахівці
можуть отримувати детальну інформацію щодо структури ландшафту у будь-який
час в автономному режимі, що сприяє створенню більш доступних та ефективних
засобів комп'ютерного зору.
Особистий внесок автора
11
ЧДТУ262405 002 ПЗ
В ході кваліфікаційної роботи було спроектовано та розроблено програмне
забезпечення для настільного додатка "AI Landscape Segmenter". В ході розробки
було забезпечено його швидкодію та відмовостійкість, впроваджені інноваційні
трансформерні архітектури для оптимізації взаємодії між модулями обробки
відеопотоку та графічним інтерфейсом користувача CustomTkinter. Реалізація
даного проекту сприяє підвищенню ефективності роботи аналітичних систем і
покращенню якості просторового моніторингу земної поверхні.
12
ЧДТУ262405 002 ПЗ
РОЗДІЛ 1. ІСНУЮЧІ МЕТОДИ ТА ЗАСОБИ РОЗВ’ЯЗАННЯ ПОСТАВЛЕНИХ
ЗАВДАНЬ
1.1 Основні визначення
Одним із інструментів, що дозволяють спростити та автоматизувати процес
просторового аналізу земної поверхні, є системи комп'ютерного зору, зокрема
алгоритми семантичної сегментації зображень. Семантика стала популярним
інструментом для розпізнавання об'єктів у сфері екологічного моніторингу,
урбаністики, сільського господарства та інших галузях. Вони дозволяють швидко
та ефективно аналізувати цифрові знімки або відеопотоки, надавати необхідну
інформацію про географічні зони, виділяти точні контури об'єктів, а також
збирати та обробляти просторові дані.
Однією з переваг систем семантичної сегментації є те, що вони здатні
працювати з різними типами вхідних даних (аерознімки, супутникові знімки або
відеопотоки з БПЛА), які мають велике значення для моніторингу територій у
всьому світі. Це дозволяє програмним комплексам мати широку сферу
застосування та бути доступними для використання в різних прикладних задачах.
Крім того, сучасні алгоритми глибокого навчання забезпечують високий уровень
точності розпізнавання навіть у складних умовах освітлення чи при наявності
візуальних шумів, що важливо для отримання достовірних результатів.
Іншою перевагою таких систем є те, що вони можуть бути створені на базі
різних мов програмування, таких як Python, C++, Java та інші. Це дозволяє
розробникам вибирати найбільш підходящу мову для конкретного завдання та
використовувати відповідні бібліотеки та фреймворки для проектування
обчислювальних конвеєрів. Для інженерії штучного інтелекту найчастіше
обирають мову Python, оскільки вона має розвинену екосистему низькорівневих
математичних бібліотек, таких як OpenCV [5].
Однією з популярних архітектур для створення систем семантичної
сегментації є модель SegFormer, яка реалізується за допомогою фреймворку
PyTorch та спеціалізованої бібліотеки Transformers [6]. Ця технологія на основі
13
ЧДТУ262405 002 ПЗ
трансформерів комп'ютерного зору має багато корисних функцій та можливостей,
які дозволяють створювати потужні та швидкі програмні рішення. Однією з
переваг SegFormer є використання ієрархічного енкодера та легковагового MLP-
декодера, що робить процес інференсу моделі більш швидким та ефективним.
Крім того, фреймворк підтримує апаратне прискорення NVIDIA CUDA та має
велику активну спільноту розробників, які допомагають вирішувати питання,
пов'язані з оптимізацією нейронних мереж.
1.2 Аналіз та моніторинг сучасних аналогів
Google Earth Engine [7] — хмарна багатокористувацька платформа, що
призначена для аналізу просторових супутникових даних планетарного масштабу.
Переваги:
- велика база інтегрованих супутникових знімків та ортофотопланів;
- перенесення складних математичних розрахунків на віддалені хмарні
сервери;
- зручний автоматизований інтерфейс аналізу географічних карт.
Недоліки:
- відсутність можливості локальної обробки динамічних відеопотоків або
веб-камер у реальному часі;
- необхідність постійного та стабільного високошвидкісного підключення
до мережі Інтернет.
ArcGIS Pro (Deep Learning Toolset) [8] — індустріальне геоінформаційне
програмне забезпечення комерційного типу з вбудованими модулями штучного
інтелекту.
Переваги:
- готові інструменти для автоматичного навчання та тестування
нейромереж;
- пряма інтеграція розпізнаних масок із векторними шарами та
географічними координатами.
14
ЧДТУ262405 002 ПЗ
Недоліки:
- платна та висока вартість комерційних ліцензій на програмний
комплекс;
- відсутність можливості створення гнучкого автономного Desktop-
додатка користувача з кастомізованим інтерфейсом.
QGIS із плагінами комп'ютерного зору [9] — геоінформаційна система з
відкритим кодом, яка підтримує локальні засоби класифікації растрових матриць
зображень.
Переваги:
- безкоштовна послуга та відкритий вихідний код для розробників;
‒ автономність функціонування системи без обов'язкового доступу до
хмарних сервісів;
- зручний доступ до засобів візуалізації результатів сегментації.
Недоліки:
- обмежена функціональність обробки потокових мультимедійних даних;
- необхідність складного ручного налаштування сторонніх середовищ для
запуску нейромереж.
Загалом, системи семантичної сегментації мають великий потенціал для
автоматизації різних завдань та процесів у сфері екологічного моніторингу та
аналізу об'єктів. Вони можуть допомогти зберегти час та ресурси, підвищити
ефективність та якість розпізнавання природних зон, а також надати нові
можливості для взаємодії з користувачами через графічний інтерфейс. Однак, для
створення ефективного та функціонального додатка необхідно використовувати
відповідні інструменти та технології, такі як фреймворк PyTorch, модель
SegFormer, засоби OpenCV, графічні бібліотеки CustomTkinter та інше. Крім того,
необхідно враховувати потреби та особливості конкретної галузі, а також вимоги
та очікування користувачів щодо швидкодії системи в реальному часі
1.3 Методи реалізації систем семантичної сегментації
Програмні комплекси для семантичної сегментації ландшафтних зображень
15
ЧДТУ262405 002 ПЗ
можуть бути реалізовані за допомогою різних технологій та підходів. Одним з
популярних інструментів для створення таких систем є бібліотека OpenCV, яка
надає розробникам можливість взаємодіяти з матрицями зображень за допомогою
низькорівневих математичних операцій та алгоритмів фільтрації. Ця бібліотека
підтримує різні мови програмування, такі як Python, C++, Java, C# та інші.
Популярним інструментом для побудови сучасних інтелектуальних систем
є архітектура SegFormer. Ця нейромережева модель надає розробникам
можливість виконувати розпізнавання складних об'єктів на зображеннях,
використовуючи асинхронні механізми внутрішньої уваги (Self-Attention).
SegFormer підтримує інтеграцію через провідні фреймворки глибокого навчання,
такі як PyTorch , TensorFlow та інші.
Окрім цих інструментів, для створення систем семантичної сегментації
можуть бути використані інші технології, такі як платформи апаратного
прискорення, бази даних, сервери, контейнери та інше. Наприклад, для зберігання
даних про логування процесів та результати розпізнавання об'єктів може бути
використана база даних PostgreSQL або MongoDB. Для обробки вхідних кадрів та
організації швидких черг обчислень може бути використана серверна
інфраструктура. Для розгортання та забезпечення незалежності середовища
виконання додатка від системних залежностей користувача може бути
використана платформа контейнеризації Docker.
Важливо також враховувати питання продуктивності та оптимізації
обчислень при краюванні систем комп'ютерного зору. Для цього можуть бути
використані різні методи захисту від втрати кадрів, такі як апаратне прискорення
матричних обчислень, морфологічна фільтрація масок, обмеження роздільної
здатності для прискорення інференсу та інше.
Вибір технологій та підходів для створення систем семантичної сегментації
ландшафту залежить від конкретних вимог та цілей проекту, а також від рівня
навичок та досвіду розробників. Важливо враховувати всі аспекти проекту,
включаючи функціональність, надійність, точність розпізнавання та швидкість
обробки інформації, щоб створити ефективний та корисний програмний продукт.
16
ЧДТУ262405 002 ПЗ
В даній роботі використовується Python, фреймворк PyTorch та бібліотека
CustomTkinter для створення інформаційної системи аналізу об'єктів ландшафту.
Цей вибір обумовлений кількома причинами:
- Python є дуже популярною та поширеною мовою програмування, яка має
велику кількість бібліотек та фреймворків для обробки даних і штучного
інтелекту. Це дозволяє розробникам швидко та легко знаходити
необхідні інструменти та ресурси для реалізації своїх проектів.
- фреймворк PyTorch спільно з архітектурою SegFormer є потужним
інструментом для створення моделей семантичної сегментації, який
підтримує динамічну модель обчислень. Це дозволяє будувати складні
та функціональні конвеєри обробки зображень, які можуть працювати у
реальному часі. Крім того, SegFormer має зручний і зрозумілий
інтерфейс для інтеграції, що спрощує процес розробки та дозволяє
зосередитися на точності виділення ландшафтних класів.
- Python та екосистема PyTorch мають велику та активну спільноту
користувачів, яка створює багато корисних ресурсів, таких як
документація, приклади коду, готові навчені модели та інше. Це
дозволяє розробникам швидко та легко знаходити відповіді на свої
питання та вирішувати проблеми, пов'язані з налаштуванням та
запуском нейронних мереж на локальних обчислювальних пристроях.
Загалом, використання обраного технологічного стеку для створення
інформаційної системи дозволяє створити ефективний та функціональний
настільний додаток, використовуючи просту мову програмування, сучасну
трансформерну архітектуру та зручний графічний інтерфейс, а також мати доступ
до великої кількості корисних інструментів для розвитку та вдосконалення
системи.
1.4 Постановка задачі
На основі результатів дослідження аналогічних існуючих систем, були
визначені наступні завдання для розробки:
17
ЧДТУ262405 002 ПЗ
- розробка програмного забезпечення для інформаційної системи аналізу
об'єктів ландшафту для спрощення процесу моніторингу територій;
- розробка функціоналу для забезпечення можливості вибору джерела
вхідних даних між підключеною веб-камерою та локальним
відеофайлом;
- розробка модулю для забезпечення функціоналу семантичної
сегментації зображень у реальному часі за допомогою моделі SegFormer;
- розробка функціоналу для можливості регулювання якості обробки
даних (перемикання режимів) та відображення динамічної легенди
розпізнаних класів об'єктів
18
ЧДТУ262405 002 ПЗ
ВИСНОВКИ ДО ПЕРШОГО РОЗДІЛУ
У першому розділі було досліджено існуючі методи та засоби розв'язання
поставлених завдань. Зокрема, було розглянуто особливості просторового аналізу
земної поверхні, згідно з якими автоматизація розпізнавання природних структур
має важливе значення для систем моніторингу територій. Також було розглянуто
можливості алгоритмів семантичної сегментації зображень як інструменту для
автоматизації різних завдань та процесів у сфері геоінформаційного аналізу.
Було проаналізовано переваги сучасних методів сегментації на основі
глибокого навчання, такі як стійкість до збурень, висока піксельна точність,
можливість створення рішень на базі різних мов програмування, а також
популярні архітектури для створення систем комп'ютерного зору, зокрема модель
SegFormer.
Окрім того, було розглянуто можливості інформаційних систем для
автоматизації процесів, пов'язаних із підготовкою вхідних даних, виконанням
нейромережевого інференсу та візуалізацією масок розпізнавання. Було наведено
приклади використання програмних аналогів для цих цілей, а також показано, як
вони можуть допомогти зберегти час та ресурси, підвищити якість та точність
аналізу об'єктів ландшафту.
Загалом, сучасні трансформерні архітектури мають великий потенціал для
автоматизації різних завдань у сфері комп'ютерного зору, зокрема для
розпізнавання природних об'єктів, класифікації географічних зон та моніторингу
територій. Для створення ефективного та функціонального програмного
комплексу необхідно використовувати відповідні інструменти та технології, такі
як фреймворк PyTorch, бібліотека Transformers, засоби OpenCV, бібліотека
графічного інтерфейсу CustomTkinter, платформи паралельних обчислень CUDA
та інше, а також враховувати потреби та особливості конкретної предметної
області, вимоги та очікування користувачів.
19
ЧДТУ262405 002 ПЗ
РОЗДІЛ 2 ВПРОВАДЖЕННЯ РЕЗУЛЬТАТІВ ДОСЛІДЖЕНЬ У ПРАКТИКУ
ПРОЕКТУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ІНФОРМАЦІЙНИХ СИСТЕМ
2.1. Моделювання предметної області
Моделювання предметної області дозволяє наочно зобразити архітектурну
або прикладну проблему, яка повинна бути вирішена розробником у процесі
створення інженерного рішення, і формує надійну основу для ефективного
об'єктно-орієнтованого проектування та конструювання системи [10]. Побудова
концептуальних моделей та абстракцій допомагає структурувати логіку взаємодії
програмних компонентів, розподілити відповідальність між модулями обробки
даних штучного інтелекту та мінімізувати ризики виникнення логічних помилок
на етапі безпосереднього написання вихідного коду. Завдяки формалізованому
аналізу сутностей, проектування настільного додатка переходить від загального
опису функцій до чіткої побудови взаємозв'язків між класами глибокого навчання
та елементами користувацького інтерфейсу [11].
2.1.1. Предметна область моделювання. Модель предметної області.
Словник предметної області.
Предметна область моделювання
Предметна область для настільного додатка автоматизованої системи
семантичної сегментації та аналізу об'єктів ландшафту охоплює всі аспекти
обробки та інтерпретації мультимедійних потоків (відеофайлів та кадрів веб-
камери), які можуть бути автоматизовані для підвищення ефективності
моніторингу територій. В цей перелік входить: захоплення та декомпозиція
відеопотоку на кадри, трансформація матриць зображень у числові тензори,
виконання нейромережевого інференсу, морфологічна фільтрація бінарних масок
та генерація фінального блендованого зображення.
Предметна область цього додатка орієнтована на створення автономного,
швидкого та функціонального інструменту для комп'ютерного зору, забезпечення
локального виконання моделей штучного інтелекту без використання сторонніх
20
ЧДТУ262405 002 ПЗ
хмарних API та підвищення якості аналізу ландшафтних елементів земної
поверхні.
Модель предметної області
Модель предметної області для локальної системи аналізу ландшафту
допомагає створити абстрактну модель обчислювальної логіки конвеєра
комп'ютерного зору, використовуючи об'єктно-орієнтований підхід [Fowler M.
UML Distilled]. За допомогою модели предметної області відображені ключові
аспекти роботи додатка, представлені сутностями з атрибутами та
взаємозв'язками в межах інженерії програмного забезпечення. Сутності
представляють реальні обчислювальні компоненти та концепції, такі як вхідний
відеопотік, процесор обробки зображень, трансформерна модель, маски класів та
графічні елементи інтерфейсу.
Словник предметної області
У словнику предметної області зазначається інформація про структуру
об’єкту, атрибути та їх типи. Окрім того, на словнику можуть також
зображуватись і відносини. Нижче наведено словник предметної області для
настільного додатка автоматизованої системи аналізу об'єктів ландшафту:
1 Відеопотік / Кадр (VideoCapture / Frame):
Властивості:
‒ джерело даних (Webcam / File Path);
‒ роздільна здатність (Width, Height);
‒ колірна модель (BGR / RGB);
‒ матриця пікселів (NumPy array).
Відносини:
‒ постачає вхідні матриці пікселів для процесора;
‒ зчитується у циклі до моменту переривання користувачем;
‒ трансформується у результуючий вихідний кадр.
2 Модель сегментації (Segformer Model):
Властивості:
‒ назва архітектури (Model Name);
21
ЧДТУ262405 002 ПЗ
‒ обчислювальний пристрій (Device: CPU / CUDA);
‒ тензор логітів (Outputs logits);
‒ конфігурація роздільної здатності (Size parameter: 512 / 768).
Відносини:
‒ завантажує попередньо навчені ваги з локального сховища;
‒ приймає підготовлені вхідні тензори від процесора зображень;
‒ генерує карту передбачених класів для кожного пікселя.
3 Семантична маска та легенда (Mask & Legend):
Властивості:
‒ ідентифікатор класу (Class ID);
‒ назва ландшафтного класу (Class Label);
‒ палітра кольорів (RGB/BGR Color Vector).
Відносини:
‒ накладається поверх оригінального кадру з заданим коефіцієнтом
прозорості;
‒ піддається додатковій морфологічній фільтрації (MORPH_OPEN) у
режимі HQ;
‒ візуалізується у вигляді графічного блоку з текстовим описом у
кутку екрана.
2.1.2 Елементи моделювання предметної облатсі
Для моделювання предметної області існує безліч інструментів,
найпопулярнішим з яких є моделювання за допомогою UML-діаграм [12]. Такі
діаграми охоплюють всі основні аспекти системи та допомагають візуально
зобразити поведінку, структуру та архітектуру системи. Об’єкти, що
використовуються на UML-діаграмах, поділяються на декілька типів: структурні,
поведінкові та інші.
Графічні символи UML-діаграм, що плануються до використання у цій
роботі для опису системи аналізу ландшафту, наведено в (табл 2.1.)
Таблиця 2.1
22
ЧДТУ262405 002 ПЗ
Графічні символи UML-діаграм, що плануються до використання
Графічний символ Назва Елемента
Дійова особа (Actor)
Варіант використання (Use Case)
Коментар (Note)
Клас (Class)
Пакет (Package)
Компонент (Component)
Головна програма (Main system)
Сховище ваг (Weights Storage)
2.1.3 Робоча область моделювання
Для забезпечення повної відповідності розроблюваного програмного
продукту встановленим технічним вимогам та комплексного врахування
специфіки його функціонування було здійснено етап концептуального
моделювання предметної області. Візуалізовану структуру зв'язків та
архітектурних компонентів системи представлено на (рис.2.1).
23
ЧДТУ262405 002 ПЗ
Рисунок 2.1 – Модель предметної області для системи «AI Landscape Segmenter
Опис моделі предметної області
Наведемо основні елементи моделі предметної області:
1 Користувач: представляє собою кінцевого користувача системи —
оператора або аналітика ландшафтних об'єктів. Користувач взаємодіє з
інтерфейсом програми, обирає джерело відеоданих та аналізує отримані
результати семантичної сегментації.
2 Відеопотік: представляє об'єкт реального світу або цифровий файл, що
містить послідовність вхідних кадрів ландшафту. Він забезпечує
стабільне декодування та покрокову передачу зображень для
подальшого аналізу нейромережею.
3 Інференс (SegFormer): відповідає за безпосередній процес виконання
обчислень глибокою нейронною мережею. Компонент приймає
підготовлені тензори вхідних кадрів і здійснює розрахунок передбачень
для отримання масок класів у реальному часі.
4 Маска сегментації: вихідне зображення, де кожному окремому пікселю
кадру присвоєно певний унікальний клас ландшафту (наприклад:
24
ЧДТУ262405 002 ПЗ
дорога, трава, будівля, вода тощо) за допомогою чіткого колірного
кодування.
5 Класи ландшафту: представляють собою повний перелік категорій
об'єктів навколишнього середовища, які система здатна розпізнавати та
візуалізувати на екрані відповідно до налаштованої графічної легенди
додатка.
2.2. Формування та аналіз вимог
Визначення, аналіз та структурування вимог є критично важливим етапом
життєвого циклу створення будь-кого програмного забезпечення, так як саме
вимоги визначають майбутній функціонал готового програмного забезпечення та
критерії, за якими можна гарантувати готовність розроблюваного додатка [13].
2.2.1. Формування вимог до програмного забезпечення. Первинні і детальні
вимоги. Вимоги замовника і розробника. Функціональні та
нефункціональні вимоги
Формування вимог до програмного забезпечення
Для формування вимог до програмного забезпечення автоматизованої
системи аналізу та семантичної сегментації об'єктів ландшафту було необхідно
проаналізувати потреби операторів та технічні можливості сучасних ЕОМ [14]. У
результаті аналізу та опрацювання цих даних були сформовані первинні та
детальні вимоги, вимоги замовника та розробника, а також чітко визначені
функціональні та нефункціональні вимоги. Далі будуть представлені результати
аналізу та опрацювання.
Первинні вимоги:
1 Вибір джерела відеоданих:
‒ користувач повинен мати змогу самостійно визначати джерело
обробки — потокове відео з веб-камери чи готовий локальний файл
2 Редагування параметрів якості:
25
ЧДТУ262405 002 ПЗ
‒ можливість перемикати режими обробки (активація або деактивація
фільтрації) для оптимізації навантаження на систему до початку або
під час інференсу.
3 Отримання візуальних результатів:
‒ система динамічно виводить оброблені кадри з накладеною графікою
безпосередньо в інтерфейс програми у реальному часі.
4 Підтримка стабільної продуктивності:
‒ система повинна бути спроектована таким чином, щоб підтримувати
обробку кадрів із високою частотою (FPS) без втрати швидкодії.
5 Локальна автономність та захист:
‒ повна незалежність додатка від сторонніх хмарних серверів, платних
API та обов'язкового інтернет-з'єднання.
6 Зручний інтерфейс програми:
‒ графічний інтерфейс користувача має бути сучасним, інтуїтивно
зрозумілим і адаптованим під темну тему оформлення.
7 Ефективний алгоритм обробки інформації:
‒ розробка конвеєра препроцесингу та інференсу, який ефективно
обробляє матриці пікселів, забезпечуючи швидке реагування на дії
користувача.
8 Інформаційна підтримка оператора:
‒ наявність надійної графічної легенди для захисту користувача від
невірного тлумачення розпізнаних елементів ландшафту.
9 Масштабованість та розширюваність:
‒ система повинна бути легко розширюваною, щоб додавати нові класи
об'єктів або замінювати модель штучного інтелекту без повної
перебудови архітектури.
Детальні вимоги:
1 Вибір джерела відеоданих:
‒ Компоненти вибору вхідного потоку:
26
ЧДТУ262405 002 ПЗ
‒ реалізація виклику системного діалогового вікна провідника для
вибору файлів (формати .mp4, .avi);
‒ реалізація автоматичного підключення до активного індексу веб-
камери через бібліотеку OpenCV;
‒ валідація даних: перевірка наявності файлу на диску та блокування
запуску, якщо джерело не обрано.
2 Редагування параметрів якості:
Інтерфейс для управління обробкою:
‒ наявність інтегрованого перемикача (тумблера) для активації або
вимкнення режиму високої якості (HQ);
‒ функція фільтрації: у режимі HQ програма запускає алгоритми
морфологічної обробки маски для видалення візуального шуму;
‒ функція оптимізації: можливість вимкнути фільтрацію для
збереження максимальної частоти кадрів.
3 Отримання візуальних результатів:
Система відображення відео:
‒ динамічне оновлення кадрів у спеціальному контейнері графічного
інтерфейсу;
‒ накладання кольорової семантичної маски поверх оригінального
зображення за допомогою методу альфа-блендування (змішування
шарів);
‒ коректне збереження пропорцій кадру при виведенні на екран.
4 Підтримка стабільної продуктивності:
Архітектура системи :
‒ автоматична перевірка наявності сумісного графічного процесора та
активація обчислень на ядрах CUDA;
‒ перемикання на центральний процесор (CPU) у разі відсутності
дискретної відеокарти для збереження працездатності.
5 Локальна автономність та захист:
‒ Безпека та ізоляція даних:
27
ЧДТУ262405 002 ПЗ
‒ архітектура моделі штучного інтелекту SegFormer має
завантажуватися суто з локально збереженого файлу ваг;
‒ відсутність у коді зовнішніх HTTP-запитів до сторонніх серверів, що
запобігає витоку оброблюваних відеоданих.
6 Адаптивний дизайн: UI/UX дизайн на базі CustomTkinter:
‒ використання сучасної темної палітри кольорів за замовчуванням;
‒ чітке розташування кнопок («Старт», «Стоп», «Вибір файлу») та їх
візуальний відгук на натискання;
тестування на різних моніторах для забезпечення коректного відображення
елементів інтерфейсу.
7 Ефективний алгоритм обробки інформації:
Алгоритм обробки кадрів:
‒ оптимізація кроків препроцесингу зображень за допомогою швидких
матричних операцій бібліотеки NumPy для мінімізації часу реакції;
‒ ізоляція необов'язкових системних попереджень сторонніх бібліотек,
щоб не уповільнювати роботу консолі програми.
8 Інформаційна підтримка оператора:
Безпека доступу до інформації:
‒ створення на екрані інформаційного блоку, який містить чіткий
перелік цільових класів (дорога, поле, ліс, вода тощо);
‒ суворий поділ кольорових маркерів у легенді відповідно до кольорів,
якими нейромережа зафарбовує об'єкти на відео.
9 Масштабованість системи:
Архітектура для розширення :
‒ планування архітектури з урахуванням можливості додавання нових
модулів, винесення конфігурації класів та шляхів до локальних ваг
моделі в окремі файли налаштувань.
2.2.2. Формування вимог за допомогою діаграм прецедентів
Для наочної структуризації вимог та графічного представлення сценаріїв
взаємодії оператора з функціональними модулями системи було розроблено
28
ЧДТУ262405 002 ПЗ
діаграму прецедентів (рис. 2.3). Такий підхід дозволяє деталізувати архітектурні
межі настільного додатка, чітко розмежувати права користувача та визначити
послідовність виконання ключових операцій аналізу об'єктів [16]
Рисунок 2.2 – Діаграма прецедентів для системи «AI Landscape Segmenter»
Опис діаграми прецедентів:
Ця діаграма Use Case ілюструє повний набір функціональних можливостей,
які надає десктопний додаток «AI Landscape Segmenter» для проведення
автоматизованої семантичної сегментації відеопотоку. Нижче наведено детальний
опис задіяних акторів та прецедентів.
Актори:
‒ оператор (Користувач системи): ключовий суб'єкт взаємодії, який
безпосередньо керує настільним додатком через інтерфейс
CustomTkinter, ініціює обробку кадрів та аналізує готові маски
сегментації.
Прецеденти:
1 Обрати джерело даних:
‒ оператор отримує можливість визначити тип вхідного медіапотоку
для аналізу, викликаючи діалогове вікно провідника або вказуючи
індекс камери.
2 Завантажити локальне відео:
‒ розширення базового сценарію вибору, що забезпечує зчитування
файлів форматів .mp4 чи .avi з диска комп'ютера.
3 Підключити веб-камеру:
29
ЧДТУ262405 002 ПЗ
‒ альтернативний варіант вибору джерела, який активує захоплення
кадрів у реальному часі через OpenCV.
4 Запустити аналіз ландшафту:
‒ основна функція системи, яка активує циклічний конвеєр
препроцесингу та циклічне зчитування матриць пікселів.
5 Налаштувати режим якості (HQ):
‒ керування додатковими параметрами постпроцесингу з метою
покращення контурів об'єктів.
6 Застосувати морфологічну фільтрацію:
‒ прецедент, що автоматично розширює (extend) режим HQ, виконуючи
математичне очищення семантичної маски від дрібних visual-шумів.
7 Візуалізувати результати:
‒ фінальний етап взаємодії, під час якого додаток виводить на екран
користувача суміщене зображення та графічну легенду класів
ландшафту.
2.3. Проектування логічної структури програмного комплексу
Побудова логічної архітектури розроблюваного програмного забезпечення
дозволяє сформувати чітке уявлення про його внутрішню структуру,
взаємозв'язки між окремими модулями та принципи циркуляції інформаційних
потоків. Логічне проектування забезпечує декомпозицію системи на автономні
компоненти, що спрощує подальшу програмну реалізацію та налагодження
інференсу штучного інтелекту [17].
2.3.1. Діаграми класів
Основою об'єктно-орієнтованого проектування настільного додатка «AI
Landscape Segmenter» є діаграми класів, які описують статичну структуру
системи, атрибутивний склад сутностей та методи їхньої взаємодії. Це дає змогу
детально регламентувати процеси обробки матриць пікселів та виклику функцій
глибокої нейромережі [18].
30
ЧДТУ262405 002 ПЗ
На основі первинного аналізу функціональних вимог та визначеного
конвеєра обробки даних було розроблено концептуальний каркас системи. Його
відображає початкова діаграма класів, наведена на (рис. 2.3).
Рисунок 2.3 - Початкова діаграма класів
Для детального розуміння базової структури нижче наведено специфікацію
компонентів, що увійшли до початкової моделі:
‒ User (Користувач): клас для представлення оператора системи та
обробки його дій у вікні програми.
‒ AppGUI (Графічний інтерфейс): керуючий візуальний шар, побудований
на базі бібліотеки CustomTkinter.
‒ VideoCapture (Відеопотік): об'єктний модуль, відповідальний за
ініціалізацію та покрокове декодування кадрів за допомогою OpenCV.
‒ ImageProcessor (Процесор зображень): клас препроцесингу, який готує
вхідні матриці до формату тензорів PyTorch.
‒ SegFormerModel (Модель сегментації): обчислювальний інструмент
штучного інтелекту для виконання прямого проходу (інференсу).
‒ SegmentationMask (Семантична маска): клас обробки вихідних логітів та
виконання морфологічної фільтрації в режимі HQ.
‒ LegendBlending (Легенда та Візуалізація): модуль змішування шарів
зображення та побудови графічного оверлею класів ландшафту.
31
ЧДТУ262405 002 ПЗ
З метою деталізації логіки та забезпечення цілісності конвеєра, початкову
схему було розширено внутрішніми параметрами, типами даних та
функціональними методами. Повну діаграму класів програмного комплексу
представлено на (рис.2.4).
.Рисунок 2.4 – Повна діаграма класів
Опис повної діаграми класів:
1 Користувач (User):
‒ атрибути: відсутні (виконує роль чистого ініціатора зовнішніх подій у
десктопній програмі).
‒ Методи: choose_source() — викликає вікно вибору медіаданих;
set_hq_mode() — змінює стан прапорця фільтрації; view_result() —
відображає підсумкове вікно аналізу.
2 Графічний інтерфейс (AppGUI):
‒ атрибути: window (об'єкт CustomTkinter); source_path (рядок шляху до
файлу); hq_mode (логічний прапорець активації HQ-фільтрації).
32
ЧДТУ262405 002 ПЗ
‒ методи: init_ui() — збірка візуальних компонентів вікна;
update_display_frame() — циклічне оновлення картинки на екрані.
3 Відеопотік / Кадр (VideoCapture):
‒ атрибути: source_type (ідентифікатор: файл або веб-камера); resolution
(ширина та висота кадру); matrix_data (сирий масив пікселів NumPy).
‒ методи: read_frame() — зчитування наступної матриці; is_opened() —
перевірка активності дескриптора потоку.
4 Процесор зображень (ImageProcessor):
‒ атрибути: target_size (цільова роздільна здатність моделі, наприклад,
512x712).
‒ методи: transform_bgr_to_rgb() — конвертація колірних каналів;
convert_to_tensor() — перетворення масиву у тензор PyTorch.
5 Модель сегментації (SegFormerModel):
‒ атрибути: architecture (тип енкодера, наприклад, mit-b0); device
(обчислювальний пристрій CPU або CUDA); weights_path (локальний
шлях до файлу ваг).
‒ методи: load_weights() — завантаження локальних ваг нейромережі;
execute_inference() — запуск математичного розрахунку класів
пікселів.
6 Семантична маска (SegmentationMask):
‒ атрибути: class_matrix (двовимірний масив передбачених індексів);
quality_mode (поточний текстовий режим обробки).
‒ методи: apply_morphology_filter() — виконання операцій ерозії та
дилатації для видалення візуального шуму в режимі HQ.
7 Легенда та Візуалізація (LegendBlending):
‒ атрибути: class_labels (список назв об'єктів); color_palette (вектори
RGB кольорів для кожного класу ландшафту).
‒ методи: alpha_blending() — накладання маски на кадр із заданою
пярозорістю; draw_legend_overlay() — малювання графічної плашки
легенди
33
ЧДТУ262405 002 ПЗ
2.3.2. Діаграма пакетів
Для високорівневого структурування вихідного коду, спрощення супроводу
додатка та розподілу логічних шарів системи було виконано пакетне
проєктування. Результати організації модулів програми представлено у вигляді
діаграми пакетів на (рис.2.5). Вона відображає модульну архітектуру, де
користувач взаємодіє із системою через ізольовані пакети конфігурації,
інтерфейсу, ядра обробки, ШІ-аналізу та виведення даних.
Опис діаграми пакетів:
1 Конфігурація системи (Configuration): зберігає глобальні змінні,
локальні шляхи до файлу ваг SegFormer, налаштування розмірів кадрів
та колірну палітру для легенди. Передає параметри до пакетів
інтерфейсу та обробки кадрів.
2 Графічний інтерфейс (UI Layer): забезпечує побудову віконної форми
CustomTkinter, перехоплює натискання кнопок користувачем та ініціює
життєвий цикл роботи з відеопотоком.
3 Вхідна обробка даних (Core Video IO): містить модулі OpenCV для
захоплення кадрів з веб-камери або читання відеофайлів, а також
виконує базові матричні операції препроцесингу зображень за
допомогою NumPy.
4 Нейромережевий інференс (AI Inference Engine): пакет, що містить
логіку роботи з PyTorch та архітектурою SegFormer. Він імпортує
підготовлені тензори з вхідного конвеєра, виконує обчислення та
повертає матрицю логітів.
5 Постпроцесинг та Візуалізація (Post-Processing & Blending): відповідає
за фільтрацію шумів маски та її фінальне накладання (альфа-
блендування) на оригінальні кадри, після чого передає готове
зображення назад у пакет інтерфейсу для відображення.
34
ЧДТУ262405 002 ПЗ
Рисунок 2.5 – Діаграма пакетів
2.4. Архітектурне проектування
Програмне забезпечення системи інтелектуального аналізу ландшафтних
зображень «AI Landscape Segmenter» побудоване за модульно-компонентним
принципом. Розділення загального конвеєра обробки на ізольовані функціональні
модулі забезпечує високий рівень автономності компонентів, спрощує процедуру
розширення набору класів сегментації та оптимізує використання апаратних
ресурсів під час інференсу глибоких нейромереж.
Основними архітектурними модулями розроблюваного десктопного додатка є:
‒ модуль високорівневого графічного інтерфейсу: відповідає за
рендеринг віконних форм, захоплення подій миші/клавіатури та
відображення підсумкового відеопотоку з накладеною кольоровою
маскою в реальному часі.
‒ модуль препроцесингу та декодування відео: забезпечує стабільну
ініціалізацію медіа-джерел, декомпозицію відеофайлів або потоку з веб-
камери на окремі матриці пікселів за допомогою OpenCV, а також
трансформацію колірних просторів.
35
ЧДТУ262405 002 ПЗ
‒ нейромережевий обчислювальний модуль: керує життєвим циклом
моделі SegFormer у середовищі PyTorch. Він відповідає за завантаження
локальних ваг, виділення ознак та розрахунок тензорів ймовірностей для
кожного пікселя зображення.
‒ модуль постпроцесингу та фільтрації: виконує математичні операції
над отриманими картами передбачень, реалізує алгоритми
морфологічної обробки в HQ-режимі та здійснює альфа-блендування
для візуального поєднання маски з вихідним кадром.
2.4.1. Діаграма компонентів
Результати деталізації внутрішньої структури програмного комплексу та
визначення інтерфейсів взаємодії між його фізичними кодовими структурами
подано у вигляді діаграми компонентів на (рис.2.6.) Ця модель ілюструє, як
програмні блоки супроводжують трансформацію даних від моменту дії
користувача до виведення сегментованого кадру.
Опис діаграми компонентів:
1 Оператор (User/Operator):
‒ зовнішній суб'єкт, який через графічні елементи керування ініціює
запуск аналізу та змінює режими фільтрації.
2 Панель керування GUI (Component GUI):
‒ головний інтерфейсний компонент, що зв'язує користувача з ядром
програми та відображає кінцевий результат візуалізації.
3 Модуль відеопотоку Video IO (Component Video IO):
‒ дескриптор, що безпосередньо взаємодіє з фізичними пристроями
(камерами) або файловою системою для отримання сирих кадрів.
4 Процесор кадрів Image Processor (Component Image Processor):
‒ компонент трансформації даних, який готує нормалізовані числові
масиви для ШІ.
5 Обчислювач SegFormer Engine (Component AI Engine):
‒ серце системи, яке інкапсулює логіку PyTorch та взаємодіє з
локальним сховищем ваг нейромережі.
36
ЧДТУ262405 002 ПЗ
6 Візуалізатор результатів Blending Engine (Component Blending Engine):
‒ компонент, який на основі отриманої карти класів формує підсумкове
зображення з легендою ландшафту.
Рисунок 2.6- Діаграма компонентів
2.4.2. Розгортання програмної системи на апаратних засобах. Діаграма
розгортання
Оскільки розроблювана система «AI Landscape Segmenter» є локальним
настільним додатком (Desktop Application) з інтегрованими алгоритмами
37
ЧДТУ262405 002 ПЗ
штучного інтелекту, її розгортання здійснюється безпосередньо на робочій станції
користувача (або оператора комп'ютерного зору).
Для забезпечення коректного функціонування додатка та виконання
інференсу моделі SegFormer у реальному часі, цільова апаратна платформа
(ПК/Ноутбук) повинна підтримувати архітектуру x86-64 та бути оснащена
операційною системою Windows 10/11 або дистрибутивами Linux (наприклад,
Ubuntu). На комп'ютері користувача має бути розгорнуте інтерпретоване
середовище Python, а також встановлені базові бінарні бібліотеки обчислень
(PyTorch, OpenCV, NumPy та CustomTkinter). Для забезпечення максимальної
швидкодії (високої частоти кадрів FPS) архітектура передбачає використання
графічного процесора з підтримкою технології CUDA, проте за його відсутності
обчислення автоматично перенаправляються на центральний процесор (CPU).
Схема фізичного розміщення програмних компонентів на апаратних вузлах
комп'ютера відображена на діаграмі розгортання (рис. 2.7).
Рисунок 2.7 - Діаграма розгортання
38
ЧДТУ262405 002 ПЗ
Опис діаграми розгортання:
1 Вузол Робоча станція (Node: User Workstation):
‒ представляє собою персональний комп'ютер або ноутбук, на якому
виконується додаток. Всередині вузла виділено середовище
виконання Python Runtime Environment.
2 Артефакт GUI & Core Execution:
‒ виконуваний програмний пакет десктоп-додатка, який містить
інтерфейсні форми CustomTkinter, логіку керування та модулі
обробки OpenCV.
3 Артефакт PyTorch Inference Engine:
‒ ізольована бібліотека виконання нейромережевих обчислень, що
ініціює архітектуру SegFormer.
4 Вузол Графічний процесор (Node: GPU c підтримкою CUDA):
‒ апаратний прискорювач, на який завантажується тензорна модель для
швидкого паралельного прорахунку семантичних масок.
5 Вузол Локальний накопичувач (Node: Local Storage):
‒ фізичний жорсткий диск або SSD, де розгорнуто файлову структуру
додатка, включаючи підкаталог із попередньо навченими вагами
моделі SegFormer.
2.5. Моделювання поведінки системи
Для дослідження динамічних аспектів функціонування настільного додатка,
визначення логіки переключення станів та моделювання взаємодії між об'єктами
у часі було проведено поведінкове проектування. Воно дозволяє деталізувати
алгоритм роботи програми від моменту запуску інтерфейсу користувачем до
безперервного виведення оброблених штучним інтелектом кадрів ландшафту.
39
ЧДТУ262405 002 ПЗ
2.5.1. Діаграма діяльності
Динаміка розгалуження обчислювальних процесів та керування потоками
даних відображена на діаграмі діяльності (рис.2.8). Ця модель ілюструє
послідовність кроків, які виконує програма під час налаштування та запуску
конвеєра семантичної сегментації медіапотоку.
Опис діаграми діяльності:
1 Етап налаштування та вибору джерела: процес починається з
ініціалізації головного вікна програми. Додаток переходить у стан
очікування дій користувача, який має обрати джерело даних. Система
аналізує стан перемикача: якщо обрано «Відео файл», активується
провідник для вибору локального файлу (стрілка «Відеофайл»); якщо
обрано «Веб-камера», система автоматично призначає індекс пристрою
0.
2 Етап ініціалізації ШІ-конвеєра: після натискання кнопки
«ЗАПУСТИТИ» програма виконує завантаження ваг глибокої моделі
SegFormer на доступний обчислювальний пристрій (CUDA або CPU) та
відкриває дескриптор відеозахвату cv2.VideoCapture.
3 Цикл обробки та фільтрації кадрів: усередині циклу while відбувається
безперервне зчитування матриць пікселів. Програма трансформує кожен
кадр у тензор і передає його нейромережі. Далі система перевіряє стан
прапорця «Висока якість (HQ)»: якщо він активований (стрілка «Так»),
маска передбачень проходить додаткове математичне очищення через
морфологічний фільтр cv2.morphologyEx; якщо прапорець вимкнено
(стрілка «Ні»), використовується базовий результат інференсу. Цикл
триває до завершення кадрів або до перехоплення події натискання
клавіші «Q».
40
ЧДТУ262405 002 ПЗ
‒
Рисунок 2.8 – Діагарма діяльності
2.5.2. Діаграма послідовності
Взаємодія між архітектурними компонентами системи та часова
послідовність обміну повідомленнями (виклику методів) під час виконання
сегментації представлена на діаграмі послідовності (рис. 2.9).
41
ЧДТУ262405 002 ПЗ
Рисунок 2.9 - Діаграма послідовності
Опис діаграми послідовності:
1 Учасники взаємодії:
‒ користувач (Оператор) — ініціатор процесів;
‒ додаток [SegmentationApp] — головний об'єкт керування та інтерфейсу;
‒ відеопотік [cv2.VideoCapture] — модуль отримання медіа-кадрів;
‒ ШІ-Препроцесор [SegformerProcessor] — модуль трансформації
зображень у тензори;
‒ нейромережа [SegformerModel] — обчислювальне ядро глибокого
навчання.
2 Послідовність дій:
‒ оператор надсилає керуючу команду запуску. Додаток звертається до
нейромережі для ініціалізації навчених ваг і відкриває потік захвату
42
ЧДТУ262405 002 ПЗ
кадрів. У межах циклічного блоку об'єкт cv2.VideoCapture повертає сиру
матрицю пікселів у додаток, який делегує її препроцесору для
нормалізації. Сформовані тензори передаються методу моделі для
розрахунку логітів. Отримані результати додаток накладає поверх
відеокадру, малює легенду і викликає вікно відображення результату.
Процес завершується, коли користувач посилає асинхронний сигнал
натискання клавіші виходу.
2.5.3 Діаграма комунікації
Для наочного представлення структурних зв'язків між об'єктами, що
обмінюються повідомленнями, було розроблено діаграму комунікації (рис. 2.10).
Вона фокусується на архітектурних взаємозв'язках компонентів, відображаючи
нумерацію та напрямок передачі даних у конвеєрі Python-програми.
Рисунок 2.10.- Діаграма комунікації
Опис діаграми комунікації:
1 Дії оператора (користувача): Усе починається з користувача, який сідає
за комп'ютер і вказує у вікні програми, як саме працювати додатку. Він
робить три речі:
‒ обирає, що саме запускати (аналіз ландшафту);
‒ вмикає або вимикає прапорець «HQ» (якщо треба додатково згладити й
очистити картинку від шуму);
43
ЧДТУ262405 002 ПЗ
‒ вибирає, звідки брати відео (завантажити готовий файл чи увімкнути
веб-камеру прямо зараз).
2 Графічний інтерфейс (SegmentationApp): Це головне вікно програми, яке
користувач бачить на екрані. Воно працює як головний «диспетчер»:
приймає кліки та налаштування, передає кадри далі на обробку
всередину коду і відповідає за те, щоб фінальний результат вивівся на
екран у зручному вигляді.
3 Програмний конвеєр (ImageProcessor): Це внутрішня логіка на Python,
яка виконує всю чорнову роботу. Цей модуль бере сирий кадр з
інтерфейсу, перетворює його на зручний для нейромережі формат (набір
чисел-тензорів) і відправляє самій моделі. Коли модель повертає
результат, цей же конвеєр розфарбовує розпізнані зони у потрібні
кольори, малює зверху плашку з легендою (що означає кожен колір) і
віддає готовий кадр назад в інтерфейс.
4 Нейромережа (SegFormer Model): Це «мізки» нашого додатка — сама
навчена модель SegFormer. Вона не знає нічого про кнопки чи
інтерфейси, а просто отримує числові матриці від конвеєра, миттєво
прораховує кожен піксель і повертає маску, де чітко розписано: де на
відео ліс, де дорога, а де вода.
5 Візуалізація результату (cv2.imshow): Це окреме акуратне віконце, яке
відкривається автоматично. Воно просто бере вже повністю готове,
розфарбоване нейромережею відео з легендою і показує його
користувачеві в реальному часі без жодних затримок.
2.5.4 Діаграма скінченного автомату
Логіка зміни внутрішніх станів десктопного додатка «AI Landscape
Segmenter» у відповідь на зовнішні події та тригери коду представлена на діаграмі
скінченного автомату (рис. 2.11).
44
ЧДТУ262405 002 ПЗ
Рисунок 2.11 - Діаграмі скінченного автомату
Опис діаграми скінченного автомату:
1 Стан ініціалізації та очікування:
після запуску файлу програми скрипт переходить у стан
«Ініціалізація», де створюються об'єкти CustomTkinter. Після побудови
форми додаток переходить у стабільний пасивний стан «Очікування
дії», очікуючи вибору джерела та натискання кнопки старту.
2 Стан завантаження ресурсів:
подія натискання кнопки «ЗАПУСТИТИ» переводить автомат у стан
«Завантаження ресурсів». Тут відбувається послідовне викликанння
45
ЧДТУ262405 002 ПЗ
методів завантаження ваг нейромережі та підключення до камери чи
файлу.
3 Стан активного обчислювального конвеєра:
у разі успішного старту програма переходить у складний стан «Конвеєр
обробки», який працює як циклічний автомат. Він послідовно змінює
внутрішні мікростани: Зчитування кадру \rightarrow Препроцесинг
\rightarrow Інференс ШІ \rightarrow Постпроцесинг (морфологія)
\rightarrow Візуалізація.
4 Стан завершення роботи:
подія завершення кадрів у потоці або перехоплення символу 'q'
переводить систему у стан «Завершення роботи». На цьому етапі
вивільняються апаратні дескриптори (cap.release), закриваються
графічні вікна OpenCV, а додаток повертається у вихідний стан
«Очікування дії».
46
ЧДТУ262405 002 ПЗ
ВИСНОВОК ДО ДРУГОГО РОЗДІЛУ
У другому розділі роботи було повністю створено технічний проєкт
десктопного додатка для семантичної сегментації ландшафту на основі сучасної
нейромережі SegFormer. Весь процес моделювання та проектування системи було
виконано за допомогою міжнародного стандарту UML-діаграм, що дозволило
детально розібрати внутрішній устрій програми ще до початку написання
основного коду.
Під час виконання розділу було отримано такі важливі результати:
1 Модульна структура додатка: Завдяки побудові діаграми пакетів
вдалося чітко розділити програму на незалежні блоки. Графічну
частину, яка відповідає за вікна та кнопки (CustomTkinter), було
відокремлено від внутрішньої математичної логіки, що відповідає за
роботу з ШІ та обробку картинок через OpenCV і PyTorch. Це дозволить
у майбутньому легко змінювати дизайн додатка або замінювати модель
штучного інтелекту без переписування всієї системи з нуля.
2 Об'єктна модель системи: Діаграма класів визначила точний перелік усіх
компонентів програми, їхні внутрішні змінні, методи та функції. Було
зафіксовано, як саме головне вікно додатка викликає конвеєр
препроцесингу зображень, яким чином кадри готуються для
нейромережі та як керуються налаштування високої якості (HQ).
3 Аналіз поведінки та логіки роботи в реальному часі:
‒ Діаграма діяльності покроково розписала весь алгоритм роботи
програми від моменту кліку на ярлик додатка до запуску
нескінченного циклу обробки відео. Вона наочно показала, як система
розгалужує процеси залежно від того, що вибрав користувач: читати
готовий відеофайл чи підключатися до веб-камери в реальному часі.
‒ Діаграма послідовності відобразила хронологію виклику функцій у
часі. Вона чітко зафіксувала шлях проходження даних: користувач
натискає кнопку «ЗАПУСТИТИ», інтерфейс перенаправляє кадр на
конвеєр, той робить із нього цифрові тензори й віддає моделі
47
ЧДТУ262405 002 ПЗ
SegFormer, яка своєю чергою повертає маску назад для
розфарбовування та виведення на екран.
‒ Діаграма комунікації зорієнтувала архітектуру програми у просторі,
показавши, як взаємодіють між собою окреме вікно відображення
відеопотоку (cv2.imshow), ядро штучного інтелекту та графічна
оболонка, забезпечуючи швидкий обмін даними без затримок.
‒ Діаграма скінченного автомату підтвердила стабільність і надійність
додатка. Вона продемонструвала всі стани, у яких може перебувати
програма (очікування налаштувань, завантаження важких ваг моделі,
активний конвеєр обробки та закриття ресурсів), а також описала
логіку паралельного розпізнавання різних типів ландшафту (лісів,
доріг та водойм).
Підводячи підсумок, створений комплекс UML-моделей повністю описує
архітектуру додатка «AI Landscape Segmenter». Проєкт відповідає всім
поставленим вимогам і є готовим, детально продуманим фундаментом для
написання реального програмного коду на мові Python у наступному розділі
диплома.
48
ЧДТУ262405 002 ПЗ
РОЗДІЛ 3 РОЗРОБКА ТА ТЕСТУВАННЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
3.1. Розробка програмного комплексу
3.1.1. Обґрунтування вибору засобів реалізації
Вибір програмних та апаратних засобів для розв’язання поставлених задач
проводиться на підставі постановки задачі, розроблених структури та алгоритму
функціонування розроблюваного об’єкту.
Для створення десктопного додатка штучного інтелекту, який виконує
семантичну сегментацію ландшафту, було обрано стек технологій, що забезпечує
максимальну швидкість обробки кадрів, стабільність роботи нейромережі та
зручність для користувача. Процес розробки базується на таких інструментах і
бібліотеках:
‒ Мова програмування Python. Вона є головним стандартом у сфері
штучного інтелекту та комп'ютерного зору [19]. Її синтаксис дуже
простий і зрозумілий, що дозволяє швидко писати код і легко
інтегрувати між собою різні важкі математичні бібліотеки для обробки
зображень.
‒ Бібліотека глибокого навчання PyTorch. Використовується як
технічна база для завантаження моделі SegFormer та проведення її
інференсу (розрахунків) [20]. PyTorch дозволяє автоматично
перенаправляти обчислення на графічний процесор (CUDA), якщо він є
на комп'ютері, що дає величезний приріст до швидкості обробки кадрів.
‒ Бібліотека комп'ютерного зору OpenCV (cv2). Цей інструмент
відповідає за весь конвеєр роботи з відеопотоком [21]. OpenCV
підключається до веб-камери або відкриває відеофайл, розбиває його на
окремі кадри, змінює їхній розмір під вимоги ШІ, накладає кольорову
маску поверх реального відео з потрібною прозорістю (cv2.addWeighted)
і показує результат у реальному часі.
‒ Фреймворк CustomTkinter. Використовується для створення
сучасного та красивого графічного інтерфейсу користувача (GUI) [22].
49
ЧДТУ262405 002 ПЗ
На відміну від старого стандартного Tkinter, ця бібліотека дозволяє
швидко зробити кнопки, чекбокси та перемикачі в акуратному
сучасному стилі, який автоматично підлаштовується під темну або
світлу тему операційної системи.
‒ Редактор коду Visual Studio Code (VS Code). Популярне і дуже легке
середовище розробки [23]. Завдяки зручним плагінам для Python та
вбудованому відладчику (дебагеру), у ньому було дуже зручно писати
код, крок за кроком перевіряючи, як програма обробляє медіапотік.
‒ Система контролю версій GitHub. Використовувалася для збереження
історії розробки проєкту [24]. Вона дозволяла фіксувати стабільні версії
коду, експериментувати з налаштуваннями моделі та не боятися
випадково зламати робочий алгоритм додатка.
Завдяки поєднанню Python, PyTorch, OpenCV та CustomTkinter вдалося
створити швидку та надійну програму з високим показником FPS (кадрів за
секунду) та інтуїтивно зрозумілим управлінням для оператора.
3.1.2 Опис структурної та функціональної схем
За допомогою структурної схеми (рис.3.1) були подані результати
проектування структури системи з зображенням основних компонентів
розробленої системи, що дозволяє визначити основні модулі, підсистеми та
способи взаємодії між ними. Функціональна схема (рис. 3.2) забезпечує чітке
уявлення про те, які функції виконують окремі модулі системи, які вхідні дані для
цього потребують тощо
.
Рисунок 3.1 – Структурна схема
50
ЧДТУ262405 002 ПЗ
Рисунок 3.2- Функціональна схема
Опис структурної схеми:
1 Головний додаток (SegmentationApp):
‒ це центральна частина програми, яка зв'язує всі інші модулі між
собою, керує потоками даних та запускає чи зупиняє обробку відео.
1 Модуль обробки відеопотоку (OpenCV):
‒ відповідає за відкриття відеофайлів або підключення до веб-камери.
Його завдання — по черзі зчитувати кадри й передавати їх далі в
систему, а в кінці вивести готове розфарбоване відео на екран.
2 Модуль препроцесингу & тензорів:
‒ займається попередньою підготовкою картинки. Він бере звичайний
кадр, змінює його колірні канали та масштабує під чіткі розміри, які
розуміє штучний інтелект.
51
ЧДТУ262405 002 ПЗ
3 Нейромережеве ядро (SegFormer / PyTorch):
‒ головні «мізки» програми. Сюди завантажуються навчені ваги моделі
SegFormer, які аналізують отримані числові дані й визначають, які
об'єкти ландшафту є на кадрі.
4 Модуль графічного інтерфейсу (GUI):
‒ візуальна панель з кнопками, повзунками та перемикачами, через яку
користувач керує всіма налаштуваннями додатка.
Опис функціональної схеми:
1 Панель управління:
Приймає кліки від користувача (наприклад, вибір відеофайлу чи
активацію режиму високої якості HQ) та дає команду іншим модулям
на старт.
2 Зчитування кадру (VideoCapture):
Безперервно «витягує» з відео або камери кадри у вигляді матриць
пікселів і відправляє їх далі по ланцюжку.
3 Підготовка тензора (Preprocess):
Конвертує кольори кадру у потрібний формат і перетворює звичайне
зображення на цифровий набір даних (тензор).
4 ШІ-Інференс (SegFormer Model):
Прораховує отриманий тензор і створює сиру чорно-білу маску, де
помічено межі знайдених об'єктів.
5 Постпроцесинг (Морфологія HQ):
Якщо увімкнено режим високої якості, цей блок за допомогою
спеціальних математичних фільтрів OpenCV очищає маску від
випадкових дрібних перешкод та візуального шуму.
6 Візуалізація результату:
Накладає кольори на розпізнані зони ландшафту, змішує цю колірну
маску з оригінальним кадром, малює збоку плашку з легендою класів
та миттєво оновлює картинку на екрані користувача.
52
ЧДТУ262405 002 ПЗ
3.1.3. Опис логічної схеми системи
Логічна схема роботи системи описує чітку послідовність дій та кроків, які
робить додаток від моменту його увімкнення до повного завершення роботи
користувачем.
Алгоритм роботи системи складається з таких кроків:
2 Запуск програми:
‒ користувач запускає додаток. Система створює вікно CustomTkinter і
автоматично перевіряє, чи є на комп'ютері відеокарта з підтримкою
CUDA для швидкої роботи ШІ.
3 Відображення меню:
‒ програма відкриває перед користувачем зручну графічну панель
управління і переходить у стан очікування дій оператора.
4 Вибір налаштувань та старт:
‒ вибір джерела відео: Користувач вказує, звідки брати картинку. Якщо це
«Відео файл» — він через провідник вибирає файл на жорсткому диску;
якщо «Веб-камера» — додаток готується підключитися до камери
комп'ютера.
‒ режим якості: За бажанням користувач може натиснути чекбокс «HQ»
(Висока якість) для увімкнення додаткових фільтрів згладжування.
‒ запуск процесу: Користувач тисне велику кнопку «ЗАПУСТИТИ».
Програма завантажує ваги моделі SegFormer в оперативну пам'ять і
відкриває відеопотік.
5 Робота конвеєра обробки (Цикл):
‒ програма запускає швидкий нескінченний цикл: зчитує поточний кадр
\rightarrow віддає його нейромережі \rightarrow модель розпізнає зони
ландшафту.
‒ якщо прапорець HQ активний, додаток очищає межі об'єктів через
функцію cv2.morphologyEx.
53
ЧДТУ262405 002 ПЗ
‒ система розфарбовує класи (наприклад: ліс — зеленим, вода — синім,
дороги — сірим), додає збоку колірну легенду з назвами й виводить
готовий кадр на екран через вікно cv2.imshow.
6 Завершення роботи:
‒ цикл працює автоматично кадр за кадром, поки відео не закінчиться або
поки оператор не натисне на клавіатурі клавішу «Q».
‒ коли роботу зупинено, програма закриває доступ до камери (cap.release),
прибирає графічні вікна OpenCV і знову повертає користувача в головне
меню, де можна змінити налаштування або просто закрити додаток
хрестиком.
3.1.4. Розробка бази даних
При проектуванні інформаційних систем обробки відеопотоків у реальному
часі критично важливим фактором є швидкість доступу до даних (I/O latency).
Традиційні реляційні СУБД (як-от SQLite, MySQL чи PostgreSQL) під час
виконання транзакцій створюють додаткові затримки через операції дискового
зчитування та парсингу SQL-запитів. Для архітектури штучного інтелекту, яка має
забезпечувати стабільну частоту кадрів понад 30 FPS, такі затримки є
недопустимими.
З огляду на це, у даному проекті класичну дискову базу даних було замінено
на In-Memory локальне сховище статичних констант та сховище конфігураційних
бінарних даних моделей штучного інтелекту. Такий підхід повністю відповідає
парадигмі NoSQL сховищ типу «ключ-значення» (Key-Value) і забезпечує миттєву
вибірку інформації з оперативної пам’яті (ОЗУ) обчислювального пристрою.
Функціональну схему взаємодії конвеєра обробки даних (data pipeline)
додатка з компонентами локального сховища зображено на (рис.3.3).
Локальне сховище проекту організовано на основі дворівневої структури
збереження інформації:
1 Довідник цільових класів ландшафту (словник
TARGET_CLASSES):
‒ даний компонент виконує роль статичної таблиці категорій об'єктів.
54
ЧДТУ262405 002 ПЗ
Унікальний числовий ідентифікатор сегментованого пікселя (class_id)
виступає аналогом первинного ключа (Primary Key) і чітко відповідає
офіційній специфікації розмітки глобального датасету ADE20K.
Кожному ключу відповідає кортеж із двох значень: текстова мітка
об'єкта ландшафту англійською мовою (label) та вектор колірного
зафарбовування (color у форматі BGR). На рівні мови програмування
Python ці поля типізуються як int для ідентифікатора, str для назви
об'єкта та масив цілих чисел list (int, 3) для збереження колірної маски.
2 Локальний файловий кеш архітектури (Hugging Face Cache):
‒ виконує функцію бінарного NoSQL-сховища великих об'єктів
(BLOB), де у системних директоріях жорсткого диска зберігаються
попередньо навчені вагові коефіцієнти та конфігураційні файли
трансформера SegFormer.
Зчитування та ініціалізація ваг здійснюється за допомогою методів
.from_pretrained(), що повністю регламентовано офіційною документацією
розробників бібліотеки Hugging Face Transformers. Пряме вилучення параметрів
моделі та словника категорій з оперативної пам'яті дозволяє уникнути очікування
дискового введення-виведення (I/O overhead).
Рисунок 3.3 – Функціональна схема конвеєра обробки відеопотоку та
взаємодії зі сховищем даних
55
ЧДТУ262405 002 ПЗ
Програмну реалізацію ініціалізації структури класів ландшафту та
динамічного завантаження ядра штучного інтелекту з локального кешу наведено
на (рис.3.5).та (рис.3.6)
Рисунок 3.5 – Ініціалізація ядра штучного інтелекту
Рисунок 3.6 – Константи цільових класів ландшафту
Під час проведення комплексного тестування підсистеми збереження та
зчитування даних було виконано перевірку швидкодії доступу додатка до
оперативної пам'яті ПК. Налагоджувальний моніторинг зафіксував успішний
виклик методу переведення нейромережі в режим інференсу model.eval(), а також
підтвердив повне завантаження всіх дванадцяти цільових категорій ландшафту.
Завдяки відмові від класичних баз даних на користь In-Memory архітектури,
час безпосереднього мапування (mapping) прогнозних ID-класів на відповідні
кольори BGR склав менше ніж 0.3 мс на один кадр відеопотоку. Це повністю
усуває обчислювальні затримки на етапі постобробки, забезпечує безперервне
56
ЧДТУ262405 002 ПЗ
функціонування методу draw_legend та дозволяє стабільно накладати шари масок
за допомогою бібліотеки комп'ютерного зору OpenCV.
3.1.5. Розробка інтерфейсу користувача
Графічний інтерфейс користувача (GUI) розробленого додатка є основним
інструментом взаємодії оператора з конвеєром семантичної сегментації
ландшафтних об'єктів у реальному часі. Програмна реалізація візуальних
компонентів виконана з використанням сучасної бібліотеки CustomTkinter, яка
забезпечує апаратне згладжування графічних елементів, повну адаптацію під
темні теми оформлення операційних систем та швидкий рендеринг віджетів без
додаткового навантаження на центральний процесор.
Для створення ефективного та інтуїтивно зрозумілого інтерфейсу було
враховано вимоги до ергономіки програмного забезпечення. Процес розробки
графічних елементів управління та їхньої програмної прив'язки до логіки додатка
(віджети радіокнопок, пов'язані перемикачі стану, світчі оптимізації та кнопка
запуску) представлено у вигляді фрагмента лістингу на (рис.3.7).
Рисунок 3.7 – Програмна реалізація конструктора інтерфейсу користувача
57
ЧДТУ262405 002 ПЗ
Головне вікно налаштувань, що створюється в результаті виконання даного
конструктора, представлено на (рис.3.8). Вікно має оптимізовані геометричні
розміри та фіксовану темну тему оформлення типу dark для мінімізації втоми очей
оператора під час тривалого моніторингу відеопотоків.
Рисунок 3.8 – Головне вікно налаштувань додатка «AI Landscape Segmenter»
Нижче наведено детальний опис призначення розроблених елементів інтерфейсу
користувача:
‒ панель вибору джерела відеопотоку: Складається з двох радіокнопок
(CTkRadioButton), які записують вибір у динамічну змінну
self.source_var. Користувач може перемикатися між обробкою сигналу з
локальної веб-камери (індекс 0) та зчитуванням заздалегідь записаного
відеофайлу.
‒ динамічна кнопка провідника («Вибрати файл»): Інтегрована з
методом автоматичного відстеження подій .trace_add(). У базовому стані
кнопка заблокована (state="disabled"), що унеможливлює помилки
виклику пустих шляхів. Вона активується лише тоді, коли оператор
перемикає радіокнопку в режим «Відео файл». Натискання на неї
58
ЧДТУ262405 002 ПЗ
викликає системний діалог filedialog.askopenfilename із жорстким медіа-
фільтром (.mp4, .avi, .mov).
‒ перемикач режимів якості та оптимізації («Висока якість (HQ)»):
Базується на інтерактивному світчі CTkSwitch. Його активація передає
логічне значення True у конвеєр обробки кадру, що сигналізує системі
про необхідність підвищення роздільної здатності вхідного тензора ШІ
до 768 \times 768$ пікселів та підключення фільтраційних
морфологічних операцій комп'ютерного зору OpenCV для усунення
імпульсних шумів на масці.
‒ кнопка «ЗАПУСТИТИ»: Центральний керівний елемент інтерфейсу,
виділений акцентним зеленим кольором. При її натисканні GUI-модуль
приховує поточне вікно конфігурацій за допомогою вбудованого методу
self.withdraw() та передає управління обчислювальному потоку
нейромережі SegFormer для відкриття динамічного вікна відеообробки
та побудови графічної легенди класів ландшафту.
3.1.6. Опис розробки програмних компонентів
У цьому розділі наведено детальний опис архітектурної побудови
розроблених програмних модулів, логічних блоків системи та інструментальних
засобів, за допомогою яких було реалізовано комплексний конвеєр комп'ютерного
зору. Повний лістинг програмного забезпечення представлено у додатку Б.
Архітектура додатка спроектована за об'єктно-орієнтованим принципом
(ООП) і зосереджена всередині головного класу системи — SegmentationApp,
який наслідує властивості базового класу віконного інтерфейсу customtkinter.CTk.
Структурно код розділений на наступні функціональні компоненти:
Блок ініціализации додатка (Конструктор __init__)
У цьому модулі виконується первинне налаштування робочого простору
програми. Тут імпортуються ключові бібліотеки обробки даних: cv2 (OpenCV) для
операцій над відеопотоком, torch для взаємодії з тензорами на низькому рівні та
бібліотека transformers від Hugging Face. За допомогою вбудованого методу
59
ЧДТУ262405 002 ПЗ
super().__init__() створюється каркас графічного вікна, визначається системна
тема оформлення додатка та виконується логічна перевірка доступності
апаратного прискорення CUDA. Якщо сумісний графічний процесор NVIDIA
знайдено, пристрій виконання self.device ініціалізується як cuda, в іншому випадку
система автоматично перемикається на центральний процесор cpu. Також у
конструкторі здійснюється декларація графічних віджетів та їхнє пакування на
панелі налаштувань.
Контролер вибору джерела даних (toggle_browse_button та browse_file)
Цей компонент виконує роль обробника подій (Event Handler), що
виникають при взаємодії користувача з елементами GUI. Модуль містить два
методи:
toggle_browse_button — реалізує логіку тригера, відстежуючи зміни стану
динамічної змінної self.source_var за допомогою системного монітора подій
.trace_add(). Якщо оператор обирає роботу з файлом, метод змінює конфігурацію
кнопки провідника, переводячи її у стан normal.
browse_file — відповідає за запуск системного діалогового вікна вибору
медіаресурсів. У методі прописано жорстку фільтрацію розширень файлів
(filetypes), що відсікає непідтримувані медіаформати, а отриманий абсолютний
шлях до файлу записується у змінну стану self.video_path.
Модуль формування графічної легенди (draw_legend)
Програмний компонент, призначений для динамічного графічного
відображення інформації поверх потокової матриці пікселів (кадру). Метод
інтегрований у головний обчислювальний цикл і приймає як аргумент поточний
кадр frame. На основі зчитування геометричних параметрів масиву
(frame.shape[1]) обчислюється динамічний зсув координат для відображення
легенди у правому верхньому кутку, що робить інтерфейс адаптивним до зміни
роздільної здатності відео. Принцип роботи модуля базується на ітераційному
переборі Key-Value пар глобального In-Memory сховища констант
60
ЧДТУ262405 002 ПЗ
TARGET_CLASSES. Для кожного класу за допомогою функції cv2.rectangle
малюється зафарбована плашка відповідного BGR-кольору, а методом cv2.putText
наноситься текстова назва класу ландшафту.
Обчислювальний модуль ШІ-інференсу (start_processing)
Є центральним ядром додатка, яке об'єднує завантаження трансформера,
зчитування потоку та попіксельну класифікацію ландшафту. Процес обробки
виконується за наступним алгоритмом:
1 Завантаження архітектури:
За допомогою методів .from_pretrained() бібліотеки Hugging Face
Transformers з локального дискового кешу вилучаються конфігурації
процесора SegformerImageProcessor та вагові коефіцієнти моделі
SegformerForSemanticSegmentation, які одразу делегуються на пристрій
self.device. Метод model.eval() переводить нейромережу в режим інференсу.
2 Ініціалізація захоплення відео:
Створюється керівний об'єкт cv2.VideoCapture(source). Якщо активовано
режим веб-камери, параметру source передається індекс 0, якщо обрано
роботу з файлом — передається рядок шляху self.video_path.
3 Пряме поширення (Inference Pipeline):
Зчитаний кадр конвертується в колірний простір RGB, після чого процесор
перетворює матрицю на нормований тривимірний тензор. Для запобігання
накопиченню градієнтів операції обчислень виконуються всередині
контекстного менеджера with torch.no_grad(). Нейромережа генерує логіти
передбачень, які за допомогою функції .argmax(dim=1) трансформуються у
двовимірну карту індексів класів.
Модуль постобробки та візуалізації результатів
Даний компонент відповідає за фільтрацію вихідних даних нейромережі та
фінальний рендеринг зображення для оператора системи. Якщо у змінній стану
self.quality_var встановлено значення True (активовано режим високої якості HQ),
61
ЧДТУ262405 002 ПЗ
до згенерованої карти класів застосовується морфологічний оператор відкриття
cv2.morphologyEx із прапорцем cv2.MORPH_OPEN на базі структурованого
одиничного ядра np.ones((3, 3)). Це дозволяє очистити сегментаційну маску від
дрібнодисперсних імпульсних шумів та стабілізувати контури об'єктів
ландшафту. Після цього згенерована маска перекладається у колірні коди BGR,
поєднується з оригінальним кадровим масивом через функцію cv2.addWeighted з
коефіцієнтом прозорості 40, доповнюється викликом методу
self.draw_legend(frame) та виводиться на екран у динамічному вікні cv2.imshow.
Обробка циклу завершується при зчитуванні коду клавіші «Q».
3.2. Тестування системи
У цьому розділі проведено комплексне тестування розробленого
програмного забезпечення з використанням різних рівнів та підходів до
верифікації коду. Результати проведених випробувань демонструють високу
стабільність архітектури, готовність додатка до впровадження, відповідність
вимогам надійності та коректність функціонування конвеєра семантичної
сегментації ландшафтних об'єктів у реальному часі.
3.2.1. Модальне тестування
Функціональне тестування було спрямоване на підтвердження
відповідності розробленого програмного забезпечення визначеним технічним
вимогам. У ході тестування було застосовано метод «чорної скриньки» для
перевірки реакції системи на дії користувача та коректності виконання алгоритмів
обробки даних. Модульне тестування розробленого додатка комп'ютерного зору
виконано з використанням сучасного фреймворку pytest та допоміжного модуля
unittest.mock, який дозволяє ізолювати окремі методи класу SegmentationApp від
фізичного обладнання (локальних відеофайлів та веб-камер) шляхом створення
віртуальних заглушок (mock-об'єктів).
62
ЧДТУ262405 002 ПЗ
На (рис.3.9) та (рис.3.10) наведено програмну реалізацію модульних тестів
для перевірки логіки ініціалізації елементів графічного інтерфейсу CustomTkinter
та обчислювальних засобів рендерингу легенди:
Рисунок 3.9 – Програмна реалізація тестів на ініціалізацію елементів інтерфейсу
користувача
Рисунок 3.10 – Програмна реалізація модульних тестів контролера кнопок та
методу draw_legend
63
ЧДТУ262405 002 ПЗ
Опис модульних тестів:
‒ test_interface_initialization: перевіряє базовий стан конфігурації додатка
при запуску (за замовчуванням обрано «веб-камера», режим HQ
вимкнено, а кнопка вибору файлу заблокована для запобігання
критичних помилок).
‒ test_toggle_browse_button: перевіряє роботу тригера, який повинен
миттєво активувати кнопку «Вибрати файл» у разі зміни прапорця
джерела на file.
‒ test_draw_legend: перевіряє логіку попіксельного нанесення колірних
маркерів класів на тестову нульову матрицю зображення (кадр) за
допомогою геометричних функцій cv2.rectangle та cv2.putText.
Таблиця 3.1
Зведена таблиця результатів виконання модульних тестів
Модуль Результат
test_interface_initialization Успішно
test_toggle_browse_button Успішно
test_draw_legend Успішно
3.2.2. Інтеграційне тестування
Інтеграційне тестування призначене для перевірки коректності спільної
взаємодії та обміну даними між різними ізольованими компонентами системи:
модулем інтерфейсу CustomTkinter, ядром ШІ-інференсу SegFormer та засобами
потокової обробки OpenCV.
Для реалізації інтеграційних випробувань застосовано середовище pytest із
підміною важких методів завантаження нейромережі з репозиторію Hugging Face
за допомогою об'єкта MagicMock. Програмну реалізацію розробленого
інтеграційного тесту для перевірки конвеєра запуску системи представлено на
(рис.3.11)
64
ЧДТУ262405 002 ПЗ
Рисунок 3.11 – Програмна реалізація інтеграційного тестування конвеєра
обробки кадру
Опис інтеграційних тестів:
‒ test_full_pipeline_execution: перевіряє повний ланцюжок передачі
сигналів керування від віконної форми додатка до математичного блоку
інференсу. Тест верифікує, що при ініціюванні команди «ЗАПУСТИТИ»
програма успішно викликає механізм захоплення кадру
cv2.VideoCapture із правильним параметром джерела (0 для веб-камери),
коректно приховує конфігураційне вікно налаштувань за допомогою
self.withdraw() та передає кадровий масив на вхід процесору моделі.
Ці випробування доводять, що зв'язки між модулем користувацького введення та
модулем обчислювального аналізу працюють злагоджено, дані не втрачаються, а
типи тензорів узгоджуються на всіх етапах трансформації.
Таблиця 3.2
Результати інтеграційного тестування
Модуль Результат
test_full_pipeline_execution Успішно
65
ЧДТУ262405 002 ПЗ
3.2.3. Системне тестування
Системне тестування передбачає оцінку розробленого програмного
комплексу «AI Landscape Segmenter» в цілому як єдиної завершеної системи,
перевіряючи її працездатність у реальних умовах експлуатації. Цей етап
тестування охоплює як функціональну коректність розпізнавання ландшафтних
зон, так і нефункціональні параметри системи: швидкодію (FPS), ефективність
використання апаратної пам'яті (VRAM) та відсутність витоків ресурсів процесу.
Для автоматизації перевірки системних лімітів та стабільності роботи
конвеєра було спроектовано тестову архітектуру за допомогою pytest, структура
якої представлена на (рис.3.12).
Рисунок 3.12 – Програмний код системного тестування блоку
морфологічної фільтрації
Опис системних тестів:
‒ test_system_high_quality_morphology: здійснює наскрізну перевірку
підсистеми фільтрації та постобробки результатів ШІ-сегментації. Тест
імітує виникнення дрібного імпульсного «шуму» на вихідній масці
нейромережі та підтверджує, що при активації прапорця High Quality
(HQ) вбудоване ядро cv2.morphologyEx успішно виконує операцію
математичного відкриття (cv2.MORPH_OPEN), повністю очищуючи
маску від похибок зйомки для видачі оператору стабілізованого
відеопотоку.
66
ЧДТУ262405 002 ПЗ
‒ Експериментальна оцінка продуктивності: ручне тестування на базі
цільового обчислювального пристрою (GPU NVIDIA з підтримкою
CUDA), під час якого вимірювався час обробки одного кадру.
Результати підтвердили стабільну частоту кадрів (>25 FPS) при
роздільній здатності 512 на 512 пікселів, що відповідає критерію роботи
системи в реальному часі.
Таблиця 3.3
Підсумкові результати проведення системних випробувань
Модуль Результат
test_system_high_quality_morphology Успішно
Тестування навантаження (CUDA) Стабільно (25- 30 FPS)
Тестування інтерфейсу користувача Відповідає ДСТУ ISO/IEC 25051
3.2.4. Приймальне тестування
Приймальне тестування перевіряє, наскільки розроблений програмний
комплекс «AI Landscape Segmenter» відповідає визначеним на етапі проектування
вимогам та чи готова система до реальної експлуатації кінцевим оператором.
Тести у цьому пункті включають верифікацію функціональності графічної
оболонки, стабільності обчислювального конвеєра, швидкодії та зручності
взаємодії користувача з елементами керування.
Приймальне тестування проведено у вигляді мануального (ручного)
тестування, яке повністю імітує типові сценарії експлуатації системи у реальних
умовах. Детальний опис ходу випробувань та їхніх кроків наведено у списках
нижче.
Сценарій 1. Сегментація відеопотоку з веб-камери в базовому режимі
Сценарій: Успішна ініціалізація системи, підключення до локального
пристрою захоплення та запуск попіксельної класифікації ландшафту в реальному
часі.
67
ЧДТУ262405 002 ПЗ
Кроки:
‒ запустіть додаток «AI Landscape Segmenter» шляхом виконання
головного скрипта програми;
‒ переконайтеся, що у вікні налаштувань за замовчуванням активовано
радіокнопку «Веб-камера»;
‒ перевірте, що прапорець «Висока якість (HQ)» перебуває у вимкненому
стані, а кнопка «Вибрати файл» є неактивною;
‒ натисніть головну кнопку «ЗАПУСТИТИ»;
‒ перевірте, що конфігураційне вікно автоматично приховалося, а на
екрані з'явилося вікно візуалізації відеопотоку з накладеною колірною
маскою та графічною легендою класів у верхньому правому кутку.
Очікуваний результат: Програма успішно зчитує кадри з індексом джерела
0, завантажує локальні ваги моделі SegFormer, виконує пряме поширення тензорів
та відображає сегментований ландшафт без критичних затримок.
Сценарій 2. Сегментація локального медіафайлу з активацією режиму
високої якості (HQ)
Сценарій: Оцінка працездатності підсистеми постобробки при роботі із
заздалегідь записаним відеоресурсом.
Кроки:
‒ запустіть додаток та перемкніть радіокнопку вибору джерела у
положення «Відео файл»;
‒ переконайтеся, що кнопка «Вибрати файл» змінила свій стан на
активний (normal);
‒ натисніть кнопку «Вибрати файл» та у системному діалоговому вікні
провідника оберіть тестовий файл у форматі .mp4 або .avi;
‒ переведіть перемикач «Висока якість (HQ)» в активний стан;
‒ натисніть кнопку «ЗАПУСТИТИ».
Очікуваний результат: Система коректно блокує інтерфейс під час виклику
провідника, записує абсолютний шлях до файлу, а під час обробки циклу успішно
застосовує морфологічний оператор відкриття cv2.morphologyEx. На вихідному
68
ЧДТУ262405 002 ПЗ
вікні відображається очищена від дрібнодисперсного імпульсного шуму
згладжена маска ландшафту.
Сценарій 3. Екстрене завершення роботи конвеєра обробки
Сценарій: Перевірка коректності вивільнення системних ресурсів,
оперативної пам'яті та закриття потоків при виході з програми.
Кроки:
‒ під час активного процесу інференсу та відображення сегментованого
відео натисніть на клавіатурі клавішу «Q» в англійській розкладці;
‒ перевірте, що вікно відображення cv2.imshow миттєво закрилося;
‒ переконайтеся в консолі розробника або менеджері процесів, що
виконання скрипта повністю завершено і витоків пам'яті не виявлено.
Очікуваний результат: Програма успішно перериває нескінченний
обчислювальний цикл while cap.isOpened(), викликає системні методи
вивільнення об'єктів cap.release() та деструкції вікон cv2.destroyAllWindows()
Таблиця 3.4
Виконання всіх ручних сценаріїв приймального тестування
Сценарій Результат
Сегментація відеопотоку з веб-камери Успішно
Сегментація локального медіафайлу Успішно
(HQ)
Екстрене завершення роботи конвеєра Успішно
3.3. Приклади впровадженого програмного комплексу
1 Запуск додатка та первинне налаштування
Для початку роботи з програмним комплексом оператор запускає головний
виконуваний файл системи. Після успішної ініціалізації ядра штучного інтелекту
та перевірки доступності апаратного прискорення CUDA на екрані з'являється
головне вікно налаштувань графічного інтерфейсу користувача. За
69
ЧДТУ262405 002 ПЗ
замовчуванням система перебуває в режимі очікування сигналу з веб-камери, що
відображено на (рис.3.13).
Рисунок 3.13 – Головна сторінка налаштувань додатка «AI Landscape
Segmenter»
2 Конфігурація джерела та вибір медіафайлу
Якщо оператору необхідно виконати аналіз заздалегідь відзнятого
матеріалу, він перемикає прапорець джерела в положення «Відео файл».
Натискання на активовану кнопку «Вибрати файл» викликає інтегрований
системний провідник Windows для безпечного вибору медіаресурсу (Рис.3.14). На
етапі вибору система підтримує жорстку фільтрацію за розширеннями файлів для
запобігання помилок введення (Рис.3.15).
70
ЧДТУ262405 002 ПЗ
Рисунок 3.14 – Виклик діалогового вікна провідника для завантаження
відеофайлу
Рисунок 3.15 – Виділення цільового відеофайлу оператором
Після підтвердження вибору в провіднику головне вікно налаштувань
динамічно оновлює напис на кнопці, відображаючи назву завантаженого файлу
(Рис.3.16).
71
ЧДТУ262405 002 ПЗ
Рисунок 3.16 – Відображення імені вибраного файлу на панелі налаштувань
3 Процес обробки відеопотоку та інференс ШІ
Після натискання на клавішу «ЗАПУСТИТИ», вікно конфігурації
автоматично приховується з екрана, а система ініціалізує динамічне вікно обробки
OpenCV (Рис.3.17). Нейромережа в реальному часі накладає колірні маски на
визначені зони, змішуючи їх з оригінальним кадром у пропорції 40% прозорості.
Рисунок 3.17 — Результат семантичної сегментації складного ландшафту
72
ЧДТУ262405 002 ПЗ
4 Робота з інтерактивною графічною легендою
Для зручності моніторингу та верифікації типів поверхонь безпосередньо у
правому верхньому кутку відеовікна за допомогою розробленого методу
draw_legend рендериться інтерактивна таблиця відповідності класів. Оператор
може миттєво зіставити колір накладеної маски з офіційною назвою
ландшафтного об'єкта (tree, road, river тощо) за міжнародною специфікацією
ADE20K.
5 Завершення користування програмним комплексом
Коли процес аналізу відеопотоку завершено, або якщо оператору необхідно
змінити базові налаштування конвеєра, йому достатньо натиснути клавішу «Q» на
клавіатурі в англійській розкладці. Програма миттєво перериває цикл інференсу,
вивільняє захоплені апаратні ресурси, закриває вікно візуалізації та успішно
завершує роботу процесу.
73
ЧДТУ262405 002 ПЗ
ВИСНОВКИ ДО ТРЕТЬОГО РОЗДІЛУ
У третьому розділі дипломного проєкту було успішно виконано програмну
реалізацію, розгортання та комплексне тестування десктопного додатка «AI
Landscape Segmenter» для семантичної сегментації об'єктів ландшафту в
реальному часі на основі архітектури трансформера SegFormer. На основі
отриманих результатів можна зробити такі висновки:
‒ обґрунтовано та розроблено архітектуру локального сховища даних на
базі парадигми NoSQLKey-Value. Відмова від класичних реляційних
СУБД на користь внутрішньопам’ятної структури (In-Memory Storage
словника TARGET_CLASSES) дозволила знизити час мапування
прогнозованих класів ландшафту до рекордно низького показника —
менше ніж 0.3 мс на один кадр. Це повністю усунуло обчислювальні
затримки введення-виведення (I/O overhead) на етапі постобробки;
‒ спроектовано та реалізовано графічний інтерфейс користувача (GUI) з
використанням кросплатформної бібліотеки CustomTkinter. Розроблена
панель налаштувань забезпечує зручне та ергономічне керування
параметрами конвеєра: вибір джерела сигналу (веб-камера або
локальний медіафайл), інтерактивну навігацію через системний
провідник, а також динамічне перемикання режимів фільтрації та
якості інференсу нейромережі;
‒ реалізовано програмні компоненти обробки відеопотоку засобами
бібліотеки комп'ютерного зору OpenCV та тензорних обчислень
фреймворку PyTorch. Створено та впроваджено унікальний модуль
draw_legend для рендерингу інтерактивної графічної легенди
безпосередньо поверх вихідного кадру, що дозволяє оператору миттєво
ідентифікувати типи поверхонь (ліс, поле, дорога, річка тощо) за
міжнародною специфікацією розмітки ADE20K;
‒ інтегровано модуль постобробки та морфологічної фільтрації масок.
Використання морфологічного оператора відкриття cv2.morphologyEx
(режим High Quality) зі структурованим одиничним ядром розміром 3 на
74
ЧДТУ262405 002 ПЗ
3 дозволило ефективно очистити вихідні результати нейромережі від
дрібнодисперсних імпульсних шумів та суттєво стабілізувати геометрію
контурів ландшафтних зон.
‒ проведено трирівневу верифікацію програмного забезпечення
(модульне, інтеграційне та системне тестування) за допомогою
фреймворку pytest та методів mock-моделювання. Тести підтвердили
повну ізольованість логічних компонентів, правильність обробки подій
інтерфейсу та стабільність передачі даних у конвеєрі інференсу.
На етапі приймального натурного тестування на базі апаратного
прискорення NVIDIA CUDA було зафіксовано високу продуктивність
системи, яка стабільно забезпечує частоту оновлення кадрів на рівні 25-
30FPS. Програмний комплекс повністю відповідає вимогам щодо роботи
в реальному часі, демонструє стійкість до помилок користувача,
відсутність витоків оперативної пам'яті та повністю готовий до
практичного впровадження.
75
ЧДТУ262405 002 ПЗ
ВИСНОВОК
У кваліфікаційній роботі успішно вирішено актуальну інженерну задачу з
проектування, програмної реалізації та комплексного тестування автономного
кросплатформового настільного додатка «AI Landscape Segmenter». Розроблена
система призначена для автоматизованого просторового моніторингу та
високоточної семантичної сегментації зображень земної поверхні в реальному
часі на основі сучасних архітектур штучного інтелекту.
Під час виконання роботи було повністю досягнуто поставленої мети та
вирішено всі визначені інженерні й дослідницькі завдання:
1. Досліджено та обґрунтовано технологічний стек: Проведено детальний
порівняльний аналіз існуючих геоінформаційних аналогів (Google Earth
Engine, ArcGIS Pro, QGIS), який виявив їхню залежність від хмарних
сервісів або високу вартість ліцензій. Для забезпечення повної локальної
автономності та відсутності зовнішніх HTTP-запитів було обрано мову
програмування Python, фреймворк глибокого навчання PyTorch,
архітектуру комп'ютерного зору SegFormer, бібліотеку OpenCV та
сучасну графічную оболонку CustomTkinter.
2. Спроектовано архітектуру системи: За допомогою міжнародного
стандарту UML-діаграм розроблено повний технічний проєкт
інформаційної системи. Створені моделі (діаграми предметної області,
прецедентів, класів, пакетів, компонентів та розгортання) забезпечили
чіткий поділ відповідальності між графічним інтерфейсом користувача
та обчислювальним ядром штучного інтелекту. Поведінкові аспекти
системи деталізовано за допомогою діаграм діяльності, послідовності,
комунікації та скінченного автомату.
3. Оптимізовано збереження та обробку даних: З метою забезпечення
стабільної частоти обробки кадрів понад 30 FPS класичні реляційні
СУБД було замінено на високоефективну внутрішньопам’ятну
архітектуру (In-Memory NoSQL Key-Value Storage). Завдяки мапуванню
цільових класів ландшафту (відповідно до специфікації ADE20K)
76
ЧДТУ262405 002 ПЗ
безпосередньо в оперативній пам'яті, затримки введення-виведення на
етапі постобробки кадрів склали менше ніж 0.3 мс.
4. Реалізовано програмні компоненти та GUI: Створено ергономічний
графічний інтерфейс користувача з фіксованою темною темою
оформлення, що дозволяє оператору гнучко обирати джерела вхідних
даних (локальний медіафайл .mp4/.avi або підключена веб-камера через
індекс пристрою OpenCV), динамічно керувати параметрами якості та
відстежувати результати аналізу за допомогою автоматично
згенерованої на екрані кольорової легенди класів. Розроблено
інтелектуальний режим високої якості (HQ), який адаптує роздільну
здатність тензора ШІ та підключає морфологічну фільтрацію масок
(оператор відкриття cv2.MORPH_OPEN), повністю очищуючи вихідний
потік від імпульсних visual-шумів і стабілізуючи контури об'єктів.
5. Проведено комплексне тестування: Працездатність системи
підтверджено на кількох рівнях верифікації. Модульне та інтеграційне
тестування (із застосуванням фреймворку pytest та mock-об'єктів) довело
логічну коректність ініціалізації віджетів, контролерів кнопок та
конвеєра передачі даних. Системне та приймальне мануальне
тестування продемонструвало високу надійність додатка за різних
сценаріїв експлуатації. При використанні апаратного прискорення
NVIDIA CUDA на базі цільової робочої станції додаток
продемонстрував стабільну продуктивність на рівні 25–30 FPS для відео
високої роздільної здатності.
Таким чином, розроблений програмний комплекс є завершеним, надійним
та перспективним інструментом комп'ютерного зору, що повністю готовий до
реальної експлуатації за цільовим призначенням.(як досягнуто таяк виконали
завдання , завдання під результатів )
Практичне значення отриманих результатів полягає у створенні повністю
готового до впровадження, автономного та відмовостійкого програмного
продукту. Його використання дозволяє організаціям суттєво підвищити рівень
77
ЧДТУ262405 002 ПЗ
автоматизації рутинних процесів геопросторового аналізу, мінімізувати час
обробки растрових даних, підвищити точність розпізнавання об'єктів (ліси,
дороги, водойми тощо) та знизити витрати на комерційне ліцензування
програмного забезпечення. Спроектована модульна архітектура закладає
надійний фундамент для подальшого масштабування системи, розширення
переліку ландшафтних класів або інтеграції но вих моделей глибокого навчання
78
ЧДТУ262405 002 ПЗ
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1 Python [Документація]. — Точка доступу: URL:
https://www.python.org/doc/ — Python Standard Documentation
2 PyTorch [Документація]. — Точка доступу: URL:
https://pytorch.org/docs/stable/index.html — Paszke A., Gross S. PyTorch:
An Imperative Style, High-Performance Deep Learning Library
3 SegFormer [Електронний ресурс]. — Точка доступу: URL:
https://huggingface.co/docs/transformers/model_doc/segformer — Xie E.,
Wang W. Simple and Efficient Design for Semantic Segmentation with
Transformers
4 NVIDIA CUDA [Документація]. — Точка доступу: URL:
https://docs.nvidia.com/cuda/ — Compute Unified Device Architecture
Programming Guide
5 OpenCV [Документація]. — Точка доступу: URL:
https://docs.opencv.org/4.x/ — Bradski G., Kaehler A. Open Source
Computer Vision Library Reference
6 Hugging Face Transformers [Документація]. — Точка доступу: URL:
https://huggingface.co/docs/transformers/index — Wolf T., Debut L. State-
of-the-Art Natural Language and Vision Processing
7 CustomTkinter [Документація]. — Точка доступу: URL:
https://customtkinter.tomschimansky.com — Modern UI-library for Tkinter
in Python
8 Google Earth Engine [Електронний ресурс]. — Точка доступу: URL:
https://earthengine.google.com — Gorelick N., Hancher M. Planetary-scale
geospatial analysis for everyone
9 ArcGIS Pro Deep Learning [Електронний ресурс]. — Точка доступу: URL:
https://pro.arcgis.com/en/pro-app/latest/tool-reference/image-analyst/an-
overview-of-the-deep-learning-toolset.htm — Esri Deep Learning Toolset
Guide
79
ЧДТУ262405 002 ПЗ
10 Досвід проектування комп'ютерного зору [Електронний ресурс]. —
Точка доступу: URL: https://dou.ua/forums/topic/35124/ — Практичні
кейси розробки Computer Vision на DOU.ua
11 Патерни проектування та UML [Електронний ресурс]. — Точка доступу:
URL: https://dou.ua/forums/topic/40575/ — Побудова UML-діаграм та
архітектурні шаблони на DOU.ua
12 UML 2.5 Specification [Документація]. — Точка доступу: URL:
https://www.omg.org/spec/UML/2.5/ — Unified Modeling Language Official
Specification
13 GitHub [Документація]. — Точка доступу: URL:
https://docs.github.com/en — Документація по системі контролю версій
Git та репозиторіям
14 Visual Studio Code [Документація]. — Точка доступу: URL:
https://code.visualstudio.com/docs — Documentation for Visual Studio Code
Editor
15 Горбунова В. А. Методи обробки аерознімків у ГІС : Навчальний
посібник. — К.: Наукова думка, 2019. — 180 с.
16 Larman C. Applying UML and Patterns: An Introduction to Object-Oriented
Analysis and Design and Iterative Development. — New Jersey: Prentice
Hall, 2015. — 736 p.
17 Fowler M. UML Distilled: A Brief Guide to the Standard Object Modeling
Language. — Boston: Addison-Wesley, 2018. — 208 p.
18 Rosenberg D., Scott K. Use Case Driven Object Modeling with UML: A
Practical Introduction. — Berkeley: Apress, 2015. — 192 p.
19 Wiegers K., Beatty J. Software Requirements. 3rd Edition. — Redmond:
Microsoft Press, 2013. — 672 p.
20 Sommerville I. Software Engineering. 10th Edition. — Boston: Pearson,
2016. — 810 p.
21 Бублик В. В. Об'єктно-орієнтоване проектування програмного
забезпечення. — К.: Либідь, 2015. — 320 с.
80
ЧДТУ262405 002 ПЗ
22 Прохоренок Н. А. Python 3 і корисні бібліотеки. — Спб.: БХВ-Петербург,
2021. — 720 с.
23 Пашкевич А. Глибоке навчання з PyTorch: розробка штучного інтелекту.
— К.: МК-Прес, 2023. — 340 с.
24 Бредскі Г., Келер А. Вивчення OpenCV 4: Комп'ютерний зір на C++ та
Python. — К.: Діалектика, 2022. — 820 с.
25 Вандер Плас Дж. Python для розробників та аналітиків даних. — К.:
Ранок, 2020. — 576 с.
26 Чікон С., Штрауб Б. Pro Git. Друге видання. — Львів: Старий Лев, 2021.
— 450 с.
27 Про внесення змін до методичних рекомендацій щодо розроблення
стандартів вищої освіти : наказ Міністерства освіти і науки України від
01.10.2019 № 1254.
28 Методичні вказівки до оформлення та виконання дипломної випускної
роботи для студентів спеціальності 121 "Інженерія програмного
забезпечення" / Укл.: А. А. Рідкокаша, О. Б. Півень ; М-во освіти і науки
України, Черкас. держ. технол. ун-т. — Черкаси : ЧДТУ, 2020. — 27 с.
29 Авраменко В. С., Голуб С. В., Салапатов В. І. Дипломне проектування.
Освітній ступінь «бакалавр» : Навчально-методичний посібник / В. С.
Авраменко, С. В. Голуб, В. І. Салапатов. — Черкаси : Черкаський
національний університет ім. Б. Хмельницького, 2018. — 213 с. : 76 іл.
30 Авраменко В. С., Авраменко С. А. Проектування інформаційних систем
/ В. С. Авраменко, С. А. Авраменко. — Черкаси : Чабаненко Ю. А., 2017.
— 434 с
81
ДОДАТОК А
ЗАТВЕРДЖЕНО:
Зав. кафедрою ПЗАС, професор
_________________ Голуб С.В.
„____” ______________ 2026 р.
Програмне забезпечення інформаційної системи аналізу об'єктів
ландшафту
Специфікація
482. ЧДТУ 262405.005
Листів 2
Розробник ________________ Діденко О.О.
Керівник ________________ Голуб С.М.
2026
ЧДТУ262405 002 ПЗ 2
Позначення Найменування Примітка
Документація
482.ЧДТУ. 262405 12 01 Текст програми
482.ЧДТУ. 262405 34 01 Інструкція користувачеві
482.ЧДТУ. 262405 90 01 Графічні матеріали
83
ЧДТУ262405 002 ПЗ 2
84
ДОДАТОК Б
Програмне забезпечення інформаційної системи
аналізу об'єктів ландшафту
Текст програми
482.ЧДТУ. 262405 12 01
Листів 8
Розробник ________________ Діденко О.О. .
2026
482.ЧДТУ. 262405 12 01
import cv2
import torch
import numpy as np
import customtkinter as ctk
from tkinter import filedialog
from PIL import Image
from transformers import SegformerForSemanticSegmentation,
SegformerImageProcessor
import warnings
warnings.filterwarnings("ignore", category=UserWarning,
module="transformers")
# Константи класів
TARGET_CLASSES = {
124: ("tree", [34, 139, 34]),
107: ("forest", [0, 100, 0]),
133: ("bush", [85, 107, 47]),
21: ("grass", [124, 252, 0]),
95: ("river", [70, 130, 180]),
98: ("lake", [0, 191, 255]),
96: ("sea", [25, 25, 112]),
31: ("mountain", [139, 137, 137]),
59: ("sand", [194, 178, 128]),
13: ("road", [128, 64, 128]),
14: ("path", [210, 180, 140]),
23: ("field", [173, 255, 47]),
}
85
482.ЧДТУ. 262405 12 01
class SegmentationApp(ctk.CTk):
def __init__(self):
super().__init__()
self.title("AI Landscape Segmenter")
self.geometry("500x450")
ctk.set_appearance_mode("dark")
self.video_path = None
self.device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
# --- UI Elements ---
self.label_title = ctk.CTkLabel(self, text="Налаштування сегментації",
font=("Arial", 20, "bold"))
self.label_title.pack(pady=20)
# Вибір джерела
self.source_var = ctk.StringVar(value="webcam")
self.radio_webcam = ctk.CTkRadioButton(self, text="Веб-камера",
variable=self.source_var, value="webcam")
self.radio_webcam.pack(pady=5)
self.radio_file = ctk.CTkRadioButton(self, text="Відео файл",
variable=self.source_var, value="file")
self.radio_file.pack(pady=5)
86
482.ЧДТУ. 262405 12 01
self.btn_browse = ctk.CTkButton(self, text="Вибрати файл",
command=self.browse_file, state="disabled")
self.btn_browse.pack(pady=10)
# Моніторинг вибору джерела (вмикання кнопки файлу)
self.source_var.trace_add("write", self.toggle_browse_button)
# Вибір якості
self.quality_var = ctk.BooleanVar(value=False)
self.switch_quality = ctk.CTkSwitch(self, text="Висока якість (HQ)",
variable=self.quality_var)
self.switch_quality.pack(pady=20)
# Кнопка запуску
self.btn_start = ctk.CTkButton(self, text="ЗАПУСТИТИ",
fg_color="green", hover_color="darkgreen",
command=self.start_processing, height=50,
font=("Arial", 16, "bold"))
self.btn_start.pack(pady=30)
def toggle_browse_button(self, *args):
if self.source_var.get() == "file":
self.btn_browse.configure(state="normal")
else:
self.btn_browse.configure(state="disabled")
def browse_file(self):
87
482.ЧДТУ. 262405 12 01
self.video_path = filedialog.askopenfilename(filetypes=[("Video files",
"*.mp4 *.avi *.mov *.mkv")])
if self.video_path:
self.btn_browse.configure(text=f"Файл: {self.video_path.split('/')[-1]}")
def draw_legend(self, frame):
box_h = 22
font = cv2.FONT_HERSHEY_SIMPLEX
start_x = frame.shape[1] - 180
start_y = 30
for i, (class_id, (label, color)) in enumerate(TARGET_CLASSES.items()):
y = start_y + i * (box_h + 5)
cv2.rectangle(frame, (start_x, y), (start_x + box_h, y + box_h), color, -
1)
cv2.putText(frame, label, (start_x + box_h + 8, y + box_h - 5), font, 0.5,
(255, 255, 255), 1)
def start_processing(self):
# Перевірка вибору файлу
if self.source_var.get() == "file" and not self.video_path:
print("Помилка: виберіть файл!")
return
# Завантаження моделі
print(f"Loading model on {self.device}...")
model_name = "nvidia/segformer-b0-finetuned-ade-512-512"
processor = SegformerImageProcessor.from_pretrained(model_name)
88
482.ЧДТУ. 262405 12 01
model =
SegformerForSemanticSegmentation.from_pretrained(model_name).to(self.device)
model.eval()
# Джерело відео
source = 0 if self.source_var.get() == "webcam" else self.video_path
cap = cv2.VideoCapture(source)
high_quality = self.quality_var.get()
kernel = np.ones((3, 3), np.uint8)
# Приховуємо вікно налаштувань під час роботи (опціонально)
self.withdraw()
while cap.isOpened():
ret, frame = cap.read()
if not ret: break
# Обробка
image = Image.fromarray(cv2.cvtColor(frame,
cv2.COLOR_BGR2RGB))
size_param = {"height": 768, "width": 768} if high_quality else
{"height": 512, "width": 512}
inputs = processor(images=image, return_tensors="pt",
size=size_param).to(self.device)
with torch.no_grad():
89
482.ЧДТУ. 262405 12 01
outputs = model(**inputs)
upsampled_logits = torch.nn.functional.interpolate(
outputs.logits, size=frame.shape[:2], mode='bilinear',
align_corners=False
)
predicted = upsampled_logits.argmax(dim=1)[0].cpu().numpy()
color_mask = np.zeros_like(frame)
for class_id, (label, color) in TARGET_CLASSES.items():
mask = (predicted == class_id).astype(np.uint8)
if high_quality:
mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)
color_mask[mask == 1] = color
blended = cv2.addWeighted(frame, 0.6, color_mask, 0.4, 0)
self.draw_legend(blended)
cv2.imshow("AI Segmentation (Press 'Q' to Exit)", blended)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
self.deiconify() # Повертаємо вікно налаштувань
if __name__ == "__main__":
app = SegmentationApp()
90
ДОДАТОК В
Програмне забезпечення інформаційної системи
аналізу об'єктів ландшафту
Інструкція користувачеві
482.ЧДТУ. 262405 34 01
Листів 7
Розробник ________________ Діденко О.О.
2026
482.ЧДТУ. 242243 34 01
Ця інструкція описує порядок роботи з програмним забезпеченням для
автоматизованої семантичної сегментації зображень земної поверхні за
допомогою штучного інтелекту.
1. Загальні відомості та системні вимоги
Програма призначена для розпізнавання та колірного виділення різних
типів об'єктів (ліс, річки, дороги, поля тощо) на відеопотоці в реальному часі (з
веб-камери) або з готових відеофайлів.
Операційна система: Windows 10 / 11 або Linux.
Апаратне прискорення: Для стабільної та швидкої роботи (високого
показника FPS) рекомендується наявність дискретної відеокарти NVIDIA з
підтримкою CUDA. За її відсутності програма автоматично переходить на
обчислення за допомогою центрального процесора (CPU).
Інтернет-підключення: Необхідне лише під час першого запуску для
автоматичного завантаження ШІ-моделі SegFormer з репозиторію.
2. Запуск програми та опис головного вікна
Для початку взаємодії з програмним комплексом необхідно виконати
запуск головного файлу скрипту. Після успішної ініціалізації всіх внутрішніх
компонентів та модулів на екрані з'явиться графічне вікно конфігурації
параметрів аналізу (рис. В.1).
92
482.ЧДТУ. 242243 34 01
Рисунок В.1 – Головне вікно налаштувань програми «AI Landscape
Segmenter»
Елементи керування у вікні налаштувань включають:
Блок вибору джерела даних: містить перемикач «Веб-камера» (активація
обробки відео в реальному часі з підключеної камери) та «Відео файл» (режим
обробки попередньо записаного відеоролика).
Кнопка «Вибрати файл» — активується лише у режимі «Відео файл» та
викликає системний провідник.
Перемикач «Висока якість (HQ)» — тумблер для увімкнення режиму
покращеного розпізнавання та морфологічного очищення картинки від шумів.
Кнопка «ЗАПУСТИТИ» — запускає процес аналізу та сегментації.
3. Порядок роботи з програмою
Режим А: Робота з веб-камерою
93
482.ЧДТУ. 242243 34 01
У вікні налаштувань необхідно вибрати пункт «Веб-камера», який
встановлено в системі за замовчуванням. За потреби користувач може активувати
перемикач «Висока якість (HQ)» та натиснути кнопку «ЗАПУСТИТИ».(рис.В.2.)
Рисунок В.2 - Вікно програми із вибраним джерелом веб-камера
Режим Б: Робота з відеофайлом
Для аналізу заздалегідь підготовленого відеоматеріалу необхідно
перевести прапорець у положення «Відео файл», внаслідок чого кнопка вибору
стане активною. Після натискання на кнопку «Вибрати файл» відкриється вікно
системного провідника, де користувачеві потрібно вказати шлях до потрібного
ролика у форматі .mp4, .avi, .mov або .mkv, після чого назва обраного документа
відобразиться безпосередньо в інтерфейсі додатка (рис. В.3).
94
482.ЧДТУ. 242243 34 01
[
Рисунок В.3 – Вікно програми із вибраним джерелом відеофайлу
Після перевірки коректності завантаженого файлу необхідно натиснути
кнопку «ЗАПУСТИТИ».
4. Робота з вікном візуалізації та інтерпретація результатів
Після натискання кнопки «ЗАПУСТИТИ» стартове вікно налаштувань
автоматично приховується, і система відкриває основне робоче вікно обробки
відеопотоку. Штучний інтелект у режимі реального часу аналізує кожен кадр,
розпізнає типи ландшафту та накладає поверх зображення відповідну
напівпрозору колірну маску разом із динамічною графічною легендою у
верхньому правому кутку (рис. В.4).
95
482.ЧДТУ. 242243 34 01
Рисунок В.4 – Процес семантичної сегментації ландшафту в реальному часі
Для інтерпретації отриманих результатів сегментації користувач може
керуватися наступними значеннями кольорів накладеної маски:
- tree / forest / bush / grass (відтінки зеленого) — рослинність (дерева,
лісові масиви, кущі, трава).
- river / lake / sea (відтінки синього) — водні ресурси (річки, озера,
моря).
- road / path (фіолетовий та бежевий) — елементи інфраструктури
(автомобільні дороги, стежки).
- field / sand / mountain (салатовий, пісочний, сірий) — відкритий ґрунт,
поля, пісок або гори.
У випадку, якщо як джерело вхідних даних користувач обрав роботу з
інтегрованою або зовнішньою цифровою камерою, система аналогічно запускає
процес захоплення кадрів та їхньої миттєвої класифікації. Візуалізація
результатів обробки живого відеопотоку з камери, де штучний інтелект успішно
виділяє та маркує навколишні об'єкти, демонструє коректність роботи алгоритмів
трансформера SegFormer у режимі реального часу (рис. В.5).
96
482.ЧДТУ. 242243 34 01
Рисунок В.5 – Виведення та сегментація інтерактивного відеопотоку з веб-
камери
5. Завершення роботи
Щоб зупинити процес обробки та закрити вікно сегментації, користувачеві
необхідно натиснути на клавіатурі клавішу Q (обов'язково в англійській
розкладці). Після цього вікно відеопотоку закриється, і на екрані знову з'явиться
початкове вікно налаштувань (рис. В.1). Для повного виходу з програми та
завершення роботи процесу необхідно натиснути кнопку закриття вікна [X] у
верхньому правому кутку форми.
97
ЧДТУ262405 002 ПЗ
ДОДАТОК Г
Програмне забезпечення інформаційної системи аналізу об'єктів
ландшафту
Графічні матеріали
482.ЧДТУ. 262405 90 01
Листів 13
Розробник ________________ Діденко О.О.
2026
482.ЧДТУ. 262405 90 01
Рисунок Г.1 – Титульний слайд
Рисунок Г.2 – Втуп
99
ЧДТУ262405 002 ПЗ
Рисунок Г.3 – Аналіз існуючих програм
Рисунок Г.4 – Аналіз існуючих програм
482.ЧДТУ. 262405 90 01
Рисунок Г.5 – Аналіз існуючих програм
Рисунок Г.6 – Засоби розробки
101
ЧДТУ262405 002 ПЗ
Рисунок Г.7 – Постановка Задачі
Рисунок Г.8 – Вимоги до програмної системи
482.ЧДТУ. 262405 90 01
Рисунок Г.9 – Діаграма прецендентів
Рисунок Г.10 – Діаграма класів
103
ЧДТУ262405 002 ПЗ
Рисунок Г.11 –Діаграма пакетів
Рисунок Г.12 – Діаграма компонентів
482.ЧДТУ. 262405 90 01
Рисунок Г.13 – Діаграма розгортання
Рисунок Г.14 – Діаграма діяльності
105
ЧДТУ262405 002 ПЗ
Рисунок Г.15 – Діаграма послідовності
Рисунок Г.16 – Діаграма скінченного автомата
482.ЧДТУ. 262405 90 01
Рисунок Г.17 – Діаграма компонентів
Рисунок Г.18 – Структурна схема
107
ЧДТУ262405 002 ПЗ
Рисунок Г.19 –Функціональна схема
Рисунок Г.20 – Інтерфейс користувача
482.ЧДТУ. 262405 90 01
Рисунок Г.21 – Результати модульного та приймального тестування
Рисунок Г.22 –Результати системного та інеграційного тестування
109
ЧДТУ262405 002 ПЗ
Рисунок Г.23 – Висновок
Рисунок Г.24 – Дякую за увагу