Процес на обработка

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: Калибриране

Цел: Изчислява калибрационни параметри от откритите цели.

  • Изчислява коефициенти за калибриране на отражателната способност от изображенията на целите

  • Изчислява параметри за корекция на винетирането

  • Определя криви за калибриране за всеки канал

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

Това е изчислителен поток, обвързан с CPU.

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

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

  • Стандартен (бърз, средно качество) — по подразбиране

  • С отчитане на текстурата (бавен, най-високо качество) — само Chloros+, използва AI/ML за отстраняване на шума

  • Корекция на винетирането: Прилага корекция на винетирането на обектива върху цялото изображение

  • Калибриране на отражателната способност: Прилага калибрационни коефициенти за преобразуване в стойности на отражателната способност

  • Изчисляване на индекси: Изчислява растителни индекси (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 използва обработка на базата на CPU с многонишкова паралелност

Разпределението на паметта на GPU на Thread 3 също се променя динамично, когато Threads 1 и 2 приключат — вижте Динамично разпределение на паметта на GPU.


Следващи стъпки

Last updated