iIA Smart Countering Kit
รูปที่ 1 ชิ้นงานที่ต้องการตรวจสอบ ชนิด A B และ C ตามลำดับ
ตัวอย่างศึกษาของชุดนี้คือ bolt 3 แบบ มีเงื่อนไขว่าจะต้องมี bolt ทั้งหมด 5 ชิ้น และครบทั้ง 3 ชนิด โดยสิ่งที่เราต้องตรวจับมีเพียงแค่ bolt ทั้ง 3 ชนิดเท่านั้น
ส่งที่สนใจ
-
-
-
-
-
- Bolt ชนิด A
- Bolt ชนิด B
- Bolt ชนิด C
-
-
-
-
1. หาสิ่งที่เราต้องการตรวจสอบ/ตรวจจับ
ผลลัพธ์: คุณลักษณะที่ต้องการตรวจจับ
รูปที่ 2
เริ่มต้นจากการหา Feature ที่เราต้องการตรวจจับ จากรูปที่ 2 จะเห็นว่า bolt แต่ละชนิดมีลักษณะเฉพาะตัวอยู่แล้วเราจึงสามารถใช้ bolt ทั้งหมดเป็น Feature ในการตรวจจับได้เลย
รูปที่ 3
แนวคิดคือ ให้ป้ายกำกับกับ bolt ทั้ง 3 ชนิดด้วยชื่อดังนี้ a b และ c โดยที่กรอบสีแดงคือชนิด A กรอบสีน้ำเงินคือชนิด B และ กรอบสีแดงคือชนิด C
ดังนั้นจะกำหนดชื่อคลาสทั้ง 6 คลาสดังนี้
-
-
-
-
-
- A
- B
- C
-
-
-
-
เงื่อนไขที่ชิ้นงานจะผ่านการตรวจสอบคือ ชนิด A = 2 ชิ้น ชนิด B = 2 ชิ้น และ ชนิด C = 1 ชิ้น รวมทั้งหมดต้องได้ 5 ชิ้นถึงจะผ่านเงื่อนไขเป็น OK และถ้าแตกต่างไปจากเงื่อนไขตรงนี้คือ NG
2. ทำ Dataset
ผลลัพธ์: ไฟล์ภาพ (Trainset และ Testset)
เมื่อเรากำหนดแล้วว่า Feature ของเราคืออะไรและมีคลาสชื่อว่าอะไรบ้าง ต่อไปเป็นการทำ Dataset เริ่มต้นจากการเก็บภาพเพื่อมาทำ Dataset
2.1 เปิด Project ที่ชื่อว่า Images_Capture และทำการกดฟันเฟืองที่กล่อง image capture และ browse เพื่อทำการเลือกโฟลเดอร์ที่ต้องการบันทึกรูปภาพ (โดยปกติจะสร้างโฟลเดอร์ใหม่ชื่อว่า images)
รูปที่ 4 โปรเจค Images_Capture
จากรูปที่ 4 กดปุ่ม Capture เพื่อทำการเก็บภาพที่ต้องการ ซึ่งงานนี้เรามีจำนวนสิ่งที่ต้องการตรวจจับ 6 คลาสแต่ variant น้อย เนื่องจากว่าภายในภาพนั้นสิ่งแวดล้อมไม่มีการเปลี่ยนแปลงเลย หากว่าเราสนใจแค่ในกรอบสีแดงในรูปที่ 5 และนอกกรอบสีแดงก็ยังคงเป็นแบบเดิมไม่มีการเปลี่ยนแปลง ดังนั้นจึงถือว่างานนี้มี variant น้อย จึงใช้ dataset ในการฝึกฝนจำนวน 200 ภาพและเฉลี่ยให้แต่ละคลาสเท่ากัน โดยแบ่งเป็นข้อมูลสำหรับการฝึกฝน(Trainset)จำนวน 160 ภาพและ ข้อมูลสำหรับการทดสอบ(Testset)จำนวน 40 ภาพ
รูปที่ 5 สิ่งที่สนใจในชิ้นงาน
3. ทำการให้ป้ายกำกับ (labelling)
ผลลัพธ์: Ground truth (.gt file)
นำเข้ารูปโดยคลิกที่ Load Images คลิกซ้ายและลากจะเกิดกรอบ ให้ลากกรอบนี้ครอบไปยังจุดที่ต้องการ เช่น RAM_NG ครอบไปยังจุดที่ขาล็อคของหน่วยความจำไม่สนิทดังรูปที่ 5 ทำเช่นนี้กับ คลาสอื่นๆ โดยที่สามารถเพิ่มชื่อคลาสได้ที่ว่างตามลูกศรในรูปที่ 6 ผู้ใช้งานต้องทำการ Label สิ่งที่ต้องการตรวจจับให้ครบถ้วนในทุกคลาสและทุกภาพ หากภาพใดไม่มีวัตถุที่ต้องการตรวจจับ ไม่จำเป็นต้องทำการ Label ใดๆ เมื่อให้ป้ายกำกับครบหมดแล้วให้ทำการกด Save GT เพื่อทำการบันทึกการให้ป้ายกำกับ (Labelling) หรือ Ground truth โดยที่ทำแบบนี้กับ trainset และ testset
รูปที่ 6 การให้ป้ายกำกับกับข้อมูล (labelling)
4. ทำการฝึกฝน (Training)
ผลลัพธ์: โมเดลที่ได้รับการฝึกฝน (Weight)
ทำการฝึกฝนด้วย google colab โดยเราจะอัพโหลดภาพปและ Ground truth ของเราขึ้นไปยัง google colab
รูปที่ 7
1. แท็บ DataGen
ส่วนนี้จะเหมือนกับแท็บ labelling ในกล่อง DeepTrain แต่จะไม่มีในส่วนของการทำ labeling จะมีเพียงแค่การโหลดภาพ .gt การตั้งค่า Augmentation และการสร้าง Project Directory เท่านั้นมี 3 ขั้นตอนดังนี้
รูปที่ 8 ขั้นตอนการตั้งค่าการฝึกฝน
-
-
-
-
-
- Image Folder: กด Select และ Select เพื่อทำการเลือก Folder ที่เก็บภาพ
- GT File: กด Select และเลือกไฟล์ .gt ที่เราต้องการและกด Select เพื่อทำการยืนยัน
- Generate: กด Generate เพื่อทำการสร้าง Project Directory
-
-
-
-
Augmentation: ผู้ใช้งานสามารถตั้งค่าได้ตามสมควร
2. Train&Test
รูปที่ 9
เมื่อทำการ generate เสร็จเรียบร้อยกดปุ่ม Train (ปุ่มสีเขียว) เพื่อทำการฝึกนฝนโมเดล ใหสังเกตุที่ค่า Avg loss เมื่อค่านี้ต่ำกว่า 0.1 ให้ทดสอบโมเดลโดยการนำเข้าภาพทดสอบ (ในที่นี้เราจะใช้ภาพทดสอบเป็นภาพชุดเดียวกับที่ใช้ในการฝึกฝน) ทำการกด Select และ Select ที่ Data test หลังจากนั้นให้ทำการ กด Update model และลองกด Next/Prev เพื่อทำการเลื่อนรูปภาพและประเมินว่าโมเดลสามารถตรวจจับข้อมูลที่ต้องการได้หรือไม่ หากโมเดลสามารถตรวจจับข้อมูลได้แล้วให้ทำการ Export โมเดลออกมาที่เครื่อง โดยไฟล์ที่ได้จะเป็น .zip ประกอบไปด้วย 3 ไฟล์ คือ weight name และ cfg
3. iIA Smart Inspection Kit
ผลลัพธ์: ผู้ใช้งานสามารถใช้งาน iIA Smart Inspection Kit อย่างมีประสิทธิภาพ
ทำการเปิดโปรเจค iIA_Smart_Inspection_Kit.npj โดยตัวโปรเจคนี้จะมี 2 scene คือ main และ Program โดยที่หน้า main คือหน้าของ UI ที่จะทำการแสดงผล ส่วน program จะเก็บ flow ทั้งหมดของงานนี้เอาไว้
4. main scene
ผลลัพธ์: แสดงผลลัพธ์ของการตรวจสอบได้
รูปที่ 10
สิ่งที่สนใจ
- หน่วยความจำ (RAM) จะแสดงผลที่ RAM Slot: แสดงผล 2 อย่างคือ NG, OK
- โมดูลไวไฟ (Wi-Fi module) จะแสดงผลที่ Wiring VCC: แสดงผล 2 อย่างคือ NG, OK และ Wiring GND: แสดงผล 2 อย่างคือ NG, OK
- เมื่อผลลัพธ์ทั้งหมดเป็น OK ไฟจะขึ้นสีเขีย; แสดงผลลัพธ์ทั้งหมดว่าชิ้นงานนี้ผ่านการตรวจสอบ
1. Program scene
ผลลัพธ์: การตั้งค่า Flow program
รูปที่ 11 ตั้งค่า flow program
ทำการนำเข้าโมเดลที่ฝึกฝนแล้วจากข้อ 4 เข้ามาใน flow Program โดยผู้ใช้งานสามารถตั้งชื่อโมเดลได้ตามการใช้งานหรือตามความเข้าใจของผู้ใช้งานได้ และ ผู้ใช้งานสามารถเปลี่ยนจาก Images Slide เป็น กล่องอื่นๆได้ เช่น Web Cam หรือ Image Call