Start » Filter Reference » Computer Vision » Camera Calibration » AnnotateGridPoints_Ransac
Module: | Calibration |
---|
Select a subset of the given points that forms a grid and assign 2D indices to them.
Name | Type | Range | Description | |
---|---|---|---|---|
inPoints | Point2DArray | |||
inMaxAttempts | Integer* | 1 - | Maximum number of attempts at finding the grid | |
inMaxOutlierCount | Integer* | 0 - | Determines how many outlier points can be present to end the search | |
inMinLength | Real | 0.0 - | Minimum length of a grid segment | |
inMaxLength | Real* | 0.0 - | Maximum length of a grid segment, if set to Auto it will be approximated | |
inMaxLengthRatio | Real | 1.0 - 2.0 | Maximum ratio of two consecutive segments in the grid | |
inAngleRange | Real | 0.0 - 45.0 | Maximum variation of angles between neighbouring grid segments in degrees | |
inBaseAspectRatioRange | Real | 0.0 - 1.0 | Maximum variation of the base aspect ratio (ignores if base aspect ratio is not given) | |
inBaseAspectRatio | Real* | 0.3 - 1.0 | A reference aspect ratio of the grid | |
inBaseShear | Real* | 0.0 - 60.0 | A reference shear angle between grid directions | |
inBaseOrientation | Real* | 0.0 - 360.0 | A reference orientation of one of the grids directions | |
outPointGrid | AnnotatedPoint2DArray | Detected grid | ||
diagValidSubgraph | Segment2DArray | Graph forming a valid grid | ||
diagMaxLength | Real | Max length computed by the filter (applicable if inMaxLength is set to Auto) |
Description
This filter analyzes a 2D point array and finds a grid within it. The grid can have missing points as well as noise (points that are not vertices of the gird). The filter provides various input that allow the user to specify the shape of the grid that they want to be found.
It is expected that the point array given does not have a lot of missing and/or noise points.
The filter uses a RANSAC based algorithm to find grid within the input array and returns the grid that includes the most points from the input array among all grids that were found. If more than one grid include the maximum number of points, the returned one is the one with the smallest angle deviations.
The algorithm starts by finding a grid base, which consists of three points: one that will be considered as the origin of the grid, one that is one unit away from the origin on the grids X axis and one that is one unit away on the grids Y axis. The constraints for these grid bases can be specified by the user with the use of Base parameters:
- inBaseAspectRatio defines the length ratio between the two segments that the grid base consists of (one along the X axis and the other along the Y axis). The ratio is calculated by divining the length of the shorter segment by the length of the longer one. If this parameter is set to Auto, the algorithm will check bases with rations in the range 0.3 - 1.0
- inBaseAspectRatioRange defines how much the given base aspect ratio can differ from the calculated one.
- inBaseShear defines the shear of the grid in degrees. The calculated shear can differ from the one given in this parameter by inAngleRange degrees. If this parameter is not given, bases with shears up to 60 degrees will be considered but grids with shears closer to zero will be preferred.
- inBaseOrientation defines the orientation of the grids X axis. If this parameters is not given then the positive X direction of the grid will be defined as the direction that gives the biggest positive change in real X coordinated.
The grid is build from the base with respect to constraint parameters:
- inMinLength and inMaxLength define the range of possible segment length in the grid (a segment is a single step in either the X or Y direction).
- inMaxLengthRatio the maximum length ratio between to neighbouring segments of the grid that are along the same axis (for example: two neighbouring segments along the X axis). The minimum length ratio is calculated as 1 / inMaxLengthRatio.
- inAngleRange defines how much the angles of neighbouring grid segments can differ.
Hints
- The computation time of the filter can be decreased by lowering inMaxAttempts.
- The computation time of the filter can be greatly optimized with the inMinLength and inMaxLength parameters. As they allow the algorithm to filter out a lot of grids early on.
- inBaseOrientation can be used to increase the stability of detected grids. This is especially useful for grids the are rotated by 45 degrees, as the X and Y directions of the grid are harder to determine just by looking at positive X changes in the grid.
Examples
Complexity Level
This filter is available on Expert Complexity Level.
Filter Group
This filter is member of AnnotateGridPoints filter group.
See Also
- FilterGridPoints – Select a subset of the given points that forms a grid.