มหากาพย์ YOLO object detection ตอนที่ 3 มาเทรนโมเดลกัน

Kittisak Phormraksa
2 min readDec 20, 2020

--

ถ้าทุกคนทำตามทุกขั้นตอนในบทความที่แล้วแบบไม่มีผิดพลาด ตอนนี้เราก็พร้อมจะเทรนโมเดลแล้ว เตรียมคอมพิวเตอร์ของท่านให้พร้อม แล้วไปกันได้เลยครับ

Training

เปิด terminal ในโปรเจคเราขึ้นมา และทำการ active environment

จากนั้นให้ใช้สคริปต์นี้ เพื่อนเทรนโมเดลครับ

  • — img: ขนาดของภาพที่จะถูกนำเข้าไปเทรน
  • — batch: จำนวนภาพที่จะถูกนำเข้าไปเทรนต่อหนึ่งรอบ
  • — ephochs: จำนวน epochs (ยิ่งจำนวน epochs เยอะ ความแม่นยำจะสูงขึ้นทำให้เวลาในการเทรนจะมากขึ้นตาม)
  • — data: path สำหรับไฟล์สกุล .yaml ที่เราสร้างในตอนที่2
  • — cfg: path สำหรับไฟล์โมเดล
  • — weights: path สำหรับไฟล์ weights

เมื่อเรารันสคริปต์เทรนแล้วก็รอมันประมวลผล (ผมรันทั้งหมด 80 epochs ใช้เวลาประมาณหนึ่งชั่วโมง)

(optional) ระหว่างที่โปรแกรมกำลังรันอยู่เราสามารถ monitor ค่าต่าง ๆ ได้โดยให้เปิด terminal ใหม่ขึ้นมาจากนั้นให้รันสคริปต์นี้ครับ

จะมี URL ขึ้นมาให้เรานำไปเปิดใน browser ได้เลย

ถ้าใน terminal แสดงผลแบบนี้แสดงว่าเราเทรนโมเดลเสร็จแล้วครับ

Let’s try

เมื่อเราเทรนโมเดลเสร็จแล้วจะมีโฟลเดอร์ run ขึ้นมาใน project ของเรา

weights จากการเทรนจะถูกเก็บไว้ใน ./run/exp0 (เทรนครั้งแรกจะเป็น exp0 ถ้าเทรนครั้งต่อไปจะเป็น exp1, exp2, …, expN)

โดยเราจำนำไฟล์ best.pt ไปใช้ detect ภาพ

ผมได้สร้างโฟลเดอร์ชื่อ sample_img ไว้ที่ project และนำภาพที่จะใช้ detect มาวางไว้ในโฟลเดอร์นี้ (สามารถมีได้หลายภาพ)

สคริปต์ที่ใช้ detect

  • — source: path ที่เก็บภาพสำหรับใช้ detect
  • — weights: path สำหรับ weights ที่ถูกเทรน
  • — conf: ค่า confident treshold (0.0–1.0)

Results

เมื่อรันเสร็จผลลัพธ์จะถูกเก็บไว้ในโฟลเดอร์ชื่อ inference

--

--

Kittisak Phormraksa
Kittisak Phormraksa

Written by Kittisak Phormraksa

นักศึกษาที่มหาวิทยาลัยแห่งหนึ่งที่มีรถไฟตัดผ่านตรงกลาง Email: dnjooiopa@gmail.com

No responses yet