Конвеєр обробки

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+, використовує шумозаглушення на основі AI/ML

  • Корекція віньєтування: застосовує корекцію віньєтування об'єктива до всього зображення

  • Калібрування відбиття: Застосовує калібрувальні коефіцієнти для перетворення у значення відбиття

  • Розрахунок індексів: Обчислює індекси рослинності (NDVI, NDRE, GNDVI тощо)

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

Цей потік найбільше виграє від прискорення за допомогою графічного процесора. Система Динамічної адаптації обчислень в першу чергу оптимізує поведінку цього потоку.

Потік 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 одночасно обробляє кілька зображень на графічному процесорі, використовуючи конвеєр fused_gpu

  • Стратегія GPU_SINGLE: Потік 3 обробляє по одному зображенню за раз, використовуючи конвеєр tiled_gpu, що ефективно використовує пам'ять

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

Розподіл пам'яті GPU потоку 3 також динамічно змінюється у міру завершення роботи потоків 1 і 2 — див. Динамічний розподіл пам'яті GPU.


Наступні кроки

Last updated