รูปปกบทความ ประเภทของแสงในงานอุตสาหกรรม

1. 🎯 ตอนที่ 7: เจาะลึกประเภทของแสงในงานอุตสาหกรรม

สวัสดีครับน้องๆ วิศวกรสาย Vision และนักพัฒนา AI ทุกท่าน! จิบกาแฟอุ่นๆ แล้วมาล้อมวงกันตรงนี้ครับ

ในตอนที่แล้วพี่ได้เกริ่นไปแล้วว่า “แสง (Lighting)” คือปัจจัยชี้เป็นชี้ตายที่สำคัญที่สุดในงาน Machine Vision วันนี้เราจะมาลงลึกกันในภาคปฏิบัติครับ ว่าเวลาเราเปิดแคตตาล็อกของบริษัทขายอุปกรณ์แสงสว่างหน้าตาประหลาดๆ อย่าง Dome Light, Ring Light หรือ Backlight แผงสี่เหลี่ยม… แต่ละตัวมันมีหน้าที่อะไร? และเราควรเลือกใช้ “กระบี่” เล่มไหนให้เหมาะกับ “ชิ้นงาน” ของเรามากที่สุด

รับรองว่าถ้าน้องๆ เข้าใจเทคนิคการจัดแสงเหล่านี้ โค้ด Deep Learning และ Convolutional Neural Network (CNN) ของน้องจะทำงานง่ายขึ้นเป็น 10 เท่าเลยครับ ลุยกันเลย!

2. 📖 เปิดฉาก (The Hook)

ลองจินตนาการถึงเหตุการณ์ในโรงงานผลิตกระป๋องน้ำอัดลมดูนะครับ… น้องได้รับโจทย์ให้เขียน AI อ่านตัวหนังสือและบาร์โค้ด (OCR/Barcode Reading) ที่ถูกยิงเลเซอร์ไว้ที่ “ก้นกระป๋อง”

ด้วยความมั่นใจ น้องเอาไฟฉายหรือ Ring Light ทั่วไปส่องตรงๆ ลงไปที่ก้นกระป๋องเว้าๆ เงาๆ นั้น สิ่งที่น้องเห็นบนหน้าจอคือ… “แสงสะท้อนจ้า (Glare / Hotspot)” บังตัวหนังสือจนมิดมืด! น้องพยายามแก้ปัญหาด้วยซอฟต์แวร์ เขียนโค้ดปรับ Contrast ปรับ Threshold หรือแม้แต่โยนรูปเข้าโมเดล Deep Learning ไปเป็นพันๆ รูป โมเดลก็ยังเกิดอาการ Overfitting และทายผิดอยู่ดี

จนกระทั่งมีวิศวกรรุ่นพี่เดินมาถอดไฟฉายของน้องออก แล้วครอบอุปกรณ์ที่หน้าตาเหมือน “ชามข้าวหมาค่ำ (Dome Light)” ลงไปแทน… ทันใดนั้น แสงสะท้อนหายวับไป ตัวหนังสือโผล่ขึ้นมาคมกริบ! โค้ด Rule-based ธรรมดาก็สามารถอ่านออกได้ในเสี้ยววินาที! นี่แหละครับคือเวทมนตร์ของการเลือก “ประเภทแสง” ให้ถูกกับงาน!

3. 🧠 แก่นวิชา (Core Concepts)

ในโลกของ Machine Vision เราสามารถแบ่งเทคนิคการจัดแสงออกเป็นกลุ่มหลักๆ ที่ใช้งานบ่อยสุดๆ ได้ดังนี้ครับ:

  • 1. Dome Lighting (Diffuse / Full Bright Field): แสงแบบวันเมฆครึ้ม
    • มันคืออะไร: เป็นโคมไฟรูปโดมครึ่งวงกลมที่ด้านในบุด้วยสีขาวทึบแสง กล้องจะมองลอดรูเล็กๆ ด้านบนลงมา แสงจาก LED จะยิงใส่ผนังโดมให้สะท้อนกระเจิง (Scatter) ลงมาหาชิ้นงานจาก “ทุกทิศทุกทาง (360 องศา)” เปรียบเสมือนแสงอาทิตย์ในวันที่เมฆครึ้ม (Cloudy day illumination) ที่จะไม่มีเงาแข็งๆ เกิดขึ้นเลย
    • เหมาะกับงานแบบไหน: ชิ้นงานที่มีความมันวาวสูง (Specular/Reflective) หรือมีผิวโค้งเว้า เช่น ก้นกระป๋องน้ำอัดลม, แผงบลิสเตอร์ยา (Blister packs), หรือชิ้นส่วนรถยนต์โลหะ โดมจะช่วยลบแสงสะท้อนจ้าทิ้งไป ทำให้เห็นพื้นผิวได้เนียนตาที่สุดครับ
  • 2. Dark Field Lighting: แสงมุมต่ำ จับผิดรอยร้าว
    • มันคืออะไร: เป็นเทคนิคที่ยิงแสงเข้าหาชิ้นงานในมุมที่ต่ำมากๆ (Low angle incidence) ปกติจะต่ำกว่า 45 องศา หลักการคือ “สะท้อนแสงทิ้งไปในอวกาศ” พื้นผิวที่เรียบเนียนจะสะท้อนแสงหนีกล้อง ทำให้ภาพดู “มืดสนิท (Dark field)” แต่ถ้ายิงไปโดน “ขอบ (Edges)”, “รอยขีดข่วน (Scratches)”, หรือ “รอยนูน” แสงจะกระเจิงเข้าหากล้อง ทำให้จุดตำหนินั้นสว่างวาบขึ้นมาบนพื้นหลังสีดำครับ
    • เหมาะกับงานแบบไหน: การหาขอบเขตชิ้นงาน, อ่านโค้ดแบบตอกฝังลึก (Dot peen matrix) บนโลหะ, ตรวจจับรอยขีดข่วนบนผิวกระจกเงา หรือตรวจสอบรอยประทับต่างๆ (Embossing)
  • 3. Diffuse Backlight: แสงทะลวงหลัง สร้างเงาดำ
    • มันคืออะไร: เอาแผงไฟไปวางไว้ “ด้านหลัง” ของชิ้นงานแล้วส่องเข้าหากล้องตรงๆ (Silhouettes against a bright background)
    • เหมาะกับงานแบบไหน: งานที่ต้องการวัดขนาด (Dimension measurement) หรือเช็กว่าเจาะรูครบไหม (Presence/absence of holes) เพราะมันสร้างคอนทราสต์ขั้นสุดยอด ขอบชิ้นงานจะตัดกับแสงพื้นหลังอย่างชัดเจน นอกจากนี้ยังใช้ส่องทะลุชิ้นงานโปร่งแสง (Transparent parts) เพื่อดูระดับน้ำหรือสิ่งแปลกปลอมด้านในได้ด้วยครับ
แผนภาพแสดงการเดินทางของแสงในเทคนิค Dome, Dark Field และ Backlight

4. 💻 ร่ายมนต์โค้ด (Show me the Code)

เพื่อแสดงให้เห็นว่าแสงที่ถูกต้อง (โดยเฉพาะ Backlight) ทำให้การเขียนโค้ดง่ายดายแค่ไหน ลองดูตัวอย่างการใช้ OpenCV เพื่อหา “ขอบเขตและขนาด” ของชิ้นงานจากภาพ Backlight ที่มี Contrast ตัดกันแบบ 100% กันครับ:

import cv2
import numpy as np

# 1. โหลดภาพที่ถ่ายด้วยเทคนิค Diffuse Backlight (ชิ้นงานจะดำสนิท พื้นหลังจะขาวจ้า)
image = cv2.imread('backlight_part.jpg', cv2.IMREAD_GRAYSCALE)

# 2. ทำ Thresholding: ง่ายสุดๆ เพราะคอนทราสต์ชัดมาก!
# ค่าพิกเซลไหนมืดกว่า 127 (ตัวชิ้นงาน) ให้กลายเป็น 255 (สีขาว) 
# ส่วนพื้นหลังที่สว่างให้กลายเป็น 0 (สีดำสนิท)
_, thresh = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY_INV)

# 3. ค้นหาเส้นขอบ (Contours) ของชิ้นงาน
contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# 4. วาด Bounding Box ครอบชิ้นงานเพื่อเตรียมเอาไปวัดขนาด
output_img = cv2.cvtColor(image, cv2.COLOR_GRAY2BGR)
for cnt in contours:
    x, y, w, h = cv2.boundingRect(cnt)
    # วาดกรอบสี่เหลี่ยมสีเขียว
    cv2.rectangle(output_img, (x, y), (x+w, y+h), (0, 255, 0), 2)
    print(f"พบชิ้นงานขนาด: {w} x {h} pixels")

# แค่นี้ก็ได้ตำแหน่งเป๊ะๆ โดยไม่ต้องพึ่ง Deep Learning เลยครับ!
cv2.imshow('Backlight Silhouette Detection', output_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

คอมเมนต์: ถ้าน้องพยายามวัดขนาดชิ้นงานด้วยไฟส่องจากด้านหน้า (Front light) น้องจะปวดหัวกับเงาตกกระทบที่ขอบชิ้นงานแน่ๆ ครับ แต่พอเป็น Backlight โค้ดจะคลีนและนิ่ง (Robust) มากขึ้นทันที!

5. 🛡️ เคล็ดลับจากคัมภีร์ลับ (Under the Hood / Pro-Tips)

ในมุมของคนหน้างาน พี่มีเทคนิคโหดๆ มาฝากครับ:

  • กฎตัวอักษร “W” (The ‘W’ Concept): การจะแยกว่าไฟที่เราตั้งเป็น Bright Field หรือ Dark Field ให้วาดรูปตัว “W” โดยเริ่มจากเลนส์กล้อง ลากเส้นไปยังขอบของระยะมองเห็น (Field of View) แล้วสะท้อนตั้งฉากขึ้นไป ถ้าโคมไฟน้องอยู่ในโซนรูปตัว V ด้านใน (ยิงแสงลงมาตรงๆ) มันคือ Bright Field แต่ถ้าโคมไฟอยู่นอกตัว V (ยิงแสงกวาดพื้น) นั่นคือเขตแดนของ Dark Field ครับ!
  • เมื่อ Backlight ปกติแพ้ความหนา: ถ้าน้องใช้วัดขนาดชิ้นงานที่ “มีความหนา” มากๆ เช่น ทรงกระบอก แสงจาก Diffuse Backlight ทั่วไปจะเลียไปตามขอบชิ้นงาน ทำให้ขอบเบลอและวัดขนาดผิดพลาด! ในกรณีนี้วิศวกรระดับโปรจะเปลี่ยนไปใช้ Collimated Backlight (หรือ Telecentric Backlight) ซึ่งเป็นแสงที่วิ่งเป็นเส้นตรงขนานกันเป๊ะๆ (Parallel rays) ไม่มีการกระเจิง ทำให้ได้เส้นขอบที่คมกริบระดับไมครอนเลยครับ!

6. 🏁 บทสรุป (To be continued…)

โดยสรุปแล้ว Dome Lighting คือพระเอกสำหรับลบแสงสะท้อนบนชิ้นงานมันวาว, Dark Field Lighting คือมือปราบรอยร้าวและขอบนูนด้วยแสงมุมต่ำ, และ Diffuse Backlight คือเทพเจ้าแห่งการสร้างเงาเพื่อวัดขนาด การเลือกแสงที่ถูกต้องจะช่วยเพิ่ม Signal-to-Noise Ratio (SNR) ทำให้โมเดล AI ของน้องไม่ต้องเดาสุ่ม และลดภาระในการเขียนโค้ด Preprocessing ไปได้มหาศาลครับ

แต่การมีดวงตา (กล้อง) และมีแสง (Lighting) ที่ดีพร้อมแล้ว ก็ยังไม่ใช่จุดจบของการทำงานอุตสาหกรรมครับ! ภาพจากสายพานที่วิ่งด้วยความเร็ว 10 เมตรต่อวินาที มักจะเกิดอาการ “ภาพเบลอ (Motion Blur)” เสมอ! ในตอนหน้า พี่จะพาน้องๆ ไปพบกับท่าไม้ตายสุดท้ายของวิศวกร Vision นั่นคือเทคนิค “การจัดแสงแบบกระพริบ (Strobe Lighting)” ที่สามารถหยุดเวลาชิ้นงานให้หยุดนิ่งสนิทได้ดั่งเวทมนตร์ รอติดตามความล้ำนี้ได้เลยครับ!


ต้องการที่ปรึกษาด้านการพัฒนาระบบ AI Camera หรือ Machine Vision ให้กับโรงงานของคุณ? ทีมงาน WP Solution พร้อมให้บริการออกแบบและติดตั้งระบบแบบครบวงจร ดูรายละเอียดบริการของเราได้ที่: www.wpsolution2017.com หรือพูดคุยปรึกษาเบื้องต้นได้ที่ Line: wisit.p