1

I am trying to compare two mono-chrome, basic hand drawn images, captured electronically. The scale may be different but the essences of the image is the same. I want to compare one hand drawn image to a save library of images and get a relative score of how similar they are. Think of several basic geometric shapes, lines, and curves that make up a drawing.

I have tried several techniques without much luck. Pixel based comparisons are too exact. I have tried scaling and cropping images and that did not get accurate results.

I have tried OpenCV with C# and have had a little success. I have experimented with SURF and it works for a few images, but not others that the eye can tell are very similar.

So now my question: Are there any examples of using openCV or commercial software that can support comparing drawings that are not exact? I prefer C# but I am open to any solutions.

Thanks in advance for any guidance.

(I have been working on this for over a month and have searched the internet and Stack Overflow without success. I of course could have missed something)

user638750
  • 111
  • 3
  • 8
  • Try Edge Orientation Histogram. Conceptually similar to Histogram of Oriented Gradients but EOH is tailored toward edges only and should be less computationally intensive; the first reason is very applicable to your input of line drawings. See: http://stackoverflow.com/questions/11505234/histogram-of-oriented-gradients-vs-edge-orientation-histograms Posting as comment because without seeing some sample images, ideas and suggestions won't be very useful. – rwong Mar 08 '14 at 22:56
  • Thanks, I will look at the Edge Orientation Histogram. If I get closer with sample code I will post. – user638750 Mar 09 '14 at 04:14

1 Answers1

1

You need to extract features from these images and after that using a basic euclidean distance would be enough to calculate similarity. But hand writtend drawn thins are not easy to extract features. For example, companies that work on face recognition generally have much less accuracy on drawn face portraits.

I have a suggestion for you. For a machine learning homework, one of my friends got the signature recognition assingment. I do not fully know how he did it with a high accuracy, but I know feature extraction part. Firtstly he converted it to binary image. And than he calculated the each row's black pixel count. Than he used that features to train a NN or etc.

So you can use this similar approach to extract features. Than use a euclidean distance to calculate similarities.

yutasrobot
  • 2,356
  • 1
  • 17
  • 24