สร้าง ML model ส้มตำ ด้วย Auto ML Vision

AutoML เป็นบริการใน GCP (Google Cloud Platform) ที่ช่วยให้เราสามารถสร้างโมเดล machine learning ขึ้นมาใช้งานกับข้อมูลเฉพาะทางได้ โดยไม่จำเป็นต้องใช้ทักษะขั้นสูงของ data science

ปัจจุบัน AutoML มีรูปแบบให้บริการอยู่ 3 ตัว และยังอยู่ในสถานะ beta คือ

  1. AutoML Vision
  2. AutoML Natural Language
  3. AutoML Translation
วันนี้เราจะมาลองสร้างโมเดลส้มตำด้วย AutoML Vision กันครับ

AutoML Vision VS Vision API

ทำไมเราถึงต้องใช้ machine learning ในการอ่านไฟล์รูปภาพ? เพราะคอมพิวเตอร์ธรรมดาก็สามารถเปิดไฟล์รูปภาพได้กันเป็นเรื่องปกติอยู่แล้ว แต่จริงๆ แล้วสิ่งที่คอมพิวเตอร์ธรรมดาทำกับรูปภาพนั้น เป็นเพียงแค่การแสดงผลเท่านั้น แต่มันไม่สามารถตีความหรือทำความเข้าใจว่ารูปภาพนั้น มีความหมายว่าอะไรบ้าง เราจึงต้องใช้ machine learning เข้ามาช่วย

สำหรับการใช้ machine learning เพื่ออ่านรูปภาพนั้น ทาง Google มี Vision API ให้ใช้งานอยู่แล้ว สามารถทดลองใช้งานได้ง่ายๆ ที่ https://cloud.google.com/vision/ เลื่อนลงมาจนเจอส่วนที่เขียนว่า "Try the API" และสามารถทดลอง upload รูปที่มีอยู่ เพื่อให้ machine learning วิเคราะห์รูปภาพ

ทดลองใช้ Vision API ได้โดย upload ไฟล์มาในช่องนี้

Vision API จะรู้จักภาพในมุมทั่วๆ ไป เช่นเป็นอาหารไทย แต่จะไม่รู้จักว่าเป็นตำปูปลาร้า หรือ ตำไทย

จะเห็นว่า model ที่ใช้ใน Vision API สามารถวิเคราะห์ภาพได้ในความหมายกว้างๆ เช่น รู้ว่าเป็นอาหาร หรือรู้ว่าเป็นส้มตำ แต่ในการใช้งานจริงนั้น เราอาจจะต้องการ model ที่สามารถจัดหมวดหมู่ได้ละเอียดกว่านั้น หรือตรงกับการใช้งานในทางธุรกิจมากยิ่งขึ้น

AutoML Vision จึงเข้ามาตอบโจทย์นี้ เนื่องจากเรามาสามารถสร้าง model ใหม่ที่เฉพาะเจาะจงมากขึ้นได้ เช่น model สำหรับทำนายว่า ภาพที่ใส่เข้าไป เป็นส้มตำปูปลาร้า หรือตำไทย เป็นต้น ซึ่งความสามารถนี้ยังไม่มีใน Vision API

เริ่มต้นใช้งาน

เราสามารถเริ่มต้นสร้าง custom model ด้วย AutoML Vision ได้ โดยเข้าไปที่ https://beta-dot-custom-vision.appspot.com/vision/overview แล้วเลือก Get started with AutoML


เลือก "NEW DATASET" เพื่อเตรียมสร้าง model ใหม่ (ในกรณีของผมมี model ที่สร้างไว้แล้วชื่อ "papaya_pok_pok")


ต่อมาจะเป็นการ upload รูปภาพที่จะใช้ในการสร้าง model โดยรูปที่เรา upload ขึ้นไปนั้นจะสามารถใส่ label เพื่อใช้ในการ train ในกรณีของผมจะมีอยู่ 2 label คือ "tired fish" (ตำปูปลาร้า) และ "thai" (ตำไทย) ทั้งนี้จำนวนของรูปภาพในแต่ละ label จะต้องมีมากพอ (ไม่ควรน้อยกว่า 20 ภาพสำหรับแต่ละ label) เนื่องจากระบบจะต้องแบ่งภาพที่ได้ เพื่อใช้ในการ train, evaluate และ test ความแม่นยำของ model

ยิ่งมีรูปภาพเยอะ model ที่ได้จะยิ่งใช้งานได้ดี

เมื่อ upload รูปภาพและใส่ label เรียบร้อยแล้ว ให้กดที่หัวข้อ train และกด "TRAIN NEW MODEL" ระบบจะเริ่มสร้าง model จนกว่าจะได้ความแม่นยำที่กำหนดไว้ ขึ้นตอนนี้จะใช้เวลานานพอสมควร (ของผมใช้ 1 compute hour) เราสามารถปิด browser ไปก่อนได้ เมื่อระบบสร้าง model เสร็จแล้วจะมีอีเมลมาแจ้งเตือน


เมื่อระบบสร้าง model เรียบร้อยแล้ว ให้เราเข้าไปที่หน้าเดิม เห็น model ที่ train เสร็จเรียบร้อยแล้ว พร้อมรายละเอียดความแม่นยำของ model ในห้วข้อ "EVALUATE"


หากต้องการนำ model มาใช้งาน เราสามารถทดสอบ model ได้ในหัวข้อ "PREDICT" ซึ่งมีช่องให้เรา upload รูปภาพที่เราจะใช้ predict ด้วย model นั้นได้

หากลอง predict แล้วเจอข้อความ "Model is warming up..." ก็ไม่ต้องตกใจไป ให้ลอง upload ใหม่อีกครั้ง

model ที่ได้ ทายว่าภาพที่ส่งเข้าไปเป็น ตำปูปลาร้า ด้วยความมั่นใจ 0.906 (เต็ม 1)

ด้านล่างมีตัวอย่างการเรียกใช้งาน model ผ่าน REST API ให้ด้วย สำหรับนำไปใช้งานบนระบบ production ได้


ด้วยขั้นตอนง่ายๆ ช่วยให้เราเรียนรู้ และสามารถสร้าง model machince learning และสามารถนำมาใช้งานในธุรกิจได้จริง หากใครต้องการสร้าง model จากรูปภาพด้วย AutoML Vision สามารถติดต่อมาได้ครับ ที่ www.tangerine.co.th

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

การเรียกใช้งาน Google Apps Script

ลดเวลาการเรียก API ใน Apps Script ด้วย fecthAll

ออกแบบระบบให้คุยข้าม module กันได้ ด้วย Pub/Sub