Eaglearn adalah sistem monitoring fokus real-time untuk aktivitas belajar/kerja berbasis webcam (gaze, head pose, micro-expressions, posture, dan emotion) dengan UI live.
- Belajar mandiri: deteksi distraksi, drowsiness, dan pola fokus
- Kelas daring: observasi engagement secara non-intrusif
- Deep work: pantau fokus dan mental effort selama sesi
- Face & eye tracking (MediaPipe FaceMesh + iris)
- Head pose (yaw/pitch/roll) + rule-based stress/confusion/drowsiness
- Focus score + time tracking (focused/unfocused time)
- Calibration gaze (wizard) + kompensasi head pose sederhana
- Opsi pembalikan sumbu Y gaze (
eye_tracking.invert_y) untuk device tertentu - Logging metrik sesi (JSONL) + tombol “Simpan Log”
- Mode pause (privacy)
Browser UI (templates/index.html)
├─ WebSocket: state_update + frame_update
└─ REST: /api/session/*, /api/state, /api/environment, /api/logs/*
Flask + SocketIO (app.py)
└─ ImprovedWebcamProcessor (improved_webcam_processor.py)
├─ FaceMeshProcessor (mediapipe_processors/face_mesh_processor.py)
├─ PoseProcessor (mediapipe_processors/pose_processor.py)
├─ DeepFaceEmotionDetector (mediapipe_processors/deepface_emotion_detector.py)
└─ CalibrationManager (calibration.py)
Skenario pre-release beta memakai .venv_gpu untuk menghindari mismatch environment.
.\run_eaglearn.batAplikasi berjalan di:
- Web:
http://localhost:8080
Alternatif minimal:
.\run_app.batLihat INSTALL.md.
- Konfigurasi utama: config.yaml
- Contoh env: .env.example
Pengaturan penting:
- Jika arah top/bottom terbalik: ubah
eye_tracking.invert_y(default:true) - Threshold fokus:
focus.focused_thresholddanfocus.distracted_threshold
POST /api/session/startPOST /api/session/stopGET /api/stateGET /api/environmentGET /api/logs/metrics/download
WebSocket:
state_updateframe_update
File yang disimpan di folder logs/:
app_YYYYMMDD.log: log aplikasi Flask (rotating)metrics_<session_id>.jsonl: snapshot metrik per ~1 detik (bisa diunduh viaGET /api/logs/metrics/download)
File non-log yang relevan:
calibrations/<user_id>.json: data kalibrasi gaze
UI tidak update?
├─ cek env indicator: GPU/torch/VLM/py
├─ reload halaman
├─ cek camera: izin kamera + device index
└─ lihat logs/app_YYYYMMDD.log
Kamera hitam?
├─ ganti backend camera: dshow/default
├─ tutup aplikasi lain yang pakai webcam
└─ restart aplikasi
FPS rendah?
├─ turunkan resolusi kamera
├─ naikkan frame_skip_base
└─ pastikan jalan pakai .venv_gpu
Troubleshooting lengkap: docs/TROUBLESHOOTING.md
Dokumen operasional VLM: docs/VLM_OPERATIONAL.md
- TensorFlow GPU di Windows sering tidak tersedia (gpus:
[]), sementara PyTorch CUDA tetap bisa aktif. - VLM bersifat opsional dan membutuhkan dependency tambahan (
transformers).
pytest -qruff check .
mypy app.py improved_webcam_processor.py state_manager.py mediapipe_processors/face_mesh_processor.py- PR dan issue diterima. Sertakan langkah reproduksi, log, dan spesifikasi perangkat.
Lihat LICENSE.