Package com.openinventor.imageviz.engines.geometryandmatching.patternrecognition

This group provides a package of pattern recognition functions based on standard correlation. Some tools to ease the exploitation of results are also included.

Correlation

The correlation filters allow you to specify a correlation step.

The correlation filters allow the matching of rectangular or irregular patterns. Non-rectangular patterns are implemented with mask AOIs.

Use SoGrayscaleCorrelationProcessing2d for grayscale image correlation and SoBinaryCorrelationProcessing2d for binary image correlation.

SoGrayscaleCorrelationProcessing2d allows for local luminosity and / or contrast normalization. There are 4 different correlation types (see SoGrayscaleCorrelationProcessing2d.CorrelationMode) :

  • DIRECT: Direct correlation (no normalization).
  • MEAN: Mean normalized correlation (luminosity).
  • VARIANCE: Variance normalized correlation (contrast).
  • MEAN_VARIANCE: Mean and variance normalized correlation (luminosity and contrast).

We perform the correlation between a input image, , and a kernel, . The output image is an floating point image, . The correlation coefficient at location is given by a local calculation between the model and a pattern extraction from the input image, . The pattern location is and its dimension is . The actual calculation depends on image type:

It also depends on the correlation normalization TYPE as shown below. When a part of the pattern lies beyond the edge of the image the correlation is not performed on the image border. SCorrelation filters provide a step parameter (see SoGrayscaleCorrelationProcessing2d.OffsetMode and SoBinaryCorrelationProcessing2d.OffsetMode) which speeds up the operation by calculating 1 value out of each step, as shown in Figure 1.

Figure 1: Standard CorrelationLuminosity and Contrast normalization

The luminosity and contrast normalization is controlled by one of the 4 correlation types:

  • DIRECT: Direct correlation (no normalization).
  • MEAN: Mean normalized correlation (luminosity).
  • VARIANCE: Variance normalized correlation (contrast).
  • MEAN_VARIANCE: Mean and variance normalized correlation (luminosity and contrast).

    Output Image Normalization

    During the correlation the minimum and the maximum values are calculated . At the end of the filter processus, the correlation image is normalized between -1 and 1. The normalization depends on the following algorithm:

    Position of the Correlation Coefficients

    If the dimensions are odd, the position of the correlation coefficient is centerd in the pattern and corresponds to a pixel position. Figure 2: Correlation coefficient for odd dimensions If the dimensions are even, the position of the correlation coefficient is the closest pixel position to the top and the left. Figure 3: Correlation coefficient for even dimensionsCorrelation with a Non-Rectangular Pattern

    If a binary image is attached as a mask to the kernel image , the correlation is made locally between and . The mean and variance calculation are made on and on . Figure 4: Correlation with a non-rectangular patternOutput Data

    The correlation filters return a floating point correlation image. At the end of the processus, this correlation image is converted between -1 and 1 (worst and best matching detected). The non-calculated points are set to -3e38. Then, the SbCorrelationDetail contains:

  • the position of the best matching (matchingPositionX, matchingPositionY),
  • the minimum and the maximum values of the correlation image before the conversion (minComputed, maxComputed),
  • the theoretical minimum and maximum correlation values before the conversion (minTheoretical, maxTheoretical).