Chris Pollett > Students >
Wallun

    ( Print View )

    [Bio]

    [Project Blog]

    [CS297 Proposal]

    [Del1]

    [Del2]

    [Del3]

    [Del4]

    [CS297Report-PDF]

    [CS298Proposal]

    [CS298Presentation-PDF]

    [CS298Report-PDF]

    [Project Source]

                          

























CS297-298 Project News Feed

Report turned in
   (Posted on Wed, 07 Dec 2005 21:03:38 PST .)
Just turned in report to 
committee and front office.
   
Awaiting reservation of room for 
thesis defense.


Draft completed
   (Posted on Sat, 03 Dec 2005 00:01:49 PST .)
Done with writing project draft.

Start working on presentation slides.

Need to talk to committee members 
next Monday.

Probably schedule defense week after 
next week.
   


Report 90% complete
   (Posted on Thu, 01 Dec 2005 18:23:30 PST .)
Turned in draft to Dr. Pollett 
for prelim proofreading for 
grammar and stuff.

Need to perform one last test 
that assigns more than one 
training for a given person.  The 
idea is to try and project an 
image near a cluster of training 
images that has the desired aged 
traits.

Last thing to do is to complete 
abstract and conclusion portion 
of report and I'm done.

Awaiting proofreading corrections 
by Dr. Pollett and need to make 
changes accordingly.
   


75% done with project report
   (Posted on Thu, 10 Nov 2005 13:07:06 PST .)
Experimented with HSI encoding of 
training images and determined 
that it bought us no benefit; 
this is because you cannot 
separate the intensity values 
from the hue and saturation 
values; in other words, you 
cannot just use saturation and 
hue values with a fixed intensity 
value.

Nearing completion of project 
draft report.

Final thing to do is to generate 
tests for program and have human 
subjects evaluate the performance 
of the program
   


40+ pages into cs298 report
   (Posted on Sun, 06 Nov 2005 15:45:05 PST .)
Continue to slog through 40+ 
pages of project report.
   
Need to generate experiments for 
rgb and hsi image encoding and 
get test results from 6 human 
subjects

Generate results for colorization 
application


Create experiments to test program
   (Posted on Thu, 27 Oct 2005 11:34:58 PDT .)
After discussion with Dr. 
Pollett, will do the following:

1) Reduce size of eigenface 
during training to reduce 
computation time

2) Experiment with colorization 
application where instead of 
training with <original, aged> 
image pairs, train with <gray, 
colored> images; the idea is to 
train the PCA classifier 
to "colorize" grayscale images; 
basically taking a gray image and 
adding color to it

3) Add HSI color model research 
and experimental data into report
   
4) Continue to slog away at the 
report


CS298 program code complete
   (Posted on Thu, 20 Oct 2005 21:35:42 PDT .)
Completed code for CS298

1) Added convex hull code to 
follow as closely as possible the 
outline of the features (eyes, 
nose, mouth).

2) Added edge detection, low pass 
filtering (smoothing), and 
principal components truncation.

3) Obtained sufficient number of 
images to start testing program 
and generating experiments, 
results, and statistics.

4) Create tests where a set of 
test and aged images are to be 
matched up by human test 
subjects; the goal is to see how 
well the program performs 
relative to human perception.

5) Start writing thesis report   


Refine program and input data
   (Posted on Thu, 29 Sep 2005 09:18:57 PDT .)
Will also refine GUI to be more user-friendly.

Categorize training data with respect to comparable age ranges
   


Incorporated Reconstruction code
   (Posted on Thu, 29 Sep 2005 09:15:26 PDT .)
Results of reconstruction code 
show that color is preserved. But 
it is apparent that some sort of 
smooting needs to be done to 
reduce the outlines where the 
trained features are put back in.

Will also attempt to try training 
the whole face, taking the 
features out of the whole trained 
face, and then plugging those 
back into a trained face with 
features taken out (that is, 
train on a face with selected 
regions blackened out).
   


Title for BLOG entry.
   (Posted on Tue, 20 Sep 2005 11:11:34 PDT .)
Cleaned up code

"Object-orientized" code to be 
more modular

Added code to calculate 
eigenfeatures

Continue to work on code to 
construct aged images
   


Updated PCA code
   (Posted on Tue, 13 Sep 2005 11:19:24 PDT .)
Updated code to incorporate 
neural net to track face, eyes, 
nose, and mouth; makes best 
attempt to put boxes around these 
features

Start working on code to train 
eigen-eyes, eigen-nose, eigen-
mouth.

Neural net will do the bulk work 
of tracking the features, but 
will add code to allow user to 
select specific features
   


Updates for PCA program after discussion with Dr. Pollett
   (Posted on Thu, 08 Sep 2005 11:11:47 PDT .)
After meeting with Dr. Pollett, 
it was decided to use the 
existing neural net code to 
locate the features on faces, and 
use that information to extract 
the features to do PCA training.

Each feature will be edge 
detected and a minimum bounding 
box calculated to get the most 
accurate bounding box around a 
feature.

I have to scale back my progress 
to about 25% functional 
completion.
   


Started implementation of feature-based PCA code
   (Posted on Tue, 06 Sep 2005 10:01:57 PDT .)
About 75% done with PCA 
reconstruction code for CS298.

Hopefully reconstructed face 
comes out OK for feature-based program.

Right now the faces are not 
aligned very well.

Need to look for methods of face 
detection to locate eyes, nose, 
and mouth; neural net maybe 
(which requires a massive amount 
of training data, which could be 
a project in itself

Turn in CS 298 proposal


Work for CS 297 complete
   (Posted on Thu, 19 May 2005 11:54:04 PDT .)
1) Uploaded deliverables 1 
through 4 with Dr. Pollett's help.

2) Turned in CS 297 report.

3) Need to look for committee 
members.

4) Start research into feature-
based extraction, processing, and 
reconstruction of faces.

5) Need a vacation; probably 
going to Vegas shortly after 
semester ends.
   


Working on Deliverable 3 and CS 297 report
   (Posted on Wed, 04 May 2005 12:59:29 PDT .)
1) Commenting code for 
Deliverable 3.

2) Preparing template for 
deliverable 3.

3) Gathering material for, and 
finalizing CS 297 report.

4) Start working on Deliverable 4 
simultaneously as material is 
also in report.
   


Working on Deliverable 3
   (Posted on Sun, 10 Apr 2005 17:05:41 PDT .)
1) Currently working on 
implementing shape context align 
program.

2) The idea is to use edge 
detection algorithms to strip an 
image down to its boundaries.

3) Then randomly sample the edge 
detected image.  Then 2 images 
are point matched by forming a 
bipartite graph and solving the 
point correspondence between the 
2 sampled edge detected images 
using the Hungarian algorithm.

4) The corresponded images are 
then aligned through a least 
squares method.

5) The bottom line is to take two 
images and try to align them.  
And in the case of face images, 
we want to align a template face 
image with a test face image to 
try locate features on the test 
face image.
   


Updated deliverable 1 and 2
   (Posted on Sun, 27 Mar 2005 00:14:57 PST .)
1) Haven't blogged for a while so 
I thought I'd write something.

2) Updated face recognition 
program by writing my own simple 
image viewer.  Before I was using 
an image viewer that I downloaded 
from the web.  I figured that 
later on I'm going to have to 
write my own image viewer 
anyway.  So this was good 
practice for me.

3) Commented Python scripts for 
better readability.

4) Did some research on feature 
extraction methods on face and 
decided that one method is to use 
edge detection methods to strip a 
training image and test image 
down to edges between image 
regions.  Then take samples of 
pixels from the edges of both 
images and form a bipartite 
graph.  Then solve the bipartite 
graph using the Hungarian 
algorithm for the best positional 
match between the two images.
   


Updated Python scripts
   (Posted on Wed, 16 Mar 2005 13:53:54 PST .)
1) Updated Python scripts to 
generated concatenated face 
images.

2) The idea is to concatenate a 
young face alongside an age 
enhanced image to form a training 
image. Then a test image is 
created by concatenating a young 
image with a blank dark image. 
Hopefully through successful 
training and image 
reconstruction, an appropriate 
image will appear in the blank 
dark side of the image.

2) Used face recognition program 
to train on concatenated images.

3) Results were varied. Some 
images were well reconstructed, 
while others were more blurry and 
fuzzy.
   


Completed Deliverable 1
   (Posted on Mon, 14 Mar 2005 11:45:58 PST .)
1) Finished packaging deliverable 
1 for turn-in.

2) Code for deliverable 2 
complete.

3) Continue to test images 
obtained from missing children's 
website.

4) Package deliverable 2 up for 
turn-in.

5) Start to look into age-
prediction with PCA.
   


Updated program to generate and recognize image differences
   (Posted on Wed, 09 Mar 2005 12:14:44 PST .)
1) Updated Python scripts to 
generate square difference of 
aged and un-aged .pgm image files

2) Updated face recognition 
program to train and recognize on 
squared difference of aged and un-
aged images

3) Commented code for face 
recognition program and Python 
scripts

4) Updated slides to reflect 
changes to code and new test 
results

4) Started to add stuff into 
deliverable 1 and deliverable 2 
templates
   


Meeting with Dr. Pollett
   (Posted on Tue, 01 Mar 2005 21:23:25 PST .)
1) Met with Dr. Pollett to 
discuss current face recognition 
results

2) Conclusion is that it should 
not be surprising for results to 
be so bad since we are 
comparing "apples and oranges" by 
trying to recognize original 
faces from enhanced faces.

3) Dr. Pollett suggested that 
instead of training the PCA 
classifier on just the non-
enhanced images, train the 
classifier with the squared 
difference between the enhanced 
and non-enhanced images to obtain 
a kind of normalized image.  And 
then do pattern recognition with 
image differences instead.

4) We also talked about improving 
the image preprocessing portion 
of the recognition process by 
somehow doing PCA training with 
the individual eyes, mouth, and 
nose as a way of improving image 
recognition.  For example:

a) In plane rotation may be taken 
out by measuring the angle 
between the vertical and the line 
going through the center of the 
eyes and using that angle to 
straighten the face; as a lot of 
the downloaded images do have a 
lot faces that are off kilter in 
plane

b) Recognition may be improved 
through the weighting of each 
component of a face. For example, 
some weight applied to the eyes 
versus the nose.  Basically, 
instead of doing global pattern 
recognition, we split it up into 
feature pattern recognition.

5) Will modify face recognition 
program to incorporate the 
training of image differences and 
test results in the next week


Updated webcrawler
   (Posted on Sat, 26 Feb 2005 20:09:39 PST .)
1) Updated webcrawler to be more 
modular

2) Specifically, split program 
into 3 different modules: 
webcrawler.py, makecopy.py, and 
converter.py.

3) webcrawler.py responsible for 
the networking stuff; makecopy.py 
makes a complete copy of the 
downloaded images as well as the 
directory structure; converter.py 
incorporates a face detection 
algorithm that crops the face to 
maximize image space, and then 
converts cropped image into 
grayscale.

4) Need to download images again 
and test with recognition 
program; Hopefully I'll get 
better recognition performance 
with the cropped faces this 
time   


Crummy recognition performance from www.missingkids.com pictures
   (Posted on Fri, 25 Feb 2005 02:34:21 PST .)
1) Used webcrawler and downloaded 
a whole bunch of pictures from 
www.missingkids.com.

2) Manually preprocessed some of 
the pictures to bring out the 
faces.

3) Selected best representative 
images from the lot of downloaded 
images.

4) Ran face recognition program 
and got really horrible results 
in the vicinity of 7% recognition 
of test images.

5) Conclusion: PCA performs 
really poorly for non-normalized 
images wrt to lighting, face to 
image ratio, out of plane head 
rotation, etc.  May need to look 
into a better image projection 
and pattern classification 
technique.

6) Start looking into Fisher 
Linear Discriminant articles

7) May also look into Independent 
Components Analysis (another 
statistical technique)


Completed webcrawler
   (Posted on Tue, 22 Feb 2005 00:40:32 PST .)
1) Webcrawler is fully 
implemented and fully tested

2) At present will not pursue 
edge detection and face 
cropping

3) It supports the following 
functions:

- Goes through 
www.missingkids.com and downloads 
and sorts by state and gender

- Downloads information about 
each missing child wrt age, time 
of abduction, DOB, and specific 
information about child

- Downloads all relevant images 
(original as well as age 
progressed)

- Creates directory structure 
that works for face recognition 
program

- Stores images in respective 
directories

- Converts images to .pgm format

- Resizes image to specified size


Feb 15
   (Posted on Tue, 15 Feb 2005 17:29:20 PST .)
1) Fixed webcrawler so that it 
works right for 
www.missingkids.com.

2) Need to extend it to include 
personal info about child in 
image (in a readme file or 
something).  Maybe include 
current age, DOB, age of 
progressed picture, etc.

3) After image downloads, need to 
normalize images WRT color, file 
format, size, and cropping.  Need 
to convert to 8-bit grayscale.  
Currently, downloaded images 
are .jpg.  Need to convert 
to .pgm.

4) Need to extend mathematical 
derivations in Deliverable slides 
to make derivations clearer and 
flow better.


Feb 14
   (Posted on Tue, 15 Feb 2005 11:03:34 PST .)
1) Attempted web crawler on 
http://www.missingkids.com and 
failed miserably.

2) Concluded that parsing rogue 
HTML code is the culprit

3) Need to explore HTML 
processing modules in Python

4) Apparently, Python has sgmllib 
and HTMLParser, both modules 
capable of parsing ugly HTML code 
and sorting out the tags and data
   


Feb 10
   (Posted on Fri, 11 Feb 2005 23:41:49 PST .)
1) Continued to refine slides for 
deliverable 1; cut it down to 35 
slides; refined some of the 
mathematical derivations; Added 
in material for GUI screenshots 
and runtime results

2) Downloaded some articles for 
Fisher Linear Discriminants as a 
possible alternative to Principal 
components analysis;  whereas PCA 
might overlook small facial 
differences, Fisher discriminant 
looks for more minute features   


Wed Feb 9
   (Posted on Wed, 09 Feb 2005 10:32:32 PST .)
1) Went to Borders to look for a 
good book on general and network 
programming in Python.  Found a 
relatively good Python book by 
Beazley.

2) Python is pretty succinct, but
kinda weird at the same time.
It doesn't use braces but
indentation to delimit blocks of
code.
   
3) It is similar to Perl but a 
lot less sloppy in grammar 
(I can just picture the scowls on 
the faces of Perl programmers 
everywhere).  But it does have 
some very powerful modules for 
various applications (text 
processing, networking, GUI 
development, web development, 
etc.)

4) Wrote a little Python script 
to download a page and all 
embedded images into a 
directory.  And it only took like 
8 lines of code.
   


Tue, 08 Feb 2005
   (Posted on Tue, 08 Feb 2005 21:59:12 PST .)
1) Met with Dr. Pollett to talk
about Face Recognition program

2) Unfortunately arrived late; 
could not present slides 
detailing Deliverable 1

3) Face Recognition program is 
currently stable; albeit it runs 
relatively slow due to the use of 
Jacobian method of calculating 
Eigenvectors and Eigenvalues, 
which runs at 20n^3 maximum; may 
look into QL method of shifting 
tridiagonal matrix to cut run-
time to 3n^3

4) May look into upgrading image 
viewer, as the current one is an 
unmodifiable executable 
downloaded from the web

5) Need to start looking into 
implementing webcrawler to comb 
Internet for missing children's 
images; looking into using Python 
as scripting language to do this

6) Continue to refine slides for 
Deliverable 1
   


Really Simple Syndication (RSS) Feed...