Finding common points between images is a necessary task in photogrammetry. It involves finding 2D image points and putting common labels on them. Nowadays, there are lots of automatic approaches that helps us find high quality tie points. A coded-target on the other hand is a shape with known geometry which could be accurately determined inside images, preferably by an algorithm.
There are a range of suitable geometric shapes that we may choose to use inside a coded-target, e.g., rectangles, circles, ellipses, lines, and combinations of them. Among them, circles are the easiest and most accurate to be determined, since a circle is relatively scale invariant. A circle could be seen as a dot when we move far from a target, or as a ellipse in affine settings that happen in projective cameras. Other peculiar shapes could also happen for a circle based on fish-eye distortion e.g.
One circle is not sufficient to define a good coded-target, since it lacks labeling. To solve this issue, a set of circles with asymmetrical shape could be used to define a coded target. Here I demonstrate a shape of a simple coded target that was used in few articles such as (1) and (2).

As we can see, there are 18 circles in this structure. The nice property of this structure is that it a cluster of points could be easily grouped by a nearest neighbor classifier.
The first phase in detecting a coded-target is to find its member points. Here is an example of a real photo where a cluster of points has been detected, then each point is labeled.

Obviously, the point labels are not correct. After detecting this coded-target, we can easily detect point that lie on four main lines, to do this, one approach is to randomly select two points, and check if the line between them contain sufficient number of points. In this way we hope to find the 4 lines in this figure:

First we find all lines with 5 or 6 members, Next we find the furthest line between (2,3 and 4), and then common point between lines 1 and 2 are determined. We find both furthest points on line 2 from point 3, then we use inner product to label them

After determining all labels for 18 points, the final problem is about putting ids on sets of 18 points to be distinguished between many coded targets. A simple solution to this problem is by employing an Affine transform to find the location of all coded-targets ids.
This is a sample image of a calibration body filled with coded-targets:

Here we can see the detected targets with the algorithm described above:

Finally, we can find 3D position of coded-targets by employing 3D vision and photogrammetric techniques

I hope you enjoy this tutorial and see you create novel coded-targets in advanced photogrammetric projects!