Добавил:
eipimru
У меня есть канал с приколами: t.me/urmipies_garbage Подпишитесь пж-пж!!!!
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
X
- •Введение
- •1. Предметная область
- •2. Архитектурные основы программного решения
- •3. Логика работы и процессы взаимодействия
- •3.1. Алгоритм работы администратора
- •3.2. Алгоритм работы инженера-калибровщика
- •3.3. Алгоритм работы оператора
- •4. Роли пользователей и принципы разграничения доступа
- •5. Технологическая реализация и уровни интеграции
- •Заключение
- •Список использованных источников

3.Логика работы и процессы взаимодействия
3.1.Алгоритм работы администратора
Администратор в рамках данной системы работает не с модулем
стереообработки, а напрямую с базой данных SQLite, в которой хранятся
параметры калибровки камер, конфигурационные настройки и логи сессий
позиционирования. В его задачи входит выполнение SQL-запросов, через
которые он получает актуальные калибровочные данные, просматривает
историю выполненных сессий, а также при необходимости вносит изменения
в конфигурацию системы. Алгоритм его действий (Рис. 2.1.1) начинается с
подключения к базе данных через консольный интерфейс или встроенные
средства администрирования SQLite. Администратор формирует запрос
для получения интересующей информации — например, для просмотра
текущих матриц внутренних параметров камер, коэффициентов дисторсии
или списка последних сеансов позиционирования. Если команда написана
корректно, система управления базами данных возвращает соответствующие
данные в табличном виде. В случае необходимости администратор может
изменить содержимое базы, составив отдельный SQL-запрос для обновления
параметров калибровки, добавления новой конфигурации камер или
удаления устаревших логов. Полученные результаты при необходимости
можно сохранить с использованием встроенных возможностей СУБД SQLite,
например, через функции экспорта в формат CSV для последующего анализа в
сторонних приложениях. Схема работы оператора представлена на рисунке 3.1
11

Рисунок3.1 — Алгоритм работы Администратора
3.2.Алгоритм работы инженера-калибровщика
Инженер-калибровщик в рамках данной системы работает
непосредственно с модулем стереообработки, отвечая за настройку и проверку
корректности работы стереопары. В его задачи входит выполнение процедуры
калибровки камер с использованием шахматного шаблона, расчёт матриц
внутренних и внешних параметров, проверка точности триангуляции и
сохранение полученных данных в базу для последующего использования
системой. Алгоритм его действий (Рис. 2.2.1) начинается с запуска скрипта
калибровки через консольный интерфейс. Инженер размещает шахматный
12

шаблон в поле зрения обеих камер и выполняет серию снимков с
разных ракурсов. Система автоматически захватывает синхронизированные
по RTCP-меткам кадры, находит углы шахматной доски и накапливает пары
изображений для расчёта. После набора достаточного количества кадров
(не менее 15–20 пар) запускается процедура вычисления: определяются
матрицы внутренних параметров каждой камеры, коэффициенты дисторсии,
а также матрицы поворота и переноса, описывающие взаимное расположение
камер в пространстве. Если калибровка выполнена успешно, система
выводит среднеквадратичную ошибку репроекции, по которой инженер
оценивает качество калибровки. При удовлетворительных показателях
ошибки (менее 0,5 пикселя) инженер выполняет SQL-запрос на сохранение
полученных матриц в базу данных SQLite. После сохранения параметров
проводится проверочная триангуляция тестового объекта: система вычисляет
его координаты, и инженер сверяет полученные значения с реальными
размерами сцены. При необходимости процедура калибровки повторяется для
достижения требуемой точности позиционирования. Схема работы инженера-
калибровщика представлена на рисунке 3.2
Рисунок3.2 — Алгоритм работы инженера-калибровщика
13

3.3.Алгоритм работы оператора
Оператор в рамках данной системы работает с клиентским приложением
визуализации, построенным на базе игрового движка Godot. В его задачи
входит запуск приложения, подключение к серверной части через WebSocket-
соединение и наблюдение за положением отслеживаемого объекта в
трёхмерной сцене в реальном времени. Алгоритм его действий (Рис.
2.3.1) начинается с запуска исполняемого файла Godot-приложения. После
загрузки сцены оператор вводит в соответствующее поле адрес WebSocket-
сервера и нажимает кнопку подключения. Приложение устанавливает
соединение с сервером и начинает приём потока данных в формате JSON,
содержащего координаты объекта и временные метки. При успешном
подключении в интерфейсе отображается статус «Подключено», и оператор
переходит в режим наблюдения. На трёхмерной сцене Godot отображается
виртуальное пространство, откалиброванное в соответствии с реальными
размерами наблюдаемой зоны, и маркер объекта (например, сфера или
трёхмерная модель), положение которого обновляется в соответствии
с поступающими координатами X, Y, Z. Оператор может изменять
ракурс обзора сцены с помощью стандартных средств навигации Godot
(вращение, масштабирование, перемещение камеры), что позволяет детально
рассмотреть траекторию движения объекта с разных точек. В правой части
интерфейса расположена панель с текущими значениями координат и
временем последнего полученного пакета, что даёт оператору возможность
контролировать актуальность отображаемых данных. При необходимости
оператор может сохранить траекторию движения объекта в файл формата CSV,
нажав соответствующую кнопку в интерфейсе приложения. По завершении
сеанса работы оператор отключается от сервера и закрывает приложение.
Схема работы оператора представлена на рисунке 3.3
14

Рисунок3.3 — Алгоритм работы Оператора
15

4.Роли пользователей и принципы разграничения доступа
Пользователи системы определения положения объекта в пространстве
по двум камерам подразделяются на три категории: администратор,
инженер-калибровщик и оператор, у каждого из которых определены свои
специфические права и возможности. Администратор обладает доступом ко
всем компонентам и настройкам системы, включая управление серверной
частью и базой данных. Инженер-калибровщик имеет возможность выполнять
настройку стереопары, проводить калибровку камер, проверять точность
триангуляции и сохранять полученные параметры в базу данных. Оператор
имеет доступ исключительно к клиентскому приложению визуализации и
при этом не имеет прямого доступа к информации, находящейся в базе
данных, а также к настройкам серверной части. Все действия оператора и
результаты сеансов позиционирования автоматически фиксируются системой
и сохраняются в базе данных.
Важно определить, какие именно роли пользователей будут
взаимодействовать с разрабатываемой системой. В рамках системы
предусмотрены следующие категории пользователей:
–Администратор;
–Инженер-калибровщик;
–Оператор.
В зависимости от своей роли в системе пользователи получают разный
уровень доступа к данным и функциональным модулям.
Администратор обладает полным доступом ко всем данным в базе
SQLite. Он может не только просматривать любую информацию, но и вносить
изменения напрямую с помощью SQL-запросов. В его компетенцию входит
управление конфигурацией сервера, запуск и остановка модулей приёма
видеопотоков и брокера сообщений, а также мониторинг логов системы. Такая
16

роль требует максимального уровня доверия и используется для технического
сопровождения и настройки системы.
Инженеру-калибровщику предоставляется доступ через консольный
интерфейс модуля стереообработки. С его помощью он может запускать
процедуру калибровки камер, просматривать результаты оценки точности
(среднеквадратичную ошибку репроекции), а также сохранять полученные
матрицы внутренних и внешних параметров в базу данных. Кроме того,
инженер имеет доступ к просмотру отладочных окон OpenCV, в которых
отображаются ректифицированные изображения и карта диспарантности. Всё
это реализуется через консольный интерфейс и конфигурационные файлы,
без необходимости взаимодействовать с базой данных напрямую через SQL-
запросы.
Оператор, в свою очередь, не имеет прямого доступа к данным,
хранящимся в системе, а также к настройкам серверной части и параметрам
калибровки. Его взаимодействие с системой ограничивается клиентским
приложением визуализации на базе Godot. При подключении к серверу
через WebSocket-соединение оператор получает поток координат в формате
JSON, которые отображаются в трёхмерной сцене в реальном времени. Любые
изменения настроек системы, параметров калибровки или конфигурации
сервера для оператора недоступны. Таким образом, работа с базой данных
и серверными модулями для оператора полностью автоматизирована и
проходит «в фоновом режиме».
После того как были определены пользовательские роли и их
доступ к данным, можно перейти к описанию того, как именно
пользователи взаимодействуют с системой определения положения объекта
в пространстве. Администратор в этом процессе работает не с самим
модулем стереообработки, а напрямую с базой данных SQLite, в которой
хранятся параметры калибровки, конфигурационные настройки и логи сессий
17

позиционирования. В его задачи входит выполнение SQL-запросов, через
которые он получает нужную информацию или вносит изменения. Алгоритм
его действий начинается с формирования запроса. Если команда написана
корректно, система управления базами данных возвращает соответствующие
данные. В случае необходимости администратор может изменить содержимое
базы, составив отдельный SQL-запрос для добавления, редактирования или
удаления нужной информации. Полученные результаты при необходимости
можно сохранить с использованием встроенных возможностей СУБД SQLite,
например, через функции экспорта в формат CSV для последующего анализа.
18

5.Технологическая реализация и уровни интеграции
После проектирования системы необходимо приступить к разработке
структуры базы данных. В рамках создания базы данных SQLite будут
реализованы следующие основные таблицы:
1.таблица «calibration» предназначена для хранения параметров
калибровки стереопары и включает такие поля, как camera_id
(идентификатор камеры: левая или правая), camera_matrix (матрица
внутренних параметров камеры 3×3 в формате JSON), dist_coes
(коэффициенты дисторсии в формате JSON), rotation_matrix
(матрица поворота, описывающая взаимную ориентацию камер),
translation_vector (вектор переноса, описывающий смещение правой
камеры относительно левой), а также calibration_date (дата и время
выполнения калибровки). Данная таблица является критически
важной для работы модуля стереообработки, так как содержит
все параметры, необходимые для ректификации изображений и
последующей триангуляции координат объекта. Физическая схема
представлена в таблице 5.1
19

Рис.5.1 — Физическая модель таблицы calibration
№ПолеТип данныхОграниченияОписание
1idINTEGERPRIMARY KEY,
AUTOINCREMENT
2camera_idINTEGERNOT NULL, CHECK
(camera_id IN (1, 2))
3camera_matrixTEXTNOT NULLМатрица внутрен-
4dist_coesTEXTNOT NULLКоэффициенты
Уникальный иден-
тификатор записи
калибровки
Идентификатор ка-
меры: 1 — левая, 2 —
правая
них параметров ка-
меры 3×3 в форма-
те JSON
дисторсии в фор-
мате JSON
5rotation_matrixTEXTМатрица поворота
3×3 в формате JSON
(только для правой
камеры)
6translation_vectorTEXTВектор переноса
3×1 в формате JSON
(только для правой
камеры)
7calibration_dateDATETIMENOT NULLДата и время вы-
полнения калиб-
ровки
8rms_errorREALСреднеквадратич-
ная ошибка репро-
20
екции
Соседние файлы в папке лаба (можете лабу за прошлый курс гадаса обрезать и сдать ему это лол)
