Pipeline di elaborazione
Chloros 1.1.0 utilizza una pipeline di elaborazione a 4 thread che funziona come una catena di montaggio a fasi. Ogni thread gestisce una fase distinta del flusso di lavoro di elaborazione, consentendo l'elaborazione simultanea di più immagini in fasi diverse.
Architettura della pipeline
Images In → [Thread 1: Detection] → [Thread 2: Calibration] → [Thread 3: Processing] → [Thread 4: Export] → Files OutOgni immagine passa attraverso tutti e quattro i thread in ordine. Con l'elaborazione multithread di Chloros+, più immagini possono trovarsi contemporaneamente in thread diversi: mentre il thread 3 elabora un'immagine, il thread 1 può rilevarne la successiva, il thread 2 può calibrarne un'altra e il thread 4 può scrivere su disco un'immagine elaborata in precedenza.
Dettagli sui thread
Thread 1: Rilevamento
Scopo: Caricare immagini e rilevare i target di calibrazione.
Legge i file immagine dal disco (RAW, JPG)
Estrae i metadati EXIF (GPS, modello della fotocamera, timestamp, esposizione)
Rileva i target di calibrazione ArUco nelle immagini dei target contrassegnati
Output: dati immagine + metadati + risultati del rilevamento dei target
Si tratta principalmente di un thread legato all'I/O e alla CPU.
Thread 2: Calibrazione
Scopo: Calcolare i parametri di calibrazione dai target rilevati.
Calcola i coefficienti di calibrazione della riflettanza dalle immagini dei target
Calcola i parametri di correzione della vignettatura
Determina le curve di calibrazione per banda
Output: parametri di calibrazione per ciascuna immagine
Questo è un thread di calcolo legato alla CPU.
Thread 3: Elaborazione (GPU)
Scopo: Applicare le correzioni e calcolare gli indici di vegetazione.Questo è il thread che richiede la maggiore potenza di calcolo.* Debayering: Converte i dati RAW con pattern Bayer in immagini multicanale
Standard (Veloce, Qualità media) — impostazione predefinita
Texture Aware (Lento, Massima qualità) — solo Chloros+, utilizza la denoising AI/ML
Correzione della vignettatura: Applica la correzione della vignettatura dell'obiettivo all'intera immagine
Calibrazione della riflettanza: applica coefficienti di calibrazione per convertire i valori in valori di riflettanza
Calcolo degli indici: calcola gli indici di vegetazione (NDVI, NDRE, GNDVI, ecc.)
Output: dati dell'immagine elaborati pronti per l'esportazione
Questo thread trae il massimo vantaggio dall'accelerazione GPU. Il sistema Dynamic Compute Adaptation ottimizza principalmente il comportamento di questo thread.
Thread 4: Esportazione
Scopo: Scrivere le immagini elaborate su disco.
Scrive i file di output nel formato selezionato (TIFF 16-bit, TIFF 32-bit %, PNG, JPG)
Incorpora i metadati EXIF nei file di output (GPS, timestamp, parametri di elaborazione)
Organizza l'output in sottocartelle relative al modello di fotocamera
Output: file finali su disco
Si tratta principalmente di un thread vincolato dall'I/O. L'utilizzo di un'unità SSD migliora significativamente le prestazioni del Thread 4.
Elaborazione sequenziale vs. elaborazione in pipeline
Modalità gratuita (sequenziale)
Nella versione gratuita di Chloros, le immagini vengono elaborate una alla volta, in modo sequenziale attraverso tutte e quattro le fasi:
La barra di avanzamento della GUI mostra 2 fasi: Rilevamento del bersaglio ed Elaborazione.
Modalità Chloros+ (in pipeline)
Con una licenza Chloros+, tutti e quattro i thread operano in modo concorrente su immagini diverse:
La barra di avanzamento dell'interfaccia grafica mostra 4 fasi: Rilevamento, Analisi, Calibrazione, Esportazione. Passa il mouse sulla barra di avanzamento per visualizzare lo stato di avanzamento per ogni thread.
L'elaborazione in pipeline con Chloros+ può essere da 3 a 5 volte più veloce dell'elaborazione sequenziale, a seconda dell'hardware e delle dimensioni del set di dati. L'aumento di velocità è maggiore su sistemi con GPU veloci e SSD.
Stato di avanzamento dell'esportazione del thread 4
In Chloros 1.1.0, il thread di esportazione (Thread 4) dispone di un proprio monitoraggio dedicato dello stato di avanzamento. È possibile monitorare separatamente lo stato di avanzamento dell'esportazione:CLI:
SDK:
L'elaborazione è completata quando il Thread 4 raggiunge il 100%.
Relazione con l'adattamento dinamico del calcolo
Il sistema Dynamic Compute Adaptation influisce principalmente sul Thread 3 (Elaborazione):
Strategia
GPU_PARALLEL: il Thread 3 elabora più immagini contemporaneamente tramite la GPU utilizzando la pipelinefused_gpuStrategia
GPU_SINGLE: il Thread 3 elabora un'immagine alla volta utilizzando la pipelinetiled_gpu, efficiente in termini di memoriaStrategia
CPU_PARALLEL: il Thread 3 utilizza l'elaborazione basata su CPU con parallelismo multithread
L'allocazione della memoria GPU del thread 3 cambia anche dinamicamente man mano che i thread 1 e 2 completano l'elaborazione — vedi Allocazione dinamica della memoria GPU.
Passi successivi
Adattamento dinamico dell'elaborazione — Come Chloros seleziona la strategia ottimale per il tuo hardware
Guida NVIDIA Jetson — Comportamento della pipeline specifico per la piattaforma su Jetson
Monitoraggio dell'elaborazione — Monitoraggio dell'avanzamento tramite GUI
Ultimo aggiornamento