As per the question title. I'm trying to find a set of templates in a set of scenes. The images of the templated objects appear exactly as-is in the images except for image quality issues, background of the template image, and size differences. Think of it like finding the Fox News logo in news footage given a set of news station logo template images with a blank background. In the news footage the logo would have a natural image background.
I have implemented multi-scale template matching using an approach similar to this link. However, I am not getting good results. I use a Canny edge representation of the template, and use cv2.matchTemplate. For each template, I find the highest score for that particular template in the image, and I pick the template that returns the highest score as the correct result. I've tried every metric available to the template matcher and the results are still poor.
I'm thinking that the color information might be useful as well, but RGB template matching is not included in OpenCV. I thought of doing it per-channel, but if I get a different result for each channel, I don't know how to reconcile the position and score for that template.
Any ideas?