処理パイプライン
Chloros 1.1.0 は、段階的な組立ラインとして動作する 4 スレッドの処理パイプラインを採用しています。各スレッドは処理ワークフローの異なるフェーズを担当し、複数の画像を異なる段階で並行して処理することが可能です。
パイプラインアーキテクチャ
Images In → [Thread 1: Detection] → [Thread 2: Calibration] → [Thread 3: Processing] → [Thread 4: Export] → Files Out各画像は、4つのスレッドすべてを順番に通過します。Chloros+のマルチスレッド処理では、複数の画像が同時に異なるスレッドで処理されることが可能です。つまり、スレッド3が1つの画像を処理している間、スレッド1は次の画像の検出を行い、スレッド2は別の画像のキャリブレーションを行い、スレッド4は以前に処理された画像をディスクに書き込むといったことが可能です。
スレッドの詳細
スレッド 1: 検出
目的: 画像を読み込み、キャリブレーションターゲットを検出します。
ディスクから画像ファイルを読み込みます(RAW、JPG)
EXIFメタデータを抽出(GPS、カメラモデル、タイムスタンプ、露出)
マークされたターゲット画像からArUcoキャリブレーションターゲットを検出
出力:画像データ + メタデータ + ターゲット検出結果
これは主にI/OおよびCPUに依存するスレッドです。
スレッド2:キャリブレーション
目的:検出されたターゲットからキャリブレーションパラメータを計算する。
ターゲット画像から反射率キャリブレーション係数を算出
ヴィネット補正パラメータを算出
バンドごとのキャリブレーションカーブを決定
出力:各画像のキャリブレーションパラメータ
これはCPUに依存する計算スレッドです。
スレッド3:処理(GPU)
目的:補正を適用し、植生指数を算出する。これは最も計算負荷の高いスレッドです。* デベイヤー処理:RAWベイヤーパターンデータをマルチチャンネル画像に変換します
標準(高速、中品質) — デフォルト
テクスチャ対応(低速、最高品質) — Chloros+ のみ、AI/MLノイズ除去を使用
ヴィネット補正:画像全体にレンズのヴィネット補正を適用します
反射率補正:補正係数を適用し、反射率値に変換します
指数計算:植生指数(NDVI、NDRE、GNDVI など)を計算します
出力:エクスポート可能な処理済み画像データ
このスレッドは、GPUアクセラレーションの恩恵を最も受けます。ダイナミック・コンピュート・アダプテーションシステムは、主にこのスレッドの動作を最適化します。
スレッド 4: エクスポート
目的: 処理済みの画像をディスクに書き込む。
選択された形式(TIFF 16ビット、TIFF 32ビット、PNG、JPG)で出力ファイルを書き込みます
出力ファイルにEXIFメタデータ(GPS、タイムスタンプ、処理パラメータ)を埋め込みます
出力ファイルをカメラモデルのサブフォルダに整理します
出力:ディスク上の最終ファイル
これは主にI/Oに依存するスレッドです。SSDストレージを使用すると、スレッド4のパフォーマンスが大幅に向上します。
順次処理とパイプライン処理
フリーモード(順次処理)
Chlorosの無料版では、画像は1枚ずつ、4つのステージすべてを順次処理します:
GUIの進行状況バーには、「ターゲット検出」と「処理」の2つのステージが表示されます。
Chloros+ モード(パイプライン処理)
Chloros+ ライセンスでは、4つのスレッドすべてが異なる画像に対して並行して動作します:
GUIの進行状況バーには、検出、分析、キャリブレーション、エクスポートの4つの段階が表示されます。進行状況バーにカーソルを合わせると、スレッドごとの進行状況を確認できます。
Chloros+ によるパイプライン処理は、お使いのハードウェアやデータセットのサイズにもよりますが、順次処理に比べて 3~5 倍高速になる場合があります。高速な GPU と SSD を搭載したシステムでは、その速度向上が最も顕著です。
スレッド 4 のエクスポート進捗
Chloros 1.1.0 では、エクスポートスレッド(スレッド 4)に専用の進捗追跡機能が追加されました。エクスポートの進捗状況を個別に監視できます:
CLI:
SDK:
スレッド 4 が 100% に達すると、処理は完了します。
ダイナミック・コンピュート・アダプテーションとの関係
ダイナミック・コンピュート・アダプテーションシステムは、主に**スレッド3(処理)**に影響を与えます:
**
GPU_PARALLEL**戦略:スレッド3は、fused_gpuパイプラインを使用して、複数の画像をGPU上で同時に処理しますGPU_SINGLE戦略:スレッド 3 は、メモリ効率に優れたtiled_gpuパイプラインを使用して、一度に 1 つの画像を処理しますCPU_PARALLEL戦略:スレッド 3 は、マルチスレッド並列処理を用いた CPU ベースの処理を使用します
スレッド 3 の GPU メモリ割り当ては、スレッド 1 および 2 が完了するにつれて動的に変化します。詳細は 動的 GPU メモリ割り当て を参照してください。
次のステップ
動的コンピュート適応 — Chlorosがハードウェアに最適な戦略を選択する方法
NVIDIA Jetsonガイド — Jetsonにおけるプラットフォーム固有のパイプライン動作
処理のモニタリング — GUIによる進行状況のモニタリング
最終更新