Конвейер обработки

Chloros 1.1.0 использует 4-потоковый конвейер обработки, работающий по принципу поэтапной конвейерной линии. Каждый поток отвечает за отдельный этап рабочего процесса, что позволяет одновременно обрабатывать несколько изображений на разных этапах.


Архитектура конвейера


Images In → [Thread 1: Detection] → [Thread 2: Calibration] → [Thread 3: Processing] → [Thread 4: Export] → Files Out

Каждое изображение проходит по всем четырем потокам по порядку. Благодаря многопоточной обработке в Chloros+ несколько изображений могут одновременно находиться в разных потоках — пока поток 3 обрабатывает одно изображение, поток 1 может обнаруживать следующее, поток 2 — калибровать другое, а поток 4 — записывать ранее обработанное изображение на диск.


Подробная информация о потоках

Поток 1: Обнаружение

Назначение: Загрузка изображений и обнаружение калибровочных мишеней.

  • Считывает файлы изображений с диска (RAW, JPG)

  • Извлекает метаданные EXIF (GPS, модель камеры, временные метки, экспозиция)

  • Обнаруживает калибровочные мишени ArUco на изображениях с отмеченными мишенями

  • Результаты: данные изображения + метаданные + результаты обнаружения мишеней

Это в основном поток, ограниченный операциями ввода-вывода и ресурсами ЦП.

Поток 2: Калибровка

Назначение: Вычисление параметров калибровки по обнаруженным мишеням.

  • Вычисляет коэффициенты калибровки отражения по изображениям мишеней

  • Вычисляет параметры коррекции виньетирования

  • Определяет калибровочные кривые для каждого диапазона

  • Результаты: параметры калибровки для каждого изображения

Это вычислительный поток, ограниченный ресурсами ЦП.

Поток 3: Обработка (GPU)

Цель: Применение коррекций и вычисление индексов растительности.Это наиболее вычислительно-интенсивный поток.* Дебайеринг: преобразует данные RAW с матрицей Байера в многоканальные изображения

  • Стандартный (быстрый, среднее качество) — по умолчанию

  • С учетом текстуры (медленный, высочайшее качество) — только Chloros+, использует шумоподавление на основе ИИ/машинного обучения

  • Коррекция виньетирования: применяет коррекцию виньетирования объектива по всему изображению

  • Калибровка отражательной способности: Применяет коэффициенты калибровки для преобразования в значения отражательной способности

  • Расчет индексов: Вычисляет растительные индексы (NDVI, NDRE, GNDVI и т. д.)

  • Результаты: обработанные данные изображения, готовые к экспорту

Этот поток в наибольшей степени выигрывает от ускорения на GPU. Система Dynamic Compute Adaptation в первую очередь оптимизирует поведение этого потока.

Поток 4: Экспорт

Назначение: запись обработанных изображений на диск.

  • Запись выходных файлов в выбранном формате (TIFF 16-бит, TIFF 32-бит %, PNG, JPG)

  • Встраивает метаданные EXIF в выходные файлы (GPS, временные метки, параметры обработки)

  • Организует выходные данные в подпапки по моделям камер

  • Результаты: окончательные файлы на диске

Это в основном поток, ограниченный операциями ввода-вывода. Хранение на SSD значительно повышает производительность потока 4.


Последовательная обработка против конвейерной

Бесплатный режим (последовательный)

В бесплатной версии Chloros изображения обрабатываются по одному, последовательно проходя все четыре этапа:

Индикатор выполнения в графическом интерфейсе пользователя отображает 2 этапа: «Обнаружение цели» и «Обработка».

Режим Chloros+ (конвейерная)

При наличии лицензии Chloros+ все четыре потока работают одновременно с разными изображениями:

Индикатор выполнения в графическом интерфейсе пользователя отображает 4 этапа: обнаружение, анализ, калибровка, экспорт. Наведите курсор на индикатор выполнения, чтобы увидеть ход выполнения по каждому потоку.

circle-check

Ход экспорта в потоке 4

В Chloros 1.1.0 поток экспорта (поток 4) имеет собственное отслеживание хода выполнения. Вы можете отслеживать ход экспорта отдельно:CLI:

SDK:

Обработка завершена, когда поток 4 достигает 100%.


Связь с динамической адаптацией вычислений

Система динамической адаптации вычислений в первую очередь влияет на поток 3 (обработка):

  • GPU_PARALLEL стратегия: поток 3 одновременно обрабатывает несколько изображений на GPU, используя конвейер fused_gpu

  • Стратегия GPU_SINGLE: поток 3 обрабатывает по одному изображению за раз, используя конвейер tiled_gpu с эффективным использованием памяти

  • Стратегия CPU_PARALLEL: поток 3 использует обработку на базе ЦП с многопоточным параллелизмом

Распределение памяти GPU в потоке 3 также динамически изменяется по мере завершения работы потоков 1 и 2 — см. Динамическое распределение памяти GPU.


Следующие шаги

Последнее обновление