Algorithm to find identical shapes/objects in image

I’m currently stuck on the problem that I want to mark objects that appear multiple times in an image (for example for two identical circles or two identical triangles). I want the initial image to mark the objects that are identical and leave the rest of the image as they were in the initial image.
Are there any specific algorithms for this?

most shape algorithms are contour based, so you should start with that
then, there’s matchShapes, a whole shape module or even fourier descriptors