cơ bản hoàn tát các chức năng chính
This commit is contained in:
+252
@@ -0,0 +1,252 @@
|
||||
# 🎉 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!**
|
||||
Reference in New Issue
Block a user