ผลลัพธ์ของโปรเจกต์: AI ตรวจจับรูปร่างคนและทำการเบลอ (Blur) ทิ้งทันที โดยที่ฉากหลังยังชัดแจ๋ว!
Wassup ชาว Maker สาย AI คอมพิวเตอร์วิทัศน์ (Computer Vision)! 📸 ปกติเวลาเราใช้ AI ตรวจจับคนหรือวัตถุ ส่วนใหญ่เราจะคุ้นเคยกับ Object Detection ที่มันจะตีกรอบสี่เหลี่ยม (Bounding Box) ครอบตัวเราไว้ใช่ไหมครับ? แต่วันนี้เราจะพาไปก้าวข้ามขีดจำกัดด้วยเทคนิค Instance Segmentation ซึ่งมันจะไม่ใช่แค่ตีกรอบสี่เหลี่ยม แต่มันจะ "วาดเส้นตัดขอบตามรูปร่างเป๊ะๆ แบบพิกเซลต่อพิกเซล!"
เมื่อมันรู้ขอบเขตของตัวคนชัดเจนแล้ว เราก็สามารถเอาไปประยุกต์ทำโปรเจกต์ "Person Blur" (เบลอภาพคนเพื่อความเป็นส่วนตัว) ได้แบบเนียนกริบ ฉากหลังไม่โดนเบลอตามไปด้วย แถมไฮไลท์คือเราจะรันโมเดล AI หนักๆ แบบนี้ แบบออฟไลน์ (On-device) โดยใช้แค่กล้องเว็บแคมและบอร์ด Raspberry Pi 5 เท่านั้น ไม่ต้องง้อคลาวด์ ไม่ต้องกลัวภาพหลุด!
เคล็ดลับความตึง: Model Cascading & BYOM 🧠
การจะเอางานระดับ Instance Segmentation มารันบนบอร์ดเล็กๆ ให้ลื่นไหลไม่ใช่เรื่องง่ายครับ เค้าเลยใช้เทคนิคที่เรียกว่า Model Cascading (การต่อคิวโมเดล) แบ่งงานให้ AI 2 ตัวช่วยกันทำ:
-
Stage 1 (สอดแนม): รันโมเดล Object Detection ตัวเล็กๆ (เช่น YOLOX) ที่กินสเปคน้อยมาก เพื่อกวาดสายตาหา "คน" ในภาพก่อน
-
Stage 2 (ลงดาบ): เมื่อด่านแรกเจอคน มันจะส่งพิกัดไปให้โมเดลตัวใหญ่ (YOLO11-seg) จัดการวาดหน้ากาก (Mask) ตัดขอบเฉพาะจุดนั้นให้เป๊ะๆ วิธีนี้ทำให้บอร์ดไม่ต้องเหนื่อยรันโมเดลตัวใหญ่พร่ำเพรื่อครับ
แต่เดี๋ยวก่อน! ปกติแพลตฟอร์มอย่าง Edge Impulse Studio เค้าไม่มีบล็อกสำหรับรัน Segmentation มาให้นะ เราเลยต้องใช้ท่ายากที่เรียกว่า BYOM Freeform (Bring Your Own Model) คือการอัปโหลดโมเดล ONNX ของเราเข้าไปดื้อๆ แล้วเขียนโค้ด Python (Post-processor) มารับค่า Tensor ดิบๆ ไปประมวลผลต่อเอาเองครับ โคตรเถื่อน!
💡 ป้ายยาไอเทมเด็ด: งานประมวลผลระดับนี้ ถ้าบอร์ดไม่แรงจริงบอกเลยว่าเฟรมเรตตกกระจาย! ใครกำลังมองหาบอร์ดที่รันโมเดล AI หนักๆ ได้ แอดมินแนะนำให้สอย Raspberry Pi 5 ตัวแรงของแท้ หรือสายอุตสาหกรรมจะลองเล่นบอร์ด Qualcomm Thundercomm ก็มีขายนะ ทักมาจัดของที่ Globalbyte Shop ได้เลย เรามีอแดปเตอร์และกล้อง USB พร้อมลุย!
อยากลองรันบ้าง ต้องเริ่มยังไง? 🛠️
ถ้าคุณมี Raspberry Pi 5 ที่ลง Ubuntu หรือ OS พร้อมรัน Python 3.10+ ไว้แล้ว ให้ทำตามสเต็ปนี้ได้เลย:
1. ลงไลบรารีที่จำเป็น (Edge Impulse Linux & OpenCV)
pip install "edge_impulse_linux>=1.2.2" opencv-python numpy
2. โคลนโปรเจกต์จาก GitHub มาลงเครื่อง
git clone https://github.com/SamuelAlexander/instance-seg-byom-freeform-person-blur
cd instance-seg-byom-freeform-person-blur
chmod +x models/*.eim
3. รันโค้ดเบลอคนแบบ Live ผ่านกล้องเว็บแคม!
QT_QPA_PLATFORM=xcb python cascade/person_blur.py \
--stage1 ./models/stage1-yolox-aarch64.eim \
--stage2 ./models/stage2-yolo11nseg-aarch64.eim \
--metadata ./model_metadata.json \
--skip 5 --blur-passes 2
(พารามิเตอร์ --skip 5 คือการสั่งให้โมเดลใหญ่ทำงานแค่ 1 ครั้งต่อ 5 เฟรมภาพ เพื่อประหยัด CPU ทำให้ภาพลื่นขึ้นนั่นเอง!)
⚠️ คำเตือนเรื่องความหัวหมุน (Complexity Warning)
บทความนี้เป็นเพียงน้ำจิ้มครับ! เพราะกระบวนการ Post-processing ของโมเดล VLM (การแปลงค่า RGB, การทรานสโพส NHWC เป็น NCHW, และการคูณเมทริกซ์) มันมีรายละเอียดยิบย่อยและคณิตศาสตร์ที่ซับซ้อนมาก ถ้าใครอยากรันโมเดลของตัวเอง แอดมินเชียร์สุดใจให้เข้าไปเสพ คู่มือและโค้ดฉบับเต็มของต้นฉบับเลยครับ!
🔗 แหล่งอ้างอิงและคู่มือแบบเจาะลึก (ตามไปเสพกันให้สมองบวม!):
⚡ อุปกรณ์พร้อม โค้ดพร้อม แล้วคุณล่ะพร้อมลุยหรือยัง? ⚡
*Disclaimer (ข้อจำกัดความรับผิดชอบ): เนื้อหาบทความนี้สรุปและดัดแปลงบริบทฮาร์ดแวร์บางส่วนเพื่อให้เข้ากับ Ecosystem ของ Raspberry Pi 5 ข้อมูลทางเทคนิคเรื่องการจัดการ Tensor และโมเดล ONNX มีความซับซ้อน ผู้ที่ต้องการสร้างตามควรศึกษาคู่มือต้นฉบับอย่างละเอียด และทำความเข้าใจพื้นฐาน Python และ OpenCV ก่อนลงมือรันโปรแกรมครับ!