Обзор
QuaSAR – это программный комплекс для формирования радиолокационных изображений с синтезированной апертурой (РСА), сочетающий строгую типизацию и безопасность работы с памятью языка Rust с вычислительной мощностью параллельных архитектур NVIDIA CUDA.
Основная задача программного комплекса QuaSAR – трансформация «сырых» сигналов (голограмм) в детализированные геопривязанные изображения или видеопотоки.
Возможности
Телескопические изображения
В телескопическом режиме изображение формируется в пределах луча диаграммы направленности антенны. Это позволяет достичь максимальной разрешающей способности, однако охват изображения ограничен поверхностью, захватываемой лучом диаграммы направленности антенны радара.

Полосовые изображения
Изображение формируется непрерывно по мере движения носителя («склеивается» из полос). Режим обеспечивает широкий охват земной поверхности на протяжении всего маршрута при сохранении стабильного качества детализации.

Автофокусировка
Из-за навигационных ошибок и турбулентности изображение, сформированное с номинальной скоростью носителя, может оказаться расфокусированным. QuaSAR реализует автофокусировку на основе минимизации энтропии.
Алгоритм перебирает несколько вариантов опорной скорости, в диапазоне 60–140% от навигационного значения. Для каждого варианта скорости осуществляется построение радиолокационного изображения в окрестности заранее выбранного точечного отражателя, после чего вычисляется энтропия сектора. Минимум энтропии соответствует наилучшей фокусировке. Найденная оптимальная скорость используется при формировании финального изображения.

Видеопоток
Видеорежим реализован в виде покадрового синтезирования телескопических радиолокационных изображений с временной выборкой: каждый кадр синтезируется независимо из скользящего временного окна голограммы. Результат кодируется в H.265/HEVC через FFmpeg с настраиваемыми параметрами качества (CRF 18–28) и частотой до 120 кадров/сек.
Формирование и сохранение кадров распараллелены через двухпоточный конвейер с неблокирующими каналами crossbeam, что исключает простой потоков в ожидании записи на диск.
Распознавание объектов
В состав комплекса интегрирован модуль распознавания объектов на базе нейросети YOLO11 OBB. В отличие от стандартных детекторов, OBB-модель учитывает угол поворота объектов, что критически важно для радиолокационных снимков.
Модуль распознавания автоматически маркирует на радиолокационном изображении объекты (например, технику, транспортные средства, строения).

Архитектура
Процесс обработки сигнала представляет собой многоступенчатый конвейер.
Ключевые этапы обработки:
- Чтение сигнала: парсинг бинарного потока с использованием
mmap, поиск синхроимпульсов и выборка временного окна - Сжатие по дальности: оконное преобразование Фурье, выполняемое на ЦП или CUDA-ядрах
- Вычисление навигационных параметров: расчёт ключевых навигационных параметров (угла сноса, скорости движения) по характеристикам сигнала методом Левенберга-Марквадта
- BPA: основной вычислительный узел, выполняющий попиксельную двумерную согласованную фильтрацию сигнала. Реализация алгоритма на CUDA включает в себя следующие низкоуровневые оптимизации:
- Zero-allocation: алгоритм не аллоцирует память за пределами основного буфера изображения. Планы cuFFT и промежуточные буферы кэшируются;
- Интринсики NVIDIA: применяются аппаратные интринсики NVIDIA CUDA для тригонометрических операций и приведения типов;
- Оптимизация доступа к глобальной памяти: алгоритм использует интринсик
__ldgдля быстрых обращений к глобальной видеопамяти; - Асинхронное выполнение: использование
cudaMemcpyAsyncпозволяет использовать время, необходимое для копирования данных в видеопамять, для вычислений.
- Фокусировка: компенсация фазовых ошибок методом минимизации энтропии изображения
- Визуализация и рендеринг: динамическое улучшение контрастности с применением алгоритма адаптивной эквализации гистограмм и опциональное мультиплексирование видеопотока в формате MP4 (H.265)
Поддерживаемые платформы
Программный комплекс спроектирован как кроссплатформенное решение с акцентом на встраиваемые системы и успешно функционирует на широком спектре устройств.
Семейство NVIDIA Jetson Orin
Целевая платформа комплекса. Проект оптимизирован для работы на модулях NVIDIA, обеспечивая максимальную производительность на ватт при обработке радиолокационных данных в полевых условиях. Поддерживаются:
- Jetson Orin AGX
- Jetson Orin NX
- Jetson Orin Nano
Особенности: полная поддержка аппаратного ускорения через NVIDIA CUDA (архитектура sm_87/compute_87) и использование специализированных кодеков для мультиплексирования видеопотока.
Одноплатные компьютеры (SBC)
Несмотря на отсутствие аппаратного ускорения на этих платформах, высокая эффективность параллельных вычислений на ЦП позволяет использовать программный комплекс на таких одноплатных компьютерах как, например, Raspberry Pi 4/5.
Персональные компьютеры
- Linux (x86_64): основная среда разработки и анализа. На ПК с дискретными видеоадаптерами NVIDIA (архитектуры Ampere, Blackwell) достигается максимальная скорость формирования радиолокационных изображений.
Сравнение платформ
Для сравнения выбрано время формирования полосового радиолокационного изображения участка местности размером 3,000 × 4,529 м.
| Платформа | Режим | Время выполнения |
|---|---|---|
| Jetson Orin AGX | GPU (CUDA) | 35.2 с |
| Jetson Orin NX | GPU (CUDA) | 48.1 с |
| Jetson Orin Nano | GPU (CUDA) | 48.3 с |
| ПК (RTX 5070, AMD Ryzen 5 7600) | GPU (CUDA) | 14.0 с |
| ПК (RTX 5070, AMD Ryzen 5 7600) | CPU (12 потоков) | 39.8 с |
| Raspberry Pi 5 | CPU (4 потока) | 116.5 с |
Технологический стек
Проект написан на языке Rust (Edition 2024). Для достижения максимальной производительности при обработке сигналов используется CUDA 12, интеграция с которой выполнена через C FFI.
Используемые библиотеки
Обработка сигналов и математические вычисления
- NVIDIA cuFFT
– высокопроизводительная библиотека для выполнения БПФ на ядрах CUDA; - rustfft и realfft – эффективные реализации БПФ на ЦП, поддерживающие наборы инструкций AVX и SSE4.1 (x86_64) и NEON (ARM64);
- ndarray и nalgebra
– работа с многомерными массивами и линейной алгеброй
Параллелизм
- crossbeam – набор инструментов для реализации многопоточности
- rayon – библиотека, реализующая work-stealing параллелизм
Системные API
- jemallocator – высокопроизводительный аллокатор памяти, минимизирующий фрагментацию при интенсивных нагрузках
- memmap2 – проекция файлов в ОЗУ (
mmap), позволяющая эффективно обрабатывать большие голограммы
Работа с данными и форматами
- GDAL
– библиотека для чтения и записи геопространственных растровых данных - memchr – оптимизированный поиск паттернов в голограмме
- serde – фреймворк сериализации/десериализации данных общего назначения
Визуализация и анализ
- OpenCV
– открытая библиотека компьютерного зрения - plotters – библиотека для построения графиков и диаграмм
- FFMpeg
– универсальный инструмент для обработки мультимедиа
Для профайлинга и выявления узких мест используется Tracy.
