Описание функциональных характеристик
Аннотация
В данном документе приведено описание функциональных возможностей ПО «Программный модуль обработки пространственных данных на основе технологий искусственного интеллекта для решения задач инженерных изысканий и экологического мониторинга морских акваторий». В разделе «Общие сведения» указано наименование продукта, программное обеспечение, необходимое для работы продукта, а также языки программирования, на которых он был написан.
В разделе «Функциональное назначение» указано назначение продукта и краткая характеристика области его применения.
В разделе «Описание логической структуры» данного программного документа описаны алгоритмы и используемые методы продукта, а также его структура с описанием и логикой взаимодействия его составных частей между собой.
1 ОБЩИЕ СВЕДЕНИЯ
1.1 Обозначение и наименование Продукта
ПО было разработано ООО «МОРИНТЕХ» в рамках проведения научно- исследовательской и опытно-конструкторской (НИОКР) по теме: «Программный модуль обработки пространственных данных на основе технологий искусственного интеллекта для решения задач инженерных изысканий и экологического мониторинга морских акваторий». Программа для ЭВМ предназначена для обработки пространственных данных дистанционного зондирования Земли (ДЗЗ) на основе технологий искусственного интеллекта (ИИ) для решения задач инженерных изысканий и проведения экологического мониторинга морских акваторий.
1.2 Программное обеспечение, необходимое для функционирования Сервиса
Базовое системное программное обеспечение
• Docker — платформа контейнеризации, предназначенная для создания, распространения и запуска приложений в изолированных контейнерах.
• PostgreSQL — свободная объектно-реляционная система управления базами данных.
• PostGIS — расширение PostgreSQL для хранения и обработки пространственных (географических) данных.
• Nginx — веб-сервер и обратный прокси, используемый для маршрутизации HTTP-запросов, обслуживания статических файлов и (при необходимости) терминации SSL.
• GeoServer — серверное приложение для публикации, обработки и визуализации геопространственных данных по стандартам OGC (WMS, WFS, WCS), используемое для предоставления картографических сервисов.

Фронтенд (JavaScript)
• Vue — прогрессивный JavaScript-фреймворк для построения пользовательских интерфейсов и одностраничных приложений (SPA), основанный на реактивной компонентной модели.
• Vite — инструмент сборки и среды разработки фронтенд-приложений, используемый на этапе разработки и сборки (не используется в продуктивной среде).

Библиотеки и фреймворки бэкенда
• FastAPI — веб-фреймворк для разработки REST API и сервисов на языке Python (Python 3.9+).
• Uvicorn — ASGI-сервер для запуска FastAPI-приложений.
• GeoAlchemy2 — расширение SQLAlchemy для работы с географическими типами данных PostgreSQL/PostGIS.
• RabbitMQ — брокер сообщений, используемый для асинхронного взаимодействия между сервисами и обработки фоновых задач.
• PyTorch — фреймворк машинного обучения для построения и обучения нейросетевых моделей.
• OpenCV — библиотека компьютерного зрения для обработки и анализа изображений.
• XGBoost — библиотека для реализации алгоритмов градиентного бустинга.
• OpenDrift — фреймворк для моделирования дрейфа объектов на поверхности моря.

Хранилища и инфраструктурные сервисы
• MinIO — S3-совместимое объектное хранилище, используемое для хранения файлов, результатов вычислений и промежуточных данных.

Инструменты разработки и тестирования
• Pytest — фреймворк для модульного, интеграционного и функционального тестирования.
• GitLab — платформа управления исходным кодом и CI/CD, используемая в процессе разработки и сопровождения (не требуется для выполнения сервиса в продуктивной среде).
1.2 Языки программирования, на которых написан программный комплекс
Python — высокоуровневый язык программирования общего назначения; поддерживает несколько парадигм программирования: структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное. В языке присутствуют динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений и удобные высокоуровневые структуры данных. Программный код на Python организуется в функции и классы, которые могут объединяться в модули, а они, в свою очередь, могут быть объединены в пакеты. Python является основным языком для реализации алгоритмов ИИ, обработки данных и backend-логики. Используется для разработки нейросетевых моделей, обработки спутниковых данных и реализации бизнес-логики системы.

SQL — язык структурированных запросов (SQL) — язык программирования для хранения и обработки информации в реляционной базе данных. Реляционная база данных хранит информацию в табличной форме со строками и столбцами, представляющими различные атрибуты данных и различные связи между значениями данных. Используется для создания запросов к PostgreSQL/PostGIS для работы с пространственными данными и метаинформацией.

JavaScript — язык программирования, применяемый для реализации фронтенд-компонентов веб-интерфейса цифровой платформы OceanAI.
2 ФУНКЦИОНАЛЬНОЕ НАЗНАЧЕНИЕ
Программный модуль «OceanAI» предназначен для автоматизированного решения комплекса задач мониторинга морских акваторий с применением технологий искусственного интеллекта для обработки спутниковых данных. OceanAI включает в себя:
  1. расчетный модуль определения объектов (пленочные загрязнения, ледяные поля, опасные ледяные образования) на поверхности моря и их морфометрических параметров по данным ДЗЗ;
  2. алгоритм прогнозирования дрейфа пленочных (нефтяных) загрязнений, использующий прогнозные модели на основе градиентного бустинга.
Работа с программой осуществляется через веб-интерфейс. Область применения программы для ЭВМ: проектирование, строительство и эксплуатация зданий и сооружений в акваториях России.
Ключевые функциональные направления:
– автоматический мониторинг ледовой обстановки и детектирование опасных ледяных образований;
– экологический мониторинг акваторий с детектированием пленочных загрязнений;
– прогнозирование дрейфа ледяных полей и загрязнений;
– автоматическая идентификация вероятных источников загрязнений;
– расчет морфометрических характеристик объектов на поверхности моря.
3 ОПИСАНИЕ ЛОГИЧЕСКОЙ СТРУКТУРЫ
И ФУНКЦИОНИРОВАНИЯ СЕРВИСА
3.1 Общая структура Сервиса
OceanAI построен на микросервисной архитектуре и включает следующие основные модули:
– нейросеть для детектирования и сегментации ледяных полей;
– нейросеть для детектирования и сегментации нефтяных (плёночных) загрязнений;
– модуль загрузки данных дистанционного зондирования Земли — Sentinel-supplier;
– модуль предобработки данных дистанционного зондирования Земли — Sentinel-preprocessing;
– управляющий модуль для нейросетей — Sentinel-product;
– модуль поиска потенциальных источников загрязнения по данным АИС.
3.2. Описание модулей
3.2.1. Нейросеть для детектирования и сегментации ледяных полей
1. Назначение:

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

2. Входные данные:
  1. радиолокационные спутниковые изображения в формате GeoTIFF;
  2. изображения содержат два поляризационных канала (HH/HV);
  3. входные данные имеют географическую привязку.
3. Основные функции:
Нейросеть обеспечивает выполнение следующих функций:
  1. автоматическую пиксельную сегментацию изображения с выделением ледяных полей;
  2. формирование карты классов, включающей: фон (вода), ледяные поля, области вне исходных границ изображения (служебный класс);
  3. обработку изображений большого размера путём разбиения на фрагменты (тайлы);
  4. поддержку двух режимов обработки: с перекрытием фрагментов (повышение качества сегментации границ); без перекрытия фрагментов (повышение скорости обработки).
4. Выходные данные:
По результатам работы нейросети формируются:

  1. растровая карта сегментации ледяных полей;
  2. векторное представление границ ледяных полей;
  3. набор пространственных данных, пригодных для хранения, визуализации и последующей обработки;
  4. данные сохраняют географическую привязку исходных изображений.
3.2.2. Нейросеть для детектирования и сегментации нефтяных (плёночных) загрязнений
1. Назначение:
Нейросеть предназначена для автоматического выявления, сегментации и классификации плёночных загрязнений на поверхности моря по радиолокационным спутниковым данным.

2. Входные данные:
1. радиолокационные спутниковые изображения в формате GeoTIFF;
2. изображения содержат два поляризационных канала (HH/HV);
3. входные данные имеют географическую привязку.

3. Основные функции:
Нейросеть обеспечивает:
1. автоматическую сегментацию плёночных загрязнений на морской поверхности;
2. классификацию загрязнений по типам, включая:
  • судовые разливы,
  • загрязнения, связанные с марикультурой,
  • загрязнения, связанные с рыболовством,
  • естественные нефтепроявления,
  • начальные формы морского льда;
3. отделение загрязнений от фона чистой воды;
4. обработку изображений большого размера путём тайлинга;
5. работу в режимах с перекрытием и без перекрытия фрагментов.

4. Выходные данные:
В результате работы нейросети формируются:
1. растровая карта сегментации с классификацией по типам загрязнений;
2. векторные данные с геометрией обнаруженных загрязнений;
3. пространственные данные для дальнейшего анализа и визуализации;
4. данные сохраняют географическую привязку исходных изображений.
3.2.3. Модуль загрузки данных дистанционного зондирования Земли — Sentinel-
supplier
Назначение:
Модуль загрузки данных ДЗЗ предназначен для автоматической загрузки исходных файлов спутниковой съемки на заданный регион и интервал даты. Использует данные с аппарата Sentinel-1 и обращается к сервису ASF Data Search для поиска снимков.

Входные данные:
1. Интервал даты снимка
2. Географическая область поиска (координаты полигона)
3. Список продуктов (ледовые или пленочные: служебное поле для оптимизации
процесса загрузки и обработки)
4. Режимы съемки (служебное поле, определяет тип исходных данных)

Основные функции:
Модуль обеспечивает выполнение следующих функций:
1. Загрузка исходных данных Sentinel-1
2. Сохранение файлов в облачный сервис-хранилище
3. Запуск модуля препроцессинга для обработки снимка на вход нейросети

Выходные данные
По результатам работы модуля формируются:
1. Исходные файлы снимков Sentinel-1
2. Конфигурация на запуск для модуля препроцессинга
3.2.4. Модуль предобработки данных дистанционного зондирования Земли–
Sentinel-preprocessing.
Назначение:
Модуль предобработки данных ДЗЗ готовит исходные снимки Sentinel-1 для
корректной работы нейросетевых алгоритмов. Преобразования включают радиометрическую калибровку, расчет матрицы трансформации и подавление спекл-шумов.

Входные данные:
Исходные снимки Sentinel-1.

Основные функции:
Модуль обеспечивает выполнение следующих функций:
1. Преобразование исходных данных Sentinel-1, включая радиометрическую калибровку, расчет матрицы трансформации и подавление спекл-шумов.
4. Сохранение файлов в облачный сервис-хранилище
5. Запуск модуля sentinel-products — нейросетевая обработка снимков

Выходные данные
По результатам работы модуля формируются:
1. Растровые файлы, оптимизированные для алгоритмов нейросети
2. Конфигурация на запуск для модуля расчета нейросетевых продуктов sentinel-
products
3.2.5. Управляющий модуль для нейросетей — sentinel-product
Назначение:
Управляющий модуль для нейросетей осуществляет запуск алгоритмической обработки снимков и передачу результатов расчета в интерфейс системы Слойка.

Входные данные:
1. Предобработанные снимки Sentinel-1
2. Состав продуктов выбранных для расчета

Основные функции:
Модуль обеспечивает выполнение следующих функций:
1. Передача предобработанных снимков на вход нейросетевым алгоритмам
2. Обеспечение последовательности выполнения для продуктов, которые ожидают на вход результаты смежных расчетов
3. Сохранение результатов в облачный сервис-хранилище
4. Передача результатов в интерфейс системы Слойка

Выходные данные
По результатам работы модуля формируются:
1. Растровые и векторные файлы, как результат нейросетевой обработки снимка
2. Конфигурационные файлы для загрузки данных на интерактивную карту
3.2.6. Модуль поиска потенциальных источников загрязнения по данным АИС
Назначение:
Модуль поиска потенциальных источников загрязнения по данным АИС предназначен для автоматического выявления судов, зафиксированных в непосредственной близости от зоны нефтеразлива на интервале времени. Система формирует список судов и ранжирует их по удаленности от источника.

Входные данные:
1. Географически привязанные полигоны пленочных загрязнений с определенным типом — Нефтяные загрязнения.
2. Дата снимка.

Основные функции:
Модуль обеспечивает выполнение следующих функций:
1. Расчет центроида (геометрического центра) полигонов с учетом их площади.
2. Моделирование дрейфа пятна в прошлое на 72 часа и построение трека перемещения.
3. Построение буферной зоны вокруг трека.
4. Поиск местоположений судов внутри зоны на заданном интервале времени.
5. Расчет вероятности причастности судна в процентах в зависимости по удаленности от загрязнения.
6. Передача результатов расчетов на интерактивную карту Слойка.

Выходные данные
По результатам работы модуля формируются:
1. Векторные файлы центроид, трек дрейфа пятна, буферная зона, точки местоположения АИС в пределах зоны.
2. Конфигурация на обновление слоев в системе Слойка.
3.2.7. Взаимодействие между программными модулями
Типовой сценарий обработки данных:
1. Модуль сбора данных получает новые спутниковые снимки Sentinel-1 и сохраняет в S3
2. Модуль предварительной обработки выполняет калибровку и подготовку данных для анализа
3. Нейросетевой модуль выполняет сегментацию ледового покрова и детектирование загрязнений
4. Результаты сегментации передаются в модули прогнозирования дрейфа и идентификации источников
5. Модуль ассимиляции данных обновляет прогностические модели на основе актуальных данных
6. Модуль визуализации отображает итоговые данные в веб-интерфейсе платформы SLOYKA
7. Все этапы обработки фиксируются в БД для последующего анализа и формирования отчетности

Интеграция нейросетевых моделей в веб-сервис:
— Обученные модели U-Net для сегментации развернуты в отдельных Docker-контейнерах
— Взаимодействие между веб-сервисом и нейросетевыми модулями осуществляется через REST API
— Микросервисная архитектура позволяет независимо масштабировать вычислительные модули