Notebook-based face and eye analysis experiments using MediaPipe and L2CS-Net. The repository covers landmark detection, iris geometry, depth estimation, and gaze prediction in a structured, notebook-first format.
| Notebook | Focus | Main ideas |
|---|---|---|
part1_face_landmark_detection.ipynb |
Face and eye landmark detection | MediaPipe Face Landmarker, blendshape-based blink signals |
part2_iris_analysis.ipynb |
Iris analysis and distance estimation | Pinhole-camera geometry, iris ellipse fitting, depth estimation |
part3_gaze_estimation.ipynb |
Gaze estimation | L2CS-Net inference plus landmark-derived regression features |
- Landmark extraction for face / eye regions
- Blink-related signals from MediaPipe blendshape outputs
- Camera-to-eye distance estimation from iris size and camera geometry
- Ellipse fitting with both parametric and SVD-based approaches
- Gaze-direction estimation using landmark features and PyTorch regression models
- Python 3.8+
- Google Colab or Jupyter Notebook
- Core packages:
mediapipe,opencv-python,matplotlib,numpy,Pillowtorch,torchvision,scikit-learnl2csfor Part 3
- Open the target notebook in Google Colab or Jupyter.
- Install the notebook-specific dependencies from the setup cells.
- Place the required sample face images in the working directory.
- Execute the notebook from top to bottom.
Each notebook is designed to stand on its own, but the intended progression is:
landmarks → iris geometry → gaze estimation
- This repository is best treated as an experimental notebook collection, not a packaged library.
- Part 3 depends on external L2CS-Net assets and may require additional setup beyond the notebook itself.
Apache License 2.0. See LICENSE.