This repository contains code developed as one of Innolitic's 10x mini-projects.
- problem has shown up on multiple client projects
- sensors; integration vs sampling
- background
- noise
- relative size of the object
Problem: find the location of the object (usually a fiducial used for image registration) as accurately as possible.
We mode the underlying object that we are imaging as a continuous, 1D function over the domain [0, 100].
This function has the form:
I(x) = rect((x - c)/w) + b(x)
Where
c
= "Center of the object"w
= "Width of the objectb(x)
= "Background function".
For now, we assume that the background function is linear, that is:
I(x) = rect((x - c)/w) + b0 + x*b1
Now that we have modeled the underlying object, we need to model the processing of converting this object into a image.
Assume an image of this object is formed using an imager with 100 sensor elements. For now we assume that each sensor element acts as a perfect integrator. I.e.,
I_integrated[k] = \int_k^{k+1} I(x) dx
for k
= 0 to 99.
In the other extreme, each sensor element acts as a perfect sampler. I.e.,
I_sampled[k] = I(k + 0.5) * alpha
where alpha is an arbitrary constant.
In practice, one would expect image sensors to be a combination. If s
is a number between 0 and 1, representing how full the image sensor is:
I_b[k] = \int_{k + s/2}^{k + 1 - s/2} I(x) dx
The bit-depth of the Analog to Digital converter also plays a roll in image formation.
Finally, we expect a certain amount of noise to be introduced by the sensor, readout machinery, etc. For now, we assume that all of the noise is zero-mean Gaussian noise (this is certainly not the case).
For now, we model these effects using:
N
= "number of gray scale levels available in our sensor's analog to digital converter"A_max
= "maximum measurable value"A_min
= "minimum measurable value"s
= "relative size of the sensor elements, [0, 1]"sigma
= "standard deviation of the gaussian noise".
We are interested in developing an algorithm that can determine object's center, c
, as accurately as possible given an I[k]
.
We know N
, A_min
, A_max
, and s
before hand, since they are attributes of the imaging system. We may also know the approximate ranges that the image w
, b0
, b1
, and sigma
will take.
We can also assume that c
is in the middle of the image, i.e., c \in [25, 75]
.
If our algorithm guesses c_expected
, then we define the localization error to be:
E = |c - c_expected|
- What algorithm have the lowest mean localization error?
- For a given algorithm, what is the relationship between mean localization error an
X
? (whereX
is a paramater of our model, such asw
,N
,b0
,b1
,s
, orsigma
). - Generalize to 2D
- Investigate the effect of different types of background functions