รูปปกบทความ Object Detection vs Image Classification

1. 🎯 ตอนที่ 9: Object Detection คืออะไร ต่างจาก Classification อย่างไร?

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

ในตอนที่แล้วพี่พาน้องๆ ไปทำความรู้จักกับ Image Classification (การจำแนกประเภทภาพ) กันมาแล้ว ซึ่ง AI สามารถบอกเราได้ว่า “ในภาพมีอะไร” แต่น้องๆ รู้ไหมครับว่าในหน้างานอุตสาหกรรมจริงๆ แค่รู้ว่ามีอะไรนั้น “ไม่พอ” ครับ!

ลองนึกภาพว่าเราใช้ AI ในการตรวจสอบคุณภาพสินค้า ถ้าระบบบอกได้แค่ว่า “มีชิ้นงานเสีย!” แต่ไม่ยอมบอกว่ารอยร้าวอยู่ตรงไหน หุ่นยนต์คัดแยก (Robotic arm) ก็คงจะยืนงง ไม่รู้จะหยิบตรงไหนไปทิ้งใช่ไหมครับ? นี่แหละครับคือจุดที่พระเอกของเราอย่าง Object Detection ต้องออกโรง วันนี้พี่จะพาน้องๆ ไปเจาะลึกความแตกต่างของสองศาสตร์นี้ และทำความรู้จักกับกล่องสี่เหลี่ยมมหัศจรรย์ที่เรียกว่า “Bounding Box” กันครับ!

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

เวลาพี่ไปให้คำปรึกษาที่โรงงาน คำถามยอดฮิตที่เจอบ่อยมากคือ “พี่ครับ โมเดลผมทายถูก 99% ว่ามีน็อตขึ้นสนิมในภาพ แต่ทำไมมันไม่ยอมบอกพิกัดให้แขนกลหยิบออกล่ะครับ?”

คำตอบคือ… น้องกำลังใช้เครื่องมือผิดประเภทครับ! น้องกำลังเอาโมเดล Image Classification (ซึ่งเป็นนักวิเคราะห์ภาพรวม) ไปสั่งงานหุ่นยนต์ที่ต้องการรู้ “พิกัดเป้าหมาย”

การจะบอกพิกัดได้ เราต้องก้าวข้ามขีดจำกัดเดิมๆ ไปสู่โลกของ Object Detection ซึ่งเปรียบเสมือนการจ้าง “นักสไนเปอร์” ที่ไม่เพียงแต่มองเห็นว่าเป้าหมายคือใคร แต่ยังสามารถชี้เป้าเป็นพิกัดกว้างยาวได้อย่างแม่นยำบนหน้าจอครับ!

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

จากเอกสารอ้างอิงระดับโลกด้าน Computer Vision พี่ขอสรุปความแตกต่างของงานทั้ง 3 ระดับให้น้องๆ เข้าใจง่ายๆ ดังนี้ครับ:

  • 1. Image Classification (การจำแนกประเภทภาพ):
    • เป้าหมาย: ตอบคำถามว่า “ในภาพนี้มีอะไร (What)?”
    • การทำงาน: รับภาพเข้ามา 1 ภาพ (มักจะมีวัตถุหลักเพียงชิ้นเดียว) แล้วส่งออกเป็น “ป้ายกำกับ (Class Label)” เช่น “สุนัข” พร้อมค่าความมั่นใจ 84%
  • 2. Object Localization (การระบุตำแหน่งวัตถุ):
    • เป้าหมาย: ตอบคำถามว่า “สิ่งนั้นอยู่ตรงไหน (Where)?”
    • การทำงาน: ค้นหาวัตถุในภาพ (ส่วนใหญ่โฟกัสวัตถุเดียว) แล้ววาดกรอบสี่เหลี่ยมที่เรียกว่า Bounding Box ล้อมรอบวัตถุนั้น
  • 3. Object Detection (การตรวจจับวัตถุ):
    • เป้าหมาย: ร่างสุดยอดที่รวมวิชา! ตอบให้ได้ทั้ง “มีอะไรบ้าง” และ “แต่ละชิ้นอยู่ตรงไหน”
    • การทำงาน: ในโลกความจริง ภาพ 1 ภาพอาจจะมีสุนัข 2 ตัว แมว 1 ตัว และเป็ด 1 ตัว Object Detection จะจัดการหาตำแหน่งของ “วัตถุหลายๆ ชิ้น (Multiple objects)” วาด Bounding Box ล้อมรอบทุกชิ้น พร้อมทั้งแปะป้ายกำกับ (Label) ให้ถูกต้องว่ากรอบไหนคือสุนัข กรอบไหนคือแมว

มารู้จักกับ Bounding Box กันให้ชัดๆ: Bounding Box ไม่ใช่แค่เส้นที่วาดให้มนุษย์ดูสวยๆ นะครับ แต่ในมุมมองของคอมพิวเตอร์ มันคือ “ชุดตัวเลข 4 ตัว” ที่โมเดลต้องทำนายออกมาให้ได้ มักจะอยู่ในรูปแบบ (x, y, w, h)

  • x, y คือพิกัดจุดศูนย์กลางของกล่อง (Center point)
  • w คือความกว้างของกล่อง (Width)
  • h คือความสูงของกล่อง (Height)
รูปประกอบ เปรียบเทียบผลลัพธ์ระหว่าง Image Classification ที่ให้แค่ชื่อคลาส กับ Object Detection ที่ให้พิกัด Bounding Box หลายกล่องพร้อมชื่อคลาส

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

เพื่อให้เห็นภาพความแตกต่างในเชิงการเขียนโปรแกรม พี่จะจำลองรูปแบบผลลัพธ์ (Output) ที่ได้จากโมเดลทั้งสองประเภทมาให้ดูครับ:

# ---------------------------------------------------------
# 📌 แบบที่ 1: ผลลัพธ์จากโมเดล Image Classification
# ---------------------------------------------------------
# โมเดลจะพ่นค่าความน่าจะเป็น (Probabilities) ของคลาสต่างๆ ออกมา
classification_output = {
    "cat": 0.85,
    "dog": 0.10,
    "duck": 0.05
}
print(f"นี่คือภาพของ: คลาสที่มีค่าสูงสุดคือแมว (Cat)") 
# ปัญหาคือ: เรารู้ว่ามีแมว แต่ไม่รู้ว่ามันอยู่พิกัดไหนของภาพ!


# ---------------------------------------------------------
# 📌 แบบที่ 2: ผลลัพธ์จากโมเดล Object Detection (เช่น YOLO)
# ---------------------------------------------------------
# โมเดลจะพ่นลิสต์ของ "Bounding Box" พร้อมคลาสและพิกัด x, y, w, h ออกมา
detection_outputs = [
    {"class": "cat", "confidence": 0.95, "box":}, # กล่องที่ 1
    {"class": "cat", "confidence": 0.88, "box":}, # กล่องที่ 2
    {"class": "dog", "confidence": 0.92, "box":} # กล่องที่ 3
]

for obj in detection_outputs:
    # ดึงค่าพิกัดมาใช้งานต่อยอด
    x, y, w, h = obj["box"]
    print(f"พบ {obj['class']} ที่พิกัด ({x}, {y}) กว้าง {w} สูง {h}")
    # แค่นี้เราก็สามารถส่งพิกัด (x,y) ไปให้หุ่นยนต์ทำงานต่อได้แล้วครับ!

คอมเมนต์อธิบายสไตล์คุยกัน: เห็นความต่างไหมครับ? Output ของ Detection จะอลังการกว่ามาก เพราะมันต้องผสมผสานทั้งงานทายชื่อคลาส (Classification) และงานทายตัวเลขพิกัดกล่องสี่เหลี่ยมให้ออกมาพร้อมๆ กันครับ

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

ในมุมของการออกแบบโครงข่ายประสาทเทียม (Deep Learning Architecture) งาน Detection หินกว่า Classification มากครับ พี่มีเกร็ดความรู้มาแชร์:

  • เปลี่ยนโลกด้วย Regression: ในงาน Classification เราใช้ฟังก์ชัน Softmax เพื่อหาค่าความน่าจะเป็น (ตัวเลข 0 ถึง 1) แต่สำหรับการวาด Bounding Box (x, y, w, h) ค่าเหล่านี้คือตัวเลขพิกัดที่ต่อเนื่องกันไป! ดังนั้นในเลเยอร์สุดท้ายของโมเดล Detection (เช่น Faster R-CNN หรือ YOLO) จะต้องมีหัวที่ทำหน้าที่วิเคราะห์การถดถอย หรือ Bounding-box Regressor เสมอครับ
  • ความท้าทายเรื่องจำนวนที่แปรผัน (Variable Number of Outputs): รูปภาพ 1 รูปอาจจะไม่มีวัตถุเลย, มี 1 ชิ้น, หรือมีเป็น 100 ชิ้นก็ได้! การสร้าง Neural Network ที่พ่นค่าออกมาไม่คงที่แบบนี้เป็นเรื่องยากมาก ยุคแรกๆ เราเลยต้องใช้เทคนิค Sliding Window กวาดไปทั่วภาพ หรือใช้เทคนิค Region Proposal เพื่อเสนอจุดที่ “น่าจะมี” วัตถุขึ้นมาก่อนนำไปประมวลผลครับ

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

สรุปสั้นๆ ให้ขึ้นใจเลยนะครับ:

  • Image Classification = การบอกว่า “ในรูปมีอะไร”
  • Object Localization = การบอกว่า “สิ่งนั้นอยู่ตรงไหน”
  • Object Detection = การวาด Bounding Box หาตำแหน่งของ “วัตถุหลายๆ ชิ้น” ในภาพเดียวกัน พร้อมบอกด้วยว่าแต่ละกล่องคืออะไร!

เมื่อเราสามารถชี้เป้าวัตถุด้วย Bounding Box ได้แล้ว เทคโนโลยีนี้จึงถูกนำไปใช้อย่างมหาศาลครับ ไม่ว่าจะเป็นระบบนับจำนวนรถยนต์บนถนน, ระบบช่วยเตือนในรถยนต์ไร้คนขับ (Autonomous Vehicles), หรือการคัดแยกสินค้าในโรงงาน

แต่คำถามที่น่าตื่นเต้นต่อไปคือ… แล้ว AI มันคิดอัลกอริทึมยังไงถึงตีกรอบได้เร็วและแม่นยำขนาดนั้น? ในบทความตอนต่อไป พี่จะพาน้องๆ ไปเจาะลึกสถาปัตยกรรมระดับตำนานอย่างตระกูล R-CNN, SSD และสุดยอดโมเดลสายซิ่งอย่าง YOLO (You Only Look Once) กันครับ รอติดตามความมันส์กันได้เลย!


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