Permalink
Please sign in to comment.
BIN
EyeTab.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
| @@ -1,32 +1,38 @@ | ||
| # EyeTab | ||
| -EyeTab is a __3D model-based gaze tracker__ that runs entirely on unmodified commodity tablet computers, taking their limited computational and sensor resources into account. | ||
| +_EyeTab_ is a __3D model-based gaze tracker__ that runs entirely on unmodified commodity tablet computers, taking their limited computational resources and low quality cameras into account. | ||
| + | ||
| + | ||
| The code is available in two forms: | ||
| -* A _basic_ version which runs on a supplied example video file. This should give you an idea of the system's operation. | ||
| -* An _extended_ version for real-time operation on a _Microsoft Surface Pro 2_. Unfortunately camera APIs are non-trivial, so this is not guaranteed to work on other tablet devices. | ||
| +* `EyeTab` – A demonstration version which runs on a supplied example video file. | ||
| +* `EyeTab_SP2` – An interactive version developed for a _Microsoft Surface Pro 2_. This should also work on other devices with small tweaks. | ||
| ## System overview | ||
| -# Deployment instructions | ||
| +We track gaze by modelling the iris as a 2D ellipse in an image, and _back-projecting_ this to a 3D circle, getting the real-world position and orientation of the iris. We take the normal vector of this to be the gaze direction. | ||
| -EyeTab is written in Visual C++, a small extension of C++ which includes ... It should also work fine as generic C++ with minor replacements of VC++ code. | ||
| +The system has three main components: | ||
| -I chose not to include Visual Studio _solution_ and _project_ files as these will vary depending on how your dependency installations are laid out. | ||
| +1. We first precisely find regions-of-interest for the eyes in an image. | ||
| +2. Then we robustly fit a 2D ellipse to each _limbus_ – the boundary between iris and sclera. | ||
| +3. We finally back-project these to 3D circles, and intersect the circle normals with the screen for a point-of-gaze. | ||
| + | ||
| +# Deployment instructions | ||
| -A very rough guide for setting this code up from scratch: | ||
| +A rough guide for setting this code up from scratch: | ||
| -1. Make a new empty console application in Visual Studio. | ||
| -2. Correctly include, link, and input the system dependencies. | ||
| -3. Copy the source, header and resource files into your empty project. | ||
| +1. Open the solution file `EyeTab.sln` in Visual Studio. I used VS2012. | ||
| +2. Add dependencies to Visual Studio' _Additional include directories_ field, _Additional library directories_ field, and as _Additional input_ in the linker. | ||
| +3. Ensure the required `.dll`s can be found on your `PATH` or in Visual Studio's debugging environment. | ||
| ## Dependencies | ||
| The system has several dependencies: | ||
| -* [OpenCV](http://jquery.com/) - a multi-purpose computer vision library | ||
| -* [TBB](http://jquery.com/) - for multi-threading | ||
| -* [Eigen](http://jquery.com/) - provides simple vector maths | ||
| +* [OpenCV](http://opencv.org/) – a multi-purpose computer vision library | ||
| +* [TBB](https://www.threadingbuildingblocks.org/) – for parellization | ||
| +* [Eigen](http://eigen.tuxfamily.org/index.php?title=Main_Page) – provides vector maths | ||
| -In addition, the SP2 version of the system depends on [VideoInput](http://jquery.com/) for providing high-resolution access to the front-facing camera. OpenCV's camera API is broken and does not support this. | ||
| +In addition, the SP2 version of the system depends on [VideoInput](// see: http://www.codeproject.com/Articles/559437/Capturing-video-from-web-camera-on-Windows-and) for providing high-resolution access to the front-facing camera. OpenCV's camera API is broken and does not support this. This library `videoInput.lib` is supplied. |
0 comments on commit
5cbd2fe