WebGazer.js: Eye Tracking on the Browser
webgazer.cs.brown.edu
webgazer.cs.brown.edu
https://webgazer.cs.brown.edu/collision.html
Click around the screen where you're currently looking to calibrate
E.g. at the OS level, the pointer basically follows your gaze.
This summer I built a system that uses slight head movements for refinement, allowing hands free mousing as fast as a trackpad. However, eye trackers good enough for the system to be pleasant cost $10000+. I have ideas that would allow it to work with a $100 eye tracker, but even then it has the downside that the computer vision for your mouse will peg one core.
(Edit update: by "detectable" I mean theoretically detectable by a really good camera and software. In other words, it seems you are arguing the tech is impossible even theoretically due to some aspect of biology. Am I following you correctly there? Thanks)
Your field of vision (and focus) is much bigger than 1 degree, so any part of the image that you are "looking at" is something the brain is doing to the image as post processing, not something your eyeball is doing.
E.g. if the tracking is off (i.e. the predicted x,y coord differs from the target you had in mind with your gaze) I guess one would try to auto-correct the error by a slightly different gaze, i.e. looking slightly beneath the target. I am not sure if this is a problem or not?
We do not have this problem with the mouse, as we control it via relative speed and do not set specific x,c coords.
Maybe one could solve this by also tracking the head? E.g. make and educated guess via gaze tracking and let the user refine it with her ... nose. ;)
However! If you think outside the box, you might get a fairly accurate gaze tracker and a different GUI design to get this to work. That vision (no pun intended) is more of a long term one. An easy short term use for eye gaze use would be automatically setting GUI window focus based on eye gaze. That already might save you a keyboard-mouse switch. As long as you have no more than four windows on your screen, you can make it work with the current tech already.
And how about getting in the precision area like a finger has on a touchscreen? You think, this is possible? Because touch works pretty well, if the UI is good (big) enough ...
This coupled with web camera recognizing hand gestures e.g. http://hadi.io/gest.js/ could help grabbing user interaction inside his apps without too much hassle but right now its a janky solution compared to a real native kinect setup (I don't think its even possible to effectively connect to kinect in browser).
I think it's a really nice idea, however not yet precise enough to work for such tasks as user studies
Other than thwt, I see huge potential for this in UX studies.
Open the game and follow the mouse with your eyes while you click each 8-directional edge of the game's viewport and then click the center.
Now you can let go of the mouse (don't need to move it out of the game) and the game should follow your gaze.
This demo is impressive. It's accurate enough for me to isolate the orange ball from the cluster.
On a website, the calibration could be done in a modal overlay. "Look at this dot while clicking it wherever it appears". After then Nth click, the modal goes away and the user lands on the website ready to gaze.
I am one of the founders at xLabs and we too have been working on self calibrating real time interactive webcam eye tracking for a number of and have a number of demos and commercial products.
We'd love your feedback.. check out http://xlabsgaze.com/ (core tech) and our first commercial product https://eyesdecide.com (Design effectiveness and usabilty testing SaaS).
Our just check out one of our video here https://www.youtube.com/watch?v=kSnAfJWAhtE
Keep up the good work.
How about:
- switching focus between windows
- application selection a'la mission-control
- coarse navigation through a document via a sidebar
- real-time inventory management in a HTML5 game
- Selective zoom of embedded images
Even more fun: Atom is run inside a web browser. Imagine what you could do with eye tracking within an IDE.
You provided really good cases for the rest, but for this I can't quite picture a need (other than maybe scrolling, which is arguably faster using vim movements already). Do you have any ideas?
Minor use cases, perhaps, but something that operates intuitively has the potential to be pretty awesome.
Kind of like how keys are reused in Vim yet have similar meanings across each mode. You don't have to remember so many unique keybindings.
Some editors let you switch between panes with keybindings, but once you have more than a few or some in weird shapes, you end up needing tmux's `C-b q` pane selector. Seems like gaze could replace most of that.
Whereas these, no way at 100px precision or without external sensor (touch/mouse/etc) would this work at all nicely/without jitter. - coarse navigation through a document via a sidebar - real-time inventory management in a HTML5 game - Selective zoom of embedded images
- Zoom in so that my gaze is actually looking at distinct parts of the physical screen
- Look at the cursor while clicking a few times to train it
- Take off my glasses
- Move way closer to the camera and hold relatively still
It was a lot of hassle to get it to work but after it did work it was a lot of fun!
I was wondering if that was the problem for me, but I'm so near-sighted that if I were close enough to actually see the cursor, there's no way the camera could see my eyes to track them. :-(
I was able to greatly move the red dot when I say closer to the webcam, really opened my eyes, and moved left to right, but the action was flipped for me — looking left moved the dot right, and vice versa. (I'm using an Apple Cinema Display… I've had issues before where it automatically flips the screen around in some cases.)
Although not very accurate, it's certainly an interesting experiment.
So if you're doing the demo on the blank page, click in a couple of places around the screen (while looking there as you would normally), and you should start seeing the prediction.
advertisers. another way for them to "gauge" their reach and brand appeal. or something.
literally i feel like every new thing that comes to the browser, a marketer at a company thinks, 'how can we exploit this to put more junk into the face of other people?'
i am not against advertising, i just think most of them have no limits in terms of what they'll exploit at the expense of their own users.
I can also imagine on a lighter note this being used for games where you look to where you want to move a character (maybe blink twice for confirmation).
I can't get it to work, but even if I could I would be very hesitant to use it.