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