Files
remote-sensing/md/plan.txt
T

45 lines
3.3 KiB
Plaintext

# Chiến lược Nâng Cấp Toàn Diện: 2D Patch-based & Cloud Removal
Để vượt qua giới hạn độ chính xác 75% của mô hình 1D hiện tại và chạm đến mốc **95%**, hệ thống cần có khả năng "nhìn" bức ảnh ở góc độ không gian 2D (nhận diện kết cấu/vân/bối cảnh xung quanh) và loại bỏ hoàn toàn nhiễu mây trước khi phân tích.
## User Review Required
> [!IMPORTANT]
> Đây là một sự lột xác hoàn toàn về kiến trúc AI của toàn bộ hệ thống (chuyển đổi từ dữ liệu dạng điểm - Tabular Data sang ảnh vệ tinh thu nhỏ - 2D Patches).
> 1. Bộ nhớ Cache (RAM và Disk) sẽ tốn nhiều không gian hơn gấp 256 lần cho mỗi điểm (do lưu trữ ma trận $16 \times 16$ thay vì $1 \times 1$).
> 2. Việc kết hợp khử mây vào quá trình tạo dữ liệu sẽ mất nhiều thời gian chạy mạng DeepInpainting (U-Net) hơn bình thường.
> Bạn vui lòng nhấn **Proceed** nếu đồng ý với kiến trúc mới này.
## Proposed Changes
Tôi sẽ tạo một luồng pipeline hoàn toàn mới dành riêng cho mô hình 2D để không làm phá vỡ sự ổn định của hệ thống 1D XGBoost hiện tại.
### 1. Trích xuất Dữ liệu 2D Patch
Thay vì chỉ lấy đúng 1 pixel tọa độ $1 \times 1$ cho mỗi điểm Ground Truth, hệ thống sẽ cắt ra một ô vuông (Window Patch) kích thước **$16 \times 16$** (tương đương với một khu vực $\sim 2.5 \text{ hecta}$ ngoài thực địa).
### 2. Tích hợp Mô hình Khử Mây (Cloud Removal)
Với mỗi Patch $16 \times 16$ vừa trích xuất:
- Khởi chạy chiến lược `DeepInpaintingStrategy` (sử dụng trọng số `cloud_removal_unet_best.pth`).
- Khôi phục lại các mảng pixel bị mây che lấp thành ảnh sạch hoàn toàn trước khi đi vào máy học.
### 3. Nâng cấp Kiến trúc Mô Hình
Thay vì sử dụng `SwinUNetClassifier` dạng 1D, tôi sẽ lập trình các mạng phân loại ảnh 2D chuẩn mực:
- **CNN2DClassifier**: Mạng tích chập không gian để làm base model.
- **SwinUNet2DClassifier**: Áp dụng Vision Transformer trên cấu trúc mảng $16 \times 16$ để nắm bắt mối quan hệ không gian.
### [NEW] `train_land_2d_patch.py`
Đây sẽ là file thực thi chính cho tiến trình này, bao gồm:
- Tạo bộ cache mới dạng 2D tensor `training_data_2d.joblib`.
- Gọi hệ thống U-Net để làm sạch mây ngay trong lúc trích xuất.
- Huấn luyện vòng lặp bằng PyTorch trên mô hình 2D CNN/Swin-UNet.
- Vòng lặp Tuning tự động để đẩy độ chính xác vượt mốc 95%.
## Verification Plan
### Automated Tests
1. Hệ thống sẽ tự động cắt thử một vài Patch $16 \times 16$ và chạy qua U-Net khử mây để kiểm tra dòng chảy dữ liệu (Tensor shape = `[B, C, 16, 16]`).
2. Tự động chia tập Train/Test theo tỷ lệ 80/20 và bắt đầu huấn luyện. Mục tiêu chốt sổ tự động dừng khi Test Accuracy > 95%.
### Manual Verification
Khi hoàn tất, bạn có thể kiểm tra kết quả `accuracy` và `f1-score` trong bảng thông báo, đồng thời hệ thống sẽ xuất ra file `.joblib` chứa trọng số 2D.