Estimate Geometric Transformation - Compute transformation matrix between greatest number of point pairs of two images

Library

Geometric Transformations

Description

Use the Estimate Geometric Transformation block to find the transformation matrix which maps the greatest number of point pairs between two images. A point pair refers to a point in the input image and its related point on the image created using the transformation matrix. You can select to use the RANdom SAmple Consensus (RANSAC) or the Least Median Squares algorithm to exclude outliers and to calculate the transformation matrix. You can also use all input points to calculate the transformation matrix.

PortInput/OutputSupported Data TypesComplex Values Supported

Pts1/Pts2

2xN Matrix, (where N is the maximum number of points) coordinates of the input points

  • Double

  • Single

  • 8, 16, 32-bit signed integer

  • 8, 16, 32-bit unsigned integer

No

Num

Scalar value that represents the number of valid points in Pts1 and Pts 2

  • 8, 16, 32-bit signed integer

  • 8, 16, 32-bit unsigned integer

No

TForm

2x3 or 3x3, the transformation matrix

  • Double

  • Single

No

Inlier

1xN, indicates which points have been used to calculate TForm

Boolean

No

Ports Pts1 and Pts2 are the points on two images that have the same data type. When Pts 1 and Pts 2 are single or double, the output transformation matrix will also have single or double data type. When Pts1 and Pts2 images are built-in integers, the option is available to set the transformation matrix data type to either Single or Double. The TForm output provides the transformation matrix. The Inlier output port provides the Inlier points on which the transformation matrix is based. This output appears when you select the Output Boolean signal indication which point pairs are inliers checkbox.

RANSAC and Least Median Squares Algorithms

The RANSAC algorithm relies on a distance threshold. A pair of points, (image a, Pts1) and (image b, Pts 2) is an inlier only when the distance between and the projection of based on the transformation matrix falls within the specified threshold. The distance metric used in the RANSAC algorithm is as follows:

The Least Median Squares algorithm assumes at least 50% of the point pairs can be mapped by a transformation matrix. The algorithm does not need to explicitly specify the distance threshold. Instead, it uses the median distance between all input point pairs. The distance metric used in the Least Median of Squares algorithm is as follows:

For both equations:

is a point in image a (Pts1)

is a point in image b (Pts2)

is the projection of a point on image a based on transformation matrix H

is the distance between two point pairs on image b

is the threshold

is the number of points

The smaller the distance metric, the better the transformation matrix and therefore the more accurate the projection image.

Transformations

The Estimate Geometric Transformation block supports Nonreflective similarity, affine, and projective transformation types, which are described in this section.

Nonreflective similarity transformation supports translation, rotation, and isotropic scaling. It has four degrees of freedom and requires two pairs of points.

The transformation matrix is:

The projection of a point by is:

affine transformation supports nonisotropic scaling in addition to all transformations that the nonreflective similarity transformation supports. It has six degrees of freedom that can be determined from three pairs of noncollinear points.

The transformation matrix is:

The projection of a point by is:

Projective transformation supports tilting in addition to all transformations that the affine transformation supports.

The transformation matrix is :

The projection of a point by is represented by homogeneous coordinates as:

Distance Measurement

For computational simplicity and efficiency, this block uses algebraic distance. The algebraic distance for a pair of points, on image a, and on image b , according to transformation is defined as follows;

For projective transformation:

, where

For Nonreflective similarity or affine transformation: ,

where

Algorithm

The block performs a comparison and repeats it M number of times between successive transformation matrices. If you select the Find and exclude outliers option, the RANSAC and Least Median Squares (LMS) algorithms become available. These algorithms calculate and compare a distance metric. The transformation matrix that produces the smaller distance metric becomes the new transformation matrix that the next comparison uses. A final transformation matrix is resolved when either:

The Estimate Geometric Transformation algorithm follows these steps:

  1. A transformation matrix is initialized to zeros

  2. Set count = 0 (Randomly sampling).

  3. While count < M , where M is total number of random samplings to perform, perform the following;

    1. Increment the count; count = count + 1.

    2. Randomly select pair of points from images a and b, (2 pairs for Nonreflective similarity, 3 pairs for affine, or 4 pairs for projective).

    3. Calculate a transformation matrix , from the selected points.

    4. If has a distance metric less than that of , then replace with .

      (Optional for RANSAC algorithm only)

      1. Update M dynamically.

      2. Exit out of sampling loop if enough number of point pairs can be mapped by .

  4. Use all point pairs in images a and b that can be mapped by to calculate a refined transformation matrix

  5. Iterative Refinement, (Optional for RANSAC and LMS algorithms)

    1. Denote all point pairs that can be mapped by as inliers.

    2. Use inlier point pairs to calculate a transformation matrix .

    3. If has a distance metric less than that of , then replace with , otherwise exit the loop.

Number of Random Samplings

The number of random samplings can be specified by the user for the RANSAC and Least Median Squares algorithms. You can use an additional option with the RANSAC algorithm, which calculates this number based on an accuracy requirement. The Desired Confidence level drives the accuracy.

The calculated number of random samplings, M used with the RANSAC algorithm, is as follows:

where

Iterative Refinement of Transformation Matrix

The transformation matrix calculated from all inliers can be used to calculate a refined transformation matrix. The refined transformation matrix is then used to find a new set of inliers. This procedure can be repeated until the transformation matrix cannot be further improved. This iterative refinement is optional.

Dialog Box

Transformation Type

Specify transformation type, either Nonreflective similarity, affine, or projective transformation. If you select projective transformation, you can also specify a scalar algebraic distance threshold for determining inliers. If you select either affine or projective transformation, you can specify the distance threshold for determining inliers in pixels. See Transformations for a more detailed discussion.

Find and exclude outliers

When selected, the block finds and excludes outliers from the input points and uses only the inlier points to calculate the transformation matrix. When this option is not selected, all input points are used to calculate the transformation matrix.

Method

Select either the RANdom SAmple Consensus (RANSAC) or the Least Median of Squares algorithm to find outliers. See RANSAC and Least Median Squares Algorithms for a more detailed discussion.

Algebraic distance threshold for determining inliers

Specify a scalar threshold value for determining inliers. The threshold controls the upper limit used to find the algebraic distance in the RANSAC algorithm. This parameter appears when the Method parameter is Random Sample Consensus (RANSAC) and the Transformation type parameter is projective.

Distance threshold for determining inliers (in pixels)

Specify the upper limit distance a point can differ from the projection location of its associating point. This parameter appears when the Method parameter is set to Random Sample Consensus (RANSAC) and the value of the Transformation type parameter is set to Nonreflective similarity or affine

Determine number of random samplings using

Select Specified value to enter a positive integer value for number of random samplings, or select Desired confidence to set the number of random samplings as a percentage and a maximum number. This parameter appears when you select Find and exclude outliers parameter, and the value of the Method parameter is Random Sample Consensus (RANSAC).

Number of random samplings

Specify the number of random samplings for the algorithm to perform. This parameter appears when the value of the Determine number of random samplings using parameter is Specified value.

Desired confidence (in %)

Specify a percent by entering a number between 0 and 100. The Desired confidence is the probability to find the largest group of points that can be mapped by a transformation matrix. This parameter is visible when the Determine number of random samplings using is Desired confidence.

Maximum number of random samplings

Specify an integer number for the maximum number of random samplings. This parameter appears when the Method parameter is set to Random Sample Consensus (RANSAC) and the value of Determine number of random samplings using parameter is Desired confidence.

Stop sampling earlier when a specified percentage of point pairs are determined to be inlier

Specify to stop random sampling when a percentage of input points have been found as inliers. This parameter appears when the Method parameter is Random Sample Consensus (RANSAC).

Perform additional iterative refinement of the transformation matrix

Specify whether to perform refinement on the transformation matrix. This parameter appears when you select Find and exclude outliers parameter.

Output Boolean signal indicating which point pairs are inliers

Select this option to output the inlier point pairs that were used to calculate the transformation matrix. This parameter appears when you select Find and exclude outliers parameter. This parameter is not used when the data type of points is signed or double.

When Pts1 and Pts2 are built-in integers, set transformation matrix date type to

Specify transformation matrix data type as Single or Double when the input points are built-in integers. This parameter is not used when the data type of points is signed or double.

Parameter NameDefault ValueVisibilityTunability

Transformation type

projective

Always

No

Find and exclude outliers

Checked

Always

No

Method

RANSAC

Visible when Find and exclude outliers parameter is selected

No

Algebraic distance threshold for determining inliers

1.5

Visible when Method parameter is Random Sample Consensus (RANSAC) and the Transformatinon type parameter is projective

Yes

Distance threshold for determining inliers (in pixels)

1.5

Visible when Method parameter is Random Sample Consensus (RANSAC) and the Transformatinon type parameter is Nonreflective similarity or affine

Yes

Determine number of random samplings

Specified value

Visible when Find and exclude outliers parameter is selected

No

Number of random samplings

100

Visible when Determine number of random samplings using parameter is Specified value

Yes

Maximum number of random samplings

200

Visible when the Method parameter is set to Random Sample Consensus (RANSAC) and Determine number of random samplings using parameter is Desired confidence

Yes

Desired confidence (in%)

99

Visible when the Determine number of random samplings using is Desired confidence

Yes

Stop sampling earlier when a specified percentage of point pairs are determined to be inliers

Unchecked

Visible when the Method parameter is Random Sample Consensus (RANSAC)

No

Inlier percentage

75

Visible when Stop sampling earlier when a specified percentage of point pairs are determined to be inliers parameter is checked

Yes

Perform additional iterative refinement of the transformation matrix

Unchecked

Visible when Find and exclude outliers parameter is selected

No

Output Boolean signal indicating which input points are inliers

Unchecked

Visible when Find and exclude outliers parameter is selected

No

When Pts1 and Pts2 are built-in integers, set transformation matrix data type to

Single

Always

No

Examples

Calculate transformation matrix from largest group of point pairs

Examples of input data and application of the Estimate Geometric Transformation block appear in the following figures. Figures (a) and (b) show the point pairs. The points are denoted by stars or circles, and the numbers following them show how they are paired. Some point pairs can be mapped by the same transformation matrix. Other point pairs require a different transformation matrix. One matrix exists that maps the largest number of point pairs, the block calculates and returns this matrix. The block finds the point pairs in the largest group and uses them to calculate the transformation matrix. The point pairs connected by the magenta lines are the largest group.

The transformation matrix can then be used to stitch the images as shown in Figure (e).

Video Mosaicking

To see an example of the Estimate Geometric Transformation block used in a model with other blocks, see the Video Mosaicking Demo, vipmosaicking.

References

R. Hartley and A. Ziserman, "Multiple View Geometry in Computer Vision," Second edition, Cambridge University Press, 2003

See Also

cp2tform

Image Processing Toolbox software

vipmosaicking

Video and Image Processing Blockset demo

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS