MARCO Processing stages

Each image below represents the same input image data after various layers of processing.  I'd recommend clicking on an image to bring up the gallery view, since it's much easier to follow the continuity of the data that way.


Raw greyscale image input, the image is rotated because of the way the docking camera is oriented on my test rig.

Transition filtering: Each pixel is fed through an iterative algorithm which picks out sharp transitions in the image.  The high contrast of the black and white target make this a pivotal first step for culling away irrelevant image data.
Grouping: Based on the results of the previous layer, the raw data rows are grouped as regions, each of which has a series of parameters such as average color, size, endpoints, and variance which are considered in the next layers.

Scoring: Each region is fed through an algorithm specially designed to determine how likely it is that a particular region is the center of the target.   There is quite a bit of noise in this stage of the process, which is fine.  It's difficult to tell, but the pixels in the center of the target are actually the brightest white, as they should be.

Sliding-window Optimization:  A range window of definite width is superimposed over the rows of the scored region data.  The window slides from the top row down until it reaches the bottom of the image.  Particular start & end points of the window which yield the highest score are recorded and the median of the highest-scoring region centroids within the window is considered the x-coordinate of the target centroid.

An additional filter reprocesses the region data to find white regions with little variance.

The boundaries of high-scoring white regions close to the determined centroid are examined.  If 3/5 of the regions surrounding the centroid are correctly bounded to the edges of the target, all of the points passed to the next stage are valid.
Right now I'm working on the elliptical least-squares fitting function which determines the distance and attitude of the target, so I'll post further results as I work my way through that process.

Comments

Popular posts from this blog

The Future of MARCO

Preliminary Results and higher-order error sources

A Working Filter Actuator