เบื้องหลังระบบตรวจจับและระบุพิกัดโดรนอัจฉริยะบน Raspberry Pi 5
คลิปตัวอย่างผลลัพธ์การใช้งานโมเดลจริง
สรุปย่อโครงการ
-
ทำอะไร (What): พัฒนาระบบปัญญาประดิษฐ์อัตโนมัติแบบครบวงจร ที่สามารถ ตรวจจับ (Detection) อากาศยานไร้คนขับขนาดเล็กบนท้องฟ้า, คำนวณพิกัดภูมิศาสตร์ 3 มิติ (Localization) ทั้งละติจูด ลองจิจูด และความสูงจากระดับน้ำทะเลจากภาพกล้องตัวเดียว และ ติดตามเป้าหมายแบบเรียลไทม์ (Tracking) พร้อมส่งข้อมูลโทรมาตรเตือนภัยฉุกเฉิน (First Alert) สู่ศูนย์บัญชาการ
-
ทำไปเพื่ออะไร (Why): เพื่อสร้างระบบเฝ้าระวังน่านฟ้าและต่อต้านภัยคุกคามจากโดรนแปลกปลอม (Anti-Drone Defense System) ที่มีต้นทุนต่ำ สามารถติดตั้งประจำสถานีชายแดนหรือพื้นที่ยุทธวิธีได้จริง โดยมีหัวใจสำคัญคือ ต้องทำงานได้บนบอร์ดคอมพิวเตอร์ขนาดเล็กอย่าง Raspberry Pi 5 โดยไม่ต้องพึ่งพาชิป AI พิเศษ และไม่ต้องพึ่งพาเซนเซอร์วัดระยะทางราคาแพงอย่าง LiDAR
หัวใจของการมองเห็นเป้าหมายขนาดจิ๋ว: เทคนิค SAHI
ในภาพถ่ายมุมกว้างความละเอียดสูง (Full HD / 4K) โดรนที่บินอยู่ไกลมักมีขนาดตัวลำไม่กี่สิบพิกเซล หากนำภาพมาย่อขนาดลงเพื่อป้อนเข้าโมเดล AI ทั่วไป โดรนจะถูกบีบอัดจนกลายเป็นเม็ดพิกเซลเลือนรางและตรวจจับไม่พบ
ระบบจึงเลือกใช้แนวคิด SAHI (Slicing Aided Hyper Inference) จากงานวิจัยโอเพนซอร์ส obss/SAHI ซึ่งทำหน้าที่เสมือน "แว่นขยายอัจฉริยะ" ด้วยการซอยภาพต้นฉบับออกเป็นช่องตารางย่อยๆ ที่เหลื่อมซ้อนกัน (Sliding Windows) เพื่อคงความละเอียดดั้งเดิมของเป้าหมายไว้เต็ม 100% ให้โมเดล YOLO ตรวจจับทีละส่วน ก่อนจะรวบรวมผลลัพธ์ของกรอบทั้งหมดกลับมารวมกันอย่างแม่นยำ

แนวคิดการทำงานของ SAHI: การแบ่งภาพความละเอียดสูงออกเป็นส่วนย่อยเพื่อตรวจจับวัตถุขนาดเล็กโดยไม่สูญเสียความละเอียด (ที่มา: github.com/obss/sahi)
กระบวนการตรวจจับเป้าหมายทีละขั้นตอน (Step-by-Step Pipeline)
การแปลงภาพถ่ายจากกล้องตรวจการณ์ให้กลายเป็นพิกัดทางยุทธวิธีบนหน้าจอ ผ่านกระบวนการ 5 ขั้นตอนหลัก:

ภาพรวมกระบวนการตรวจจับโดรนจริง 5 ขั้นตอน: จากภาพถ่ายท้องฟ้าสู่การระบุพิกัดโลกบน Tactical HUD
ขั้นตอนที่ 1: ภาพต้นฉบับจากกล้องสถานีตรวจการณ์ (Raw Camera Frame)
ภาพถ่ายท้องฟ้ามุมกว้าง โดรนจริงบินอยู่ในระยะไกล ขนาดลำตัวเล็กและกลืนไปกับฉากหลังของเมฆ ไม่สามารถมองเห็นได้ด้วยการย่อภาพทั่วไป

ขั้นตอนที่ 2: สกัดฉากหลังและแยกพื้นที่ต้องสงสัย (Morphological Masking)
ระบบแปลงภาพเป็นเฉดสีเทาและใช้เทคนิคทางสัณฐานวิทยา (Morphological Dilation) ขยายสัญญาณของตัวลำและใบพัด พร้อมตัดสัญญาณรบกวนของก้อนเมฆและแนวขอบฟ้าทิ้ง เหลือเฉพาะมาร์กของอากาศยานเป้าหมาย

ขั้นตอนที่ 3: ตรวจจับและตีกรอบแบบหมุนตามมุมเอียง (YOLO-OBB Detection)
ประมวลผลแผ่นภาพผ่านโมเดลขนาดเล็กน้ำหนักเบา (Nano Model) โดยใช้กรอบสี่เหลี่ยมหมุนตามมุมเอียงจริง (Oriented Bounding Box) เพื่อตัดพื้นที่ฉากหลังออกและเข้ากรอบตัวลำโดรนได้อย่างพอดี
โมเดล Nano นี้ได้รับการปรับแต่งให้รันบน CPU ของ Raspberry Pi 5 ได้อย่างลื่นไหล และทำความแม่นยำสูงถึง 97.7% mAP@50

ขั้นตอนที่ 4: คำนวณเวกเตอร์และติดตามเป้าหมาย (Motion Tracking)
ระบบเชื่อมโยงพิกัดการเคลื่อนที่ คำนวณเวกเตอร์ทิศทาง และกำหนดรหัสประจำตัว (track_id) ให้คงที่ตลอดการบิน โดยมีกลไกจำลองความทรงจำชั่วคราว 30 เฟรม เพื่อป้องกันไม่ให้รหัสประจำตัวหลุดแม้เป้าหมายบินย้อนแสง

ขั้นตอนที่ 5: คำนวณพิกัดโลกและแสดงผลลัพธ์บน HUD (Final Tactical HUD)
สกัดมิติเชิงเรขาคณิตของกล่องเป้าหมาย นำไปคำนวณพิกัดภูมิศาสตร์จริง (ละติจูด, ลองจิจูด, ความสูง) ในเวลาไม่ถึง 1 มิลลิวินาที แล้ววาดแผงข้อมูลแสดงสถานะและพิกัดที่มุมบนซ้ายของเป้าหมายแบบเรียลไทม์

คอนเซปต์การถอดรหัสพิกัด 3 มิติ จากภาพ 2 มิติ

เมทริกซ์ยืนยันความแม่นยำในการคัดกรองเป้าหมายก่อนส่งเข้าสู่โมเดลคำนวณพิกัด
กล้องตัวเดียวรู้พิกัด GPS ได้อย่างไรโดยไม่ต้องมี LiDAR?
-
ทิศทางและมุม (Azimuth & Elevation): คำนวณจากตำแหน่งจุดกึ่งกลางของกล่องเมื่อเทียบกับแกนแสงหลักของกล้อง
-
ระยะห่าง (Distance): ขนาดพื้นที่ของกล่องเป้าหมายจะแปรผกผันกับระยะทางจริงตามธรรมชาติของเลนส์ (ยิ่งอยู่ไกล กล่องยิ่งเล็ก)
ข้อมูลเชิงเรขาคณิตเหล่านี้ถูกส่งต่อให้โมเดล Machine Learning น้ำหนักเบาแปลงเป็นพิกัดภูมิศาสตร์โลก:
-
มัธยฐานความคลาดเคลื่อนของมุมทิศ: เพียง 0.22 องศา
-
มัธยฐานความคลาดเคลื่อนของความสูง: เพียง 19 เซนติเมตร
-
ประสิทธิภาพโดยรวม: ลดความผิดพลาดรวมลงถึง 82.5% เมื่อเทียบกับเกณฑ์มาตรฐาน
การรายงานสถานการณ์ฉุกเฉินไปยังหน้าเว็บ (First Alert Telemetry)

บันทึกข้อมูล Telemetry จากการรันจริงบนระบบ แสดงโครงสร้าง JSON และเวกเตอร์การเคลื่อนที่
เมื่อตรวจพบโดรนลำแรก ระบบจะสร้างแพ็กเกจข้อมูลโทรมาตรอัตโนมัติ เพื่อส่งสัญญาณเตือนภัยฉุกเฉิน (First Alert) ไปยังศูนย์บัญชาการหรือเครือข่ายดาวเทียมทันที:
ข้อมูลตัวอย่าง
{
"timestamp": 1731478200,
"station_id": "STATION_ALPHA_RPi5",
"camera_position": { "lat": 14.305029, "lon": 101.173010, "alt": 37.2 },
"alert_type": "FIRST_DETECTION",
"objects": [
{
"track_id": 1,
"classification": "Drone",
"lat": 14.30485,
"lon": 101.17280,
"alt": 40.52,
"velocity_mps": 12.4
}
]
}
