ลงเวลา & สแกนใบหน้า
ระบบลงเวลาเข้า-ออกงานด้วย Face Recognition พร้อมตรวจสอบตำแหน่ง GPS (Geofence)
วิธีการลงเวลา
ระบบรองรับการลงเวลาหลายวิธี:
| วิธีการ | รายละเอียด | ผู้ใช้ |
|---|---|---|
| Face Recognition | สแกนใบหน้าผ่านกล้อง Webcam หรือกล้องหน้าสมาร์ทโฟน | พนักงานทุกคน |
| Public Clock | หน้า Self-service สำหรับลงเวลาด้วยตนเอง | พนักงานทุกคน |
| Manual Entry | บันทึกเวลาด้วยมือ (สำหรับกรณีพิเศษ) | Admin / HR |
ขั้นตอนลงเวลาด้วย Face Recognition
เปิดหน้าลงเวลา
คลิกเมนู "ลงเวลา" หรือปุ่ม "Clock In/Out" ที่แดชบอร์ด
อนุญาตเข้าถึงกล้อง
เบราว์เซอร์จะขออนุญาตเปิดกล้อง คลิก "Allow" (ครั้งแรกเท่านั้น)
ตรวจสอบตำแหน่ง GPS
ระบบจะตรวจสอบว่าคุณอยู่ในพื้นที่ Geofence ที่กำหนด
สแกนใบหน้า
หันหน้าตรงเข้ากล้อง ระบบจะตรวจจับและเปรียบเทียบใบหน้าอัตโนมัติ
บันทึกสำเร็จ
เมื่อยืนยันตัวตนผ่าน ระบบจะบันทึกเวลา รูปถ่าย และตำแหน่ง GPS
ขั้นตอนการทำงาน (Flow)
เปิดกล้อง
→
ตรวจ GPS
→
สแกนใบหน้า
→
จับคู่ตัวตน
→
บันทึกเวลา
Face Recognition — รายละเอียดเทคนิค
ระบบรองรับ Face Recognition 2 โหมด:
Client-Side (face-api.js)
- ประมวลผลในเบราว์เซอร์โดยตรง ไม่ส่งข้อมูลไปเซิร์ฟเวอร์
- ใช้โมเดล SSD MobileNet V1 สำหรับตรวจจับใบหน้า
- ใช้ Face Landmark 68 จุด สำหรับระบุตำแหน่งใบหน้า
- สร้าง 128-Dimension Face Descriptor สำหรับเปรียบเทียบ
Server-Side (Python API — ตัวเลือกเสริม)
- ใช้ library
face_recognition(dlib) ที่มีความแม่นยำสูง - ทำงานบน Flask API port 5050
- ระบบจะ Fallback ไปใช้ Client-Side อัตโนมัติหากไม่พร้อม
| พารามิเตอร์ | ค่า |
|---|---|
| ค่า Threshold การจับคู่ | 0.6 (Euclidean Distance) |
| ความมั่นใจขั้นต่ำ | 0.5 (Min Confidence) |
| ขนาดใบหน้าขั้นต่ำ | 80px |
| อัตราตรวจจับ | 5 FPS |
Geofence — การตรวจสอบตำแหน่ง
ระบบใช้ GPS ตรวจสอบว่าพนักงานอยู่ในพื้นที่ที่กำหนดก่อนอนุญาตให้ลงเวลา:
- พิกัดศูนย์กลาง — ละติจูดและลองจิจูดของสถานที่ทำงาน
- รัศมี (เมตร) — ระยะห่างสูงสุดที่อนุญาต
- การคำนวณ — ใช้สูตร Haversine เพื่อคำนวณระยะทาง
สามารถตั้งค่า Geofence แยกแต่ละสาขาได้ที่ ตั้งค่าระบบ → Geofence Locations
ข้อมูลที่บันทึก
ทุกครั้งที่ลงเวลา ระบบจะบันทึกข้อมูลดังนี้:
| ข้อมูล | รายละเอียด |
|---|---|
| เวลาเข้า / ออก | วันที่และเวลาที่แน่นอน |
| รูปถ่าย | ภาพถ่ายจากกล้องขณะสแกน |
| ตำแหน่ง GPS | ละติจูด, ลองจิจูด |
| วิธีการลงเวลา | Face Recognition / Manual / Public Clock |
| ค่า Face Match | ค่าความเชื่อมั่นในการจับคู่ใบหน้า |
| สถานะ | ตรงเวลา / มาสาย (จำนวนนาที) / ออกก่อนเวลา |
| OT | จำนวนนาทีทำงานล่วงเวลา (คำนวณอัตโนมัติ) |
รายงานการลงเวลา
Admin/HR สามารถดูรายงานสรุปการลงเวลาได้ที่เมนู "รายงานการลงเวลา":
- กรองตามช่วงวันที่ แผนก พนักงาน
- ดูสถิติมาสาย ขาดงาน ออกก่อน
- ดูภาพถ่ายประกอบการลงเวลา
- ส่งออกรายงานเป็นไฟล์
บันทึกเวลาด้วยมือ (Manual Entry)
สำหรับกรณีพิเศษที่ไม่สามารถสแกนใบหน้าได้ Admin/HR สามารถบันทึกเวลาด้วยมือ:
- เลือกพนักงาน
- กำหนดวันที่และเวลาเข้า-ออก
- ระบุเหตุผล (เช่น ลืมสแกน, ระบบขัดข้อง)
การบันทึกด้วยมือต้องมีสิทธิ์
attendance.create เท่านั้น