Spaces:
Sleeping
Sleeping
File size: 9,914 Bytes
8f59aab |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 |
#!/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()
|