Programming Project 5: Track eye pupils
DATE DUE: Wednesday, December 7, 2016
Points possible: 10 points
CS-160: Software Engineering
Instructor: Robert Bruce

OVERVIEW

For this assignment, you will write a program to determine the location of the left and right eye pupils. If pupil location is determined, it should be written to your database.

SPECIFICATIONS

You will use the pupil tracking algorithm proposed by Fabian Timm and Erhardt Barth in their article Accurate eye centre localisation by means of gradients. Tristan Hume has written and released an open-source program using this pupil tracking algorithm on github at https://github.com/trishume/eyeLike. You will download and modify Mr. Hume's software to fit into your computer vision pipeline

1. Your program should accept command line input through argc and argv. Your program will thus use argv to pass in a non-negative integer (video ID) which represents the unique identifer of an input video.

2. Your program will then query your database for the following metadata associated with the input video ID:

  • Number of frames
  • Width (pixels) of each frame (in pixels)
  • Height (pixels) of each frame (in pixels)

3. For each frame associated with the video ID in the image repository do the following:

  • Call the eye tracking function written by Mr. Hume.
  • If the location of the left eye is found, write the Cartesian (x, y) coordinates for the left eye pupil to your database along with the current frame number and video ID.
  • If the location of the right eye is found, write the Cartesian (x, y) coordinates for the right eye pupil to your database along with the current frame number and video ID.

Implementation

Mr. Hume wrote the eye tracking software in C++. The easiest solution is to modify this software such that it iterates over the appropriate number of frames for your input video. Alternately, you may modify Mr. Hume's C++ software such that you call it as an external library (i.e. returning results for each frame to your calling program written in another programming language such as Perl, Python, PHP, Java, Ruby on Rails, etc.).

SUBMITTING YOUR ASSIGNMENT

1. Please include the full names of all members of your team as a comment at the top of your application.

2. Please name your assignment programming_project_5 followed by a dot and an appropriate extension depending on the programming language used. For example, use .pl for Perl, .php for PHP, .py for Python, .cpp for C++, .c for C, etc.

LATE ASSIGNMENTS

Assignments submitted after the due date will be worth, at most, 5 points. Additional points will be deducted for programs not meeting the specification as outlined above.