# 🎉 Chức năng mới đã được phục hồi ## 📊 1. Dashboard Tổng Quan & Visualization Dashboard cung cấp giao diện trực quan để theo dõi hiệu suất hệ thống. ### Truy cập Dashboard ``` http://localhost:8000/dashboard ``` ### Tính năng - **📈 Tổng Quan**: Hiển thị thống kê tổng hợp - Số models đã train - Số predictions đã tạo - Số reports đã generate - Accuracy của model mới nhất - **📊 Accuracy Trends**: Biểu đồ theo dõi accuracy qua thời gian - Line chart: Accuracy, Precision, Recall - Bar chart: F1-Score comparison - Export PNG/PDF - **📊 Class Distribution**: Phân bố các lớp đất - Bar chart: Số lượng mẫu mỗi lớp - Chọn model để xem - Export PNG/PDF ### API Endpoints ```python # Lấy accuracy trends GET /api/dashboard/accuracy-trends # Lấy thống kê tổng quan GET /api/dashboard/statistics # Lấy phân bố lớp của model GET /api/dashboard/class-distribution/{model_filename} ``` ### Export Charts - **PNG**: Click nút "💾 Export PNG" - **PDF**: Click nút "📄 Export PDF" --- ## 📝 2. Auto Report Generator Report tự động được tạo sau khi training và prediction hoàn thành. ### Reports đã có - **Training Report**: Tự động tạo sau khi train xong - Metrics, confusion matrix, class distribution - Lưu trong folder `reports/` - **Prediction Report**: Tự động tạo sau khi predict xong - Thông tin về output file, bbox, features - Lưu trong folder `reports/` ### API Endpoints ```python # Liệt kê reports GET /api/reports/list # Xem report GET /api/reports/view/{filename} # Download report GET /api/reports/download/{filename} ``` ### Xem Reports - Web interface: http://localhost:8000/ - Hoặc truy cập trực tiếp: http://localhost:8000/api/reports/view/{filename} --- ## 🔄 3. Batch Processing Predict nhiều khu vực cùng lúc với queue management. ### Cách sử dụng #### Bước 1: Tạo CSV file Tạo file CSV với format: ```csv name,min_lon,min_lat,max_lon,max_lat,start_date,end_date,max_scenes,cloud_cover,resolution Region_1,105.6,9.3,105.8,9.5,2023-03-01,2023-05-31,12,30,20 Region_2,105.8,9.3,106.0,9.5,2023-03-01,2023-05-31,12,30,20 ``` **File mẫu**: `batch_regions_example.csv` #### Bước 2: Upload và Start Batch 1. Truy cập: http://localhost:8000/dashboard 2. Chọn tab "🔄 Batch Processing" 3. Upload CSV file 4. Chọn model để predict 5. Click "🚀 Start Batch Prediction" #### Bước 3: Theo dõi Progress Dashboard sẽ tự động refresh mỗi 3 giây và hiển thị: - ⏳ Queued: Đang chờ - ▶️ Running: Đang chạy - ✅ Completed: Hoàn thành - ❌ Failed: Lỗi ### API Endpoints ```python # Bắt đầu batch prediction POST /api/batch/start { "model_filename": "model_20231221.joblib", "items": [ { "name": "Region_1", "min_lon": 105.6, "min_lat": 9.3, "max_lon": 105.8, "max_lat": 9.5, "start_date": "2023-03-01", "end_date": "2023-05-31", "max_scenes": 12, "cloud_cover": 30, "resolution": 20 } ], "auto_retry": true, "max_retries": 3 } # Kiểm tra queue status GET /api/batch/status # Lấy kết quả batch GET /api/batch/results/{batch_id} # Hủy batch POST /api/batch/cancel/{batch_id} ``` ### Auto-Retry - Tự động retry khi failed (default: max 3 lần) - Có thể tắt bằng cách set `auto_retry: false` ### Progress Tracking - Mỗi job có progress bar riêng - Real-time update status - Hiển thị error message nếu failed --- ## 🚀 Khởi động Server ```bash # Activate môi trường conda activate env_01 # Chạy API server python api_server.py ``` Server sẽ chạy tại: http://localhost:8000 ## 📍 Các URL quan trọng - **Training Interface**: http://localhost:8000/ - **Dashboard**: http://localhost:8000/dashboard - **API Docs**: http://localhost:8000/docs - **Redoc**: http://localhost:8000/redoc --- ## 🔧 Cấu trúc Folders ``` remote-sensing/ ├── api_server.py # API server với các chức năng mới ├── dashboard.html # Dashboard UI (MỚI) ├── training_interface.html # Training UI ├── report_generator.py # Auto report generator ├── batch_regions_example.csv # CSV mẫu cho batch (MỚI) ├── model_train/ # Models đã train ├── predictions/ # Prediction outputs └── reports/ # Auto-generated reports ``` --- ## 🎯 Use Cases ### Use Case 1: Theo dõi Model Performance 1. Train nhiều models với configs khác nhau 2. Mở Dashboard → Tab "📊 Accuracy Trends" 3. So sánh accuracy/F1-score qua thời gian 4. Export charts để báo cáo ### Use Case 2: Batch Prediction cho nhiều khu vực 1. Chuẩn bị CSV với danh sách khu vực 2. Upload vào Dashboard → Tab "🔄 Batch Processing" 3. Chọn model tốt nhất 4. Start batch và theo dõi progress 5. Download results khi hoàn thành ### Use Case 3: Tạo Reports tự động 1. Chạy training/prediction 2. Report tự động được tạo 3. Xem qua Dashboard hoặc `/api/reports/list` 4. Download để chia sẻ --- ## ⚠️ Lưu ý 1. **Batch Processing**: Hiện tại chỉ xử lý tuần tự (từng job một) 2. **Auto-retry**: Chỉ retry khi lỗi kỹ thuật, không retry nếu config sai 3. **Charts Export**: Cần browser hỗ trợ Canvas API 4. **Memory**: Batch lớn có thể tốn RAM, nên chia nhỏ --- ## 🐛 Troubleshooting ### Dashboard không hiển thị data - Kiểm tra có models/predictions trong folders chưa - Refresh lại trang - Check console log (F12) ### Batch processing không chạy - Kiểm tra format CSV đúng chưa - Kiểm tra model đã chọn có tồn tại không - Xem API logs để debug ### Charts không export được - Browser phải hỗ trợ Canvas.toDataURL() - Thử browser khác (Chrome/Firefox) --- ## 📞 Support Nếu gặp vấn đề, check: 1. API logs: `python api_server.py` 2. Browser console: F12 → Console 3. Network tab: F12 → Network --- **🎉 Tất cả chức năng đã được phục hồi và nâng cấp!**