
Traffic Counter System — ภาพรวมการทำงาน
องค์ประกอบหลัก
| ส่วน | หน้าที่ |
|---|---|
| Config (YAML) | ตั้งค่ากล้องแต่ละตัว เช่น source, zone, threshold |
| YOLO Model | ตรวจจับและ track ยานพาหนะข้ามเฟรม |
| MySQL | บันทึก event IN/OUT พร้อม metadata |
| Snapshot | ตัดรูปยานพาหนะบันทึกลงโฟลเดอร์ |
การไหลของข้อมูล
กล้อง (USB / HLS / RTSP)
↓
camera_worker ← 1 thread ต่อกล้อง
↓ (เฟรมล่าสุด)
yolo_worker ← 1 thread ต่อกล้อง
↓ (ผลการ track)
process_counter()
↙ ↘
MySQL DB save_snapshot()
Logic การนับ
ใช้ 2 เส้น (Zone A และ Zone B) รองรับทั้งแนวนอนและแนวตั้ง
- A → B = นับ IN
- B → A = นับ OUT
- รีเซ็ตยอดนับทุกต้นชั่วโมงอัตโนมัติ
Thread ที่ทำงานพร้อมกัน
- camera_worker — ดึงเฟรมจากกล้อง (1 thread/กล้อง)
- yolo_worker_per_cam — ส่งเฟรมเข้า YOLO และนับ (1 thread/กล้อง)
- display_worker — แสดงผล grid ทุกกล้อง (optional, เปิดด้วย
debug.window: true) - Main loop — แสดงสรุปยอด IN/OUT ใน terminal ทุก 2 วินาที