OpenCV logo recognition

此生再无相见时 提交于 2019-11-27 07:20:20

问题


I was asked to recognize logo in an image using opencv. The lecturer told me that I don't have to do logo detection but logo recognition only. I am using opencv in c++. Can I know the easiest way to do it??

Ps: newbie in computer vision.


回答1:


It largely depends on your kind of images.

  • If your logo occupies say 90% of the image, you don't need detection, since you are probably good with color histograms.
  • If the logo is small compared to the image, you should "find" the logo, in order to focus your comparison on that and not on the background clutter.
  • There could be multiple logos on the same image?
  • The logo is always fully visible?
  • The logo is rigid? Or could be deformed? (think for example of a logo on a shirt or a small bottle)

Assuming that you have a single complete rigid logo to find, the simplest thing to try is template matching.

A more accurate approach is to match descriptors. You can also see a related topic on SO here

Other more robust approaches would require to build constellations of keypoints on your reference logo, and match those constellations on the target image. See here and here for an example.

Last, but not least, have fun on Google!




回答2:


I agree with @Miki , you need to do template matching, my recomendation to you is to use sum of square differences and only use a rigid transformation, you can find a lot of information here. The last is one of the best books that I've red is simple to understand and it have the major part of the equations step by step.



来源:https://stackoverflow.com/questions/31369875/opencv-logo-recognition

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!