This movie is about feature tracking and handwritten digit recognition. During the autumn of 2008, we combined two projects we did for two courses at Delft University of Technology. One was about Image Registration and Optical Flow for the course Advanced Digital Image Processing and one was about Handwritten Digit Recognition for the course Pattern Recognition.
The movie above shows a nice combination of the two projects, which was - off course - not required in the assignments but very funny to do. We developed our application in Matlab, which is a great tool to design such things. Yes, it is slow, but - as you see - with some optimizations fast enough to perform all calulations real-time.
We implemented the feature tracking part using the Lucas-Kanade algorithm. Actually, we wrote a multi-level implementation to be able to track larger movements. The largest problem we encountered was to make the algorithm fast enough to be able to run real-time. This was caused by two things: 1) the large amount of interpolations slow down Matlab enormously; 2) the downsampling for the multi-level part took a lot of time. After applying some tricks to speed up the interpolation and downsampling, we got framerates of > 20 fps, which is more then fast enough...
Actually, I would like it to explain the whole implementation including explaining the source code, but I don't have time to do so. So, if - in the nearby future - I've some time left, I'll do, otherwise you can always contact me by email.
Some links about the Lucas-Kanade algorithm which are quite useful:
The pattern recognition part, so the part which recognizes the written digits, took net a lot more time to develop. We had to find out which combination of feature reduction method and classifier separates the digit classes the best. We tried a lot of combinations and found out that k-NN classification on a PCA feature reduced normalized pixel representation gives the lowest classification error (about 2.5%). This is short said, but the previous sentence contains in fact a few weeks calculation time by multiple desktops in order to show that this system is really the simplest and the best one (of which we tried, off course). Finally we have to thank our teachers for the development of the PRTools toolbox a lot, because this toolbox makes life a lot easier!
Some useful links on the pattern recognition part:
