อุปกรณ์ทั้งหมดประกอบเข้าด้วยกัน ติดตั้งในรถได้ทันที
สวัสดีชาว Maker และสาย Tech ทุกคนครับ! รู้ไหมว่าหนึ่งในสาเหตุอุบัติเหตุทางถนนที่อันตรายและถูกรายงานต่ำกว่าความเป็นจริงมากที่สุดก็คือ "การหลับใน" (Drowsy driving) แน่นอนว่าถ้าคุณขับรถหรูอย่าง Mercedes, BMW หรือ Tesla มันก็อาจจะมีระบบตรวจสอบคนขับแถมมาให้ แต่ระบบพวกนั้นราคาก็แพงหูฉี่และถูกล็อกไว้ให้ใช้เฉพาะกับรถรุ่นนั้นๆ
ส่วนระบบ Standalone ที่ใช้ในบริษัทขนส่งก็ดันต้องเชื่อมต่อ Cloud และมีค่าบริการรายเดือนอีก นี่จึงเป็นจุดเริ่มต้นของโปรเจกต์ DrowSAFE ระบบ AI ตรวจจับความง่วงแบบ Open-source ที่คุณสามารถประกอบเองได้ ติดตั้งในรถคันไหนก็ได้ และที่สำคัญคือมันทำงานแบบ Offline 100% ไม่ต้องต่อเน็ต ไม่เสียค่ารายเดือน แถมข้อมูลใบหน้าเราไม่ถูกส่งออกไปไหนด้วย!
ทำงานยังไง? หลักการวิทยาศาสตร์เบื้องหลัง AI
Pipeline การทำงานของระบบที่ไหลลื่นระดับ 30 fps บน CPU เพียวๆ
ความพีคของระบบนี้คือ มันรันประมวลผลวิดีโอแบบสดๆ ได้ถึง 30 เฟรมต่อวินาที (fps) บน Quad-core CPU ของ Raspberry Pi 5 โดยไม่ต้องพึ่งการ์ดจอ (GPU) หรือชิป AI ใดๆ เลยครับ!
ระบบจะใช้โมเดล MediaPipe Face Mesh จาก Google ในการจับจุดบนใบหน้าถึง 468 จุดต่อเฟรม แล้วเอามาคำนวณผ่าน 4 สัญญาณหลักทางวิทยาศาสตร์ ดังนี้ครับ:
หลักการคำนวณ EAR และ MAR เพื่อดูการลืมตาและอ้าปาก
-
EAR (Eye Aspect Ratio): วัดอัตราส่วนการลืมตา ปกติเวลาลืมตาค่าจะอยู่ที่ 0.28-0.35 ถ้ากะพริบตาค่าจะตกลงวูบเดียว แต่ถ้าค่าตกต่ำนานๆ แสดงว่า "หลับตา" (ง่วงชัวร์!)
-
MAR (Mouth Aspect Ratio): ใช้หลักการเดียวกันแต่วัดที่ปาก ถ้ารูปปากกว้างเกินค่าที่ตั้งไว้ติดต่อกัน 15 เฟรม ระบบจะฟันธงว่าเรา "หาว"
-
PERCLOS (Percentage of Eye Closure): นี่คือมาตรฐานทองคำที่อเมริกา (NHTSA) ใช้เลยครับ มันคือการคำนวณว่าใน 60 วินาทีที่ผ่านมา เราหลับตาไปกี่เปอร์เซ็นต์ ถ้าเกิน 15% คือประสิทธิภาพการตื่นตัวลดลงแล้ว
-
Head Pose: ประเมินองศาของศีรษะ (ใช้ OpenCV เข้ามาช่วย) ถ้ามีอาการ "สัปหงก" คอพับมาข้างหน้า จะถูกบวกคะแนนความเหนื่อยล้าทันที
ทำไมต้อง Edge AI? & ฮาร์ดแวร์ที่ต้องใช้
ระบบตรวจจับคนขับทั่วไปมักจะต้องโยนวิดีโอไปประมวลผลบนเซิร์ฟเวอร์ (Cloud) แต่ DrowSAFE เลือกใช้ Edge AI ซึ่งมีข้อดีคือ:
-
ไม่ต้องมีเน็ต (No internet required): ขับรถเข้าอุโมงค์ หรือขึ้นเขาสัญญาณขาดหาย ระบบก็ยังทำงานปกติ
-
ไร้ความหน่วง (Zero latency): ไม่ต้องรอส่งข้อมูลไปกลับ แจ้งเตือนได้ทันทีที่หลับตา
-
ความเป็นส่วนตัว 100%: วิดีโอใบหน้าของเราจะถูกประมวลผลและจบแค่ในตัวเครื่อง ไม่มีการแอบอัปโหลดไปไหน
ระบบแจ้งเตือนแบบมี Hysteresis
เพื่อป้องกันไม่ให้หน้าจอแจ้งเตือนเด้งไปมาแบบมั่วๆ เวลามี Noise ระบบจะใช้ Hysteresis (หน่วงการกลับสถานะ) เข้ามาช่วย คือคะแนนความเหนื่อยล้าต้องลดลงแบบชัดเจนจริงๆ ถึงจะยอมปลดการแจ้งเตือนลงครับ
ผังการทำงานของ State Machine (Alert Levels)
หน้าตา Dashboard เวลาใช้งานจริง
หน้าจอสัมผัสขนาด 7 นิ้วจะแสดงผลแบ่งเป็น 2 ฝั่ง ซ้ายคือภาพจากกล้องพร้อมโครงตาข่ายบนใบหน้า (Face Mesh) ส่วนขวาคือคะแนนความเหนื่อยล้าและกราฟ
หน้าจอการทำงานปกติ (Alert Level: NORMAL)
เมื่อมีการหาวหรือหัวตก คะแนนจะเด้งไปที่ระดับสีส้ม (WARNING)
เมื่อตรวจพบการหลับตา ค่า EAR จะร่วงหนัก ทำให้ระบบเด้งแจ้งเตือนระดับสีแดงพร้อมเสียงไซเรน (CRITICAL) ทันที!
วิธีประกอบและติดตั้ง (Hardware & Setup)
ขั้นที่ 1: แฟลช OS
ดาวน์โหลด Raspberry Pi OS (Legacy, 64-bit) ย้ำว่าต้องเป็นเวอร์ชัน Legacy (Debian 12 Bookworm) นะครับ เพราะปัจจุบัน MediaPipe ยังไม่รองรับ Python 3.13 บน OS ตัวใหม่
ขั้นที่ 2: ต่อจอและกล้อง
เชื่อมต่อจอ Touch Display เข้ากับบอร์ดผ่านสายแพร DSI และต่อกล้องเข้ากับพอร์ต CAM (ใช้สายแปลงแบบ Standard-to-Mini ให้เข้ากับพอร์ตของ Pi 5)
ขั้นที่ 3: ต่อลำโพง Buzzer
เชื่อมต่อ Active piezo buzzer เข้ากับขา GPIO 18 เอาไว้สำหรับร้องเตือนดังๆ เวลาจับได้ว่าคนขับหลับในครับ
การโคลนโปรเจกต์และติดตั้ง
# Clone project
git clone https://github.com/Bedair/DrowSAFE.git
cd DrowSAFE
# Run setup script
bash scripts/setup_drowsafe.sh
ระบบจะทำการติดตั้งไลบรารีทั้งหมด (OpenCV, MediaPipe, ONNX, Pygame ฯลฯ) ให้อัตโนมัติ
การทดสอบแบบจำลอง (Simulation Mode)
ก่อนเอากล้องไปติดในรถ ลองเทสหน้าจอแบบยังไม่ต้องใช้กล้องดูก่อนได้ครับ
python src/main.py --simulate
การ Calibrate (ตั้งค่าให้เข้ากับหน้าเรา)
เพราะใบหน้าของทุกคนไม่เหมือนกัน บางคนตาตี่ บางคนตาโต เราจึงต้องรันคำสั่งวัดค่ามาตรฐานใบหน้าเราก่อนใช้งานจริง
bash scripts/calibrate.sh
หลังจากได้ค่าตอนลืมตาปกติแล้ว ให้เราเข้าไปตั้งค่าตัวแปร EAR_THRESHOLD ไว้ที่ประมาณ 65% ของค่าปกติในไฟล์ config/config.py ครับ แค่นี้ AI ก็จะรู้ใจใบหน้าเราแล้ว!
บทสรุป
โปรเจกต์ DrowSAFE พิสูจน์ให้เห็นแล้วว่าเราสามารถนำเทคโนโลยี Edge AI มาประยุกต์ใช้เพื่อความปลอดภัยในชีวิตประจำวันได้จริง แถมยังสร้างเองได้ในงบที่เอื้อมถึง ใครที่เป็นสายขับรถทางไกล หรือชอบทำโปรเจกต์คอมพิวเตอร์วิทัศน์ (Computer Vision) บอกเลยว่าห้ามพลาดครับ!
*คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงแนวคิดจากโปรเจกต์ต้นฉบับภาษาอังกฤษ โปรเจกต์ DrowSAFE เป็นระบบที่ถูกสร้างขึ้นเพื่อการศึกษาและพัฒนา (Educational purposes) ไม่สามารถนำมาใช้ทดแทนสติสัมปชัญญะและความรับผิดชอบของผู้ขับขี่รถยนต์ได้จริงบนท้องถนน ข้อมูลการติดตั้ง OS (Raspbian) และไลบรารี MediaPipe อาจมีการเปลี่ยนแปลง ผู้ปฏิบัติควรตรวจสอบความเข้ากันได้ของระบบจาก
GitHub Repository ต้นฉบับ ก่อนดำเนินการ