iIA Super Countering Kit
รูปที่ 1 ชิ้นงานที่ต้องการตรวจสอบ
ตัวอย่างศึกษาของชุดนี้คือถุงใส่ bolt ทั้ง 3 ชนิด ดังรูปที่ 1 โดยที่มีการกำหนดจำนวน bolt แต่ละชนิดใน 1 ถุงแตกต่างกันดังนี้
-
-
-
-
-
- Bolt ชนิด A จำนวน 2 ชิ้น/ถุง
- Bolt ชนิด B จำนวน 2 ชิ้น/ถุง
- Bolt ชนิด C จำนวน 1 ชิ้น/ถุง
-
-
-
-
1. หาสิ่งที่เราต้องการตรวจสอบ/ตรวจจับ
ผลลัพธ์: คุณลักษณะที่ต้องการตรวจจับ
รูปที่ 2
งานนี้มีแนวคิดเพิ่มเติมจากงานปกติคือ bolt แต่ละชนิดจะต้องอยู่ในถุงตามจำนวนที่กำหนด หรือง่าย ๆ เลยคือ ชิ้นงานของเราจะต้องอยู่ในพื้นที่ของถุง ดังนั้นเราจะหา Feature ของ boltโดยตรงเลยไม่ได้ ต้องหา Feature ของถุงให้เจอก่อนแล้วค่อยหา feature ของ bolt ต่อ โดยที่เราจะมี Ai ทั้งหมด 2 ชุด คือ ถุง และ bolt
-
-
-
-
-
- Ai ชุดที่ 1 มีชื่อคลาสดังนี้
- Bag
- Ai ชุดที่ 2 มีชื่อคลาสดังนี้
- A
- B
- C
- Ai ชุดที่ 1 มีชื่อคลาสดังนี้
-
-
-
-
เพราะฉะนั้นตั้งแต่ข้อที่ 2 ถึงข้อที่ 4 ต้องทำ 2 ครั้งสำหรับ Ai ชุดที่ 1 และ ชุดที่ 2
2. ทำ Dataset
ผลลัพธ์: ไฟล์ภาพ (Trainset และ Testset)
เมื่อเรากำหนดแล้วว่า Feature ของเราคืออะไรและมีคลาสชื่อว่าอะไรบ้าง ต่อไปเป็นการทำ Dataset เริ่มต้นจากการเก็บภาพเพื่อมาทำ Dataset
2.1 เปิด Project ที่ชื่อว่า Images_Capture และทำการกดฟันเฟืองที่กล่อง image capture และ browse เพื่อทำการเลือกโฟลเดอร์ที่ต้องการบันทึกรูปภาพ (โดยปกติจะสร้างโฟลเดอร์ใหม่ชื่อว่า images)
รูปที่ 3 โปรเจค Images_Capture
จากรูปที่ 4 กดปุ่ม Capture เพื่อทำการเก็บภาพที่ต้องการ ซึ่งงานนี้เรามีจำนวนสิ่งที่ต้องการตรวจจับ 6 คลาสแต่ variant น้อย เนื่องจากว่าภายในภาพนั้นสิ่งแวดล้อมไม่มีการเปลี่ยนแปลงเลย หากว่าเราสนใจแค่ในกรอบสีแดงในรูปที่ 5 และนอกกรอบสีแดงก็ยังคงเป็นแบบเดิมไม่มีการเปลี่ยนแปลง ดังนั้นจึงถือว่างานนี้มี variant น้อย จึงใช้ dataset ในการฝึกฝนจำนวน 200 ภาพและเฉลี่ยให้แต่ละคลาสเท่ากัน โดยแบ่งเป็นข้อมูลสำหรับการฝึกฝน(Trainset)จำนวน 160 ภาพและ ข้อมูลสำหรับการทดสอบ(Testset)จำนวน 40 ภาพ
รูปที่ 4 สิ่งที่สนใจในชิ้นงาน
3. ทำการให้ป้ายกำกับ (labelling)
ผลลัพธ์: Ground truth (.gt file)
นำเข้ารูปโดยคลิกที่ Load Images คลิกซ้ายและลากจะเกิดกรอบ ให้ลากกรอบนี้ครอบไปยังจุดที่ต้องการ เช่น RAM_NG ครอบไปยังจุดที่ขาล็อคของหน่วยความจำไม่สนิทดังรูปที่ 5 ทำเช่นนี้กับ คลาสอื่นๆ โดยที่สามารถเพิ่มชื่อคลาสได้ที่ว่างตามลูกศรในรูปที่ 6 ผู้ใช้งานต้องทำการ Label สิ่งที่ต้องการตรวจจับให้ครบถ้วนในทุกคลาสและทุกภาพ หากภาพใดไม่มีวัตถุที่ต้องการตรวจจับ ไม่จำเป็นต้องทำการ Label ใดๆ เมื่อให้ป้ายกำกับครบหมดแล้วให้ทำการกด Save GT เพื่อทำการบันทึกการให้ป้ายกำกับ (Labelling) หรือ Ground truth โดยที่ทำแบบนี้กับ trainset และ testset
รูปที่ 5 การให้ป้ายกำกับกับข้อมูล (labelling)
4. ทำการฝึกฝน (Training)
ผลลัพธ์: โมเดลที่ได้รับการฝึกฝน (Weight)
ทำการฝึกฝนด้วย google colab โดยเราจะอัพโหลดภาพปและ Ground truth ของเราขึ้นไปยัง google colab
รูปที่ 6
1. แท็บ DataGen
ส่วนนี้จะเหมือนกับแท็บ labelling ในกล่อง DeepTrain แต่จะไม่มีในส่วนของการทำ labeling จะมีเพียงแค่การโหลดภาพ .gt การตั้งค่า Augmentation และการสร้าง Project Directory เท่านั้นมี 3 ขั้นตอนดังนี้
รูปที่ 7 ขั้นตอนการตั้งค่าการฝึกฝน
- Image Folder: กด Select และ Select เพื่อทำการเลือก Folder ที่เก็บภาพ
- GT File: กด Select และเลือกไฟล์ .gt ที่เราต้องการและกด Select เพื่อทำการยืนยัน
- Generate: กด Generate เพื่อทำการสร้าง Project Directory
- Augmentation: ผู้ใช้งานสามารถตั้งค่าได้ตามสมควร
2. Train&Test
รูปที่ 8
เมื่อทำการ 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
ผลลัพธ์: แสดงผลลัพธ์ของการตรวจสอบได้
รูปที่ 9
สิ่งที่สนใจ
- หน่วยความจำ (RAM) จะแสดงผลที่ RAM Slot: แสดงผล 2 อย่างคือ NG, OK
- โมดูลไวไฟ (Wi-Fi module) จะแสดงผลที่ Wiring VCC: แสดงผล 2 อย่างคือ NG, OK และ Wiring GND: แสดงผล 2 อย่างคือ NG, OK
- เมื่อผลลัพธ์ทั้งหมดเป็น OK ไฟจะขึ้นสีเขียว แสดงผลลัพธ์ทั้งหมดว่าชิ้นงานนี้ผ่านการตรวจสอบ
5. Program scene
ผลลัพธ์: การตั้งค่า Flow program
รูปที่ 10 ตั้งค่า flow program
ทำการนำเข้าโมเดลที่ฝึกฝนแล้วจากข้อ 4 เข้ามาใน flow Program โดยผู้ใช้งานสามารถตั้งชื่อโมเดลได้ตามการใช้งานหรือตามความเข้าใจของผู้ใช้งานได้ และ ผู้ใช้งานสามารถเปลี่ยนจาก Images Slide เป็น กล่องอื่นๆได้ เช่น Web Cam หรือ Image Call