'Image Processing: Small Robot Detection

I have a soccer field on which there are some Robots in it. The Robots have a pattern which I have to give them ID based on the pattern is on top of them.

I am trying to use "cv2.ORB_create", and orb.detectAndCompute for matchmaking, but I did not get good results in matchmaking.

I think ORB operation does not go well with small-size Images with low details. Also, it should be considered that the robots will move and the orientation of the robots will change. Robot_Exp image is a detected robot that I use "cv2.cvtColor" to detect the blue color range and then crop the area where the robot is after that, I check if the other circle color exists to count the cropped image as a robot. Now, I do not know how to use matchmaking to set the robot's id based on the given template.

I have uploaded the images, is there any suggestion?

Robot_Exp:

Robot_Exp

Field: Field

Robots IDs



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source