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()