สวัสดีครับ ในช่วงนี้เป็นช่วงเวลาที่ผมกำลังทำงานในสายงานใหม่ นั่นคือ เกี่ยวกับงานทางด้าน AI ซึ่งผมได้ทำในส่วนที่เกี่ยวกับ image processing และ computer vision ซึ่งในส่วนการทำงานยังอยู่ระหว่างรอการติดตั้งกล้องบนไลน์การผลิต วันนี้ผมเลยจะมาแชร์โปรแกรมที่ใช้ในการ labeling ข้อมูลเพื่อใช้ในการ train ให้กับ yolov5 ครับ นั่นคือ โปรแกรม labelImg ครับ

ซึ่งการใช้งานก็ง่ายๆครับ รันเปิดโปรแกรมขึ้นมา ก็จะมีหน้า UI ให้เราใช้งานแบบใช้เมาส์คลิกเลือกได้เลยครับ โดยขั้นแรกเลือกโฟลเดอรูปภาพ จากนั้นเลือกรูปที่เราจะ label จากนั้นคลิก Create RectBox แล้วก็ลากกรอบ object ที่ต้องการและกด save จะมีหน้าต่างขึ้นมาให้ใส่ชื่อ class นั้น กด save อีกครั้ง เราก็จะได้ไฟล์ txt,xml หรืออื่นๆแล้วแต่เราเลือก format หรือจะกำหนดเองเลยก็ได้ครับ เมื่อคลิกเข้าไปจะเป็นข้อมูลระบุ class พร้อมกับตำแหน่ง object ในรูปภาพครับ โดยโปรแกรมนี้จะสามารถเลือก format ได้ 3 แบบ คือ yolo,createML,PascalVOC

Format Yolo

จากรูปด้านบน อันนี้ผมเลือกเป็น format แบบ yolo หลังจากเรากด save แล้ว เราจะได้ไฟล์ที่ชื่อเหมือนกับไฟล์รูปภาพ ซึ่งในที่นี้คือรูป img3.jpg แต่จะได้เป็นไฟล์นามสกุล img3.txt เพิ่มมาอีกไฟล์ เมื่อคลิกข้างในก็จะเป็นข้อความที่บอกตำแหน่งของ object ในรูปภาพนี้ โดย format ของ yolo คือ

<object-class> <x> <y> <width> <height>

Format createML

format ของ createML จะเป็นในรูปของ json ครับ ก็ตามในรูปภาพด้านบนเลยครับ

Format PascalVOC

จะเป็น format ในรูปแบบ xml ครับ ตามรูปด้านบน ยังไงก็เลือกใช้งานกันตามความต้องการนะครับ

Minimum Labeling

ในส่วนของการทำ label เพื่อมาใช้งานในการ train กับ yolov5 ส่วนที่ผมทำตอนนี้ คือ label ทั้งหมดประมาณ 80 ขึ้นไปครับ ถึงจะจับ object ได้ ก่อนหน้านี้ข้อมูลประมาณ 30 กว่าตรวจจับไม่เจอครับ ผมจึงสรุปให้ว่าขั้นต่ำควรจะ 100 ขึ้นไปล่ะกันครับ 🙂

ยังไงลองไปใช้งานกันดูนะครับ โปรแกรมจะเป็นแบบไฟล์ python ครับ ดูข้อมูลได้จาก github ครับ ผมให้วาปทิ้งไว้ที่ด้านล่างแล้วครับ จะ clone มาหรือ download มาก็ได้ครับ จากนั้นรันคำสั่ง


ดูข้อมูลได้จาก https://github.com/tzutalin/labelImg

2