Noeies commited on
Commit
65b6bc6
·
verified ·
1 Parent(s): 3eed8c6

Delete Appply

Browse files
Files changed (1) hide show
  1. Appply +0 -106
Appply DELETED
@@ -1,106 +0,0 @@
1
- import gradio as gr
2
- from transformers import pipeline
3
- from PIL import Image, ImageDraw
4
- from gtts import gTTS
5
- from io import BytesIO
6
-
7
- # โมเดลตรวจจับอวัยวะหลายตำแหน่ง
8
- model = pipeline("object-detection", model="facebook/detr-resnet-50")
9
-
10
- # ฐานข้อมูลอวัยวะ 50 ชนิด + คำอธิบายไทย
11
- organs = {
12
- "heart": "หัวใจ ❤️ สูบฉีดเลือดไปทั่วร่างกาย",
13
- "lungs": "ปอด 💨 แลกเปลี่ยนก๊าซในร่างกาย",
14
- "liver": "ตับ 🍷 กำจัดสารพิษและสร้างน้ำดี",
15
- "brain": "สมอง 🧠 ควบคุมการทำงานของร่างกาย",
16
- "stomach": "กระเพาะอาหาร 🍽️ ย่อยอาหาร",
17
- "kidney": "ไต 💧 กรองของเสียออกจากเลือด",
18
- "intestine": "ลำไส้ 🌀 ดูดซึมสารอาหาร",
19
- "pancreas": "ตับอ่อน 💊 สร้างอินซูลิน",
20
- "spleen": "ม้าม 💉 ทำลายเม็ดเลือดแดงเก่า",
21
- "bladder": "กระเพาะปัสสาวะ 🚰 เก็บน้ำปัสสาวะ",
22
- "esophagus": "หลอดอาหาร 🍴 ส่งอาหารจากปากสู่กระเพาะ",
23
- "trachea": "หลอดลม 🌬️ ส่งอากาศเข้าสู่ปอด",
24
- "gallbladder": "ถุงน้ำดี 💚 เก็บน้ำดีจากตับ",
25
- "skin": "ผิวหนัง 🧴 ปกป้องร่างกายและควบคุมอุณหภูมิ",
26
- "eyes": "ดวงตา 👁️ รับภาพและแสง",
27
- "ear": "หู 👂 รับเสียงและรักษาสมดุล",
28
- "nose": "จมูก 👃 รับกลิ่นและช่วยหายใจ",
29
- "tongue": "ลิ้น 👅 รับรสและช่วยพูด",
30
- "muscle": "กล้ามเนื้อ 💪 ช่วยเคลื่อนไหวร่างกาย",
31
- "bone": "กระดูก 🦴 ค้ำจุนและป้องกันอวัยวะภายใน",
32
- "teeth": "ฟัน 🦷 เคี้ยวอาหารและช่วยพูด",
33
- "hair": "เส้นผม 💇 ปกป้องหนังศีรษะ",
34
- "nail": "เล็บ 💅 ปกป้องปลายนิ้ว",
35
- "thyroid": "ต่อมไทรอยด์ 🧬 ควบคุมการเผาผลาญพลังงาน",
36
- "adrenal": "ต่อมหมวกไต 🧫 ควบคุมฮอร์โมนความเครียด",
37
- "pituitary": "ต่อมใต้สมอง 🧩 ควบคุมฮอร์โมนทั่วร่างกาย",
38
- "hypothalamus": "ไฮโปทาลามัส 🧠 ควบคุมอุณหภูมิและการหิว",
39
- "small intestine": "ลำไส้เล็ก 🌀 ดูดซึมอาหาร",
40
- "large intestine": "ลำไส้ใหญ่ 💩 ดูดซึมน้ำและขับของเสีย",
41
- "rectum": "ทวารหนัก 🚻 ขับของเสียออกจากร่างกาย",
42
- "ureter": "ท่อไต 🚰 นำน้ำปัสสาวะจากไตไปกระเพาะปัสสาวะ",
43
- "urethra": "ท่อปัสสาวะ 🚾 ขับปัสสาวะออกจากร่างกาย",
44
- "ovary": "รังไข่ ⚪ สร้างไข่และฮอร์โมนเพศหญิง",
45
- "uterus": "มดลูก 🤰 ที่อยู่ของทารกระหว่างตั้งครรภ์",
46
- "testis": "อัณฑะ ⚽ ผลิตอสุจิและฮอร์โมนเพศชาย",
47
- "penis": "อวัยวะเพศชาย 🚹",
48
- "vagina": "ช่องคลอด 🚺",
49
- "diaphragm": "กะบังลม 💨 ช่วยในการหายใจ",
50
- "spinal cord": "ไขสันหลัง 🧬 ส่งสัญญาณประสาท",
51
- "ribs": "กระดูกซี่โครง 🦴 ปกป้องหัวใจและปอด",
52
- "shoulder": "ไหล่ 💪 ช่วยเคลื่อนไหวแขน",
53
- "hand": "มือ ✋ ใช้จับและสัมผัสสิ่งของ",
54
- "foot": "เท้า 🦶 รับน้ำหนักและเคลื่อนไหว",
55
- "knee": "เข่า 🦵 ช่วยพับขาและเคลื่อนไหว",
56
- "hip": "สะโพก 🍑 รองรับน้ำหนักส่วนล่า���",
57
- "appendix": "ไส้ติ่ง 🩺 ส่วนต่อของลำไส้ใหญ่",
58
- "cornea": "กระจกตา 👁️ ช่วยให้มองเห็นชัด",
59
- "retina": "จอประสาทตา 🧠 แปลงแสงเป็นสัญญาณภาพ",
60
- "lungs bronchi": "หลอดลมฝอย 🌬️ ส่งอากาศเข้าสู่ถุงลม"
61
- }
62
-
63
- def detect_and_click(image):
64
- img = Image.open(image).convert("RGB")
65
- draw = ImageDraw.Draw(img)
66
-
67
- results = model(image)
68
- info_list = []
69
-
70
- for r in results:
71
- label = r["label"].lower()
72
- score = round(r["score"] * 100, 1)
73
- box = r["box"]
74
-
75
- draw.rectangle(
76
- [(box["xmin"], box["ymin"]), (box["xmax"], box["ymax"])],
77
- outline="red", width=3
78
- )
79
- draw.text((box["xmin"], box["ymin"] - 10), label, fill="red")
80
-
81
- desc = organs.get(label, "ไม่พบในฐานข้อมูลอวัยวะ")
82
- info_list.append(f"{label} → {desc} ({score}%)")
83
-
84
- # สร้างเสียงพูดรวมหลายอวัยวะ
85
- text_to_speak = " ; ".join([organs.get(r["label"].lower(), r["label"]) for r in results])
86
- tts = gTTS(text=text_to_speak, lang="th")
87
- audio_bytes = BytesIO()
88
- tts.write_to_fp(audio_bytes)
89
- audio_bytes.seek(0)
90
-
91
- return img, "\n".join(info_list), audio_bytes
92
-
93
- # หน้าเว็บ Gradio
94
- demo = gr.Interface(
95
- fn=detect_and_click,
96
- inputs=gr.Image(type="filepath", label="📸 อัปโหลดภาพร่างกาย/โมเดลอวัยวะ"),
97
- outputs=[
98
- gr.Image(label="ภาพพร้อมกรอบอวัยวะ"),
99
- gr.Textbox(label="คำอธิบายอวัยวะ"),
100
- gr.Audio(label="เสียงพูดอวัยวะภาษาไทย")
101
- ],
102
- title="🔬 ระบบเรียนรู้อวัยวะ Interactive 50 อวัยวะ + พูดไทย",
103
- description="คลิกกรอบอวัยวะเพื่อฟังชื่อและดูคำอธิบายภาษาไทย"
104
- )
105
-
106
- demo.launch()