Per-Object Scatter Correction Filter

The per-object scatter correction filter performs a multiplicative scatter correction on an object basis.

Category

category_object_processing Object Processing

Node

perobjectmultiscattercorrection_node

Parameters

(None):

Inputs

Objects: a list of objects as generated from an object detection filter

Input Pixels: the input pixel data that should be used to determine the uniformity

Outputs

Correction: the mean spectrum of the object after applying the multiplicative scatter correction to the object’s spectra

Effect of the Filter

The filter takes two inputs: an object list (typically directly from an object detection filter), and a image-based pixel input. The pixel input must have the same image structure that the image has the objects were initially detected on.

It will perform a standard multiplicative scatter correction algorithm on all spectra that are part of the object. After this correction it will then output the average of those corrected spectra.

Illustration with Artificial Data

Take the following input data for the object detector:

_images/perobject_illustration.svg

The detector would generate the following list of objects:

_images/perobject_input_list.png

If the pixel input for the object is given by the following list of spectra:

_images/perobject_input_spectra.png.svg

Then the per-object scatter correction filter will return the following average spectra for the objects:

_images/perobjectmultiscattercorrection_output.png

Handling of Training Data

In some cases it might be useful to use classifiers (or other algorithms that require training) on per-object data, such as the corrected averages produced by this filter. But labels are assigned to individual pixels in fluxTrainer; and the spectra for individual objects will not have any group labels assigned to them.

In order to still allow for training of classifiers based on per-object operations, the per-object scatter correction filter will generate an internal (hidden) data set that has a single entry per group. It will perform the multiplicative scatter correction on all pixels for each group that were provided in the second input, and add the averages of those corrected spectra to the internal (hidden) data set labelled for the corresponding groups.

It is hence possible to use e.g. a Distance Classifier Filter or a Partial Least Squares Regression after a per-object scatter correction filter.

Note though that there will only be one spectrum per group in the internal data set, so any classifier after this cannot work in a mode that requires multiple spectra per group.

Sequenced Operations (Line Cameras)

The object processing filter also works with line cameras (or in the case of hyperspectral cameras, Push Brooms). The processing framework will automatically keep enough of the input pixel data round in memory that once the line gets processed that causes the object detector to output the object, the pixels that belonged to the object remain accessible to this filter.