The Problem

You need input for your upcoming Classifier assignment.

This assignment gives you credit for coming up with a domain of inputs and a set of relevant classes and a set of features you hope will separate inputs into correct classes. For me, two of the easier domains are binary shape and grey-level texture recognition. For both you can often generate lots of images for training and testing, either computer-generated or real. The digit data mentioned in the Cluster assignment could be one domain, for instance.

For shape, I recommend just working with the textbook and computing moments, fourier components, Euler characteristic, area, convexity, whatever. These measures can be smarter or dumber, obviously. It's more interesting to come up features invariant to the most general anticipated transforms (size, position, rotation, maybe skew, you could even go for some geometric invariants!). A really simple "feature" is just the input image considered as a binary vector. This is what Pomerleau did and it might work for you. We won't award many points for that, though, the idea is to get the best, most powerful features you can. Your domain might be some of Randal's toys in the vision lab, or possibly made-up "industrial" or "biological" shapes.

For texture, the idea is usually to extract some number associated with a small area of image, like the dominant edge direction, the amount of "edgeness" (presumably normalized), "texture energy" (see book).

Features for faces might tend to involve things like eye-finding, which ups the ante considerably. But if you could reliably find some structure in your images, then you might have features that describe the relations of the structures (A inside B, A beside B).

You might well find certain useful feature-finders out on the web or in Randal's libraries, I just don't know. That's fine, good luck.

You might want to do something like Principal Component Analysis (PCA) to compress your feature space (remove or combine covarying features)...that would be very nice.

This assignment in a way is a precursor for the classification assignment, but also in a way should be done cooperatively: you might want to invent new features to separate classes that otherwise your classifier gets mixed up. So although there is a due date for this assignment, it won't be finally graded until we see the feature detector and classifier work together.

Turn In

Mainly this is programming to get features extracted. But your writeup could well cover the motivation for your choice of domain, your thoughts about relevant features, the implementation issues you encountered, how it appears to you your feature-finders are working, and so forth. Also a technical description of what they are, of course (math or diagrams or some unambiguous description).


This page is maintained by CB.

Last update: 15.8.02