จากบทความที่แล้ว ที่ได้อธิบายประโยชน์และตัวอย่างการนำ Visual Inspection AI ไปประยุกต์ใช้ในอุตสาหกรรมต่างๆ ในบทความนี้จะเป็นการเจาะลึกการทำโมเดลการตรวจสอบคุณภาพสินค้า (Quality Control) การสร้างโมเดล Machine Learning/ AI ด้วย Visual Inspection AI เป็นบริการบน Google Cloud Platform ที่ช่วยให้เราสามารถสร้างโมเดลสำหรับ QC โดยเฉพาะ
เริ่มใช้งาน Visual Inspection AI กันเลย
โดยจะทำการตรวจสอบการประกอบชิ้นส่วนของแผงวงจร (PCBs : Printed Circuit Boards) ด้วย Visual Inspection AI เพื่อให้มั่นใจได้ว่าส่วนประกอบต่าง ๆ ของแผงวงจรอยู่ในตำแหน่งที่ถูกต้องและส่วนประกอบแต่ละส่วนไม่มีความเสียหาย รวมถึงได้ชิ้นส่วนประกอบได้ตรงตามมาตรฐานอีกด้วยโดย Workflow การทำโมเดลจะเป็นดังนี้
1. เริ่มต้น Enable API และสร้าง Dataset
เมื่อเข้ามาหน้า Console Visual Inspection AI ให้เราทำการเลือก ENABLE VISUAL INSPECTION AI API
> + CREATE A DATASET
ในขั้นตอน Create Dataset ให้เราทำการตั้งชื่อ Dataset name : “pcb_component ” และทำการเลือก Objective ของโมเดลเป็นแบบ Assembly Inspection ซึ่งเป็นโมเดลสำหรับตรวจสอบการประกอบชิ้นส่วนต่าง ๆ
2. Import Image Dataset
ในขั้นตอนนี้เราจะ Import Image Dataset
ด้วยวิธี Select an Import File from Cloud Storage โดยเป็นการเลือก CSV file
ซึ่งข้อมูลภายใน CSV จะเป็น PATH ของ Image Dataset
หรือ
ถ้าเราไม่มี Image Dataset บน Cloud Storage เราก็สามารถ Upload รูปภาพ
จากเครื่องขึ้นไปยัง Cloud Storage ได้จากหน้าเดียวกัน
หลังจากเรียบร้อยแล้วให้เลือก CONTINUE
รูปตัวอย่าง Path ในไฟล์ .csv
ซึ่งหลังจากที่เรา Import Image Dataset เรียบร้อย
เราก็จะได้รูปภาพที่อยู่บน Visual Inspection AI Dataset ดังภาพประกอบต่อไปนี้
3. เลือก Template ที่จะทำการ Set Component
ขั้นตอนนี้เป็นการเลือก Template
ซึ่งเราจะทำการเลือก Image Dataset มา 1 รูป
โดยเลือก COMPONENTS > SELECT IMAGE
เมื่อเลือกรูปที่จะใช้เป็น Template แล้วเราจะทำการ Enable Using as Template โดยจุดประสงค์ของการ Set Template นั้นคือเพื่อที่จะให้อัลกอริทึม Visual Inspection AI โฟกัสพื้นที่ที่มีส่วนเกี่ยวข้อง (Include) และไม่เกี่ยวข้อง (Exclude)
เมื่อทำการเลือกส่วน Include และ Exclude เสร็จให้เราเลือก Save และไปเลือก Components ส่วนอื่นที่ต้องการจะตรวจสอบ
ขั้นตอนต่อมาให้เราทำการ ADD NEW COMPONENT ส่วนประกอบที่เหลือที่เราต้องการจะตรวจสอบเช่น Resistance, Soldering
เมื่อเรา Set Template ของแผงวงจรที่ต้องการจะตรวจสอบเรียบร้อยแล้ว
ก็จะได้หน้าตาของ Template โดยจะประกอบไปด้วย Include, Exclude, Resistance และ Soldering ดังนี้
เมื่อ Set Template เสร็จแล้ว
เลือก DETECT COMPONENTS ซึ่งจะเป็นการ Define Components ต่างๆ ใน Template ออกมาเป็นแต่ละส่วนย่อย
หลังจากที่กด DETECT COMPONENTS จะใช้เวลาประมาณ 15 – 20 นาที
4. Detect Components ทุกรูปบน Dataset ตาม Image Template
ขั้นตอนนี้จะเป็นการ Review ดูตัวอย่างว่า Components ที่ถูก Detected มีการ Detect Components ได้ถูกต้องหรือไม่ โดยจะเป็นการนำรูป Template ไป Define Components กับรูปที่เหลือบน Dataset
เมื่อตรวจสอบแล้วพบว่า Component ไม่ถูกต้อง ให้เราทำการปรับ Bounding Boxes ใหม่
แต่ถ้าหากมีการแยก Components ถูกต้องและใช้งานได้ดี ให้เราเลือก Apply to all > APPLY
Apply to all จะใช้เวลาในการประมวลผลประมาณ 15 – 20 นาที
ถ้าระบบประมวลผลเสร็จเรียบร้อยแล้วสถานะทางด้านขวาจะขยับไปที่ Finish
5. Train Anomaly Detection Model
หลังจากที่เราได้เรา Define Components ทุกรูปบน Dataset มาแล้วขั้นตอนนี้เราจะทำการ Train model ตรวจจับความผิดปกติของ Components ที่ถูก Crop ซึ่งรูปที่เราได้จากการ Define Components รูปภาพยัง Unassigned อยู่คือไม่มีการ Label Components ว่า NORMAL หรือ ABNORMAL
ดังนั้นขั้นตอนต่อไปนี้ เราจะ Train Model สำหรับ Component Resistance เท่านั้น
ให้ Filter เฉพาะ Resistance มา Train แล้วเลือก START TRAINING
อาจจะใช้เวลาในการ Train model ประมาณ 50-60 นาที ซึ่งขึ้นอยู่กับปริมาณของ Dataset ที่นำมา Train ด้วย
หลังจากที่เรา Trained model เรียบร้อยแล้วก็จะมีปุ่ม GO TO EVALUATE REVIEW PAGE เพื่อตรวจสอบผลลัพธ์
เลือก GO TO EVALUATE REVIEW PAGE > Suggest to label ภายใต้ Resistance
จะแสดงรูปภาพที่มีค่า Model Defect Score ค่านี้จะเป็นตัวช่วยให้เรารู้ว่ารูปภาพของ Components มีข้อบกพร่องมากน้อยเพียงใด
ถ้าค่า Score ยิ่งสูงจะยิ่งทำให้โมเดลเชื่อว่ารูปภาพของ Components มีข้อบกพร่องมาก
รูปภาพของ Components ที่มีกรอบ Suggest to Label
คือภาพที่ระบบ Visual Inspection AI เชื่อว่ารูปนั้นมีแนวโน้มที่จะได้รับความสนใจในการตรวจสอบ
ซึ่งหากเรา Label ตามการ Suggest to Label และยืนยันว่าเป็นปกติ (NORMAL) หรือผิดปกติ (ABNORMAL)
จะช่วยให้ระบบ Visual Inspection AI สามารถตรวจจับความผิดปกติของ Components ที่ตรวจสอบได้ดีขึ้น
รูปภาพบางรูปใน Dataset จะถูกปกปิดด้วยสี่เหลี่ยมสีน้ำเงิน เพื่อให้ง่ายต่อการระบุของส่วนประกอบที่ผิดปกติ (ABNORMAL)
การ LABEL ส่วนประกอบที่ปกติและผิดปกติด้วยตนเองหลังจากการ Training หนึ่งรอบจะช่วยปรับปรุงความแม่นยำของ Model
เมื่อเรา Label NORMAL หรือ ABNORMAL แล้วเราสามารถ Train Model Anomaly Detection รอบใหม่โดยใช้ส่วนที่ Label
เพื่อปรับปรุง Model ซึ่งสามารถทำการเลือก START TRAINING ทางด้านขวาเพื่อเป็นการ Train Model ใหม่อีกรอบซึ่งสามารถ
สรุปคือการ Train Model จะแบ่งออกเป็น 2 รอบ
- รอบแรกจะเป็นการ Pre Train ตาม Concept Active Learning เพื่อให้โมเดลช่วย Suggest to Label
- รอบที่สอง จะเป็นการ Train เพื่อใช้งานจริง
6. Evaluate Trained Anomaly Detect Model
เมื่อทำการ Train รอบที่สองเรียบร้อยแล้วให้เราทำการเลือก GO TO EVALUATION REVIEW PAGE โดยภายใต้ pcb_component จะมีอยู่ 2 Model ที่ได้ทำการ Train มาโดยเราจะเลือกส่วนประกอบที่เป็น Resistance
ซึ่งหลังจากที่เราเลือกเข้ามาก็จะมีรายละเอียดการประเมินผลลัพธ์ของ Model ด้วยค่า Precision & Recall และ Confusion Matrix
ให้เราดูว่าผลลัพธ์ที่ได้มีค่าอยู่ในเกณฑ์ดีหรือไม่ดี ถ้ายังไม่ดีอาจจะต้องไปปรับกระบวนการเตรียม Data ให้ดีกว่าเดิมหรือ Label ใหม่อีกรอบ
ซึ่งจากที่ดูผลลัพธ์ของ Model จะเห็นได้ว่าโมเดลมีการทำนายได้อย่างถูกต้องและแม่นยำทั้ง NORMAL และ ABNORMAL อีกทั้งสามารถ Export Model ไปใช้งานต่อได้ด้วย Solution Artifact ในรูปแบบของ Docker อีกด้วย
Conclusion
การทำโมเดลเกี่ยวกับ Visual Inspection AI ในการตรวจสอบคุณภาพสินค้า (Quality Control) จากตัวอย่างจะเห็นได้ว่าการใช้งานค่อนข้างง่ายและมีประสิทธิภาพอีกทั้งยังสามารถนำโมเดลไป Deploy ลงบนเครื่องจักร (Edge) หรือบนคอมพิวเตอร์ได้ ดังนั้นถ้าในงานด้านอุตสาหกรรมมีการประยุกต์ใช้ Visual Inspection AI ก็จะช่วยให้การทำงานมีความสะดวก รวดเร็วและลดการเกิดความผิดพลาดที่เกิดจากมนุษย์ได้อีกด้วย
สำหรับใครที่สนใจในเรื่องของ Google Cloud Platform หรือ Service อื่นๆ
ด้าน Data Analytics, Data Lake, Data Warehouse, AI/Machine Learning
Tangerine มีผู้เชี่ยวชาญคอยให้คำปรึกษา สามารถติดต่อได้ที่อีเมล marketing@tangerine.co.th หรือโทร 094-999-4263 ได้ทันที