
Automated 3D Space Visualization Pipeline
สถานะ: Production Ready (Verified by Code)
บทความนี้เจาะลึกโครงสร้างระบบประมวลผลภาพอวกาศ 3 มิติ ที่ออกแบบมาเพื่อทำงานแบบ Batch Processing โดยเน้นความแม่นยำของมิติและการจัดการทรัพยากรเครื่องอย่างมีประสิทธิภาพ
System Data Flow (Technical Pipeline)
ระบบถูกออกแบบมาให้เป็นลำดับขั้น (Linear Pipeline) เพื่อลดความซับซ้อนและง่ายต่อการ Debug:
graph TD A[Raw Image] --> B[Pad to 4:3] B --> C[AI Depth Inference] C --> D[Depth Enhancement] D --> E[Anaglyph Rendering] E --> F[Post-Process Sharpening]
1. Pre-processing: Pad to 4:3
Logic: เนื่องจากหน้าจอท้องฟ้าจำลองหรือจอ TV ส่วนใหญ่มีสัดส่วนที่คงที่ ระบบจะทำการคำนวณ target_ratio = 4/3 และสร้าง Canvas สีดำขึ้นมาขนาบข้าง เพื่อป้องกันภาพยืด (Distortion) และรักษา Composition ดั้งเดิมของภาพอวกาศไว้
2. Inference: MiDaS Depth Engine
Implementation:
- ใช้โมเดล MiDaS_small เพื่อความรวดเร็ว (High-speed inference)
- มีระบบเช็คฮาร์ดแวร์อัตโนมัติ
torch.device("cuda" if torch.cuda.is_available() else "cpu")เพื่อดึงพลังจาก GPU มาใช้ให้ได้มากที่สุด
3. Depth Map Optimization (The Secret Sauce)
เพื่อให้ภาพ "ลอย" แบบมีคุณภาพ โค้ดมีการทำ Post-processing บน Depth Map 3 ชั้น:
- Bilateral Filter: ลดสัญญาณรบกวน (Noise) แต่ยังรักษา "ขอบดาว" ให้คมชัด
- CLAHE: เร่ง Contrast ของความลึกในส่วนที่มืด (Nebula ส่วนใหญ่จะมืด) ทำให้เห็นมิติในเงามืดได้ชัดเจนขึ้น
- Gamma Correction (1.8): ปรับความสว่างของ Depth Map เพื่อชดเชยความมืดที่เกิดจากฟิลเตอร์แว่น 3 มิติ
3D Rendering Architecture (Dubois Matrix)
ส่วนที่สำคัญที่สุดคือการสร้างภาพเหลื่อมสี (Anaglyph) ซึ่งใช้เทคนิค Dubois Optimized Matrix แทนการแยกสี Red/Cyan แบบทั่วไป:
- Pixel Shifting: ใช้หลักการคำนวณ
shift_map = (depth - convergence) * strength- Strength (15–30): ควบคุม "ความโดดเด่น" (Pop-out effect)
- Convergence (0.2–0.5): ควบคุม "จุดโฟกัส" (ยิ่งต่ำ วัตถุยิ่งพุ่งออกจากจอ)
- Color Projection: ใช้ Matrix ชุดพิเศษ (0.4154, 0.4710, 0.1677 ฯลฯ) เพื่อให้ภาพที่ได้มีสีสันที่ถูกต้องที่สุดเมื่อมองผ่านแว่น ลดปัญหาอาการ "สีเพี้ยน" หรือ "ภาพมืด"
Operations & Troubleshooting Logic
ในฐานะผู้ดูแลระบบ (Operator) นี่คือตัวแปรที่สามารถ Tune หน้างานได้ทันที:
| Parameter | สถานการณ์ที่ต้องปรับ | วิธีแก้ |
|---|---|---|
| Strength | ภาพดูแบน ไม่ค่อยมีมิติ | เพิ่มค่า (22 → 30) |
| Convergence | คนดูบอกว่าปวดตา หรือภาพแยกจากกันเกินไป | เพิ่มค่า (0.35 → 0.45) เพื่อดันภาพกลับเข้าจอ |
| Gamma | รายละเอียดในเนบิวลามืดเกินไป | ปรับเพิ่ม (1.8 → 2.0) ในส่วน get_depth_map |
| Pad to 4:3 | ภาพแสดงผลไม่เต็มจอ หรือมีขอบเหลือ | ตรวจสอบ canvas logic ในโค้ด |
Scalability & Deployment
ระบบนี้ถูกเขียนด้วย Object-Oriented Thinking ทำให้สามารถต่อยอดได้ง่าย:
- Batch Processing: วนลูปประมวลผลทั้งโฟลเดอร์โดยอัตโนมัติ พร้อมรองรับไฟล์หลายนามสกุล (
.jpg,.webp,.png) - Modular Logic: แยกส่วน
add_text_layerออกมา เพื่อให้สามารถเปลี่ยนข้อความหรือโลโก้ตามงานนิทรรศการต่างๆ ได้โดยไม่ต้องแก้ Logic หลัก
สรุป: สถาปัตยกรรมนี้คือการผสมผสานระหว่าง AI Computer Vision และ Classic Image Processing เพื่อสร้างเครื่องมือที่ใช้งานได้จริงในพื้นที่สาธารณะ (Field-Ready System)