CS7322: Computer Vision II: Project Progress Report


Head Tracking using an Ellipsoidal Model

Drew Steedly


The Idea:

I'm going to compile the head tracking code from the "Motion Regularization for Model-based Head Tracking"  on the SGI as a first step. I then want to port it to the PC platform.  My goal in porting it is to make the code easy to use as a plug in feature for future applications.
 
After wading through all the head tracking code on the SGI and the optical flow code on the PC, I've decided that I will not try to use the optical flow code on the PC.  The SGI code assumes that you have both the original sequence and the optical flow sequence stored as raw files that it can read.  It also assumes that you have the ellipsiod and the ellipsoids initial parameters stored as text files. Ideally, I would like to have the program grab the video input from either an AVI file or a video capture card. It would then send it through a routine to generate the optical flow.

To make sure I can get the project done in time, I will use the same input files that the SGI code uses (original sequence and precomputed flow sequence in raw format). If I have time at the end (ha ha), I'll see if I can hack Arno's code in. I have been able to convert quite a few of the classes that the SGI code uses (SuMatrix etc) and I don't forsee any huge problems with converting the rest of the code.

After I get all the code working, I should be able to use the head postion parameters to determine if someone is nodding "yes" or "no".

I've finally gotten all the files together that the SGI code requires and have been able to run it (thanks Tony) and expect to have the head tracking code running on these same files on the PC by the end of the week.

Once I get the the rest of the basic head tracking code ported over, it should be pretty trivial to tell if someone is nodding in the sequence and which way they are nodding. The code spits out the parameters as angular offsets from the initial frame. Therefore, a "yes" nod will have only its corresponding angle parameter oscillating.  A "no" nod will have only its corresponding angle parameter oscillating.  I haven't decided how detailed the nod detection should be. I plan on starting with just a simple thresholding approach and look for a specific state sequence. If that doesn't work very well, I'll have to modify the approach (hmm...maybe I could apply the periodic motion detectors from our reading)

Approach:

The majority of the algorithm will transfer easily to the PC platform, and the interface conversion will require the majority of the time.

Proposed Time-line:

Date Progress Task Comments
4/27-5/4 Done Copy the SGI code  
  Done Start compiling on the SGIs  
  Done Correlate each function to an algorithm in the paper and each object to a variable in the paper.  
5/4-5/11  Done Finish getting the code to compile on the SGIs  
   Done Decide what parts of the code need the most work and refine this time-line.  
   Done Start porting the code to the PC  
5/11-5/18  IP Start evaluating the performance of the code on the SGIs  
   IP Work on porting the code to the PC  
   Done Write progress report  
5/18-5/25   Finish porting the code to the PC  
    Evaluate the performance of the code on the SGIs  
5/25-6/1   Refine the PC code and re-evaluate  
    Write up project  
6/3   Turn in and present project