Files
remote-sensing/BASELINE_TRACKING_GUIDE.md
T

7.4 KiB
Executable File

📊 Baseline Tracking Integration Guide

Đã Hoàn Thành

🌥️ Cloud Removal Training - Baseline PSNR Tracking

1. Backend API Updates

File: api_server.py

  • Thêm cloud_training_status global với tracking chi tiết:

    • current_epoch, total_epochs
    • train_loss, val_loss, val_psnr
    • baseline_psnr, improvement
    • history arrays cho plotting
  • Endpoint mới:

    • GET /api/cloud-removal/training/status - Lấy trạng thái real-time
    • POST /api/cloud-removal/training/stop - Dừng training
  • Cập nhật run_cloud_training():

    • Callback function update_status() để track mỗi epoch
    • Return đầy đủ: val_psnrs, baseline_psnr, improvement

File: train_cloud_removal.py

  • Thêm parameter status_callback vào train_cloud_removal_model()
  • Gọi callback sau mỗi epoch với metrics đầy đủ
  • Return thêm val_psnrsbaseline_psnr
  • Tính toán baseline PSNR một lần trước training
  • So sánh model PSNR vs baseline mỗi epoch

2. Frontend Web Interface Updates

File: cloud_training_interface.html

  • Thêm Chart.js CDN

  • Metrics Dashboard với 4 cards:

    • 📈 Model PSNR (real-time)
    • 📉 Baseline PSNR (cận dưới cố định)
    • Improvement (Model - Baseline)
    • 🎯 Progress (Epochs)
  • Real-time PSNR Chart:

    • Line chart với 3 datasets
    • Model PSNR (blue line)
    • Baseline PSNR (red dashed line)
    • Improvement (green line, right axis)
  • Auto-polling status mỗi 2 giây

  • Live logs với emoji indicators

  • Stop training button

  • Model list hiển thị PSNR + Baseline

🚀 Cách Sử Dụng

1. Khởi động API Server

cd /media/x79/2A7D-FAA0/remote-sensing
python api_server.py

2. Mở Web Interface

Truy cập: http://localhost:8000/cloud-training

3. Start Training

  1. Điền các thông số:

    • Data Directory: winter_dataset
    • Model Name: cloud_removal_unet
    • Batch Size: 8
    • Epochs: 50
    • Learning Rate: 0.0001
    • Use GPU
    • Use S1
  2. Click 🚀 Start Training

4. Theo dõi Real-time

Bạn sẽ thấy:

📊 Training Status - Real-time Baseline PSNR Tracking

┌─────────────────┬─────────────────┬─────────────────┬─────────────────┐
│  📈 Model PSNR  │ 📉 Baseline PSNR│ ⚡ Improvement  │  🎯 Progress    │
│    25.43 dB     │    18.50 dB     │    +6.93 dB     │    15/50        │
│ (higher better) │  (cận dưới)     │ (Model-Baseline)│    (30%)        │
└─────────────────┴─────────────────┴─────────────────┴─────────────────┘

📊 PSNR vs Baseline - Live Chart
[Biểu đồ real-time hiển thị Model PSNR vượt qua Baseline]

Training Logs:
[10:15:23] ✅ Training started: 20260223_101523
[10:15:25] Epoch 5: Model PSNR=22.15dB, Baseline=18.50dB, Improvement=✅ +3.65dB
[10:15:30] Epoch 10: Model PSNR=24.80dB, Baseline=18.50dB, Improvement=✅ +6.30dB

5. Hiểu Kết Quả

  • Baseline PSNR = PSNR nếu ta giữ nguyên ảnh cloudy (không làm gì)
  • Model PSNR = PSNR giữa output model và ground truth clean
  • Improvement = Model PSNR - Baseline PSNR

Model TỐT:

Model PSNR: 25.43 dB
Baseline:   18.50 dB
→ Improvement: +6.93 dB (37.5%) ✅

Model TỆ:

Model PSNR: 16.20 dB
Baseline:   18.50 dB
→ Improvement: -2.30 dB (-12.4%) ❌
→ Model đang làm TỒI hơn là không làm gì!

📈 Metrics Visualization

Terminal Output

================================================================
📏 TÍNH CẬN DƯỚI (BASELINE) - CHỈ TÍNH 1 LẦN DUY NHẤT
================================================================
🔍 Đang tính Cận dưới (Baseline PSNR)...
   Baseline = PSNR(s2_cloudy, s2_clean)
Calculating Baseline: 100%|████████████| 10/10 [00:05<00:00, 1.85it/s]

✅ Cận dưới (Baseline PSNR): 18.50 dB
   → Đây là 'thanh thước đo' - model phải vượt qua giá trị này!
================================================================

Epoch 1 Summary:
  📊 PSNR Comparison:
  ├─ Model PSNR:      22.15 dB
  ├─ Baseline PSNR:   18.50 dB (cận dưới)
  └─ Improvement:     +3.65 dB (+19.7%)
     ✅ Model đang TỐT HƠN baseline!

Web Interface Chart

Biểu đồ sẽ hiển thị:

  • Blue line (solid): Model PSNR - phải tăng dần
  • Red line (dashed): Baseline PSNR - nằm ngang
  • Green area: Vùng Model > Baseline (tốt)
  • Red area: Vùng Model < Baseline (tệ)

🛠️ Advanced Features

1. Tensorboard Integration

Metrics cũng được log vào Tensorboard:

tensorboard --logdir=cloud_removal_model/runs

Xem tại: http://localhost:6006

Metrics available:

  • Loss/train
  • Loss/val
  • PSNR/model
  • PSNR/baseline
  • PSNR/improvement
  • Learning_Rate

2. Model Comparison

Model list hiển thị:

📦 cloud_removal_unet_best.pth
├─ 📈 Model PSNR: 25.43 dB
├─ 📉 Baseline PSNR: 18.50 dB
└─ ⚡ Improvement: +6.93 dB ✅

3. Saved Model Metadata

File .pth chứa:

{
    'epoch': 48,
    'model_state_dict': ...,
    'optimizer_state_dict': ...,
    'train_loss': 0.0123,
    'val_loss': 0.0098,
    'val_psnr': 25.43,           # NEW
    'baseline_psnr': 18.50,      # NEW
    'use_s1': True,
    'in_channels': 6,
    'out_channels': 4
}

📝 Best Practices

1. Training Strategy

  • Baseline thấp (< 15 dB) → Dữ liệu có nhiều mây, khó khử
  • Baseline cao (> 20 dB) → Dữ liệu ít mây, dễ khử
  • Target: Model PSNR > Baseline + 5 dB là rất tốt!

2. Validation Schedule

  • Tính Baseline trước Epoch 1
  • Validate sau mỗi epoch
  • Save model khi PSNR cao nhất, không phải loss thấp nhất

3. Early Stopping

Nếu sau 10 epochs mà Improvement < 0: → Điều chỉnh architecture hoặc hyperparameters!

🔮 Future Enhancements

Land Classification Baseline

Tương tự, cho land classification có thể dùng:

  • Baseline Accuracy = Accuracy của majority class classifier
  • Ví dụ: Dataset có 70% class "Lua" → Baseline = 0.70
  • Model phải > 0.70 để có ý nghĩa!

📚 References

  • PSNR (Peak Signal-to-Noise Ratio): Metric đánh giá chất lượng ảnh

    • Formula: PSNR = 20 * log10(MAX) - 10 * log10(MSE)
    • Unit: dB (decibel)
    • Higher is better
    • Typical range for cloud removal: 15-30 dB
  • Baseline methodology được sử dụng rộng rãi trong research papers:

    • SEN12MS-CR dataset paper
    • Cloud removal benchmarks
    • Image restoration competitions

Summary

Bạn đã thành công tích hợp:

  1. Backend tracking với real-time callbacks
  2. API endpoints cho status polling
  3. Web interface với live charts
  4. Baseline PSNR làm "thanh thước đo"
  5. Professional visualization với Chart.js
  6. Model metadata lưu PSNR metrics

Đây là một hệ thống tracking cực kỳ chuyên nghiệp, tương đương với các công cụ như:

  • Weights & Biases (WandB)
  • MLflow
  • TensorBoard (đã tích hợp sẵn)

Happy Training! 🚀