Training and evaluating object detection
Object detection ต้องทำนายทั้งชนิดและตำแหน่งวัตถุ IoU คือพื้นที่กรอบที่ทับกันหารพื้นที่รวม ใช้ช่วยจับคู่คำทำนายกับคำตอบ ส่วน mAP ของระบบประเมินยังรวมการจัดอันดับและหลายเงื่อนไข ไม่เท่ากับ accuracy ระดับภาพ
A02 · บทฝึกและกรณีศึกษา
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 และรายงานความผิดพลาด
โจทย์และขั้นตอนลงมือทำ
เริ่มหนึ่งคลาส “parcel” ใช้ภาพที่ตรวจสิทธิ์และ split จาก A01 บันทึก baseline ก่อนเปลี่ยนค่าหนึ่งตัว ชุด practice.py มีเพียงกรอบสังเคราะห์ให้เข้าใจ IoU และไม่ได้ฝึกโมเดลแทนผู้เรียน
แตก ZIP แล้วเปิด A02-guide.md และ A02-worksheet.csv เก็บสมมติฐานกับผลที่ตรวจได้แยกกัน ช่องว่างในใบงานหมายถึงต้องเก็บข้อมูล ไม่ใช่ผ่านแล้ว
- รัน python practice.py boxes: เปรียบเทียบกรอบ [0,0,10,10] กับ [5,0,15,10] และกรอบตรงกัน
- สร้าง environment แยก ตรวจรุ่น Python/PyTorch/Ultralytics ที่เข้ากันและใบอนุญาต แล้วทำ data.yaml อ้าง train/val/test ของตนเอง
- ฝึก baseline ด้วย CPU จากคำสั่งตัวอย่างด้านล่าง เก็บ config และ seed; ใช้ validation ทบทวน false positive/false negative และเปลี่ยนเพียงหนึ่งปัจจัย
- ล็อกโมเดลและ 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=64020 epochs เป็นตัวอย่างเริ่มต้น ไม่ใช่เกณฑ์ว่าฝึกพอแล้ว คำสั่งแรกอาจดาวน์โหลด weights จากผู้ให้บริการ ตรวจใบอนุญาตและแหล่งที่มาก่อนรัน หากใช้โมเดลคนละรุ่นให้ปรับชื่อและตรวจเอกสารรุ่นนั้น
ชิ้นงานและเกณฑ์ตรวจ
ส่ง: 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 ของเรา