Добавил:
У меня есть канал с приколами: t.me/urmipies_garbage Подпишитесь пж-пж!!!! Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Я получил 5 за защиту кста.docx
Скачиваний:
0
Добавлен:
02.09.2026
Размер:
352 Кб
Скачать

4.4 Реализация триангуляции

Триангуляция выполняется модулем triangulation.py, который принимает центры ограничивающих прямоугольников из левого и правого кадров, а также параметры калибровки (фокусное расстояние f, базис B).

Помимо описанных ранее формул так же учитываются погрешности камер – вместо точного попадания в точку объекта ищутся минимальные расстояния.

Полученные трёхмерные координаты передаются в WebSocket-сервер для отправки клиенту.Схема алгоритма представлена на рисунке 4.2.

Рисунок 4.2 – Схема алгоритма стереобработки

4.5 Реализация клиента визуализации

Клиентская часть организована как сцена Godot 4, состоящая из нескольких основных узлов, каждый из которых выполняет свою функцию в системе визуализации. На рисунке 4.3 представлена карта приложения.

Рисунок 4.3 – Карта приложения

Корневым узлом сцены является объект типа Node3D, который управляет глобальной логикой приложения и координирует взаимодействие между остальными компонентами. Узел WebSocketClient, реализованный как наследник базового класса Node, отвечает за управление соединением с сервером, обработку входящих сообщений и отправку управляющих команд.

Для визуализации положения объекта в пространстве используется узел MeshInstance3D со сферической геометрией. Управляемая камера, реализованная как узел Camera3D, позволяет оператору изменять ракурс обзора сцены для детального рассмотрения положения объекта. Дополнительно на сцену добавлена координатная сетка (MeshInstance3D с процедурно генерируемой геометрией), которая служит визуальным ориентиром для оценки масштаба и положения объекта в пространстве.

Пример интерфейса представлен на рисунке 4.4.

Рисунок 4.4 – Пример интерфейса клиента

4.6 Тестирование

Для оценки производительности разработанного программная система было проведено тестирование на вычислительной системе с процессором Intel Core i5-12500H и дискретной видеокартой GeForce RTX 3050 Laptop GPU. Результаты тестирования приведены в таблице 4.1.

Таблица 4.1 – Результаты тестирования

Показатель

Значение

Требование ТЗ

Полная задержка обработки

68 мс

≤100 мс

Частота обработки кадров

28-30 FPS

25 FPS (min)

Загрузка CPU (общая)

52%

≤80%

Синхронизация кадров

±3.2 мс

<5 мс

Точность позиционирования (Z)

±4.2 мм

±5 мм

Стабильность работы (8 часов)

Без деградации

Требуется

Выводы по четвёртому разделу

В четвёртом разделе выполнена практическая реализация спроектированного программной системы трёхмерного позиционирования, проведено его функциональное тестирование, проверка соответствия требованиям и оценка результатов автоматизации процессов развёртывания и мониторинга.

Реализована серверная часть системы на языке Python 3.11 с использованием библиотеки OpenCV 4.8. Модуль захвата видеопотоков построен на основе класса cv2.VideoCapture с организацией двух независимых потоков захвата, каждый из которых помещает полученные кадры и временные метки в потокобезопасную очередь ограниченного размера. Реализован механизм автоматического переподключения при потере соединения с камерой (до пяти попыток с интервалом две секунды), что обеспечивает устойчивость работы системы в условиях нестабильной сети.

Модуль вычитания фона реализован с использованием алгоритма MOG2. Для левой и правой камер созданы отдельные экземпляры вычитателя фона с параметрами: глубина истории 500 кадров, порог дисперсии 16, обнаружение теней включено. После получения бинарной маски переднего плана применены морфологические операции: медианная фильтрация для удаления шума, закрытие ядром 5×5 для заполнения отверстий и открытие ядром 3×3 для удаления изолированных выбросов. Детекция объекта выполнена поиском контуров с выбором контура максимальной площади, после чего вычислен центр ограничивающего прямоугольника.

Модуль триангуляции реализует проверку вертикального рассогласования (допуск не более двух пикселей), вычисление диспаратности как разности горизонтальных координат и расчёт трёхмерных координат на основе параметров калибровки. Реализована интеграция с WebSocket-сервером для передачи вычисленных координат клиенту визуализации в реальном времени.

Клиент визуализации реализован на игровом движке Godot 4 с использованием встроенного класса WebSocketClient для подключения к серверу. Создана трёхмерная сцена, включающая координатную сетку, маркер объекта в виде сферы и управляемую камеру с возможностью вращения и масштабирования. Реализован скрипт обработки входящих сообщений формата JSON-RPC 2.0 с автоматическим обновлением положения маркера при получении сообщения update_position.

Проведено функциональное тестирование всех подсистем. Модуль захвата видеопотоков подтвердил способность одновременно принимать два RTSP-потока с разрешением 1920×1080 и частотой 25 кадров в секунду. Модуль вычитания фона показал корректное выделение движущегося объекта на статическом фоне с эффективным подавлением теней. Модуль триангуляции при тестировании на виртуальном стенде Godot 4 продемонстрировал точность позиционирования в пределах ±5 миллиметров на расстоянии 1,5 метра при базис стереопары 150 миллиметров. Задержка обработки полного цикла (от захвата кадров до отправки координат клиенту) составила 82 миллисекунды, что не превышает установленного требования в 100 миллисекунд.

Проверка выполнения требований подтвердила соответствие системы всем функциональным и нефункциональным требованиям, сформулированным в первом разделе. Система принимает видеопотоки от двух IP-камер по протоколу RTSP, выполняет калибровку стереопары по шахматному паттерну, определяет трёхмерные координаты объекта с требуемой точностью, передаёт их клиенту по WebSocket в формате JSON-RPC 2.0, синхронизирует кадры с точностью до 5 миллисекунд и способна функционировать непрерывно в течение восьми часов без деградации производительности. Утилизация центрального процессора при обработке двух потоков не превысила 75 процентов, что соответствует требованию не более 80 процентов.

Таким образом, в четвёртом разделе полностью решены задачи реализации спроектированного программной системы, его функционального тестирования, проверки соответствия требованиям и оценки результатов автоматизации. Разработанная система является работоспособной, готовым к внедрению и может быть использован на промышленных предприятиях, в логистических центрах и робототехнических системах для трёхмерного позиционирования движущихся объектов.

Соседние файлы в предмете Дипломная работа (подготовка и защита)