Azure Custom Vision
Azure Custom Vision เป็นบริการของ Azure ที่ใช้สำหรับการทำ Computer Vision (CV) ได้สะดวก และรวดเร็วมากขึ้น ช่วยให้ผู้ใช้สามารถติดฉลากกำกับเพื่ออธิบายรูปภาพ สร้าง ปรับปรุง และนำโมเดลจำแนกรูปภาพไปใช้งานได้ง่ายยิ่งขึ้น เมื่อเราอัปโหลดรูปภาพ และทำการติดฉลากให้กับรูปภาพเรียบร้อยแล้ว อัลกอริทึมจะทำการฝึกสอนโมเดลจากรูปภาพที่เราได้อัปโหลดขึ้นไป จากนั้นจะคำนวณประสิทธิภาพของโมเดลออกมา เราสามารถเริ่มต้นสร้างโมเดลง่าย ๆ ด้วยขนาดข้อมูลจำนวนน้อย ( 50 ภาพต่อประเภท) เมื่ออัลกอริทึมถูกฝึกสอนแล้ว เราสามารถที่จะทำการทดสอบ หรือฝึกสอนใหม่ และใช้โมเดลจำแนกรูปภาพใหม่ ๆ ตามความต้องการของแอปพลิเคชันปลายทางได้ อีกทั้งยังสามารถส่งออกรูปแบบการฝึกสอนสำหรับการใช้งานแบบออฟไลน์ได้อีกด้วย
เริ่มต้นสร้างโปรเจค
ก่อนอื่นเราต้องเปิด https://www.customvision.ai แล้วทำการ Sing In หลังจากนั้นคลิกที่ New Project
Azure Custom Vision สามารถรองรับงานการจำแนกรูปภาพ (Classification) และการตรวจจับวัตถุ (Object Detection) ในครั้งนี้เราจะทำการจำแนกรูปภาพ
เมื่อเราสร้างโปรเจคขึ้นมา ให้เลือกรูปแบบโปรเจคเป็นการจำแนกรูปภาพ สำหรับรูปแบบของการจำแนกเลือกเป็น Multiclass (Single tag per image) ซึ่งใช้ในกรณีที่มีเพียงแค่ 1 แท็กหรือประเภทในแต่ละภาพ ถ้าในกรณีที่ใน 1 รูปภาพมีมากกว่า 1 แท็กหรือประเภทให้เลือกเป็น Multilabel (Multiple tags per image) เลือกโดเมนเป็นทั่วไป (General) ดังภาพข้างบน เมื่อเลือกเสร็จตามที่ต้องการแล้ว ให้กดปุ่ม Create project
ชุดข้อมูล
สำหรับชุดข้อมูลที่จะใช้สร้างโมเดลจำแนกรูปภาพในบทความนี้ จะใช้ชุดข้อมูล 100 Sports Image Classification จาก Kaggle ซึ่งเป็นภาพกีฬาจำนวน 100 ชนิด โดยทุกรูปภาพจะมีขนาด 224x224x3 และอยู่ในรูปไฟล์ jpg ดังภาพตัวอย่างข้างล่าง (สำหรับในการสร้างโมเดลในบทความนี้ เราใช้เพียง 37 ชนิดจากทั้งหมด)
การติดฉลากอธิบายรูปภาพ
เมื่อสร้างโปรเจคแล้ว เราต้องอัปโหลดชุดข้อมูลรูปภาพเพื่อนำไปใช้ในการสร้างโมเดล โดยเราสามารถกำหนดฉลากอธิบายรูปภาพล่วงหน้า หรือในขณะที่อัปโหลดชุดข้อมูลรูปภาพก็ได้
สำหรับขั้นตอนการอัปโหลดรูปภาพ และติดฉลากอธิบายรูปภาพ มีขั้นตอนดังนี้ กดปุ่ม “Add images” แล้วเลือกรูปภาพที่จะนำมาใช้ในการสร้างโมเดล
เมื่อเลือกรูปภาพแล้ว เราสามารถเพิ่มแท็กหรือติดฉลากให้กับรูปภาพที่เรากำลังอัปโหลดได้ทีละหลาย ๆ รูป ในที่นี้เราจะอัปโหลดรูปภาพครั้งละ 1 ชนิดของกีฬาหรือตามแท็กนั้นเอง โดยเราสามารถกำหนดแท็กให้กับรูปภาพได้ว่าเป็นกีฬาชนิดอะไรในช่อง “My Tags” แล้วกดอัปโหลด
ทำต่อไป จนจะอัปโหลดรูปภาพทั้งหมดที่มีอยู่สำหรับจำแนกชนิดกีฬา จากนั้นรูปภาพที่ถูกแท็กแล้วทั้งหมด จะแสดงดังรูปภาพ
การฝึกสอนโมเดล
เมื่อทำการติดแท็ก หรือฉลากอธิบายรูปภาพให้กับทุกรูปภาพที่เราจะนำมาใช้ในการฝึกสอนโมเดลสำเร็จแล้ว ขั้นตอนถัดไป คือการฝึกสอนโมเดลสำหรับจำแนกรูปภาพ เราสามารถเลือกรูปแบบการฝึกสอนได้ตามค่าใช้จ่าย และข้อจำกัดด้านระยะเวลา ซึ่งมี 2 ตัวเลือก ได้แก่ การฝึกแบบด่วน (Quick Training) และการฝึกแบบขั้นสูง (Advanced Training) โดยประสิทธิภาพของโมเดลนั้นจะขึ้นอยู่กับปริมาณชุดข้อมูลในการฝึกสอน คุณภาพ และความหลากหลายของข้อมูลที่มีฉลากอธิบาย รวมถึงปริมาณชุดข้อมูลของกีฬาแต่ละชนิดมีจำนวนรูปภาพที่ใกล้เคียงหรือเท่า ๆ กัน ในการสร้างโมเดลนี้ เราจะเลือกการฝึกแบบขั้นสูง และใช้ระยะเวลาในการสอนโมเดล 2 ชั่วโมง
หลังจากทำการฝึกโมเดลเสร็จสิ้น ผลของการฝึกสอนจะแสดงที่แถบ “Performance” ด้านบน
จากผลลัพธ์ตามรูปที่แสดงข้างบน จะแสดงค่าความแม่นยำ (Precision) ค่าความถูกต้อง (Recall) และค่า AP (Average Precision) คือค่าเฉลี่ยของความแม่นยำและค่าความถูกต้อง ในกรณีที่ค่าประสิทธิภาพของโมเดลยังไม่เป็นที่พอใจสำหรับเรา เราสามารถปรับค่า Probability Threshold ที่แถบด้านซ้าย หรือเพิ่มรูปภาพในแต่ละกีฬาแล้วทำการฝึกสอนโมเดลใหม่อีกครั้ง
การทดสอบโมเดล
หลังจากโมเดลของเรามีผลลัพธ์ที่น่าพอใจแล้ว เราสามารถทดสอบโมเดลโดยการนำรูปที่ไม่ได้อยู่ในชุดฝึกสอนมาทดสอบ โดยมาเลือกปุ่ม “Quick Test” ที่แถบด้านบน จากนั้นเลือกรูปภาพที่จะนำมาทดสอบ
เมื่อเลือกรูปภาพแล้ว จะขึ้นผลลัพธ์ในการทำนายที่แถบด้านขวาในส่วนของ “Predictions” โดยจะแสดงแท็กหรือกีฬาที่ทำนาย และค่าความน่าจะเป็น โดยเรียงจากค่ามากไปน้อย กีฬาที่มีค่าความน่าจะเป็นมากที่สุดโมเดลจะทำนายเป็นกีฬาชนิดนั้น
สรุป
เราสามารถใช้บริการสร้างโมเดลสำหรับจำแนกรูปภาพ โดย Azure Custom Vision ซึ่งจะช่วยลดความซับซ้อนในการสร้างโมเดล และไม่จำเป็นต้องใช้เทคนิคขั้นสูง