Spaces:
Sleeping
Sleeping
AutoDeploy
Fix: Python 3.8 compatibility (use Tuple from typing) + Gradio 4.48.1 security update
8f59aab
| #!/usr/bin/env python | |
| """ | |
| Quick Start Script - Medical Image Segmentation Project | |
| Chạy script này để xem tất cả options khả dụng | |
| """ | |
| import os | |
| import sys | |
| from pathlib import Path | |
| def print_header(title): | |
| """In header""" | |
| width = 80 | |
| print("\n" + "="*width) | |
| print(f" {title}".center(width)) | |
| print("="*width) | |
| def main(): | |
| print_header("🏥 Medical Image Segmentation - Quick Start") | |
| print(""" | |
| ┌────────────────────────────────────────────────────────────────────────────┐ | |
| │ 📋 AVAILABLE OPTIONS │ | |
| └────────────────────────────────────────────────────────────────────────────┘ | |
| 1️⃣ WEB INTERFACE (Gradio) - Sử dụng ngay | |
| └─ python app.py | |
| → Truy cập: http://127.0.0.1:7860 | |
| → Upload ảnh, click "Generate Predictions" | |
| → Xem kết quả phân đoạn | |
| 2️⃣ JUPYTER NOTEBOOK - Interactive Demo | |
| └─ jupyter notebook demo.ipynb | |
| → Step-by-step visualization | |
| → Model explanation | |
| → Batch processing examples | |
| 3️⃣ TRAINING WORKFLOW (Complete) | |
| └─ Step 1: python download_dataset.py | |
| → Tải ~10GB data từ Kaggle (cần Kaggle API key) | |
| └─ Step 2: python prepare_dataset.py | |
| → Xử lý data (RLE decode, split train/val/test) | |
| └─ Step 3: python train.py --epochs 20 | |
| → Train SegFormer model (có thể mất vài giờ) | |
| → Save best_model & final_model | |
| └─ Step 4: python test.py --model ./models/best_model --visualize | |
| → Evaluate & visualization | |
| 4️⃣ QUICK REFERENCE - Danh sách lệnh | |
| └─ python train.py --help | |
| └─ python test.py --help | |
| └─ python prepare_dataset.py --help | |
| └─ python download_dataset.py --help | |
| 5️⃣ DOCUMENTATION - Tài liệu | |
| └─ TRAINING_GUIDE.md (Hướng dẫn chi tiết) | |
| └─ IMPLEMENTATION_SUMMARY.md (Tóm tắt triển khai) | |
| └─ FILE_INDEX.md (Danh sách file) | |
| └─ README.md (Info gốc) | |
| ┌────────────────────────────────────────────────────────────────────────────┐ | |
| │ 🚀 RECOMMENDED START │ | |
| └────────────────────────────────────────────────────────────────────────────┘ | |
| 【OPTION A】Demo ngay bây giờ (2 phút) | |
| python app.py | |
| # Hoặc | |
| jupyter notebook demo.ipynb | |
| 【OPTION B】Train model mới (1-2 giờ) | |
| python download_dataset.py | |
| python prepare_dataset.py | |
| python train.py --epochs 20 | |
| python test.py --model ./models/best_model --visualize | |
| 【OPTION C】Chỉ test model hiện có | |
| python test.py \\ | |
| --model ./segformer_trained_weights \\ | |
| --test-images ./samples \\ | |
| --visualize | |
| ┌────────────────────────────────────────────────────────────────────────────┐ | |
| │ 📊 PROJECT INFO │ | |
| └────────────────────────────────────────────────────────────────────────────┘ | |
| Dataset: UW-Madison GI Tract Image Segmentation | |
| Model: SegFormer-B0 (HuggingFace Transformers) | |
| Framework: PyTorch + Gradio + HuggingFace | |
| Task: Medical Image Segmentation | |
| Classes: 4 (Background + 3 organs) | |
| - Large bowel (Ruột già) 🔴 | |
| - Small bowel (Ruột non) 🟢 | |
| - Stomach (Dạ dày) 🔵 | |
| ┌────────────────────────────────────────────────────────────────────────────┐ | |
| │ 🔧 REQUIREMENTS │ | |
| └────────────────────────────────────────────────────────────────────────────┘ | |
| Python: 3.8+ | |
| GPU: Optional (Auto-switch to CPU if not available) | |
| RAM: 4GB+ (8GB recommended) | |
| Disk: 20GB+ (for dataset & models) | |
| Main Libraries: | |
| - torch >= 2.0.0 | |
| - transformers >= 4.30.0 | |
| - gradio >= 6.0.0 | |
| - torchvision >= 0.15.0 | |
| - PIL, numpy, pandas, scikit-learn | |
| Install dependencies: | |
| pip install -r requirements.txt | |
| ┌────────────────────────────────────────────────────────────────────────────┐ | |
| │ 💡 USEFUL TIPS │ | |
| └────────────────────────────────────────────────────────────────────────────┘ | |
| ✓ Web Interface slow? | |
| → Giảm batch size hoặc dùng CPU mode | |
| ✓ Train quá lâu? | |
| → Giảm epochs: --epochs 5 | |
| → Giảm batch size: --batch-size 4 | |
| ✓ GPU out of memory? | |
| → Giảm batch size: --batch-size 4 hoặc 2 | |
| → Dùng num_workers=0 trong train.py | |
| ✓ Kaggle dataset lỗi? | |
| → Xem hướng dẫn API key: TRAINING_GUIDE.md | |
| ✓ Muốn custom model? | |
| → Edit train.py, thay model architecture | |
| → Hoặc fine-tune trên dataset riêng | |
| ┌────────────────────────────────────────────────────────────────────────────┐ | |
| │ 🎯 NEXT STEPS │ | |
| └────────────────────────────────────────────────────────────────────────────┘ | |
| 1. Chọn option ở trên (A, B, hoặc C) | |
| 2. Chạy command | |
| 3. Xem kết quả | |
| 4. Đọc tài liệu nếu cần chi tiết | |
| Ví dụ đơn giản nhất: | |
| python app.py | |
| # Mở browser: http://127.0.0.1:7860 | |
| ┌────────────────────────────────────────────────────────────────────────────┐ | |
| │ 📚 DOCUMENTATION STRUCTURE │ | |
| └────────────────────────────────────────────────────────────────────────────┘ | |
| Start Here: | |
| 1. FILE_INDEX.md (bạn đang ở đây) ← Tôi là file navigation | |
| 2. IMPLEMENTATION_SUMMARY.md ← Tóm tắt những gì đã triển khai | |
| 3. TRAINING_GUIDE.md ← Hướng dẫn chi tiết từng bước | |
| Code Documentation: | |
| • app.py - Web interface | |
| • demo.ipynb - Interactive notebook | |
| • train.py - Training script | |
| • test.py - Testing script | |
| • download_dataset.py - Kaggle download | |
| • prepare_dataset.py - Data preparation | |
| ┌────────────────────────────────────────────────────────────────────────────┐ | |
| │ ⚠️ IMPORTANT │ | |
| └────────────────────────────────────────────────────────────────────────────┘ | |
| ⚠️ Kaggle API Key: | |
| Cần cho download_dataset.py | |
| → Tạo tại https://www.kaggle.com/account | |
| → Lưu vào ~/.kaggle/kaggle.json | |
| ⚠️ GPU/CUDA: | |
| Script tự detect GPU | |
| Nếu GPU not found → auto sử dụng CPU | |
| ⚠️ Dataset Size: | |
| UW-Madison dataset ~ 10GB | |
| Prepared data ~ 15GB | |
| Total with models ~ 30GB | |
| ┌────────────────────────────────────────────────────────────────────────────┐ | |
| │ 🎉 YOU'RE ALL SET! │ | |
| └────────────────────────────────────────────────────────────────────────────┘ | |
| Tất cả tools và scripts đã được triển khai. | |
| Hãy chạy command đầu tiên của bạn: | |
| python app.py | |
| Hoặc xem hướng dẫn chi tiết: | |
| cat TRAINING_GUIDE.md | |
| Chúc bạn thành công! 🚀 | |
| """) | |
| print("\n" + "="*80 + "\n") | |
| if __name__ == "__main__": | |
| main() | |