Giter Club home page Giter Club logo

pupiltracking's Introduction

PLEASE CHECK THE GITHUB FOR THE LATEST VERSION:

Paper

REQUIREMENT:

  • opencv 3.3.0
  • tensorflow 1.2.1
  • tensorflow slim
  • python 3.6

HOW TO USE IT

  1. set up opencv dir in ./detector/CMakeLists.txt:
SET("OpenCV_DIR" "<path to the /opencv/build/>")
  1. download the LPW dataset and decompress into ./LPW

  2. generate videofile.txt

python gen_videofiles.py
  1. compile detector:
cd detector
make
  1. run the detector
./detector/PupilDetection
  1. wait until PupilDetection finish

  2. download pretrained model and decompress into ./pretrain/

  3. run evaluator

python evaluator/evaluator.py
  1. check the result in ./result

Explaination of the result

Structure:

- result
    - <alpha><Is_average_filter><videonumber> (it's the result of each video, so there are 64 files like this. e.g.  0.005False60)
    - <alpha><Is_average_filter><finish time stamp>: e.g. 0.005False60time.struct_time(tm_year=2017, tm_mon=8, tm_mday=22, tm_hour=16, tm_min=12, tm_sec=26, tm_wday=1, tm_yday=234, tm_isdst=1) (it's the result of all each video)

For the result of each video:

line 1: (e.g. ./LPW/23/2.avi) is the file path of the video
line 2: (e.g. NEEDTOIMPROVE11) represent the NumberOfFrame(upperbound)-NumberOfFrame(evaluator). It's not relevant to the paper.
line 3 - line 503: (e.g. Pixcel  242: 0.999) means the accuracy(0.999) with condition that distance(point(predict),point(groundtruth))

For the result of all videos:

line 1: (e.g. NEEDTOIMPROVE11) represent the NumberOfFrame(upperbound)-NumberOfFrame(evaluator). It's not relevant to the paper.
line 2 - line 502: (e.g. Pixcel  242: 0.999) means the accuracy(0.999) with condition that distance(point(predict),point(groundtruth))

Optional: fine-tune

  1. make the dataset
python ./train_evaluator/makedataset.py
  1. train
download pretrain vgg model and put it into /train_evaluator/pretrain_vgg
python ./train_evaluator/train.py

Code reference

  • ./detector/algo.h ./detector/blob_gen.h ./detector/canny_impl.h ./detector/filter_edges.h ./detector/find_best_edge.h:We use the first part of ElSe algorithm[1], which is based on morphologic feature as one of the answer candidates.
  • ./evaluator/vgg.pyWe use VGG-16[2] architecture.
  • ./LPW/ We use part of (about 1/80) [LPW dataset] to fine-tune the network, and estimate the method on this dataset.

[1]:Fuhl, Wolfgang, et al. "Else: Ellipse selection for robust pupil detection in real-world environments." Proceedings of the Ninth Biennial ACM Symposium on Eye Tracking Research & Applications. ACM, 2016.

[2]:Simonyan, Karen, and Andrew Zisserman. "Very deep convolutional networks for large-scale image recognition." arXiv preprint arXiv:1409.1556 (2014).

pupiltracking's People

Contributors

zhuyinheng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

pupiltracking's Issues

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.