การคำนวณคะแนนความเสี่ยง (Risk Scoring)
ระบบประเมินคะแนนความเสี่ยงของรูปภาพตามแนวทาง Recommended Hybrid Approach Worst-Case Trigger with Multi-Factor Breakdown ตามมาตรฐานวิศวกรรมความมั่นคงปลอดภัย Fraud Detection & Forensics โดยประเมิน 3 มิติแยกอิสระ 0–100% และรวมผลลัพธ์…
การคำนวณคะแนนความเสี่ยง (Risk Scoring)
ระบบประเมินคะแนนความเสี่ยงของรูปภาพตามแนวทาง Recommended Hybrid Approach (Worst-Case Trigger with Multi-Factor Breakdown) ตามมาตรฐานวิศวกรรมความมั่นคงปลอดภัย (Fraud Detection & Forensics) โดยประเมิน 3 มิติแยกอิสระ (0–100%) และรวมผลลัพธ์เป็น Overall Risk Score (0–100) พร้อมผลแจกแจงแยกมิติ
1. การประเมินคะแนนแยกมิติ (Independent Factors - 0–100%)
| มิติการวิเคราะห์ | ตัวแปร | ช่วงคะแนน | บทบาทและการวัดผล |
|---|---|---|---|
| Visual Anomaly | S_visual |
0–100% | วัดระดับการตัดต่อ/สังเคราะห์ภาพโดยตรง (Splicing, Copy-Move, AI Diffusion) ด้วย SegFormer และ Heatmap (สูตร canonical ดู Document/model/configs.md §3) |
| Textual Analysis | S_textual |
0–100% | วัดความอันตรายของข้อความ/คีย์เวิร์ดหลอกลวง (Blacklist, คำเร่งโอนเงิน, สัญญาผลตอบแทนสูง) ด้วย Surya-OCR |
| Source Verification | S_source |
0–100% | วัดประวัติการถูกนำไปใช้ซ้ำบนอินเทอร์เน็ต (Reverse Image Search) ผ่าน Google Vision API (ที่มา: นโยบาย heuristic v1 — พบ ≥3 แหล่ง = สูง, =2 = ปานกลาง/ไม่แน่ชัด, ≤1 = ต่ำ) |
2. สูตรคำนวณคะแนนรวม (Overall Risk Score Formulation)
ระบบใช้หลักการ Maximum Impact (Worst-Case Trigger) ร่วมกับ Multi-Factor Compounding Penalty เพื่อป้องกันปัญหาคะแนนเจือจาง (Dilution Problem) เช่น ภาพตัดต่อชัดเจนแต่ไม่มีข้อความ (S_text = 0) คะแนนรวมจะไม่ถูกดึงลง:
ภาษา textS_base = max(S_visual, S_textual, S_source)
ภาษา textS_total = min(100, S_base + Σ_i ∈ secondary [S_i ≥ 40] × 5)
S_base: คะแนนความเสี่ยงของมิติที่รุนแรงที่สุด- Multi-Factor Compounding: หากตรวจพบความเสี่ยงระดับปานกลางขึ้นไปในมิติอื่น (
≥ 40) จะบวกคะแนนเพิ่ม+5ต่อมิติ (สูงสุดไม่เกิน 100) - Visual Override Rule: หากตรวจพบร่องรอยการดัดแปลงภาพในระดับวิกฤต (
S_visual ≥ 80) ระบบจะบังคับระดับผลลัพธ์เป็น High Risk ทันที
3. ระดับความเสี่ยง (Risk Grade)
ระบบแบ่งเกณฑ์การตัดสินเป็น 3 ระดับ (3-level Scale):
| ช่วงคะแนน | ระดับ | สี | ความหมายและข้อแนะนำ |
|---|---|---|---|
| 0 – 39 | Low (เสี่ยงต่ำ) | เขียว (Success) | ไม่พบร่องรอยการตัดต่อหรือข้อความหลอกลวงที่ชัดเจน ควรใช้วิจารณญาณประกอบ |
| 40 – 69 | Medium (น่าสงสัย) | Amber (Warning) | พบสัญญาณน่าสงสัยระดับปานกลาง หรือพบความเสี่ยงหลายมิติควบคู่กัน |
| 70 – 100 | High (อันตราย) | แดง | พบหลักฐานการตัดต่อชัดเจน ข้อความหลอกลวงรุนแรง หรือภาพถูกใช้ซ้ำในหลายแหล่ง (S_visual ≥ 80 ปรับเป็น High อัตโนมัติ) |
4. การนำเสนอผลบนหน้าจอ (UI Presentation)
- ระดับภาพรวม (Overview Banner): แสดง Risk Level สูงสุดที่พบ (Low / Medium / High) พร้อมคะแนนรวม Overall Score
- รายละเอียดการวิเคราะห์ (Breakdown Cards): แสดง Progress Bar และคำอธิบายแยกแต่ละมิติตามที่ตรวจพบจริง:
- ตรวจพบร่องรอยตัดต่อภาพ:
S_visual% (ระดับความเสี่ยงของภาพ) - ตรวจพบข้อความน่าสงสัย:
S_textual% (หรือ "ไม่พบข้อความ") - ประวัติแหล่งที่มา:
S_source% (จำนวนแหล่งที่พบบนอินเทอร์เน็ต)
- ตรวจพบร่องรอยตัดต่อภาพ:
- หลักฐานเชิงภาพ (Explainable Heatmap): แสดง Mask จุดที่โมเดลตรวจพบความผิดปกติซ้อนทับภาพต้นฉบับ
5. พฤติกรรมการ Cache
เมื่อคำนวณ Risk Score สำหรับภาพใดแล้ว จะเก็บผล inference ไว้ใน Redis (TTL 30 วัน) ถ้ามีการส่งรูปเดิมซ้ำจะใช้ผลที่แคชไว้ทันทีโดยไม่รัน AI Pipeline ซ้ำ ทำให้ latency ลดจาก ≤15 วินาทีเหลือ ≤3 วินาทีสำหรับภาพที่เคยวิเคราะห์แล้ว
6. การจัดการ Partial Failure
ถ้าชั้นการวิเคราะห์ใดชั้นหนึ่งล้มเหลว (เช่น Reverse Image Search API timeout) ระบบจะตัดมิตินั้นทิ้งแล้วคำนวณค่าสูงสุดจากมิติที่มีข้อมูลจริงเท่านั้น และระบุใน response ว่ามิติใดบ้างที่มีส่วนร่วมในการคำนวณ
7. ประเด็นสำคัญ
- คะแนนเป็นตัวเลขต่อเนื่อง 0–100
- การใช้ Worst-Case Trigger แก้ปัญหาเรื่อง False Negative จากการเฉลี่ยน้ำหนักได้อย่างสมบูรณ์
- UI แสดงผลทั้งระดับสรุปและ Breakdown แยกมิติครบถ้วน
- การ Cache ขจัดการคำนวณซ้ำบนรูปที่เคยส่งมาแล้ว