Computer Example of Schiele and Pentland’s Probabilistic Object Recognition and Localization Marshall Tappen 6.899
Implementation Details You Need to Think About ► How many cells per dimension of the histogram? It appears that the authors use around 4 or 5 cells per histogram ► I used 6 ► Do all dimensions have the same number of cells? (Yes) ► How do you allocate the cells? I set the range encompassed by the histogram to cover the full range of possible values ► You could set it to encompass 97% of the values
Comments ► Histograms are big! 720 images (20 objects, 36 views) takes 268 MB of space ► Smaller histograms decrease space needed dramatically ► Executing convolutions to take measurements is by far the slowest part ► Algorithm is very simple to implement Getting a good training set is the hard part
Testing Procedure ► I used the Columbia Object Image Library (COIL-20) Database ► Grayscale Images of 20 Objects 72 Images of each object, taken at different poses
Testing Procedure ► For each image, I used one half of the poses as the training set ► The other half of the poses were the test set
How Many Bins in Each Histogram? ► My first question was how many bins should be in each dimension of the histogram. ► My second question was how many measurements I need to identify an object.
How Many Bins in Each Histogram?
How Many Views Do We Need? ► My next question was how many views are needed. ► For this test, I chose a portion of the test set and tested it while changing the number of poses in the training set (I was using 75 measurements and 6 bins per dimension)
How Many Views Do We Need?
How well does it handle varying object size? ► I wanted to know how robust the algorithm is to changing object sizes ► I tested this by using rescaled versions of the test set as input images
How well does it handle varying object size?
What about new lighting? ► I want to see how robust the algorithm is to changing illumination. ► I faked a new illumination by masking the input images ► I masked the test images with a horizontal gradient with a horizontal gradient ► I varied the slope of the gradient the gradient (i.e the beginning value of the gradient)
What about new lighting?
Comments ► The algorithm is surprisingly robust ► It could really benefit from doing the convolutions in hardware ► If you want to use it, ask your advisor to buy more RAM