Course Slides: Lecture 1
Videos: Randy Davis, Assist, Alan Kay, Graphical User Interfaces (watch minutes 14-22) (need Google Video player, easier just to google in google video)
Reading:
Ivan Sutherland, Sketchpad: A Man-machine Graphical Communication System
Homework 1a (due Wednesday, August 30): Write a summary of Ivan Sutherland's paper.
Homework 1b (due Wednesday, August 30): Write a discussion of Ivan Sutherland's paper.
Homework 1c (due Wednesday, August 30): Email hammond at cs.tamu.edu the following:
0) Email
1) Name
2) Year
3) Relevant experience
4) Why you are taking this class
5) What you hope to gain
6) What do you think you will be doing in 5 years
7) What do you think you will be doing in 10 years
8) Interesting fact about yourself
9) Send me a picture of yourself (a link to your website with a picture is fine)
10) Anything else you want me to know
Course Slides: Lecture 2
Reading: Dean Rubine, Specifying Gestures By Example
Homework 2a (due Friday, September 1): Write a summary of Dean Rubine's paper.
Good Summary Sample
Homework 2b (due Friday, September 1): Write a discussion of Dean Rubine's paper.
Good Discussion Example,
Good Discussion Example
Homework 2c (due Friday, September 1): Implement the 13 features of the Rubine method.
Language:The features should be implemented in either Java, C++, or Matlab. If you use Matlab, note that you will
eventually have to write a wrapper in Java or C++ to allow pen input.
JMatLink is available free online to connect Java and Matlab.
Object Oriented: When implementing the features, realize that you will be using these features again, several of the features are
also useful in other recognition algorithms. You should not be reimplementing them (or copying code), so make sure you spend the
time now to make sure they are easily used in the future. Comment your code!
Hand-in: Print out a copy of your code to hand-in.
Data:Hand in the feature values for the following shapes:
data folder
I have included actual tablet data here.
NOTE: To use the rubine method, you will have to *remove* duplicate points in the same location for f9, f10, f11.
NOTE: You must *remove* duplicate points with the same timestamp for f12.
NOTE: Divide by zero: Some implementations may have a divide by zero problem for f9,f10,f11 when the numerator is 0
(but the length is not), the lines are perpendicular. You may want to have a special case in loop, and
supply the output of the arctan function: (pi/2 for pos numerator and -pi/2 for neg numerator). Here is a graph:
http://mathworld.wolfram.com/InverseTangent.html
HAND IN: your features in terms of [f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13]
Course Slides: Lecture 3
Homework 3a (due Monday, September 4): Fix your Rubine feature code.
NOTE: Java and Matlab returned exactly the same values for atan.
NOTE: Check to see that you are making your integers into doubles before dividing. (BP)
NOTE: Make sure to remove the second point in the case of duplicates. The logic behind this is that the second point is more valuable than the first point.
Homework 3b (due Monday, September 4): Look at the images in the data folder, explain why the values are correct for the 8 images. Note and explain a few of the oddities. Good Homework Sample
Homework 3c (due Monday, September 4): Begin to implement Rubine trainer:
Implement function to compute mean fci
NOTE: Normalization is the process of averaging all of the values of the examples.
(In reality we normalize with N-1 for covariance and variance, rather than N.
This is an unbiased estimator of the variance of the population from which X is drawn,
as long as X consists of independent, identically distributed samples.) We will talk about this in class.
Implement function to compute covariance matrix without normalization (just sum up all of the (fei-fi)(fej-fj))
Implement function to compute covariance matrix with normalization (divide each sum by 15-1 = 14)
HAND IN: Copy of code.
Run your data on the 26 shapes of the alphabet with the first 15 training examples:
data folder, or
zip file
NOTE: Each letter has 17 files, only run on the first 15, we are saving 16 and 17 for testing.
HAND IN: Average rubine feature vector for the letter `b'.
HAND IN: Covariance matrix for the letter `b'
Course Slides: Lecture 4
Homework 4a (due Wednesday, September 6): Compute common covariance matrix.
NOTE: You need to fix your covariance matrix first. See a covariance matrix above.
NOTE: For N and V, you will get NaN for sin and cos because the length is 0 between point 0 and 2,
put a check to use the next point instead if this happens (i.e., point 0 and 3) - preferably with a while loop
in case it happens twice.
TURN IN: 13 by 13 common covariance matrix
Homework 4b (due Wednesday, September 6): Compute weights for each feature, and initial weights for each class.
TURN IN: initial weight and feature weights for the letter b
Homework 4c (due Wednesday, September 6): Build classifier and classify data:
DATA: Use examples 16 and 17 of each of the letters AND the 8 random shapes.
TURN IN: Chosen gesture class for each example above AND the highest Vc value
Course Slides: Lecture 4
Reading:
Allen Chris Long, `Those look similar!'
issues in automating gesture design advice
If you haven't yet read, READ THIS PAPER INSTEAD: Allen Chris Long: Visual similarities
Homework 5a (due Friday, September 8): Write a summary for the Long paper. Good Summary Example
Homework 5b (due Friday, September 8): Write a discussion for the Long paper.
Homework 5c (due Friday, September 8): Simple Improvements
Implement the jitter reduction technique.
Implement rejection technique 1
Implement rejection technique 2
TURN IN: Classification for testing data in a matrix with the columns (cl = class letter):
label orig jitter rej1 rej2 rej1&jitter reg2&jitter a1 cl cl cl .... a2 cl ... b1 .... b2 ... rand1 rand2 ... rand8label Build classifier and classify data:
Course Slides: Lecture 4
I posted more data for this one. The first data 1-17 were all drawn at the exact same time in the exact same way. 18-20, I tried to draw in the exact same way, but almost a week later. You can use this data to try to improve your results. Note that this data is still *only* one user. The variations would be much greater with several users.Homework 6a (due Monday September 11): Summary of other Long paper (should be very easy since two papers are similar) Good Summary Example
Homework 6b (due Monday September 11): Discussion Long paper Good Discussion Example
Homework 6c (due Monday September 11): Implement 22 Long features
Course Slides: Lecture 4
Reading: Metin Sezgin, Sketch Based Interfaces: Early Processing odr Sketch Understanding
Homework 7a (due Monday September 11): Implement an improvement on the rubine gesture system. TURN IN: Code and results
Homework 7b (due Monday September 11): Summarize the features you have chosen and how it works.
Homework 7c (due Monday September 11): Discussion: Compare your results to Long and Rubine. Why did you choose those features. What happened? Why?
Homework 7d (due Wednesday September 13): Summary of Sezgin paper.
Homework 7e (due Wednesday September 13): Discussion of Sezgin paper.
Homework 8a (due Friday, September 13): Paper write up of Rubine changes. See above for paper criteria.
Course Slides: Lecture 9
Reading:Tracy Hammond, Fast Sketch Recognition Using Stroke Constraint Indexing
Homework 8 (due Monday, September 19): Critique of Hammond paper in progress. This is your chance to know about a small research project that I did. The paper is in progress (i.e., filled with bugs), so this will help you with your critical editing skills. Your critique should include the following:
Homework: Begin implementing Sezgin, no handin yet.
Homework 11a:Implement Sezgin Curves. Locate corners for: Data. No handin yet. Big handin for Monday
Homework 11b:Project proposal. Make sure to hand in *how* you are going to do it, as well as what you are going to do, and what questions you have. You will have to present your idea to the class on Friday.
Homework 12:Hand in Sezgin errors for line, polyline, circle, and complex fit.
Reading:Yu - A Domain-Independent System for Sketch Recognition
Homework 13a (due Wednesday September 27): Summary of Yu paper.
Homework 13b (due Wednesday September 27): Discussion of Yu paper.
Homework 14 (due Friday September 29): Indepth Proposal:
Homework 14a (due Friday September 29): Implementation of Yu paper: Recognize line, circle, ellipse, overtraced circle, and spiral (what they call helix). Recognize helix by similar radii, but moving center.
Homework 15 (due Monday October 2): Continue to work on lower level recognizer
Homework 16 (due Wednesday October 4): Continue to work on lower level recognizer
Homework 17ab (due Friday October 6): Research your project topic on scholar.google.edu, find one related paper, read and write a summary(a) and discussion(b) on the paper. Be prepared to say 2 sentences about your paper.
Homework 17c (due Friday October 6): Come prepared to draw examples for your project on Friday
Homework 17d (due Friday October 6): Continue to work on lower level recognizer
Homework 18ab: Rewrite your discussion for both Sezgin (a) and Yu (b). What have you found to be good/bad about each of the topics. What worked? What didn't? Why?
Homework 19: Continue programming (work on projects and lower level recognizer)
Course Slides: Lecture 20
Homework 20 (due Friday October 13): Implement each of the choices for line recognition. Have your lower level recognizer finished for comparison on Friday
Course Slides: Lecture 21
Homework 21 (due Monday October 16): Implement each of the choices for arc recognition. Hand in the errors in a table for different shapes.
Course Slides: Lecture 22
Homework 22 (due Wednesday October 18): Implement each of the choices for circle recognition. Hand in the errors in a table for different shapes.
Course Slides: Lecture 23
Homework 23 (due Friday October 20): Implement each of the choices for ellipse recognition. Hand in the errors in a table for different shapes.
Course Slides: Lecture 23
Homework 24ab (due Monday October 23): Research your project topic on scholar.google.edu, find another related paper, read and write a summary(a) and discussion(b) on the paper. Be prepared to speak about the paper you have chosen.
Homework 24c (due Monday October 23): Fix ellipse recognition. Implement the helix recognition algorithm. Hand in the errors in a table for different shapes.
Homework 25 (due Wednesday October 25): Continue working on recognizer.
Homework 26 (due Friday October 27): Implement linear classifier on lower level stroke data.
Reading: A Short Introduction to Boosting (Adaboost)
Homework 27a (due Monday October 30): Summary of Adaboost paper.
Homework 27b (due Monday October 30): Discussion of Adaboost paper.
Homework 28: Implement Adaboost
Homework 29: Finish low level recognizer
Homework 30:Write paper on your low level recognizer. (See criteria link at top.)
Reading: Hammond - Tahuti: A Geometrical Sketch Recognition System for UML Class Diagrams.
Homework 31ab:Write summary and discussion of Tahuti paper.
Reading: Hammond - LADDER, a sketching language for user interface developers.
Homework 32ab:Write summary and discussion of LADDER paper.
Homework 33ab:Find a third paper for your project. Write a summary and discussion.
Homework 33c:Rewrite your Rubine paper to reflect changes and email to the three people in your group.
Reading:Seung - The Manifold Ways of Perception
Homework 34ab:Read Manifold Paper Suggested by Henry: Write a summary and discussion.
Homework 34c:Start critique the three Rubine papers assigned to you (critique at least one by now). To critique a paper, give a score from 1-5 as well as at least a sentence explanation for your score (including helpfulf feedback) for each of the eleven categories in the paper criteria (e.g., Clarity, Ideas, Abstract...Bibliography)
Homework 35ab:Student Suggested Paper 2: Write a summary and discussion.
Homework 35c:Finish Critiquing the three Rubine papers assigned to you.
Homework 36ab:Student Suggested Paper 3: Write a summary and discussion.
Homework 36cd:Student Suggested Paper 4: Write a summary and discussion.
Homework 37ab:Student Suggested Paper 5: Write a summary and discussion.
Homework 38ab:Student Suggested Paper 6: Write a summary and discussion.
Homework 39ab:Student Suggested Paper 7: Write a summary and discussion.
Homework 40ab:Student Suggested Paper 8: Write a summary and discussion.
Homework 40ab:Student Suggested Paper 9: Write a summary and discussion.