Drowsiness Detection Web App adalah solusi canggih untuk mendeteksi kelelahan dan kantuk secara real-time menggunakan teknologi Computer Vision dan Artificial Intelligence. Aplikasi ini bekerja sepenuhnya di browser pengguna tanpa memerlukan instalasi khusus atau server backend, menjaga privasi data dengan menjalankan semua pemrosesan secara lokal.
- ✅ Deteksi Kantuk Real-time - Menggunakan algoritma EAR (Eye Aspect Ratio)
- ✅ 100% Client-side - Semua pemrosesan di browser, tanpa data dikirim ke server
- ✅ Multi-kamera Support - Switch antara kamera depan dan belakang
- ✅ Tema Gelap/Terang - Interface yang dapat disesuaikan
- ✅ Parameter yang Dapat Dikustomisasi - Threshold dapat diatur sesuai kebutuhan
- ✅ Sistem Alarm Visual & Audio - Peringatan dini saat terdeteksi kantuk
- ✅ Mirror Mode - Opsi untuk mencerminkan tampilan kamera
- ✅ Indikator Real-time - FPS, status wajah, dan metrik deteksi
- Download file ZIP dari repositori ini
- Ekstrak file ZIP ke folder di komputer Anda
- Buka file
index.htmldi browser modern (Chrome, Firefox, Edge) - Izinkan akses kamera ketika diminta
- Klik "Start Camera" untuk memulai deteksi
- Upload ketiga file (
index.html,styles.css,app.js) ke web hosting Anda - Akses melalui URL yang sesuai (misal:
https://domain-anda.com/drowsiness-detection/) - Pastikan server mendukung HTTPS (wajib untuk akses kamera di sebagian besar browser)
https://asmarahancur.github.io/DrowsinessDetection/- MediaPipe FaceMesh - Library machine learning untuk deteksi landmark wajah
- WebRTC - Untuk akses kamera real-time
- Web Audio API - Untuk sistem alarm audio
- Canvas API - Untuk rendering video dan visualisasi
- Modern CSS - Dengan Grid, Flexbox, dan Custom Properties
Aplikasi menggunakan EAR (Eye Aspect Ratio) algorithm:
EAR = (‖p2 - p6‖ + ‖p3 - p5‖) / (2 × ‖p1 - p4‖)
- EAR < Threshold → Mata tertutup/turun
- Consecutive Frames → Deteksi kantuk jika melebihi frame threshold
- Default: 0.18
- Fungsi: Menentukan sensitivitas deteksi mata tertutup
- Rekomendasi: 0.15-0.20 untuk kondisi normal
- Default: 30 frames
- Fungsi: Jumlah frame berturut-turut untuk konfirmasi kantuk
- Rekomendasi: 25-35 untuk mengurangi false positive
- Default: 50%
- Fungsi: Mengatur volume alarm peringatan
- Start Camera: Memulai streaming kamera dan deteksi
- Stop Camera: Menghentikan semua proses
- Switch Camera: Beralih antara kamera depan dan belakang
- Mirror Mode: Mengaktifkan/nonaktifkan efek cermin
- Test Alarm: Menguji sistem alarm audio
- Silence Alarm: Mematikan alarm yang aktif
- Parameter Sliders: Menyesuaikan threshold real-time
- Theme Toggle: Beralih antara tema gelap dan terang
- Real-time Stats: Menampilkan FPS, status kamera, dan deteksi wajah
- Chrome 80+ (Rekomendasi)
- Firefox 75+
- Edge 80+
- Safari 14+
- Browser mobile dengan dukungan WebRTC
- Kamera (Built-in atau external)
- Speaker/Audio Output (untuk alarm)
- Processor Dual-core 1.5GHz+ (Rekomendasi)
- RAM 2GB+ untuk performa optimal
- Web Browser Modern dengan dukungan:
- MediaStream API
- Web Audio API
- ES6+ JavaScript
- CSS Grid/Flexbox
┌─────────────────────────────────────────────────────────────┐
│ User Browser │
├─────────────────────────────────────────────────────────────┤
│ ┌────────────┐ ┌────────────┐ ┌─────────────────────┐ │
│ │ HTML │ │ CSS │ │ JavaScript │ │
│ │ Interface │ │ Styles │ │ (Detection Logic) │ │
│ └────────────┘ └────────────┘ └─────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ ┌──────────────────────────────────────────────────────┐ │
│ │ MediaPipe FaceMesh │ │
│ │ (via CDN - No Local Install) │ │
│ └──────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ ┌──────────────────────────────────────────────────────┐ │
│ │ WebRTC Camera Access │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
- Deteksi kantuk saat berkendara jarak jauh
- Peringatan dini sebelum microsleep terjadi
- Monitoring kondisi pengemudi real-time
- Keamanan kerja di lingkungan industri
- Prevensi kecelakaan akibat kelelahan
- Compliance dengan protokol keselamatan
- Analisis pola kantuk untuk penelitian
- Pengujian algoritma deteksi kelelahan
- Edukasi tentang bahaya mengemudi saat mengantuk
- Monitoring saat bekerja larut malam
- Alert system untuk belajar/kerja marathon
- Self-awareness tentang kondisi kelelahan
- Deteksi Wajah: >95% dalam kondisi pencahayaan baik
- EAR Calculation: Akurasi floating-point tinggi
- Response Time: <100ms dari deteksi ke alarm
- GPU Acceleration: Menggunakan WebGL untuk rendering
- Frame Skipping: Optimasi untuk perangkat rendah spesifikasi
- Memory Management: Cleanup resources saat tidak digunakan
- ✅ No Data Collection - Tidak ada data yang dikirim ke server
- ✅ Local Processing - Semua pemrosesan di browser Anda
- ✅ No Tracking - Tidak ada analytics atau tracking
- ✅ Camera Permission - Hanya akses real-time, tidak disimpan
- HTTPS Required untuk akses kamera
- Permission-based access model
- No persistent storage dari video stream
- Pencahayaan - Performa menurun dalam kondisi gelap
- Posisi Wajah - Deteksi optimal dengan wajah menghadap kamera
- Kacamata - Mungkin mempengaruhi akurasi deteksi mata
- Frame Rate - Bergantung pada kemampuan kamera dan CPU
- Gunakan dalam pencahayaan yang baik
- Pastikan wajah terlihat jelas oleh kamera
- Tes sistem sebelum penggunaan kritis
- Atur parameter sesuai kondisi lingkungan
| Masalah | Penyebab | Solusi |
|---|---|---|
| Kamera tidak aktif | Izin belum diberikan | Klik "Allow" saat diminta izin kamera |
| Alarm tidak berbunyi | Browser audio policy | Klik sekali di halaman untuk mengaktifkan audio |
| Deteksi tidak akurat | Pencahayaan buruk | Perbaiki pencahayaan area |
| FPS rendah | Spesifikasi perangkat | Kurangi resolusi kamera |
| Switch camera gagal | Kamera tidak tersedia | Pastikan perangkat memiliki multiple cameras |
Tambahkan parameter berikut ke URL untuk debug:
// Untuk logging detail
console.log('Debug mode aktif');
// Untuk memeriksa status
if (!navigator.mediaDevices) {
alert('Browser tidak mendukung WebRTC');
}// Inisialisasi sistem
initApp() → void
// Kontrol kamera
startCamera() → Promise<void>
stopCamera() → void
switchCamera() → Promise<void>
// Deteksi kantuk
computeEAR(landmarks, indices) → {ear: number, pts: Array}
updateEARDisplay(value) → void
// Sistem alarm
startAlarm() → void
stopAlarm() → void
testAlarm() → voidthemeToggle- Perubahan temaearThresholdInput- Adjust EAR thresholdframeThresholdInput- Adjust frame thresholdalarmVolumeInput- Adjust alarm volume
| Browser | Status | Notes |
|---|---|---|
| Chrome | ✅ Full Support | Versi 80+ |
| Firefox | ✅ Full Support | Versi 75+ |
| Edge | ✅ Full Support | Versi 80+ |
| Safari | Beberapa API limited | |
| Opera | ✅ Full Support | Versi 67+ |
| Mobile Chrome | ✅ Full Support | Android 8+ |
| Mobile Safari | iOS 14.3+ |
Aplikasi ini tersedia di bawah lisensi MIT License, yang berarti:
- ✅ Gratis digunakan untuk tujuan komersial dan non-komersial
- ✅ Dapat dimodifikasi sesuai kebutuhan
- ✅ Dapat didistribusikan ulang
- ✅ Tanpa garansi - penggunaan atas risiko sendiri
Jika menggunakan kode ini dalam proyek Anda, pertimbangkan untuk:
- Memberi credit kepada pengembang asli
- Menyertakan lisensi asli
- Tidak menyatakan sebagai karya Anda sendiri
- Fork repositori ini
- Buat branch untuk fitur baru (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add some AmazingFeature') - Push ke branch (
git push origin feature/AmazingFeature) - Buka Pull Request
- Machine Learning model improvement
- Additional detection metrics (yawn detection, head pose)
- Multi-language support
- Export data functionality
- Mobile app version
Jika mengalami masalah:
- Cek Troubleshooting section di atas
- Verifikasi persyaratan sistem
- Test di browser berbeda
- Clear cache dan coba lagi
Laporkan bug dengan menyertakan:
- Browser dan versi
- Sistem Operasi
- Steps to reproduce
- Screenshot jika memungkinkan
- Multi-wajah detection
- Export laporan PDF
- Cloud sync (opsional)
- Advanced analytics dashboard
- Mobile-responsive enhancements
- Offline mode support
- Additional language support
- Plugin system for extensions
- AI model customization
- Real-time collaboration
- API for third-party integration
- Enterprise features
- Real-Time Eye Blink Detection using Facial Landmarks - Soukupová & Čech, 2016
- Drowsiness Detection System - IEEE Transactions on Intelligent Transportation Systems
- MediaPipe Face Mesh - Google Research, 2020
- ISO 26262 - Functional safety for road vehicles
- NHTSA Guidelines - Driver distraction and fatigue
- EU General Safety Regulation - Vehicle safety standards
