AI-For-Beginners/translations/th/lessons/4-ComputerVision/12-Segmentation
leestott 94ab679d2a 🌐 Update translations via Co-op Translator 2025-08-29 11:12:47 +00:00
..
lab 🌐 Update translations via Co-op Translator 2025-08-29 11:12:47 +00:00
README.md 🌐 Update translations via Co-op Translator 2025-08-29 11:12:47 +00:00
SemanticSegmentationPytorch.ipynb 🌐 Update translations via Co-op Translator 2025-08-29 11:12:47 +00:00
SemanticSegmentationTF.ipynb 🌐 Update translations via Co-op Translator 2025-08-29 11:12:47 +00:00

README.md

การแบ่งส่วนภาพ

เราได้เรียนรู้เกี่ยวกับการตรวจจับวัตถุ (Object Detection) ซึ่งช่วยให้เราสามารถระบุตำแหน่งของวัตถุในภาพโดยการทำนาย กรอบสี่เหลี่ยม (bounding boxes) ของวัตถุ อย่างไรก็ตาม สำหรับบางงาน เราไม่ได้ต้องการแค่กรอบสี่เหลี่ยม แต่ต้องการการระบุตำแหน่งของวัตถุที่แม่นยำยิ่งขึ้น งานนี้เรียกว่า การแบ่งส่วนภาพ (segmentation)

แบบทดสอบก่อนเรียน

การแบ่งส่วนภาพสามารถมองว่าเป็น การจำแนกพิกเซล ซึ่งสำหรับ แต่ละ พิกเซลในภาพ เราต้องทำนายคลาสของมัน (พื้นหลัง เป็นหนึ่งในคลาส) โดยมีอัลกอริทึมการแบ่งส่วนภาพหลักสองประเภท:

  • Semantic segmentation บอกเพียงคลาสของพิกเซล แต่ไม่ได้แยกแยะวัตถุที่แตกต่างกันในคลาสเดียวกัน
  • Instance segmentation แบ่งคลาสออกเป็นวัตถุแต่ละชิ้น

สำหรับ instance segmentation แกะเหล่านี้ถือเป็นวัตถุที่แตกต่างกัน แต่สำหรับ semantic segmentation แกะทั้งหมดจะถูกแทนด้วยคลาสเดียวกัน

ภาพจาก บทความนี้

มีสถาปัตยกรรมของเครือข่ายประสาทเทียมที่หลากหลายสำหรับการแบ่งส่วนภาพ แต่ทั้งหมดมีโครงสร้างเดียวกัน ในบางแง่ มันคล้ายกับ autoencoder ที่คุณเคยเรียนรู้มาก่อนหน้านี้ แต่แทนที่จะถอดรหัสภาพต้นฉบับ เป้าหมายของเราคือการถอดรหัส mask ดังนั้น เครือข่ายการแบ่งส่วนภาพจะมีส่วนประกอบดังนี้:

  • Encoder สกัดคุณลักษณะจากภาพต้นฉบับ
  • Decoder แปลงคุณลักษณะเหล่านั้นเป็น ภาพ mask ที่มีขนาดและจำนวนช่องสัญญาณเท่ากับจำนวนคลาส

ภาพจาก งานวิจัยนี้

เราควรกล่าวถึงฟังก์ชันการสูญเสีย (loss function) ที่ใช้สำหรับการแบ่งส่วนภาพเป็นพิเศษ เมื่อใช้ autoencoder แบบดั้งเดิม เราต้องวัดความคล้ายคลึงกันระหว่างภาพสองภาพ และเราสามารถใช้ mean square error (MSE) เพื่อทำเช่นนั้น ในการแบ่งส่วนภาพ แต่ละพิกเซลในภาพ mask เป้าหมายแสดงถึงหมายเลขคลาส (one-hot-encoded ในมิติที่สาม) ดังนั้นเราจำเป็นต้องใช้ฟังก์ชันการสูญเสียที่เฉพาะเจาะจงสำหรับการจำแนกประเภท เช่น cross-entropy loss ที่เฉลี่ยในทุกพิกเซล หาก mask เป็นแบบไบนารี จะใช้ binary cross-entropy loss (BCE)

การเข้ารหัสแบบ one-hot เป็นวิธีการเข้ารหัสป้ายกำกับคลาสลงในเวกเตอร์ที่มีความยาวเท่ากับจำนวนคลาส ลองดู บทความนี้ เกี่ยวกับเทคนิคนี้

การแบ่งส่วนภาพสำหรับการถ่ายภาพทางการแพทย์

ในบทเรียนนี้ เราจะเห็นการแบ่งส่วนภาพในทางปฏิบัติโดยการฝึกเครือข่ายให้รู้จักเนื้องอกผิวหนัง (หรือที่เรียกว่าขี้แมลงวัน) ในภาพทางการแพทย์ เราจะใช้ ฐานข้อมูล PH2 ของภาพถ่ายผิวหนังเป็นแหล่งข้อมูลภาพ ฐานข้อมูลนี้มีภาพ 200 ภาพที่แบ่งออกเป็นสามคลาส: เนื้องอกทั่วไป, เนื้องอกผิดปกติ, และมะเร็งผิวหนัง ภาพทั้งหมดมี mask ที่ระบุขอบเขตของเนื้องอกด้วย

เทคนิคนี้เหมาะสมอย่างยิ่งสำหรับการถ่ายภาพทางการแพทย์ประเภทนี้ แต่คุณสามารถจินตนาการถึงการใช้งานในโลกจริงอื่น ๆ ได้หรือไม่?

navi

ภาพจากฐานข้อมูล PH2

เราจะฝึกโมเดลเพื่อแบ่งส่วนเนื้องอกออกจากพื้นหลัง

✍️ แบบฝึกหัด: การแบ่งส่วนภาพแบบ Semantic

เปิดโน้ตบุ๊กด้านล่างเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับสถาปัตยกรรมการแบ่งส่วนภาพแบบ Semantic ฝึกการทำงานกับมัน และดูการทำงานจริง

แบบทดสอบหลังเรียน

สรุป

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

🚀 ความท้าทาย

การแบ่งส่วนร่างกายเป็นหนึ่งในงานทั่วไปที่เราสามารถทำได้กับภาพของมนุษย์ งานสำคัญอื่น ๆ รวมถึง การตรวจจับโครงกระดูก และ การตรวจจับท่าทาง ลองใช้ไลบรารี OpenPose เพื่อดูว่าการตรวจจับท่าทางสามารถนำไปใช้ได้อย่างไร

การทบทวนและการศึกษาด้วยตนเอง

บทความ Wikipedia นี้ ให้ภาพรวมที่ดีเกี่ยวกับการใช้งานต่าง ๆ ของเทคนิคนี้ เรียนรู้เพิ่มเติมด้วยตัวเองเกี่ยวกับสาขาย่อยของ Instance segmentation และ Panoptic segmentation ในการศึกษานี้

การบ้าน

ในห้องปฏิบัติการนี้ ลอง การแบ่งส่วนร่างกายมนุษย์ โดยใช้ Segmentation Full Body MADS Dataset จาก Kaggle


ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่แม่นยำ เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษาจากผู้เชี่ยวชาญที่เป็นมนุษย์ เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้