| --- |
| license: mit |
| library_name: pytorch |
| tags: |
| - gaze-estimation |
| - eye-tracking |
| - mobilenetv2 |
| - webcam |
| --- |
| |
| # gazekit personal gaze models |
|
|
| Gaze-estimation models trained with [gazekit](https://github.com/ZoneTwelve/gazekit), |
| a webcam eye-tracking toolkit with a full personal training lifecycle |
| (calibration, VOR/posture collection scenarios, ambient background training, |
| clean/train/validate/evaluate/update iteration). |
|
|
| **These weights are personalized**: they were trained on one user's face, |
| one camera, and one screen. They will not work well for anyone else — treat |
| them as a reference artifact / starting checkpoint, and run the gazekit |
| pipeline to train your own. |
|
|
| ## Files |
|
|
| | file | description | |
| |---|---| |
| | `gaze_cnn.pt` | MobileNetV2 backbone (ImageNet init, first conv adapted to grayscale), two 64x48 eye crops + head pose (yaw/pitch/roll) → normalized screen (x, y). See `gazekit/cnn.py` for the exact architecture. | |
| | `gaze_model.pkl` | Linear ridge on the 19-dim "v5-combo" features (binocular iris + distance-gain + pose interactions). **Requires gazekit at commit `f3a6261` or later** — the feature transform lives in `gazekit/model.py`, the pickle only stores the fitted pipeline. | |
|
|
| ## Usage |
|
|
| ```python |
| from gazekit.cnn import CnnPredictor |
| pred = CnnPredictor("gaze_cnn.pt", screen_size=(1920, 1080)) |
| # obs comes from gazekit.tracker.FaceTracker(...).process(frame, want_crops=True) |
| xy = pred.predict(obs) |
| ``` |
|
|
| ## Training data |
|
|
| Personal dataset (private): dwell-point calibration grids, VOR head-movement |
| sweeps, multi-posture grids, screen-edge points, smooth-pursuit sweeps, and |
| ambient popup samples, cleaned by the `gazekit iterate` pipeline. |
|
|