AI-For-Beginners/translations/th/lessons/4-ComputerVision/11-ObjectDetection/README.md

19 KiB
Raw Blame History

การตรวจจับวัตถุ

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

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

การตรวจจับวัตถุ

ภาพจาก เว็บไซต์ YOLO v2

วิธีการตรวจจับวัตถุแบบง่าย

สมมติว่าเราต้องการค้นหาแมวในภาพ วิธีการตรวจจับวัตถุแบบง่ายมากจะเป็นดังนี้:

  1. แบ่งภาพออกเป็นหลายส่วน
  2. ใช้การจำแนกภาพในแต่ละส่วน
  3. ส่วนที่มีการกระตุ้นสูงพอสามารถถือว่าเป็นส่วนที่มีวัตถุที่เราต้องการ

การตรวจจับวัตถุแบบง่าย

ภาพจาก Exercise Notebook

อย่างไรก็ตาม วิธีนี้ยังไม่ดีนัก เพราะมันสามารถระบุตำแหน่งของกรอบวัตถุได้อย่างไม่แม่นยำ สำหรับตำแหน่งที่แม่นยำยิ่งขึ้น เราจำเป็นต้องใช้ การถดถอย เพื่อทำนายพิกัดของกรอบวัตถุ และสำหรับสิ่งนี้ เราต้องการชุดข้อมูลเฉพาะ

การถดถอยสำหรับการตรวจจับวัตถุ

บทความนี้ มีการแนะนำที่ดีเกี่ยวกับการตรวจจับรูปร่าง

ชุดข้อมูลสำหรับการตรวจจับวัตถุ

คุณอาจพบชุดข้อมูลต่อไปนี้สำหรับงานนี้:

  • PASCAL VOC - 20 คลาส
  • COCO - Common Objects in Context. 80 คลาส, กรอบวัตถุ และหน้ากากการแบ่งส่วน

COCO

ตัวชี้วัดสำหรับการตรวจจับวัตถุ

การตัดกันเหนือการรวม

สำหรับการจำแนกภาพนั้นง่ายที่จะวัดว่าอัลกอริทึมทำงานได้ดีแค่ไหน แต่สำหรับการตรวจจับวัตถุ เราต้องวัดทั้งความถูกต้องของคลาส และความแม่นยำของตำแหน่งกรอบวัตถุที่คาดการณ์ สำหรับกรอบวัตถุ เราใช้ตัวชี้วัดที่เรียกว่า การตัดกันเหนือการรวม (IoU) ซึ่งวัดว่ากรอบสองกรอบ (หรือพื้นที่สองพื้นที่) ทับซ้อนกันได้ดีแค่ไหน

IoU

ภาพที่ 2 จาก บทความที่ยอดเยี่ยมเกี่ยวกับ IoU

แนวคิดง่าย ๆ คือ เราแบ่งพื้นที่ที่ตัดกันระหว่างสองรูปทรงด้วยพื้นที่รวมของพวกมัน สำหรับพื้นที่ที่เหมือนกัน IoU จะเท่ากับ 1 ในขณะที่สำหรับพื้นที่ที่ไม่ทับซ้อนกันเลย IoU จะเท่ากับ 0 ในกรณีอื่น ๆ ค่า IoU จะอยู่ระหว่าง 0 ถึง 1 โดยทั่วไปเราจะพิจารณาเฉพาะกรอบวัตถุที่มี IoU สูงกว่าค่าที่กำหนด

ความแม่นยำเฉลี่ย

สมมติว่าเราต้องการวัดว่าคลาสวัตถุ C ถูกตรวจจับได้ดีแค่ไหน ในการวัดนี้ เราใช้ตัวชี้วัด ความแม่นยำเฉลี่ย ซึ่งคำนวณดังนี้:

  1. พิจารณา Precision-Recall curve ที่แสดงความแม่นยำขึ้นอยู่กับค่าการตรวจจับที่กำหนด (จาก 0 ถึง 1)
  2. ขึ้นอยู่กับค่าการตรวจจับ เราจะได้วัตถุที่ตรวจจับได้มากหรือน้อยในภาพ และค่าความแม่นยำและการเรียกคืนที่แตกต่างกัน
  3. กราฟจะมีลักษณะดังนี้:

ภาพจาก NeuroWorkshop

ความแม่นยำเฉลี่ยสำหรับคลาส C คือพื้นที่ใต้กราฟนี้ โดยเฉพาะแกน Recall มักถูกแบ่งออกเป็น 10 ส่วน และค่า Precision จะถูกเฉลี่ยในทุกจุดเหล่านั้น:


AP = {1\over11}\sum_{i=0}^{10}\mbox{Precision}(\mbox{Recall}={i\over10})

AP และ IoU

เราจะพิจารณาเฉพาะการตรวจจับที่มี IoU สูงกว่าค่าที่กำหนด ตัวอย่างเช่น ในชุดข้อมูล PASCAL VOC โดยทั่วไป \mbox{IoU Threshold} = 0.5 ในขณะที่ใน COCO AP จะถูกวัดสำหรับค่าต่าง ๆ ของ \mbox{IoU Threshold}

ภาพจาก NeuroWorkshop

ความแม่นยำเฉลี่ยรวม - mAP

ตัวชี้วัดหลักสำหรับการตรวจจับวัตถุเรียกว่า ความแม่นยำเฉลี่ยรวม หรือ mAP ซึ่งเป็นค่าความแม่นยำเฉลี่ยที่เฉลี่ยในทุกคลาสของวัตถุ และบางครั้งยังเฉลี่ยใน \mbox{IoU Threshold} รายละเอียดเพิ่มเติมเกี่ยวกับกระบวนการคำนวณ mAP สามารถดูได้ใน บทความนี้ และ ตัวอย่างโค้ดที่นี่

วิธีการตรวจจับวัตถุที่แตกต่างกัน

มีสองประเภทใหญ่ของอัลกอริทึมการตรวจจับวัตถุ:

  • Region Proposal Networks (R-CNN, Fast R-CNN, Faster R-CNN) แนวคิดหลักคือการสร้าง Regions of Interests (ROI) และใช้ CNN กับพวกมันเพื่อค้นหาการกระตุ้นสูงสุด วิธีนี้คล้ายกับวิธีง่าย ๆ แต่ ROI ถูกสร้างขึ้นอย่างชาญฉลาดมากขึ้น หนึ่งในข้อเสียใหญ่ของวิธีนี้คือมันช้า เพราะต้องใช้ CNN classifier หลายครั้งกับภาพ
  • One-pass (YOLO, SSD, RetinaNet) วิธีการเหล่านี้ออกแบบเครือข่ายเพื่อทำนายทั้งคลาสและ ROI ในการผ่านครั้งเดียว

R-CNN: Region-Based CNN

R-CNN ใช้ Selective Search เพื่อสร้างโครงสร้างลำดับชั้นของ ROI ซึ่งจะถูกส่งผ่านตัวดึงคุณลักษณะ CNN และ SVM-classifiers เพื่อกำหนดคลาสของวัตถุ และการถดถอยเชิงเส้นเพื่อกำหนดพิกัด กรอบวัตถุ เอกสารอย่างเป็นทางการ

RCNN

ภาพจาก van de Sande et al. ICCV11

RCNN-1

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

F-RCNN - Fast R-CNN

วิธีนี้คล้ายกับ R-CNN แต่ ROI ถูกกำหนดหลังจากที่เลเยอร์ convolution ถูกใช้แล้ว

FRCNN

ภาพจาก เอกสารอย่างเป็นทางการ, arXiv, 2015

Faster R-CNN

แนวคิดหลักของวิธีนี้คือการใช้เครือข่ายประสาทเพื่อทำนาย ROI - ที่เรียกว่า Region Proposal Network เอกสาร, 2016

FasterRCNN

ภาพจาก เอกสารอย่างเป็นทางการ

R-FCN: Region-Based Fully Convolutional Network

อัลกอริทึมนี้เร็วกว่าวิธี Faster R-CNN แนวคิดหลักคือ:

  1. ดึงคุณลักษณะโดยใช้ ResNet-101
  2. คุณลักษณะถูกประมวลผลโดย Position-Sensitive Score Map วัตถุแต่ละตัวจาก C คลาสถูกแบ่งออกเป็น k\times k พื้นที่ และเราฝึกเพื่อทำนายส่วนของวัตถุ
  3. สำหรับแต่ละส่วนจาก k\times k พื้นที่ เครือข่ายทั้งหมดลงคะแนนให้กับคลาสของวัตถุ และคลาสที่มีคะแนนสูงสุดจะถูกเลือก

r-fcn image

ภาพจาก เอกสารอย่างเป็นทางการ

YOLO - You Only Look Once

YOLO เป็นอัลกอริทึมแบบเรียลไทม์ที่ผ่านครั้งเดียว แนวคิดหลักคือ:

  • ภาพถูกแบ่งออกเป็น S\times S พื้นที่
  • สำหรับแต่ละพื้นที่ CNN ทำนาย n วัตถุที่เป็นไปได้, พิกัด กรอบวัตถุ และ ความมั่นใจ=ความน่าจะเป็น * IoU.

YOLO

ภาพจาก เอกสารอย่างเป็นทางการ

อัลกอริทึมอื่น ๆ

✍️ แบบฝึกหัด: การตรวจจับวัตถุ

เรียนรู้เพิ่มเติมในโน้ตบุ๊กต่อไปนี้:

ObjectDetection.ipynb

สรุป

ในบทเรียนนี้คุณได้สำรวจวิธีการต่าง ๆ ในการตรวจจับวัตถุ!

🚀 ความท้าทาย

อ่านบทความและโน้ตบุ๊กเกี่ยวกับ YOLO และลองใช้งานด้วยตัวคุณเอง

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

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

งาน: การตรวจจับวัตถุ


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