Eye tracking is the process of measuring either the point of gaze (where the user is looking) or the motion of an eye relative to the head (Daniel,2004). In this project, users will watch simulations on the software. Combined with the functions of eye recognition and fixation point positioning, the researcher analyzes the user's eye movement trajectory and derives relevant information to obtain the different concerns of users for different simulations.
Team's Blog: https://18757670961.github.io/
- If you find the number of points in the heatmap is quite small, it mignt be the result of bad light condition. Please change a place where your face coud be clearly identified, because eye tracking accuracy is largely affected by light condition.
- When you are using this application, please make sure ONLY your whole face is in front of the camera.
- The recommended computer configurations:
- CPU: Intel i7/ AMD Ryzen7 4800H or above
- GPU: NVIDIA 2060 or above
- Hard disk: 512GB or above
- RAM: 8G or above
- Webcam: 720P or above
You may have problem in 'npm install' if you cannot reach these configurations. Please contact us if you cannot run successfully.
- This App is proven to run successfully under Windows 10 environment. However, other operating systems such as Linux, macOS haven't been proven to support this App. Please contact us before running this App if you are a user of those operating.
- Node.js 12.x and above (https://nodejs.org/en/)
- Java SE8 and above
- Python 3.8 and above
src
|
├─App.vue
│ background.js // main process (entrance)
│ main.js // renderer process (Vue initialization)
│
├─assets
│ clmtrackr.js
│ logo.png
│ rally.js // theme configuration
│ tailwind.css
│
├─components
│ Card.vue
│ Drawer.vue
│ FloatButton.vue
│ GaugeChart.vue
│ Heatmap.vue
│ LoginForm.vue
│ Logout.vue
│ Navbar.vue
│ RegisterForm.vue
│ TopBar.vue
│
├─plugins
│ vuetify.js // UI framework configuration
│
├─router
│ index.js
│
├─store
│ │ index.js
│ │
│ └─modules
│ Counter.js
│ index.js
│
├─utils
│ commonUtil.js
│ indexedDB.js // local storage
│ storeUtil.js
│ upload.js // record uploading API
│
└─views
About.vue
EyeTracking.vue
Guide.vue
Home.vue
Records.vue
Simulation.vue
Visualization.vue
npm config set registry https://registry.npm.taobao.org/
npm config set ELECTRON_MIRROR http://npm.taobao.org/mirrors/electron/
npm config set SASS_BINARY_SITE='https://npm.taobao.org/mirrors/node-sass'
npm cache clean -f
npm install
npm run electron:serve
npm run electron:build
npm run lint
|-- simulation
|-- example.py // the main function
|-- gaze_tracking
|-- calibration.py
|-- eye.py // detect eyes
|-- gaze_tracking.py
|-- pupil.py // detect pupil
|-- trained_models // a trained model provided by dlib
|-- shape_predictor_68_face_landmarks.dat
pip install -r python_requirements.txt
We use cv2.VideoCapture(0) to call the laptop camera in this version.
If you want to call external camera, please change simulation/example.py (line 11) into
webcam = cv2.VideoCapture(1)
src/simulation/test_exm.py
If you want to run the unit tests, please run the following command first
pip install pytest
src/simulation/PythonLauncherTest.java
src/simulation/SimulationLauncherTest.java
Please DO NOT run these 2 testing files directly.
If you want to run these tests, please open the files given above in the Intellij IDEA or Eclipse with Junit imported.
To import Junit package, you can use the 'junit-4.9.jar' provided in the 'simulation' folder, or you can let the IDE automatically import Junit4 for you (please refer to the instructions of the IDE you are using)
If you want to maintain our code, please refer to Maintenance Manual
doc/Team11_maintenance_manual.pdf