AI ตัวจิ๋วแต่แจ๋ว! วิธีทำ Object Recognition บน Raspberry Pi Zero 2W ด้วย YOLOv5n 🚀

Raspberry Pi Zero 2W Object Recognition

เฮลโหลเพื่อนๆ ชาว Maker! ใครจะไปเชื่อว่าบอร์ดเล็กจิ๋วเท่าบัตรเครดิตอย่าง Raspberry Pi Zero 2W จะสามารถรัน AI ตรวจจับวัตถุได้แบบเรียลไทม์! วันนี้เราจะพาไปอัปเกรดบอร์ดจิ๋วให้ฉลาดล้ำด้วยการใช้โมเดล YOLOv5n ที่ถูก Optimized มาเพื่อความเร็วโดยเฉพาะผ่านตระกูล ONNX ครับ

1. เตรียมของให้พร้อม (Things you need)

  • Raspberry Pi Zero 2W - สมองกลจิ๋วของเรา
  • Raspberry Pi Touch Display - เอาไว้โชว์ผลลัพธ์แบบเฟี้ยวๆ
  • CSI-2 Camera Connector - ดวงตาของ AI
  • MicroSD Card - สำหรับลง OS และเก็บข้อมูล

💡 Pro Tip: สำหรับใครที่อยากประกอบร่างให้ดูหล่อเท่ อย่าลืมมองหา เคส 3D Printed สวยๆ หรือถ้ายังไม่มีอุปกรณ์ แวะมาเช็คที่ Globalbyte ได้เลย เรามีทั้งอุปกรณ์ Hardware และบริการ 3D Printing สั่งทำเคสพิเศษให้โปรเจกต์คุณดู Lit กว่าใคร!

2. ทำความรู้จัก ONNX และ YOLOv5n

ก่อนเริ่มลุยโค้ด มาทำความเข้าใจกันนิดนึงว่าทำไมเราถึงใช้สองตัวนี้:

  • ONNX (Open Neural Network Exchange): คือระบบนิเวศแบบเปิดที่ช่วยให้เราเลือกเครื่องมือ AI ที่เหมาะสมได้ตามการเติบโตของโปรเจกต์ ช่วยให้โมเดล AI ทำงานร่วมกันได้ทุกค่าย
  • YOLOv5n (Nano): เป็นเวอร์ชันที่เบาที่สุดในตระกูล YOLOv5 ออกแบบมาเพื่อเน้นความเร็วบนอุปกรณ์ที่มีทรัพยากรจำกัดอย่าง Pi Zero ของเรานี่เองครับ
ONNX Ecosystem

3. ขั้นตอนการติดตั้ง (Software Setup)

เริ่มแรกให้เตรียมเครื่องตามขั้นตอนปกติ (OS Installation) จากนั้นเปิด Terminal แล้วรันคำสั่งพวกนี้เพื่อลง Library สำคัญครับ:

Terminal Commands
# Install OpenCV
sudo apt install python3-opencv

# Install ONNX Runtime
sudo pip3 install onnxruntime --break-system-packages

จากนั้นสร้าง Folder สำหรับโมเดลและดาวน์โหลดไฟล์ YOLOv5n.onnx ครับ:

mkdir model
cd model
wget https://github.com/ultralytics/yolov5/releases/download/v7.0/yolov5n.onnx

4. ถึงเวลาเขียนโค้ด (Project Code)

สร้างไฟล์ชื่อ or_onnx.py แล้วก๊อปโค้ดนี้ลงไปได้เลยครับ โค้ดนี้จะช่วยให้ AI แยกแยะวัตถุได้ถึง 80 ชนิดตามมาตรฐาน COCO dataset!

or_onnx.py
#!/usr/bin/env python3
import
cv2, numpy
as
np, onnxruntime
as
ort
from
pathlib
import
Path
# ---------- Model Configuration ----------
MODEL_PATH = "model/yolov5n.onnx"
sess = ort.InferenceSession(MODEL_PATH, providers=['CPUExecutionProvider'])
in_name = sess.get_inputs()[0].name
# ... (Code for image processing and NMS) ...
# Full Python implementation for object recognition using YOLOv5n-ONNX

5. ผลลัพธ์สุดว้าว (Demonstration)

เมื่อรันโค้ดเสร็จแล้ว ระบบจะเปิดหน้าต่างขึ้นมาโชว์การตรวจจับวัตถุบนถนนหรือในบ้านครับ ลองดูผลลัพธ์บางส่วนกัน:

Recognition Result 1
Result Scene 2 Result Scene 3 Result Scene 4

อยากปั้นโปรเจกต์ AI ของตัวเองแล้วหรือยัง?

ช้อปอุปกรณ์ Hardware และเครื่องปริ้นท์ 3D คุณภาพสูงเพื่อเริ่มต้นวันนี้!

ลิงก์หลัก Globalbyte เข้าร่วม Community ของเรา สั่งซื้อสินค้าที่นี่
อ้างอิง: Globalbyteshop Blog
เจ้าของบทความ: ln yang / boundless-expanse | Original Link
*คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยอาจมีความคลาดเคลื่อนบางประการจากการตีความหรือย่อเนื้อหา สามารถดูข้อมูลเต็มได้ที่ ต้นฉบับภาษาอังกฤษ

 

แท็ก


Blog posts

เข้าสู่ระบบ

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

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