Skip to content

SIFT Comparison

v2

Class: SIFTComparisonBlockV2 (there are multiple versions of this block)

Source: inference.core.workflows.core_steps.classical_cv.sift_comparison.v2.SIFTComparisonBlockV2

Warning: This block has multiple versions. Please refer to the specific version for details. You can learn more about how versions work here: Versioning

Compare SIFT descriptors from multiple images using FLANN-based matcher.

This block is useful for determining if multiple images match based on their SIFT descriptors.

Type identifier

Use the following identifier in step "type" field: roboflow_core/sift_comparison@v2to add the block as as step in your workflow.

Properties

Name Type Description Refs
name str Enter a unique identifier for this step..
good_matches_threshold int Threshold for the number of good matches to consider the images as matching.
ratio_threshold float Ratio threshold for the ratio test, which is used to filter out poor matches by comparing the distance of the closest match to the distance of the second closest match. A lower ratio indicates stricter filtering..
matcher str Matcher to use for comparing the SIFT descriptors.
visualize bool Whether to visualize the keypoints and matches between the two images.

The Refs column marks possibility to parametrise the property with dynamic values available in workflow runtime. See Bindings for more info.

Available Connections

Compatible Blocks

Check what blocks you can connect to SIFT Comparison in version v2.

Input and Output Bindings

The available connections depend on its binding kinds. Check what binding kinds SIFT Comparison in version v2 has.

Bindings
  • input

    • input_1 (Union[numpy_array, image]): Reference to Image or SIFT descriptors from the first image to compare.
    • input_2 (Union[numpy_array, image]): Reference to Image or SIFT descriptors from the second image to compare.
    • good_matches_threshold (integer): Threshold for the number of good matches to consider the images as matching.
    • ratio_threshold (float_zero_to_one): Ratio threshold for the ratio test, which is used to filter out poor matches by comparing the distance of the closest match to the distance of the second closest match. A lower ratio indicates stricter filtering..
    • matcher (string): Matcher to use for comparing the SIFT descriptors.
    • visualize (boolean): Whether to visualize the keypoints and matches between the two images.
  • output

    • images_match (boolean): Boolean flag.
    • good_matches_count (integer): Integer value.
    • keypoints_1 (image_keypoints): Image keypoints detected by classical Computer Vision method.
    • descriptors_1 (numpy_array): Numpy array.
    • keypoints_2 (image_keypoints): Image keypoints detected by classical Computer Vision method.
    • descriptors_2 (numpy_array): Numpy array.
    • visualization_1 (image): Image in workflows.
    • visualization_2 (image): Image in workflows.
    • visualization_matches (image): Image in workflows.
Example JSON definition of step SIFT Comparison in version v2
{
    "name": "<your_step_name_here>",
    "type": "roboflow_core/sift_comparison@v2",
    "input_1": "$inputs.image1",
    "input_2": "$inputs.image2",
    "good_matches_threshold": 50,
    "ratio_threshold": 0.7,
    "matcher": "FlannBasedMatcher",
    "visualize": true
}

v1

Class: SIFTComparisonBlockV1 (there are multiple versions of this block)

Source: inference.core.workflows.core_steps.classical_cv.sift_comparison.v1.SIFTComparisonBlockV1

Warning: This block has multiple versions. Please refer to the specific version for details. You can learn more about how versions work here: Versioning

Compare SIFT descriptors from multiple images using FLANN-based matcher.

This block is useful for determining if multiple images match based on their SIFT descriptors.

Type identifier

Use the following identifier in step "type" field: roboflow_core/sift_comparison@v1to add the block as as step in your workflow.

Properties

Name Type Description Refs
name str Enter a unique identifier for this step..
good_matches_threshold int Threshold for the number of good matches to consider the images as matching.
ratio_threshold float Ratio threshold for the ratio test, which is used to filter out poor matches by comparing the distance of the closest match to the distance of the second closest match. A lower ratio indicates stricter filtering..

The Refs column marks possibility to parametrise the property with dynamic values available in workflow runtime. See Bindings for more info.

Available Connections

Compatible Blocks

Check what blocks you can connect to SIFT Comparison in version v1.

Input and Output Bindings

The available connections depend on its binding kinds. Check what binding kinds SIFT Comparison in version v1 has.

Bindings
  • input

    • descriptor_1 (numpy_array): Reference to SIFT descriptors from the first image to compare.
    • descriptor_2 (numpy_array): Reference to SIFT descriptors from the second image to compare.
    • good_matches_threshold (integer): Threshold for the number of good matches to consider the images as matching.
    • ratio_threshold (integer): Ratio threshold for the ratio test, which is used to filter out poor matches by comparing the distance of the closest match to the distance of the second closest match. A lower ratio indicates stricter filtering..
  • output

    • good_matches_count (integer): Integer value.
    • images_match (boolean): Boolean flag.
Example JSON definition of step SIFT Comparison in version v1
{
    "name": "<your_step_name_here>",
    "type": "roboflow_core/sift_comparison@v1",
    "descriptor_1": "$steps.sift.descriptors",
    "descriptor_2": "$steps.sift.descriptors",
    "good_matches_threshold": 50,
    "ratio_threshold": 0.7
}