โคตรตึง! จับโมเดล AI ภาพ+ภาษา (VLM) มารันออฟไลน์บนบอร์ด Arduino UNO Q

Running local VLMs on Arduino UNO Q with the App Lab
เมื่อบอร์ดไมโครคอนโทรลเลอร์ธรรมดาๆ กลายร่างเป็นนักวิเคราะห์ภาพตัวยง ด้วยการทำงานร่วมกันของ TinyML และ VLM!

สวัสดีชาว Maker สาย AI ทุกคนครับ! 🚀 พักหลังมานี้วงการ Edge AI ไปไวมาก ปกติถ้าเราอยากให้คอมพิวเตอร์แยกว่าอันไหนคือขวด อันไหนคือกระป๋อง เราก็แค่เทรนโมเดล Object Detection บ้านๆ ขึ้นมาตัวนึงก็จบใช่ไหมครับ? แต่ปัญหาคือ... AI แบบนี้มันจะ "ทึ่ม" ครับ! ถ้ามันเจอของที่คล้ายกันหรือแสงเพี้ยนนิดหน่อย มันก็อาจจะทายผิดได้ง่ายๆ เลย

วันนี้เราเลยขอพาไปดูความ "หาทำ" ขั้นสุด! กับการจับเอาโมเดล VLM (Vision-Language Model) หรือโมเดล AI ที่ทั้ง "มองเห็นภาพและเข้าใจภาษา" มารันแบบ Local (ออฟไลน์ไม่ง้อเน็ต) บนบอร์ด Arduino UNO Q เพื่อทำให้บอร์ดสามารถอธิบายบริบทของภาพได้อย่างฉลาดล้ำลึก เช่น "นี่คือกระป๋อง Red Bull นะ ไม่ใช่กระป๋องเบียร์!" เป็นต้นครับ!

ทำงานคู่กัน (Cascading) เพื่อความฉลาดคูณสอง 🧠

คอนเซปต์ของโปรเจกต์นี้คือการทำงานแบบต่อยอด (Cascading) โดยใช้ AI สองตัวทำงานร่วมกันครับ:

  1. ด่านแรก (TinyML): ใช้โมเดล FOMO (Fast Objects, More Objects) ที่ผ่านการเทรนบน Edge Impulse ให้คอยสแกนภาพจากกล้องเว็บแคมตลอดเวลาเพื่อมองหา "ขวดเบียร์" หรือ "กระป๋องโซดา" (กระบวนการนี้กินเวลาน้อยและไม่เปลืองทรัพยากรบอร์ด)
  2. ด่านสอง (VLM): เมื่อโมเดล FOMO ตรวจเจอ "ขวดเบียร์" เข้าตาข่ายปุ๊บ ระบบจะแคปเจอร์เฟรมภาพนั้น แล้วส่งต่อไปให้โมเดล VLM (SmolVLM-500M) ที่รันอยู่บนบอร์ดช่วยวิเคราะห์เจาะลึก เพื่ออธิบายบริบทเพิ่มเติมและคัดกรองว่าภาพที่เห็นมันคือเบียร์ยี่ห้ออะไรกันแน่ หรือเป็นแค่กระป๋องโซดาที่หน้าตาคล้ายเบียร์ (False positive)

💡 Maker's Tip: การทำ AI แบบ Cascading มีข้อดีมากๆ สำหรับบอร์ดคอมพิวเตอร์ขนาดเล็ก (Resource-constrained devices) เพราะถ้าเราสั่งให้โมเดล VLM ตัวใหญ่ทำงานตลอดเวลา บอร์ดจะกระตุกและกินไฟมหาศาลครับ!

หากเพื่อนๆ อยากเริ่มสาย AI on Edge แวะมาช้อป บอร์ดพัฒนา AI (เช่น ตระกูล ESP32, Raspberry Pi หรือ Arduino), กล้อง USB และเซนเซอร์ต่างๆ ได้ที่ Globalbyte Shop เลยครับ ทัก LINE OA มาปรึกษาแอดมินใจดีให้ช่วยเลือกบอร์ดที่เหมาะกับโปรเจกต์ได้ตลอดเลยนะ!

อยากรันบ้าง ต้องเตรียมอะไร? 🛠️

สิ่งที่คุณต้องมีคือบอร์ด Arduino UNO Q (รุ่น RAM 2GB หรือ 4GB), USB-C Hub แบบมีช่องต่อไฟเลี้ยง (Power Delivery), กล้อง WebCam และซอฟต์แวร์ Arduino App Lab ซึ่งเป็นซอฟต์แวร์ตัวใหม่ที่ให้คุณลากวางโมดูล (Bricks) มาต่อกันเป็นแอปพลิเคชันได้ง่ายๆ

โดยขั้นตอนคร่าวๆ คือ เราจะโหลด โมเดล.eim (Edge impulse model) และโหลดซอร์สโค้ด โปรเจกต์ (Object-detection-and-vlm-description) ไปใส่ในเครื่อง Arduino UNO Q ผ่านระบบ SSH จากนั้นก็สั่งรันผ่าน Arduino App Lab ระบบก็จะเปิด Web UI บนเบราว์เซอร์ให้เราดูภาพสดๆ ได้เลยครับ!

⚠️ เรื่องน่ารู้ของการกินสเปกบอร์ด (Performance Evaluation)

จากการทดสอบรันโมเดล SmolVLM-500M ตัวบอร์ดจะกิน CPU 100% เต็มหลอด! และต้องใช้ RAM ประมาณ 780MB - 1.2GB ทำให้การประมวลผลวิเคราะห์รูป 1 ภาพ จะใช้เวลาราวๆ 22-23 วินาทีเลยทีเดียว (ขวดเบียร์หายเย็นพอดี หยอกๆ 😂) ซึ่งถือว่าเป็นตัวเลขที่ยอมรับได้สำหรับการรันโมเดลระดับนี้บนบอร์ดจิ๋วๆ แบบออฟไลน์ครับ!

การจัดเตรียมฮาร์ดแวร์ 🔌

Hardware setup Arduino UNO Q
การต่อบอร์ดเข้ากับ USB Hub เพื่อเลี้ยงไฟและพ่วงกล้อง WebCam

การตั้งค่าบน Edge Impulse Studio ☁️

Clone Project in Edge Impulse On Device Performance
โคลนโปรเจกต์ต้นแบบจาก Edge Impulse แล้วตั้งค่า Target Device เป็น Arduino UNO Q เพื่อให้ได้ผลลัพธ์ Inference Time ไวปรี๊ดเพียง 6ms

ตัวอย่างโค้ด: การคอนฟิกโมเดลลงบอร์ด (model.yaml) 💻

หลังจากโยนโมเดลลงบอร์ดแล้ว ต้องสร้างไฟล์ .yaml เพื่อบอกให้ Arduino App Lab รู้จักและเรียกใช้งานให้ถูกผ่านระบบ Docker ครับ:

id: "ei-model-1000170-1"
name: "Object detection with FOMO - Bottles vs. cans"
runner: "brick"
description: "manually deployed edge impulse model"
bricks:
- id: "arduino:video_object_detection"
  model_configuration:
    EI_V_OBJ_DETECTION_MODEL: "/home/arduino/.arduino-bricks/ei-models/model.eim"
- id: "arduino:object_detection"
  model_configuration:
    EI_V_OBJ_DETECTION_MODEL: "/home/arduino/.arduino-bricks/ei-models/model.eim"
      

หน้าจอควบคุม Web UI และผลลัพธ์การวิเคราะห์ VLM 🖥️

VLM Analysis detecting Beer VLM Analysis on False Beer Detection
ภาพซ้าย: ระบบตรวจจับเจอขวดเบียร์และรายงานผลผ่าน VLM / ภาพขวา: การใช้ VLM แก้เกม (False Positives) โดยบอกว่า "นั่นไม่ใช่เบียร์ มันคือเครื่องดื่มชูกำลังต่างหากล่ะ!"

พร้อมสร้างโปรเจกต์ AI คอมพิวเตอร์วิทัศน์สุดฉลาดของคุณเองหรือยัง?

ช้อปบอร์ด Arduino, กล้อง และอุปกรณ์เซนเซอร์ เข้ากลุ่ม Community ถาม-ตอบสาย Maker สอบถามสินค้าและขอคำปรึกษาผ่าน LINE OA
*คำเตือนและข้อแนะนำ: เนื้อหาบทความนี้สรุปและแปลมาจากโปรเจกต์ของต่างประเทศ การปรับแต่งโมเดล TinyML และการรัน VLM มีความซับซ้อนและอาจเกิดปัญหาคอขวดด้านประสิทธิภาพของบอร์ดได้ ขอแนะนำให้ผู้ใช้งานศึกษาโครงสร้างของ Source code และไฟล์ Library ที่เกี่ยวข้อง จากทางผู้พัฒนาอย่างละเอียดก่อนนำไปใช้งานจริงครับ

 

แท็ก


Blog posts

เข้าสู่ระบบ

ลืมรหัสผ่านใช่ไหม?

ยังไม่มีบัญชีใช่ไหม?
สร้างบัญชี