Wednesday, May 11, 2011

Shape Context Matching

I recently completed my shape context image matching project without much success :(.if you don't know about shape contexts , check out this link SC

The shape context can be created easily, For matching operation a bipartite based graph matching algorithm can be used. It can be done using Hungarian algorithm with complexity is less than the brute force method( O(n^2) ).
But after implementing Hungarian algorithm i am not able to find enough match point pairs between shapes. The problem with Hungarian method is that it can't give you the answer in fixed amount of time. It tries to optimize, sometimes never ending optimizations.

Still I believe it can be corrected(using a different approch to SC creation) , I need to work more. Not getting enough time.

A nice lecture about Hungarian Algorithm can be found at here

Sunday, February 13, 2011

Face Detection using PCA.

I have been working on my image processing library to support face detection. I started with basic method PCA ( Principal component analysis). Basically you need to have a set of images(20-50) with different lighting conditions etc. The next step is to create covariance matrix out of it and find the eigen vector. Then simply project the the image you need to check in to Eigen vectors and find the distance between them.Do some thresholding to classify it.One important thing is you don't have to take all eigen vectors,may be its better to sort (descending ) based on Eigen value and take only first 'N' vectors.

See the video

The difficult part in PCA may be to find the eigne vectors , QA algorithm seems a good choice. The current problem with running time.It takes almost 1 second to process 200X201 image. Roughly O(n^3) complexity. I am plan to implement it in CUDA,so that it can be used for real time detection.

Tuesday, December 14, 2010

Number Plate region extraction

After a long break I started writing about my image processing studies.This time KD came with a project to extract number plate region from an image. The advantage of my method over other methods are the following.
1. fast processing
2. It can give you multiple regions in image if more than one number plate present
3. It can handle image rotation up to a certain degree( +- 35 ) .I used Eigen vectors.
4. No third party libraries like openCV or aforge ( yes some times i like to reinvent the wheels again )


See the video to see the project in action.



Although the number plate extraction parts works pretty good , I don't have a good OCR module. So i am having troubles to extract numbers from image. I tried using a simple back propagation neural network, its quality of recognition is not that great.Now i am trying to develop a rotation,scale invariant  recognizer. It may take another 9 or eight months to do that. But if it works i think that would be a great achievement. I will try to post more updates here.. 


If you know any good optical character recognition library, please let me know.