0

I am looking to compare a new image to a database of images, and then output the higher "similarity". The images I want to compare are similar, but the problem is though because they're not pixel by pixel equal. I've tried to use BoW (Bag Of Words) model already (I implemented it in Matlab, but I'm willing to learn openCV), as per recommendation, I tried various implementations without success, the best correct rate I got was 30%, which is something really low.

Let me show you what I am talking about: imgur gallery with 5 example images. I want to detect that the four initial images are equal, and the fifth one is different. I wouldn't mind only detecting that the ones with the same angle orientation are equal, though. (In my example 2, 3 and 4)

So, that being said, are there any better methods than BoW for that? Or perhaps BoW should be enough if I implemented in a different way?

Thanks in advance.

doppelgreener
  • 4,809
  • 10
  • 46
  • 63
ShizukaSM
  • 343
  • 2
  • 5
  • 15

1 Answers1

0

I would try some keypoint based approach using randomized trees. Has the advantage that point extraction is local and adapts to many sort of transformations (Like the ones your pictures show). The advantage of being local is that they are more robust against changes in illumination across the scene, occlusions, and so on.

Also, take a look at the SURF algorithm.

jpmuc
  • 1,092
  • 14
  • 30