Skip to content

About

Prototype สำหรับจำแนกภาพ MRI สมองด้วย AI พร้อมเว็บอินเทอร์เฟซสำหรับอัปโหลดภาพและดูผลวิเคราะห์

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

Repository files navigation

Brain Tumor MRI Classifier

Prototype สำหรับจำแนกภาพ MRI สมองด้วย AI พร้อมเว็บอินเทอร์เฟซสำหรับอัปโหลดภาพและดูผลวิเคราะห์

ข้อควรระวัง: โปรเจกต์นี้จัดทำเพื่อการศึกษาและวิจัยเท่านั้น ไม่ใช่อุปกรณ์ทางการแพทย์ และห้ามใช้เพื่อวินิจฉัย คัดกรอง หรือวางแผนการรักษา ผู้เชี่ยวชาญด้านรังสีวิทยาต้องเป็นผู้ตรวจสอบภาพเสมอ

web_example

Design

UI/UX ของระบบออกแบบด้วย Figma ก่อนนำมาพัฒนาเป็นเว็บแอปพลิเคชันด้วย React โดยเน้นหน้าจอที่อ่านผลได้ง่าย มีขั้นตอนอัปโหลดที่ชัดเจน และสื่อสารข้อจำกัดของ AI อย่างตรงไปตรงมา

AI

  • Model: MobileNetV3-Small แบบ transfer learning ด้วย PyTorch
  • Dataset: masoudnickparvar/brain-tumor-mri-dataset ดาวน์โหลดผ่าน KaggleHub
  • ประเภทที่จำแนกได้: Glioma, Meningioma, No Tumour และ Pituitary Tumour
  • Input: ภาพ MRI 2D ชนิด PNG, JPEG หรือ WEBP ขนาดไม่เกิน 10 MB
  • Output: คลาสที่คาดการณ์, confidence และความน่าจะเป็นของทุกคลาส
  • การวัดผล: แบ่ง validation set 15% และบันทึก model weights จาก epoch ที่มี validation accuracy สูงสุด

ข้อจำกัดของ Bounding Box

Dataset ที่ใช้เป็น classification dataset จึงไม่มีตำแหน่งก้อนเนื้องอก (bounding-box annotations) ที่เป็น ground truth ระบบเวอร์ชันนี้จึงจำแนกประเภทของภาพทั้งภาพเท่านั้น หากต้องการ bounding box ที่ใช้งานได้จริง ต้องใช้ dataset ที่มี annotation ตำแหน่งก้อน และเทรน object-detection model เช่น YOLOv8

Features

  • อัปโหลดภาพด้วยการเลือกไฟล์หรือ drag-and-drop
  • แสดงตัวอย่างภาพก่อนวิเคราะห์
  • ตรวจสอบชนิดและขนาดของไฟล์
  • เรียกใช้โมเดล AI จริงผ่าน REST API
  • แสดงผลคลาสหลัก, confidence และ class probabilities
  • ตรวจสถานะ API และ model weights ก่อนให้เริ่มวิเคราะห์
  • แสดงคำเตือนเรื่องขอบเขตการใช้งานทางการแพทย์

Tech Stack

ส่วน เครื่องมือ
UI/UX Design Figma
Frontend React, TypeScript, Vite, CSS, Lucide React
Backend Python, FastAPI, Uvicorn
AI / ML PyTorch, Torchvision, MobileNetV3-Small
Image Processing Pillow
Dataset KaggleHub, Kaggle Dataset

วิธีใช้งาน

เปิด Terminal สองหน้าต่างจากโฟลเดอร์โปรเจกต์นี้

1. เริ่ม AI API และเทรนโมเดล

cd backend
py -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
python train.py --epochs 8
python -m uvicorn app:app --reload --port 8000

train.py จะดาวน์โหลด dataset และสร้าง weights ที่ backend/models/brain_tumor_mobilenet_v3.pth ก่อน UI จะเปิดให้วิเคราะห์ภาพ

2. เริ่ม UI

cd frontend
npm install
npm run dev

เปิด URL ที่ Vite แสดงใน Terminal โดยปกติคือ http://localhost:5173 จากนั้นอัปโหลดภาพ MRI และกด RUN AI ANALYSIS

API

  • GET /health — ตรวจสอบสถานะ API และความพร้อมของ model weights
  • POST /predict — รับไฟล์ภาพผ่าน form field file และส่งกลับ prediction กับ probabilities

โครงสร้างโปรเจกต์

backend/
  app.py       # FastAPI inference service
  train.py     # Download dataset, train, validate และบันทึก weights
  requirements.txt
frontend/
  src/App.tsx  # React user interface
  src/styles.css

"# Brain-Tumor-MRI-Classifier"

About

Prototype สำหรับจำแนกภาพ MRI สมองด้วย AI พร้อมเว็บอินเทอร์เฟซสำหรับอัปโหลดภาพและดูผลวิเคราะห์

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages