Screen Shot 2558-05-01 at 2.55.43 PM
ในวันที่สองของงาน Build Developer Conference
ทาง Microsoft ได้โชว์ระบบที่ชื่อว่า How-Old.net
เป็นระบบสำหรับบอกเพศและอายุจากรูปภาพ
ซึ่งเราสามารถ upload เข้าไปได้เอง
เพื่อเป็นการแสดงความสามารถของ Microsoft Azure นั่นเอง

ดังนั้น เรามาดูเทคโนโลยีที่อยู่ด้านหลังของระบบนี้กันดีกว่า
ว่ามีอะไรที่น่าสนใจบ้าง

จะเห็นได้ว่าช่วงนี้ timeline ใน facebook นั้น
จะมีคน post รูป พร้อมกับอายุขึ้นมาเยอะมากๆ

แต่สิ่งที่น่าสนใจกว่านั้น คือ เทคโนโลยีที่อยู่ด้านหลัง
เรามาดูกันดีกว่า ว่ามีอะไรบ้าง ?
นำข้อมูลมาจากที่นี่

เบื้องหลังการทำงานของ How-Old.net มันเป็นอย่างไรนะ ?

เป็นคำถามที่นักพัฒนา น่าจะตั้งคำถามกันใช่ไหม ?
ตัวระบบจะใช้งาน Face Detection API ซึ่งพัฒนาจาก Microsoft นั่นเอง
ซึ่ง API นี้จะทำการทำนายอายุ และ เพศ จากรูปภาพที่ upload เข้าไป
แน่นอนว่าระบบทำงานอยู่บน Azure service สิ

ขั้นตอนการทำงานเป็นดังนี้

ขั้นตอนแรก
ทำการ extract ข้อมูลเพศ และ อายุ มาจากรูปภาพ
โดย API นี้อยู่ในบริการ Microsoft Azure Machine Learning
ซึ่งเป็นบริการที่มี API หลายตัวเช่น

  • Face detection
  • Speech Recognition และ Text to speech
  • Vision API เกี่ยวกับ image processing เช่น การจัดการหมวดหมู่ของรูปภาพ และ พวก OCR เป็นต้น
  • Recommendation API เพื่อแนะนำสิ่งต่างๆ ที่น่าสนใจ เพื่อเพิ่ม conversion rate หรือยอดขาย

Screen Shot 2558-05-01 at 2.58.09 PM

ขั้นตอนแรกนี้ก็ใช้ Face Detection API
เพื่อค้นหาหน้าของคนในรูปภาพ
และทำการ extract ข้อมูลหน้าออกมา
สุดท้ายจึงนำข้อมูลเหล่านี้มาประมวลผลว่า
เป็นเพศอะไร และ อายุเท่าไรต่อไป

โดยในการทำนายว่า คนในรูปเป็นเพศอะไร และ อายุเท่าไรนั้น
จะใช้ข้อมูลอื่นๆ หรือเรียกว่า meta data มาช่วยในการตัดสินใจด้วย

ข้อมูลจากพี่ Polawat Phetra
ตัวอายุได้จาก face api เลยไม่ได้พึ่ง meta data
ข้อมูล meta data ใช้ส่งเข้า stream เพื่อ feed BI ทำ aggregate

ตัวอย่างของ meta data  เช่น

  • User Agent
  • Location ของผู้ใช้งาน
  • Device ที่ใช้งาน

ขั้นตอนต่อมา
ทำการวิเคราะห์ข้อมูลแบบ real time
เนื่องจากต้องรองรับการใช้งานจากผู้ใช้จำนวนมาก
แถมการวิเคราะห์ข้อมูลพวกนี้ ต้องใช้ resource จำนวนมาก
ดังนั้น สิ่งที่ใช้งานเพื่อรองรับความต้องการนี้คือ Microsoft Azure streaming service นั่นเอง
แบบว่า ระบบนี้ Microsoft ได้โชว์ของเต็มที่เลย

รวมทั้งใช้งาน Azure Event Bus อีก
เพื่อรองรับ event จำนานมาก ซึ่งทำงานแบบ publish-subscribe
โดยระบบนี้เขาบอกว่า รับได้เป็นล้าน event ต่อวินาที …

ที่สำคัญระบบ How-Old.net ไม่ได้เก็บรูปที่ผู้ใช้งาน upload ขึ้นไปนะ
แต่จะเก็บเฉพาะข้อมูลที่ extract ออกมา
แล้วแปลงอยู่ในรูปแบบ JSON
เพื่อส่งเข้ามาที่ Bus อีกทีจ้าาา

ต่อจากนั้นมาถึงการประมวลผลบ้าง
สิ่งที่ต้องการคือ การประมวลผลแบบ real time
นั่นคือ ต้องการทำงานแบบ Stream processing
เพื่อให้สามารถ processing ข้อมูลจำนวนมากๆ พร้อมกันได้
ดังนั้น จึงใช้งาน Microsoft Azure Stream Analytic (ASA)
ซึ่งสามารถสั่งให้ทำงานด้วย ชุดคำสั่ง SQL-Like ง่ายๆ เลย
งานนี้จัดเต็มจริงๆ นะเออ

โดยจะมีสิ่งที่ควรศึกษาเพิ่มเติมคือ คำว่า Hopping Windows

ยังไม่พอนะ
หลังจากที่ทำการประมวลผลข้อมูลเรียบร้อย
จนได้ผลลัพธ์ออกมาแล้ว
ยังได้นำข้อมูลเหล่านี้ไปแสดงผลใน Dasdboard อีก
ผ่านระบบ PowerBI ซึ่งทำการแสดงผลแบบ real time อีกแล้ว
โดยสามารถเลือกข้อมูลจากระบบ ASA ได้เลย
ไม่ต้องเขียน code แม้แต่บรรทัดเดียว …

และนี่แหละคือ พลังของ Machine Learning
โดยทาง Microsoft จัดเต็มจริงๆ สำหรับระบบนี้
ถึงผลที่ได้จะไม่ถูกต้องเท่าไร แต่สิ่งเป้าหมายจริงๆ
เพื่อความสนุกสนานของผู้ใช้งาน
รวมทั้งแสดงให้เห็นถึงความสามารถของ Microsoft Azure
และ Machine Learning API นั่นเอง