File size: 1,884 Bytes
6709ff1
 
 
 
 
 
 
 
 
 
 
 
 
 
1b83c9c
6709ff1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# =============================================================================
# InsightUX — pinned requirements
#
# Python 3.11 is REQUIRED. mediapipe's legacy solutions.face_mesh API (which
# this project depends on for face landmarks) does not exist on newer
# mediapipe builds for Python 3.12+.
#
# Install with:
#     pip install -r requirements.txt
# =============================================================================

# --- Core CV / inference ---
opencv-python==4.10.0.84
mediapipe==0.10.18
onnx==1.16.2
onnxruntime==1.19.2
numpy==1.26.4
scipy==1.13.1
Pillow==10.4.0

# --- Screen capture / automation ---
pyautogui==0.9.54

# --- pywebview: PINNED, DO NOT UPGRADE WITHOUT TESTING ---
# Newer pywebview versions (5.x+) have a bug in their Windows WinForms
# backend that triggers an infinite recursion walking the window's
# accessibility tree, freezing the entire window and flooding the console
# with:
#     AccessibilityObject.Bounds.Empty.Empty.Empty.Empty...
# These two versions are the confirmed-working combination — install exactly
# these, not "latest":
pywebview==4.4.1
pythonnet==3.0.3

# --- Optional: calibration fine-tuning ---
# calibrate.py degrades gracefully and skips fine-tuning if torch is absent,
# so this is only needed if you want the fine-tuning step during calibration.
torch==2.4.1
torchvision==0.19.1

# --- Optional fallback GUI backend ---
# If the pywebview freeze happens even after pinning the versions above
# (rare — usually caused by Xbox Game Bar or another accessibility-hooking
# overlay app running in the background), install these and change the last
# line of browser_session.py from:
#     webview.start(debug=True)
# to:
#     webview.start(gui='qt', debug=True)
# Qt does not use the buggy WinForms accessibility chain, so this class of
# freeze cannot happen with it.
# PyQt5==5.15.10
# PyQtWebEngine==5.15.6