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:
Roboflow Custom Metadata
,Image Convert Grayscale
,VLM as Detector
,Absolute Static Crop
,Relative Static Crop
,Line Counter Visualization
,Gaze Detection
,Background Color Visualization
,Camera Focus
,Image Contours
,Image Slicer
,Reference Path Visualization
,SIFT Comparison
,Triangle Visualization
,Depth Estimation
,Roboflow Dataset Upload
,Dynamic Zone
,Clip Comparison
,Perspective Correction
,Crop Visualization
,Identify Changes
,Webhook Sink
,Dot Visualization
,Model Comparison Visualization
,Email Notification
,Classification Label Visualization
,Camera Calibration
,Slack Notification
,Stability AI Image Generation
,Trace Visualization
,Corner Visualization
,Image Threshold
,Blur Visualization
,Local File Sink
,Stability AI Inpainting
,SIFT
,Cosine Similarity
,Circle Visualization
,JSON Parser
,Twilio SMS Notification
,Label Visualization
,Stitch Images
,Image Preprocessing
,Grid Visualization
,Polygon Zone Visualization
,Keypoint Visualization
,Bounding Box Visualization
,Image Blur
,Halo Visualization
,Ellipse Visualization
,Color Visualization
,Pixelate Visualization
,SIFT Comparison
,VLM as Detector
,Roboflow Dataset Upload
,Polygon Visualization
,VLM as Classifier
,Image Slicer
,Model Monitoring Inference Aggregator
,Mask Visualization
,VLM as Classifier
,Identify Outliers
,Dynamic Crop
,Detections Consensus
- outputs:
Size Measurement
,Detection Offset
,Roboflow Custom Metadata
,Absolute Static Crop
,Distance Measurement
,Line Counter Visualization
,Detections Classes Replacement
,Background Color Visualization
,Image Contours
,Image Slicer
,Reference Path Visualization
,Instance Segmentation Model
,Keypoint Detection Model
,SIFT Comparison
,Object Detection Model
,Triangle Visualization
,Path Deviation
,Line Counter
,Detections Stabilizer
,Detections Transformation
,Byte Tracker
,Roboflow Dataset Upload
,Dynamic Zone
,Perspective Correction
,Object Detection Model
,Crop Visualization
,Webhook Sink
,Identify Changes
,Dot Visualization
,Detections Filter
,Model Comparison Visualization
,Email Notification
,Classification Label Visualization
,Instance Segmentation Model
,Slack Notification
,Detections Merge
,Time in Zone
,Line Counter
,Time in Zone
,Trace Visualization
,Corner Visualization
,Image Threshold
,Blur Visualization
,Keypoint Detection Model
,Overlap Filter
,Circle Visualization
,Path Deviation
,Florence-2 Model
,Twilio SMS Notification
,Label Visualization
,Stitch Images
,Image Preprocessing
,Detections Stitch
,Byte Tracker
,Grid Visualization
,Dominant Color
,Keypoint Visualization
,Stitch OCR Detections
,Bounding Box Visualization
,Image Blur
,Halo Visualization
,Ellipse Visualization
,Color Visualization
,Pixelate Visualization
,SIFT Comparison
,Pixel Color Count
,Velocity
,Roboflow Dataset Upload
,Segment Anything 2 Model
,Polygon Visualization
,Model Monitoring Inference Aggregator
,Image Slicer
,Mask Visualization
,Anthropic Claude
,Florence-2 Model
,Identify Outliers
,Byte Tracker
,Dynamic Crop
,Detections Consensus
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"
}