CS474: Human Computer Interaction - Modalities - Eye Tracking
Activity Goals
The goals of this activity are:- To identify alternative modalities for human-computer interaction
- To write a program that uses eye tracking for engagement
- To identify signifiers and affordances for a given application and modality
Supplemental Reading
Feel free to visit these resources for supplemental background reading material.- Filonov, S. - Tracking your eyes with Python
- Argawal, V. - Real-time eye tracking using OpenCV and Dlib
- Haar Cascade Training Data
- dlib shape68 training files
- CMake dependency download
The Activity
Directions
Consider the activity models and answer the questions provided. First reflect on these questions on your own briefly, before discussing and comparing your thoughts with your group. Appoint one member of your group to discuss your findings with the class, and the rest of the group should help that member prepare their response. Answer each question individually from the activity, and compare with your group to prepare for our whole-class discussion. After class, think about the questions in the reflective prompt and respond to those individually in your notebook. Report out on areas of disagreement or items for which you and your group identified alternative approaches. Write down and report out questions you encountered along the way for group discussion.Model 1: Eye Tracking
Download the Visual Studio installer and install the "Desktop Development for C++" module.
Alternatively:
pip install cmake wheel dlib opencv-python face_recognition numpy
Alternatively:
git clone https://github.com/davisking/dlib.git && cd dlib && python setup.py install --user --no DLIB_GIF_SUPPORT
Questions
- What kinds of applications can you think of that would benefit from eye tracking?
- How might eye tracking enhance the user experience in applications that might not traditionally incorporate it? In particular, how might eye tracking applications assist disabled persons using software?
- What are the pros and cons of using a threshold-based detection strategy? How might you automatically calibrate such a system, and how might you allow it to adapt to changing conditions over time?