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 

 

Leave a Comment

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

wpChatIcon
wpChatIcon