Pattern recognition

I am new to the world of computer vision, so please excuse my basic questions.

I have two patterns: one consisting of a single circle of radius $r$, and one made of several circles, still of radius $r$, placed in an array fashion.

These two patterns are etched into two separate masks and let light shines through the circular aperture, and the filtered light is shone into a CMOS. The goal is to obtain the translation of the pattern on the CMOS in terms of {x,y,z}, which is dependent on the angle of the incident light through the mask.

My questions are:

1. What is the improvement, in terms of accuracy, that can be obtained by having one circle vs having an array of circles of the same radius? Is there a formula describing this improvement? I believe it is a function of the number of features, but also somewhat related to how they are mutually placed

2. What is the fastest way to perform pattern matching? (since I manufactured the mask, I know exactly the radius of the circles and the pitch at which they are placed in the array)

3. What would be a smart way to design such a multi-feature pattern in order to maximize precision?

• can you perhaps draw a picture of the description to help understand your experimental setup? – Atul Ingle Mar 20 '18 at 16:21
• I attached a picture. Grey is the mask, the CMOS is what I measure/see – Frusciante89 Mar 20 '18 at 17:13
• re: 1 can you solve a 3D position at all with just a single point? that would surprise me. Regarding improvements: The phenomena you're observing don't happen to be microscopic? Wild guess: you're not in a situation where you can consider everything that happens to your light with ray optics, but will have to respect diffrective effects, to? – Marcus Müller Mar 20 '18 at 17:31
• Marcus, I just need to solve for the angle of incidence. The ray is constituted by collimated white light, and the effects on the CMOS is exaggerated of course: I have quite a perfect circle, but since the edge is not perfect (there's a grey area on the outer circumference), when I run the binary function on matlab, the edge of the circle comes out a bit noisy. Then, I compute the centroid for each pseudo-circular shape, which has some variance due to noise – Frusciante89 Mar 21 '18 at 9:08