Detections Consensus¶
Class: DetectionsConsensusBlockV1
Source: inference.core.workflows.core_steps.fusion.detections_consensus.v1.DetectionsConsensusBlockV1
Combine detections from multiple detection-based models based on a majority vote strategy.
This block is useful if you have multiple specialized models that you want to consult to determine whether a certain object is present in an image.
See the table below to explore the values you can use to configure the consensus block.
Type identifier¶
Use the following identifier in step "type"
field: roboflow_core/detections_consensus@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.. | ❌ |
required_votes |
int |
Required number of votes for single detection from different models to accept detection as output detection. | ✅ |
class_aware |
bool |
Flag to decide if merging detections is class-aware or only bounding boxes aware. | ✅ |
iou_threshold |
float |
IoU threshold to consider detections from different models as matching (increasing votes for region). | ✅ |
confidence |
float |
Confidence threshold for merged detections. | ✅ |
classes_to_consider |
List[str] |
Optional list of classes to consider in consensus procedure.. | ✅ |
required_objects |
Optional[Dict[str, int], int] |
If given, it holds the number of objects that must be present in merged results, to assume that object presence is reached. Can be selector to InferenceParameter , integer value or dictionary with mapping of class name into minimal number of merged detections of given class to assume consensus.. |
✅ |
presence_confidence_aggregation |
AggregationMode |
Mode dictating aggregation of confidence scores and classes both in case of object presence deduction procedure.. | ❌ |
detections_merge_confidence_aggregation |
AggregationMode |
Mode dictating aggregation of confidence scores and classes both in case of boxes consensus procedure. One of average , max , min . Default: average . While using for merging overlapping boxes, against classes - average equals to majority vote, max - for the class of detection with max confidence, min - for the class of detection with min confidence.. |
❌ |
detections_merge_coordinates_aggregation |
AggregationMode |
Mode dictating aggregation of bounding boxes. One of average , max , min . Default: average . average means taking mean from all boxes coordinates, min - taking smallest box, max - taking largest box.. |
❌ |
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 Detections Consensus
in version v1
.
- inputs:
Buffer
,OpenAI
,Twilio SMS Notification
,Size Measurement
,Dimension Collapse
,Llama 3.2 Vision
,Perspective Correction
,Pixel Color Count
,Roboflow Dataset Upload
,Detections Transformation
,LMM
,Gaze Detection
,Path Deviation
,Time in Zone
,Dynamic Crop
,Detections Stabilizer
,CogVLM
,Moondream2
,OpenAI
,Velocity
,Image Contours
,Dynamic Zone
,YOLO-World Model
,Detections Classes Replacement
,Path Deviation
,SmolVLM2
,Instance Segmentation Model
,Florence-2 Model
,Byte Tracker
,Instance Segmentation Model
,VLM as Detector
,Time in Zone
,Local File Sink
,VLM as Classifier
,Bounding Rectangle
,Distance Measurement
,Object Detection Model
,Keypoint Detection Model
,Model Monitoring Inference Aggregator
,Detections Consensus
,Identify Changes
,VLM as Detector
,JSON Parser
,Line Counter
,Google Gemini
,Anthropic Claude
,Florence-2 Model
,Overlap Filter
,Email Notification
,Roboflow Custom Metadata
,Roboflow Dataset Upload
,Google Vision OCR
,Detections Merge
,VLM as Classifier
,Segment Anything 2 Model
,Webhook Sink
,Detections Filter
,Keypoint Detection Model
,Detection Offset
,Byte Tracker
,Template Matching
,Identify Outliers
,Slack Notification
,SIFT Comparison
,Qwen2.5-VL
,SIFT Comparison
,Object Detection Model
,Detections Stitch
,Line Counter
,Byte Tracker
,Clip Comparison
,Clip Comparison
- outputs:
Pixelate Visualization
,Twilio SMS Notification
,Size Measurement
,Crop Visualization
,Perspective Correction
,Trace Visualization
,Roboflow Dataset Upload
,Background Color Visualization
,Detections Transformation
,Classification Label Visualization
,Gaze Detection
,Time in Zone
,Path Deviation
,Label Visualization
,Dynamic Crop
,Stability AI Image Generation
,Detections Stabilizer
,Stitch Images
,Polygon Visualization
,Velocity
,Corner Visualization
,YOLO-World Model
,Model Comparison Visualization
,Detections Classes Replacement
,Multi-Label Classification Model
,Path Deviation
,Instance Segmentation Model
,Single-Label Classification Model
,Florence-2 Model
,Byte Tracker
,Instance Segmentation Model
,Time in Zone
,Distance Measurement
,Multi-Label Classification Model
,Keypoint Detection Model
,Object Detection Model
,Model Monitoring Inference Aggregator
,Detections Consensus
,Identify Changes
,Line Counter
,Keypoint Visualization
,Florence-2 Model
,Overlap Filter
,Line Counter Visualization
,Email Notification
,Color Visualization
,Reference Path Visualization
,Mask Visualization
,Roboflow Custom Metadata
,Single-Label Classification Model
,Polygon Zone Visualization
,Circle Visualization
,Roboflow Dataset Upload
,Ellipse Visualization
,Triangle Visualization
,Detections Merge
,Segment Anything 2 Model
,Image Slicer
,Bounding Box Visualization
,Webhook Sink
,Blur Visualization
,Stitch OCR Detections
,Detections Filter
,Keypoint Detection Model
,Image Slicer
,Detection Offset
,Byte Tracker
,Template Matching
,Identify Outliers
,Slack Notification
,Relative Static Crop
,Halo Visualization
,SIFT Comparison
,Object Detection Model
,Detections Stitch
,Byte Tracker
,Line Counter
,Dot Visualization
Input and Output Bindings¶
The available connections depend on its binding kinds. Check what binding kinds
Detections Consensus
in version v1
has.
Bindings
-
input
predictions_batches
(Union[instance_segmentation_prediction
,object_detection_prediction
,keypoint_detection_prediction
]): Reference to detection-like model predictions made against single image to agree on model consensus.required_votes
(integer
): Required number of votes for single detection from different models to accept detection as output detection.class_aware
(boolean
): Flag to decide if merging detections is class-aware or only bounding boxes aware.iou_threshold
(float_zero_to_one
): IoU threshold to consider detections from different models as matching (increasing votes for region).confidence
(float_zero_to_one
): Confidence threshold for merged detections.classes_to_consider
(list_of_values
): Optional list of classes to consider in consensus procedure..required_objects
(Union[integer
,dictionary
]): If given, it holds the number of objects that must be present in merged results, to assume that object presence is reached. Can be selector toInferenceParameter
, integer value or dictionary with mapping of class name into minimal number of merged detections of given class to assume consensus..
-
output
predictions
(object_detection_prediction
): Prediction with detected bounding boxes in form of sv.Detections(...) object.object_present
(Union[boolean
,dictionary
]): Boolean flag ifboolean
or Dictionary ifdictionary
.presence_confidence
(Union[float_zero_to_one
,dictionary
]):float
value in range[0.0, 1.0]
iffloat_zero_to_one
or Dictionary ifdictionary
.
Example JSON definition of step Detections Consensus
in version v1
{
"name": "<your_step_name_here>",
"type": "roboflow_core/detections_consensus@v1",
"predictions_batches": [
"$steps.a.predictions",
"$steps.b.predictions"
],
"required_votes": 2,
"class_aware": true,
"iou_threshold": 0.3,
"confidence": 0.1,
"classes_to_consider": [
"a",
"b"
],
"required_objects": 3,
"presence_confidence_aggregation": "max",
"detections_merge_confidence_aggregation": "min",
"detections_merge_coordinates_aggregation": "min"
}