Search code examples
opencvimage-processingcomputer-visionfeature-detectionfeature-extraction

Using surf detector to find similarity between same bank denominations


Backstory , in my country there is a picture of its founding father in every bank denomination :


(source: 76.my)
.

I want to find the similarity between these two images via surf detectors .The system will be trained by both images. The user will present the bottom picture or the top picture via a webcam and will use the similarity score between them to find its denomination value .

My pseudocode:
    
1.Detect keypoints and the corresponding descriptors of both the images via surf detector and descriptor .
2.a.Calculate the matching vector between the query and each of the trained example .Find number of good matches / total number of matches for each image .
2.b.OR Apply RANSAC algorithm and find the highest number of closest pair between query and training algorithm
3.The one having the higher value will have higher score and better similarity.

Is my method sound enough , or is there any other method to find similarity between two images in which the query image will undergo various transformations . I have looked for solutions for this such as finding Manhattan distance , or finding correlation , however none of them are adequate for this problem.


Solution

  • Yes, you are doing it the right way

    1) You create a training set and  store all its feature-points .
    2) Perform ratio test for matches with the query and train feature-points.
    3) Apply ransac test and draw matches (apply homograpghy if you want highlight the detected note).
    

    This paper might be helpful, they are doing similar thing using SIFT