iIA Smart Inspection Kit

รูปที่ 1 ชิ้นงานที่ต้องการตรวจสอบ

ตัวอย่างศึกษาของชุดนี้คือการประกอบหน่วยความจำและโมดูลไวไฟว่ามีการประกอบที่สมบูรณ์หรือไม่ โดยที่ขาล็อคของหน่วยความจำจะต้องล็อคหน่วยความจำไว้และโมดูลไวไฟจะต้องมีสาย Vcc(สายสีขาว) และ Gnd(สายสีดำ) ต่อเข้ากับโมโลครบทั้งสองสาย โดยที่รายละเอียดของขั้นตอนสามารถอ่านเพิ่มเติมได้ที่ CiRA CORE Manual

สิ่งที่สนใจ 

            • หน่วยความจำ (RAM)
            • โมดูลไวไฟ (Wi-Fi module)

 

1. หาสิ่งที่เราต้องการตรวจสอบ/ตรวจจับ

ผลลัพธ์: คุณลักษณะที่ต้องการตรวจจับ

รูปที่ 2 

เริ่มต้นจากการหา Feature ที่เราต้องการตรวจจับ จากรูปที่ 2 จะเห็นว่าโอกาสที่ปลายของสายสีขาวและสายสีดำนั้นจะไปยังตำแหน่งอื่นๆนั้นมีโอกาสเกิดได้เยอะมาก จึงไม่เลือกปลายสายเป็น feature แต่จะเลือกเป็นจุดเชื่อมต่อที่โมดูลแทน ดังนั้นในชุดนี้เราจะใช้ส่วนของขาล็อคที่ล็อคหน่วยความจำเอาไว้และจุดเชื่อมต่อสายของโมดูลไวไฟ

รูปที่ 3

แนวคิดคือ ถ้าระยะห่างของขาล็อคกับหน่วยความจำมีมากแสดงว่างานไม่ดีกำหนดให้เป็นงาน NG หากระยะห่างน้อยแสดงว่าเป็นงาน OK และในส่วนของโมดูลไวไฟนั้นหากขา Vcc มีสาย Vcc เชื่อมต่ออยู่แสดงว่างานนี้เป็นงาน OK ทำนองเดียวกัน หากขา Gnd มีสาย Gnd เชื่อมต่ออยู่แสดงว่างานนี้เป็นงาน OK ในทางตรงกันข้ามหากไม่มีการเชื่อมต่อแสดงว่าเป็นงาน NG และ ทั้งสองงานจะต้องเป็นงาน OK ทั้งหมดการตรวจจับถึงจะผ่านการตรวจสอบ หากมี NG แค่อันเดียวถือว่าชิ้นงานนี้ไม่ผ่าน

ดังนั้นจะกำหนดชื่อคลาสทั้ง 6 คลาสดังนี้

            • W_OK
            • W_NG
            • B_OK
            • B_NG
            • RAM_OK
            • RAM_NG

เงื่อนไขที่ชิ้นงานจะผ่านการตรวจสอบคือ W_OK, B_OK, RAM_OK และ RAM_OK หากมีคลาสที่เป็น NG แค่ 1 คลาสแสดงว่าชิ้นงานนี้ไม่ผ่านการตรวจสอบ

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

แท็บ 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

5. iIA Smart Inspection Kit

ผลลัพธ์: ผู้ใช้งานสามารถใช้งาน iIA Smart Inspection Kit อย่างมีประวิทธิภาพ

ทำการเปิดโปรเจค iIA_Smart_Inspection_Kit.npj โดยตัวโปรเจคนี้จะมี 2 scene คือ main และ Program โดยที่หน้า main คือหน้าของ UI ที่จะทำการแสดงผล ส่วน program จะเก็บ flow ทั้งหมดของงานนี้เอาไว้

1. main scene

ผลลัพธ์: แสดงผลลัพธ์ของการตรวจสอบได้

รูปที่ 10

สิ่งที่สนใจ 

            • หน่วยความจำ (RAM) จะแสดงผลที่ RAM Slot: แสดงผล 2 อย่างคือ NG, OK
            • โมดูลไวไฟ (Wi-Fi module) จะแสดงผลที่ Wiring VCC: แสดงผล 2 อย่างคือ  NG, OK และ Wiring  GND: แสดงผล 2 อย่างคือ NG, OK
            • เมื่อผลลัพธ์ทั้งหมดเป็น OK ไฟจะขึ้นสีเขียน แสดงผลลัพธ์ทั้งหมดว่าชิ้นงานนี้ผ่านการตรวจสอบ

2. Program scene

ผลลัพธ์: การตั้งค่า Flow program

รูปที่ 11 ตั้งค่า flow program 

ทำการนำเข้าโมเดลที่ฝึกฝนแล้วจากข้อ 4 เข้ามาใน flow Program โดยผู้ใช้งานสามารถตั้งชื่อโมเดลได้ตามการใช้งานหรือตามความเข้าใจของผู้ใช้งานได้ และ ผู้ใช้งานสามารถเปลี่ยนจาก Images Slide เป็น กล่องอื่นๆได้ เช่น Web Cam หรือ Image Call 

Leave a Comment

Your email address will not be published. Required fields are marked *

wpChatIcon
wpChatIcon