• Project A: one-line summary and link
  • Project B: one-line summary and link

Project Pipeline Overview

flowchart TB %% ---------- Styles ---------- classDef data fill:#e3f2fd,stroke:#1565c0,color:#0d47a1 classDef store fill:#fffde7,stroke:#f9a825,color:#6d4c41 classDef proc fill:#f3e5f5,stroke:#6a1b9a,color:#4a148c classDef model fill:#e8f5e9,stroke:#2e7d32,color:#1b5e20 classDef deploy fill:#ffebee,stroke:#c62828,color:#b71c1c classDef metric fill:#ede7f6,stroke:#4527a0,color:#311b92,stroke-dasharray: 5 3 classDef note fill:#fafafa,stroke:#9e9e9e,color:#616161 %% ---------- Legend ---------- subgraph Legend direction LR L1["Data"]:::data --> L2["Storage"]:::store --> L3["Processing"]:::proc --> L4["Model"]:::model --> L5["Deploy/Serve"]:::deploy --> L6["Metrics"]:::metric end %% ---------- Pipeline ---------- A1["Satellite sensors (Optical, SAR, Multispectral)"]:::data --> A2[("Raw scenes\nGeoTIFF/SAFE")]:::store subgraph Preprocessing direction LR P1["Radiometric & Atmospheric Correction"]:::proc --> P2["Orthorectify & Reproject"]:::proc --> P3["Cloud/Shadow Masking"]:::proc --> P4["Tile / Patchify"]:::proc end A2 --> P1 P4 --> A3[("Labeled tiles\nCOCO/GeoJSON")]:::store A3 --> P5["Train/Val/Test Split & Augmentation"]:::proc %% Task selection T{"Task"}:::proc -->|Segmentation| Mseg["U-Net / DeepLab / SegFormer"]:::model T -->|Detection| Mdet["YOLO / RetinaNet"]:::model T -->|Change detection| Mchg["Siamese U-Net / ST-Transformer"]:::model P5 --> T %% Training loop subgraph Training direction LR L1a["Loss: CE / Dice / Focal"]:::metric --> L2a["Metrics: IoU / F1 / AA"]:::metric end Mseg --> L1a Mdet --> L1a Mchg --> L1a %% Inference + Post I1["Batch/Streaming Inference"]:::proc --> I2["Post-processing:\nMorphology, Sieve, CRF"]:::proc --> I3[("Geo products:\nMasks, Vectors, Heatmaps")]:::store Mseg --> I1 Mdet --> I1 Mchg --> I1 %% Serving / Deployment I3 --> D1(("Deploy")):::deploy D1 --> D2["Serve: API, TMS/WMTS, Tiles"]:::proc %% Monitoring & Feedback D2 --> Mon["Monitoring:\nData/Label/Concept Drift"]:::metric --> Cur["Active Learning / Re-label"]:::proc --> P5 %% Notes N1["All data in same CRS; track provenance/metadata"]:::note P2 --- N1

Updated: