You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update README, docs, and paths for new dependency structure
Rewrite README Requirements and Installation sections to reference
requirements.txt as the primary install method. Remove references to
the legacy embedded gaze-est/ venv (no longer shipped). Update all
remaining old paths (Plugins/GazeTracking/MGaze/ → GazeTracking/
Backends/MGaze/) in .gitignore, test_pipeline.yaml, GUI, model_factory,
THIRD_PARTY_LICENSES, and install_dependencies.py. Bump version
reference to v0.3.0-beta.
Copy file name to clipboardExpand all lines: README.md
+38-25Lines changed: 38 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# MindSight — Unified Eye-Gaze Intersection Tracker for Behavioural Neuroscience Research
2
2
3
-
> **Beta Release** — This is a pre-release version (v0.2.0-beta). APIs and features may change. Bug reports and feedback are welcome via [GitHub Issues](https://github.com/kylen-d/mindsight/issues).
3
+
> **Beta Release** — This is a pre-release version (v0.3.0-beta). APIs and features may change. Bug reports and feedback are welcome via [GitHub Issues](https://github.com/kylen-d/mindsight/issues).
All dependencies are listed in `requirements.txt`. Key packages:
101
+
100
102
```
101
-
opencv-python
102
-
numpy
103
-
torch
104
-
torchvision
105
-
onnxruntime # or onnxruntime-gpu for CUDA
106
-
ultralytics # YOLO / YOLOE
107
-
uniface # RetinaFace face detector
108
-
PyQt6 # GUI only
103
+
torch / torchvision # Deep learning
104
+
onnxruntime # ONNX inference (or onnxruntime-gpu for CUDA)
105
+
ultralytics # YOLO / YOLOE object detection
106
+
clip # Ultralytics CLIP fork (visual prompts)
107
+
uniface # RetinaFace face detector
108
+
timm # PyTorch Image Models (UniGaze backend)
109
+
opencv-python # Computer vision
110
+
matplotlib # Charts and dashboard rendering
111
+
pandas # Data output
112
+
PyQt6 # GUI
113
+
PyYAML # Pipeline configuration
114
+
tqdm # Progress bars
115
+
Pillow # Image handling
109
116
```
110
117
111
-
> **Note:** The `gaze-estimation` submodule ships its own virtual environment (`gaze-est/`). You do **not** need to activate it separately — MindSight inserts the `gaze-estimation/` directory into `sys.path` automatically at runtime.
### 2. Create and activate a virtual environment (recommended)
@@ -132,25 +139,31 @@ source .venv/bin/activate # macOS / Linux
132
139
### 3. Install dependencies
133
140
134
141
```bash
135
-
pip install opencv-python numpy torch torchvision
136
-
pip install onnxruntime # CPU
137
-
# pip install onnxruntime-gpu # NVIDIA GPU
138
-
pip install ultralytics
139
-
pip install uniface
140
-
pip install PyQt6 # GUI only
142
+
pip install -r requirements.txt
141
143
```
142
144
143
-
**macOS (Apple Silicon) — CoreML acceleration:**
145
+
**GPU acceleration (optional):** Install PyTorch with CUDA support *before* running the above — see [pytorch.org/get-started](https://pytorch.org/get-started/locally/). For Apple Silicon CoreML, replace `onnxruntime` with `onnxruntime-silicon`.
146
+
147
+
Alternatively, use the platform-aware helper:
144
148
145
149
```bash
146
-
pip install onnxruntime-silicon# or onnxruntime with CoreML support
150
+
python install_dependencies.py # auto-detects CUDA / Apple Silicon
147
151
```
148
152
149
153
### 4. Download gaze model weights
150
154
151
-
The default gaze model is `gaze-estimation/weights/mobileone_s0_gaze.onnx`. Other ONNX and PyTorch weights (`resnet18`, `resnet34`, `resnet50`) are already included in the `gaze-estimation/weights/` directory.
155
+
MGaze weights are stored in `GazeTracking/Backends/MGaze/gaze-estimation/weights/`. Download them with:
156
+
157
+
```bash
158
+
cd GazeTracking/Backends/MGaze/gaze-estimation
159
+
bash download.sh
160
+
```
161
+
162
+
For L2CS-Net, download weights to `GazeTracking/Backends/L2CS/weights/` and pass the path via `--l2cs-model`.
163
+
164
+
For Gazelle, download a checkpoint separately and pass it via `--gazelle-model`.
152
165
153
-
To use the Gazelle backend, download a checkpoint separately and pass it via `--gazelle-model`.
166
+
For UniGaze, install separately (`pip install unigaze`) and pass the model variant via `--unigaze-model`.
|`--classes`|`None`| Filter YOLO to specific class names, e.g. `--classes person knife`|
280
293
|`--blacklist`|`[]`| Suppress specific YOLO classes, e.g. `--blacklist chair`|
@@ -468,7 +481,7 @@ When `--save` is passed, an annotated `.mp4` is written alongside the source, or
468
481
|**MGaze ONNX** (default) |`--mgaze-model` with `.onnx` path | Fastest; uses CoreML on Apple Silicon, CUDA on NVIDIA, CPU otherwise |
469
482
|**MGaze PyTorch**|`--mgaze-model` with `.pt` + `--mgaze-arch`| Requires `--mgaze-arch` to identify the architecture |
470
483
|**L2CS-Net**|`--l2cs-model <weights.pkl>`| ResNet50 with dual classification heads; ~3x more accurate than MGaze on MPIIGaze (3.92 vs ~11 deg MAE) |
471
-
|**UniGaze** (optional) |`--unigaze-model <variant>`| ViT + MAE pre-training; best cross-dataset accuracy (~9.4 deg Gaze360). Requires `pip install unigaze timm==0.3.2` (non-commercial license) |
484
+
|**UniGaze** (optional) |`--unigaze-model <variant>`| ViT + MAE pre-training; best cross-dataset accuracy (~9.4 deg Gaze360). Requires `pip install unigaze` separately (non-commercial license) |
472
485
|**Gazelle**|`--gazelle-model <ckpt.pt>`| Scene-level DINOv2 model; processes all faces in a single forward pass; outputs a gaze heatmap rather than pitch/yaw |
0 commit comments