โคตรง่าย! สร้างระบบสแกนใบหน้า (Face Detection) ด้วย Raspberry Pi และ Cloud AI

Raspberry Pi Face Detection using CircuitDigest Cloud
เปลี่ยน Raspberry Pi ธรรมดา ให้กลายเป็นกล้องวงจรปิด AI ตรวจจับใบหน้าอัจฉริยะ

สวัสดีชาว Maker วัยรุ่นหาทำทุกคนครับ! 😎 เวลาเราดูหนังสายลับไซไฟที่มีปืนกล้องสแกนหาหน้าคน หรือระบบเปิดประตูที่จับใบหน้าปุ๊บประตูเปิดปั๊บ หลายคนคงคิดว่า "โห เทคโนโลยีแบบนี้เราคงทำเองไม่ได้หรอกมั้ง?" แต่รู้ไหมครับว่าวันนี้คุณสามารถสร้าง ระบบตรวจจับใบหน้า (Face Detection) แบบในหนังได้ง่ายๆ ด้วยงบไม่กี่พันบาท แถมไม่ต้องเขียนโค้ด Machine Learning เองให้ปวดหัวเลยด้วย!

โปรเจกต์นี้เราจะใช้แค่บอร์ดคอมพิวเตอร์จิ๋ว Raspberry Pi และกล้อง USB ธรรมดาๆ มาต่อกัน แล้วปล่อยหน้าที่การ "ประมวลผลความฉลาด" ไปให้ระบบ CircuitDigest Cloud AI จัดการให้หมด! โคตรง่าย โคตรไว และที่สำคัญคือทำงานได้แบบ Real-time ด้วยนะ มาดูวิธีทำกันเลยครับ!

มันทำงานยังไง? (แอบส่องสถาปัตยกรรมระบบ) 🧠

ระบบนี้ใช้โครงสร้างแบบ Cloud-Offload Architecture ครับ ซึ่งแปลง่ายๆ คือ "ถ่ายรูปที่บอร์ด ไปคิดเลขที่คลาวด์" โดยมีขั้นตอนดังนี้ครับ:

  • กล้อง USB ที่ต่อกับ Raspberry Pi จะทำหน้าที่จับภาพสด (Live video feed) ผ่านไลบรารี OpenCV
  • เมื่อถึงเวลาที่กำหนด (หรือตอนที่เรากดปุ่มบนคีย์บอร์ด) ตัวบอร์ดจะบีบอัดภาพเป็นไฟล์ JPEG
  • ส่งภาพนั้นผ่านอินเทอร์เน็ต (HTTPS POST request) พุ่งตรงไปยัง API ของ CircuitDigest Cloud
  • AI บนคลาวด์จะสแกนหาหน้าคนในภาพอย่างรวดเร็ว แล้วส่ง "จำนวนใบหน้าที่เจอ" พร้อม "ค่าความแม่นยำ (Confidence score)" กลับมาแสดงบนหน้าจอ Terminal ของเราครับ
[Image of Cloud Computing Architecture]

💡 Maker's Tip: ข้อดีของการทำระบบแบบนี้คือ บอร์ด Raspberry Pi ของเราไม่ต้องรับภาระในการรันโมเดล AI หนักๆ เลยครับ ทำให้ความร้อนไม่ขึ้นสูง และไม่ต้องมานั่งเสียเวลาเทรนโมเดลรูปภาพเองเป็นวันๆ

หากเพื่อนๆ กำลังมองหาอุปกรณ์ แวะมาช้อป บอร์ด Raspberry Pi, กล้อง USB, MicroSD Card และอุปกรณ์เสริมต่างๆ ได้ที่ Globalbyte Shop เลยครับ หรืออยากให้แอดมินช่วยจัดเซ็ตพร้อมใช้ ก็ทัก LINE OA Globalbyteshop มาได้ตลอดเลยนะ!

เตรียมของและต่อสายวงจร 🔌

ฮาร์ดแวร์ในโปรเจกต์นี้บอกเลยว่า "มินิมอล" สุดๆ ครับ มีแค่:

อุปกรณ์ (Components) หน้าที่ในโปรเจกต์
Raspberry Pi ทำหน้าที่เป็นตัวควบคุมหลัก รันโค้ด Python และส่งข้อมูลขึ้นอินเทอร์เน็ต
USB Camera (Webcam) กล้องสำหรับจับภาพสด (เสียบเข้าพอร์ต USB ของบอร์ดได้เลย)
MicroSD Card สำหรับลงระบบปฏิบัติการ Raspberry Pi OS และเก็บไฟล์โปรเจกต์

⚠️ ข้อควรรู้สำหรับมือใหม่ Raspberry Pi

คุณไม่สามารถเอาสาย USB เสียบเข้าคอมแล้วอัปโหลดโค้ดเหมือน Arduino ได้นะครับ! บอร์ด Raspberry Pi เปรียบเสมือนคอมพิวเตอร์เครื่องนึงเลย คุณต้องเอา MicroSD Card ไปลง OS (ใช้โปรแกรม Raspberry Pi Imager) จากนั้นคุณสามารถสั่งงานบอร์ดผ่านการต่อจอนอก (Direct), หรือควบคุมผ่านเน็ตเวิร์กด้วย SSH และ VNC Viewer ก็ได้ครับ!

ผังการเชื่อมต่อ (Circuit Diagram) 🗺️

Raspberry Pi Face Detection Circuit Diagram
การเชื่อมต่อที่แสนง่าย แค่เสียบกล้อง USB และเสียบสายชาร์จไฟให้ Raspberry Pi

การตั้งค่าและทดสอบบน CircuitDigest Cloud ☁️

CircuitDigest Cloud Home Page Try API Section for Face Detection Tested Image on Cloud
คุณสามารถอัปโหลดรูปเพื่อนๆ เข้าไปเทสระบบ AI และตั้งค่าความแม่นยำ (Confidence) ได้ฟรีๆ บนหน้าเว็บเลย ก่อนจะเริ่มรันโค้ดจริง

โหมดการทำงานของโปรเจกต์ 🔄

  • Keyboard Mode: กดปุ่ม "Spacebar" ที่คีย์บอร์ดเพื่อให้กล้องถ่ายแชะ! แล้วส่งภาพเข้าคลาวด์ (เหมาะสำหรับเวลาทดสอบระบบ)
  • Auto Mode: ตั้งเวลาให้กล้องถ่ายอัตโนมัติ (เช่น ทุกๆ 5 วินาที) เหมาะกับการเอาไปทำกล้องวงจรปิดนับคน
  • SSH Mode: รันโปรแกรมแบบไม่มีหน้าต่างวิดีโอ (No GUI) ข้อมูลทุกอย่างเด้งรายงานผ่าน Terminal ล้วนๆ เหมาะกับตอนที่ติดตั้งบอร์ดเสร็จแล้ว

ตัวอย่างโค้ด Python: การนำเข้าไลบรารีและตั้งค่า API 💻

import cv2
import requests
import time
import os
import sys

# ตั้งค่าที่อยู่เซิร์ฟเวอร์และใส่ API KEY ของคุณ
SERVER_URL = "https://www.circuitdigest.cloud/api/v1/face-detection/detect"
API_KEY    = "YourApikey"

# เลือกโหมดทำงาน (keyboard หรือ auto)
MODE = "keyboard"
AUTO_INTERVAL = 5

# ตั้งค่าความละเอียดกล้อง OpenCV
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
      

ตัวอย่างโค้ด Python: การส่งภาพขึ้นคลาวด์และการอ่านผลลัพธ์ 🚀

# บีบอัดรูปภาพที่ได้จากกล้องให้เป็นไฟล์ JPG แบบเบาๆ (คุณภาพ 90)
_, img_encoded = cv2.imencode('.jpg', frame, [cv2.IMWRITE_JPEG_QUALITY, 90])
img_bytes = img_encoded.tobytes()

# โยนข้อมูลขึ้นคลาวด์เพื่อตรวจจับใบหน้า
response = requests.post(SERVER_URL, headers=headers, files=files, timeout=15)

# แกะกล่องของขวัญ (ไฟล์ JSON) ที่คลาวด์ส่งกลับมา ว่าเจอหน้าคนกี่หน้า!
if response.status_code == 200:
    result = response.json()
    face_count = result.get("face_count", 0)
    print(f"✅ Faces detected: {face_count}")
      

ผลลัพธ์การรันโปรแกรมบน Thonny IDE 🖥️

Running code in Thonny IDE Face Detection Result on Terminal
หน้าต่าง Terminal จะรายงานเลยว่าเจอคนกี่คน! เอาไปต่อยอดทำระบบนับคนเข้าห้องเรียน (Attendance Tracking) ได้ชิลๆ

ข้อดีและข้อจำกัดที่ควรทราบ ⚖️

👍 ข้อดีของระบบ (Advantages) 👎 ข้อจำกัดของระบบ (Limitations)
ทำง่ายมาก ไม่ต้องเสียเวลาหา Dataset และไม่ต้องเทรนโมเดลเอง จำเป็นต้องเชื่อมต่ออินเทอร์เน็ตที่เสถียรตลอดเวลา (เพื่อส่งรูปขึ้นคลาวด์)
ใช้กับ Raspberry Pi รุ่นเก่าๆ ได้ เพราะงานหนักๆ โยนให้คลาวด์ทำหมด ถ้าเน็ตช้าหรือเซิร์ฟเวอร์ตอบกลับช้า อาจทำให้ผลลัพธ์หน่วง (Delay) นิดนึง
ปรับแก้โค้ดง่าย เอาไปประยุกต์ทำระบบนับคนเข้าออกร้านค้าได้ทันที อาจมีข้อจำกัดด้านโควตา (Quota) การเรียกใช้ API ฟรีต่อวัน/เดือน

พร้อมสร้างระบบ AI กล้องวงจรปิดอัจฉริยะของคุณเองหรือยัง?

ช้อปบอร์ด Raspberry Pi และกล้อง USB เข้ากลุ่ม Community ถาม-ตอบสาย Maker สอบถามสินค้าและพรีออเดอร์ผ่าน LINE OA
*คำเตือนและข้อแนะนำ: เนื้อหาบทความนี้สรุปและแปลมาจากบทความเทคโนโลยีต่างประเทศ โปรเจกต์นี้ต้องพึ่งพาบริการ API (CircuitDigest Cloud) ซึ่งอาจมีการปรับเปลี่ยนหน้าตา UI หรือเงื่อนไขจำนวนการเรียกใช้งานฟรีในอนาคต ผู้ใช้งานควรเข้าไปศึกษาคู่มือล่าสุดจากทาง เว็บไซต์ผู้ให้บริการระบบคลาวด์โดยตรง ก่อนเริ่มเตรียมวัสดุอุปกรณ์และพัฒนาโครงงานจริงครับ

 

แท็ก


Blog posts

เข้าสู่ระบบ

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

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