วิธีฝึก YOLO ด้วยชุดข้อมูลที่กำหนดเอง: คำแนะนำทีละขั้นตอน
การตรวจจับวัตถุเป็นเทคโนโลยีที่สำคัญในอุตสาหกรรมต่างๆ เช่น ความปลอดภัย ระบบอัตโนมัติ และหุ่นยนต์ YOLO (You Only Look Once) เป็นหนึ่งในโมเดลตรวจจับวัตถุแบบเรียลไทม์ที่ได้รับความนิยมมากที่สุด เนื่องจากมีความเร็วและความแม่นยำสูง บทความนี้จะอธิบายวิธีฝึก YOLO โดยใช้ชุดข้อมูลที่กำหนดเอง เพื่อให้สามารถใช้งานจริงได้
ขั้นตอนที่ 1: ติดตั้งไลบรารีที่จำเป็น
ก่อนอื่นต้องติดตั้งไลบรารีที่จำเป็น การใช้ YOLOv5 หรือ YOLOv8 เวอร์ชันล่าสุดจะช่วยให้การฝึกง่ายขึ้น
# โคลนที่เก็บข้อมูล YOLOv5
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
# ติดตั้งแพ็คเกจที่จำเป็น
pip install -r requirements.txt
หากใช้ YOLOv8 สามารถติดตั้งแพ็คเกจ Ultralytics ได้โดยตรง:
pip install ultralytics
ขั้นตอนที่ 2: เตรียมชุดข้อมูล
YOLO ต้องการข้อมูลในรูปแบบเฉพาะ โดยแต่ละภาพจะต้องมีไฟล์กำกับฉลากในรูปแบบ YOLO:
<class_id> <x_center> <y_center> <width> <height>
ค่าทั้งหมดต้องถูกทำให้เป็นอัตราส่วนระหว่าง 0 ถึง 1 โครงสร้างโฟลเดอร์ของชุดข้อมูลควรเป็นดังนี้:
/dataset
├── images
│ ├── train
│ │ ├── img1.jpg
│ │ ├── img2.jpg
│ ├── val
│ ├── img3.jpg
│ ├── img4.jpg
├── labels
│ ├── train
│ │ ├── img1.txt
│ │ ├── img2.txt
│ ├── val
│ ├── img3.txt
│ ├── img4.txt
├── data.yaml
สร้างไฟล์ data.yaml
ไฟล์นี้ใช้กำหนดโครงสร้างชุดข้อมูลและชื่อคลาส:
train: /path/to/dataset/images/train
val: /path/to/dataset/images/val
nc: 2 # จำนวนคลาส
names: ['person', 'car'] # ชื่อคลาส
ขั้นตอนที่ 3: ฝึกโมเดล
ใช้คำสั่งต่อไปนี้เพื่อฝึก YOLOv5:
python train.py --img 640 --batch 16 --epochs 50 --data dataset/data.yaml --weights yolov5s.pt --cache
สำหรับ YOLOv8:
yolo train model=yolov8n.pt data=dataset/data.yaml epochs=50 imgsz=640
ขั้นตอนที่ 4: ตรวจสอบความคืบหน้าของการฝึก
YOLO จะบันทึกตัวชี้วัดประสิทธิภาพต่างๆ ระหว่างการฝึก หากใช้ YOLOv5 ผลลัพธ์จะถูกบันทึกใน runs/train/exp/
สามารถใช้ TensorBoard เพื่อตรวจสอบประสิทธิภาพของการฝึกได้:
tensorboard --logdir=runs/train
ขั้นตอนที่ 5: ประเมินและทดสอบโมเดล
หลังจากฝึกเสร็จแล้ว สามารถทดสอบโมเดลกับภาพใหม่ได้:
python detect.py --weights runs/train/exp/weights/best.pt --img 640 --source test_images/
สำหรับ YOLOv8:
yolo detect model=runs/train/exp/weights/best.pt source=test_images/
ขั้นตอนที่ 6: ส่งออกโมเดลสำหรับใช้งาน
สามารถส่งออกโมเดล YOLO เป็นหลายรูปแบบได้:
python export.py --weights runs/train/exp/weights/best.pt --include onnx torchscript
สำหรับ YOLOv8:
yolo export model=runs/train/exp/weights/best.pt format=onnx
สรุป
การฝึก YOLO ด้วยชุดข้อมูลที่กำหนดเองช่วยให้สามารถตรวจจับวัตถุได้ในแอปพลิเคชันจริง เช่น ความปลอดภัย การตรวจสอบการจราจร และระบบอัตโนมัติ คู่มือฉบับนี้จะช่วยให้คุณเตรียมข้อมูล ฝึกโมเดล และนำไปใช้งานได้อย่างมีประสิทธิภาพ
หากต้องการความช่วยเหลือในการเตรียมชุดข้อมูลหรือปรับแต่งการฝึก แจ้งให้เราทราบในความคิดเห็น!
Get in Touch with us
Related Posts
- คิดให้ดีกว่าไปกับโค้ด: ใช้คณิตศาสตร์ทางลัดเพื่อเข้าใจระบบซอฟต์แวร์ขนาดใหญ่
- สร้าง Macrohard แห่งวันนี้: แพลตฟอร์ม AI Agents สำหรับองค์กร
- พัฒนา Vue.js อย่างชาญฉลาดด้วย Aider + การเชื่อมต่อกับ IDE
- เฮ้! มาใช้ AI ผู้ช่วยโค้ดอย่าง Codex CLI กับ Aider กันเถอะ
- การทำงานร่วมกับ AI ในการเขียนโค้ดอย่างถูกวิธี
- วิธีเลือกโมเดล LLM ที่เหมาะสม: Instruct, MLX, 8-bit และ Embedding
- วิธีใช้โมเดล LLM แบบรันในเครื่อง (Local LLM) ในการทำงานประจำวัน
- วิธีใช้โมเดล Embedding ร่วมกับ LLM เพื่อสร้างแอป AI ที่ชาญฉลาดยิ่งขึ้น
- ระบบกล้องอัจฉริยะสำหรับตรวจหาข้อบกพร่องของวัสดุต่อเนื่อง
- สร้างระบบตรวจจับความเสียหายแบบเรียลไทม์ด้วยกล้อง Line-Scan + AI (แนวทางนำไปใช้ได้หลายอุตสาหกรรม)
- วิธีอ่านซอร์สโค้ด: ตัวอย่างจาก Frappe Framework
- Interface-Oriented Design: รากฐานของ Clean Architecture
- เข้าใจระบบต่อต้านโดรน (Anti-Drone System) – สถาปัตยกรรม ฮาร์ดแวร์ และซอฟต์แวร์
- RTOS vs Linux ในระบบโดรน: ออกแบบอย่างไรให้ทันสมัย ปลอดภัย และเขียนด้วย Rust ได้หรือไม่?
- ทำไม Spring ต้องใช้ Annotation เยอะ? เจาะลึกโลก Java และ Python สำหรับนักพัฒนาเว็บ
- จาก Django สู่ Spring Boot: คู่มือเปรียบเทียบฉบับเข้าใจง่ายสำหรับนักพัฒนาเว็บ
- สร้างระบบ Python ขนาดใหญ่แบบยั่งยืนด้วย Clean Architecture (พร้อมตัวอย่างและแผนภาพ)
- ทำไม Test-Driven Development (TDD) ถึงตอบโจทย์ธุรกิจยุคใหม่
- สร้างระบบ Continuous Delivery ให้ Django บน DigitalOcean ด้วย GitHub Actions และ Docker
- สร้างระบบแนะนำสินค้าในอีคอมเมิร์ซด้วย LangChain, Ollama และ Open-source Embedding แบบ Local