Template Matching¶
Class: TemplateMatchingBlockV1
Source: inference.core.workflows.core_steps.classical_cv.template_matching.v1.TemplateMatchingBlockV1
Apply Template Matching to an image. Block is based on OpenCV library function called cv2.matchTemplate(...)
that searches for a template image within a larger image. This is often used in computer vision tasks where
you need to find a specific object or pattern in a scene, like detecting logos, objects, or
specific regions in an image.
Please take into account the following characteristics of block: * it tends to produce overlapping and duplicated predictions, hence we added NMS which can be disabled * block may find very large number of matches in some cases due to simplicity of methods being used - in that cases NMS may be computationally intractable and should be disabled
Output from the block is in a form of sv.Detections objects which can be nicely paired with other blocks accepting this kind of input (like visualization blocks).
Type identifier¶
Use the following identifier in step "type"
field: roboflow_core/template_matching@v1
to add the block as
as step in your workflow.
Properties¶
Name | Type | Description | Refs |
---|---|---|---|
name |
str |
Enter a unique identifier for this step.. | ❌ |
matching_threshold |
float |
The threshold value for template matching.. | ✅ |
apply_nms |
bool |
Flag to decide if NMS should be applied at the output detections.. | ✅ |
nms_threshold |
float |
The threshold value NMS procedure (if to be applied).. | ✅ |
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 Template Matching
in version v1
.
- inputs:
Image Slicer
,Stability AI Inpainting
,Clip Comparison
,Perspective Correction
,Roboflow Custom Metadata
,SIFT Comparison
,Grid Visualization
,Ellipse Visualization
,SIFT
,VLM as Detector
,Image Contours
,Absolute Static Crop
,Camera Focus
,Trace Visualization
,VLM as Detector
,Dot Visualization
,Identify Changes
,Polygon Zone Visualization
,Gaze Detection
,Identify Outliers
,Roboflow Dataset Upload
,VLM as Classifier
,Classification Label Visualization
,Corner Visualization
,Dynamic Crop
,Reference Path Visualization
,Label Visualization
,Mask Visualization
,Triangle Visualization
,Line Counter Visualization
,Model Monitoring Inference Aggregator
,Blur Visualization
,Webhook Sink
,SIFT Comparison
,Cosine Similarity
,Slack Notification
,Pixelate Visualization
,Relative Static Crop
,Detections Consensus
,Twilio SMS Notification
,VLM as Classifier
,Roboflow Dataset Upload
,Model Comparison Visualization
,Halo Visualization
,JSON Parser
,Crop Visualization
,Image Blur
,Circle Visualization
,Image Preprocessing
,Background Color Visualization
,Bounding Box Visualization
,Local File Sink
,Image Slicer
,Stitch Images
,Stability AI Image Generation
,Image Threshold
,Keypoint Visualization
,Email Notification
,Color Visualization
,Image Convert Grayscale
,Polygon Visualization
- outputs:
Segment Anything 2 Model
,Image Slicer
,Perspective Correction
,Object Detection Model
,Roboflow Custom Metadata
,Object Detection Model
,SIFT Comparison
,Detection Offset
,Grid Visualization
,Ellipse Visualization
,Image Contours
,Absolute Static Crop
,Trace Visualization
,Dot Visualization
,Identify Outliers
,Roboflow Dataset Upload
,Identify Changes
,Byte Tracker
,Corner Visualization
,Classification Label Visualization
,Dynamic Crop
,Line Counter
,Reference Path Visualization
,Detections Stabilizer
,Label Visualization
,Mask Visualization
,Triangle Visualization
,Line Counter Visualization
,Dynamic Zone
,Detections Transformation
,Dominant Color
,Model Monitoring Inference Aggregator
,Time in Zone
,Blur Visualization
,Line Counter
,Anthropic Claude
,Instance Segmentation Model
,Webhook Sink
,SIFT Comparison
,Time in Zone
,Instance Segmentation Model
,Slack Notification
,Detections Filter
,Stitch OCR Detections
,Pixelate Visualization
,Path Deviation
,Detections Consensus
,Twilio SMS Notification
,Roboflow Dataset Upload
,Keypoint Detection Model
,Model Comparison Visualization
,Halo Visualization
,Crop Visualization
,Byte Tracker
,Image Blur
,Distance Measurement
,Circle Visualization
,Velocity
,Keypoint Detection Model
,Image Preprocessing
,Background Color Visualization
,Pixel Color Count
,Size Measurement
,Florence-2 Model
,Bounding Box Visualization
,Florence-2 Model
,Byte Tracker
,Image Slicer
,Stitch Images
,Image Threshold
,Detections Stitch
,Keypoint Visualization
,Email Notification
,Color Visualization
,Path Deviation
,Detections Classes Replacement
,Polygon Visualization
Input and Output Bindings¶
The available connections depend on its binding kinds. Check what binding kinds
Template Matching
in version v1
has.
Bindings
-
input
image
(image
): The input image for this step..template
(image
): The template image for this step..matching_threshold
(float
): The threshold value for template matching..apply_nms
(boolean
): Flag to decide if NMS should be applied at the output detections..nms_threshold
(float_zero_to_one
): The threshold value NMS procedure (if to be applied)..
-
output
predictions
(object_detection_prediction
): Prediction with detected bounding boxes in form of sv.Detections(...) object.number_of_matches
(integer
): Integer value.
Example JSON definition of step Template Matching
in version v1
{
"name": "<your_step_name_here>",
"type": "roboflow_core/template_matching@v1",
"image": "$inputs.image",
"template": "$inputs.template",
"matching_threshold": 0.8,
"apply_nms": "$inputs.apply_nms",
"nms_threshold": "$inputs.nms_threshold"
}