มหากาพย์ YOLO object detection ตอนที่ 1 เตรียมข้อมูลดีมีชัยไปกว่าครึ่ง
--
ห่างหายกันไปนานเลยนะครับ วันนี้ผมมาพร้อมกับ tool ชื่อดังที่หลายท่านอาจจะเคยได้ยินหรือผ่านตามาบ้างแล้วกับเจ้า yolo object detection
YOLO คืออะไร??
‘‘ You only look once (YOLO) is a state-of-the-art, real-time object detection system. ’’ from yolo official website.
หรือง่าย ๆ ก็คือ YOLO เป็นวิธีการที่ใช้จัดการเกี่ยวกับ object detection นั่นเอง
เนื้อหาในบทความนี้ผมจะอ้างอิงจากคุณ Mihir Rajput และคุณ ENEmy ที่เผยแพร่เมื่อเดือนมิถุนายน 2020 ที่ผ่านมาครับ
YOLOv5
YOLO ที่ผมใช้จะเป็น YOLO เวอร์ชัน 5 ซึ่งถูกพัฒนาโดยคุณ Glenn Jocher ครับ
Operating system
OS ที่ผมใช้คือ windows 10 นะครับ ถ้าใครใช้ตระกูล linux ให้ตามลิงก์นี้ไปครับ
Goals
เป้าหมายหลักของผมในโปรเจคนี้คือช่วยนำพาทุกท่านให้สามารถใช้งาน YOLOv5 ในการทำ object detection เบื้องต้นให้ได้ครับ โดยขั้นตอนหลักของเราจะมีดังนี้
- เตรียมข้อมูล
- ติดตั้งเครื่องมือที่เกี่ยวข้อง
- ปรับแต่งไฟล์ให้เข้ากับโปรเจคของเรา
- เทรนโมเดล
- ทดสอบโมเดล
- ผลลัพธ์จากการเทรน
Before we start
แต่เดี๋ยวก่อนครับทุกคน สิ่งที่ผมจะทำต่อไปนี้คือนำ YOLOv5 มาใช้กับ dataset ที่มีคนทำ labelling ไว้ให้แล้วนะครับ
สิ่งที่ผมจะทำในวันนี้คือใช้ YOLOv5 ในการ detect “วัชพืช” และ “พืช” ในภาพ หมายความว่าเราจะมีจำนวนคลาสเท่ากับ 2 คลาสนั่นเองครับ โดยสามารถโหลดได้จากลิงก์นี้เลย -> download
เตรียมข้อมูล
เมื่อทุกท่านได้ข้อมูลมาแล้วเข้าไปดูจะเห็นว่ามีไฟล์ที่เป็นรูปภาพ และจะเห็นไฟล์สกุล .txt ที่มีชื่อเดียวกับรูปภาพอยู่ด้วย ซึ่งมันคือไฟล์ที่อยู่ในรูปแบบ YOLO format โดยถ้าเราเปิดขึ้นมาจะเห็นว่ามีหน้าตาแบบนี้
1 0.496094 0.384766 0.960938 0.753906
แล้วตัวเลขพวกนี้มันคืออะไรและนี่ก็คือที่มาครับ
ซึ่งเป็นชุดตัวเลขที่บอกข้อมูลของภาพเพื่อใช้ในการเทรนโมเดลนั่นเอง
ต่อไปเราจะทำการแบ่งข้อมูลออกเป็น 3 ส่วน ดังนี้
Training 70%
Validation 20%
Testing 10%
ก่อนอื่นผมจะทำการสร้างโฟลเดอร์ data ขึ้นมาและแบ่งข้อมูลตามนี้ครับ
ส่วนโฟลเดอร์ data ผมได้ทำการอัพโหลดไว้แล้วสามารถกด ลิงก์ นี้เพื่อดาวน์โหลดได้เลยครับ
โฟลเดอร์ data จะถูกใช้ในตอนต่อไป ดังนั้นให้ทุกคนเก็บไว้ก่อนนะครับ
วันนี้ผมก็ขอพักไว้เท่านี้ก่อนนะครับกลัวว่ามันจะยาวเกินไป แล้วมาเจอกันตอนต่อไปนะครับ
ถ้าใครติดปัญหาหรือว่าสงสัยตรงส่วนไหนก็หลังไมค์มาได้นะครับ contact ผมอยู่ใน Bio ครับ
ตอนที่ 1 : เตรียมข้อมูลดีมีชัยไปกว่าครึ่ง
ตอนที่ 2 : เตรียม environment เพื่อเทรนโมเดล