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

ครั้งนี้เราจะใช้ Google Vision API สร้างโมเดลจดจำภาพที่แยกหมึกกล้วย (neritic squid) หมึกหอม หมึกกระดอง และหมึก squid ออกจากกัน เหมาะมากสำหรับคุณแม่ที่ไม่ค่อยรู้เรื่อง Machine Learning แต่ต้องไปจ่ายตลาด (ผมรู้ว่ากลุ่มคนที่ตรงทั้งสองข้อนี้น่าจะเป็น null)
เข้าเรื่องเลยดีกว่า Vision API เป็นบริการของ Google ที่ช่วยให้คนที่สร้างโมเดล Machine Learning เองไม่เป็น ก็สร้างตัวจำแนกภาพได้ง่ายๆ
ถ้าอยากรู้จัก Machine Learning เบื้องต้น ลองอ่านบทความนี้ได้เลย
แบบฝึกหัดครั้งนี้มีขั้นตอนคร่าวๆ ดังนี้
- สมัครโปรเจกต์ GCP และเปิดใช้ GCP AutoML
- รวบรวมภาพของสัตว์ตระกูลหมึกสิบหนวดเหล่านี้
- สร้าง storage bucket บน GCP แล้วอัปโหลดภาพ
- เปิดหน้า AutoML แล้วขยับนิ้วคลิกอีกนิดก็ได้โมเดล
ง่ายมากเลยใช่ไหม?
ก่อนเริ่ม แนะนำให้ทำความรู้จักความแตกต่างของหมึกกล้วย หมึกหอม หมึกกระดอง หมึก squid และหมึกสาย (ปลาหมึกยักษ์) สักหน่อย ลองดูคลิปนี้
เอาล่ะ! ขั้นแรก สมัคร GCP ตรงนี้ขอให้ดูคลิปนี้แล้วทำตามทีละขั้น
สมัคร GCP เสร็จแล้ว ให้ไปที่หน้า AutoML เพื่อตรวจสอบว่าเปิดใช้ (Enable) API แล้วหรือยัง
จากนั้นไปหาภาพหมึกกล้วย หมึกหอม ฯลฯ จาก Google แล้วบันทึกแยกลงในโฟลเดอร์ที่เตรียมไว้ โครงสร้างโฟลเดอร์เป็นแบบนี้
- cuttlefish คือหมึกกระดอง
- neritic คือหมึกกล้วย (รวมหมึกตัวเล็ก)
- softneritic คือหมึกหอม
- squid คือหมึก squid (สายพันธุ์ที่ใช้ทำหมึกแห้ง)
- octopus คือหมึกสาย (ปลาหมึกยักษ์)
ตอนหาภาพ ผมเจอปัญหาอย่างหนึ่ง คือภาพส่วนใหญ่เป็นหมึกที่ปรุงเป็นอาหารแล้ว ซึ่งจะทำให้โมเดลเรียนรู้ได้ไม่ดี ผมเลยคัดมาให้จำนวนหนึ่ง ใครอยากทำตามไปด้วยกันดาวน์โหลดได้ที่นี่!
แตกไฟล์แล้วจะเจอโฟลเดอร์ที่มีภาพอยู่แล้ว 5 โฟลเดอร์ พร้อมไฟล์ index.csv และ test.py
เนื้อหาใน index.csv เป็นแบบนี้
ไฟล์นี้คือไฟล์ที่เราจะส่งให้ AutoML ในขั้นถัดไป
ส่วน test.py คือไฟล์ Python ที่ผมเขียนไว้จัดระเบียบภาพที่ดาวน์โหลดมาและสร้าง index.csv
ถ้าดาวน์โหลดไฟล์ zip ของผมแล้ว ยินดีด้วย คุณทำไปได้ครึ่งทางแล้ว!
ขั้นที่สาม เราจะสร้าง bucket ใน GCP Storage โดยชื่อต้องเป็น
<your-project-id>-vcm

ยกตัวอย่างเช่น bucket ที่ผมสร้างชื่อ first-850611-vcm
สร้างเสร็จแล้ว ให้สร้างโฟลเดอร์ชื่อ seafood ใน first-850611-vcm แล้วอัปโหลด cuttlefish, neritic, softneritic, squid, octopus และ index.csv ทั้งหมดขึ้นไปไว้ในโฟลเดอร์ seafood
ถึงตรงนี้ เราผ่านขั้นที่สามแล้ว!
ขั้นสุดท้าย เปิดหน้า AutoML เลือกชื่อโปรเจกต์ของคุณที่มุมขวาบน แล้วคลิก Get started with AutoML

จากนั้นคลิก NEW DATASET ด้านบนเพื่อเพิ่มข้อมูลที่จะให้โมเดลเรียนรู้

กรอก Dataset name จะตั้งชื่ออะไรก็ได้ ขอแค่จำได้
แล้วเลือกตัวเลือก Select a CSV และกรอก
gs://<your-project-id>-vcm/seafood/index.csv
ยกตัวอย่างเช่น ของผมจะกรอกว่า
gs://first-850611-vcm/seafood/index.csv
จากนั้นคลิก CREATE DATASET แล้วรอให้ข้อมูลฝึกอัปโหลดเสร็จ

อัปโหลดเสร็จแล้ว จะเห็นภาพและป้ายกำกับที่เราจะใช้ฝึก!
ต่อมาคลิก TRAIN ด้านบนเพื่อเริ่มฝึกโมเดล

ระบบจะเตือนประมาณว่า ภาพของเราน้อยเกินไปนะ~
ในฐานะวิศวกร ชนะก็ลุย แพ้ก็ถอย แต่แบบนี้ไม่ต้องกลัว ฝึกมันไปเลย มากดปุ่ม START TRAINING อย่างกล้าหาญด้วยกัน

Training budget ให้เลือกแบบ free แล้วคลิก START


หลังรอนานพอสมควร เมื่อ model ฝึกเสร็จ ก็คลิก PREDICT ด้านบนเพื่อทดสอบผลการเรียนรู้ของ model ได้
เราจะอัปโหลดภาพหมึกกล้วยและหมึก squid อย่างละหนึ่งภาพให้ model จำแนก


ผลการทำนายของ model เป็นดังภาพด้านล่าง


จะเห็นว่า Google เก่งมากจริงๆ!!!!!!!!!!!
แล้วเราจะยังต้องมีวิศวกร Machine Learning ไปทำไม? วิศวกร Machine Learning ลาออกไปขายปลาได้แล้ว QQ
เอาล่ะ! ต้องยอมรับว่า Vision AutoML แรงจริง ภาพน้อยขนาดนี้ยังเรียนรู้ได้แม่นยำขนาดนี้
ของสนุกแบบนี้จะหยุดแค่นี้ไม่ได้ ตอนหน้าเราจะมาดูวิธีเชื่อมต่อ API ของ model นี้ เพื่อให้คุณแม่มือใหม่ใช้งานได้จริง ไม่ต้องกลัวโดนแม่สามีดุเพราะซื้อหมึก squid มาแทนหมึกกล้วยอีกต่อไป เป็นอาวุธเด็ดที่จะช่วยแก้ปัญหาแม่ผัวลูกสะใภ้!!
ขอโฆษณานิดนึง:
หากบริษัทของคุณต้องการฟีเจอร์ที่ผสาน Machine Learning เข้ากับแชทบอท LINE เช่น การจดจำภาพ การจดจำเสียง หรือแม้แต่การจดจำวิดีโอ ส่งอีเมลมาสอบถามได้ที่อีเมลด้านล่าง



















