Symbol Recognition on an image


I am trying to find all the wall outlets that are represented by the symbol of a circle with 2 lines through it. I created a folder with images that show a wall outlet drawn in different ways so i have about 50 different images that show how a wall outlet symbol can be drawn. I also have a folder of symbols that show what a wall outlet symbol is not. how do i go about creating an application that will find these symbols on a supplied jpeg. i tried some of the cascading tools to make a haar to try and train but they dont work well. looking for ideas on how to best approach this. i tried template match and it did not find the symbols that were rotated. im new to this so any tips would be appreciated.

consider rotation invariance. if you need that, cascades can be trained for multiple orientations.

consider scale invariance. that costs extra time.

if you have trouble with the haar cascade training stuff (it’s neglected/obsolete/deprecated), just go with matchTemplate. for such neat pictures, it should be good enough. for rotation invariance, you’ll have to test each orientation. there should only be four, right?

could you send me the 50 positive images. i want to try to train a HOGDescriptor

are there some code examples or tutorials available

it will not let me add the positive images

with your images, it seems you need to find another solution than Haar Cascade and HOGDescriptor.

maybe you could try to find circles by ximgproc.EdgeDrawing

What you need is a fast and efficient template matching algorithm, and I just implemented one.

Here is the visual effect:

Transforming c++ code to python may be an issue for you, but finding all the cv::function and change them is enough. All details are on this github