ฝึกและประเมิน object detection

Object detection ต้องทำนายทั้งชนิดและตำแหน่งวัตถุ IoU คือพื้นที่กรอบที่ทับกันหารพื้นที่รวม ใช้ช่วยจับคู่คำทำนายกับคำตอบ ส่วน mAP ของระบบประเมินยังรวมการจัดอันดับและหลายเงื่อนไข ไม่เท่ากับ accuracy ระดับภาพ

A02 · บทฝึกและกรณีศึกษา

ผู้เรียนเขียนโปรแกรมและตรวจภาพจากกล้องข้างโดรนเพื่อการศึกษา
ภาพประกอบแนวคิดสร้างด้วย AI

Object detection ต้องทำนายทั้งชนิดและตำแหน่งวัตถุ IoU คือพื้นที่กรอบที่ทับกันหารพื้นที่รวม ใช้ช่วยจับคู่คำทำนายกับคำตอบ ส่วน mAP ของระบบประเมินยังรวมการจัดอันดับและหลายเงื่อนไข ไม่เท่ากับ accuracy ระดับภาพ

ตรวจขั้นตอน train/test/export ONNX และเทียบผล runtime ด้วยภาพสังเคราะห์บน Windows และ Ubuntu/WSL ผ่านแล้ว ยังไม่ทดสอบภาพโดรนจริงหรือมีโมเดลพร้อมภาคสนาม

ก่อนเริ่มเรียน

ใช้คอมพิวเตอร์ Windows หรือ Linux อ่าน CSV ด้วยโปรแกรมตารางหรือ text editor และบันทึกไฟล์งานของตนแยกจากต้นฉบับ ชุด Python พื้นฐานใช้ standard library; โปรแกรม AI และ simulator จริงมีขั้นตอนติดตั้งแยก

เมื่อจบบทนี้

  • ฝึก baseline และทดลองปรับโดยไม่ใช้ test เลือกค่า
  • ส่งออกโมเดลพร้อม preprocessing labels และรายงานความผิดพลาด
ลำดับการฝึก: baseline → validation → lock → test → export
เปิดแผนภาพขนาดเต็ม →

โจทย์และขั้นตอนลงมือทำ

เริ่มหนึ่งคลาส “parcel” ใช้ภาพที่ตรวจสิทธิ์และ split จาก A01 บันทึก baseline ก่อนเปลี่ยนค่าหนึ่งตัว ชุด practice.py มีเพียงกรอบสังเคราะห์ให้เข้าใจ IoU และไม่ได้ฝึกโมเดลแทนผู้เรียน

แตก ZIP แล้วเปิด A02-guide.md และ A02-worksheet.csv เก็บสมมติฐานกับผลที่ตรวจได้แยกกัน ช่องว่างในใบงานหมายถึงต้องเก็บข้อมูล ไม่ใช่ผ่านแล้ว

  1. รัน python practice.py boxes: เปรียบเทียบกรอบ [0,0,10,10] กับ [5,0,15,10] และกรอบตรงกัน
  2. สร้าง environment แยก ตรวจรุ่น Python/PyTorch/Ultralytics ที่เข้ากันและใบอนุญาต แล้วทำ data.yaml อ้าง train/val/test ของตนเอง
  3. ฝึก baseline ด้วย CPU จากคำสั่งตัวอย่างด้านล่าง เก็บ config และ seed; ใช้ validation ทบทวน false positive/false negative และเปลี่ยนเพียงหนึ่งปัจจัย
  4. ล็อกโมเดลและ threshold ก่อนประเมิน test เก็บกรอบผิดพลาดและขอบเขตข้อมูล แล้ว export ONNX พร้อม labels/preprocessing และเทียบ inference ตัวอย่าง

ตัวอย่างลำดับคำสั่งสำหรับ environment ที่เตรียมแล้ว

ดู AI-workflow.md ใน ZIP เพื่อสร้าง data.yaml และบันทึกรุ่น คำสั่งใช้ path ภายในเครื่องของผู้เรียน ต้องมีภาพ/labels ที่ตรวจสิทธิ์แล้ว เลือก environment ที่ framework รองรับก่อนติดตั้ง

yolo detect train model=yolo26n.pt data=data.yaml epochs=20 imgsz=640 device=cpu workers=0 seed=42 project=runs name=baseline
yolo detect val model=runs/baseline/weights/best.pt data=data.yaml split=val
# ล็อกการตัดสินใจทั้งหมดก่อนใช้ test
yolo detect val model=runs/baseline/weights/best.pt data=data.yaml split=test
yolo export model=runs/baseline/weights/best.pt format=onnx imgsz=640

20 epochs เป็นตัวอย่างเริ่มต้น ไม่ใช่เกณฑ์ว่าฝึกพอแล้ว คำสั่งแรกอาจดาวน์โหลด weights จากผู้ให้บริการ ตรวจใบอนุญาตและแหล่งที่มาก่อนรัน หากใช้โมเดลคนละรุ่นให้ปรับชื่อและตรวจเอกสารรุ่นนั้น

ทางเลือกเว็บฝึก AI และการเตรียมภาพ →

ชิ้นงานและเกณฑ์ตรวจ

ส่ง: model bundle และ evaluation report

เกณฑ์สำคัญ: ประเมิน test หลังล็อกค่าตัดสินใจ; เก็บ config/รุ่น/ผลผิดพลาด; รัน inference จาก bundle ได้

แนบไฟล์ที่เปิดตรวจได้ วันที่ รุ่นข้อมูล และเหตุผลเมื่อยังสรุปไม่ได้ การทำใบงานสำเร็จไม่แทนผลทดลองกับโมเดล อุปกรณ์ หรือการประเมินทักษะจริง

เปิดแนวคำตอบหลังทำใบงาน

กรอบเหลื่อมมี intersection 50 และ union 150 จึง IoU=1/3; กรอบตรงกัน IoU=1 คะแนนกรอบสมมติไม่ใช่คุณภาพโมเดลจริง หาก test มีข้อมูลรั่วต้องหยุดรายงานคะแนนเป็นผลอิสระ

ทดลองเส้นทางโปรแกรมที่ตรวจแล้ว

ใน ZIP มี framework-README.md และ framework-smoke.py สร้างภาพสี่เหลี่ยม 16 ภาพ ฝึก 1 epoch ส่งออก ONNX และเทียบ raw output กับ PyTorch ตรวจผ่านบน Windows 11/Python 3.14.3 และ Ubuntu/WSL/Python 3.12.3 ด้วย CPU แล้ว

ใช้ Ultralytics 8.4.144, PyTorch 2.14.0+cpu และ ONNX Runtime 1.29.0 ดูรายงานและรุ่น dependencies ในชุดดาวน์โหลด ผลนี้ยืนยันขั้นตอนโปรแกรมเท่านั้น โมเดลหลัง 1 epoch ยังตรวจจับไม่ได้ดี และไม่ใช่การประเมินกับภาพโดรนจริง

python framework-smoke.py --output my-smoke-run

ต้องเตรียม environment ตาม README ก่อนรัน การจับเวลาในรายงานวัดเฉพาะ ONNX บนภาพ 64×64 ที่เตรียมในหน่วยความจำ ไม่รวมกล้องหรือการสื่อสาร

แผนกิจกรรมสำหรับผู้สอน

ให้ผู้เรียนส่ง model bundle และสาธิต inference บนเครื่องอีกเครื่องโดยอ้าง environment ที่ใช้จริง ผู้สอนตรวจว่าทดสอบหลัง lock และไม่ใช้ภาพ test ปรับค่า

คำถามชวนทบทวน: คะแนนดีขึ้นเพราะโมเดลดีขึ้นหรือข้อมูลทดสอบรั่ว?

กรอบเวลาออกแบบ ต้องปรับจากผลทดลองเรียนจริง
ชุดการเรียนอธิบายฝึกประเมินรวมสถานีอุปกรณ์
AI และโดรน: จากภาพถึงการทดลองโมเดล225 นาที495 นาที180 นาที0 นาที

เวลาสถานีอุปกรณ์เป็นส่วนหนึ่งของเวลารวมในแผน ไม่บวกซ้ำ ผู้สอนแยกผล PC กับ observed task และให้ผู้เรียนอธิบายงานรายคนก่อนเปิดแนวคำตอบ

ดูการจัดกิจกรรมครบสายและส่วนขยายพื้นฐาน →

บรรณานุกรมและขอบเขตการอ้างอิง

ตรวจแหล่งเพิ่มเติม 9 กันยายน 2569 กรณีสมมติ ตัวเลข ใบงาน และเกณฑ์กิจกรรมเรียบเรียงใหม่โดย PK-Research

  • Ultralytics — Model Training

    คำสั่งฝึกและพารามิเตอร์ CPU; ต้องเลือกชุดข้อมูลและสิทธิ์ให้เหมาะกับโครงการ

  • Ultralytics — Model Validation

    การประเมิน object detection; IoU แบบฝึกไม่ได้แทน mAP ของ framework

  • Ultralytics — Model Export

    การส่งออก ONNX; compatibility ขึ้นกับรุ่น โมเดล และ runtime

  • Ultralytics — Licensing

    ตรวจ AGPL-3.0 หรือ Enterprise ให้ตรงการนำไปใช้; ไม่รวม weights หรือซอฟต์แวร์นี้ใน ZIP ของเรา

อ่านความรู้ประกอบเรื่องนี้ →

ใช้ในรายวิชา

วิธีอ้างอิงหน้านี้

สถาบันโดรน มหาวิทยาลัยรังสิต. (2569). ฝึกและประเมิน object detection. ใน คลังความรู้หลักสูตร ทล.บ. เทคโนโลยีระบบอากาศยานไร้คนขับ. https://rsu-drt.pk-research.work/th/kb/courses/lessons/detector-training/

ต้นฉบับจากคลังความรู้โดรน: https://drone.pk-research.work/courses/lessons/detector-training/ · © PK-Research