เว็บแอปจำแนกภาพทิวทัศน์ 6 ประเภท — buildings, forest, glacier, mountain, sea, street — จาก Intel Image Classification dataset ด้วย CNN (PyTorch) ที่เทรนจากศูนย์ เสิร์ฟผ่าน FastAPI และแสดงผลบนหน้าเว็บ React (ภาษาไทย)
รันทั้งหมด local ยังไม่ deploy ที่ไหน — ดูที่มาของทุก decision ได้ที่ task.md และคู่มือรันแบบละเอียดที่ docs/USAGE.md
- Test accuracy: 87.47%, Top-3 accuracy: 99.10% (checkpoint epoch 22, evaluation gate: GO)
- จุดอ่อนที่รู้อยู่แล้ว: glacier↔mountain สับสนกัน (terrain คล้าย) และ buildings→street (recall ของ buildings ต่ำสุด 76.7%) — แผนสำรองคือ transfer learning ถ้าเป็นปัญหาจริงกับผู้ใช้
data/ dataset ต้นฉบับ (seg_train / seg_test / seg_pred)
ml/
config.py ค่าคงที่ร่วม (CLASSES, path, ขนาดรูป)
eda/ สคริปต์และผล EDA
training/ เทรน/ประเมินผลโมเดล (PyTorch, CNN from scratch)
models/ checkpoint ที่เทรนแล้ว (cnn_best.pt, cnn_last.pt)
inference/ โมดูล inference กลาง ใช้ร่วมกันทั้ง Streamlit และ backend
streamlit_app/ เครื่องมือภายในสำหรับทดสอบโมเดลแบบเร็วๆ
backend/ FastAPI — เสิร์ฟโมเดลผ่าน REST API (stateless, ไม่มี auth/database)
frontend/ React (Vite) — หน้าเว็บจริงที่ผู้ใช้เห็น
docs/ คู่มือใช้งาน (USAGE.md) และ architecture decisions (adr/)
task.md แผนงานและ decision log ทั้งหมด
# ติดตั้ง
pip install -r backend/requirements.txt
cd frontend && npm install && cd ..
# รัน backend (terminal 1)
python -m uvicorn backend.main:app --host 127.0.0.1 --port 8000
# รัน frontend (terminal 2)
cd frontend && npm run devเปิด http://localhost:5173 (frontend, ต้องมี backend รันอยู่ที่ :8000) — คำสั่งรัน Streamlit, เทรนโมเดลใหม่, และรัน tests ดูที่ docs/USAGE.md
| ส่วน | เทคโนโลยี |
|---|---|
| Model | PyTorch CNN, train from scratch |
| Backend | FastAPI (stateless REST API) |
| Frontend | React + Vite, UI ภาษาไทย, prediction history เก็บที่ localStorage |
| Internal tool | Streamlit — ตรวจ inference pipeline แบบเร็วๆ โดยไม่ต้องพึ่ง backend/frontend |
| Testing | pytest — ml/training/test_training.py, backend/test_main.py |
โปรเจกต์นี้เริ่มจาก .claude/ template สำหรับงาน Data Scientist/ML Engineer (skills ตาม pipeline EDA → train → evaluate → deploy, agents สำหรับ review/evaluation, hooks กันการรัน AWS job โดยไม่ตั้งใจ) รวมถึง agents เสริมสำหรับงาน frontend/backend/testing ของเว็บแอปนี้ — ดูรายละเอียดที่ CONTEXT.md และ docs/adr/