ความสำคัญของแสง (Lighting) ใน Machine Vision: ทำไมแสงถึงชี้ชะตาความแม่นยำของ AI

1. 🎯 ตอนที่ 6: ความสำคัญของแสง (Lighting) ใน Machine Vision
สวัสดีครับน้องๆ วิศวกรสาย Vision และนักพัฒนา AI ทุกคน! ชงกาแฟให้พร้อมแล้วมาล้อมวงกันตรงนี้ครับ ตลอดหลายตอนที่ผ่านมา เราได้พูดถึงตัวซอฟต์แวร์ โมเดล Deep Learning และโครงข่ายประสาทเทียมกันไปเยอะแล้ว
แต่วันนี้ พี่จะพาน้องๆ ถอดหมวกโปรแกรมเมอร์ออกชั่วคราว แล้วมาสวมหมวก “วิศวกรแสง” กันบ้างครับ น้องรู้ไหมครับว่าในวงการอุตสาหกรรม มีประโยคคลาสสิกที่เขียนไว้ในตำรา Machine Vision Lighting Guide เลยว่า “ไม่มีองค์ประกอบไหนของระบบ Vision ที่ทำให้โปรเจกต์ล่าช้า งบบานปลาย และน่าปวดหัวได้เท่ากับเรื่องของ แสง (Lighting) อีกแล้ว!”
วันนี้เราจะมาเจาะลึกกันว่า ทำไม “แสง” ถึงไม่ใช่แค่ไม้ประดับ แต่เป็น “ปัจจัยที่สำคัญที่สุด” ที่ชี้ชะตาว่า AI ของน้องจะฉลาดระดับอัจฉริยะ หรือจะตาบอดคาโรงงาน!
2. 📖 เปิดฉาก (The Hook)
ลองจินตนาการดูนะครับ… น้องเพิ่งเทรนโมเดล Deep Learning ขั้นเทพเพื่อตรวจจับรอยร้าวบนชิ้นงานโลหะ ในห้องแล็บของน้อง (ที่เปิดไฟนีออนสว่างจ้า) โมเดลนี้ทำความแม่นยำได้ถึง 99.9% น้องเดินยืดอกเอาไปติดตั้งที่หน้างานจริงในโรงงานด้วยความมั่นใจ
แต่พอถึงเวลาบ่ายสามโมง แสงแดดจากหน้าต่างโรงงานสาดเข้ามาตกกระทบชิ้นงานโลหะ ทำให้เกิดแสงสะท้อนจ้า (Glare) คราวนี้โมเดลของน้องมองไม่เห็นรอยร้าวเลย ซ้ำร้ายยังทายว่าแสงสะท้อนนั้นคือรอยร้าวซะงั้น! ความแม่นยำร่วงลงเหลือ 50% ทันที
น้องอาจจะพยายามกลับไปแก้โค้ด จูนพารามิเตอร์ หรือเพิ่ม Data Augmentation เข้าไปเป็นร้อยๆ ภาพ ซึ่งกินเวลาเป็นสัปดาห์… ทั้งๆ ที่ความจริงแล้ว ปัญหานี้แก้ได้ใน 5 นาที แค่น้อง “เปลี่ยนมุมของไฟ” หรือ “ใส่ฟิลเตอร์ตัดแสง (Polarizing filter)” ที่หน้าเลนส์กล้อง! นี่แหละครับคือเหตุผลที่วงการเรามีคำกล่าวว่า “Garbage in, garbage out” ถ้ารูปที่ส่งเข้ามาห่วย ต่อให้อัลกอริทึมจะเทพแค่ไหน ผลลัพธ์ก็พังอยู่ดีครับ
3. 🧠 แก่นวิชา (Core Concepts)
จากเอกสารระดับโลกและประสบการณ์หน้างานจริง พี่ขอสกัดหัวใจสำคัญของ “แสง” ในงาน Image Processing ออกมาดังนี้ครับ:
- 1. กล้องไม่ได้มองเห็นวัตถุ แต่มองเห็น “แสงที่สะท้อนกลับมา”: นี่คือกฎข้อแรกที่ต้องจำให้ขึ้นใจครับ! กล้องอุตสาหกรรม (Machine Vision Camera) ไม่ได้รับรู้ว่าสิ่งที่อยู่ตรงหน้าคืออะไร สิ่งที่เซนเซอร์รับรู้มีเพียง “แสง (Photons)” ที่พุ่งเข้ามาชนตัวมันเท่านั้น หน้าที่ของเราคือการควบคุมแสงให้สะท้อนคาแรคเตอร์ของวัตถุออกมาให้ได้มากที่สุด
- 2. สายตามนุษย์ vs. ดวงตาจักรกล (Human Eye vs. Camera): อย่าใช้ตาเปล่าของเราเป็นเกณฑ์วัดความสว่างเด็ดขาด! สมองและดวงตาของมนุษย์เก่งมากในการปรับตัว (Adaptation) และเราตอบสนองต่อแสงในย่านสีเขียวได้ดีที่สุด (V-lambda curve) ในขณะที่เซนเซอร์ของกล้องตอบสนองแบบเส้นตรง (Linear) และสามารถมองเห็นไปไกลถึงย่านแสงอินฟราเรด (IR) หรืออัลตราไวโอเลต (UV) สิ่งที่น้องมองว่า “สว่างพอแล้ว” อาจจะมืดตึ๊ดตื๋อสำหรับกล้องก็ได้ครับ
- 3. กฎเหล็ก 3 ข้อของการจัดแสง (The Acceptance Criteria):
เป้าหมายสูงสุดของการจัดแสงใน Machine Vision มีอยู่ 3 ข้อสั้นๆ แต่ทรงพลังมากครับ
- Maximize the contrast on features of interest: ดันความเปรียบต่าง (Contrast) ของสิ่งที่เราอยากเห็น (เช่น รอยร้าว, ตัวหนังสือ) ให้เด้งหลุดออกมาจากฉากหลัง
- Minimize the contrast elsewhere: กดสิ่งที่ไม่อยากเห็น (สัญญาณรบกวน, ลวดลายพื้นผิวที่ไม่จำเป็น) ให้กลืนหายไป
- Provide robustness: ต้องมีความเสถียร ไม่หวั่นไหวต่อสภาพแวดล้อม (เช่น ไม่พังเมื่อมีแสงไฟฉาย หรือแสงแดดกวน)
- 4. อัตราส่วนสัญญาณต่อสัญญาณรบกวน (Signal-to-Noise Ratio - SNR): ในมุมมองของการสร้างภาพให้ AI ตัว “Signal” คือข้อมูลที่มีประโยชน์ (เช่น ขอบชิ้นงาน) ส่วน “Noise” คือสิ่งรบกวน (เช่น แสงสะท้อนจ้าจากเงาหลอดไฟในโรงงาน หรือ Ambient light) การจัดแสงที่ดีคือการเพิ่ม SNR ให้สูงที่สุด เพื่อให้ AI ไม่ต้องออกแรงเดาครับ

4. 💻 ร่ายมนต์โค้ด (Show me the Code)
ถึงแม้ “แสง” จะเป็นเรื่องของ Hardware (ฮาร์ดแวร์) แต่เราสามารถใช้ซอฟต์แวร์ (Python + OpenCV) เพื่อเขียนโค้ดตรวจสอบคุณภาพของแสง หรือหาค่าความเปรียบต่าง (Contrast) ของภาพได้ครับ ถ้ารูปแสงดี โค้ดคอมพิวเตอร์จะแยกวัตถุกับฉากหลังได้ด้วยการเขียน Thresholding ง่ายๆ บรรทัดเดียว!
import cv2
import matplotlib.pyplot as plt
import numpy as np
# 1. โหลดภาพที่ได้จากการจัดแสง (สมมติว่าเป็นภาพชิ้นงานที่มีแสงเงาชัดเจน)
image = cv2.imread('inspected_part.jpg', cv2.IMREAD_GRAYSCALE)
# 2. วิเคราะห์ Histogram เพื่อดูว่าแสงที่เราจัดทำให้ Contrast ดีแค่ไหน
# ถ้าแสงดี กราฟควรจะมีภูเขา 2 ลูกแยกกันชัดเจน (Bimodal)
# ลูกนึงคือฉากหลังสีดำ อีกลูกคือชิ้นงานสีสว่าง
plt.hist(image.ravel(), bins=256, range=)
plt.title('Image Histogram: Checking Lighting Quality')
plt.xlabel('Pixel Intensity (0-255)')
plt.ylabel('Number of Pixels')
plt.show()
# 3. ลองทำ Image Segmentation ด้วย Threshold แบบอัตโนมัติ (Otsu's method)
# ถ้าแสงเราจัดมาดีโคตรๆ โค้ดบรรทัดนี้จะแยกชิ้นงานออกมาได้เนียนกริบ 100%
# โดยไม่ต้องพึ่ง Deep Learning เลยด้วยซ้ำ!
ret, thresholded_img = cv2.threshold(image, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
print(f"ค่า Threshold ที่เหมาะสมที่สุดที่คำนวณได้คือ: {ret}")
# แสดงผลลัพธ์
cv2.imshow('Original with Good Lighting', image)
cv2.imshow('Extracted Feature', thresholded_img)
cv2.waitKey(0)
cv2.destroyAllWindows()คอมเมนต์: น้องๆ จะเห็นว่า ถ้ารูปต้นฉบับที่เราใช้กล้องและดวงไฟ (Illumination) ถ่ายมา มีคอนทราสต์ที่ชัดเจน (Pixels สว่างและมืดแยกกันขาด) แค่ใช้อัลกอริทึม Rule-based พื้นฐานแบบ Otsu ก็ทำงานจบแล้วครับ “Better to light than write” (จัดแสงให้ดี ดีกว่ามานั่งเขียนโค้ดแก้ปัญหานะครับ!)
5. 🛡️ เคล็ดลับจากคัมภีร์ลับ (Under the Hood / Pro-Tips)
ในโลกหน้างานอุตสาหกรรม พี่มีเทคนิคเด็ดๆ เรื่องแสงมาฝากครับ:
- มารร้ายที่ชื่อว่า Ambient Light (แสงกวนจากสภาพแวดล้อม): แสงไฟนีออนบนเพดานโรงงาน หรือแสงแดดจากหน้าต่าง คือศัตรูตัวฉกาจ เพราะมันควบคุมทิศทางไม่ได้ วิธีแก้ที่โปรที่สุดมี 2 ทางครับ:
- สร้างกล่องทึบแสงคลุมสถานีตรวจสอบ (Opaque housing)
- ใช้ไฟแฟลช (Strobe light) ที่มีความสว่างรุนแรงยิงในช่วงเวลาสั้นๆ (Short exposure) เพื่อ “กลบ” แสงรอบข้างให้มืดสนิทไปเลย
- เมื่อตาคนกับกล้องเห็นไม่เหมือนกัน (Color filtering): ถ้าชิ้นงานของน้องมีหลายสี แล้วตัวหนังสือมันกลืนไปกับฉากหลัง แหล่งข้อมูลชี้ว่าเราสามารถใช้หลักการ “สีคู่ตรงข้าม (Complementary colors)” ได้ครับ เช่น ใช้ไฟแสงสีน้ำเงินส่องไปที่ตัวหนังสือสีแดง แสงสีน้ำเงินจะถูกสีแดงดูดกลืน (Absorb) ทำให้ตัวหนังสือกลายเป็น “สีดำสนิท” ในภาพขาวดำของกล้อง คอนทราสต์จะพุ่งปรี๊ดทันที!
- อย่าแก้ปัญหาด้วย Software ถ้าแก้ได้ด้วย Hardware: วิศวกร AI มือใหม่มักจะแก้ปัญหาภาพเบลอ หรือแสงสะท้อน ด้วยการเทรน Deep Learning ให้จำภาพห่วยๆ เหล่านั้น จำไว้นะครับว่า… ใช้ไฟ LED เล็กๆ ราคาไม่กี่พันบาท เปลี่ยนมุมยิงแสง ดีกว่าการเช่า Cloud GPU หลักแสนเพื่อมาเทรนโมเดลชดเชยแสงแย่ๆ แน่นอนครับ!
6. 🏁 บทสรุป (To be continued…)
โดยสรุปแล้ว “แสง (Lighting)” ไม่ใช่แค่หลอดไฟที่ทำให้กล้องมองเห็น แต่มันคือ “อาวุธในการควบคุมข้อมูล” ที่จะถูกส่งเข้าไปในสมองของ AI ครับ การจัดแสงที่ถูกต้องจะช่วยขยาย (Maximize) ข้อมูลที่เราต้องการ และตัด (Minimize) สิ่งกวนใจทิ้งไปตั้งแต่ก่อนที่ภาพจะถูกส่งผ่านสายเคเบิลเข้าสู่คอมพิวเตอร์เสียอีก
เมื่อเรารู้แล้วว่าแสงสำคัญขนาดไหน ในบทความตอนต่อไป พี่จะพาน้องๆ ไปเจาะลึก “4 เสาหลักของการจัดแสง (The 4 Cornerstones of Vision Illumination)” ซึ่งได้แก่ รูปทรง (Geometry), โครงสร้าง (Structure), ความยาวคลื่น (Wavelength) และ ฟิลเตอร์ (Filters) เราจะมาดูกันว่าเราจะเสกเวทมนตร์บิดเบือนทิศทางแสงเพื่อรีดประสิทธิภาพสูงสุดของกล้องออกมาได้อย่างไร รอติดตามกันนะครับ!
ต้องการที่ปรึกษาด้านการพัฒนาระบบ AI Camera หรือ Machine Vision ให้กับโรงงานของคุณ? ทีมงาน WP Solution พร้อมให้บริการออกแบบและติดตั้งระบบแบบครบวงจร ดูรายละเอียดบริการของเราได้ที่: www.wpsolution2017.com หรือพูดคุยปรึกษาเบื้องต้นได้ที่ Line: wisit.p