Code Monkey home page Code Monkey logo

eye-tracker's Introduction

Eye tracker

An eye-tracking application written in Python. This program uses a modern ensemble learning method [reference below] to locate and track pupils in real time webcam images of the user's eyes. This project allowed me to practice methods of image analysis, machine learning, recursive algorithms, and intermediate features of Python.

For usage information please type: python etrack.py --help.

Features:

  • Training procedure for the algorithm using landmarked image data from the BioID face database. This method uses the OpenCV library to identify eyes on faces and prepare these sub-images with previously-landmarked pupil information. These are then clustered into groups of similar eye images using randomly-generated, statically-useful features as described by Markuš et al. This training procedure identifies good parameters for pupil location inference for new data (i.e., the webcam stream from the user). Before training, users may specify the depth of the tree and number of trees in the ensemble.
  • Saving and loading of pre-trained parameter sets in XML files.
  • Saving trained tree parameter information in Graphviz format for easy visualization of regression trees in image files.
  • Various other tuning parameter specifications.
  • Includes pre-trained parameters for a large training set -- 100 trees of depth d=10, constructed from subsamples of 14060 images. (Note that this training set is still smaller than the original paper's and the tracker has fewer features, so the tracker is somewhat less robust).

To do:

  • Finish statistical cross validation test, so that parameter choices can be assessed for statistical accuracy.
  • Add mouse control using pupils.
  • Implement boosting ensemble method.

Reference:

Markuš N, Frljak M, Pandžic IS, Ahlberg J, Forchheimer R. "Eye pupil localization with an ensemble of randomized trees," Pattern Recognition (2014). doi: 10.1016/j.patcog.2013.08.008

eye-tracker's People

Contributors

chrisjryan avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.