During my master’s degree, I had the opportunity to work with OpenCV (using Python), we had a project consisting of tracking and identifying papers of color in a video :

But I also worked in my spare time on a program using Aruco Markers to get the position of an object on the board viewed with an uncalibrated camera. It takes as input any image containing this for ARuco markers :

Input image

The program will remove the perspective and scale the picture so that 1 pixel is equal to 1 mm in reality (calculation based on the known distance between the markers):

Output image

The dot in the middle is the position of the robot.