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