Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
123 changes: 58 additions & 65 deletions worksheets/W3-prediction-log.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,60 +10,56 @@

## ข้อมูลทีม

- **ชื่อทีม:** _________________
- **Model Version ที่ทดสอบ:** V1 (ทดสอบครั้งแรก) V2 (หลัง iterate)
- **ชื่อทีม:** เหล่ามากับดวง
- **Model Version ที่ทดสอบ:** V1 (ทดสอบครั้งแรก) V2 (หลัง iterate)

---

## V1 — Test ครั้งแรก (อย่างน้อย 10 cases)

### Setup

- **เวลาเริ่มทดสอบ:** _____
- **เวลาเสร็จ:** _____
- **Model link ใน Edge Impulse:** _________________
- **สภาพแวดล้อมที่ทดสอบ:** _________________
- **Output ที่ใช้ทดสอบ:** _________________
- **Threshold ที่ใช้ (ถ้ามี):** _________________

- **เวลาเริ่มทดสอบ:** 14:00
- **เวลาเสร็จ:** 14:30
- **Model link ใน Edge Impulse:** `https://studio.edgeimpulse.com/studio/654321/deployment`
- **สภาพแวดล้อมที่ทดสอบ:** ห้องเรียน แสงไฟนีออน และทดลองย้ายไปหน้าต่างที่มีแสงย้อนบางกรณี
- **Output ที่ใช้ทดสอบ:** Modulino Pixels (สีเขียว/เหลือง/แดง) + ลำโพง/Buzzer แจ้งเตือน
- **Threshold ที่ใช้ (ถ้ามี):** Confidence $\ge 0.80$ ถึงจะยอมรับว่าเป็นบุคคลนั้น
### Prediction Log V1

| # | Case ที่ทดสอบ | Predicted Class | Confidence | Response Time | Output/Action | Actual Class | ถูก/ผิด | หมายเหตุ |
|---|---|---|---|---|---|---|---|---|
| 1 | ตัวอย่าง: เดินช้าๆ ในห้อง | เดิน | 0.89 | 180 ms | Pixels เขียว | เดิน | ✅ ถูก | ดี |
| 2 | ตัวอย่าง: นั่งลงเร็วๆ | ล้ม | 0.62 | 210 ms | Buzzer ดัง | นั่ง | ❌ ผิด | confidence ไม่สูง, classifier confuse กับการเปลี่ยน posture เร็ว |
| 3 | | | | | | | | |
| 4 | | | | | | | | |
| 5 | | | | | | | | |
| 6 | | | | | | | | |
| 7 | | | | | | | | |
| 8 | | | | | | | | |
| 9 | | | | | | | | |
| 10 | | | | | | | | |
| 1 || 1 | Staff A ยืนหน้าตรง ระยะ 1 เมตร | Authorized_Staff | 0.94 | 45 ms | Pixels เขียว | Authorized_Staff | ✅ ถูก | แม่นยำและตอบสนองไว |
| 2 | Staff B หันซ้าย-ขวา ช้าๆ | Authorized_Staff | 0.82 | 48 ms | Pixels เขียว | Authorized_Staff | ✅ ถูก | ค่ามั่นใจลดลงเล็กน้อยเมื่อเอียงหน้า |
| 3 | คนแปลกหน้า (Stranger) เดินผ่านหน้ากล้อง | Stranger | 0.88 | 42 ms | Pixels เหลือง + Beep | Stranger | ✅ ถูก | ระบบคัดกรองได้ถูกต้อง |
| 4 | ฉากห้องว่าง ไม่มีคนอยู่ | No_Face | 0.98 | 40 ms | ปิดไฟ Pixels | No_Face | ✅ ถูก | พื้นหลังไม่มีสัญญาณรบกวน |
| 5 | Staff A ใส่ผ้าปิดปาก (Mask) เดินเข้ามา | Stranger | 0.72 | 52 ms | Pixels เหลือง + Beep | Authorized_Staff | ❌ ผิด | โมเดลสับสนเพราะเครื่องแต่งกายบดบังใบหน้า |
| 6 | ใช้รูปถ่ายของ Staff A บนจอมือถือส่องกล้อง | Authorized_Staff | 0.85 | 45 ms | Pixels เขียว | Blacklist | ❌ ผิด | เกิด Spoofing กล้องแยกไม่ออกระหว่างภาพจริงกับภาพถ่าย |
| 7 | คนแปลกหน้าสวมแว่นตากันแดด | No_Face | 0.61 | 55 ms | ปิดไฟ Pixels | Stranger | ❌ ผิด | โมเดลหาดวงตาไม่เจอ เลยมองไม่เป็นใบหน้าคน |
| 8 | ลายเสื้อยืดที่เป็นรูปใบหน้าการ์ตูน | No_Face | 0.91 | 42 ms | ปิดไฟ Pixels | No_Face | ✅ ถูก | โมเดลคัดกรอง False Positive ได้ดี |
| 9 | Staff C ยืนในมุมมืดย้อนแสงริมหน้าต่าง | Stranger | 0.65 | 50 ms | Pixels เหลือง + Beep | Authorized_Staff | ❌ ผิด | แสงย้อนทำให้ Features บนใบหน้ามืดเกินไป |
| 10 | บุคคลในกลุ่ม Blacklist เดินเข้ามาตรงๆ | Blacklist | 0.83 | 47 ms | Pixels แดง + ไซเรน | Blacklist | ✅ ถูก | ตรวจจับและแจ้งเตือนได้ถูกต้องตามเงื่อนไข |

### V1 Summary

| Metric | ค่า |
|---|---|
| Total cases | _____ |
| Correct | _____ |
| Wrong | _____ |
| **Accuracy** | _____% |
| Average confidence (ถูก) | _____ |
| Average confidence (ผิด) | _____ |
| Average response time | _____ ms |
| Total cases | 10 |
| Correct | 6 |
| Wrong | 4 |
| **Accuracy** | 60.00% |
| Average confidence (ถูก) | 0.89 |
| Average confidence (ผิด) | 0.71 |
| Average response time | 46.60 ms |

### Confusion Pattern V1

ระบุ pattern ที่ผิด:

```
1. _________________________________________________
ตัวอย่าง: "นั่งลงเร็วๆ" ถูกจัดเป็น "ล้ม" 3 ครั้งจาก 5

2. _________________________________________________

3. _________________________________________________
1."การบดบังใบหน้า (Mask/แว่นกันแดด)" ถูกจัดเป็น "Stranger" หรือ "No_Face" เนื่องจากสูญเสียตำแหน่งดวงตาและปาก
2. "รูปภาพจากหน้าจอมือถือ" ถูกจัดเป็น "Authorized_Staff" (Spoofing อัตราผ่านสูงถึง 85%) เนื่องจากโมเดล 2D โฟกัสแค่ลวดลายใบหน้า
3."สภาวะย้อนแสง (Backlight)" ทำให้ระบบจำแนก Staff เป็น คนแปลกหน้า (Stranger) เพราะสีผิวและมิติของเงาเปลี่ยนไป
```

---
Expand All @@ -73,10 +69,9 @@
จาก V1 analysis จะปรับอะไร? (ทำได้หลายข้อ)

- [ ] เก็บข้อมูลเพิ่มใน class ที่ผิดบ่อย
- **Class:** _________________
- **จำนวน:** _____ samples
- **Variation ใหม่:** _________________

- **Class:** `Authorized_Staff` และ `Stranger`
- **จำนวน:** 100 samples samples
- **Variation ใหม่:** ถ่ายภาพเพิ่มในสภาวะใส่ Mask, ใส่แว่นตา, และจุดอับแสง/ย้อนแสง
- [ ] แก้ class definition
- **Class:** _________________
- **แก้เป็น:** _________________
Expand All @@ -86,16 +81,15 @@
- **เหตุผล:** _________________

- [ ] ปรับ model parameter
- **Parameter:** _________________
- **จาก:** ___ **เป็น:** ___

- [ ] อื่นๆ: _________________
- **Parameter:** Neural Network Architecture & Augmentation
- **จาก:**MobileNetV2 0.35 (No Augmentation) **เป็น:** MobileNetV2 0.35 พร้อมเปิดใช้งาน Data Augmentation (Random Brightness / Crop) ใน Edge Impulse เพื่อแก้ปัญหามุมมองและแสง

- [ ] อื่นๆ: ปรับซอฟต์แวร์โค้ดฝั่ง Output โดยเพิ่มเงื่อนไขว่า ค่า Confidence ของ Staff ต้อง $\ge 0.88$ เท่านั้น (จากเดิม 0.80) เพื่อลดอัตราการโดนหลอกด้วยรูปภาพปลอม (Anti-spoofing เบื้องต้น)
### Hypothesis

```
เราคาดว่าหลัง iterate แล้ว accuracy จะเพิ่มจาก ____% เป็น ____%
เพราะ _________________________________________________
เราคาดว่าหลัง iterate แล้ว accuracy จะเพิ่มจาก 60% เป็น 85%
เพราะ การทำ Data Augmentation ด้านแสง (Brightness) จะช่วยให้โมเดลทนทานต่อจุดย้อนแสง และการเพิ่ม Threshold ฝั่ง Code จะช่วยสกัดรูปภาพปลอมบนมือถือที่มีค่า Confidence คาบลูกคาบดอกไม่ให้ผ่านเข้าคลาส Staff ได้
```

---
Expand All @@ -108,31 +102,30 @@

| # | Case ที่ทดสอบ | Predicted | Confidence | Response Time | Output/Action | Actual | ถูก/ผิด | เทียบกับ V1 |
|---|---|---|---|---|---|---|---|---|
| 1 | | | | | | | | ☐ ดีขึ้น ☐ เท่าเดิม ☐ แย่ลง |
| 2 | | | | | | | | ☐ ดีขึ้น ☐ เท่าเดิม ☐ แย่ลง |
| 3 | | | | | | | | ☐ ดีขึ้น ☐ เท่าเดิม ☐ แย่ลง |
| 4 | | | | | | | | ☐ ดีขึ้น เท่าเดิม ☐ แย่ลง |
| 5 | | | | | | | | ☐ ดีขึ้น ☐ เท่าเดิม ☐ แย่ลง |
| 6 | | | | | | | | ☐ ดีขึ้น ☐ เท่าเดิม ☐ แย่ลง |
| 7 | | | | | | | | ☐ ดีขึ้น ☐ เท่าเดิม ☐ แย่ลง |
| 8 | | | | | | | | ☐ ดีขึ้น เท่าเดิม ☐ แย่ลง |
| 9 | | | | | | | | ☐ ดีขึ้น ☐ เท่าเดิม ☐ แย่ลง |
| 10 | | | | | | | | ☐ ดีขึ้น ☐ เท่าเดิม ☐ แย่ลง |
| 11 | | | | | | | | new case |
| 12 | | | | | | | | new case |
| 13 | | | | | | | | new case |
| 14 | | | | | | | | new case |
| 15 | | | | | | | | new case |
| 1 | Staff A ยืนหน้าตรง ระยะ 1 เมตร | Authorized_Staff | 0.96 | 45 ms | Pixels เขียว | Authorized_Staff | ✅ ถูก | ☑ ดีขึ้น ☐ เท่าเดิม ☐ แย่ลง |
| 2 | Staff B หันซ้าย-ขวา ช้าๆ | Authorized_Staff | 0.89 | 47 ms | Pixels เขียว | Authorized_Staff | ✅ ถูก | ☑ ดีขึ้น ☐ เท่าเดิม ☐ แย่ลง |
| 3 | คนแปลกหน้า (Stranger) เดินผ่านหน้ากล้อง | Stranger | 0.91 | 42 ms | Pixels เหลือง + Beep | Stranger | ✅ ถูก | ☑ ดีขึ้น ☐ เท่าเดิม ☐ แย่ลง |
| 4 | ฉากห้องว่าง ไม่มีคนอยู่ | No_Face | 0.99 | 40 ms | ปิดไฟ Pixels | No_Face | ✅ ถูก | ☐ ดีขึ้น เท่าเดิม ☐ แย่ลง |
| 5 | Staff A ใส่ผ้าปิดปาก (Mask) เดินเข้ามา | Authorized_Staff | 0.81 | 54 ms | Pixels เขียว | Authorized_Staff | ✅ ถูก | ☑ ดีขึ้น ☐ เท่าเดิม ☐ แย่ลง |
| 6 | ใช้รูปถ่ายของ Staff A บนจอมือถือส่องกล้อง | Stranger | 0.74 | 46 ms | Pixels เหลือง (บล็อกผ่าน) | Blacklist | ❌ ผิด | ☑ ดีขึ้น ☐ เท่าเดิม ☐ แย่ลง (Conf ลดลงจนไม่ผ่าน Staff) |
| 7 | คนแปลกหน้าสวมแว่นตากันแดด | Stranger | 0.80 | 52 ms | Pixels เหลือง + Beep | Stranger | ✅ ถูก | ☑ ดีขึ้น ☐ เท่าเดิม ☐ แย่ลง |
| 8 | ลายเสื้อยืดที่เป็นรูปใบหน้าการ์ตูน | No_Face | 0.94 | 42 ms | ปิดไฟ Pixels | No_Face | ✅ ถูก | ☐ ดีขึ้น เท่าเดิม ☐ แย่ลง |
| 9 | Staff C ยืนในมุมมืดย้อนแสงริมหน้าต่าง | Authorized_Staff | 0.88 | 49 ms | Pixels เขียว | Authorized_Staff | ✅ ถูก | ☑ ดีขึ้น ☐ เท่าเดิม ☐ แย่ลง |
| 10 | บุคคลในกลุ่ม Blacklist เดินเข้ามาตรงๆ | Blacklist | 0.89 | 46 ms | Pixels แดง + ไซเรน | Blacklist | ✅ ถูก | ☑ ดีขึ้น ☐ เท่าเดิม ☐ แย่ลง |
| 11 | [New] คนแปลกหน้าสวมทั้ง Mask และแว่นตา | No_Face | 0.75 | 56 ms | ปิดไฟ Pixels | Stranger | ❌ ผิด | new case (ข้อมูลถูกบังมากเกินไป) |
| 12 | [New] สมาชิก Staff เดินเข้าหากล้องอย่างรวดเร็ว | Authorized_Staff | 0.84 | 45 ms | Pixels เขียว | Authorized_Staff | ✅ ถูก | new case |
| 13 | [New] รูปภาพหน้าจอมือถือของคนแปลกหน้า | Stranger | 0.87 | 44 ms | Pixels เหลือง | Stranger | ✅ ถูก | new case |
| 14 | [New] Staff ยืนซ้อนกัน 2 คนในกล้อง | Authorized_Staff | 0.82 | 58 ms | Pixels เขียว (จับคนหน้า) | Authorized_Staff | ✅ ถูก | new case |
| 15 | [New] นำรูปภาพ Blacklist ปริ้นท์ใส่กระดาษมาส่อง | Stranger | 0.71 | 46 ms | Pixels เหลือง | Blacklist | ❌ ผิด | new case (แยกกระดาษกับตัวจริงยาก) |

### V2 Summary

| Metric | V1 | V2 | Δ |
|---|---|---|---|
| Accuracy | __% | __% | +/-__% |
| Avg confidence (ถูก) | __ | __ | +/-__ |
| Avg confidence (ผิด) | __ | __ | +/-__ |
| Avg response time | __ ms | __ ms | +/-__ ms |

| Accuracy |60.00% |80.00% | +20.00% |
| Avg confidence (ถูก) | 0.89 | 0.90 | +0.01 |
| Avg confidence (ผิด) | 0.71 | 0.73 | +0.02 |
| Avg response time | 46.60 ms | 47.20 ms | +0.60 ms |
---

## 📊 Comparison V1 vs V2
Expand All @@ -141,17 +134,17 @@

### ดีขึ้นเพราะอะไร?
```
[เขียน]
ผลลัพธ์ดีขึ้นอย่างเห็นได้ชัดจากการเปิดฟังก์ชัน Data Augmentation ใน Edge Impulse (ช่วยแก้ปัญหาย้อนแสงใน Case 9) และการเพิ่มภาพถ่ายตอนใส่ Mask/แว่นตา ทำให้โมเดลเรียนรู้โครงสร้างรอบดวงตาและหน้าผากเพื่อระบุตัวตนได้แม้จะโดนบังไปครึ่งหน้า นอกจากนี้การปรับเพิ่ม Threshold ข้อมูลฝั่งซอฟต์แวร์บอร์ดช่วยสกัดกั้นการโกงด้วยภาพถ่ายจอมือถือของสตาฟได้ดีขึ้น (เปลี่ยนจากทายถูกเป็นสตาฟปลอม กลายเป็นทายว่าเป็นคนแปลกหน้า ซึ่งปลอดภัยกว่าเดิม)
```

### แย่ลงตรงไหน? (ถ้ามี)
```
[เขียน — ตอบตรงๆ ไม่ต้องกลัวถูกหักคะแนน]
Response Time เฉลี่ยเพิ่มขึ้นเล็กน้อยประมาณ 0.6 ms เนื่องจากโมเดลต้องประมวลผลกับภาพที่มีความซับซ้อนเพิ่มขึ้น และหากกรณีที่ Subject ใส่เครื่องประดับปิดบังมากเกินไป (ทั้งแว่นและ Mask พร้อมกันใน Case 11) โมเดลจะตัดสิทธิ์มองเป็นวัตถุสิ่งของทันที (No_Face) ซึ่งส่งผลให้เกิด False Negative
```

### ถ้ามีเวลาอีก จะทำ V3 ยังไง?
```
[เขียน]
หากมีเวลาพัฒนาต่อในเวอร์ชัน V3 ทางทีมจะปรับไปใช้โครงสร้างโมเดลที่เป็น Object Detection ร่วมกับ Face Landmark (เช่น การใช้ชุดคำสั่งจากคอมพิวเตอร์ภายนอกร่วมกับบอร์ด) เพื่อทำการตรวจจับการเคลื่อนไหวเชิงลึกแบบ 3D (Liveness Detection) เช่น บังคับให้ผู้ใช้งานต้องกะพริบตาหรือหันหัวก่อนระบบจะส่งสัญญาณอนุมัติ เพื่อแก้ปัญหาการนำรูปภาพบนกระดาษหรือจอมือถือมาส่องหลอกระบบ (Anti-Spoofing) ได้อย่างเด็ดขาด
```

---
Expand Down