Detect orientation of an object to render a plane aligned with the object

For a hobby project I need a way to detect the orientation of a target object within a video source so I can render a plane on top of the video that is aligned with the target object. I think it’s worth mentioning that I have full control over what the target object should look like but the catch is that I need these to be as small as possible (maybe like 5cm at a maximum). I plan to mount these objects on a wall. The closest thing I can think of is an augmented reality art gallery or something like the image below:

I have a couple of questions:

  1. The way I want to approach this is as follows. I detect 3 points on the target object within the video source, from those three points I can extract 2 directional vectors (let’s call them up and left). From the up and left vectors I can determine the forward vector. This will give me a good reference point on which I could render a plane. The distance between each of the 3 points will give me a clue as to how large I should scale my plane. Is there a better approach for achieving my goal?

  2. What would be the most reliable way to shape the 3 points so I can detect the orientation of the object? I could do this with 3 LEDs (e.g. red, green and blue) which would give me a clue as to what the aforementioned up and left vectors would be. Maybe I should use black on white shapes (e.g. square, plus sign, circle) to determine the orientation. What would be the most reliable way? Also, since these target objects would be visible to the end user I would like these to be as aesthetically pleasing as possible.

  3. What would be some good resources to use to get started with this? I’m new to computer vision. I would like to render some images on the plane or maybe even some html/css, does anyone know of any good resources that treat that subject?

Edit: Formatting

you need to read about AR markers.

OpenCV has aruco.